1. Ders yazma? Pek sayılmaz.
Kaynak kodu yazmak, kitap yazmaktan yeterince farklıdır.
Her ikisi de aynı hedeflere ulaşırken: mümkün olduğunca açık ve anlaşılması kolay olsa da, bunu çok farklı bir şekilde yapıyorlar ve bir yazarın öğrenmesi gereken şeyler, bir yazılım geliştiricisinin öğrenmesi gereken şeylerle aynı değil.
Örnek 1: Konuşma figürleri
Romanlar, şiir, vb. Yazarken konuşma figürleri değerlidir, çünkü yazının anlamlılığını arttırırlar.
Kaynak kodunda en son bir oksimoron veya litote gördünüz mü? Onlara sahip olmak yardımcı olur mu, yoksa daha sonra bu kaynak kodunu korumak zorunda kalacak herhangi bir geliştirici için son derece zararlı mıdır?
Örnek 2: Kelime Bilgisi
Zengin kelime dağarcığı literatürde oldukça takdir edilmektedir. Örneğin William Shakespeare'in kelime hazinesi yirmi bin ila yirmi beş bin kelimedir. Daha zengin kelime dağarcığı bir roman veya şiir okumayı daha ilginç hale getirir.
Kaynak kodu yazdığınızda, kodun çok iyi İngilizce bilmeyen insanlar tarafından okunmasını . İngilizceyi ne kadar iyi bildiğinizi göstermek, kodunuz için son derece zararlı olacaktır. Tam olarak ihtiyacınız olan şey anlamına gelen süslü bir kelime biliyorsanız, ancak birçok insanın bu kelimenin anlamını bilmediğini biliyorsanız, daha az anlamlı bir eşanlamlı veya anlamını açıklayan bir kelime kümesi bulmalısınız. Belirli bir proje için genellikle birkaç bin kelimelik bir kelime dağarcığı yeterlidir.
Önemli bir noktaya dikkat edin: Google Çeviri, anadili olmayan bir konuşmacı için çok yardımcı olabilirken, herhangi bir çevirmenle ilgili iki sorun vardır:
Bir çift dilin kelimeler arasında mutlaka 1: 1 eşleşmesi yoktur. Bazı kelimelerin başka dillerde çevirisi yoktur veya birden çok kelime yabancı bir dilde tek bir kelimeye dönüşebilir. Örneğin, Rusça'da, belirli kar ve soğuk hava durumlarını hedefleyen çok sayıda kelime vardır ve bunları Fransızca veya İspanyolca olarak çevirmek, özgüllüklerini kaybetmeden genellikle imkansızdır.
Bir kelimenin bazen birden fazla anlamı vardır ve anlamı bağlamdan çıkarılır. Google Çeviri, yüksek kalitesine rağmen, genellikle en temel durumlar dışında herhangi bir anlam ifade edemez.
Örnek 3: İfadeler
İfadeler nesirleri de zenginleştirir. Bir yazar bir okuyucunun belirli bir genel kültüre sahip olmasını bekler ve bu fırsatı metni daha anlamlı hale getirmek için kullanır.
Önceki örneğe benzer şekilde, bu tür ifadeler anadili olmayan kişilerce okunduğunda çok sorunlu olabilir. Ancak genel kelime dağarcığı genellikle çevrilebiliyorsa, ifadeler çok daha problemlidir.
Örneğin, İngilizce benim ilk dilim değil ve günlük olarak, burada bilmediğim StackExchange de dahil olmak üzere ifadelerle karşılaşıyorum. Anlamlarını tahmin etmeye çalışıyorum ve bazen haklıyım. Ancak bazen yanılıyorum ve bu ifadeleri Google'a aktarmak yardımcı olmuyor.
Onda bir kullanıcı / onun comment PHP'nin: bana sadece programlama başladı uzun süre acı yapılmış bir örnek hatırlattı iğne ve samanlık . Karşılık gelen konuşma figürünün farkında değildim, bu yüzden belgeleri her okuduğumda bunun ne olduğunu merak ediyordum. Tabii ki C # sequence.Contains(element)
veya mükemmel Python'lar element in sequence
çok daha iyi bir alternatif. En azından İbranice bilmeyen geliştiricilerin de PHP'den muzdarip olması gerekiyordu , ancak bu farklı bir hikaye.
Örnek 4: Kültürel referanslar
Kültürel referanslar. Edebiyatta, belirli bir kültürden unsurları dahil etmek caziptir ve bu da kitabı daha zengin ve bazen daha ilginç okumak için yapar.
Ancak, kod dünyanın her yerinden geliştiricilere yöneliktir. Bu nedenle, bir İtalyan geliştirici için açık bir referans olan, bir Rus için açık olmayan bir şey olmayabilir ve her Hintli erkek veya kızın bildikleri bir Amerikalı programcı tarafından bilinmeyebilir.
İğne ve samanlık hakkında konuşan aynı kullanıcı, bu tür kültürel referanslara da mükemmel bir örnek verdi: Kase. Grail'in ne olduğunu kim bilmiyor? Demek istediğim, Fransızca'da “Graal”, İspanyolca'da “Grial” ve ... Türkçe'de “Kutsal Kâse” ama yine de. Ancak, Amerikalı veya Avrupalı geliştiriciler Çin'in veya Hindistan'ın ortaçağ tarihini ne kadar biliyor? Neden her Çinli ve Hintli programcının Kutsal Kase referansını bilmesi gerektiğini varsayalım?
2. Etkileyici kaynak kodu yazma dersleri? Elbette.
Herhangi bir geliştirici nasıl etkileyici kaynak kodu yazacağını öğrenmelidir.
Herhangi bir geliştirici, yorumun nedenini açıklamalıdır:
int j = i + 1; // Creating i and adding 1 to it.
tamamen yanlış olduğu gerçeğine rağmen, kötüdür.
Herhangi bir geliştirici, temel yeniden düzenlemeyi ve kaynak kodunu daha anlamlı hale getirmeye nasıl yardımcı olduğunu anlayabilmelidir.
Herhangi bir geliştirici, zamanın% 20'sinin kod geliştirmek için harcandığını ve zamanın% 80'inin kodunu korumak için harcadığını hatırlamalıdır. Bazı projeler için daha çok% 5 -% 95 gibi.
vb.
Temel olarak, programlama teknik belgelere yakındır. Cıvata için spesifikasyon sayfası yazan bir kişinin yazma dersi alması gerekiyor mu? Pek sayılmaz. Aynı durum geliştiriciler için de geçerlidir. Herkes her kelimede yazım hataları yapmadan yazmalı ve herkes fikirlerini yeterince açık bir şekilde iletebilmelidir. Bunun yanı sıra, ders yazmanın Bilgisayar bilimi veya BT güvenliği veya herhangi bir dersten daha yararlı olacağından emin değilim.
Kaynak kodun anlamlılığı başka yollarla öğrenilebilir. Superm bunlardan biri söz onun cevabını : iyi kod okuma. Birkaç kişiden bahsedebilirim:
Beautiful Code veya Code Complete gibi kitapları okumak,
Daha deneyimli bir geliştiricinin kodunuzu gözden geçirmesini istemek,
Kalıpları ve nasıl ve ne zaman kullanılacağını anlama.