Arduino ve Ahududu Pi Acemi? İşte Temiz Kod Nasıl Yazılır?

  • Mark Lucas
  • 0
  • 2932
  • 606
reklâm

Yazılım geliştirme hakkında ve daha fazlasıyla başladığınızda, sık sık ifadeye rastlarsınız. “temiz kod”. En saf haliyle, bu diğer kişilerin okuması için kolay olan koddur. Etkileyici ve güzeldir, niyetini kolayca ayırt edebilirsiniz. Ona bakmak.

Temiz kod yazmak, söylenenden daha kolay.

Arduino Olup Olmadığınız Arduino'ya Başlarken: Başlangıç ​​Kılavuzu Arduino'ya Başlarken: Başlangıç ​​Kılavuzu Arduino, esnek, kullanımı kolay donanım ve yazılımı temel alan açık kaynaklı bir elektronik prototip platformudur. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar yaratmak isteyen herkes için tasarlanmıştır. Tinkerer, ya da inşa ediyorsunuz ahududu pi ahududu pi: gayri resmi eğitim ahududu pi: gayri resmi eğitim kaçırmak istediğiniz bir rehber. Python'lu uygulamalar veya hatta bir web geliştiricisiyseniz, kodunuzu başkaları tarafından okunmasını kolaylaştıracak takip etmek için bazı yararlı ipuçları vardır.. İşte bilmeniz gerekenler.

Tutarlı olun

Belki de ilk ve en açık ipucu, tutarlı Yaptığın işte. Fonksiyonlara adlandırmada aynı kalıpları izlemenin iyi bir örneği Yeni başlayanlar için programlamanın mutlak temelleri (Bölüm 2) Yeni başlayanlar için programlamanın mutlak temelleri (Bölüm 2) Fonksiyonların temellerini kapsayan, dönüş değerleri, döngüler ve koşullamalar. Bununla başa çıkmadan önce bölüm 1'i okuduğunuzdan emin olun; burada… ve değişkenler Bilgisayar Programcılığının Temelleri 101 - Değişkenler ve Veri Tipleri Bilgisayar Programcılığının Temelleri 101 - Değişkenler ve Veri Tipleri Daha önce Nesne Yönelimli Programlama hakkında biraz bilgi verdim ve konuştum ve adaşı nereden geliyorsa, programlamanın mutlak dillerine özgü olmayan bir şekilde geçmenin zamanının geldiğini düşündüm. Bu… . Bir adlandırma kuralı seçmeli ve buna bağlı kalmalısınız.

Peki, hangi adlandırma kuralını kullanmalısınız?

Ahududu Pi için Python yazıyorsanız, cevap açıktır. PEP-8 standardı (iyi, temiz Python kodu için barometre), değişken adlarının küçük harflerle yazılması gerektiğini, her kelimenin bir alt çizgi ile ayrıldığını belirtir. Örneğin: gpio_input ve moisture_sensor_reading.

Arduino tarzı kılavuz, değişkenlerinizi Camel Case olarak bilinen bir şeye yazmanız gerektiğini açıkça belirtir. Burada, kelimeler hiçbir şey tarafından ayrılmaz, ancak ilk kelimenin dışında her kelimenin ilk harfi büyük harf olur. Örneğin: ButtonPressed ve temperatureReading.

Elbette, değişken isimlendirme stilleri de vardır. Yukarıdakiler sadece resmi stil rehberleri tarafından tavsiye edilir. Ancak ne seçerseniz seçin, buna bağlı kaldığınızdan emin olun ve aynı adlandırma kurallarını programınız boyunca kullanın.

Anlamlı Yorumlar Yaz

Yorumlar, programınızın ne yaptığını açıklamanın harika bir yoludur. Her işlevin ne yaptığını ve her değişkenin kendi kelimelerinizle neyi temsil ettiğini belirtebilirsiniz. Bu, üçüncü bir tarafın kodunuzu okumasını kolaylaştırır, ancak sonuçta daha iyi anladığınız için kodunuzun bakımını kolaylaştırır.

