10 Temel Programlama İlkesi Her Programcının Uyması Gerekenler

  • Lesley Fowler
  • 0
  • 810
  • 43
reklâm

Herkes kod yazabilir. Ama iyi kod? Bu zorlaştığı yer.

Spagetti kodu, başka büyük zincirler, yalnızca bir değişkeni değiştirerek kırılabilecek tüm programlar, gizlenmiş gibi görünen işlevler, vb. Hakkında hepimiz korku hikayeleri duyduk. Kayışınızın altında yalnızca bir dönem programlama tecrübesiyle sevk edilebilir bir ürün yapmaya çalıştığınızda ne olur?.

Kod yazmak için yetinmeyin Eserleri. Yapabilecekleri kod yazmayı hedefleyin. korunmak - Sadece kendiniz için değil, gelecekte bir noktada yazılım üzerinde çalışmaya başlayacak biri tarafından da. Bu amaçla, eyleminizi temizlemenize yardımcı olacak birkaç ilke.

1. ÖPÜCÜK

“basit tut, aptal” prensip hemen hemen tüm yaşam için geçerlidir, ancak özellikle orta ila büyük programlama projelerinde gereklidir.

Yaratmak istediğiniz şeyin kapsamını tanımlarken başlangıçta bu şekilde başlar. Sadece oyun geliştirme konusunda tutkulu olmanız, bir sonraki oyunu yaratabileceğiniz anlamına gelmez Warcraft Dünyası veya Büyük otomobil hırsızlığı. Yeterince basitleştirdiğinizi düşünüyorsanız, bir seviye daha basitleştirin - özellik sürünmesi kaçınılmazdır, bu nedenle küçük başlayın.

Ancak kodlama başladıktan sonra bile basit tutun. Karmaşık kodların tasarlanması ve yazılması daha uzun sürüyor, hata ve hatalara daha yatkın ve daha sonra yollarda değişiklik yapmak daha zor. Antoine de Saint-Exupery'nin akıllıca sözleriyle, “Mükemmellik, ekleyecek başka bir şey olmadığı zaman değil, alınacak başka bir şey kalmadığında elde edilir.”

2. KURU

“kendini tekrar etme” prensip temiz ve değiştirilmesi kolay kod için çok önemlidir. Kod yazarken, verilerin çoğaltılmasını ve mantığın çoğaltılmasını önlemek istiyorsunuz. Aynı kod grubunun tekrar tekrar yazıldığını fark ederseniz, bu ilkeyi çiğniyorsunuz.

DRY kodunun tersi WET kodudur: “her şeyi iki kere yaz” (veya “herkesin zamanını boşa harcamak”). WET kodunu teşhis etmenin en iyi yollarından biri kendinize sormaktır: programın davranışını bir şekilde değiştirmek için kaç tane kod alanını değiştirmeniz gerekir??

Bir podcast dizini uygulaması yazdığınızı varsayalım. Arama sayfasında, bir podcast'in ayrıntılarını alma kodunuz var. Podcast sayfasında, söz konusu podcast'in ayrıntılarını almak için kodunuz var. Sık Kullanılanlar sayfasında, aynı alma kodu. Bunların hepsini bir işleve soyutlamayı düşünün, böylece daha sonra düzenlemeniz gerekirse, hepsini tek bir noktada yapabilirsiniz..

3. Açık / Kapalı

Nesneleri yazıp yazmadığınız Nesneye Yönelik Programlama Nedir? Layman'ın Terimlerinde Açıklanan Temel Konular Nesneye Yönelik Programlama Nedir? Layman'ın Koşullarında Açıklanan Temel Bilgiler Modern programlama dillerinin çoğu "nesne yönelimli programlama" (OOP) paradigmasını destekler. Fakat tam olarak OOP nedir ve neden bu kadar yararlı? Java’da veya Python’daki modüllerde kodunuzu yazmayı uzantıya açık ancak tadilatta kapalı. Bu, her türlü proje için geçerlidir, ancak başkalarının kullanması için bir kütüphane veya çerçeve yayınlarken özellikle önemlidir..

Örneğin, bir GUI çerçevesini koruduğunuzu varsayalım. Olduğu gibi bırakarak, son kullanıcıların serbest bırakılan kodunuzu doğrudan değiştirmelerini ve entegre etmelerini bekleyebilirsiniz. Ancak dört ay sonra büyük bir güncelleme yayınladığınızda ne olur? Yaptıkları işleri atmadan bütün eklemelerinizi nasıl uygularlar??

Bunun yerine, kodu bırakın önler doğrudan değişiklik ve teşvik uzantı. Bu çekirdek davranışı değiştirilmiş davranıştan ayırır. Yararlar? Daha fazla kararlılık (kullanıcılar yanlışlıkla çekirdek davranışı bozamaz) ve daha fazla bakım (kullanıcılar yalnızca genişletilmiş kod için endişeleniyorlar). Açık / kapalı prensibi iyi bir API yapmanın anahtarıdır API'ler ve Açık API'ler İnterneti Nasıl Değiştirir? API Nedir ve Açık API'ler Nasıl İnterneti Değiştirir? Bilgisayarınızdaki programları ve ziyaret ettiğiniz web sitelerini nasıl merak ettiniz mi "birbiriyle konuşmak? .

