ASP.NET - Otomatik Kod vs.

RSI hikayesinden dolayı bir şey yapamadığımdan vaktimi kitap okuyarak ve Warhammer 40000, Squad Command oynayarak geçiriyorum. Şimdi pragmatic programmer' da şu kısım ilgimi çekti :

... But using a wizard designed by a guru does not automatically make Joe developer equally expert. Joe can feel pretty good—he's just produced a mass of code and a pretty spiffy-looking program. He just adds in the specific application functionality and it's ready to ship. But unless Joe actually understands the code that has been produced on his behalf, he's fooling himself. He's programming by coincidence. Wizards are a one-way street—they cut the code for you, and then move on. If the code they produce isn't quite right, or if circumstances change and you need to adapt the code, you're on your own.

Genelde MS' in ASP.NET tasarım yaklaşımını ve benzeri yaklaşımları bu yüzden sevmiyorum, direk olarak sizin kontrolünüzde olmayan bir dizi olay sonucunda programlama yapıyorsunuz. Bu kötüdür demiyorum, anladıktan sonra bir sorun da yok ama özellikle yeni başlayan programcıların, bunları kullanıp daha sonradan kendi programlarındaki bir hatayı tespit edememeleri biraz komik oluyor.

anahtar kelimeler : cat-book programlama programming coding kod asp.net kitap book pragmatic programmer

Necat Bolpaça - anov - 08.08.2008

Wizard olayini kötü olarak görmeyin, yeni baslayanlar için bu tip sakincalari oldugu dogru, ancak belli bir müddet kodlamaya devam ettikçe gelisim evreniz sizi daha önce yapilmisi tekrar etmemeye yönlendirecektir. Bu yüzden baslayacaksiniz en iyi pratikleri aramaya ve yaptiginiz isleri standartlastirmaya çalisacaksiniz. Bu sebepten yapmaya çalistiginiz isi bir baskasi yapmis ise, o isle alakali bir bilesen yazmissa bir javascript kütüphanesi olusturmussa alip onu projeye dahil etmekte sakinca görmeyeceksiniz. Bu php için de böyle, orada da isleri kolaylastiran "framework" ler çikiyor. Bu gelisimin dogal sonucudur.

Sonra kullandiginiz bilesenlerde eger sürekli gelistirilebilen bir proje içinde kullaniyorsaniz, bazi sartlar arayacaksiniz içinizin rahat etmesi için. Öncelikle arkasinda duran saglayici (provider) saglam mi ona bakacaksiniz. Veya en kötü ihtimalle gerektiginde ben müdahale edebilir miyim diye açik kaynak kodlu bilesen bulacaksiniz. Mesela asp.net ajax arkasinda MS in durdugu bir bilesenler kümesi iken, Anthem açik kaynak kodlu ve çok kullanisli sifir konfigürasyonlu bir bilesenler kümesi.

Çalistiginiz proje büyük. Üzerinde çalisan programci sayisi birden fazla ama her katmanin yazilimi için ayni bir departman olusturacak kadar fazla da degil. Yani her seyi kodlayamiyorsunuz, hazir bilesen kullanmak gerekirse satin almak durumunda kalacaksiniz. Bu bileseni sürükle-birak ile formunuzun üzerine birakip, veya kod dosyasinda gereken üyelerinin degerlerini kuracaksiniz ve kullanacaksiniz. Bunun çok faydalari vardir. Öncelikle o bilesen zaten test edildigi için, siz o kismin çalismasini düsünmezsiniz bile. Ona verdiginiz is yapilacaktir. Nokta. Kod üretiminin otomatiklestirilmesi ayni zamanda programcinin dikkatsizliginden dogan hatalari da en aza indirecektir.

Arkadaslar .net in su anki vizyonu diger programlama dillerinin de gelecegi noktalardadir. Side-by-side execution gibi birçok yenilik var. Diger programlama dillerinin daha önceden kesfettigi MVC gibi kaliplara da yetismeye çalisiyor.

Ancak internet üzerinde masaüstü (desktop) formlari kavramini garip karsilamayin. Yazdigim sebeplerden dolayi, her türlü projede bilesen tabanli mimariye çok ihtiyaç vardir.

