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.
Muhtemelen en ünlü kanunlardan biri, çünkü sadece yazılım geliştirmeye uygulanmıyor.
Bir şeyler ters gidebiliyorsa, ters gidecektir.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.
Ç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ı 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.
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.
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.
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.
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.
Bu, açık anahtar şifrelemesinin ana yasasıdır.
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:
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.
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!Moore Yasasına bakın!
Buna katılmayan var mı?
Önce kodu yazın, darboğazı bulun ve sonunda düzeltin!
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!