Siz ve ekibiniz için en iyi kod kurallarını nasıl seçersiniz?

Hiç bitmeyen tartışmaya bir son verin

- "Dinle, bu özel değişkenler herkese açık olanların peşinden gitmeli!"

- "Asla! Genel değişkenler özelden önce gelir! "

- "Deb'e soralım ve karar vermesine izin verelim"

- "Bekle, neden bu sabitler deve kasalı değil?"

? ‍♂? ‍♀

Kendinizi daha önce bu tür bir tartışmada bulduysanız, elinizi kaldırın. Tamam, gerçekten yükseltme, ama bir şey bana bazılarınızın bu senaryoda bir veya iki kez yer almış olabileceğinizi söylüyor.

Geçtiğimiz on yılda bir geliştirici olarak, kendimi çok azında buldum, bazıları çok fazla diyebilir, kod kuralları hakkında tartışmalar. Bu tartışmalar, ne kadar faydalı olursa olsun, bazen hiç bitmeyen felsefi sarsıntılara dönüşür. Ve sonra, girintiden klasör yapısına kadar değişen konulara geçmeye başlarlar.

Acı verici olabilir.

Öyleyse, en iyi sözleşmenin ne olduğuna gerçekten nasıl karar veriyorsunuz ve daha da iyisi, en iyi sözleşmeler var mı? Bunu burada düzenleyeceğim, böylece bu felsefi saçmalıkları bir kez ve sonsuza dek dinlendirebilirsiniz.

Öyleyse neden sözleşmelere ihtiyacımız var?

En iyi uzlaşmanın ne olduğunu ve hatta var olup olmadıklarını belirlemek için, önce neden uzlaşmalara ihtiyacımız olduğunu anlamalıyız .

Birkaç nedenden fazlası var, ancak en önemlisine odaklanacağım: okunabilirlik .

Ya sadece büyük harfle yazmaya karar verirsem. BUNU GİBİ, GÜÇLÜ OLABİLİR. Hemen fark edersiniz ve beyniniz farklı olanı işlemeye başlar.

Bu basit örneği alın ve değişken adlandırma veya girinti hakkında düşünün. Koda her döndüğünüzde ve farklı yazıldıysa, ilk kareden başlıyormuşsunuz gibi olurdu. Ancak kurallarla kodlama yaparken, kodunuz daha kolay anlaşılır ve bu nedenle aylar önce yazılmış olsa bile okunabilir.

Bu, her birinin kendi kodlarını tercih ettikleri kurallarla yazdığı bir geliştirici ekibi üzerinde çalışırken daha da önemli hale geliyor. Birbirinizin kodunu anlamak ve gözden geçirmek için harcanan zaman miktarı alacaktır… peki… siz anladınız.

Diğer geliştiricilerle verimli ve niteliksel olarak işbirliği yapabilmek için ortak bir kuralınız olmalıdır.

"Programlar, insanların okuması için ve yalnızca tesadüfen makinelerin çalıştırması için yazılmalıdır." - Hal Abelson

En iyi kod kuralı nasıl seçilir

İster kodlamaya yeni başlamış olun, ister bir kickass geliştirme ekibinin parçası olun, ya da yeni bir CTO olduysanız, kod kurallarınızı nasıl seçersiniz?

İşte en iyi kod kuralını seçme kılavuzum:

  1. Hayran olduğunuz geliştirme ekiplerinden ilham alın: Hiçbir şey deneyimden daha iyi olamaz ve en büyük ve en akıllı şirketlerden bazıları kodlama yönergelerini yayınlar. Örneğin Airbnb, javascript ve ruby ​​stili kılavuzlarını yayınladı ve Google kendi Java ve Python stil kılavuzlarını yayınladı. Bu şirketleri sevseniz de sevmeseniz de, geliştiricilerinin her birinin sahip olduğu yılların deneyimini özetlerseniz, bunların toplamı gazilyondur. Bu şirketlerin stil kılavuzlarından bazılarını kendi ekibinize uygulamaya çalışın.
  2. Meslektaşlarınızdan bilgi toplayın: Böylesine dinamik bir topluluğun parçası olduğumuz için şanslıyız. Aslında bugün geliştirici olmanın en büyük avantajlarından biri topluluğumuzdur. Slack, Spectrum, Discord veya herhangi bir ortak çalışma platformunda olsun, kod kuralları hakkında bir soru göndermek ve dünyanın dört bir yanındaki geliştiricilerden anında yanıtlar almak için her zaman bilgili gruplar bulabilirsiniz.
  3. Kod örneklerini göz ardı edin. Evet, onları görmezden gelin. Arada sırada Stackoverflow'daki bir cevaptan kopyalanan / yapıştırılan koda veya benzer bir şeye rastlıyorum. İnsanların bazen unuttuğu şey, kopyaladıkları kod örneklerinin muhtemelen teknik bir soruya cevap olarak veya bazı kütüphaneler için açıklama olarak yazılmış olmasıdır. Çoğu durumda, yazar kod kurallarını kastetmedi ve bunlarla uğraşacak zamanı yoktu.

