- 13 Ara 2021
- 135
- 60
İyi günler Türk Hack Team ailesi.
Ninja kodlaması, kısa, hızlı, gizemli ve çoğu zaman anlaşılması zor olan kodlama tarzıdır.
Bu gün sizlerle programcı Ninjaların, yazdıkları kodları nasıl okunmaz hale getirdiklerini inceleyeceğiz. Acemi geliştiriciler bazen bunları programcı ninjalardan bile daha iyi kullanırlar.
Kod inceleme uzmanları ise bunları testler yazarak ararlar.
Kim olduğunuzu öğrenmek için okumaya devam edin - Bir ninja mı, bir acemi mi, yoksa belki de bir kod yorumcusu mu?
DISCLAIMER:
18 yaşından küçükseniz videoyu izlemeden okumaya devam edin.
[01] Öz olmak ince zekanın ruhudur
Kodunuzu mümkün olduğunca kısa yapın, Ne kadar zeki olduğunuzu gösterin.
JavaScript:
// iyi bilinen bir javascript kitaplığından alınmıştır
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
Güzel, değil mi? Böyle yazarsanız, bu satırla karşılaşanlar baya bir uzaklara dalar. i'nin değerinin ne olduğunu anlamaya çalışırlar.
Onlara daha kısa olanın her zaman daha iyi olduğunu gösterin.
KOD İNCELEMESİ:
JavaScript:
// TERNARY OPERATOR (ÜÇLÜ KOŞUL OPERATORU)
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
/*
YAPI: koşul ? doğruysa_yapılacak_ifade : yanlışsa_yapılacak_ifade;
Üçlü koşul operatörü, if-else ifadesinin kısa bir alternatifidir ve sadece
tek bir satırda kullanılır.
DİKKAT: Ancak, yukarıdakı ifadede iç içe geçmiş üçlü koşul operatörleri bulunmaktadır.
*/
Şimdi ise, dikkatinizi ( i = i ? ... : ...; ) dış ternary operatora vermenizi istiyorum, burada bir atama gerçekleştirilmiş. Bildiğiniz üzere tek eşittir işareti değer atama ve değişken tanımlama için kullanılıyor.
Peki, neden ( i ? ... : ...; ) böyle bir ifade yerine, ( i = i ? ... : ...; ) şu şekilde bir ifadeni tercih etmiş ?
Monoton düzeni bozmak ve etkileşimi artırmak adına, bu soruyu cevaplamağı sizlere bırakıyorum, kim bize bu gizemi çözecek acaba
01 kod incelemesi bu kadar, diğer syntax ifadeler ve methodlar basic level, eğer aramızda diğer kodları anlaya bilmeyen arkadaşlar varsa - onlar için hiç bilinmedik bir site bırakıyorum, hemen hızlıca giriş yapıp araştırma yapa bilirler.
[ Gizli siteye giriş yapmak için bana tıkla ]
[02] Tek harfli değişkenler
Daha kısa kodlamanın başka bir yolu da her yerde tek harfli değişken adları kullanmaktır. a, b veya c gibi.
Kısa bir değişken, ormandaki gerçek bir ninja gibi kodun içinde kaybolur. Hiç kimse editörün "Find" özelliğini kullanarak onu bulamayacaktır. Ve birisi bulsa bile, a veya b adının ne anlama geldiğini "çözemeyecektir".
Ama bir istisna var. Asıl bir ninja genellikle for döngüsünde sayaç olarak kullanılan i harfini kullanmaz. ( i - increment)
Herhangi bir yerde kullanır, ama burada değil. Kullanılmasını bekleyen başka harfler vardır, kod yorumcularını düşünmeye zorlayan. Örneğin x veya y gibi.
Döngü sayacı olarak egzotik bir değişken, özellikle döngü gövdesi 1-2 sayfa alıyorsa harikadır (mümkünse daha uzun yapın). O zaman birisi döngünün derinliklerine bakarsa, x adlı değişkenin döngü sayacı olduğunu hemen anlayamaz.
Daha kısa kodlamanın başka bir yolu da her yerde tek harfli değişken adları kullanmaktır. a, b veya c gibi.
Kısa bir değişken, ormandaki gerçek bir ninja gibi kodun içinde kaybolur. Hiç kimse editörün "Find" özelliğini kullanarak onu bulamayacaktır. Ve birisi bulsa bile, a veya b adının ne anlama geldiğini "çözemeyecektir".
Ama bir istisna var. Asıl bir ninja genellikle for döngüsünde sayaç olarak kullanılan i harfini kullanmaz. ( i - increment)
Herhangi bir yerde kullanır, ama burada değil. Kullanılmasını bekleyen başka harfler vardır, kod yorumcularını düşünmeye zorlayan. Örneğin x veya y gibi.
Döngü sayacı olarak egzotik bir değişken, özellikle döngü gövdesi 1-2 sayfa alıyorsa harikadır (mümkünse daha uzun yapın). O zaman birisi döngünün derinliklerine bakarsa, x adlı değişkenin döngü sayacı olduğunu hemen anlayamaz.
[03] Kısaltmalar kullanın
Takım kuralları tek harfli ve belirsiz isimlerin kullanılmasını yasaklıyorsa, kısaltın, kısaltmalar yapın.
Her şeyi kısaltmaya çalışın. Sadece sizin yaptıklarınızı anlayanların kodu geliştirmesine izin vermek gibi bir şey.
Fazla uzatmadan ve ilgilendiğinizi anlamak için burada bitireyim. Eğer ilginizi çekerse part 2 gelebilir. Lütfen yorumlarda belirtin.
Eğer konu ilginizi çektiyse diğer konularıma göz atmayı unutmayın!
Broken Access Control [ IDOR ve MFLAC arasındakı fark ]
Sorunlarınız varsa, lütfen sorun.
Okuduğunuz için Teşekkürler.
Takım kuralları tek harfli ve belirsiz isimlerin kullanılmasını yasaklıyorsa, kısaltın, kısaltmalar yapın.
JavaScript:
list → lst.
userAgent → ua.
browser → brsr.
customerName → custName.
productPrice → prodPrice.
calculateTotalPrice → calcTotalPrice.
ve.b
Her şeyi kısaltmaya çalışın. Sadece sizin yaptıklarınızı anlayanların kodu geliştirmesine izin vermek gibi bir şey.
Fazla uzatmadan ve ilgilendiğinizi anlamak için burada bitireyim. Eğer ilginizi çekerse part 2 gelebilir. Lütfen yorumlarda belirtin.
Eğer konu ilginizi çektiyse diğer konularıma göz atmayı unutmayın!
Broken Access Control [ IDOR ve MFLAC arasındakı fark ]
Sorunlarınız varsa, lütfen sorun.
Okuduğunuz için Teşekkürler.
Son düzenleme: