Arşiv

Archive for the ‘MESLEKTEN’ Category

MÜŞTERİLERİNİZE KULAK VERİN !

Ocak 4, 2008 1 yorum

sccc.jpgÇoğu zaman bir yazılım projesini veya bir uygulamayı hata geçirmeden evvel aklımızda temel bir şablon olur. Bunu kağıda yada dijital bir ortama aktarınca hatlar belirginleşir. Bu sırada aklımıza yeni fikirler gelir ve bunu da şablonumuza ekleyip resmin son şekline iyice yaklaşırız. Bu yeni fikirlerin çoğu kullandığımız benzer ürünlerden esinlenmeler yada kopyalamalardır. (Düşünün: bir audio player yazacak olsanız uygulamanıza ne gibi özellikler eklerdiniz ? Ses ayarları, graphic equalizer, farklı dosya formatlarını destekleme, müzik kütüphanesi, internetten içerik getirme ,belki audio ripping, harici depolama birimleri için destek ve senkronizasyon vs vs. Muhtemelen çoğunuzun aklından bunlar geçti.) Bu süreci tamamlayınca artık development ‘a hazır hissederiz kendimizi ve uygulamamızı exception almadan çalıştırınca “bizden mutlusu olmaz 🙂” Güya çoğu ihtiyaca cevap verdik , hemen herşeyi hallettik. Kodlayan mumnun kullanan memnun. Acaba atladığımız bir ihtiyaç, aklımıza getirmediğimiz bir özellik olamaz mı?

Olur, olurmuş. Bunu Aqua Data Studio ‘nun e-posta grubuna gönderilen “New Feature” taleplerini okudukça daha belirgin bir şekilde görüyorum. Bakın bugün nasıl bir talep geldi:


I am a big fan of ADS. At this point there is only one feature lacking to make it perfect, for my needs at least.
As I type this, my licensed copy of ADS 6.5.0 has 25 servers registered into it: some Oracle, some MS SqlServer, and a some MySql.
My problem is that over time I lose the passwords to some of these databases. I can still connect through ADS because I entered the password correctly months or even years ago, but I can’t make a new connection because I have no idea what I typed back then into the password field.
What I would like to have is a field in each server registration where I could type some comments to remind me about salient features of each server. Putting the password into the comments is one example.
I can do that when I define a database connection into the IBM Webpshere 6.1 application server using that product’s administrative console– that’s the reason I thought to request this ability to add a comment for each registered server within ADS.


Açıkcası ben de hem Java hem de ASP.NET ile 2 adet database administration tool yazmıştım. (Basit ama ihtiyaçlarmı gören ve bana çok şey öğreten uygulamalardı) Amaç hem birşeyler öğrenmek hem de diğer araçlarla yaşadığım karmaşayı aşmaktı. Önce JDBC ile Java tabanlı minik bir uygulama geliştirdim. Sonra AsP.NET öğrenince ADO.NET+AJAX+ASP.NET kombinasyonuyla SQL SERVER 2005 üzerindeki tabloları ve bunlara ait bilgileri listeleyen web tabanlı bir uygulama yazmıştım. Son yazdığım uygulama AJAX sayesinde bağlandığım remote database server ‘ım üzerinde işlem yaparken kendimi daha az bekliyor gibi hissettirmiş ve beni SQL Server Management Stuido ‘nun kilitlenmelerinden bir dönem korumuştu.Bu tip uygulamaların en temel aşaması veritabanı ile bağlantı kurmaktır. Kullanıcıdan gerekli bilgileri (IP,Port,Username,Password) alıp, bağlantıyı kurduktan sonra, ilgili API ‘lerin getirdiği kolaylılara bir de bağlandığınız ürünün kendine has yeteneklerini ekleyip işinizi görebilirsiniz. Ama her iki uygulamamda da hiçbir şekilde yukarıdaki gibi bir PASSWORD HINT tarzı açıklama alanına yervermemiştim. (Açıkcası akıl edememiştim.)Bazılarınız için bu abartılası birşey değil. (Hatta güvenlik açığı diye düşünenler olabilir. Sonuçta sizin şifreyi hatırlamanızı kolaylaştıran birşeyler – eğer mesajı iyi gizlememişseniz- başkalarının da şifreyi daha kolay tahmin etmesine neden olabilir.) Fakat geçen gün aynı durumu enteresan yollarla çözmeye çalışmış birisi olarak ben faydalı bir istek olarak gördüm bu eklentiyi. Geçtiğimiz ay BETA database ‘inin şifresi lazım olmuştu ve DBA arkadaşlar diğer sunuculardakinden farklı bir şifre seçmişler. (Sağolsunlar) İlgili connection bilgileri ekibimizdeki bir arkadaşın kullandığı SQL Developer uygulamasında kayıtlıydı. Tabii password bilgisi asterix (*) karekterlerinin arkasına gizlenmişti. Bahsi geçen arkadaş da şifreyi hatırlayamayınca tahmin edin ben ne yaptım ?Asterix Revealer dediğimiz uygulamalar ile SQL Developer ‘dan şifreyi almaya çalıştım ama asıl işimi görecek uygulamaları bulunduğum şirketin güvenlik politikası gereği indirip kullanamadım. (Allahtan başka ekipteki arkadaşlardan şifreyi hatırlayanlar çıktı…)

