Inżynieria oprogramowania

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

19
Co powiesz na temat przeglądu kodu, gdy druga osoba zbudowała zbyt skomplikowane rozwiązanie? [Zamknięte]
Któregoś dnia sprawdziłem kod napisany przez kogoś z mojego zespołu. Rozwiązanie nie było w pełni funkcjonalne, a projekt był zbyt skomplikowany - co oznacza, że ​​zawiera niepotrzebne informacje, zawiera niepotrzebne funkcje i zasadniczo kod ma wiele niepotrzebnych złożoności, takich jak pozłacanie, i próbował rozwiązać problemy, które nie istnieją. W tej …

8
Strach przed wydaniem projektu hobbystycznego - jak pokonać? [Zamknięte]
Nie wiem, czy to pytanie jest ściśle związane z tworzeniem oprogramowania, ale spróbuję: Jak wielu programistów uwielbiam pracować nad projektami hobbystycznymi. Czasami pozornie dobre pomysły okazują się niezbyt dobre, więc rezygnuję z projektu. Ale czasami z projektu wychodzi coś pożytecznego. Więc mógłbym go wypuścić, przedstawić światu, prawda? Źle. Jakoś nie …

8
Czy podczas używania metody łączenia łańcuchowego ponownie wykorzystuję obiekt, czy go utworzę?
Podczas korzystania z metody łączenia, takiej jak: var car = new Car().OfBrand(Brand.Ford).OfModel(12345).PaintedIn(Color.Silver).Create(); mogą być dwa podejścia: Ponownie użyj tego samego obiektu, jak poniżej: public Car PaintedIn(Color color) { this.Color = color; return this; } Utwórz nowy obiekt typu Carna każdym kroku, na przykład: public Car PaintedIn(Color color) { var car …


11
Czy „C” w MVC jest naprawdę konieczne?
Rozumiem rolę modelu i widoku we wzorcu Model-Widok-Kontroler, ale trudno mi zrozumieć, dlaczego kontroler jest potrzebny. Załóżmy, że tworzymy program szachowy wykorzystujący podejście MVC; stan gry powinien być modelem, a GUI powinien być widokiem. Czym dokładnie jest kontroler w tym przypadku? Czy to tylko osobna klasa, która ma wszystkie funkcje, …

2
Empiryczne dowody popularności Git i Mercurial
To 2012 rok! Mercurial i Git są nadal silne. Rozumiem kompromisy obu. Rozumiem również, że każdy ma jakieś preferencje dla jednego lub drugiego. W porządku. Szukam informacji o poziomie wykorzystania obu. Na przykład na stackoverflow.com wyszukiwanie Git daje 12000 trafień, Mercurial - 3000. Google Trends mówi, że Git to 1,9: …
37 git  mercurial 

11
W jaki sposób ludzie wykonujący TDD radzą sobie z utratą pracy podczas poważnej refaktoryzacji
Od jakiegoś czasu próbuję nauczyć się pisać testy jednostkowe dla mojego kodu. Początkowo zacząłem robić prawdziwy TDD, w którym nie pisałbym żadnego kodu, dopóki nie napisałem najpierw testu zakończonego niepowodzeniem. Jednak ostatnio miałem drażliwy problem do rozwiązania, który wymagał dużej ilości kodu. Po kilku tygodniach pisania testów, a potem pisania …
37 tdd  refactoring 

16
Czy boli uczyć się fragmentów wielu języków programowania?
Karierę programistyczną rozpocząłem w BASIC, w 9 klasie. Nauczyłem się trochę języka BASIC, pisząc proste programy do dodawania, odejmowania i drukowania. Potem poszedłem na uniwersytet i podjąłem Informatykę i Inżynierię Systemów. W pierwszym roku uczyłem się C i mam nad tym dobrą władzę. Następnie nauczyłem się C ++ w drugim …
37 php  c++  c  basic 


8
Jaki jest akceptowany styl używania słowa kluczowego `this` w Javie?
Pochodzę z języków takich jak Python lub Javascript (i innych, które są mniej zorientowane obiektowo) i staram się poprawić moją praktyczną znajomość Javy, którą znam tylko powierzchownie. Czy uważanie thisza wcześniejsze atrybuty instancji jest uważane za złą praktykę ? Pisanie jest dla mnie bardziej naturalne ... private String foo; public …

9
Jak twoje dziecko ma kroki w TDD?
Dzisiaj trenowaliśmy TDD i znaleźliśmy następujący punkt nieporozumienia. Zadanie polega na tym, aby wejściowa „1,2” zwróciła sumę liczb, która wynosi 3. To, co napisałem (w C #) to: numbers = input.Split(','); return int.Parse(numbers[0]) + int.Parse(numbers[1]); //task said we have two numbers and input is correct Ale inni woleli robić to …
37 testing  tdd 

7
Jak wytłumaczyć, że trudno jest oszacować czas potrzebny na większy projekt oprogramowania?
Jestem młodszym programistą i trudno mi oszacować, ile czasu zajmuje ukończenie większego projektu oprogramowania. Wiem, jak ogólnie zbudować architekturę, ale trudno mi wiedzieć, jakie szczegóły muszę zrobić i jakie problemy muszę rozwiązać. Trudno więc oszacować, ile czasu zajmie ukończenie większego projektu, ponieważ nie wiem, jakie problemy muszę rozwiązać i jak …


11
Czy abstrakcyjne klasy / metody są przestarzałe?
Kiedyś tworzyłem wiele abstrakcyjnych klas / metod. Potem zacząłem używać interfejsów. Teraz nie jestem pewien, czy interfejsy nie powodują, że klasy abstrakcyjne stają się przestarzałe. Potrzebujesz w pełni abstrakcyjnej klasy? Zamiast tego utwórz interfejs. Potrzebujesz abstrakcyjnej klasy z pewną implementacją? Utwórz interfejs, stwórz klasę. Dziedzicz klasę, zaimplementuj interfejs. Dodatkową korzyścią …

12
Inny programista zastosował najgorsze praktyki programistyczne
Wiem, że to dziwne, ale inny programista celowo zastosował kilka złych praktyk programistycznych! Wytłumaczę. Po pierwsze pozwól mi powiedzieć, że jest inteligentnym facetem i w większości pisze zrozumiały kod. Został poproszony o wdrożenie licencji na projekt aplikacji internetowej napisany w Javie. Ponieważ jest to Java, jeśli ktoś naprawdę tego chce, …

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.