10 porad dotyczących pisania Cleaner & Better Code

  • Michael Cain
  • 0
  • 2174
  • 282
Reklama

Bez wątpienia programowanie jest trudne Jak nauczyć się programowania bez stresu Jak nauczyć się programowania bez stresu Być może zdecydowałeś się kontynuować programowanie, czy to dla kariery, czy dla hobby. Świetny! Ale może zaczynasz czuć się przytłoczony. Nie za dobrze. Oto pomoc w ułatwieniu podróży. . Uczenie się języków i studiowanie algorytmów to jedna rzecz, ale to zupełnie inna bestia próbująca napisać złożoną działającą aplikację, która nie sprawia, że ​​chcesz wyłupić sobie oczy.

W pewien sposób pisanie czystego kodu przypomina rysowanie, gotowanie lub fotografowanie. 5 Twórczych hobby, które uczynią cię szczęśliwszą osobą 5 Twórczych hobby, które uczynią cię szczęśliwszą osobą Właściwy kreatywny rynek zbytu może zdziałać cuda dla twojego zdrowia psychicznego i ogólnie szczęście. Oto kilka twórczych hobby, które okazały się pomocne w ten sposób. - wygląda łatwiej niż w rzeczywistości. Więc po co zawracać sobie głowę? Cóż, ponieważ korzyści są tego warte:

  • Problemy stają się łatwiejsze do rozwiązania. Kiedy zaczniesz myśleć w czystym kodzie, twoje podejście do rozwiązywania problemów zmienia się. Zamiast brutalnych rozwiązań, algorytmy i projektowanie oprogramowania stają się bardziej eleganckie i celowe.
  • Na konserwację traci się mniej czasu. Czysty kod jest łatwiejszy do odczytania i zrozumienia, więc spędzasz mniej czasu próbując dowiedzieć się, co faktycznie robią niektóre segmenty, a więcej czasu na naprawę, przeglądanie, rozszerzanie itp..
  • Pomysły są wyraźniej przekazywane. Jeśli pracujesz z innymi programistami, czysty kod zmniejsza prawdopodobieństwo nieporozumień między wami wszystkimi, co oznacza również mniej błędów na dłuższą metę.

Oto jak możesz zacząć pisać czysty kod.

1. Użyj nazw opisowych

Co to są zmienne, klasy i funkcje? Istnieje wiele sposobów, aby na to odpowiedzieć, ale kiedy naprawdę się nad tym zastanowić, te rzeczy są niczym innym jak interfejsem między programistą a podstawową logiką aplikacji.

Więc kiedy używasz niejasnych i nieopisowych nazw dla zmiennych, klas i funkcji, zasadniczo zaciemniasz logikę aplikacji od dowolnego programisty, który czyta kod, w tym ciebie.

“Nie jestem świetnym programistą; Jestem po prostu dobrym programistą o wielkich nawykach.”
- Kent Beck

Co nazywa zmienna dxy naprawdę znaczy? Kto wie. Prawdopodobnie musiałbyś przeczytać cały fragment kodu, aby odtworzyć jego znaczenie. Z drugiej strony znaczenie zmiennej podobnej distanceBetweenXY jest natychmiast rozpoznawalny.

To samo dotyczy klas i funkcji. Nie zadowalaj się CalcTan () kiedy możesz CalculateTangent () lub CalcTangentAngle () zamiast.

2. Daj każdej klasie / funkcji jeden cel

Czy kiedykolwiek zaglądałeś do funkcji o długości setek, a nawet tysięcy linii? Jeśli tak, to wiesz, jak trudny może być przeglądanie, rozumienie i edycja. Komentarze mogą pomóc, ale tylko w ograniczonym stopniu.

“Programowanie dzieli jedno duże niemożliwe zadanie na kilka małych możliwych zadań.”
- Jazzwant

Czysty kod dzieli się na części atomowe. Każda funkcja powinna dążyć do zrobienia jednej rzeczy, a każda klasa powinna dążyć do przedstawienia jednej konkretnej koncepcji. Jest to oczywiście uproszczenie, ale w razie wątpliwości prostsze jest czystsze.

W praktyce takie skomplikowane obliczenia jak GetCreditScore () może być konieczne podzielenie na kilka funkcji pomocniczych, takich jak GetCreditReports (), ApplyCreditHistoryAge (), i FilterOutstandingMarks ().

3. Usuń niepotrzebny kod

Z tym złym nawykiem ciągle się zmagam. Zwykle dzieje się tak: chcę naprawić lub zoptymalizować fragment kodu, więc komentuję go i przepisuję tuż pod nim - i chociaż działa, zachowuję stary kod na wszelki wypadek.

“Czy to możliwe, że oprogramowanie nie jest niczym innym, że powinno zostać odrzucone: chodzi o to, aby zawsze postrzegać je jako bańkę mydlaną?”
- Alan J. Perlis

Z czasem gromadzę wiele skomentowanych bloków kodu, które nie są już potrzebne, ale zaśmiecają moje pliki źródłowe. Zabawne jest to, że w wielu przypadkach otaczający kod ewoluował, więc skomentowany kod nie działałby nawet po przywróceniu.

Chodzi o to, że praktyka komentowania “kod zapasowy” został przestarzały z powodu kontroli źródła. Jeśli nie używasz czegoś takiego jak Git lub Mercurial, musisz od razu zacząć korzystać z kontroli źródła Co to jest Git i dlaczego powinieneś używać kontroli wersji, jeśli jesteś programistą Czym jest Git i dlaczego powinieneś użyć kontroli wersji, jeśli „ jesteś programistą Jako deweloperzy stron internetowych często pracujemy nad lokalnymi witrynami programistycznymi, a następnie po prostu przesyłamy wszystko, gdy skończymy. To dobrze, gdy jesteś tylko ty, a zmiany są niewielkie,… Kod czyszczenia czeka na Ciebie.

4. Czytelność> Spryt

Zbyt wielu programistów się łączy “czysty kod” z “sprytny kod”, tak jakby spakowanie dziesięciu linii w jedną jest jakoś czystsze. Jasne, zajmuje mniej miejsca na ekranie, ale czy rzeczywiście łatwiej to zrozumieć? Czasem może. Ale przez większość czasu? Nie.

“Wszyscy wiedzą, że debugowanie jest dwa razy trudniejsze niż napisanie programu. Więc jeśli jesteś tak sprytny, jak tylko możesz, pisząc go, jak to będzie kiedykolwiek debugować?”
- Brian W. Kernighan

Myślę, że programiści uwielbiają sprytny kod, ponieważ wydaje się, że jest to rozwiązana zagadka lub zagadka. Znaleźli specjalny i unikalny sposób na wdrożenie czegoś - a “skrót” jeśli chcesz - i prawie działa to jako potwierdzenie umiejętności programisty.

Ale żeby napisać czysty kod, musisz zostawić swoje ego u drzwi.

Zawsze optymalizuj kod dla następnej osoby, która go przeczyta, ponieważ najprawdopodobniej ta osoba będzie w rzeczywistości TY i nie ma nic bardziej wstydliwego niż niemożność przeczytania lub zrozumienia własnej sprytności.

5. Zachowaj spójny styl kodowania

Nie mam nic przeciwko dobrym tutorialom programistycznym Co sprawia, że ​​dobry tutorial programistyczny? Co stanowi dobry poradnik programowania? Nie wszystkie samouczki dotyczące programowania są sobie równe. Niektóre przynoszą korzyści Tobie, a inne marnują Twój czas. Oto, czego szukać w samouczku programowania jakości. , ale jedną z wad jest to, że początkujący wybierają wiele sprzecznych nawyków, zwłaszcza jeśli dotyczą stylu kodowania.

Nie jestem tutaj, aby oświadczyć, że jeden styl jest lepszy od drugiego. Jeśli chcesz nawiasy klamrowe na własnych liniach, idź do niego. Jeśli chcesz poprzedzać wywołania metod spacjami, dobrze. Jeśli wolisz tabulatory niż spacje, nie pozwól, że przekonam cię inaczej.

Ale cokolwiek zrobisz, pozostań konsekwentny!

Piękne jest lepsze niż brzydkie.
Jawne jest lepsze niż niejawne.
Prosty jest lepszy niż złożony.
Kompleks jest lepszy niż skomplikowany.
Mieszkanie jest lepsze niż zagnieżdżone.
Rzadki jest lepszy niż gęsty.
Liczy się czytelność.
- Tim Peters, Zen Pythona

Jeśli zamierzasz użyć camelCaseNaming dla zmiennych, nie fałszuj go nazwa_ podkreślenia. Jeśli użyjesz GetThisObject () w jednym miejscu, nie idź z FetchThatObject () gdzieś indziej. A jeśli łączysz tabulatory i spacje, zasługujesz na zabranie klawiatury.

Zdecyduj, co zamierzasz zrobić od samego początku, i trzymaj się tego na zawsze. Niektóre języki, takie jak Python i C #, mają ogólnodostępne przewodniki po stylach, których możesz chcieć przestrzegać.

6. Wybierz odpowiednią architekturę

Istnieje wiele różnych paradygmatów i architektur, których można użyć do tworzenia projektów. Zwróć uwagę, jak ta wskazówka dotyczy wyboru dobrze jeden dla twoich potrzeb, a nie o wyborze Najlepiej jeden tam. Nie ma “Najlepiej” tutaj.

