Kod geliştiricilerin ortak yazdığı kod güvenilirliğini, taşınabilirliğini ve en önemlisi de okunabilirliği artırmak amacıyla yazılım şirketlerinde uygulanan çeşitli kodlama standartları vardır.
Dikkate değer iki örnek, MISRA C ve JSF projesi için geliştirilen C ++ standardıdır .
Bunlar genellikle, "aşağıdaki", "gerekir", "gerekir", "olabilir", vb. İfadelerinin ne anlama geldiğini dikkatlice belirttikten sonra aşağıdaki biçimdedir:
Örnek:
Kural 50: Kayan nokta değişkenleri tam eşitlik veya eşitsizlik için test edilmemelidir.
Gerekçe: Kayan nokta sayıları yuvarlama ve kesme hatalarına bağlı olduğundan, beklenildiği halde bile eşitlik elde edilemeyebilir.
Bu kodlama standartları, genellikle derleyicinin bakış açısından yasal olacak kodla ilgili kısıtlamalar getirir, ancak tehlikeli veya okunamaz durumdadır ve bu nedenle "zararlı" olarak kabul edilir.
Şimdi bunu kötüye kullanalım!
Şirketinizdeki her geliştiricinin kullanması gereken yeni kodlama standartlarını tasarlamayı amaçlayan küçük bir standardizasyon komitesinin üyesi olarak kabul edilirsiniz. Diğerlerine göre, gizlice bir uğursuz organizasyonun işindesiniz ve şirketi sabote etmek için göreviniz var. Kodlama standardına, daha sonra geliştiricilere engel olacak bir veya daha fazla giriş önermek zorundasınız. Ancak, bunu derhal netleştirmemek için dikkatli olmalısınız, aksi takdirde standarda kabul edilmeme riskini alırsınız.
Başka bir deyişle, meşru görünen ve diğer komite üyeleri tarafından kabul edilme şansı yüksek olan kodlama standardına kurallar getirmelisiniz . Projeler başladıktan ve kodlara sayısız çalışma saati yapıldıktan sonra, bu kuralları kötüye kullanabilmelisiniz (örneğin, bir teknik özellik ile veya çokdeğişmez yorum) aksi takdirde normal ve iyi kalitede kodu standarda karşı olarak işaretlemek. Bu nedenle, onu yeniden tasarlamak için çok çaba sarf etmeleri gerekiyor ve kurallar bu noktadan itibaren onları engelleyecektir, ancak kurallar bir süredir aktif olduğu için saf momentum bu rolleri canlı tutacak ve önemli çatışmalar olduğu için farklı yönetim düzeyleri arasındaki çıkarların diğer yöneticiler muhtemelen kuralları canlı tutacaktır (hatalarını kabul etmek aptalca olur!), bu nedenle şirketi engelliyor! Mwahahahahaaa!
puanlama
En yüksek oy alan cevap, ilk geçerli girişten yaklaşık 2 hafta sonra kazanır. İyi bir cevap için bir fikrim var, ancak birkaç gün sonra başkası aynı fikirde olabileceği için bunları yayınlayacağım ve onları zevkten çıkarmak istemiyorum. Tabii ki, kendi cevabım, skor ne olursa olsun, diğerlerinin üzerinde kabul edilmeyecektir.
Seçmenlerin, boşlukların ne kadar iyi saklandıklarına ve geliştiricilere ne kadar sinir bozucu olduklarına dayanarak cevaplamaları için teşvik ediliyor.
Kurallar ve düzenlemeler
- Kural veya kurallar, yukarıdaki örnekte olduğu gibi profesyonelce yazılmış görünmelidir
- Kurallar orijinal görünmelidir ( "tüm değişkenler en az bir alt çizgi, bir büyük harf, bir küçük harf ve iki sayı içermelidir" gibi şeyler kabul edilmezler) kabul edilmezler. komite) ve onların yararı hemen belli değilse, iyi bir gerekçe göstermelisiniz.
- Geliştiricilerini daha sonra sabote etmek için kurallarınızı kullanmanın / kötüye kullanmanın bir yolunu bulmanız gerekir. Başka kurallardaki belirsizlikleri kötüye kullanabilir veya kendi başlarına zararsız olan ancak bir kez bir araya getirilen birden çok kuralı kullanabilirsiniz!
- Yazınızın sonunda kuralları nasıl kötüye kullanabileceğinize dair bir açıklama yapmalısınız.
- Kullanılan dil ezoterik bir dil olmamalıdır. Gerçek projelerde yaygın olarak kullanılan bir dil seçilmelidir, bu nedenle C benzeri sözdizimi olan diller (Golfscript gibi şeyler) tercih edilir.