Pytania otagowane jako design

Pytania dotyczące rozwiązywania problemów i planowania rozwiązania poprzez projektowanie oprogramowania.


16
Jak radzić sobie z porażeniem analizy?
Bardzo często utknąłem przy wyborze najlepszej decyzji projektowej. Nawet w przypadku drobnych szczegółów, takich jak definicje funkcji, przepływ sterowania i nazwy zmiennych, spędzam niezwykle długie okresy, analizując korzyści i kompromisy z moich wyborów. Czuję, że tracę dużo wydajności, spędzając godziny na takich nieistotnych szczegółach. Mimo że w głębi duszy wiem, …

8
Czy programista powinien wykonywać makiety interfejsu użytkownika, jeśli w projekcie nie ma projektantów?
Współpracuję z małym zespołem, który tworzy zastrzeżoną aplikację internetową, a UX nie ma większego znaczenia, ponieważ nasi ludzie będą nią zarządzać, ale staramy się ułatwiać im pracę. Czy jako programista powinienem utworzyć makietę interfejsu użytkownika, zanim zacznę tworzyć nowy ekran? Nic nadzwyczajnego, głównie ogólny układ, aby omówić go z kolegami …

12
Czy wyłapywanie ogólnych wyjątków jest naprawdę złą rzeczą?
Zwykle zgadzam się z większością ostrzeżeń dotyczących analizy kodu i staram się ich przestrzegać. Mam jednak trudniejszy czas z tym: CA1031: Nie przechwytuj ogólnych typów wyjątków Rozumiem uzasadnienie tej reguły. Ale w praktyce, jeśli chcę podjąć to samo działanie niezależnie od zgłoszonego wyjątku, dlaczego miałbym obsługiwać każde z nich konkretnie? …
57 c#  design  exceptions 

10
W jakich przypadkach mniej kodu nie jest lepsze? [Zamknięte]
Ostatnio zmieniłem kod w pracy i pomyślałem, że wykonałem dobrą robotę. Zrzuciłem 980 linii kodu do 450 i zmniejszyłem o połowę liczbę klas. Pokazując to moim kolegom, niektórzy nie zgodzili się, że to poprawa. Powiedzieli - „mniej linii kodu niekoniecznie jest lepsze” Widzę, że mogą wystąpić ekstremalne przypadki, w których …

6
Czy pętla zdarzeń jest tylko pętlą for / while ze zoptymalizowanym odpytywaniem?
Próbuję zrozumieć, czym jest pętla zdarzeń. Często wyjaśnia się, że w pętli zdarzeń robisz coś, dopóki nie zostaniesz powiadomiony o wystąpieniu zdarzenia. Następnie zajmujesz się zdarzeniem i kontynuujesz robienie tego, co robiłeś wcześniej. Aby zmapować powyższą definicję na przykładzie. Mam serwer, który „nasłuchuje” w pętli zdarzeń, a gdy zostanie wykryte …

10
Co oznacza „użytkownik nie powinien decydować, czy jest administratorem, czy nie. System uprawnień lub bezpieczeństwa powinien. ”
Przykład użyty w pytaniu przekazuje absolutną minimalną ilość danych do funkcji, która dotyczy najlepszego sposobu ustalenia, czy użytkownik jest administratorem, czy nie. Jedną z powszechnych odpowiedzi było: user.isAdmin() To skłoniło do komentarza, który został kilkakrotnie powtórzony i wielokrotnie głosowany: Użytkownik nie powinien decydować, czy jest administratorem, czy nie. System uprawnień …

13
Jak przestać marnować czas na projektowanie architektury [zamknięte]
Niedawno ukończyłem uniwersytet i rozpocząłem pracę jako programista. Trudno mi rozwiązać problemy „techniczne” lub debugować za pomocą rzeczy, które, jak powiedziałbym, mają jedno rozwiązanie. Ale wydaje się, że istnieje klasa problemów, które nie mają jednego oczywistego rozwiązania - takich jak architektura oprogramowania. Te rzeczy wprawiają mnie w osłupienie i przysparzają …

9
Dlaczego nie ujawnić klucza podstawowego
W mojej edukacji powiedziano mi, że wadliwym pomysłem jest udostępnianie użytkownikowi rzeczywistych kluczy podstawowych (nie tylko kluczy DB, ale wszystkich głównych akcesorów). Zawsze myślałem, że to problem z bezpieczeństwem (ponieważ osoba atakująca może próbować czytać rzeczy, które nie są ich własnością). Teraz muszę sprawdzić, czy użytkownik może mimo to uzyskać …

4
TDD - Outside In vs Inside Out
Jaka jest różnica między budowaniem aplikacji Outside In a budowaniem aplikacji Inside Out za pomocą TDD? Oto książki, które czytałem o TDD i testowaniu jednostkowym: Rozwój oparty na testach: Przez przykład Rozwój oparty na testach: Praktyczny przewodnik: Praktyczny przewodnik Realne rozwiązania dla rozwoju wysokiej jakości ram i aplikacji PHP Rozwój …

12
Jak cofnąć się o krok i spojrzeć na kod świeżymi oczami? [Zamknięte]
Spędziłem ostatni rok jako jednoosobowy zespół, opracowując aplikację dla bogatych klientów (ponad 35 000 LoC, za co jest warta). Obecnie jest stabilny i produkowany. Wiem jednak, że moje umiejętności były zardzewiałe na początku projektu, więc bez wątpienia w kodzie występują poważne problemy. W tym momencie większość problemów dotyczy architektury, struktury …

11
Jak uniknąć kaskadowego refaktoryzacji?
Mam projekt. W tym projekcie chciałem przefaktoryzować go, aby dodać funkcję, i przebudowałem projekt, aby dodać funkcję. Problem polega na tym, że kiedy skończyłem, okazało się, że muszę wprowadzić niewielką zmianę interfejsu, aby to uwzględnić. Więc dokonałem zmiany. I wtedy klasa konsumująca nie może zostać zaimplementowana z obecnym interfejsem pod …


1
Jak projektujesz programy w języku Haskell lub innych funkcjonalnych językach programowania?
Mam pewne doświadczenie w obiektowych językach programowania, takich jak c # lub ruby. Wiem, jak zaprojektować program w stylu obiektowym, jak tworzyć klasy i obiekty oraz jak definiować relacje między nimi. Znam też pewne wzorce projektowe. Jak ludzie piszą programy funkcjonalne? Jak oni zaczynają? Czy istnieją wzorce projektowe dla języków …

9
Czy powinieneś chronić się przed nieoczekiwanymi wartościami z zewnętrznych interfejsów API?
Powiedzmy, że kodujesz funkcję, która pobiera dane wejściowe z zewnętrznego interfejsu API MyAPI. Ten zewnętrzny interfejs API MyAPIma umowę, która stwierdza, że ​​zwróci a stringlub a number. Zaleca się, aby ustrzec się przed rzeczy takie jak null, undefined, boolean, itd., Mimo że nie jest częścią API MyAPI? W szczególności, ponieważ …

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.