Inżynieria oprogramowania

Pytania i odpowiedzi dla profesjonalistów, nauczycieli akademickich i studentów pracujących w cyklu życia systemów

1
Gdzie refaktoryzacja należy do modelu nazewnictwa gałęzi GitFlow?
Niedawno zacząłem pracować z modelem GitFlow zaimplementowanym przez bitbucket. I jest jedna rzecz, która nie jest dla mnie całkowicie jasna. Staramy się regularnie rozwiązywać nasze problemy techniczne poprzez zaległości, planowanie i wdrażanie zadań refaktoryzacyjnych. Takie oddziały refaktoryzacji kończą się połączonymi żądaniami typu pull develop. Moje pytanie brzmi, gdzie należą oddziały …


2
Czy możliwe jest utworzenie tłumacza „bootstrapped” niezależnego od oryginalnego tłumacza?
Według Wikipedii termin „bootstrapping” w kontekście pisania kompilatorów oznacza : W informatyce ładowanie to proces pisania kompilatora (lub asemblera) w źródłowym języku programowania, który zamierza skompilować. Zastosowanie tej techniki prowadzi do kompilatora samoobsługowego. I rozumiem, jak to by działało. Ta historia wydaje się jednak nieco inna dla tłumaczy. Teraz oczywiście …

3
Jaki jest cel tego pozornego odniesienia w języku C #?
Oceniam CMS typu open source o nazwie Piranha ( http://piranhacms.org/ ) do wykorzystania w jednym z moich projektów. Dla mnie poniższy kod był interesujący i nieco mylący. Czy ktoś może mi pomóc zrozumieć, dlaczego klasa dziedziczy po bazie tego samego typu? public abstract class BasePage<T> : Page<T> where T : …
21 c#  architecture  .net  cms 


6
Dlaczego źle jest komentować kod, a następnie stopniowo go usuwać, aby śledzić to, co już zrobiłem i co pozostało do zrobienia?
Ilekroć dowiaduję się, że duża część mojego kodu musi zostać zmieniona, albo dlatego, że jest niepoprawna, albo dlatego, że musi zostać dostosowana do poważnych zmian architektonicznych spowodowanych innymi przyczynami, zazwyczaj tak robię: Komentuję cały kod, który, jak podejrzewam, może będę musiał zmienić. Skomentowany kod traktuję jako rodzaj mojej listy TODO. …


4
Jaki jest najbardziej elegancki sposób napisania metody „Try” w C # 7?
Piszę rodzaj implementacji kolejki, która ma TryDequeuemetodę używającą wzorca podobnego do różnych TryParsemetod .NET , w której zwracam wartość logiczną, jeśli akcja się powiodła, i używam outparametru do zwrócenia rzeczywistej wartości kolejkowania. public bool TryDequeue(out Message message) => _innerQueue.TryDequeue(out message); Teraz lubię unikać parametrów, outkiedy tylko mogę. C # 7 …
21 c# 

3
Czy to normalne, że całkowicie odsprzęga backend i frontendowe aplikacje internetowe i pozwala im komunikować się z (JSON) REST API?
Tworzę nową biznesową aplikację internetową i chcę osiągnąć: Korzystaj z najlepszych technologii z odpowiednich dziedzin. Chcę niezawodnego frameworka zaplecza z solidnym ORM. I chcę najbardziej zaawansowanego frameworka SPA (aplikacja jednostronicowa) z wykorzystaniem najnowocześniejszych funkcji HTML i JavaScript dla aplikacji frontendowej Ujawnij jednostki zaplecza i usługi biznesowe do użytku z różnych …


5
Jak poprawić błąd w teście, po napisaniu implementacji
Jaki jest najlepszy sposób działania w TDD, jeśli po prawidłowym zaimplementowaniu logiki test nadal się nie powiedzie (ponieważ w teście jest błąd)? Załóżmy na przykład, że chcesz rozwinąć następującą funkcję: int add(int a, int b) { return a + b; } Załóżmy, że rozwijamy go w następujących krokach: Test zapisu …
21 tdd  mistakes 

3
Jak obsługiwać przypadki awarii w konstruktorze klasy C ++?
Mam klasę CPP, której konstruktor wykonuje pewne operacje. Niektóre z tych operacji mogą się nie powieść. Wiem, że konstruktorzy nic nie zwracają. Moje pytania są Czy wolno wykonywać inne operacje niż inicjowanie elementów w konstruktorze? Czy można powiedzieć funkcji wywołującej, że niektóre operacje w konstruktorze nie powiodły się? Czy mogę …

3
Jaki powinien być typ danych tokenów, które leksykon zwraca do analizatora składni?
Jak wspomniano w tytule, jaki typ danych leksyker powinien zwrócić / przekazać analizator składni? Czytając artykuł z analizy leksykalnej, który ma Wikipedia, stwierdził: W informatyce analiza leksykalna to proces przekształcania sekwencji znaków (np. W programie komputerowym lub na stronie internetowej) w sekwencję tokenów ( ciągów o zidentyfikowanym „znaczeniu”). Jednak w …
21 data-types  lexer  flex 

2
Zoptymalizuj repozytorium git, zawierające duże pliki binarne
Nasz projekt ma około 11 GB, z czego 10 to dane binarne (obrazy .png). W konsekwencji operacja a git difflub git statuszajmuje więcej niż minutę. Na szczęście wszystkie pliki danych są podzielone na folder o cudownej nazwie data. Zadanie to „Unikaj kompresji, różnicowania i innych kosztownych operacji na plikach binarnych”. …
21 git  binary 

4
Dlaczego folder Git .git / objects / jest podzielony na wiele folderów z prefiksem SHA?
Git wewnętrznie przechowuje obiekty (obiekty BLOB, drzewa) w .git/objects/folderze. Do każdego obiektu można odwoływać się za pomocą skrótu SHA1, który jest obliczany na podstawie zawartości obiektu. Obiekty nie są jednak przechowywane .git/objects/bezpośrednio w folderze. Zamiast tego każdy obiekt jest przechowywany w folderze rozpoczynającym się od prefiksu skrótu SHA1. Tak więc …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.