Bu ipuçları, başlamanıza yardımcı olur ve geliştirme ekibiniz için kod kurallarını tanıtmak için zemin hazırlayabilir.

Ve şimdi biraz felsefe için.

"En iyi" kurallar var mı?

Bu, "en iyi" nin ne anlama geldiğine bağlıdır. Airbnb veya Google belirli bir kural kullanıyorsa veya 10 farklı CTO size sözleşmelerinin en iyisi olduğunu söylediyse, bu sizin için en iyi kural olduğu anlamına mı geliyor?

Dahası, konvansiyonlar değişebilir. Zamanla değişen bir şey "en iyi" olarak adlandırılabilir mi?

Lemonade'de tek ön uç geliştirici olarak başladığımda, önceki geliştiricinin yazdığı kodu okumakta zorlandım. Bu onun için en iyi kongre olabilirdi, ama benim için değildi. Bu yüzden üzerinde çalıştığım her kod parçasını, kurallarımı kullanarak yeniden yazdım. Zamanla ekibe daha fazla geliştirici katıldı ve kurallarımız gelişti.

Her bir geliştirici, farklı standartlara ve kurallara sahip farklı bir geçmişe sahipti. Sözleşmelerimizi resmileştirmek için Airbnb'nin javascript stil kılavuzunu başlangıç ​​noktası olarak kullandık. O kılavuzdaki kuralları gözden geçirip katılmadıklarımızda değiştirdik veya kaldırdık, beğendiklerimizi benimsedik. Hatta kendi deneyimlerinden gelen konvansiyon geliştiricileri de benimsedik ve bunları ana kongremize entegre ettik.

Her bir kuralı değerlendirme ve benimsememiz gerekip gerekmediğine karar verme süreci, yalnızca kod okunabilirliğimizi geliştirmekle kalmadı, aynı zamanda ekip çalışmamızı da geliştirdi. (Gelecekteki bir gönderide daha fazlası!)

İşte gerçek şu: En iyi gelenekler için evrensel bir tanım yok, çünkü bunlar basitçe mevcut değil.

Okulda öğretilenin aksine, her soruya her zaman bir doğru cevap verilmez. Bu durumda, birçoğu olabilir.

Geliştiricilerin farklı ve hatta aynı şeyleri uygulamak için farklı yolları vardır. Bazılarımız tüm sınıf üyelerinin isimlerinin bir 'm_' önekiyle başlamasını tercih ederiz. Bazılarımız iki boşluk girintisi kullanmayı sever, bazıları sekmeleri tercih eder, bazıları Utilsbir sınıf ismindeki kelimeyi kullanmanın yanlış olduğunu söyleyebilir . Tanrım, bu sonsuz bir tartışma, ama tüm bu tercihler iyi bir mantıkla geliyor.

Günün sonunda, kodunuzun okunabilirliğini artıran kurala bağlı. Hangisi ekibinizin daha iyi iletişim kurmasını, daha hızlı ilerlemesini ve daha verimli olmasını sağlar.

Unutmayın, kod kuralları yalnızca önerilerdir. Evet, bir kongre kullanmaya karar verdiğinizde, onu takip etmelisiniz. Ancak unutmayın: onlar taşa oyulmamışlardır ve değişime tabidirler. Kendinize ve ekibinize en uygun olanı bulana kadar farklı kuralları denemeye izin verin.

Öyleyse en iyi kod kuralları nelerdir? Kolay - senin!