4. Kompozisyon> Kalıtım

“kalıtım üzerine kompozisyon” prensip karmaşık davranışa sahip nesnelerin bunu, bir sınıfı miras almak ve yeni davranışlar eklemek yerine, bireysel davranışlara sahip nesneler içeren örnekleri kullanarak yapması gerektiğini belirtir..

Mirasa aşırı duyarlılık iki ana soruna yol açabilir. İlk olarak, miras hiyerarşisi göz açıp kapayıncaya kadar dağınık hale gelebilir. İkincisi, özel durum davranışlarını tanımlamak için daha az esnekliğe sahipsiniz, özellikle de başka bir miras dalındaki bir miras dalındaki davranışı uygulamak istediğinizde:

Kompozisyon yazmak için daha temiz, bakımı kolay ve ne tür davranışlar tanımlayabileceğinize kadar sınırsız esneklik sağlıyor. Her bireysel davranış kendi sınıfıdır ve bireysel davranışları birleştirerek karmaşık davranışlar yaratırsınız..

5. Tek Sorumluluk

tek sorumluluk ilkesi Bir programdaki her bir sınıf veya modülün yalnızca bir bit spesifik işlevsellik sağlamakla ilgilenmesi gerektiğini söylüyor. Robert C. Martin'in dediği gibi, “Bir sınıfın değişmesi için tek bir nedeni olmalı.”

Sınıflar ve modüller genellikle bu yoldan başlar, ancak özellikler ve yeni davranışlar ekledikçe, yüzlerce hatta binlerce satır kod alan Tanrı sınıflarına ve Tanrı modüllerine dönüşmeleri kolaydır. Bu noktada, onları daha küçük sınıflara ve modüllere ayırmalısınız.

6. Endişelerin Ayrılması

kaygıların ayrılması ilkesi tek sorumluluk ilkesi gibi ama daha soyut düzeyde. Temelde, bir program birbiriyle örtüşmeyen birçok kapsülleme içerecek şekilde tasarlanmalı ve bu kapsüllenmeler birbirini bilmemelidir.

Bunun iyi bilinen bir örneği, bir programı üç ayrı alana ayıran model görünüm denetleyicisi (MVC) paradigmasıdır: veriler (“model”), mantık (“kontrolör”) ve son kullanıcının ne gördüğünü (“görünüm”). MVC varyasyonları günümüzün en popüler web çerçevelerinde yaygındır.

Resim Kredisi: Wikimedia

Örneğin, verilerin bir veritabanına yüklenmesini ve kaydedilmesini yöneten kodun, bu verilerin web'de nasıl oluşturulacağını bilmesi gerekmez. Render kodu, son kullanıcıdan girdi alabilir, ancak daha sonra bu girişi işlem için mantık koduna geçirir. Her bölüm kendini idare eder.

Bu modüler kodla sonuçlanır ve bu da bakımı çok kolaylaştırır. Gelecekte, tüm oluşturma kodunu yeniden yazmak zorunda kalırsanız, verilerin nasıl kaydedildiğine veya mantığın işlendiğine dair endişelenmeden bunu yapabilirsiniz..

7. YAGNI

“ihtiyacın olmayacak” prensip Asla bir işlevsellik için kod yazmamanız gerektiği fikri. Mayıs ayı gelecekte ihtiyaç. Şansın ya sen alışkanlık İhtiyacınız olduğunda zaman kaybı olacak - sadece o da değil, kodunuzun karmaşıklığını da gereksiz yere artıracak.

Bunu KISS ilkesinin özel bir uygulaması ve DRY ilkesini çok ciddiye alanlara bir cevap olarak görebilirsiniz. Genellikle deneyimsiz programcılar, WET kodunu önlemek için mümkün olan en soyut ve genel kodu yazmaya çalışırlar, ancak çok fazla soyutlama, şişirilmiş imkansız olması gereken kodla sonuçlanır.

İşin püf noktası DRY prensibini sadece ihtiyacınız olduğunda uygulamaktır. Eğer tekrar tekrar kod yazıldığını fark ederseniz, onları soyutlayın - ama asla düşünmek bir kod parçası tekrar tekrar yazılacak. Olmamasından daha fazla, olmayacak.

8. Erken Optimizasyondan Kaçının

erken optimizasyon prensibi yok YAGNI ilkesine benzer. Fark, YAGNI’nın eğilimini ele almasıdır. davranışları uygulamak gerekli olmadıkça bu ilke eğilimini ele alırken hızlandırma algoritmaları gerekli olmadan.

