anov

asp.net, c#, javascript, css, php ve blogengine.net deneyimleri.

Dürtmeden gitmeyen insan modeli = Ben

clock April 2, 2009 01:39 by author Necat Bolpaça

Bu yazının bir benzerini çok kısıtlı sayıda insanın erişimi olan bir yerde de yazmıştım. Ancak kopyala&yapıştır yok, düşüncelerim değişmediğinden aynı şeyleri yeniden yazıyorum haliyle...

Hayatımda iki tip insanla karşılaşıyorum veya iki tip insandan biri oluyorum.

Birinci tip, bir şeyi "yapacağım" dediği zaman yapan insanlar. Ama zamanında ve kimsenin ona görevini hatırlatmadan yapan insanlar. Sorumluluğunun farkında olanlar. Yerine getirmediği sözlerin başkalarını ne kadar zor durumda bırakacağının bilincinde olanlar. Bu kişileri seviyorum. Böyle adamlar(veya kadınlar) ile çalışmak benim için onurdur.

İkinci tip, bir şeyi "yapacağım" dediği halde sorumlu olduğu kişiyi sürüncemede bırakan, acaba yaptı mı yapmadı mı oldu mu olmadı mı diye ıstırap çektiren insanlar. Sorumluluğunun farkında olmayanlar. Onların sorumsuzluğu yüzünden diğer insanlar hep sıkıntı çektiler. Çekeceklerdir de.

Bu yazıda çizgiyi böylece ortadan çektiğime göre, birinci tip insanların başka iyi yönlerinden de bahsedeyim. İnisiyatif alırlar. Evet, sorumluluklarının bilincinde oldukları için, "acaba ne yapabilirim" diye sürekli uğraşırlar. Sizin onlara ne yapacağını söylemeniz gerekmez.

Burada bir şeyi itiraf etmek için yazıyorum. Ben gitgide ikinci tip insanın hareketlerine benzer hareketler yapmaya başlıyorum. Sorumsuz, inisiyatif almayan, aynı halde bıraksan bir elli sene daha duracak bir "insan müsveddesi" halini alıyorum. Umarım, bu durumdan kurtuluşum mümkün olduğu kadar kısa olur.

Not : Bu yazı 1 Nisan şakası değildir.

Not.Not : Sadece siyah veya beyaz yok. Gri tonlar da var elbette, bir insan illa #000000 veya #ffffff olamaz. Çeşitli konularda değişik tepkiler verir farklı önem dereceleri atfederler konuya.



string, eval(), aspx markup are all evil. I hate them.

clock March 19, 2009 23:17 by author Necat Bolpaça

This bugs driving me insane. If I tracked all code output line by line, and determine which sql query cause a crash, then WHY i am using c# ?

Lets see why c# rocks (from my perspective)

* Its strong typed

 Yes, thats all :)

Uh, there are more reasons:

* When you successfully compile one project (or component) you can trust them a degree. Because everything is a object. You created them, you manipulated them and return values, images etc.

* All things perfectly match with others as good as Legos™

But, when a string comes on, everything must be double-checked. Markup values, some parameters and all sql scripts are string. There is no strong typing and every issue come at runtime.

...

...

(this post like a twitter-like but i dont want write any more about this, at least -for now- thanks.)



Kendimden haberler - 3 Şubat

clock February 4, 2009 02:09 by author Necat Bolpaça

Geçen günlerde düşüncelerime bir bulanıklık hakim idi. Bana dahi garip gelen bu bulanıklığın sebebi meğer geçireceğim sara krizi imiş. Geçen pazartesi sabahı (26 Ocak), otobüs durağında bilincimi kaybedip olduğum yere düşmüşüm. Neyse ki alnımdaki yara çabucak kabuk bağlayıp, büyük bir iz bırakmadan kendini iyileştirebildi.

O günün geri kalanını, patronumun ısrarıyla Şişli Etfal de geçirdim. Kafatasında herhangi bir kırık-çıkık yok. Bugün için internet vasıtasıyla bir randevu almıştım. Bugün yeniden Şişli Etfal deydim. Uzm.Dr. Dilek Necioğlu Örken tarafından nöbetlerim yeniden dinlendi ve bu sefer Depakin değil, ismini söylemekte zorlandığım ve bu yüzden ismini bir türlü aklımda tutamadığım Trileptal i sabah ve akşam kullanmam söylendi. 

