Inżynieria oprogramowania

29
TDD tylko w teorii

Nieco ponad rok temu miałem szczęście, że mogłem zrobić 9-miesięczną przerwę w pracy. Zdecydowałem, że w tym czasie doskonalę swoje umiejętności w języku C #. Zacząłem pracować nad wieloma projektami i zmusiłem się do śledzenia TDD. To był dość pouczający proces. Na początku było ciężko, ale z...

29
Kontrola wersji dla Przepisz

Opracowaliśmy produkt (prototyp) P_OLD w języku X i teraz przepisujemy go od zera jako P_NEW w języku Y. Ponieważ P_NEW i P_OLD są tym samym produktem: Czy P_NEW powinien być po prostu starą wersją P_OLD, czy powinien być własnym repozytorium? Jak zwykle radzić sobie z tak dużymi zmianami z...

29
Dlaczego literały łańcuchowe C są tylko do odczytu?

Jakie zalety literałów łańcuchowych jako tylko do odczytu uzasadniają (-ies / -ied): To kolejny sposób na zastrzelenie się w stopę char *foo = "bar"; foo[0] = 'd'; /* SEGFAULT */ Niemożność eleganckiego zainicjowania tablicy słów do odczytu i zapisu w jednym wierszu: char *foo[] = { "bar",...

29
Repozytoria DDD w aplikacji lub domenie

Obecnie studiuję DDD i mam pytania dotyczące zarządzania repozytoriami za pomocą DDD. Właściwie spotkałem dwie możliwości: Pierwszy Pierwszym sposobem zarządzania usługami, które przeczytałem, jest wstrzyknięcie repozytorium i modelu domeny do usługi aplikacji. W ten sposób, w jednej z metod...

29
Dlaczego w Kotlin nie ma statycznego słowa kluczowego?

Kotlin jest znany przede wszystkim jako drop-in zamiennik Javy, ale pozbywa się dobrze znanego konstruktu Java: staticsłowa kluczowego. Zamiast tego ta funkcjonalność na poziomie klasy jest oferowana głównie przez obiekty towarzyszące. Co jest złego w metodach statycznych i polach, dla których...