Çok oldu yazmayalı.. Slm.
Biriyle birlikte çalışmak zor. Çalıştığınız kişiyle anlaşıyor olmanız lazım. Şimdiye kadar birkaç defa biriyle ortak iş yaptım, Memnun kaldığım biri olmadı. Yani benimle çalışıp da bana mı söylüyorsun bunları demeyin. Evet size ve müstakbel iş arkadaşlarıma söylüyorum.
Aşağıda madde madde yazdım çalıştığım kişiden ne beklediğimi. Bu maddeleri kendimi büyük gördüğüm için, veya bir çeşit ego tatmini için falan yazmıyorum. Bu konuda ne düşündüğünüz umurumda değil, ve ben biraz kendini beğenmiş biriyimdir ama burada olan şey bu değildir.
Genel olarak,
- Site, XHR hariç, 1 saniyeden uzun zamanda açılıyorsa, çöpe atıp yenisini yapın.
- Site, XHR hariç, 500 msden daha uzun zamanda açılıyorsa, bunu azaltmaya çalışın.
- SVN commit’te yorum ekleyin.
PHP için,
- Tab indent benim için çok önemli. Boşluk kesinlikle tab ın yerini tutmaz. Her kod bloğu bir öncekine göre 1 seviye içeride olmalıdır. Bazı durumlarda birkaç seviye, çok nadiren eşit seviyede.
- Kodunuzu tam hata gösterimi (E_ALL, E_NOTICE dahil) açık olacak şekilde yazın.
- Saçma sapan, uzun, anlamsız fonksiyon ve değişken adları olmaz.
- Saçma sapan asla olamaz.
- Uzun olabilir ama saçma sapan, anlamsız, gereksiz yere olamaz.
- Anlamsız da asla olamaz.
- Türkçe ve İngilizce bir arada olamaz. Ben genellikle değişken adlarını gavurca yazarım. Ara sıra bir yere yazıyorum fonksiyonları falan, anlaşılması kolay olsun diye. Ama HTML içinde Türkçe kullanıyorum. Sitede nasıl Türkçe yazılıyorsa kodda da Türkçe yazılır. Ama photoicerik kesinlikle kabul edebileceğim birşey değil. Ya fotoicerik, ya photocontent olacak.
- Mümkünse dosyalar gruplara bölünüp dizinlerin içinde duracak. Mümkün değilse dosya adında grup belirtilecek. Geçerli bir neden varsa ayrı. /ajax/photo/(album|photo|comment) veya /ajax/photo.(album|photo|comment) gibi..
- PHP’nin içine kesinlikle HTML girmeyecek.
- Kod ilerledikçe, sonuca yaklaşıldıkça her zaman iş karmaşıklaşır. Bunun önüne koda başlarken geçmek gerekir. Geçmezseniz 1 ay sonra çok pişman olursunuz. Bunun için baştan ortak süreçleri iyi belirlemek gerekir. Bundan kastım örneğin yorum her yere yapılır. Bir yorum fonksiyonu tasarlayıp aynı şeyi comment(to, type, comment, from) vs. gibi bir şekilde kullanmak en uygunudur her zaman.
- Kullandığınız editörün eklediği şeyleri temizlemeniz lazım. Temizlemeye üşeniyorsanız birkaç seçeneğiniz var: // Burada Dreamweaver’ı kastediyorum.
- Başka bir editör kullanın.
- İşleri kolaylaştırıcı şeyler kullanmayın.
- Editörün kod tarafını kullanın.
- İki defa yapılacak işi asla kopyala / yapıştır kullanarak yapmayın. 3. defa kullanılmayacağından emin olsanız bile o iş için bir fonksiyon oluşturun. Her zaman 3. defa kullanılır.
- Her işi sınıflar ile yapın.
HTML / CSS / JS için,
- Neredeyse her eleman için id veya class kullanın.
- Listelemelerde her zaman “TANIMLAYICIKISABİRŞEY__ID” kullanın. “3 id’li resim için”, id=”P__3″ kullanın.
- Asla style kullanmayın. Bir defa kullanılsa bile CSS class yazın. class css dosyasına girer, bu da tarayıcı tarafından cache’lenir.
- İşlerinizi yine gruplandırın. İŞİTANIMLAYANBİRŞEY = {}; İŞ.Sayfa = {}; İş.Sayfa.Fonksiyon = function() {};. Belki 2 ile 3 arasında gruplandırmayı kolaylaştıracak bir object daha olabilir.
- Bir XHR query yapılıyorsa, bunu, saklanmasını gerektirecek bir durum olmadıkça sayfada belirtin (Yükleniyor…, Gönderiliyor…, loading.gif vb. şekillerde). Bunu denemek için PHP’de sleep() kullanın.
MySQL için,
- Tablolarınız, bunu gerektiren bir durum olmadıkça, birbirinin kopyası olmasın.
- Tablolar bir milyon tane sütundan oluşmasın. Detay eklenecekse farklı bir tabloda olsun, JOIN çok zor birşey değil.
- ENUM alanlarında yorumlar olsun. Ne olduğu anlaşılsın.
- TC kimlik numarasının yazılacağı alan varchar, veya ad yazılacak alan varchar(100) veya text olmasın. Veri uzunluğu ve tipinin ne olabileceğini iyi tahmin edin.
- PHP tarafında mümkün olduğunca az sorgu yapın.
- PHP tarafında içinde 10 sütun olan bir tablodan 5 sütun çekilecekse * kullanmayın.
Zaman içinde daha bir sürü şey daha ekleyebilir bunlara muhakkak, ama şimdilik aklıma gelenler bunlar.