“Bez wymagań i projektu programowanie polega na dodawaniu błędów do pustego pliku tekstowego.”
- Louis Srygley

Na przykład wzorzec Model-View-Controller (MVC) jest obecnie bardzo popularny podczas tworzenia stron internetowych, ponieważ pomaga utrzymać porządek i zaprojektować kod w sposób minimalizujący wysiłki związane z konserwacją.

Podobnie wzorzec Entity-Component-System (ECS) jest obecnie bardzo popularny podczas opracowywania gier, ponieważ pomaga modularyzować dane i logikę gry w sposób, który ułatwia utrzymanie, a jednocześnie tworzy kod łatwiejszy do odczytania.

7. Opanuj idiomy języka

Jedna z trudności w opanowaniu nowego języka programowania. 7 Przydatnych sztuczek do opanowania nowego języka programowania. 7 Przydatnych sztuczek do opanowania nowego języka programowania. Możesz być przytłoczony, kiedy uczysz się kodować. Prawdopodobnie zapomnisz o rzeczach tak szybko, jak się ich nauczysz. Te wskazówki pomogą ci lepiej zachować wszystkie nowe informacje. uczy się niuansów, które oddzielają go od wszystkich innych języków. Te niuanse mogą być różnicą między brzydkim, skomplikowanym kodem a pięknym, łatwym w utrzymaniu kodem.

Rozważ Python, Java i JavaScript. Wszystkie są bardzo różne od siebie, w stopniu wymagającym inny sposób myślenia w zależności od wybranego języka.

“Język, który nie wpływa na sposób myślenia o programowaniu, nie jest wart poznania.”
- Alan J. Perlis

Podczas gdy w Pythonie chodzi o kompaktowe pisanie kodu i kaczych pism, w Javie chodzi bardziej o gadatliwość i jawność. Każdy język ma idiomy (takie jak wyliczenia list w Pythonie), które zachęcają do określonego sposobu kodowania. Dobrze byś się ich nauczył.

Istnieje również “anty-wzory” martwić się, ponieważ są to zasadniczo nieoptymalne wzorce projektowe, które powodują nieefektywny, zawodny lub w inny sposób zły kod. Przestudiuj i oducz wszystkie powszechne anty-wzorce związane z wybranym językiem.

8. Przestudiuj kodeks mistrzów

Jeśli chcesz napisać czysty kod, najlepszą rzeczą, jaką możesz zrobić, to zobaczyć, jak wygląda czysty kod i spróbować zrozumieć, dlaczego tak jest - i nie ma lepszego sposobu na zrobienie tego niż studiowanie plików źródłowych branży mistrzowie.

Oczywiście nie możesz po prostu wejść do siedziby Microsoftu i zajrzeć do ich projektów, ale zawsze możesz przeglądać dobrze znane projekty typu open source Jak przeglądać i edytować kod źródłowy aplikacji typu open source Jak przeglądać i edytować kod źródłowy Aplikacji typu open source Chociaż wybór oprogramowania typu open source może być dobrym wyborem, musisz również zainwestować w odpowiednią społeczność. GitHub to jedno z najlepszych miejsc do zrobienia tego, nie tylko ze względu na samą ilość… . Nie wiesz od czego zacząć? Wypróbuj prezentowane projekty na Github.

“Każdy głupiec może napisać kod zrozumiały dla komputera. Dobrzy programiści piszą kod, który ludzie mogą zrozumieć.”
- Martin Fowler, Refaktoryzacja: poprawa projektu istniejącego kodu

W końcu jest to jeden z powodów, dla których istnieją projekty typu open source. Dlaczego ludzie wnoszą wkład w projekty typu open source? Dlaczego ludzie wnoszą wkład w projekty Open Source? Rozwój oprogramowania typu open source to przyszłość oprogramowania. Jest to świetne dla użytkowników, ponieważ oprogramowanie typu open source jest zwykle dostępne za darmo i często bezpieczniejsze w użyciu. Ale co zmusza programistów do udostępniania kodu za darmo? : aby inni mogli się od nich uczyć. A jeśli zdecydujesz się wnieść wkład w taki projekt, może on przyspieszyć proces uczenia się. 5 pomysłów na projekt, które pomogą Ci szybciej nauczyć się programowania 5 pomysłów na projekt, aby pomóc Ci nauczyć się programowania, szybciej Istnieje kilka sposobów na ułatwienie programowania. Zabrudz ręce i ucz się szybciej dzięki pobocznym projektom, które możesz rozpocząć w dowolnym momencie. Baw się z tymi pięcioma. .

Osobiście pierwszy raz zobaczyłem naprawdę czysty kod, kiedy natknąłem się na projekt Pythona dla pewnego hobbysty. Kod był tak elegancki, że prawie zrezygnowałem z programowania, ale ostatecznie wiele mnie nauczył.

