Często czytam, że programiści muszą pisać piękny kod, ale dla początkujących pozostaje niejasne, czym jest piękny kod i jak go rozpoznajesz?
Następnym pytaniem jest: jak napisać piękny kod i jakie są praktyczne nawyki, aby poprawić jakość kodu? , o co powinienem dbać, aby kod, który piszę był piękny (i czego się uczę).
algorithms
source-code
torr
źródło
źródło
Odpowiedzi:
„Piękno kupuje się na podstawie osądu oka”.
To powiedziawszy, myślę, że większość programistów zgodzi się, że piękny kod pokazuje równowagę między klarownością i przejrzystością, elegancją, wydajnością i estetyką.
Przejrzystość i przejrzystość : Przejrzystość określa, jak łatwo czytelnik może wywnioskować, co robi kod. Przejrzysty kod robi to, co się wydaje. Jeśli kod wydaje się robić jedną rzecz, ale faktycznie 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 są niezdarne, a inne są zgrabne i pełne wdzięku. Zwięzłość często dodaje elegancji, ale nadmierna zwięzłość może zmniejszyć przejrzystość.
Wydajność : unikanie niepotrzebnego zużycia zasobów (takich jak czas procesora, pamięć i operacje we / wy).
Estetyka : łagodny dla oczu. To jest dość subiektywne. W większości sprowadza się do stylu. Ważnym aspektem jest spójny styl. Kod, który zmienia na przykład wcięcie stylu w połowie, jest brzydki.
źródło
Nie pozwól, aby ludzie oszukiwali cię, że piękny kod to:
Ponieważ tak nie jest. Taki kod jest ładny i na pewno warto go rzucić okiem, ale nie jest to rodzaj kodu, który chcesz rozwiązać.
I wiesz, że ten fantazyjny rekurencyjny meta-szablonowany statyczny polimorfizm, który dziedziczy lambda zmienne - czy cokolwiek, o czym czytałeś online? Być może zechcesz skoczyć na innowacyjne i sprytne sztuczki bez wyraźnego powodu, aby z nich korzystać. Ale kod, który przesuwa granice języka, też nie jest piękny.
Oni są seksowni .
Mnóstwo zabawy, ale zadaj sobie to pytanie: Czy naprawdę chcę spędzać czas na badaniu anatomii tego języka, czy też chcę współpracować z językiem i stworzyć coś pięknego? W końcu język programowania jest jedynie narzędziem do tworzenia.
Czym więc jest piękny kod?
Piękny kod = możliwy do utrzymania kod. TO JEST TO!
TO FORMUŁA!
Jeśli możesz coś napisać, wróć do niego kilka miesięcy później i kontynuuj postępy, to jest piękne. Jeśli rok później zdasz sobie sprawę, że chcesz dodać funkcjonalność, a także ulepszyć istniejącą funkcję i uda ci się to zrobić ze względną łatwością, to jest piękne. Jeśli inni ludzie mogą wejść do Twojej bazy kodów i szybko dowiedzieć się, co się dzieje, ponieważ wszystko jest zorganizowane, będą mieć więcej włosów, a także będą piękne.
Tak więc prawdziwe pytanie, które chcesz zadać, brzmi: „Jak napisać bardziej łatwy do utrzymania kod?”. Obawiam się, że to większe pytanie i jest to dość kreatywna dyscyplina. Po prostu pisz kod, ale tym razem nie zadawaj sobie pytania, czy może być piękniejszy. Zastanów się, czy możesz uczynić to łatwiejszym w utrzymaniu.
źródło
Uważam, że „piękny kod” nie jest terminem obiektywnym ani szczególnie przydatnym. I nie powinniśmy próbować tego definiować.
Typowe słownikowe definicje angielskiego słowa „piękno” wyglądają następująco:
(Źródło http://dictionary.com )
Wspólnym wątkiem jest to, że „piękno” dotyczy tego, co jest estetyczne. Jest to z konieczności 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 „estetyczny”.
Ale powiedzenie, że „piękny kod” ma pewien zestaw atrybutów (jak sugerują inne Odpowiedzi), jest sprzecznością z oczywistym znaczeniem estetyki. Estetyka polega na tym, jak ludzie ... indywidualni ludzie ... postrzegają rzeczy.
Innymi słowy, 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.
Moim zdaniem piękny kod to kod, który moim zdaniem jest piękny i to wszystko. Jest subiektywny i indywidualny, i zostawmy to w tym miejscu.
źródło
Oto moja rada.
Przejrzyj odpowiedzi na pytanie Jak możesz wyjaśnić „piękny kod” nieprogramiście? i zobacz, na jakich cechach się skupiają. Następnie wybierz książkę, taką jak Code Complete, i przeczytaj ją, aby uzyskać porady na temat pisania lepszego kodu.
W pewnym momencie uderzy cię, patrząc na twój starszy kod: „To jest brzydkie”. Będzie to bezpośrednia reakcja estetyczna. Patrząc na to, zrozumiesz, że widzisz swój kod jak programista i widzisz brzydotę, ponieważ wiesz, jak powinien wyglądać lepiej wyglądający kod.
źródło
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 próbowali go zdefiniować.
Dla mnie piękny kod to:
Zwięzły kod, który nie jest ekspresyjny, może być tajemniczy, a kod ekspresyjny, który nie jest zwięzły, jest zwykle wzdęty i uciążliwy do czytania, więc potrzebujesz obu.
Nie uwzględniłbym łatwości konserwacji jako części tego, co czyni kod pięknym, ponieważ piękno jest czymś, co widzisz / czytasz, a nie czymś, na co działasz. Ale z drugiej strony to mój osobisty pogląd.
źródło
Termin piękny kod jest bardzo niejasnym i abstrakcyjnym terminem. Łatwo jest zrozumieć, co to reprezentuje i co to oznacza, ale nigdy nie powinno być postrzegane jako cel dodatkowy.
Przypomina mi wiele metryki pokrycia kodu. Gdy 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 kuloodporne, ale wystarczające do relaksu i robienia innych rzeczy. Posiadanie 40% zasięgu jest dość przerażające i powinno zachęcić cię do zwiększenia tej liczby.
Chodzi o to, że pokrycie kodu jest naprawdę znaczące tylko wtedy, gdy liczba jest niska. Więc nie pozwól mu być nisko. Gdy zasięg wzrośnie do określonego 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 poziomu 100%, a jeśli to zrobisz, zauważysz, że zbytnio skupiłeś się na tym, jak on czyta, lub jak to wygląda, a za mało na tym, co robi lub jak to robi . Więc dojdź do rozsądnego znaku, a potem przestań.
Ale jeśli twój kod jest niezgrabny, jeśli jest to gigantyczny, zawiły bałagan kodu spaghetti, jeśli fizycznie boli cię, aby otworzyć plik, jeśli nie masz komentarzy, dokumentacji itp. Itd., To napraw go. I zrób to jak najszybciej.
Z czasem przekonasz się, że twoja baza kodu jest generalnie czystsza, generalnie jaśniejsza i generalnie piękniejsza oraz, co ważniejsze, bardziej użyteczna, gdy skupiasz się na zmniejszaniu jej niezręczności. Pisanie pięknego kodu nie jest procesem jednoetapowym.
Nie ma magicznej filozofii. Jego 1000 mniejszych kroków wykonanych razem, z których wszystkie służą konkretnemu celowi, który nie ma nic wspólnego z tym, jak pięknie wygląda kod. Ale kiedy podajesz je wszystkie razem, tworzą one piękny kod jako sumę jego części. Jak voltron. Lub kapitan planeta.
źródło
Naprawdę zgadzam się z odpowiedziami tutaj, ale przyjmując mniej techniczne podejście, powiedziałbym, że piękny kod jest wyrazem jasności myśli jego autorów na temat problemu, który przejawia się w dobrze sformułowanym i precyzyjnym, ale prostym języku.
Dla mnie przeglądanie pięknego kodu przypomina oglądanie dzieła sztuki, dostrzeganie coraz to nowych szczegółów, które pokazują intencję twórcy, ale także sposób realizacji różnych części, z których każda daje odpowiedź na tak wiele pytań, a na koniec: jak jego istnienie wydaje się naturalnym prawem, do którego wszystko się dopasowuje tak, że można je opisać jedynie słowami podziwu: wspaniały, inspirujący, piękny.
Z tego punktu widzenia w swojej karierze programisty możesz odkrywać piękny kod, którego inni nie mogą zrozumieć, ponieważ nie mają wiedzy lub mogą nie być już godni uwagi, ponieważ zostały zepsute przez zbyt wiele piękna;)
Piękny kod ma wszystkie pragmatyczne cechy, jak wspomniano inaczej, całkowicie się zgadzam.
źródło
Mam trzy kryteria:
źródło