Toparlamak gerekirse geliştirdiğiniz uygulamaları kolayca test edilebilir bir şekilde insanlara sunup 3., 4., 5. hatta N. şahısların görüşlerini mutlaka alın. Bu yazıdaki çok basit bir örnek. Ama emin olun bundan daha güzel istekler de geliyor ki bu sayede ADS bugün çok güçlü bür uygulama haline geldi. Bir de bu örneğin bir istisnası var. Uygulamayı kullananların çoğu ya uygulama geliştirici yada veritabanı yöneticisi yani işten anlayan insanlar. Bazen de müşterilerinizden uygulamanızın arka planda Kurtlar Vadisi ‘nin polifonik melodisini çalması yönünde talepler gelebilir. Bu gibi talepleri ve bu gibi şahıslardan gelen DİĞER TALEPLERİ sağlığınız açısından ciddiye almamakta fayda var. Şimdilik benden bu kadar… En kısa sürede daha farklı ve daha güzel yazılarla karşınızda olacağım…Sağlıcakla kalın…

2008 MICROSOFT VİZYONU ve YENİ TEKNOLOJİLER SEMİNERİNE DAVETLİSİNİZ

Ocak 3, 2008 5 yorum

Geçtiğimiz ay Ocak 2008 ‘de sizleri güzel bir seminer organizasyonun beklediğini söylemiştim. Artık seminer ile iligli detaylar netleşti ve 12 Ocak 2008 ‘de CETURK olarak yeni bir seminere imza atıyoruz.

Yaklaşık 1 ay süren yoğun e-posta trafiğinin ardından seminer programını oluşturabildik. Başlıktan da anlaşılacağı üzerine seminer Microsoft ‘un 2007 ‘nin ilk çeyreğinden sonra belirgin bir şekilde su üstüne çıkardığı teknolojilerinin 2008 ‘de hayatımıza ne şekilde gireceği üzerine. Her ne kadar bu teknolojiler 2007 ‘de lanse edilmiş olsa da geliştirilme süreçlerini tamamlamamış oldukları için asıl meyveleri 2008 ‘de hayatımızda olacak. (Microsoft bile downlaoad sitesinde Silverlight ‘ı yeni yeni hayata geçirdi)

expbox_studio.jpgSeminerde 3 konuşmacımz olacak. (Kendimi saymıyorum) Öncelikle Ercan Altuğ YILMAZ Microsoft ‘un Expression Web ve Expression Design ürünlerini bizlere tanıtacak. Bunlarla ufak tasarım demoları yapıp olayı daha da keyifli hale getirecek. Açıkcası Altuğ Hocam ‘ın tasarım konusunda olaya yaklaşımını ben de diğer insanlar gibi merakla bekliyorum. Sürekli business ağırlı bir seminer olmasından ziyade zarif ve şık tasarımların (ki bana çok uzak bir kavram) güne renk kattığı bir seminer olması daha güzel olacaktır diye düşünüyorum.
silver.jpg