Üzerinde çalıştığım büyük bir proje olduğunu, benimle sohbeti olanlar bilir. Bu sanırım shopify tarzı büyük bir elektronik ticaret platformu haline getirilecek bu senenin ikinci çeyreğine doğru. Eğer başarılı olursak, firmamız sadece bu iş ile ilgilenen birkaç bölüme daha sahip olabilir. Tabii başarısızlık da her zaman bir ihtimal.

Bu işin yoğunluğundan dolayı, gün içinde üyesi olduğum sitelerde bırakın katkıda bulunmayı, ne olup ne bittiğine bile doğru düzgün bakamıyorum. Bu sebepten beni merak eden bazı arkadaşlar olmuş sağolsunlar. Bir takım sorunlar olsa da ölmedikçe hepsini çözeceğim inşallah.

Neyse ki, sonunda evime adsl bağlandı yeniden. Akşamları ve hafta sonları eğer müsait olursam öncelikle sürekli uğraştığımız programlama sorunlarının çözümlerini toparlamaya çalışacağım. Önce işlerimi toparlamam gerekiyor. 



Kafam karışık

clock January 19, 2009 21:32 by author Necat Bolpaça
Şeylerin nasıl olup-bitmesi gerektiğine dair, içimde bir doğru taşıdığıma inanıyorum ancak o kadar hızlı geçiyor ki sanırım yakalayamıyorum.
Ancak deneyeceğim çünkü öyle yapmam gerekiyor. Bunun tam olarak ne olduğunu bilmiyorum.


Kodlar merkezi olmalı, merkezi. Merkezi değilse de o şekle getirilmeli.

Mike Krüger in dediği gibi, işler önceden doğru şekilde yapılmamış olabilir ancak onları düzeltmek için çekingen davranmamalıyız.

Sanırım şimdilik bu kadar.

Spam atılmamalı. Bu bir ilke olmalı. Spam atılmamalı. Ve hotmail ileti raporları. Evet.

Zannedersem içimde farklı yönlere zorlayan kuvvetler var. Birisi kendine göre ideal bir ortamı oluşturmak için olayların oluşuna müdahale etmeye zorluyor diğeri ise çekingenlik ile onu engelliyor? Zorlayan ne, engelleyen ne?

Bir de sanırım dikkat çekmek isteyen bir öğe var. Hani "görsünler diye" "bilsinler diye" bir şeyler yapmak isteyen bir niyet mi bir düşünce mi öyle bir şey

Bir de anlamaya çalışan olmalı. Düşüncenin akışını ve insanların davranışlarını anlamaya çalışan bir kuvvet. Evet.

Bunlarla problemin başlangıcını inşa edebiliriz. Fakat fikirlerimizi nasıl derli-toplu tutabileceğiz. Benzeri düşüncelerle nasıl gruplayacağız.

Evet bir sürü şey düşünüyoruz ama bunları özetlemektir önemli olan. Önceliklerine göre sıralayıp uygulamaya geçirebilmek. Yani düşüncenin devamını getirmek ancak sonradan da ne dediğimiz anlaşılabilmeli o kadar kısa tutmamalı.

Bir kere yaptığımız iş kısım kısım olmalı, kısa sürede yaptığımız ve bitirdiğimiz iş diğerlerinin üzerine konulabilmeli birikebilmelidir.
Tabii bunun için belli bir düzen de gerekiyor ki, düşünceler, işler birbirine karışmasın.


MWNC den ayrılış, derleme zamanı hataları, çalışma zamanı hataları ve güçlü tipin önemi

clock November 21, 2008 23:36 by author Necat Bolpaça

Made With Notepad Campaign 

Uzunca bir süredir, C# yazıyorum. Asp.net ile kullanmak için "Class Library" türünde projeler oluşturuyor, bunları projeye dahil ediyorum. Sayfalarım da zaten Page türünden bir nesne. 