9. Napisz dobre komentarze

“Napisz dobre komentarze” jest najstarszą radą w świecie programowania. W rzeczywistości, jak tylko nowicjusze zostaną wprowadzeni do komentarzy, są prawie zachęcani do komentowania tak często, jak to możliwe.

Ale wydaje się, że za bardzo skręciliśmy w przeciwnym kierunku. W szczególności nowicjusze mają tendencję do nadmiernego komentowania - opisywania rzeczy, które nie muszą być opisywane i nie rozumieją tego, co “dobry komentarz” tak naprawdę jest.

“Zawsze koduj tak, jakby facet, który ostatecznie utrzyma twój kod, będzie brutalnym psychopatą, który wie, gdzie mieszkasz.”
- John Woods

Oto dobra ogólna zasada: istnieją komentarze wyjaśniające, DLACZEGO istnieje kawałek kodu, a NIE W rzeczywistości. Jeśli kod jest napisany wystarczająco czysto, powinien wyjaśniać, co robi - komentarz powinien rzucić światło na intencję, dlaczego został napisany.

Komentarze mogą być przydatne w przypadku ostrzeżeń (tj. “usunięcie tego spowoduje uszkodzenie A, B i C.”), ale w przeważającej części powinien odkrywać rzeczy, których nie można natychmiast pobrać z kodu (tj. “użyj tego parametru, ponieważ X, Y i Z”).

10. Refaktor, Refaktor, Refaktor

Podobnie jak edycja jest częścią procesu pisania, tak samo refaktoryzacja jest częścią procesu kodowania. Niechęć do refaktoryzacji to najszybszy sposób na uzyskanie kodu niemożliwego do utrzymania, więc pod wieloma względami jest to właściwie najważniejsza wskazówka do rozważenia.

Krótko mówiąc, refaktoryzacja jest tylko wymyślnym terminem czyszczenia kodu bez wpływu na jego faktyczne zachowanie.

“Ilekroć muszę myśleć, aby zrozumieć, co robi kod, zadaję sobie pytanie, czy mogę zmienić kod, aby to zrozumienie stało się bardziej widoczne.”
- Martin Fowler, Refaktoryzacja: poprawa projektu istniejącego kodu

Trochę mądrości, która utkwiła we mnie, to powiedzenie, “Nie komentuj złego kodu. Przepisz to.” Jak wyjaśnia Fowler w powyższym cytacie, jeśli kod wydaje się być na tyle skomplikowany, że trzeba go skomentować, być może trzeba go przeredagować.

Ponadto podczas edycji fragmentów kodu tu i tam w całym projekcie, zawsze pozostawiaj kod w lepszym stanie niż wtedy, gdy go znalazłeś. W tej chwili może się to wydawać uciążliwe, ale na dłuższą metę się opłaci (a może nawet powstrzymać wypalenie umysłowe Wypalenie programistyczne: Jak odzyskać utraconą motywację Programowanie wypalenie zawodowe: Jak odzyskać utraconą motywację Pisanie wszystkich wierszy kod może wyczerpać się fizycznie i emocjonalnie. Aby odzyskać motywację, musisz odzyskać motywację.).

Zawsze można się czegoś nauczyć

Programista, który uczy się pisać czysty kod, jest podobny do powieściopisarza, który uczy się pisać czystą prozę: nie ma właściwego sposobu, aby to zrobić sam w sobie, ale istnieje wiele złych sposobów, aby to zrobić, i zajmie to lat opanować.

Niektórzy ludzie nie mają tego, czego potrzeba i ostatecznie kończą programowanie na dobre. 6 znaków, że nie jesteś programistą. 6 znaków, że nie jesteś programistą. Nie wszyscy są programistami. Jeśli nie masz całkowitej pewności, że chcesz zostać programistą, oto kilka znaków, które mogą skierować Cię w dobrym kierunku. - i jest w porządku, ponieważ istnieje wiele innych technicznych zadań, które nie wymagają kodowania Kodowanie nie jest dla wszystkich: 9 zadań technicznych, które można uzyskać bez niego Kodowanie nie jest dla wszystkich: 9 zadań technicznych, które można uzyskać bez niego Don ' zniechęcaj się, jeśli chcesz być częścią dziedziny techniki. Istnieje wiele miejsc pracy dla osób bez umiejętności kodowania! .

Ale dla wszystkich innych czysty kod jest czymś, do czego absolutnie warto dążyć, nawet jeśli dotarcie do niego zajmuje resztę życia.

Jak ważny jest dla Ciebie czysty kod? Jakich zasad przestrzegasz, aby kod był czysty i uporządkowany? Masz jeszcze trochę mądrości do podzielenia się? Daj nam znać w komentarzach poniżej!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.