Inżynieria oprogramowania

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

5
Metodologia zwinna: szybka i brudna czy najpierw planowana?
Zwinne pytanie: czy zwinny wierzy w uruchamianie rzeczy w „szybki i brudny sposób” - czy zwinny woli budować solidnie od podstaw? A może nie jest to pytanie metodologiczne, a raczej pytanie, które oceniasz indywidualnie? Technicznie „przerabiam” fundament systemu, po tym jak zbudowałem już większość samej konstrukcji ... to nie jest …
10 agile 



6
Czy rozdzielenie większości klas na klasy tylko pola danych i klasy tylko metody (jeśli to możliwe) jest dobrym czy anty-wzorcem?
Na przykład klasa zwykle ma członków klasy i metody, np .: public class Cat{ private String name; private int weight; private Image image; public void printInfo(){ System.out.println("Name:"+this.name+",weight:"+this.weight); } public void draw(){ //some draw code which uses this.image } } Ale po przeczytaniu na temat zasady pojedynczej odpowiedzialności i zasady otwartej …

3
Czy dobrą praktyką jest zawijanie pokrewnego zestawu właściwości do własnej struktury / klasy?
Pisanie obiektu użytkownika w Swift, choć moje pytanie dotyczy dowolnego silnie napisanego języka. Użytkownik może mieć kilka linków (FacebookProfile, InstagramProfile itp.). Kilka pytań wokół tego. Czy dobrą praktyką jest zawijanie łączy we własnym obiekcie? struct Użytkownik { var firstName: string var lastName: string var email: string var links: Linki } …

4
Jak dokładnie kompilator odzyskuje po błędzie typu?
Przeczytałem kilka artykułów, artykułów i sekcji 4.1.4, rozdział 4 kompilatorów: Zasady, techniki i narzędzia (2. wydanie) (aka „The Dragon Book”), które wszystkie omawiają temat odzyskiwania błędów kompilatora składniowego. Jednak po eksperymentach z kilkoma nowoczesnymi kompilatorami zauważyłem, że odzyskują one również po błędach semantycznych , a także błędach składniowych. Rozumiem dość …

6
Jak uniknąć niekończącego się iterowania poprzez równie nieoptymalne projekty?
Prawdopodobnie tak jak wielu, często napotykam bóle głowy z problemami projektowymi, w których na przykład istnieje pewien wzór / podejście projektowe, które wydaje się intuicyjnie pasować do problemu i przynosi pożądane korzyści. Bardzo często występuje pewne zastrzeżenie, które utrudnia wdrożenie wzorca / podejścia bez jakiejś pracy, która następnie neguje korzyści …


2
Jak zaprojektować granice agregatów?
Chciałbym napisać aplikację podobną do e-commerce. I wiesz, że w podobnych aplikacjach produkty mogą mieć różne właściwości i funkcje. Aby zasymulować taką możliwość, stworzyłem następujące podmioty modelu domeny: Kategoria - jest to coś w rodzaju „elektronika> komputery”, czyli rodzaje produktów. Kategorie zawierają listę właściwości (Lista <Właściwość>). Właściwość - niezależna jednostka, …

5
Jak rozwiązać współzależność klas w moim kodzie C ++?
W moim projekcie C ++ mam dwie klasy Particlei Contact. W Particleklasie mam zmienną składową, std::vector<Contact> contactsktóra zawiera wszystkie kontakty Particleobiektu oraz odpowiednie funkcje składowe getContacts()i addContact(Contact cont). Zatem w „Particle.h” dołączam „Contact.h”. W Contactklasie chciałbym dodać kod do konstruktora, aby Contactten wywołał Particle::addContact(Contact cont), aby contactsbył aktualizowany zarówno dla …

1
Dlaczego Operatorzy Null-Safe (np. „Operator Elvisa”) zostali odrzuceni w ramach „Project Coin” Java 7?
Jedną z proponowanych funkcji „Project Coin” Java 7 był „operator Elvisa”. Raport z prezentacją 2009 JavaOne nad projektem Coin opisał to w następujący sposób: Jedną z „małych funkcji” omawianych w tej prezentacji jest tak zwany „operator Elvisa”, bardziej zwięzła wersja operatora trójskładnikowego. Czuję, że brakuje mi niektórych funkcji Groovy podczas …
10 java  api-design 

2
Jak architektury bezserwerowe zarządzają połączeniami z bazą danych?
Mówi się, że główną zaletą architektury bezserwerowej jest to, że takie programy nie potrzebują dedykowanego serwera do ciągłego działania. Następnie są wywoływane na żądanie i zatrzymują się przy wychodzeniu z funkcji. Oznacza to, że program bezserwerowy będzie musiał się szybko uruchomić, aby był responsywny. Jak zatem radzi sobie z czasochłonnymi …

5
Czy kiedykolwiek można naruszać LSP?
Kontynuuję to pytanie , ale skupiam się z kodu na zasadzie. Z mojego zrozumienia zasady podstawienia Liskowa (LSP), wszystkie metody w mojej klasie bazowej muszą być zaimplementowane w mojej podklasie i zgodnie z tą stroną, jeśli zastąpisz metodę w klasie bazowej i nie robi ona nic ani nie rzuca wyjątek, …


1
Problemy z uchwyceniem, jak wygląda czysty kod w prawdziwym życiu
Obecnie czytam i pracuję nad „Clean Code: A Handbook of Agile Software Craftsmanship” Roberta C. Martina. Autor mówi o tym, jak funkcja powinna robić tylko jedną rzecz, a zatem być stosunkowo krótka. W szczególności Martin pisze: Oznacza to, że bloki wewnątrz instrukcji if, instrukcji else, instrukcji while i tak dalej …
10 clean-code 

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.