Ardından söz Daron Yöndem ‘de olacak. Expression Blend ile WPF animasyonları yapıp devamında web ile ilgilenen arkadaşlar için Silverlight anlatıyor olacak. Eski adı WPF /E ile hayatımıza giren yeni Silverlight ‘ın gerçekten cross-platform ve cross-browser olup olmadığını ben yine soracağım elbette.
vs2008.jpgDaron ‘un ardından söz Eralp Eralt ‘da olacak. Visual Studio 2008 ile bizleri tanıştırıp (Ben VS 2008 ile çok zor şartlar altında tanıştım. Umarım sorunsuz bir tanışma olur) , C# 3.0 ‘ın özelliklerinden ve Microsoft ‘un ORM (Object Relational Mapping) için geliştirdiği çözümlerden (LINQ,DLINQ,XLINQ) bahsediyor olacak. Yani bunlar planlanmış kısımları ama eminim Eralp o an içinden geçen başka bir konuya da değinmeden sözü başkasına devretmeyecektir. (Mesala Windows Mobile olabilir)
Günün sonunda da ben deniz anlatılanları birkaç cümle ile toparlayıp çekilişle kitap hediyelerimizi vereceğim.

Yazımı bitirmeden evvel seminer organizasyonu ve bilgi paylaşımı konusunda bana her türlü yardımı gösteren her üç konuşmacı arkadaşıma da ayrı ayrı teşekkür ediyorum. Umarim keyfli ,verimli ve sorunsuz bir organizasyon olur. 12 Ocak ‘ta seminerde görüşmek üzere…

Ayrıntılı bilgi ve kayıt için tıklayınız…

Açık Kaynak Kodu ve Etrafında Olanları Hissedebilmek (Konuk Yazar: Oğuz DAĞ)

Kasım 23, 2007 1 yorum

duke-n-friends.png“Yaşıyor bu, canlı, hissedebiliyorum… ”

Açık kaynak projelerde kod yazıyorsanız, bu projeleri kullanıp bulduğunuz bug’ları giriyorsanız, hepsinden önemlisi bu bug’ların çözüldüğünü görüp bunları hemen uyguluyorsanız, kullanacağınız en güzel cümle yukarıda yazdığım cümle olacaktır.

Evet açık kaynak projelerin çoğunluğu canlı birer organizma gibidir. Daha önce yazdığım “Kötü misal emsal olmaz mı?” isimli yazımda da belirttiğim gibi, açık kaynak proje sadece kodların açılması değildir. Bununla ilgili daha önce yaşanmış sadece kodlarını açarak açık kaynak dünyasının nimetlerinden yararlanmak isteyen bazı projeler çıkmış, aşı tutmamış ve talihsiz bir şekilde bu maceralar sona ermiştir. Bundan çıkarılan sonuç ise önemli olanın kodun kendisi olmadığı, etrafında oluşan kümenin aslında önemli olduğudur. Merkezde bulunan kodlayıcılar ve (varsa) konfigürasyon yöneticileri ile bunların etrafını saran aktif-kullanıcılar (proje ve sistem ile interaktif bir şekilde uğraşan dinamik kullanıcılar) açık kaynak topluluğu denilen canlı organizmayı oluştururlar. Bu canlı organizma bu elemanlardan herhangi birisinin yokluğunda tabir yerinde olursa kan kaybetmeye başlar, ve doğru tedavi uygulanmazsa, yaşamı sona erer. Bu nedenle, eğer açık kaynak bir uygulamaya karşı herhangi bir sempatiniz, bir ilginiz var ise; unutmayın açık kaynak topluluğun size de ihtiyacı olabilir ve siz de bu topluluğa katılabilirsiniz. Bunun için illa ki kod yazmanıza gerek yok (yazarak yardımcı olsanız iyi olur tabi ama), yazılan kodları kullanıp, topluluğa fikirlerinizi, yorumlarınızı dönmeniz dahi yeterli olacaktır.

