Programcıların% 99'u yazılım geliştirme yasalarını tam olarak tanımıyor

Yazar | Tim Sommer

Çevirmen | Xue Ming Deng

Aşağıdaki ünlü yazılım geliştirme yasalarından hangilerini biliyorsunuz?

Diğer alanlarda olduğu gibi, yazılım geliştirmede de çok ilginç yasalar vardır. Programcılar, teknik yöneticiler ve mimarlar genellikle toplantılarda ve sohbetlerde onlardan bahseder. Xiaobai olarak, çoğu zaman sadece onaylamak için başını sallarız çünkü diğer kişinin Brook, Moore veya Weiss'in kim olduğunu bilmediğimizi bilmesini istemeyiz.

Bu yasalar, bazı yasaları veya yazılım geliştirme tanrılarının ünlü sözlerini içerir. Hepsi ilginç ve incelemeye değer ve her yasanın arkasında harika arka plan hikayeleri var.

Bu yazıda, yazılım geliştirme alanındaki en ünlü ve yaygın yasalara ilişkin açıklama ve düşüncelerimi paylaşacağım.

Murphy kanunu

Muhtemelen en ünlü kanunlardan biri, çünkü sadece yazılım geliştirmeye uygulanmıyor.

Bir şeyler ters gidebiliyorsa, ters gidecektir.
  • İlk çıkarım: geçerli (kodu) yazmamış olabilirsiniz.
  • İkinci çıkarım: Lanet, tüm programcıların akıcı bir şekilde konuşabildiği tek dildir.
  • Sonuç: Bilgisayar düşündüğünüzü değil, yazdıklarınızı (kod) yapacaktır.

Savunma programlama, sürüm kontrolü, kıyamet senaryoları (bu lanet zombi sunucu saldırılarına karşı), TDD, MDD vb. Bu yasaya karşı savunma amaçlı uygulamalardır.

Brook Yasası

Çoğu geliştirici, Brooke'un yasasını bilinçli veya bilinçsiz olarak deneyimlemiştir ve şunları belirtir:

Zaten ertelenen bir yazılım projesine insan gücü eklemek, projeyi sadece daha geciktirecektir.

Bir proje ertelenirse, basitçe insan gücünün artırılması feci sonuçlar doğurabilir. Programlama verimliliği, yazılım geliştirme yöntemleri ve teknik mimari gibi faktörleri gözden geçirmek her zaman daha iyi sonuçlar getirecektir. Aksi takdirde, Hofstadter yasasının da işe yaradığı anlamına gelir.

Hofstadter Yasası

Hofstadter yasası Douglas Hofstadter tarafından önerildi ve onun adını aldı.

Elbette, söylediği bazılarının bazı insanlar için bir anlamı olsa da, bu yasayı "The Big Bang" dizisindeki Leonard Hofstadter ile karıştırmayın.

Bu yasa şunu belirtir:

Hofstadter yasasını hesaba katsanız bile, projenin fiili tamamlanma süresi her zaman beklenenden daha uzundur.

Bu "yasa", karmaşık bir görevi tamamlamak için gereken zamanı doğru bir şekilde tahmin etmenin zorluğuyla ilgilidir. Bu yasa yinelemelidir ve elinizden gelenin en iyisini yapmış olsanız ve görevin karmaşıklığını bilmenize rağmen karmaşık projeleri tahmin etmenin zorluğunu yansıtır.

Bu nedenle proje tahminlerini yaparken bir tampon bölge olması gerekir.

Conway Yasası

Yazılımın yapısı, yazılımı geliştiren organizasyonun yapısını yansıtır.

Veya daha açık bir şekilde söylemek gerekirse:

Organizasyon tarafından tasarlanan sistemin yapısı, organizasyonun iletişim yapısı ile sınırlıdır.

Birçok kuruluş, ekipleri işlevsel becerilere göre ayırır, bu nedenle ön uç geliştirme ekipleri, arka uç geliştirme ekipleri ve veritabanı geliştirme ekipleri olacaktır. Basitçe söylemek gerekirse, eğer birinin değiştirmek istediği şeyler başkalarına aitse, bunları değiştirmesi onun için zordur.

Artık gittikçe daha fazla kuruluş, sınırlı bağlamlara dayalı ekipler oluşturuyor ve mikro hizmetler gibi mimariler de, izole teknik mimari bölümleri yerine hizmet sınırlarına dayalı ekipler oluşturuyor.

Bu nedenle, hedef yazılım mimarisine dayalı bir ekip oluşturarak yazılım mimarisini uygulamak daha kolaydır ve bu, Conway yasalarıyla savaşmanın etkili bir yoludur.

Postel'in Yasası veya Sağlamlık Yasası

Muhafazakar çıktı, serbest girdi.

Jon Postel başlangıçta bunu sağlam TCP elde etmek için bir ilke olarak kullandı. Bu ilke HTML'ye de yansır HTML'nin başarısı veya başarısızlığı birçok özelliğine bağlanabilir, ancak farklı insanlar HTML'nin başarılı mı yoksa başarısız mı olduğu konusunda farklı fikirlere sahiptir.

Pareto İlkesi veya 80/20 Kuralı

