Zadałem to pytanie na Stackoverflow i zanim się wygwizdało, otrzymałem pomocną sugestię od Pétera Töröka, że może to być lepsze miejsce na opublikowanie go.
Programuję w Javie od kilku lat. Często omawiałem decyzje projektowe z kolegami na podstawie tego, co stanowi „dobry styl”. Rzeczywiście istnieje wiele pytań / odpowiedzi StackOverflow, które omawiają projekt na podstawie tego, czy coś jest „w dobrym stylu”.
Ale co sprawia, że „dobry styl”? Jak wiele rzeczy, wiem o tym, kiedy to widzę ... ale chciałem mieć lepszy pomysł niż tylko sumienie, mówiąc, że ten projekt nie wydaje się odpowiedni.
O czym myślisz, aby stworzyć dobry, dobrze zaprojektowany kod?
(Przyznaję, że jest to nieco subiektywne, ponieważ to, co jest „dobrym stylem”, będzie zależeć od danego zadania). (Powinienem również dodać, że nie interesują mnie style zespołowe - np. „Używamy wcięć 2 spacji zamiast 4” ... i nie interesują mnie konwencje kodu Java).
Edycja: dziękuję za wszystkie dobre odpowiedzi / komentarze do tej pory. Szczególnie zależy mi na odpowiedziach, które pomogłyby skodyfikować te rzeczy, które powodują, że sumienie programisty (i być może żołądek) jest kluczem?
źródło
Odpowiedzi:
Kilka krótkich uwag:
źródło
Dodawanie do listy Ryana:
xFactoryFactory
zajęcia, robisz to źle :-)Zatrzymam się tam.
źródło
HammerFactoryFactoryFactory
klasą? ;-)Doceniając odpowiedzi innych, pomyślałem, że sprawiedliwe jest dzielenie się kilkoma rzeczami, o których myślę, próbując napisać dobry kod:
co trzeba wiedzieć o tej klasie / metodzie / zmiennej? tzn. gdzie powinna mieszkać ta wiedza?
jak ten kod może wpłynąć na pamięć / wydajność mojej aplikacji? (Przyznaję, że „przedwczesna optymalizacja jest źródłem wszelkiego zła”, więc nie sugeruję spędzania dużej ilości czasu na optymalizacji, ale raczej świadomość podczas pisania mojego kodu.)
czy jest jasne (z kodu i struktur kodu), co to robi? (Staram się przestrzegać maksymy: „Staraj się, aby ludzie nie mogli zrozumieć, staraj się, aby ludzie nie mogli zrozumieć”).
źródło
Przeczytaj klasy String i ArrayList, aby uzyskać doskonałe przykłady prawidłowego programowania w języku Java. Ale są bardzo zwięzłe, prawie w stylu C, co niekoniecznie najlepiej nadaje się do utrzymania kodu w / minimalnej dokumentacji Java. Powszechną praktyką w moim sklepie jest brak komentarzy, więc staram się komentować za pomocą kodu przy użyciu pełnych nazw zmiennych camelCase i nadmiernego używania znaków nowej linii w celu oddzielenia jednej linii myśli od drugiej. Nadal debatuję za pomocą zakładek, aby oddzielić zmienne od ich wartości. Karty mogą poprawić czytelność, IMO, ale tylko przy minimalnym wykonaniu i jest to bardzo subiektywne. Uważam, że tak naprawdę chodzi o publiczność. Nie ma tutaj najlepszej odpowiedzi.
źródło