---------------------
RIATalks a gelmeyi çok isterdim, ancak insallah baska zamana:(

Ugur ÇELENK - 07.08.2008

Visual Studio'nun yeni versiyonlari çiktikça (..2005,2008..), ilk olarak baktigim yer toolbox oluyor(Gereksiz birsey koymamislardir umuduyla bakiyorum). Hizli proje gelistirmek ile saglam bir proje gelistirmek arasinda ters oranti var sanki. Herseyi drag and drop ya da wizard ile yapabilme olayi ne kadar kolay olsa da sevemedim,sevmek istemedim belkide. Özellikle PHP coderlarin, Asp.NET ile proje yapanlar için sürükle birak ya da wizard ile yapiyorsunuz herseyi,sizde yazilimcimisiniz gibisinden saldiri yapmasina sebep oluyor..

Forum sitelerinde takip ediyorum, Asp.NET'i yeni ögrenen herkes wizard ile yapiyor, kayit ekleme,güncelleme,silme,listelemesine kadar herseyi ve onda bile sorun yasiyorlar, datareader,sqlcommand nedir bilmiyorlar.Nerde kaldi programcilik..
Wizard kullanarak 10 saniyede yapmaktansa, oturup code behind ta 20 saniyede yapmayi tercih ediyorum.Özellikle veritabani ile ilgili islemlerde hiç wizard kullanmam, three tier architecture yapisina ters herseyden önce..
Wizard veya sürükle birak kötüdür demiyorum ama en azindan iyi bir programlama seviyesine gelindikten sonra kullanilmasi gereken seyler bunlar(Ferruh'un dedigi gibi). Piyasada Asp.NET anlatan kitaplara bakildiginda, birçogu wizard ile anlatmis, tam bir komedi olarak görüyorum bu durumu da..
[]
@Ferruh Mavi Tuna, çok güzel bir konuya deginmissin,içimdekileri döktüm sayende, tesekkürler, RIAtalks'ta görüsmek üzere;)
[
]

Fatih ÜNAL - 06.08.2008

MS ve b*kun püsürügün bile wizard 'ini yapma aliskanligi.:)

Geçen gün basima gelen bir hadise aynen söyle gelismistir;

Bir arkadasimin teknik servisine çay içmeye gitmistim ve kendisi bir müsteriyle ilgileniyordu. Ben de ani degerlendirmek için SharpDevelop 'u açmistim ve biraz birseylerle ugrasmaya ugrasiyordum. Birden kafamin arkasinda teknik servis elemanlarindan biri belirdi ve aynen söyle dedi.

- "Abi program yapma, programi bu mu? Valla ben de soracaktim nasil yapiyorsunuz bu isleri diye."
* (Ben) "Hönk, hassittir. Mantiga bak (içimden yüzüne karsi)"

Iste MS mantigi yüzünden insanlar programlarin yazilmadigini ve program ile yapildigini düsünüyor!
Simdi siz bana bu soruyu soran arkadasi programci olarak hayal edin ve bir de Ferruh 'un yukarda yazdiklarini düsünün. Wooovvv süper MS gençligi.

Haluk Akin - 06.08.2008

http://www.technologyreview.com/Infotech/17831/?a=f
C++'in yaraticisiyla yapilmis nefis bir röportaj var yukaridaki adreste. Bu yazida bahsedilen konuya farkli bir açidan ve daha temelden yaklasiyor. Üzerine diyebilecegim hiç birsey birakmamis Stroustrup.

I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough.

Software developers have become adept at the difficult art of building reasonably reliable systems out of unreliable parts. The snag is that often we do not know exactly how we did it: a system just "sort of evolved" into something minimally acceptable. Personally, I prefer to know when a system will work, and why it will.

Hüseyin Tüfekçilerli - 05.08.2008

Kesinlikle katiliyorum. Microsoft'un desktop uygulamasi gelistiricilerinin geçisini kolaylastirmak için olusturdugu bu ASP.NET (Web Forms) programlama modeli Visual Studio demosu yapmak için birebir ancak gerçek dünya uygulamalari için pek verimli olmadigi kanaatindeyim. Ama ASP.NET MVC çabasi gayet yerinde. Zaten ASP.NET'in runtime olarak (Server, Request, Response, vs.) çok güzel bir API'si var.

Ferruh Mavituna - 05.08.2008

Düsündügünüz zaman bir nevi hamalliktan kurtulmus oluyorsunuz aslinda.

Bu kesinlikle dogru ilk kural DRY (do not repeat yourself - sadece kendini dewgil baskasini bile tekrar etmemek lazim) dolayisiyla yapilmisi yapan zaten ayvayi yemistir. Benim demek istedigim bu degil, sadece bu tarz kod gelistirmede aciga cikan kodun ne oldugunu anlamak, okumak ogrenmek vs.

Kutuphane ve hazir kontroller tamamen bu konu disinda ama kontrol sizin kodunuzun icerisine kod uretiyorsa bu koddan haberdar olup ne yaptigini anlamak onemli.

Selçuk ERMAYA - 05.08.2008

Bende Asp.NET programciyim fakat Yazilimci degilsin kismini kesinlikle kabul etmem etmiyorumda:) Zamaninda Asp'de de kod yazdim, fakat Asp.NET bana çok büyük kolayliklar getirdi. Eger ki saglam bir proje yapiyorsan arka planda kod yazmamak kaçinilmaz oluyor. Bazen oluyor ki Kontrollerin büyük bir çogunu arka planda olusturup kodlamaniz gerekiyor. Bu benim açimdan çok yasanan birsey. Düsündügünüz zaman bir nevi hamalliktan kurtulmus oluyorsunuz aslinda. Ferruh abinin Kodunu Bilmeyen Yazilimci(Ben bu anlami çikariyorum) kismina katiliyorum. Evet çok küçük bir hatadan dolayi bana surda hata var diye gelenler var. Isleyisini ve mantigini bilmezsen Asp.net de kaliteli bir yazilimci olamazsin, Fakat neyi nerde kullanacagini hangisine ihtiyacin olacagini bilirsen ve uygulamayi saglam yaparsan sorun olcagini zannetmiyorum. En azindan ben öyle düsünüyorum...

Selamelte...

Ferruh Mavituna - 05.08.2008

Surukle birak ayri bir konu ASP.NET in client-side kodu beni esas gicik eden acikcasi. POSTBack ler yuzlerce Javascript hele bir de ATLAS / AJAX falan bulastirdiysaniz ona tam anlamiyla curcuna kod. Surukle birak koda gelince o da bazen korkutucu bazen de guzel. Kod tamamen ayri bir kutuphane ise o zaman sorun olmayabilir ama surukle birak kod uretiyorsa ASP.NET client-side controlleri ya da HTML uretmesi gibi o zaman kodu anlamak programci icin gayet onemli bir hal aliyor.

TechnoMANYAK - 04.08.2008

yani kasdettigin sey su visual studio .net 2008 deki gibi surukle birak islemleri mi ?

emrahustun - 04.08.2008

Kesinlikle.
Hatta bu sebeple ASP .NET'çileri pek yazilimci olarak göremiyorum ben. Tabi arka kodda costuranlar da var ama sürekle birakla proje yapip yazilimciyim ben demek komik geliyor.

Ferruh Mavituna - 04.08.2008

ingilizcem çok kötü birtek küfürleri biliyorum:P

Ozetle,

Eger yazdiginiz uretilen kodu bilmiyorsan "sansina programlama" yapiyorsunuz diyor. Dolayisiyla kendi kodunun ne yapmadigini bilmediginde de tuhaf hatalar ile karsilasmak ve cozememek normal.

1 - 04.08.2008

hsktr ingilizcem çok kötü birtek küfürleri biliyorum:P

Yorum Yazın


Tüm yorumlar onaydan geçmektedir, bu işlem en uzun 30 dk. sürecektir. E-mail adresleri yeni yorumları bildirme harici hiç bir başka amaçla kullanılmamaktadır ve sitede gözükmemektedir.

Yeni yorumlardan haberdar et

Captcha Kodu