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 …
Dlaczego jest argvzadeklarowany jako „wskaźnik do wskaźnika do pierwszego indeksu tablicy”, a nie po prostu „wskaźnik do pierwszego indeksu tablicy” ( char* argv)? Dlaczego tutaj wymagane jest pojęcie „wskaźnik do wskaźnika”?
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 …
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 : …
Jako programista C ++ jestem przyzwyczajony do plików nagłówkowych C ++ i uważam, że korzystne jest posiadanie pewnego rodzaju wymuszonej „dokumentacji” w kodzie. Zwykle mam zły czas, kiedy muszę czytać kod C # z tego powodu: nie mam takiej mentalnej mapy klasy, z którą pracuję. Załóżmy, że jako inżynier oprogramowania …
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. …
Testuję, czy funkcja działa zgodnie z oczekiwaniami na liście. Więc chcę przetestować f(null) -> null f(empty) -> empty f(list with one element) -> list with one element f(list with 2+ elements) -> list with the same number of elements, doing what expected Aby to zrobić, jakie jest najlepsze podejście? Testowanie …
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 …
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 …
Ten pomysł pochodzi od tego pytania na stackoverflow.com Powszechny jest następujący wzór: final x = 10;//whatever constant value for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) { //...do something } Chcę, aby stwierdzenie warunkowe było czymś skomplikowanym i nie zmienia się. Czy lepiej jest zadeklarować go w sekcji …
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 …
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ę …
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 …
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”. …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.