Ancak yorumlarınızı açık ve etkileyici bir şekilde yazmazsanız, o kadar rahatsız olmayabilir.

Yorum yazarken, kodun nedenini ve bunun nedenini açıklamaya çalışmalısınız. Niyeti açıkça netleştirmeye çalışın ve kodun kendisinin söyleyemediği bir şey söyleyin. Yani, yerine:

// okumayı güncelle

Yazmayı düşünün:

// Tweet atmadan önce, lazer ışınının kaç kez kırıldığını güncelleyin

Dilbilgisel olarak tam ve doğru cümle yazdığınızdan emin olun. Ek olarak, Python için PEP-8 standardı yorum ve değişkenlerinizi daima İngilizce olarak yazmanız gerektiğini söyler. Bu, başkalarının sizinle işbirliği yapmasını kolaylaştırır, kodunuzu açık kaynak olarak yayınlamaya karar verirseniz İngilizce, yazılım geliştirmenin lingua franca'sı olduğundan.

Arduino tarzı kılavuz daha da ileri gidiyor ve her kod bloğunu, her döngü için ve her değişken bildirimini yorumlamanız gerektiğini söylüyor.

Şahsen, bence biraz aşırı. Ayrıntılı, anlamlı değişken isimleri yazıyorsanız, kodunuz zaten kendi kendini belgeliyor demektir. Bu, ihtiyaç duyulduğunu düşündüğünüz yere yorum eklemek için tereddüt etmeyin. Kendi iyi kararını kullan..

Kodunuzu basitleştirin

İlk defa geliştirmeyi öğrenirken, 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. , sık sık büyük bir coşkuyla doluyorsunuz. Seçtiğiniz dil, çerçeve veya platform hakkında alabileceğiniz her şeyi okudunuz. Daha önce hiç tanımadığınız konseptlerle karşılaşmaya başlıyorsunuz ve hepsini kendi kodunuzda kullanmaya çok heveslisiniz..

Üçlü operatörler gibi şeyler bir mantık yoğunlaştırmak için izin veren “if ifadesi” bunun gibi:

 int x = 5; eğer (x < 10)  y = 1;  else  y = 0;  

Tek bir satıra, şöyle:

int x = 5; int y = (x < 10) ? 1 : 0; printf("%i\n", y); 

Üçlü operatörler kesinlikle harika ve onları okumanızı tavsiye ediyorum. Ancak başkalarının okuması kolay olan bir kod yazarken, bunlardan kaçınılması en iyisidir. Bu sadece bir örnek.

Arduino tarzı kılavuz ayrıca, işaretçilerden, #define ifadelerinden ve standart dışındaki veri türlerinden uzak durmanızı da teşvik eder: boolean, char, byte, int, imzasız int, uzun, imzasız uzun, kayan nokta, çift, dize, dizi ve geçersiz. Bunlarda daha az kullanılan, belgelerde açıklanmayan ve çok özensiz olmayan, uint8_t gibi veri türlerinden kaçınmalısınız..

Girinti ve Boşluktan Yararlanma

Temiz kod yazmaya gelince, standart Python yorumlayıcısı tüm kodları zorunlu kıldığı için Python kullanıcıları bir avantaja sahiptir. şart mantıklı bir şekilde yapılandırılmış ve girintili olmak. Her işlev ve sınıf bildiriminin ardından ve koşullu ifadeden sonra girintilemezseniz, programınız çalışmayacaktır..

Arduino'da, yapılandırılmamış, sıkıştırılmış kod yazmanızı engelleyen hiçbir şey yoktur. Bu, sonuçta, okunması zor ve bakımı zordur..

Fakat kodunuzu daha iyi yapılandırmanıza engel olacak hiçbir şey yok..