Açık kaynak topluluğunun en güzel örneklerinden birisi “Hudson”dır. Aktif olarak yer aldığım bir topluluk olduğu için söylemiyorum, şu anda revaçta olan bir proje olduğu için de söylemiyorum, bence CruiseControl’den sonra onun tahtına oturabilecek bir Sürekli Entegrasyon aracı olduğu için de söylemiyorum. Forumlarına girdiğim için, bug report’larını okuduğum, kodlarını checkout edip inceledeğim için söylüyorum. Yani canlı olduğunu hissettiğim için söylüyorum. Arada geçen şu şekilde diyaloglar sanırım ne anlatmak istediğimi size daha iyi gösterecektir.

Kullanıcı : Hudson’ı çalıştırdım, herşey güzel ama X issue management portal ile entegrasyonuna dair herhangi bir şey göremedim.

Kodlayıcı : Evet henüz o konuya zaman ayıramadık, ama bize yardım etmek istersen, her tür yardımı kabul ederiz.

Kullanıcı : Olur, kodları alayım, bakalım ne yapabiliriz.

Bunu okuyunca dahi ruhu hissedebilirsiniz.

Daha önce defalarca belirttiğim gibi her ne kadar açık kaynak projeler, ileride büyük abileri tarafından farkedilip alınsalar da, gelişim ve olgunlaşma süreçlerinde tamamen paylaşımcı ve ortak bir ruh ile götürülmesi ve maddi çıkarların düşünülmemesi gereken projelerdir. Çünkü ancak bu ruh ile davranılırsa başarı gelir. Umarım açık kaynak topluluğuna adım atmanızda bir zerre olsa yardımım dokunur.

Oğuz DAĞ
http://ozidethonjava.blogspot.com/

ORACLE SEMİNERİNE DAVETLİSİNİZ

Kasım 13, 2007 Yorum bırakın

CETURK olarak seminer organizasyonlarımıza Oracle semineri ile devam ediyoruz. Uzun zamandan beri gerçekleştirmeyi hayal ettiğim bu seminer için kısmet bu haftasonunaymış ve nihayet Hasan Tonguç Yılmaz CETURK üyeleriyle buluşuyor. Seminer için yer olarak Yıldız Teknik Üniversite ‘sini seçtik. ( Benim için de okuluma gidecek olmak ayrı bir keyif.)

Seminerin basitten zora doğru giden bir içeriği var. Temel olarak Oracle DBMS ile başlayıp ,daha sonra performans dar boğazlarının aşılması için neler yapılması gerektiği üzerinde durulacak. Son noktada da Event 10046 bizlere ne gibi ipuçları verir bunlardan bahsedilecek.

Her zamanki gibi çekilişimiz ve kitap hediyemiz de var. Bir aksilik olmazsa ben de orada olacağım. Seminere katılmak isteyenler buradan kayıt yaptırabilirler. Seminer detayları aşağıdaki gibi. Seminerde görüşmek üzere hoşçakalın…

ETKİNLİK DETAYLARI
Etkinlik Konusu : Oracle Trace Utility’e Giriş Ve Temel Performans Denklemini Anlamak
Etkinlik Türü : Seminer
Hedef Kitle : Oracle DBMS üzerinde uygulama geliştirenler ve uygulamalarindan daha fazla performans almak isteyeneler.
Kontenjan : 100
Etkinlik Tarihi – Saati : 17.11.2007 — 10:30-13:00
Süre : 1 Gün
Eğitimi Veren : H.Tonguç Yılmaz
Etkinlik Yeri : Yıldız Teknik Üniversitesi Merkez Kampüsü Sergi Salonu Adres için TIKLAYINIZ
ETKINLIK IÇERİĞİ
1.Oracle veritabanına giriş
http://tonguc.yilmaz.googlepages.com/Oracle-introduction-for-newbies.htmhttp://tonguc.yilmaz.googlepages.com/Oracle-Quality-and-Performance-for-F.htm
2. Başarım temel kavramları
3. Bekleme olaylarına giriş


http://tonguc.wordpress.com/2007/09/12/oracle-waits-defined-by-kyle-hailey/
4. Olay 10046 ve çözümlemesi

