[]

Programcılara bir soru

Selamlar sevgili programcılar, özellikle bilgisayar mühendisleri.

Elimdeki projenin sonuna geldim ama artık her satırını kendim yazdığım programlar arasında boğuluyorum.

Farklı platformlarda binlerce satır kod oldu , artık takip edemez hale geldim. Tek başıma uğraşıyorum.

Nasıl bir düzeniniz var, değişken tanımlamasından, fonksiyon isimlendirmesine, class'lara kadar nasıl bir düzen kullanıyorsunuz ?

 
(bkz: hungarian notation)
(bkz: reverse polish notation)
en.wikipedia.org(programming)

ps. felsefe mezunuyum
  • spankenstein  (10.11.14 15:23:16) 
Notasyonlar hakkında bir sıkıntım yok, camel, pascal, hungarian'ı kendime göre harmanlayıp kullanıyorum.

Yüzlerce fonksiyonun, event'ın olduğu bir projede düzeninizi nasıl sağlıyorsunuz ?
  • kimlanbu  (10.11.14 15:35:26) 
mutlaka uyguluyorsunuzdur ama benim hocam herşeyi classlar üzerinden yapardı. hatta hocam direkt yazalım dediğimizde program karmaşıklaştıkça classların önemini anlayacaktınız derdi. en basit fibonacci programını bile 2-3 classla yazdırırdı bize.
birde her class'in adı ne yaptığını tanımlar ve classın içinde ne işe yaradığını hangi sistemle yazıldığını açıklayan not yazardı. artık o kadar yazılımla ilgilenmiyorum ama gerektiğinde bu sistemle yazıyorum.

  • kuzey li  (10.11.14 15:41:01) 
ilk basta mimari önemli. gelistirirken "object oriented programming" zorunluluklarina göre programlaman gerekli. "Inheritance" ve "abstraction" cok onemli. her yazdigin kod ayni hiyerarside olursa icinden cikilmaz olur. mesela arabaCalistir() fonksiyonu yazarken depodanBenzinAl() , benziniEnjeksiyonaGötür() gibi detayli fonksiyonlari gizlemelisin. senin yapman gereken sadece kontagiCevir() fonksiyonu olmali, gerisini yakitIslemleri() fonksiyonu yapmali. Yani mümkün oldugu kadar dikey bir yapi kurmalisin mimari olarak. Bol bol class kullan, methodlarin minumum parametre alsin, her method sadece bir is yapsin, bol bol method ve class kullan. eger bir method icinde bircok "if/else" var ise cok iyi yolda degilsin demektir. her "if/else" methoda ekstra bir sorumluluk yükler, ideal olani her methodun sadece 1 isten sorumlu olmasidir. mümkün oldugunca bunu saglamaya calis.

Ikincisi ise "Test driven development", gelistirme sirasinda hem testlerini yazmis olursun, hem de kodun daha kaliteli olur. Bunu özellike tavsiye ediyorum.

Ücüncüsü ise bol bol "comment" eklemek olsun koduna. Ayrica bu kommentleri otomatik dökümantasyona ceviren araclar kullanabilirsin (java icin javadoc gibi)

git, svn gibi versiyonlama sistemi kullaniyorsundur eminim.

"Naming convention" lara uy mutlaka en.wikipedia.org(programming)

Elinin altinda UML diagramlarin olsun, özellikle "Class Diagram"
  • emrahday  (10.11.14 15:44:55 ~ 15:48:48) 
gerçi emrahday yazmış ama her şeyi geçtim bol bol comment yazman lazım. Hangi fonksiyonun ne iş yaptığını detaylı olarak fonksiyonun başına yazman lazım. class elemanlarının da tanımlarının yanına yorum yaz, class'ın üzerine yorum yaz. class, fonksiyon ve değişken isimlerini açıklayıcı bir biçimde yazmak lazım. dökümantasyon önemli, projenin dökümantasyonunu çıkartan toollar var ASDocs gibi. Hangi dili kullanıyorsan bu toolu bulabilirsin.


  • uckac  (10.11.14 17:23:17) 
Mecbur kalmadikca oop yazmiyorum hic sikintim olmuyor.


  • divit  (10.11.14 17:24:08) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.