İlk önce, ne kadar girmeyeceğinizi belirleyin. Her bir metin editörü ASCII kodunu sekme için farklı şekilde ele aldığından ve kodunuzu başkasıyla paylaşıyorsanız, yanlışlıkla girintinize tutarsızlıkları girme şansı vardır. Bu tutarsızlıklar, programınızı bozabilir, özellikle de CoffeeScript CoffeeScript gibi boşluklara duyarlı bir dil kullanıyorsanız, CoffeeScript, Baş Ağrıları Olmadan JavaScript'tir CoffeeScript, Baş Ağrıları Olmadan JavaScript Kullanır. İlk satırımı kullanarak yazdığım günden beri, her zaman içine yazdığımın her zaman bir Jackson… ya da Python gibi görünmesinin bittiğine kızdım. OpenSourceHacker'ın bu makalesi, sekme anahtarından neden kaçınılması gerektiğini daha ayrıntılı olarak açıklamaktadır..

Her girinti için dört boşluk kullanma eğilimindeyim, ancak toplam sayı size bağlı. Sadece tutarlı olduğunuz sürece.

IDE'nizi ve metin editörünüzü her sekmeyi belirli bir sayı kadar boşluk olarak kabul edecek şekilde yapılandırabilirsiniz, ancak sekme anahtarını sorun yaratma riski olmadan kullanmanıza izin verir. Sublime Text 2 kullanıyorsanız, resmi belgelerine bakın. Eğer Vim kullanıyorsanız, .vimrc bu çizgilerle dosya. Arduino editörü bunu sizin için otomatik olarak yapar ve sekmeye bastığınızda iki boşluk ekler.

O zaman, kodunuzu nereye gireceğinizi bilmeniz yeterlidir. İyi bir kural olarak, her bir işlev bildiriminin ardından ve her birinin sonunda girintili olmalısınız Eğer, Başka, için, süre, şalter, ve dava Beyan.