Bilgi için tıklayınız
5. Kapanış
KONUŞMACI
Okullar Fethiye Lisesi, ITU Bilgisayar Müh., Bilgi MBA
İş Tecrübesi 1996-.. Finans ve Telco şirketleri, BT bölümleri
Uzmanlık Oracle ile sürüm 7.3 tanıştı,9+ sene,
Oracle ACE ve OCP,OracleTURK grubu yönetici(1999),Turkcell Akademi Oracle veritabanı ve ürünleri iç eğitmeni
Uyarı “Guru” veya bir başka pazarlamacı değil!
Daha fazlası http://tonguc.wordpress.com/about/
  H.Tonguç Yılmaz tonguc.yilmaz at gmail.comhttp://tonguc.yilmaz.googlepages.com
ETKİNLİK HEDİYEMİZ
Seminere katılan 3 üyemize çekilişle aşağıdaki kitaplardan hediye edilecektir.:

JIRAMANIA BİZE ÇOK UZAK ÇOOKKK!!!

Eylül 28, 2007 3 yorum

threetools.pngGeçtiğimiz günlerde Atlassian firmasının sitesinde gördüğüm What 3 Dev Tools Do You Rely on Most? başlıklı haber çok hoşuma gitmişti. Yani bir uygulamanın bu kadar çok amaca hizmet edebilir olması ve bu kadar efektif kullanılması hem o uygulamayı yazanlar için hem de kullananlar için çok güzel bir durum.

Yukarıdaki resimde de görüleceği üzere arkadaşlar development süreçlerinin her aşamasına JIRA ‘yı entegre etmişler. Bu sayede JIRA+CVS+ECLIPSE üçlüsü ile projelerini tıkır tıkır yürütmeyi başarmışlar. Resme bakınca JIRAMANIA bu olsa gerek demiştim kendi kendime…

Bu arada nedir bu JIRA diyenler buradan ve Mustafa Tan ‘ın blogundan detaylı bilgiye ulaşabilirler.

JIRA özetle “Söz uçar yazı kalır” felsefesinin yazılım projelerinde hayat bulmasıdır benim gözümde. Yapılan , yapılması gereken, yapılması umulan yada yapılacak olan işlerin takip edilebilmesini ve kayıt altında olmasını sağlar JIRA. Yani e-maili, telefon yada birebir muhattabiyeti kayıt altına alır. “Abi bee bu kod patlıyor bir el atıver de biz de teste devam edelim” şeklinde gelecek vakitsiz bir telefonun önüne geçer JIRA. Onun yerine e-mailinize ve JIRA hesabınıza tatlı bir issue düşer bir öğle tatili öncesinde… 🙂

Açar bakarsınız ve gerekeni yaparsınız. Sonradan birisi çıkıp da “Ben şu zaman demiştim sen bu zaman yaptın“, yada “ben böyle demiştim sen şöyle yaptın“gibi bir iddiada bulunamaz çünkü herşey orada yazılmıştır. JIRA ‘nın tanıtımı yapıp , teorik olarak kullanımını anlattıktan sonra sıra geldi hayatın gerçekleriyle yüzleşmeye…

Biz de şu anda dahil olduğum projede JIRA ‘nın nimetlerinden faydalanmaya çalışıyoruz. Hem development hem de test sürecinde yoğun bir şekilde JIRA kullanılıyor. Özellikle de projesini yaptığımız şirketin IT departmanıyla olan ilişkilerde işlerin daha ciddi yürütülmesi adına JIRA köprü görevi görüyor. Şu sıralarda bizim ekibin yazdığı modüller Alfa tesinde. Müşterimizin IT departmanındaki arkadaşlar bizlerin yaptığı ekranları test edip bizlere hatalı durumlarda “issue açıyorlar“. Buraya kadar herşey olağan. Ama bazen etrafımda öyle manzaralara denk geliyorum ki… Millet uzaya gidiyor biz nereye diye düşünüyorum…

