İlan
Şüphesiz, programlama zor. Bir şey var diller öğren ve çalışma algoritmalar, ancak gözlerinizi dışarı atmanızı istemeyen karmaşık bir çalışma uygulamasını kodlamaya çalışan başka bir canavar.
Bir bakıma, temiz kod yazmak çizim, yemek pişirme veya fotoğrafçılığa çok benzer - aslında olduğundan daha kolay görünüyor. Ne gereği var? Faydaları buna değer olduğu için:
- Sorunların çözümü kolaylaşıyor. Temiz kodda düşünmeye başladığınızda, problem çözme değişikliklerine yaklaşımınız. Kaba zorlama çözümleri yerine, algoritmalarınız ve yazılım tasarımınız daha zarif ve kasıtlı hale gelir.
- Bakım için daha az zaman harcanır. Temiz kodun okunması ve anlaşılması daha kolaydır, bu nedenle belirli segmentlerin gerçekte ne yaptığını anlamaya çalışmak için daha az zaman harcamak ve düzeltme, revize etmek, genişletmek vb.
- Fikirler daha açık bir şekilde iletilir. Diğer programcılarla çalışıyorsanız, temiz kod, hepiniz arasındaki yanlış anlama olasılığını azaltır, bu da uzun vadede daha az hata anlamına gelir.
Temiz kod yazmaya nasıl başlayacağınız aşağıda açıklanmıştır.
1. Açıklayıcı Adları Kullan
Değişkenler, sınıflar ve fonksiyonlar nelerdir? Buna cevap vermenin birçok yolu vardır, ancak gerçekten düşündüğünüzde, bu şeyler bir programcı ve bir uygulamanın temel mantığı arasındaki arayüzden başka bir şey değildir.
Bu nedenle, değişkenler, sınıflar ve işlevler için belirsiz ve tanımsız adlar kullandığınızda, esasen uygulama mantığını kodu okuyan herhangi bir programcıdan gizlersinizdahil.
“Ben harika bir programcı değilim; Ben sadece harika alışkanlıkları olan iyi bir programcıyım. ”
- Kent Beck
Adlı bir değişken ne yapar d xy
aslında ne demek? Kim bilir. Anlamını tersine çevirmek için muhtemelen kodun tamamını okumak zorunda kalacaksınız. Öte yandan, bir değişkenin anlamı distanceBetweenXY
anında tanınabilir.
Aynı şey sınıflar ve fonksiyonlar için de geçerlidir. Razı olma CalcTan ()
ne zaman gidebilirsin CalculateTangent ()
veya CalcTangentAngle ()
yerine.
2. Her Sınıfa / Fonksiyona Bir Amaç Verin
Hiç yüzlerce hatta binlerce satır uzunluğundaki bir işlevin içine baktınız mı? Eğer varsa, göz atmanın, anlamanın ve düzenlemenin ne kadar acı çekebileceğini biliyorsunuz. Yorumlar sadece sınırlı bir dereceye kadar yardımcı olabilir.
“Programlama, büyük imkansız bir görevi birkaç küçük olası göreve ayırıyor.”
- Jazzwant
Temiz kod atomik parçalara ayrılmıştır. Her fonksiyon tek bir şey yapmayı ve her sınıf belirli bir kavramı temsil etmeyi amaçlamalıdır. Bu elbette bir basitleştirmedir, ancak şüpheye düştüğünüzde daha basittir.
Uygulamada, karmaşık bir hesaplama GetCreditScore ()
gibi birkaç yardımcı fonksiyona bölünmesi gerekebilir GetCreditReports ()
, ApplyCreditHistoryAge ()
, ve FilterOutstandingMarks ()
.
3. Gereksiz Kodu Sil
Bu kötü alışkanlık, zaman zaman hala mücadele ettiğim alışkanlıktır. Genellikle böyle olur: Ben bir kod parçası düzeltmek veya optimize etmek istiyorum, bu yüzden onu yorumlamak ve hemen altında bir yeniden yazma yapmak - ve çalışıyor olsa bile, ben her durumda eski kodu orada tutmak.
“Yazılımın başka bir şey gibi olmaması, atılması gerektiği mümkün mü: bütün mesele onu her zaman bir sabun köpüğü olarak görmek mi?”
- Alan J. Perlis
Zamanla, artık gerekli olmayan bir sürü yorum bloğu biriktiriyorum ve henüz kaynak dosyalarımı karıştırıyorum. Ve komik olan şey, birçok durumda, çevreleyen kodun evrimleşmesidir, bu nedenle yorum yapılan kod geri yüklense bile çalışmaz.
Mesele şu ki, “yedek kodu” yorumlama uygulaması, kaynak kontrolü tarafından geçersiz kılınmıştır. Git veya Mercurial gibi bir şey kullanmıyorsanız, kaynak kontrolünü hemen kullanmaya başla. Temiz kod sizi bekliyor.
Unutmayın, bir web çerçevesiyle kolayca başarabileceğiniz tekrarlayan kodlar yazmaktan kaçınmak da önemlidir. Burda biraz var geliştirici olarak öğrenmeye değer web çerçeveleri Geliştiriciler İçin Öğrenmeye Değer 5 Web ÇerçevesiGelişmiş web geliştirme öğrenmek ister misiniz? Bu web geliştirme çerçevelerini kullanarak tekrarlayan kod yazmaktan kaçının. Daha fazla oku .
4. Okunabilirlik> Akıllılık
Çok fazla programcı sanki on satırı sıkıştırmak bir şekilde daha temizmiş gibi “temiz kodu” “akıllı kod” ile birleştiriyor. Elbette, ekranda daha az yer kaplıyor, ancak aslında anlaşılması daha kolay mı? Bazen, belki. Ama çoğu zaman? Hayır.
“Herkes hata ayıklamanın en başta bir program yazmaktan iki kat daha zor olduğunu biliyor. Bu yüzden, yazarken olabildiğince akıllıysanız, nasıl hata ayıklayacaksınız? ”
- Brian W. Kernighan
Bence programcılar zeki kodu seviyor çünkü çözülmüş bir bulmaca ya da bilmece gibi geliyor. Bir şeyi uygulamak için özel ve benzersiz bir yol buldular - eğer yapacaksanız “kısayol” - ve neredeyse programcının becerilerinin doğrulanması gibi davranıyorlar.
Ancak temiz kod yazmak için egonuzu kapıda bırakmanız gerekir.
Kodu her zaman okuyacak olan bir sonraki kişi için optimize edin, çünkü bir sonraki kişinin aslında SİZ olacaksınız ve kendinizinkini okuyamayacak veya anlayamayacak kadar utanç verici bir şey yok zeka.
5. Tutarlı Kodlama Stili Koruyun
Sahibim iyi programlama derslerine karşı hiçbir şey İyi bir Programlama Öğreticisi Nedir?Tüm programlama eğitimleri eşit değildir. Bazıları size ve diğerleri zamanınızı boşa harcar. İşte kaliteli bir programlama eğitiminde neleri arayacağınızı. Daha fazla oku , ancak olumsuz yanlarından biri, yeni başlayanların, özellikle kodlama stiliyle ilgili olarak, çok çeşitli çelişkili alışkanlıklar edinmesidir.
Bir stilin diğerinden daha iyi olduğunu beyan etmek için burada değilim. Kendi çizgilerinde parantez istiyorsanız, bunun için gidin. Yöntem çağrılarını boşluklardan önce almak istiyorsanız, para cezası. Sekmeleri boşluklara tercih ediyorsanız, sizi başka türlü ikna etmeme izin vermeyin.
Ama ne yaparsan yap, tutarlı kal!
Güzel, çirkin olmaktan iyidir.
Açık, örtük olmaktan iyidir.
Basit, karmaşık olmaktan iyidir.
Karmaşık karmaşık olmaktan iyidir.
Düz iç içe geçmişten daha iyidir.
Seyrek yoğun olmaktan iyidir.
Okunabilirlik önemlidir.
- Tim Peters, Python'un Zen'i
Eğer kullanacaksan camelCaseNaming
değişkenler için, underscore_naming
. Eğer kullanırsan GetThisObject ()
bir yerde, gitme FetchThatObject ()
başka bir yer. Sekmeleri ve boşlukları karıştırırsanız, klavyenizi kaldırmayı hak edersiniz.
Ne yapacağınıza en baştan karar verin ve baştan sona yapışın. Python ve C # gibi bazı diller, takip etmek isteyebileceğiniz dil çapında stil kılavuzlarına sahiptir.
6. Doğru Mimariyi Seçin
Projelerinizi oluşturmak için kullanabileceğiniz birçok farklı paradigma ve mimari vardır. Bu ipucunun sağ ihtiyaçlarınız için bir tane, en iyi biri dışarıda. Burada “en iyi” yok.
“Gereksinimler ve tasarım olmadan programlama boş bir metin dosyasına hata ekleme sanatıdır.”
- Louis Srygley
Örneğin, Model-View-Controller (MVC) deseni şu anda web geliştirmede çok popülerdir, çünkü kodunuzu bakım çabalarını en aza indirecek şekilde organize ve tasarlamaya yardımcı olur.
Benzer şekilde, Entity-Component-System (ECS) deseni şu anda oyun geliştirmede çok popüler çünkü oyun verilerinin ve mantığının bakım işlemini kolaylaştıracak şekilde modüle edilmesine yardımcı olur. okuyun.
7. Dilin Deyimlerine hakim olun
Zorluklardan biri yeni bir programlama diline hakim olmak 7 Yeni Bir Programlama Dilinde Uzmanlaşmak için Yararlı Püf NoktalarıKod yazmayı öğrenirken bunalmış olmak sorun değil. Muhtemelen şeyleri öğrenir öğrenmez unutacaksınız. Bu ipuçları tüm bu yeni bilgileri daha iyi korumanıza yardımcı olabilir. Daha fazla oku diğer dillerden ayıran nüansları öğreniyor. Bu nüanslar, çirkin, kıvrık kod ile güzel, bakımı kolay kod arasındaki fark olabilir.
Python, Java ve JavaScript'i düşünün. Hepsi birbirinden son derece farklıdır, hangi dili kullanmayı seçtiğinize bağlı olarak farklı düşünme şekilleri.
“Programlama hakkında düşünme şeklinizi etkilemeyen bir dil bilmeye değmez.”
- Alan J. Perlis
Python tamamen kompakt kod ve ördek yazmayla ilgili iken, Java daha çok ayrıntı ve açıklık tarafına doğru. Her dilin belirli bir kodlama yöntemini teşvik eden deyimleri vardır (Python'daki liste kavrayışları gibi). Onları öğrenmek iyi olur.
Endişe edilecek, aslında verimsiz, güvenilmez veya başka bir şekilde kötü kodla sonuçlanan alt optimal tasarım desenleri olan “anti-desenler” vardır. Tercih ettiğiniz dil ile ilgili tüm yaygın anti-kalıpları inceleyin ve öğrenin.
8. Yüksek Lisans Kurallarını inceleyin
Temiz kod yazmak istiyorsanız, yapabileceğiniz en iyi şey temiz kodun neye benzediğini görmek ve neden böyle olduğunu anlayın - ve bunu yapmanın daha iyi bir yolu yoktur. endüstri ustaları.
Açıkçası, Microsoft’un genel merkezine girip projelerine göz atamazsınız, ancak her zaman iyi bilinen açık kaynaklı projelere göz atın Açık Kaynaklı Bir Uygulamanın Kaynak Kodunu Görüntüleme ve DüzenlemeAçık kaynak kullanmak iyi bir seçim olabilir, ancak doğru topluluğa da yatırım yapmanız gerekir. GitHub, bunu yapmak için en iyi yerlerden biridir, sadece çok fazla miktardan dolayı ... Daha fazla oku . Nereden başlayacağınızı bilmiyor musunuz? Deneyin Github'da sergilenen projeler.
“Herhangi bir aptal bir bilgisayarın anlayabileceği bir kod yazabilir. İyi programcılar insanların anlayabileceği bir kod yazarlar. ”
- Martin Fowler, Yeniden Düzenleme: Mevcut Kod Tasarımını Geliştirmek
Sonuçta, bu sebeplerden biri neden açık kaynaklı projeler var İnsanlar Açık Kaynak Projelerine Neden Katkıda Bulunuyor?Açık kaynak geliştirme, yazılımın geleceğidir. Kullanıcılar için mükemmeldir, çünkü açık kaynaklı yazılım genellikle ücretsizdir ve kullanımı daha güvenlidir. Ancak geliştiricileri kodu ücretsiz olarak katkıda bulunmaya iten nedir? Daha fazla oku : böylece diğerleri onlardan öğrenebilir. Ve eğer böyle bir projeye katkıda bulunmaya karar verirseniz, öğrenme sürecini hızlandırabilir Programlamayı Daha Hızlı Öğrenmenize Yardımcı Olacak 5 Proje FikriProgramlama için öğrenme eğrisini hafifletmenin birkaç yolu vardır. Ellerinizi kirletin ve istediğiniz zaman başlayabileceğiniz yan projelerle daha hızlı öğrenin. Bu beşiyle oyna. Daha fazla oku .
Şahsen, gerçekten temiz bir kod ilk gördüğümde, bir hobinin açık kaynaklı Python projesine rastladığım zamandır. Kod o kadar zarifti ki neredeyse programlamayı bırakıyordum, ama bana çok şey öğretti.
9. İyi Yorumlar Yaz
“İyi yorumlar yazın” programlama dünyasının en eski tavsiye öğesidir. Aslında, yeni başlayanlar yorumlara tanıtılır tanımaz, olabildiğince sık yorum yapmaya teşvik edilirler.
Ama neredeyse tam tersi yönde sallandığımızı düşünüyoruz. Özellikle yeni başlayanlar aşırı yorum yapma eğilimindedir - tanımlanması gerekmeyen şeyleri tanımlamak ve “iyi bir yorum” un aslında ne olduğu noktasını kaçırmak.
“Her zaman kodunuzu koruyan adam, nerede yaşadığınızı bilen şiddetli bir psikopat olacak gibi kodlayın.”
- John Woods
İşte size iyi bir kural: yorumlar, kodun gerçekte ne yaptığını değil, NEDEN bir parça kod olduğunu açıklar. Kod yeterince temiz yazılırsa, ne yaptığına dair açıklayıcı olmalıdır - yorum neden yazıldığının amacına ışık tutmalıdır.
Yorumlar uyarılar için iyi olabilir (yani “bunu kaldırmak A, B ve C'yi kırar”), ancak çoğunlukla hemen koddan çıkarılamayan şeyleri ortaya çıkarın (yani “X, Y ve Z”).
10. Refactor, Refactor, Refactor
Düzenleme, yazma sürecinin bir parçası olduğu gibi, yeniden düzenleme de kodlama sürecinin bir parçasıdır. Yeniden düzenleme için bir kaçınma, sürdürülemez kodla sonuçlanmanın en hızlı yoludur, bu nedenle birçok açıdan bu dikkate alınması gereken en önemli ipucudur.
Kısacası, yeniden düzenleme, gerçek davranışını etkilemeden kodu temizlemek için kullanılan süslü bir terimdir.
“Kodun ne yaptığını anlamam gerektiğini düşündüğümde, kendime bu anlayışı daha açık bir hale getirmek için kodu yeniden düzenleyip düzenleyemeyeceğimi soruyorum.
- Martin Fowler, Yeniden Düzenleme: Mevcut Kod Tasarımını Geliştirmek
Bana yapışan bir bilgelik, “Kötü kod hakkında yorum yapma. Tekrar yaz. ” Fowler'in yukarıdaki alıntıda açıkladığı gibi, kod yorum yapmak için yeterince kafa karıştırıcı hissediyorsa, belki de onu yeniden düzenlemeniz gerekir.
Ayrıca, projeniz boyunca burada ve orada kod parçalarını düzenlerken, kodu her zaman ilk bulduğunuzdan daha iyi durumda bırakın. Şu anda bir sıkıntı gibi görünebilir, ancak uzun vadede ödeyecektir (ve hatta zihinsel tükenmişliği ortadan kaldırabilir Programlama Tükenmişliği: Kayıp Motivasyonunuzu Nasıl Geri KazanırsınızTüm bu kod satırlarını yazmak fiziksel ve duygusal olarak drene olabilir. Geri almak için ihtiyacınız olan tek şey motivasyonun geri kazanılabileceği bilincidir. Daha fazla oku ).
Her Zaman Öğrenilecek Yeni Bir Şey Var
Temiz kod yazmayı öğrenen bir programcı, temiz nesir yazmayı öğrenen bir romancıya benzer: kendi başına yapmanın doğru bir yolu yoktur, ancak bunu yapmanın birçok yanlış yolu vardır ve usta.
Bazı insanlar gerekenlere sahip değil ve sonuçta iyi için programlamadan çıkın Programcı Olmadığınızı Gösteren 6 İşaretHerkes bir programcı olmak için kesilmez. Programcı olmak istediğinizden tam olarak emin değilseniz, sizi doğru yönde gösterebilecek bazı işaretler aşağıdadır. Daha fazla oku - ve bu iyi çünkü bol miktarda kodlama içermeyen diğer teknik işler Kodlama Herkes İçin Değildir: Onsuz Yapabileceğiniz 9 Teknoloji İşiTeknoloji alanının bir parçası olmak istemiyorsanız cesaretiniz kırılmasın. Kodlama becerisi olmayan insanlar için birçok iş var! Daha fazla oku . Ancak herkes için temiz kod, hayatınızın geri kalanını oraya götürse bile, kesinlikle çabalamaya değer bir şeydir.
Joel Lee'nin bir B.S. Bilgisayar Bilimi ve altı yılı aşkın profesyonel yazma deneyimi. MakeUseOf'un Genel Yayın Yönetmeni.