Pek çok editör bütün kod bloklarını bir kerede girintileme özelliğine sahiptir. Sublime Text 2 kullanıyorsanız, bir kısayol tuşu veya tuş vuruşu kombinasyonu ayarlayabilirsiniz. Aksi takdirde, varsayılan birleşimini kullanabilirsiniz (OS X’de). Cmd + [. Arduino editöründe, tuşuna basarak dosyanızın girintisini otomatik olarak düzeltebilirsiniz. Ctrl + T Windows ve Linux'ta ve Cmd + T OS X'te.

Tamamen editörünüze bağlı. kılavuzu oku!

Kendini tekrar etme

İyi yazılım geliştirmenin en önemli mantıklarından biri kendini tekrar etme, hangi genellikle kısaltılır KURU.

DRY kodunu yazmak inanılmaz derecede önemlidir, çünkü programınızın mantığının tutarlı olmasını sağlar, bir yerde bir değişiklik yapmanıza ve global olarak yansıtmasına izin verir ve aynı şeyi tekrar tekrar yazmak için daha az zaman harcarsınız..

KURU kalmanın en iyi yolu, liberal ve cömert kullanımıdır. fonksiyonlar - Tekrarlanan bir görevi bir kod bloğu ile kapsüllendirmek Tekrar ve tekrar arayabilirsin - ve her birinin farklı ve iyi yazılmış olmasını sağlamak.

İyi bir işlev kısa; PEP-8 kılavuzu fonksiyon uzunluğu hakkında çok az şey söylüyor, ancak Temiz Kod: Bob Martin'in Çevik Yazılım İşçiliği El Kitabı (şiddetle tavsiye edilir) “fonksiyonlar 20 satır uzunluğunda olmamalı”. Tercihen, onlar olurdu ondan daha kısa.

İşlevler ayrıca tam olarak bir şey yapmalıdır. İki şey yapan bir işleve ihtiyacınız var? İki fonksiyon yaz.

Bu ipuçları, bir programın akışını izlemeyi ve gerektiğinde sonunda hata ayıklamayı kolaylaştırır. Ayrıca, fazlalıklar kaldırıldığından, depolama sınırlamaları tarafından sıkı şekilde kısıtlanan Arduino kullanıcıları için ek bir avantaj vardır. Bu daha küçük programlarla sonuçlanır.

Açık olun

Yazılım geliştirmenin bir diğer önemli mantığı ise “açık, örtük olmaktan iyidir”. Bu, kodunuzun ilk bakışta ne yaptığını hayrete düşürmesi gerektiği anlamına gelir. Arduino tarzı rehber, böyle bir şeyden kaçınılması gerektiğini söylüyor:

if (buttonPressed) doSomething ();  

Aksine, neler olduğunu açıkça belli etmelisin. Bunun yerine, böyle bir şey yazın:

if (buttonPressed == True) doSomething ();  

Dışarı çık ve kod (iyi)

Temiz kod yazmak şaşırtıcı derecede basittir. Yaptığın her işte tutarlı olmak, fazlalıklardan kaçınmak ve açık olmak zorundasın. Unutmayın, temiz kod yalnızca okunabilir koddur.

Bu konuda pek çok harika okuma materyali var. Mükemmel bir başlangıç ​​noktası Arduino öğretici ve API tarzı kılavuzlardır; ardından Raspberry Pi için Python uygulamaları oluşturuyorsanız PEP-8 standardı izlenir. Başka bir dil kullanıyorsanız (Gemideki Javascript gibi) Nesnelerin İnterneti, Gemiyle Yapma: The Node.js Geliştirme Kurulu Binasının Şeylerin İnterneti ile Yaratma: Node.js Geliştirme Kurulu Gemisi, yeni bir cins Tamamen Node.js üzerinde çalışan geliştirme kurulu ve başarılı bir Kickstarter'dan sonra artık herkesin ulaşabileceği bir noktaya geldiler.), Google’ı resmi bir stil kılavuzu için kontrol edin..

Konuyla ilgili daha akademik bir okuma arıyorsanız, Bob Martin'den Temiz Kod: Çevik Yazılım İşçiliği El Kitabı'na bakın. Daha önce bu makalede bahsetmiştim ve şiddetle tavsiye ediyorum. Kavramları göstermek için Java kullanmasına rağmen, fikirlerin çoğu Arduino için Python ve C gibi diğer dillere aktarılabilir..

Ayrıca, iyi, açıklayıcı ve temiz bir kodun nasıl yazılacağını gösteren bazı mükemmel blog yazıları da bulunmaktadır. Kontrol etmenizi öneririm “Temiz, yüksek kaliteli kod: daha iyi bir programcı olmak için nasıl bir rehber” Arash Arabi'nin butterfly.com.au için yazdığı ve “Temiz Kod Yazmanın Temelleri” Chris Reynolds, webdevstudios.com için yazıyor.

Açıkça temiz kodla ilgili olmamakla birlikte, seçtiğiniz dilde hangi işlevlerden ve kitaplıklardan en iyi şekilde kaçınılabileceğini öğrenmek de yararlıdır. Örneğin, PHP öğreniyorsanız, “mySQL” kütüphaneler ve Arduino ile birlikte fiziksel ürünler oluşturuyorsanız, Gecikme işlevini asla Arduino Gecikme İşlevini kullanmamalısınız ve Neden Kullanmamalısınız? Arduino Gecikme İşlevini ve Neden Kullanmamalısınız? Arduino'nun nasıl çalıştığını gösteren temel gösteriler için, onu gerçek dünyada kullanmamalısınız. İşte nedeni ve bunun yerine ne kullanmanız gerekir. .

Unutmayın, okunması kolay kodların bakımı kolaydır. Üstelik, bir şeye sıkışıp kalmazsanız, birinin okuması ve size yardım etmesi daha kolaydır..

Temiz kod yazmak için herhangi bir ipucunuz var mı? Bir şey mi kaçırdım? Bana söyle! Aşağıya bir yorum bırakın ve bana bildirin.

Fotoğraf Kredisi: Kuru Yatak (Premasagar), Little TAB Key (Kai Hendry), 2015 (Wikilogia)




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.