Bir hata raporlanmış, developer arkadaş da düzeltmiş bir güzel. Şimdi tek yapması gereken JIRA ‘da kendisine atanan görevi ufak bir açıklama girerek kapatmak. Developer arkadaş kaygılı. Neden mi? Çünkü hatayı raporlayan vatandaş açıklamaları anlamamkta büyük bir direnç gösteriyor. Ne yapsam ne yazsam diye düşünürken oradan dahiyane bir fikir egliyor. “Ya telefon açıp söylesene. Böyle böyle diye anlatsana” (Hani yazılandan anlamıyor belki laftan anlar diye umuyor sanırım) yada “Dur dur ben de e-mail adresi var o bayanın uzun uzun bir mail at olsun bitsin”  Güler misin ağlar mısın?

Madem bizim telefon, e-mail gibi hizmetlerimiz var neden JIRA kullanıyoruz? Neden birileri JIRA ‘da bizim sorunsuzca çalışabilmemiz için emek harcıyor? Yada bu işler madem böyle de yürütülebiliyor neden bir grup zeki arkadaş oturup JIRA adlı bir uygulama geliştiriyor. Maksat yeşillik olsun diye değil mi? Yada el alem “Sizin JIRA ‘nız var mı?” diye sorduğunda “Olmaz mı hem de en enterprise edition ‘ından” diyebilmek için…

Görüldüğü üzere bir uygulama ne kadar akıllıca tasarlanmış olursa olsun işin içine beşeri faktörler girince, o akıllıca tasarım pek bir anlam ifade. Siz siz olun bu gibi fikirlere aldırış etmeyin. Elinizdeki araçlar her ne kadar amacınız olmasa da onları ne kadar efektif ve doğru kullanırsanız o kadar rahat edersiniz. Sisteminize ekleyeceğiniz fazladan her araç hem maddi yük getirecek hem de ayrı bir yönetim süreci isteyecektir. O nedenle bu gibi işlere ayıracağınız kaynağın karşılığını en iyi şekilde almalısınız. Hem siz elinizdeki aracı doğru kullanmak konusunda ne kadar ısrarcı olursanız etrafınızdakiler de er geç size uymaya başlayacaktır. (Yani birileri derdini yazarak anlatmayı ve diğer taraf da yazılandan birşyeler anlamayı öğrenmeli.) Yanlışları değil doğruları toplu halde yapmaya özen göstermenizi dileyerek yazımı burada noktalıyorum.

UNIT TESTING & TDD (Test Driven Development)

Ağustos 29, 2007 1 yorum

Geçtiğimiz haftadan bu yana üzerinde çalıştığımız projenin test aşamasını iyileştirebilmek (yada gerçekleştirebilmek) adınatest.jpg Unit Testing ve Test Driven Development ile ilgili araştırmalar yapıyorum. Bu süreçte bir yandan birşeyler öğrenme bir yandan da bu öğrendiklerimi hali hazırda yürüttüğümüz projeye uygulama şansına sahibim. Bu nedenlerden ötürü geçtiğimiz haftayı Unit Testing ve Test Driven Development üzerinde araştırma yaparak geçirdim. Bu noktada bana düşen en önemli görev developer arkadaşları Unit Test yazmanın bir lüks değil bir gereklilik olduğuna ikna etmek. O nedenle bu gerekliliğe kendimi iyice inandırmaya çalıştım ve yüzlerce linki , yazıyı taradım. Bu süreçte öğrendiklerimi belirli başlıklar altında sizlere paylaşmak güzel olacaktır diye düşündüm.

(NOT: Test-Driven Development = Test Güdümlü Yazılım Geliştirme ,Unit Test= Birim Testi olarak kullanılacaktır.)

Test Güdümlü Yazılım Geliştirme Nedir?

Test Güdümlü Yazılım Geliştirme: önce gerekli test koşullarını yazıp ardında da bu testleri geçecek ve hedeflenen işi yapacak kodu yazmayı öngören bir yazılım geliştirme modelidir.

Bu yazılım geliştirme modeli dahilinde aşağıdaki adımlar izlenir:

• Öncelikle yazılımın ilgili birimi için basitçe bir test yazılır.
• Bir sonraki adımda teste tabi tutulacak birim yazılır.
• Eğer o birim, testi geçerse test geliştirilir ve birim tekrardan test edilir.
• Eğer birim testi geçemezse gerekli değişiklik yapılır ve tekrar test edilir.
• Birim son halini alana kadar her değişiklikte test edilir.
• Birim beklenen işi gerçekleştiriyorsa ve tüm testleri geçiyorsa süreç tamamlanır.

