Inżynieria oprogramowania

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

3
Czy powinienem unikać używania unsigned int w C #?
Ostatnio pomyślałem o użyciu liczb całkowitych bez znaku w języku C # (i chyba podobny argument można powiedzieć o innych „językach wysokiego poziomu”) Gdy w potrzebie liczby całkowitej zwykle nie stoję przed dylematem wielkości liczby całkowitej, przykładem może być właściwość age klasy Person (ale pytanie nie ogranicza się do właściwości). …

5
Dlaczego narzędzia do budowania używają języka skryptowego innego niż podstawowy język programowania?
Ostatnio używałem narzędzi do budowania projektu Nodejs w pracy, kiedy zdałem sobie sprawę, że główne narzędzie / system do budowania większości języków używa innego języka niż sam podstawowy język programowania. Na przykład make nie używa C lub C ++ do pisania skryptów, a mrówka (ani Maven) nie używa Java jako …

2
Kiedy stosować def w Groovy?
Od jakiegoś czasu rozwijam się w Groovy i zastanawiam się, jak często powinienem używać dynamicznego rzutowania def? Mój współpracownik uważa, że ​​powinniśmy go zawsze używać, ponieważ pomaga Groovy w jakiś sposób, którego nie rozumiem. Obecnie, deklarując typy zwracane przez metody i argumenty, lubię celowo określać, które obiekty należy pobrać i …


2
Ogólny sposób konwersji pętli (while / for) na rekurencję lub z rekurencji na pętlę?
Problem ten koncentruje się głównie na algorytmie, być może czymś abstrakcyjnym i bardziej akademickim. Przykład oferuje myśl, chcę ogólny sposób, więc przykład został użyty tylko w celu wyraźniejszego wyjaśnienia twoich myśli. Ogólnie mówiąc, pętla może być przekształcona w rekurencyjną. na przykład: for(int i=1;i<=100;++i){sum+=i;} Jego powiązanym rekurencyjnym jest: int GetTotal(int number) …

5
Co zrobić z dużą historią svn, przechodząc do git?
Edycja: w przeciwieństwie do niektórych podobnych pytań, takich jak Przenoszenie repozytorium SVN z wieloma GB do Git lub /programming/540535/managing-large-binary-files-with-git Mój scenariusz nie obejmuje kilku podprojektów, które można łatwo przekonwertować na submoduły git, a także kilka bardzo dużych plików binarnych, które dobrze nadają się do załącznika git. Jest to pojedyncze repozytorium, …
23 git  svn 

2
Konwencja nazewnictwa: Pola końcowe (nie statyczne)
Dzisiaj rozmawiałem ze współpracownikiem na temat nazewnictwa finalpól w klasach Java. W jego opionionach finalpola należy również traktować jako stałe, ponieważ ich wartości nie zmienią się po utworzeniu instancji. Doprowadziłoby to do następującej konwencji nazewnictwa dla finalpól: public class Foo { private static final String BLA_BLA = "bla"; private final …
23 java  naming  final 


5
W jaki sposób inny popularny język unikałby konieczności używania wzorca fabrycznego, zarządzając podobną złożonością jak w Javie / Java EE?
Wzorzec fabryczny (a przynajmniej użycie FactoryFactory..) to podstawa wielu żartów, jak tutaj . Oprócz posiadania pełnych i „kreatywnych” nazw, takich jak RequestProcessorFactoryFactory.RequestProcessorFactory , czy jest coś zasadniczo nie tak z wzorcem fabrycznym, jeśli musisz programować w Javie / C ++ i istnieje przypadek użycia dla Abstract_factory_pattern ? W jaki sposób …

7
Używanie liczb całkowitych bez znaku w C i C ++
Mam bardzo proste pytanie, które mnie zaskakuje przez długi czas. Mam do czynienia z sieciami i bazami danych, więc wiele danych, którymi się zajmuję, to liczniki 32-bitowe i 64-bitowe (niepodpisane), 32-bitowe i 64-bitowe identyfikatory (również nie mają znaczącego odwzorowania znaku). Praktycznie nigdy nie mam do czynienia z prawdziwymi słowami, które …
23 c  coding-style 

3
Dlaczego instrukcja kopiowania zwykle nosi nazwę MOV?
W dość wielu asemblerach instrukcja kopiowania wartości zwykle nosi nazwę „MOV”, a jej opis w instrukcjach zwykle zawiera także „move” (można jednak użyć innych słów, takich jak „load”, „store”, „extract” itp. ) Znalezienie ISA jest rzadkością ), który nie przestrzega tej konwencji. Z drugiej strony, w innych kontekstach, „ruch” różni …
23 history  assembly 

5
Kiedy powinienem zwiększyć numer wersji?
Nie uczyłem się programowania w szkole i nie pracuję jako (profesjonalny) programista, dlatego wiele podstaw nie jest dla mnie całkiem zrozumiałych. To pytanie próbuje wyjaśnić jedno z nich. Teraz załóżmy, że mam problemy #1, #2a #3w moim Issues Tracker że są ustawione zostać poprawione / wzmocnionej wersji 1.0.0i że ostatni …


5
Formatowanie i kontrola wersji
Formatowanie kodu ma znaczenie. Nawet wcięcie ma znaczenie . A spójność jest ważniejsza niż drobne ulepszenia. Ale projekty zwykle nie mają jasnego, kompletnego, weryfikowalnego i egzekwowanego przewodnika stylu od pierwszego dnia, a poważne ulepszenia mogą nadejść każdego dnia. Może to znajdziesz SELECT id, name, address FROM persons JOIN addresses ON …

9
Czy Agile można osiągnąć bez udziału klienta?
Nie mogłem napisać książki o Agile. Pracowałem w kilku sklepach, które nazywają ten proces zwinnym. Jednym z głównych punktów rozwoju Agile jest regularne zaangażowanie klienta. Po sprincie praca może zostać pokazana klientowi w celu uzyskania opinii. Wypłukać i powtórzyć. Problem, z którym się zetknąłem, polega na tym, że wielu klientów …
23 agile  waterfall 

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.