Pek çok fenomen için, sonuçların% 80'i nedenlerin% 20'sinden kaynaklanmaktadır.

Hataların% 80'i kodun% 20'sinden gelir Bu Pareto yasasıdır.

Bazı insanlar şirketteki işlerin% 80'inin çalışanların% 20'si tarafından yapıldığını söylerler, sorun şu ki çalışanların% 20'sinin hangisi olduğunu bilmiyorsunuz.

Peter İlkesi

Bu oldukça sinir bozucu bir yasadır, özellikle de bunu kendiniz yaşarsanız.

Hiyerarşik bir sistemde, her çalışan tutamayacağı bir pozisyona terfi etme eğilimindedir.

Dilbert çizgi roman serisinde bunun bazı örnekleri var.

Kerchkhoff Prensibi (Kerchkhoff Prensibi)

Kriptografide, sistemdeki her şey kamuya açık olsa bile - bilginin küçük bir kısmı hariç - gizli anahtar sistem güvenli olmalıdır.

Bu, açık anahtar şifrelemesinin ana yasasıdır.

Linus Yasası

Bu, Linux'un babası Linus Torvalds'ın adını almıştır ve kanun şöyle der:

Yeterli göz varsa, tüm böcekler görünmez olacaktır.

İki farklı özgür yazılım geliştirme modeli arasındaki zıtlığı açıklayan bu yasayı tanımlamak için ünlü "Katedral ve Çarşı" yı kullanabilirsiniz:

  • Katedral modeli - her yazılım sürümü kaynak kodu sağlar, ancak sürümler arasında kod geliştirme, bir grup özel mülk yazılım geliştiricisiyle sınırlıdır.
  • Çarşı model-kod geliştirme internet üzerinden halka açık olarak yapılır.

sonuç olarak? Kaynak kodun daha kapsamlı halka açık testi, incelenmesi ve denenmesi, çeşitli böcek türlerinin daha hızlı keşfedilmesini sağlayacaktır.

Moore Yasası

Birim maliyet başına bilgi işlem gücü 24 ayda bir ikiye katlanır.

En popüler versiyon şöyle diyor:

Bir entegre devredeki transistör sayısı yaklaşık olarak her 18 ayda bir ikiye katlanacaktır.

veya:

Bilgisayarın işlem hızı her iki yılda bir ikiye katlanıyor!

Wirth Yasası

Yazılımın yavaşlaması donanımdan daha kolaydır.

Moore Yasasına bakın!

Doksan doksan kuralı

Kodun ilk% 90'ı sürenin% 10'unu, kodun kalan% 10'u kalan% 90'ını kaplıyor.

Buna katılmayan var mı?

Knuth'un Optimizasyon Prensibi

Erken optimizasyon, tüm kötülüklerin köküdür.

Önce kodu yazın, darboğazı bulun ve sonunda düzeltin!

Norvig Yasası

% 50'den fazla penetrasyon oranına sahip herhangi bir teknoloji tekrar ikiye katlanmayacaktır (kaç ay olursa olsun).

Gerçek koku yasası

Güncelleme yapmayın, öğrenemiyorum! ... çok güzel kokulu.

Tüm programcıların kaçamayacağı bir yasa, hemfikir mi?

Yukarıdaki yazılım geliştirme yasalarından kaç tanesini biliyorsunuz? Hala yazılım geliştirmenin altın kurallarını biliyor musunuz? Bize anlatmak için bir mesaj bırakmaya hoş geldiniz!

Bana söz ver, yaban domuzu kadar mutlu ol!
önceki
Bu 15 reklam filmi, İngilizce konuşulan ülkelerdeki çocukların finansal bilgileri öğrenmeleri için mutlaka görülmesi gereken filmler olarak kabul edilebilir.
Sonraki
Ke Wenzhe, Weibo'yu 2020'de mi açıyor? Weibo'ya kaç politikacı "indi"
Tail Big Sailing OnePlus 6T, sizi çekim asistanım olarak işe alın
"Benim 2018'im" fotoğrafları yolda - Jamie Hua
Bugün birkaç şiddetli Kore aksiyon filmi öneriyorum ve
Taohuayuan, "arkadaş çevresini" genişletir ve Zhangjiajie ile yeni bir kültür ve turizm entegrasyonu simgesi oluşturmak için el ele verir.
Son 11 yılda 22 filmin başyapıtı olan "Reunion 4", Marvel tarihinin en uzun filmi.
Çok yapışkan başlık, çok yapışkan bir poster, ancak iyi bir üne sahip eski bir film
Birinci şahıs olarak "Ultimate Street Fighter 2" oynamak nasıl olurdu?
Hasselblad Fotoğrafçılık Paylaşım Oturumu: Bir alan duygusu nasıl inşa edilir
Gelin, bu yıl Amerikan dramalarının yeni yaratılan başyapıtlarından hangilerinin dört gözle beklemeye değer olduğuna bir göz atalım.
Belki "Watch Dogs" Londra'da büyük bir iş çıkarır
Blockchain, Çin'in telif hakkı korumasına yardımcı oluyor: Xunlei Chain'in üç temel teknolojisinin yorumlanması
To Top