Test Güdümlü Yazılım Geliştirme , geliştirme sürecimizi hem hızlandırır hem de iyileştirir çünkü yazılan kodların bir hata durumunda tekrardan yazılması veya hatanın bulunmaya çalışılması ciddi bir maliyet oluşturur.
Test Güdümlü Yazılım Geliştirme yöntemi bir Sürüm Yönetim Sistemiyle birlikte kullanılırsa çok daha verimli olacaktır çünkü bu yaklaşım hata durumunda tüm testleri geçen sürüme geri dönülmesi kolaylığını getirir ve de kodun içerisinden hata ayıklamaktan daha efektiftir.

Birim Testi Nedir?

Birim Testi yazılım projemizdeki her bir birimin (Object-Oriented Programming çerçevesinde en küçük birim sınıftır) doğru bir şekilde çalışıp çalışmadığını anlamak amacıyla oluşturduğumuz testtir.

Birim testi hem Test Güdümlü Yazılım Geliştirme Sürecini kolaylaştırır hem de uygulamamızın her bir biriminin sorunsuzca çalıştığından emin olmamızı sağlar.

Neden Önce Birim Testi Yazılmalıdır ? (Test-First Approach)

Yazılım geliştiriciler için Birim Testi yazmanın yada Test Güdümlü Yazılım Geliştirme Süreci ‘ne adapte olmanın en zor noktası henüz yazılmamış bir birim için test yazmaktır. Bu noktada alışkanlıkların değiştirilmesi biraz zaman alabilir.

Testi , işi yapacak birimden önce yazmamızın nedeni: testi yazabilmek için o teste tabi tutulacak birimin ne iş yapacağını iyice anlamamızı gerektirmesidir. Eğer ilgili birimin verilen giriş bilgisine karşılık çıkışta ne üreteceğini iyice anlamışsak ancak o koşulda testini yazabiliriz. Testi yazdıktan sonra da o testi geçecek kodu yazmak daha kolay olacaktır çünkü testin yazımı sırasında o birimin yapacağı iş kafanızda netleşmiş olur.

Birim testini önce yazmak konusunda yapılan en büyük hata; ilk seferde doğru testi ve bu teste uygun birimi yazmayı hedeflemektir. İlk başta hem test hem de teste tabi tutulacak birimde hatalar ve eksiklikler olabilir fakat test ve düzeltme süreci yukarıda bahsedildiği şekilde tekrarlandıkça bu süreç sonunda ortaya daha kaliteli ve daha güvenilir bir ürün ortaya çıkacaktır.

Birim Testini Projemdeki Hangi Bileşenler İçin Yazmalıyım?

Bu noktada karar uygulama geliştiriciye aittir. Fakat Nesne Yönelimli Programlamada genel yaklaşım bir sınıf içerisindeki tüm public metodlar için birim testi yazmak yönündedir.

Öte yandan değişkenlere erişimi düzenlemek amaçıyla kullandığımız (Accessors- Mutators) metodlar ve bir bakışta işlevi anlaşılıp hata olduğunda kolaylıkla bulunabilecek metodlar için birim testi yazılmayabilir.

Tüm metodlar için birim testi yazmamanın tek dezavantajı projemizin Code Coverage (Code Coverage:Bir projedeki test edilen kodların, tüm kodlara oranı ) yüzdesini düşürmesidir.

Birim Testi ile İşlevsellik Testi (Functional Test) Arasındaki Temel Fark Nedir?

Birim Testi uygulama geliştiricinin kendi perspektifinden, yazdığı kodun doğru çalışıp çalışmadığından emin olmak amacıyla yapılırken , İşlevsellik Testi kullanıcının perspektifinden bakılarak yazılan kodun kullanıcı ihtiyaçlarını karşılayıp karşılamadığını tespit etmek amcıyla yapılır.

