Inżynieria oprogramowania

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

2
Dlaczego warto używać typedefs dla struktur?
w C (ANSI, C99 itp.), struktury żyją we własnej przestrzeni nazw. Struktura połączonej listy może wyglądać mniej więcej tak: struct my_buffer_type { struct my_buffer_type * next; struct my_buffer_type * prev; void * data; }; Wydaje się jednak całkiem naturalne, że większość programistów C automatycznie wpisuje te struktury w następujący sposób …

6
Jakie są wady niezmiennych typów?
Widzę, że używam coraz więcej niezmiennych typów, gdy nie oczekuje się, że instancje klasy zostaną zmienione . Wymaga więcej pracy (patrz przykład poniżej), ale ułatwia korzystanie z typów w środowisku wielowątkowym. Jednocześnie rzadko widzę niezmienne typy w innych aplikacjach, nawet jeśli zmienność nie przyniosłaby nikomu korzyści. Pytanie: Dlaczego niezmienne typy …
12 c#  immutability 

2
Czy zmienne / elementy początkowe z podkreśleniem mogą rozwiązać zagadkę kompilatora?
Od liceum nauczono mnie, że definiowanie zmiennych takich jak to: int _a; lub int __a; należy uznać za złą praktykę, ponieważ w końcu łamigłówki kompilatory wykorzystujące zmienne zaczynające się od znaku podkreślenia do nazwania zmiennych tymczasowych. O ile wiem, jest to powód, dla którego niektórzy lubią przenosić podkreślenie na końcu …

4
Jak zarządzać automatycznymi wiadomościami e-mail wysyłanymi z aplikacji internetowej
Projektuję aplikację internetową i zastanawiam się, jak zaprojektować architekturę do zarządzania wysyłaniem automatycznych wiadomości e-mail. Obecnie mam tę funkcję wbudowaną w moją aplikację internetową, a e-maile są wysyłane na podstawie danych wejściowych / interakcji użytkownika (takich jak utworzenie nowego użytkownika). Problem polega na tym, że bezpośrednie połączenie z serwerem poczty …

5
zgłaszanie wyjątku czasu wykonywania w aplikacji Java
Pracuję jako wykonawca projektujący korporacyjną aplikację Java dla mojego klienta w roli lidera technicznego. Z aplikacji będą korzystać użytkownicy końcowi, a zespół wsparcia będzie obsługiwał aplikację, gdy wyjdziemy. Inni techniczni potencjalni klienci, z którymi pracuję, mają wrażenie, że obsługa wyjątków spowoduje, że kod będzie brudny. System powinien zgłaszać sprawdzone wyjątki …



8
Czy złą praktyką jest umieszczanie wszystkich wyliczeń w jednym pliku i używanie ich w wielu klasach?
Jestem początkującym programistą gier, pracuję nad okazjonalnymi grami niezależnymi i od jakiegoś czasu robię coś, co na początku wydawało się złą praktyką, ale naprawdę chcę uzyskać odpowiedź od niektórych doświadczonych programistów tutaj. Załóżmy, że mam plik o nazwie, w enumList.hktórej deklaruję wszystkie wyliczenia, których chcę używać w mojej grze: // …


3
Tworzenie warstwy abstrakcji na warstwie ORM
Uważam, że jeśli masz repozytoria, użyj ORM, który jest już wystarczająco abstrakcyjny z bazy danych. Jednak tam, gdzie teraz pracuję, ktoś uważa, że ​​powinniśmy mieć warstwę, która wyodrębnia ORM na wypadek, gdybyśmy chcieli później zmienić ORM. Czy to naprawdę konieczne, czy po prostu dużo pracy nad stworzeniem warstwy, która będzie …
12 database  orm 

7
Refaktoryzacja i zasada otwarcia / zamknięcia
Niedawno czytam witrynę o czystym programowaniu (nie zamieszczam tutaj linku, ponieważ nie jest w języku angielskim). Jedną z zasad reklamowanych na tej stronie jest zasada otwartej zamkniętej : każdy składnik oprogramowania powinien być otwarty na rozszerzenie i zamknięty na modyfikację. Na przykład, kiedy zaimplementowaliśmy i przetestowaliśmy klasę, powinniśmy ją modyfikować …




8
Jak skłonić programistów do szybkiego dokonywania recenzji kodu
Firma, dla której pracuję, wymaga sprawdzenia całego kodu przez innych programistów przed jego zatwierdzeniem. Członkowie mojego zespołu są często sfrustrowani, ponieważ inni programiści są zbyt zajęci kodowaniem, aby dokonać przeglądu, szczególnie jeśli jest on bardzo długi. Jak zachęcasz innych programistów do dokonywania terminowych recenzji kodu? (Używamy git-svn, abyśmy mogli kontynuować …

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.