Inżynieria oprogramowania

10
Opcjonalne średniki

Najczęściej w imperatywnym języku ogólnego przeznaczenia - średniki jako separatory instrukcji są albo wymagane, albo całkowicie niedozwolone (np. C i Python). Jednak niektóre języki, na przykład JavaScript, pozwalają zrezygnować z ograniczania instrukcji średnikami na rzecz innych separatorów...

10
Ile kpiny jest „w sam raz?”

Pytanie to żartowałem, bo jestem pewien, że „to zależy”, ale mam kilka konkretnych pytań. Pracując w oprogramowaniu, które ma wiele głębokich warstw zależności, mój zespół przyzwyczaił się do dość obszernego kpowania w celu oddzielenia każdego modułu kodu od zależności poniżej. Dlatego byłem...

10
Czy „jeśli metoda jest ponownie używana bez zmian, umieść ją w klasie bazowej, w przeciwnym razie stwórz interfejs” to dobra zasada?

Mój kolega wymyślił ogólną zasadę wyboru między tworzeniem klasy podstawowej a interfejsem. On mówi: Wyobraź sobie każdą nową metodę, którą zamierzasz wdrożyć. Rozważ to dla każdego z nich: czy ta metoda zostanie zaimplementowana przez więcej niż jedną klasę w dokładnie tej formie, bez żadnych...

10
Implementowanie wielu ogólnych interfejsów w Javie

Potrzebuję interfejsu, który zapewnia, że ​​pewna metoda, w tym konkretny podpis, jest dostępna. Do tej pory mam to: public interface Mappable<M> { M mapTo(M mappableEntity); } Problem powstaje, gdy klasa powinna być odwzorowana na wiele innych encji. Idealnym przypadkiem byłoby to (nie...

10
Dlaczego FRACTRAN Turing jest gotowy?

Próbowałem znaleźć wyjaśnienia w Google, ale większość linków mówi tylko: „FRACTRAN jest w pełni gotowy. Na przykład spójrzmy na mnożenie”. Pamiętam, jak zobaczyłem wpis na forum xkcd, że FRACTRAN pomógł plakatowi zrozumieć kompletność Turinga. Szukam intuicyjnego wyjaśnienia, dlaczego ten...

10
Przeszkody w korzystaniu z Git Flow w Subversion

Mój zespół w pracy rozpoczyna nowy projekt, używając Subversion jako naszego VCS (możesz rozważyć ten zestaw w kamieniu do celów tego pytania). Wciąż jesteśmy w początkowej fazie projektu i staramy się uzgodnić model rozgałęzienia. Nasz poprzedni projekt był oparty na niestandardowym modelu wersji,...