
Michael Fisher
0
1160
52
Hiç şüphesiz, programlama zordur Tüm Stressiz Programlama Nasıl Öğrenilir Tüm Stressiz Programlama Nasıl Öğrenilir Belki de bir kariyer için veya bir hobi olarak programlama yapmaya karar verdiniz. Harika! Ama belki bunalmış hissetmeye başladın. Çok iyi değil. İşte yolculuğunuzu kolaylaştırmak için yardım. . Dil öğrenmek ve algoritmaları incelemek bir şeydir, ancak gözlerinizi pençe etmenizi istemeyen karmaşık bir çalışma uygulamasını kodlamaya çalışmak başka bir canavar..
Bir şekilde, temiz kod yazmak çizim yapmak, yemek pişirmek ya da fotoğrafçılık gibi bir şeydir. 5 Sizi Mutlu Bir Kişi Yapacak Yaratıcı Hobiler 5 Sizi Mutlu Bir Kişi Yapacak Yaratıcı Hobiler Zihinsel sağlığınız için genel olarak harikalar yaratabilir mutluluk. İşte bu şekilde yardımcı olduğu kanıtlanmış birkaç yaratıcı hobiler. - aslında olduğundan daha kolay görünüyor. Ne gereği var? Çünkü faydaları buna değer:
- Sorunları çözmek kolaylaşıyor. Temiz kodda düşünmeye başladığınızda, problem çözme yaklaşımınız değişir. Brüt zorlama çözümleri yerine, algoritmalarınız ve yazılım tasarımınız daha zarif ve kasıtlı hale geldi.
- Bakımda daha az zaman harcanır. Temiz kodun okunması ve anlaşılması daha kolaydır, bu nedenle belirli bölümlerin gerçekte ne yaptığını anlamaya çalışırken daha az zaman harcarsınız ve sabitleme, gözden geçirme, genişletme vb..
- Fikirler daha açık bir şekilde iletilir. Diğer programcılar ile çalışıyorsanız, temiz kod hepiniz arasındaki yanlış anlaşılma olasılığını azaltır, bu da uzun vadede daha az hata anlamına gelir.
SİZİN temiz kod yazmaya nasıl başlayacağınız.
1. Tanımlayıcı Adları Kullanın
Değişkenler, sınıflar ve fonksiyonlar nelerdir? Buna cevap vermenin birçok yolu var, ama gerçekten düşündüğünüzde, bunlar bir programcı ile bir uygulamanın altında yatan mantık arasındaki arayüzden başka bir şey değil..
Yani değişkenler, sınıflar ve fonksiyonlar için net olmayan ve tanımsız isimler kullandığınızda, uygulama mantığını, kodu okuyan herhangi bir programcıdan esas olarak şaşırtıyorsunuzdur., kendin dahil.
“Ben iyi bir programcı değilim; Ben sadece büyük alışkanlıklara sahip iyi bir programcıyım.”
- Kent Beck
Değişken ne adlandırır d xy
aslında demek istiyorsun? Kim bilir. Muhtemelen anlamını tersine çevirmek için kodun tamamını okumalısın. Öte yandan, bir değişkenin anlamı gibi distanceBetweenXY
anında tanınabilir.
Aynısı sınıflar ve fonksiyonlar için de geçerlidir. Razı olmayın CalcTan ()
ne zaman gidebilirsin CalculateTangent ()
veya CalcTangentAngle ()
yerine.
2. Her sınıfa / işleve bir amaç verin
Hiç yüzlerce hatta binlerce satır uzunluğunda bir fonksiyonun içine baktınız mı? Eğer varsa, göz atmanın, anlamanın ve düzenlemenin ne kadar acı verici olduğunu bilirsiniz. Yorumlar ancak sınırlı derecede yardımcı olabilir.
“Programlama, büyük ve imkansız bir görevi birkaç küçük olası göreve bölüyor..”
- Jazzwant
Temiz kod, atom parçalarına bölünür. Her fonksiyon tek bir şey yapmayı hedeflemeli ve her sınıf belirli bir kavramı temsil etmeyi amaçlamalıdır. Bu, elbette bir sadeleştirmedir, ancak şüpheye düşerseniz, daha basit olanı daha temizdir..
Uygulamada, gibi karmaşık bir hesaplama GetCreditScore ()
gibi birkaç yardımcı fonksiyona bölünmüş olması gerekebilir GetCreditReports ()
, ApplyCreditHistoryAge ()
, ve FilterOutstandingMarks ()
.
3. Gereksiz Kodu Sil
Bu kötü alışkanlık, zaman zaman hala mücadele ettiğim biri. Genelde şöyle olur: Bir kod kodunu düzeltmek veya optimize etmek istiyorum, bu yüzden onu yorumluyorum ve hemen altında bir yeniden yazıyorum - ve çalışsa bile eski kodu orada tutuyorum.
“Yazılımın başka hiçbir şeye benzememesi, atılması gerektiği anlamına gelmesi mümkün mü: bütün mesele, onu her zaman sabun köpüğü olarak görmek.?”
- Alan J. Perlis
Zaman geçtikçe, artık gerekmeyen ama kaynak dosyalarımı karıştıran çok sayıda yorumlanmış kod bloğu biriktiriyorum.. İşin komik yanı, birçok durumda, çevre kodunun evrimleşmesi, böylece yorumlanan kod geri yüklense bile çalışmaz.
Mesele şu ki, bu yorum yapma pratiği “yedek kod” kaynak kontrolü ile eski yapıldı. Git veya Mercurial gibi bir şey kullanmıyorsanız, kaynak kontrolünü hemen kullanmaya başlamanız gerekir. Git Nedir ve Neden Geliştirici Kullanmalısınız? Eğer Geliştirici iseniz, Git ve Neden Sürüm Kontrolü Kullanmalısınız? Bir Geliştirici Web geliştiricileri olarak, yerel geliştirme sitelerinde çalışma eğiliminde olduğumuz çoğu zaman işimiz bittiğinde her şeyi yükleriz. Sadece sen olduğunda ve değişiklikler küçük olduğunda bu iyidir. Temizleyici kod sizi bekliyor.
4. Okunabilirlik> Akıllılık
Çok fazla programcı birleşti “temiz kod” ile “akıllı kod”, sanki on çizgiyi tek bir parçaya sıkıştırmak bir şekilde daha temiz. Tabii, ekranda daha az yer kaplıyor, ancak anlaşılması gerçekten daha kolay mı? Bazen belki. Ama çoğu zaman? Yok hayır.
“Herkes hata ayıklamanın ilk başta bir program yazmaktan iki kat daha zor olduğunu bilir. Peki, yazarken olabildiğince zekiyseniz, nasıl hata ayıklayabilirsiniz??”
- Brian W. Kernighan
Bence programcılar zeki kodu seviyorlar çünkü çözülmüş bir bilmece veya bilmece gibi geliyor. Bir şeyi uygulamak için özel ve benzersiz bir yol buldular - “kısayol” eğer - ve neredeyse programcının becerilerinin bir geçerliliği gibi davranıyor.
Ancak temiz kod yazmak için, egonuzu kapıda bırakmanız gerekir..
Kodu her zaman okuyacak bir sonraki kişi için optimize edin, çünkü her durumda, bir sonraki kişi aslında SEN olacak ve kendi akıllılığınızı okuyamamak veya anlayamamaktan daha utanç verici bir şey olamaz..
5. Tutarlı bir Kodlama Stili tutun
İyi programlama derslerine karşı hiçbir şeyim yok İyi Programlama Eğitimi Nedir? İyi Bir Programlama Öğreticisi Yapan Nedir? Tüm programlama dersleri eşit değildir. Bazıları size ve bazılarına zamanınızı boşa harcayarak yarar sağlar. İşte kaliteli bir programlama eğitiminde nelere dikkat etmeniz gerekiyor. Ancak olumsuz yönlerden biri, yeni başlayanların, özellikle de kodlama stiliyle ilgili olarak, çok çeşitli çelişkili alışkanlıklar edinmelerine neden olmalarıdır..
Bir stilin diğerinden daha iyi olduğunu ilan etmek için burada değilim. Kendi satırlarında diş telleri istiyorsanız, bunun için gidin. Metot çağrılarından önce boşluklarla aramak istiyorsanız, sorun yok. Sekmeleri boşluklara tercih edersen, seni ikna etmeme izin verme.
Ama ne yaparsan yap, tutarlı ol.!
Güzel çirkin daha iyidir.
Açık, örtük olmaktan iyidir.
Basit karmaşıktan daha iyidir.
Karmaşık karmaşıktan daha iyidir.
Düz iç içe daha iyidir.
Seyrek yoğun daha iyidir.
Okunabilirlik sayar.
- Tim Peters, Python'un Zenleri
Eğer kullanacaksan camelCaseNaming
değişkenler için underscore_naming
. Eğer kullanırsan GetThisObject ()
bir yerde, gitme FetchThatObject ()
başka bir yer. Ve sekmeleri ve boşlukları karıştırırsanız, klavyenizi elinize almayı hak etmiş olursunuz..
Baştan itibaren ne yapacağınıza karar verin ve başından sonuna kadar devam edin. Python ve C # gibi bazı diller, takip etmek isteyebileceğiniz dil genelinde stil kılavuzlarına sahiptir..
6. Doğru Mimariyi Seçin
Projelerinizi oluşturmak için kullanabileceğiniz birçok farklı paradigma ve mimarisi var. Bu ipucunun seçim hakkında nasıl olduğuna dikkat edin. sağ ihtiyaçlarınız için bir tane, seçme konusunda değil en iyi Biri orada. Yok “en iyi” İşte.
“Gereksinimler ve tasarım olmadan, programlama boş bir metin dosyasına hata ekleme sanatıdır.”
- Louis Srygley
Örneğin, Model-View-Controller (MVC) modeli şu anda web geliştirmede çok popülerdir çünkü kodunuzu düzenli tutmaya ve bakım çalışmalarını en aza indirecek şekilde tasarlamaya yardımcı olur..
Benzer şekilde, Entity-Component-System (ECS) modeli şu anda oyun geliştirmede çok popülerdir, çünkü oyun verilerini ve mantığını, bakımı kolay olacak şekilde modüle etmesine yardımcı olur, çünkü okunması kolay kod üretilir..
7. Dilin Deyimlerinde Ustalaşın
Yeni bir programlama diline hakim olmanın zorluklarından biri 7 Yeni Bir Programlama Dilini Yönetmek İçin Faydalı Püf Noktalar 7 Yeni Bir Programlama Dilini Yönetmek İçin Faydalı Püf Noktalar Kodlamayı öğrenirken bunalmış olmak sorun değil. Muhtemelen bir şeyleri öğrendiğiniz kadar çabuk unutacaksınız. Bu ipuçları, tüm bu yeni bilgileri daha iyi saklamanıza yardımcı olabilir. onu diğer dillerden ayıran nüansları öğreniyor. Bu nüanslar çirkin, kıvrımlı kod ve güzel, bakımı kolay kod arasındaki fark olabilir.
Python, Java ve JavaScript'i düşünün. Hepsi birbirinden son derece farklı, gerektiren bir dereceye kadar hangi dili kullanacağınıza bağlı olarak farklı düşünme yöntemleri.
“Programlama hakkındaki düşüncelerinizi etkilemeyen bir dil bilmeye değmez.”
- Alan J. Perlis
Python tamamen küçük kodlama ve ördek yazmasıyla ilgili iken, Java daha fazla ayrıntı ve açıklık yönüne doğru. Her dilin, belirli bir kodlama biçimini teşvik eden deyimleri (Python'daki liste kavramaları gibi) vardır. Onları öğrenmek için iyi yaparsın.
Ayrıca orada “Anti-desen” Endişelenmek, aslında verimsiz, güvenilmez veya başka bir şekilde kötü kodla sonuçlanan alt-optimal tasarım desenleridir. Seçtiğiniz dille ilgili tüm ortak kalıpları inceleyin ve öğrenin.
8. Master 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 anlamaya çalışmaktır - ve bunu yapmanın sektörün kaynak dosyalarını incelemek yerine daha iyi bir yolu yoktur. ustaları.
Açıkçası, Microsoft'un karargahına giremez ve projelerine bakamazsınız, ancak her zaman iyi bilinen açık kaynaklı projelere göz atabilirsiniz. Açık Kaynaklı Bir Uygulamanın Kaynak Kodunu Görüntüleme ve Düzenleme Kaynak Kodunu Görüntüleme ve Düzenleme Açık Kaynaklı Bir Uygulamanın Açık kaynak kodlu olması iyi bir seçim olsa da, doğru topluluğa yatırım yapmanız da gerekir. GitHub bunu yapabilecek en iyi yerlerden biri, sadece büyük miktar nedeniyle ... . Nereden başlayacağınızı bilmiyor musunuz? Github'da sergilenen projeleri deneyin.
“Herhangi bir aptal bir bilgisayarın anlayabileceği bir kod yazabilir. İyi programcılar, insanların anlayabileceği kodlar yazar..”
- Martin Fowler, Yeniden düzenleme: Mevcut Kod Tasarımının Geliştirilmesi
Sonuçta, açık kaynak projelerinin var olmasının sebeplerinden biri İnsanlar Açık Kaynak Projelerine Neden Katılıyor? İnsanlar Açık Kaynaklı Projelere Neden Katkıda Bulunuyor? Açık kaynak geliştirme yazılımın geleceğidir. Kullanıcılar için harika çünkü açık kaynaklı yazılımlar genellikle bedavadır ve çoğu zaman kullanımı daha güvenlidir. Ancak geliştiricileri kodu ücretsiz olarak katkıda bulunmaya zorlayan şey nedir? : başkaları onlardan öğrenebilir. Ve eğer böyle bir projeye katkıda bulunmaya karar verirseniz, öğrenme sürecini hızlandırabilir. 5 Daha Hızlı Programlamayı Öğrenmenize Yardımcı Olmak İçin Proje Fikirleri 5 Daha Hızlı Programlamayı Öğrenmenize Yardımcı Olmak için Proje Fikirleri Daha Hızlı Programlamayı öğrenmek için birkaç yol vardır. Ellerinizi kirletin ve istediğiniz zaman başlayabileceğiniz yan projelerle daha hızlı öğrenin. Bu beş kişiyle oynayın. .
Şahsen, gerçekten temiz bir kod ilk gördüğümde, belirli bir hobinin açık kaynaklı Python projesine rastladım. Kod o kadar zorlayıcıydı ki, neredeyse programlamayı bırakıyordum, ama bana çok şey öğretiyordu..
9. İyi Yorum Yaz
“İyi yorumlar yaz” programlama dünyasındaki en eski tavsiyedir. Aslında, yeni yorumlar yorumlarla paylaşılır tanıtılmaz, olabildiğince sık yorum yapmaya teşvik edilirler.
Ama neredeyse ters yönde çok fazla sallandığımızı hissediyor. Özellikle de yeni başlayanlar, aşırı yorum yapma eğilimindedir; “iyi yorum” aslında.
“Her zaman kodunuzu korumayı bitiren adam nerede yaşadığınızı bilen şiddetli bir psikopat olacakmış gibi kodlayın.”
- John Woods
İşte size iyi bir kural var: NEDEN kodun NEDEN yerine bir kod parçasının bulunduğunu açıklamak için yorumlar var. Eğer kod yeterince temiz bir şekilde yazılırsa, ne yaptığı konusunda kendi kendini açıklayıcı olmalıdır - yorum, neden yazıldığı arkasındaki niyete ışık tutmalıdır..
Yorumlar uyarılar için iyi olabilir (yani. “bunu kaldırmak A, B ve C'yi kıracak”) fakat çoğu zaman, derhal koddan toplanamayan şeyleri ortaya çıkarmalıdır (ör.. “bu parametreyi kullanın çünkü X, Y ve Z”).
10. Refaktör, Refaktör, Refaktör
Düzenleme yazma işleminin bir parçası olduğu gibi, yeniden düzenleme de kodlama işleminin bir parçasıdır. Yeniden düzenlemeye karşı bir isteksizlik, sürdürülemez bir kodla sonuçlanmanın en hızlı yoludur, bu nedenle birçok açıdan bu göz önünde bulundurulması gereken en önemli ipucu..
Kısacası, yeniden düzenleme, gerçek davranışını etkilemeden kodu temizlemek için sadece süslü bir terimdir..
“Ne zaman kodun ne yaptığını anlamam gerektiğini düşünmek zorunda kaldığımda, kendime bu anlayışı daha çabuk görünür kılmak için kodu yeniden düzenleyebilir miyim?.”
- Martin Fowler, Yeniden düzenleme: Mevcut Kod Tasarımının Geliştirilmesi
Bana bağlı kalmış bir bilgelik demek, “Kötü kod yorum yapmayın. Yeniden yaz.” Fowler yukarıdaki alıntıda açıkladığı gibi, eğer kod, yorum yapmanız gerekecek kadar kafa karıştırıcı hissediyorsa, belki de yeniden düzenlemelisiniz.
Ayrıca, projeniz boyunca burada ve orada kod bitlerini düzenlerken, Kodu ilk bulduğunuzdan daha iyi bir durumda bırakın.. Şu an için sıkıntı gibi görünebilir, ancak uzun vadede karşılığını alacaktır (ve hatta zihinsel tükenmeden bile kurtulabilir) Programlama Tükenmişliği: Kayıp Motivasyonunuzu Nasıl Geri Kazanabilirsiniz Programlama Tükenmişliği: Kayıp Motivasyonunuzu Nasıl Geri Kazanabilirsiniz? kod fiziksel ve duygusal olarak boşalabilir. Geri almak için tek ihtiyacınız motivasyonun yeniden kazanılabileceği bilincidir.).
Öğrenecek Her Zaman Yeni Bir Şey Var
Temiz kod yazmayı öğrenen bir programcı, temiz nesir yazmayı öğrenen bir romancıya benzer: bunu yapmanın doğru bir yolu yoktur, ancak bunu yapmanın birçok yanlış yolu vardır ve Master yıllar.
Bazı insanlar gerekenlere sahip değiller ve sonunda iyi bir program için programlamayı bırakıyorlar. 6 Programcı Olmayacağınız İşaretler 6 Programcı Olmayacağınız İşaretler Herkes programcı olmaktan mahrum değil. Bir programcı olmak istediğinizden tamamen emin değilseniz, işte sizi doğru yöne işaret edebilecek bazı işaretler. - ve bu sorun değil çünkü kodlama içermeyen birçok teknik iş var. Kodlama Herkes İçin Değil: 9 Onsuz Yapabildiğiniz Teknik İşler Kodlama Herkes İçin Değil: 9 Onsuz Yapabileceğiniz Teknik İşler ' teknoloji alanının bir parçası olmak istiyorsanız, cesaretiniz kırılmamalıdır. Kodlama becerisi olmayan insanlar için birçok iş var.! .
Ancak herkes için temiz kod, hayatınızın geri kalanını oraya götürse bile, kesinlikle çabalamaya değer bir şeydir..
Temiz kod sizin için ne kadar önemli? Kodunuzu temiz ve düzenli tutmak için hangi kurallara uyuyorsunuz? Paylaşacak başka bilgelik parçası var mı? Aşağıdaki yorumlarda bize bildirin!