Daha önceki yaptığım işlere nazaran (daha önceki projelerim genellikle katalog türü siteler ve sipariş verilebilen küçük firma siteleri idi) hayli büyük bir projeye ikinci girişimimi gerçekleştireli epey oluyor. Şu günlerde, özellikle son birkaç haftada eskisi kadar faaliyet gösteremiyorum internet üzerinde. Geçtiğim günler içinde, eğer özeleştirisini yapacak olursam oldukça aptalca kararlar vermiş olduğumun farkına vardım. Meslekte benden daha tecrübeli olan ve bir ağabeyimin tavsiyesiyle bilgisayarıma Visual Studio 2005 yükledim. Aynı zamanda diğer küçük projelerim için de Visual Web Developer 2008 ile Sharpdevelop 2.2 yi koordineli kullanmaya başlamıştım.

Aynı kodu hem bir metin editöründe, hem de bir IDE ile çıkartabiliyorsam metin editörü kullanmanın bana avantajı nedir? Kocaman bir hiç değil mi? Büyük dosyaları düzenlemek ve içinde değişiklikler yapmanın kolay olması durumu dışında metin editörü kullanmanın bir mantığı yok ki. Bunu benim anlamam neden bu kadar uzun sürdü, sanırım daha önceden girdiğim projelerin büyük olmayışından. Böylece Made With Notepad Campaign den ayrılmış oluyorum. Sonuca giden yolda beni en hızlı götüren vasıtaları kullanmaktan çekinmeyeceğim. Metin editörleri de tabii buna dahil :-) 

Derleme zamanı hataları (compile time errors)

Hangi dilde yazdığımızdan bağımsız olarak, hataların ortaya çıktığı zamana bağlı olarak sınıflandırılması gibi bir alışkanlık vardır. Eğer biz hatayı projeyi (veya kaynak kodunu) derleyiciye gönderirken alıyorsak bu bir derleme zamanı hatasıdır. Güçlü tipli bir dil ile (C#, Java gibi) uygulama geliştiriyor iseniz derleme zamanı hataları gidermeden projeyi derleyememeniz gerekir. Typed dataset, güçlü tipler vs. bir çok özellik hatayı hemen almanızı sağlar.

Burada altın kuralımız şu : Hatanın farkına ne kadar erken varıyorsak, o kadar iyi. Bu anlamda derleme zamanı hataları en iyisidir.

Çalışma zamanı hataları (runtime errors)

Bu hatalarla genellikle geliştirme yaptığımız dil, belli yeteneklerden yoksun ise ve bunu dış kaynaklardan karşılıyorsa o noktalarda karşılaşıyoruz. Çok bilinen bir örnek olarak SQL sorgularını gönderdiğimiz zaman. SQL sorgusu veya Stored Procedure adı alelade bir string değil midir? Bunun çalışma zamanında hata vermesi ancak kodun işleyişinin o noktaya gelmesiyle anlaşılacağından çalışma zamanı hataları kötüdür.

Çalışma zamanı hatalarını sevmiyorum. Eğer ben bir tablodan veri çekiyorsam ve tablonun ismi değişti ise beni uyarabilmeli geliştirme yaptığım dil. Veya ben, araya bir ek katman yerleştirme pahasına, çalışma zamanı hatalarını derleme zamanı seviyesine çekebilmeliyim. Bu hataların daha çabuk farkında olmamı sağlayıp program yazma hızımı arttıracaktır.

MS in her şeyi IDE ye bağlama fikrinden nefret etmem belki de boşunaydı. Her şey tek merkezden yönetilince hataları yakalamak daha kolay olacaktır.

Güçlü tipin önemi

Dinamik dillere zaman zaman sempati duyuyorum ancak, güçlü tiplerin gerçekten hata yakalamayı kolaylaştırması (derleme zamanına çekebilmesi) büyük bir avantaj. Bu dinamik dillerde TDD (Test Driven Development) ile aşılabilir. Madem kod o noktaya erişmeden hata olup olmadığını anlayamıyoruz o halde kodun o ihtimali de denemesini sağlarız diyebilirsiniz. Nitekim Dive Into Python içinde roma rakamı çeviren betik geliştirilirken ufaktan çevik yaklaşıma giriş yapılmış.

Ama güçlü tipli dillerde aynı zamanda çevik yaklaşım kullanma şansı da var. O cephede tek eksiğim sanırım tanımlanabilecek en düşük sayıda nesneyi tanımlamak. En iyi pratikleri (Design patterns) inceleyip anlamak, anlatmak.

Son haftalarda bunların üzerine düşünüyorum. 



Recent comments

Comment RSS

About the author

Some text that describes me

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in  anyway.

© Copyright 2008

Sign in