Erken optimizasyonla ilgili sorun, bir programın darboğazlarının olayın sonuna kadar nerede olacağını asla bilemeyeceğinizdir. Elbette tahmin edebilirsiniz ve bazen haklı bile olabilirsiniz. Ancak, çoğu zaman, düşündüğünüz kadar yavaş olmayan veya beklediğiniz sıklıkta çağrılmayan bir işlevi hızlandırmaya çalışırken değerli zamanınızı boşa harcarsınız..

O zaman dönüm noktalarınıza olabildiğince basit bir şekilde ulaşın kodunu gir gerçek darboğazları belirlemek.

9. Refaktör, Refaktör, Refaktör

Deneyimsiz bir programcı olarak kabul etmek en zor gerçeklerden biri ilk defa kod nadiren çıkıyor. Olabilir hissetmek şu yeni parlak özelliği uyguladığınızda, ancak programınız karmaşıklık içinde büyüdükçe, gelecekteki özellikler bunu ilk yazış şeklinizle engellenebilir.

Kod tabanları sürekli gelişiyor. Tüm kod parçalarını tekrar gözden geçirmek, yeniden yazmak veya hatta yeniden tasarlamak tamamen normaldir - ve yalnızca normal değil, aynı zamanda sağlıklı olması için. Projenizin ihtiyaçları hakkında daha çok şey biliyorsunuz şimdi yaptığınızdan daha başla, ve bu yeni edinilen bilgileri düzenli olarak eski kodu yeniden düzenlemek için kullanmalısınız..

Her zaman büyük bir süreç olmak zorunda olmadığını unutmayın. Şu sözlerle yaşayan Amerika İzcileri'nden bir sayfa alın: “Kamp yerini bulduğundan daha temiz bırak..” Eski kodu kontrol etmeniz veya değiştirmeniz gerekirse, her zaman temizleyin ve daha iyi bir durumda bırakın.

10. Temiz Kod> Akıllı Kod

Temiz bir kod söyleyerek, egonuzu kapıda bırakın ve akıllı kod yazmayı unut. Neden bahsettiğimi biliyorsunuz: bir çözümden çok bir bilmece gibi görünen ve yalnızca ne kadar akıllı olduğunuzu göstermek için var olan bir tür kod. Gerçek şu ki, kimse gerçekten umursamıyor.

Akıllı kodun bir örneği, mümkün olduğu kadar tek bir satıra bir mantık paketlemektir. Başka bir örnek, garip ama işlevsel ifadeler yazmak için bir dilin inceliklerini kullanmaktır. Birinin söylemesine neden olabilecek herhangi bir şey “Bir dakika ne?” kodunuzun üzerinden geçerken.

İyi programcılar ve okunabilir kod el ele gider. Gerektiğinde yorumlarınızı bırakın. Dil (Python gibi) veya bir şirket (Google gibi) tarafından dikte edilen stil kılavuzlarına uyun. Dil başına deyimleri gözlemleyin ve Java kodunu Python veya tersi olarak yazmayı bırakın. Temizleyici kodu yazmak için ipuçları ile ilgili makalemize bakın. Temizleyici ve Daha İyi Kod Yazmak için 10 İpuçları Temizleyici ve Daha İyi Kod Yazmak için 10 İpucu Temiz kod yazmak aslında olduğundan daha kolay görünüyor, ancak faydaları buna değer. İşte bugün temizleyici kodunu yazmaya başlayabilirsiniz. .

İyi Bir Programcı Ne Yapar??

Beş kişiye sorun, 10 farklı cevap alırsınız. Bana göre, iyi bir programcı, kodlamanın nihayetinde son kullanıcıya hizmet etmesi gerektiğini, bir ekip içinde birlikte çalışmanın kolay olduğunu ve şartnameye ve zamanında projelerini bitirdiğini bilen bir programcıdır..

Kendinizi sıkışmış hissediyorsanız, programcının bloğunu aşma konusundaki makalemize bakın. Ve sadece mutlu kod yazmıyorsanız, programcı olmak istemediğiniz işaretler hakkındaki makalemizi okuyun..

Yeni başlıyorsanız, stres olmadan kodlamanın nasıl yapıldığını öğrenmeye odaklanın. İlk olarak hangi programlama diline dalacağınızdan emin değil misiniz? C # pratik nedenlerle başlamak için iyi bir yerdir 7 C # Programlamanın Pratik Sebepleri 7 C # Programlamanın Pratik Sebepleri C # Programlama Birçok programlama dili vardır, o nedenle hangisini öğrenmelisiniz? İşte C # öğrenmek için birkaç neden. . Ve bunu seçerseniz, bu C programlama ipuçlarını da göz önünde bulundurun. 5 C Başlarken Öğrenmeniz Gerekenler Programlama İpuçları 5 C Başlarken Öğrenmeniz Gerekenler C Programlama dili zor bir üne sahiptir. Ancak, bununla başa çıkabiliyorsanız, bu ipuçlarının gösterdiği gibi her şeyi programlayabilirsiniz.. .




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.