Birim Testi kod yazımından önce yapılırken , İşlevsellik Testi ürün müşteriye verilmeden evvel yapılır.

Birim Testinin Yazılım Geliştirme Sürecine Katkıları Nelerdir?

• Refactoring işlemlerini kolaylaştırır: Tüm birim testlerden başarıyla geçmiş bir kod bloğu üzerinde refactoring yaptığınızda kodunuzun bozulup bozulmadığını birim testini tekrar çalıştırarak rahatlıkla anlayabilirsiniz.
• Sonradan ortaya çıkabilecek hataların oluşturacağı maliyeti en aza indirir.
• Yazılımış kodları inceleme (Code Inspection) işleminden daha kolay ve daha verimlidir.
• Uzun vadede testsiz kod yazmaktan daha hızlı kod yazmayı sağlar çünkü aynı kodların hata durumunda tekrardan düzenlenmesi ihtiyacını en aza indirger.
• Birim testi yazmak, bizleri yazacağımız kodun işlevini en ufak detayıyla anlayama iter çünkü işlevini tam olarak anlayamadığımız bir birimin testini yazma şansımız yoktur. Bu da yazılan birimlerin daha doğru olmasını sağlar.
• Yazılan kodlar için bir çeşit dökümantasyon sağlar çünkü yazılan test koşulları incelenerek o kod bloğunun işlevi rahatlıkla anlaşılabilir.

Yukarıda bahsi geçen konularla ilgili öğrenme sürecim hala sürüyor o nedenle blogumda bu konuyla ilgili paylaşımlara devam edeceğim. Kısa bir süre içinde bu konuyla ilgili faydalanabileceğiniz linkleri kategorize ederek sizlerle paylaşmayı planlıyorum. Şimdilik benden bu kadar. Bir sonraki yazıma kadar sağlıcakla kalın…

NOT: Bu gece 3 gün sürecek ufak bir İzmir tatiline çakacağım. Umarım orada da blogumu güncellemeye fırsatım olur?

UYUMSUZLUĞA MICROSOFT ‘TAN ÇÖZÜM GELDİ

Ağustos 29, 2007 11 yorum

Internet Explorer 7 ‘ye geçiş sırasında ciddi problemler yaşanlardan biriyim ben de. Neyseki artık hayatımda IE ‘nin pek bir yeri kalmadı. Fakat bu durum herkes için geçerli değil elbette. Israrlı ve sadık Microsoft kullanıcıları hala IE kullanmaktan bir türlü vazgeçmiyorlar. (İşletim sistemine entegre olarak gelmenin avantajı böyle birşey olsa gerek) Microsoft da bu arkadaşları düşünerek User Agent String Utility v2.0 adlı aracını geçtiğimiz hafta yayınladı.

Bu araç sayesinde henüz IE 7 ‘ye adapte olamamış sitelere kendinizi farklı bir tarayıcından geliyormuş gibi gösterip bağlanqbiliyorsunuz. (Daha doğrusu daha düzgün görüntülüyebilemenizi sağlıyor) Bu ufak uygulamayı kurduktan sonra masaüstünüze oluşturacağı kısayol yardımıyla Internet Explorer ‘ı farklı bir User Agent bilgisiyle açabilirsiniz. Sisteme herhangi bir kayıt eklemieyen bu uygulamaın oluşturduğu kimlik sadece masaüstünüzdeki kısayol ile açtığınız pencere için geçerli oluyor.

Eğer Internet Explorer ‘a kalıcı olarak bu profili vermek istiyorsanız http://www.enhanceie.com/useragent.aspx adresindeki registry scriplerden faydalanabilirsiniz. EricLaw tarafından hazırlanan sitede Internet Explorer kullanıcılarının işine yarayabilecek çok faydalı scriptler ve eklentiler mevcut.

Microsoft ‘un bu tip bir araç çıkarması bana Microsoft MVP olan bir arkdaşım söylemiş olduğu: “Microsoft geriye uyumluluk konusunda dünyanın en iyi firmasıdır.” cümlesini hatırlattı. Geriye uyumluluk bu mudur , böyle birşey midir? Uydurmacılık nedir peki?…

user_agent.jpg