Zamknięte . To pytanie jest
oparte na opiniach . Obecnie nie przyjmuje odpowiedzi.
Komentarze
Odpowiedź
„Piękno kupuje się osądem oka”.
To powiedziawszy, myślę, że większość programistów zgodzi się, że piękny kod demonstruje równowagę między jasność i przejrzystość, elegancja, wydajność i estetyka.
-
Jasność i przejrzystość : Przejrzystość polega na tym, jak łatwo czytelnik może wywnioskować, co robi kod. Przezroczysty kod robi to, co się wydaje. Jeśli kod wydaje się robić jedną rzecz, ale w rzeczywistości robi coś innego (lub coś więcej), nie jest przejrzysty – wprowadza w błąd.
-
Elegancja : istnieje wiele sposobów implementacji większości algorytmów, ale niektóre sposoby są niezgrabne, podczas gdy inne są zgrabne i pełne gracji. Zwięzłość często dodaje elegancji, ale nadmierna zwięzłość może zmniejszyć przejrzystość.
-
Wydajność : unikanie niepotrzebnego wykorzystania zasobów (takich jak czas procesora, pamięć i operacje we / wy).
-
Estetyka : łagodne dla oczu. To dość subiektywne. Sprowadza się to głównie do stylu. Jedną z ważnych kwestii jest posiadanie konsekwentnego stylu. Kod, który zmienia się, na przykład styl wcięcia w połowie, jest brzydki.
Komentarze
Odpowiedź
Nie pozwól ludziom oszukiwać się, że piękny kod jest następujący:
- sprytne algorytmy
- podstępne funkcje językowe
- rozwiązywanie problemu przy najmniejszej liczbie naciśnięć klawiszy
Ponieważ tak nie jest. Taki kod jest uroczy i na pewno warto go rzucić okiem, ale nie jest to rodzaj kodu, z którym chcesz się ustatkować.
I wiesz, ten fantazyjny rekurencyjny statyczny polimorfizm oparty na meta-szablonach, który dziedziczy zmienne lambdy – czy cokolwiek, o czym czytałeś w Internecie? Możesz chcieć skorzystać z innowacyjnych i sprytnych sztuczek bez wyraźnego powodu, aby ich używać. Ale kod, który przesuwa granice języka, też nie jest piękny.
Są sexy .
Mnóstwo zabawy, ale zadaj sobie pytanie: czy naprawdę chcę spędzić czas na zgłębianiu anatomii tego języka, czy też chcę pracować razem z językiem i zbudować coś pięknego? W końcu język programowania jest jedynie narzędziem do tworzenia.
Więc jaki jest piękny kod?
Piękny kod = możliwy do utrzymania kod. TO TAKIE SIE!
TO FORMUŁA !
Jeśli możesz coś napisać, wróć do tego kilka miesięcy później i kontynuuj pracę nad tym, to jest to piękne. Jeśli rok później zdasz sobie sprawę, że chcesz również dodać funkcjonalność jako ulepszenie istniejącej funkcji, a uda ci się to zrobić ze względną łatwością, to TO jest piękne. Jeśli inni ludzie mogą wejść do twojego kodu i szybko dowiedzieć się, co się dzieje, ponieważ sprawy są zorganizowane, będą miały więcej włosów, a także będą piękne.
Więc prawdziwe pytanie, które chcesz zadać, to : „Jak napisać łatwiejszy do utrzymania kod?”. Obawiam się, że to większe pytanie i to dość twórcza dyscyplina. Po prostu pisz dalej kod, ale tym razem nie zadawaj sobie pytania, czy może być piękniejsze. Zadaj sobie pytanie, czy możesz uczynić go łatwiejszym w utrzymaniu.
Komentarze
Odpowiedź
Uważam, że „piękny kod” nie jest terminem obiektywnym ani szczególnie użytecznym. I nie powinniśmy próbować tego definiować.
Typowe definicje słownikowe angielskiego słowa „piękno” wyglądają następująco:
- „1. połączenie wszystkich cechy osoby lub rzeczy, które zachwycają zmysły i zadowalają umysł „
- ” 1. jakość obecna w osobie lub rzeczy, która daje intensywną przyjemność estetyczną lub głębokie zadowolenie umysłowi lub zmysłom. ”
- „1. Jakość, która sprawia przyjemność umysłowi lub zmysłom i jest związana z takimi właściwościami, jak harmonia formy lub koloru, doskonałość artyzmu, prawdomówność i oryginalność.”
(Źródło http://dictionary.com )
Wspólnym wątkiem jest „piękno” dotyczy tego, co jest estetyczne. To jest koniecznie subiektywne … co ilustruje powiedzenie „Piękno jest w oku patrzącego”.
Możemy zastosować słowo „piękno” do kodu , a oczywistym znaczeniem jest to, że kod jest „przyjemny pod względem estetycznym”.
Jednak stwierdzenie, że „piękny kod” ma określony zestaw atrybutów (jak sugerują inne odpowiedzi) jest zaprzeczeniem funkcji oczywiste znaczenie estetycznego. Estetyka polega na tym, jak ludzie … indywidualni ludzie … postrzegają rzeczy.
Lub mówiąc z drugiej strony jest coś odrażającego w tym, że ktoś mówi mi, co powinienem uważać za piękne, czy to w ludziach, dziełach sztuki, czy … kodzie.
O ile jeśli o mnie chodzi, piękny kod to kod, który uważam za piękny i to wszystko. Jest to subiektywne i indywidualne, i zostawmy to na tym.
Odpowiedź
Oto moja rada.
Przejrzyj odpowiedzi do Jak możesz wyjaśnić " piękny kod " dla nieprogramisty? i zobacz, na jakich cechach powinni się skupić. Następnie weź książkę, taką jak Code Complete , i przeczytaj ją, aby dowiedzieć się, jak napisać lepszy kod.
W pewnym momencie uderzy Cię to, gdy spojrzysz na starszy kod , „To jest brzydkie”. Będzie to bezpośrednia reakcja estetyczna. Patrząc na to, „zdasz sobie sprawę, że” patrzysz na swój kod jak programista i widzisz brzydotę, ponieważ wiesz, jak powinien wyglądać lepiej wyglądający kod.
Odpowiedź
To, że często czytasz o pięknym kodzie, nie oznacza, że ludzie, którzy o nim piszą, mają tę samą definicję. Niestety, sądząc po Twoim pytaniu, nie wydaje się, że nawet się przejmowali zdefiniuj go w pierwszej kolejności.
Dla mnie piękny kod to:
Zwięzły kod, który nie jest wyrazisty, może być tajemniczy, a ekspresyjny kod, który nie jest zwięzły, jest zwykle rozdęty i żmudny do czytania, więc potrzebujesz obu.
Nie uwzględniałbym konserwacji jako części tego, co tworzy kod piękna, ponieważ piękno to coś, co widzisz / czytasz, a nie coś, na co działasz. Ale z drugiej strony jest to mój osobisty pogląd.
Odpowiedź
Termin piękny kod to bardzo niejasny i abstrakcyjny termin. Łatwo jest zrozumieć, co reprezentuje i co oznacza, ale nigdy nie powinno być postrzegane jako coś więcej niż drugorzędny cel.
Bardzo przypomina mi metrykę pokrycia kodu. Kiedy osiągniesz wystarczająco wysoką liczbę, możesz się zrelaksować i przejść do czegoś innego. Posiadanie bazy kodu z około 80% pokryciem jest świetne, nie jest kuloodporne, ale wystarczające, aby się wyluzować i robić inne rzeczy. Posiadanie 40% pokrycia jest dość przerażające i powinno zachęcić cię do zwiększenia tej liczby.
Chodzi o to, że pokrycie kodu ma znaczenie tylko wtedy, gdy liczba jest niska. Więc nie pozwól, żeby był niski. Kiedy zasięg wzrośnie do pewnego punktu, przejdź do czegoś innego.
Podobnie piękny kod jest świetny. Jeśli masz ładny kod, świetnie, przejdź do czegoś innego. Nie stresuj się tym zbytnio. Nigdy nie osiągniesz tego 100% znaku, a jeśli to zrobisz, zauważysz, że za bardzo skupiłeś się na tym, jak się czyta lub jak wygląda, a za mało na co to robi lub jak to robi. Więc dojdź do rozsądnego znaku i zatrzymaj się.
Ale jeśli twój kod jest zepsuty, jeśli jest to gigantyczny zagmatwany bałagan kodu spaghetti, jeśli fizycznie boli cię otwarcie pliku, jeśli nie masz komentarzy lub dokumentacja itp. itp., A następnie napraw to. I zrób to jak najszybciej.
Z czasem przekonasz się, że baza kodu staje się ogólnie czystsza, generalnie jaśniejsza i generalnie piękniejsza, a co ważniejsze, bardziej użyteczna, gdy skupisz się na tym, by uczynić go mniej niezręcznym. nie jest to proces jednoetapowy.
Nie ma magicznej filozofii. 1000 mniejszych kroków jest wykonywanych razem, a wszystkie służą konkretnemu celowi, który nie ma nic wspólnego z tym, jak pięknie wygląda kod. obsługują je wszystkie razem, tworzą piękny kod jako sumę jego części. Jak voltron lub planetę kapitana.
Odpowiedź
Naprawdę zgadzam się z odpowiedziami tutaj, ale biorąc pod uwagę mniej techniczne podejście, powiedziałbym, że piękny kod jest wyrazem jego autorów „jasności myśli o problemie, który przejawia się poprzez dobrze sformułowany i precyzyjny, ale prosty język.
Dla mnie przeglądanie pięknego kodu jest bardzo podobne do patrzenia na dzieło sztuki, dostrzegania coraz to nowych szczegółów, które pokazują twórcy intencja, ale także sposób realizacji różnych części, z których każda daje odpowiedź na tak wiele pytań, a następnie, w końcu, jak jej istnienie wydaje się być prawem naturalnym, z którym wszystko jest zgodne w taki sposób, że można je opisać tylko słowami zachwytu: wspaniałe , inspirujący, piękny.
Więc z tej perspektywy w swojej karierze programisty możesz odkrywać piękny kod, którego inni mogą nie zrozumieć, ponieważ brakuje im wiedzy lub mogą nie być już godni uwagi, ponieważ zostali zepsute za dużo piękna;)
Piękny kod ma wszystkie pragmatyczne cechy, o których wspomniano inaczej, całkowicie się z tym zgadzam.
Odpowiedź
Mam trzy kryteria:
- Prosty: Przynajmniej musi być czytelny dla człowieka. Na przykład, możesz napisać kod, który działa na O (1) dla rozwiązania z mnóstwem linii, ale ja wolę kod, który działa z 0 (n) rozwiązuje z kilkoma wierszami. Może się to zmienić w ekstremalnych sytuacjach, ale na początku ważna jest prostota.
- Wielokrotnego użytku: Kod musi być wielokrotnego użytku, ale nie nadpisane. Jeśli potrzebujesz operacji, zdefiniuj ją tak, aby móc jej używać po latach.
- Wcięcie: Może nie stanowi to dla Ciebie problemu, ale dla początkujących jest to pierwsza rzecz do rozwiązania.