Category Archives: DEVELOPMENT

KARİYERİNİZE TURKCELL ‘DE YÖN VERMEYE NE DERSİNİZ?

turkcell_oracle1.jpgDaha önce blogumda IBM ve Microsoft ‘taki yaz okulu ve staj çalışmalarından bahsetmiş ve bunların önemini vurgulamıştım. Bu sırada çok önemli bir çalışmayı atladığımı fark ettim ve geç de olsa yolun başındaki arkadaşlara yol göstermesi açısından bu konuyu bloguma taşımaya karar verdim.
Turkcell ‘de son senelerde yoğun bir emek harcanarak R&D Software Development ekibine stajyer arkadaşlar alınıp , eğitilerek kariyerlerinde önemli bir adım atmaları sağlanıyor.

Eğer bu süreci yeterince iyi bir şekilde değerlendirirseniz kariyerinize Turkcell ‘de devam etme şansınız da var. Şöyleki staj döneminden sonra part-time çalışma şansına ardından da okul bitiminde full-time çalışma şansına sahip olabilirsiniz.

Her yılın Temmuz ayında başlayan ve Eylül ayının sonunda biten 3 aylık bir süreci kapsıyor bu staj dönemi. Burada 3 ay staj yapmak zorunlu. Yani yoğun ve ciddi bir staj dönemine hazırlıklı olun. Elbette bu dönem sonunda da kolay kolay hiçbir yerde elde edemeyeceğiniz bir bilgi birikimine sahip oluyorsunuz.

Staj döneminiz Turkcell ‘in kullandığı teknolojilere bağlı olarak Oracle ve Java ağırlı bir çalışma dönemini kapsıyor. Bu konularda üç aylık bir dönemi kapsayan teori ve uygulamayı birarada bulabileceğiniz bir staj dönemi geçiriyorsunuz. Burada Turkcell ve Oracle kelimelerini yanyana görmek sizlere birisini çağrıştırdı mı?

Evet bildiniz Hasan Tonguç YILMAZ. Eğer bu staj sürecine dahil olursanız Hasan Tonguç YILMAZ ile birlikte çalışma ve kendisinin deneyimlerinden faydalanma şansına da sahip olacaksınız. Kendisini tanıyanlar ve blogunu takip edenler Tonguç Abi ‘nin engin Oracle bilgisini sadece kendi işi için kullanmayıp etrafındaki kişilere çeşitli yollarla (forumlar,e-mail grupları , blog yazıları vb. ) paylaştığını bilirler. (O nedenle benim gözümde pek çok Oracle uzmanından daha değerlidir.)

Burada en önemli nokta paylaşımın ve iletişimin staj döneminden sonra da devam etmesi. Açıkcası benim öğrenciyken en çok imrendiğim ve başımı taşlara vurmama sebep olan nokta bu olmuştu. (Tonuguç Abi ‘nin Oracle Cost-Based Optimization çalıştayında stajyerlerine ne kadar çok değer verdiğini ve ne kadar çok şey kattığını görünce kıskanmadım desem yalan olur.)

Yazının başında da belirttiğim gibi şu anda staj süreci sürüyor. Bir sonraki alımlar seneye yapılacak ama şimdiden hazırlık yapmakta fayda var. Bu blog yazısına özel bir kaç da tüyo vereyim. Eğer Turkcell ‘deki bu staj sürecine kabul edilmek istiyorsanız önünüzdeki bu eğitim öğretim yılını çok iyi değerlendirin ve SQL, PL/SQL, APEX, JAVA konularına ağrılık verin. Bu noktada yapabileceğiniz en faydalı şey ara projenizi veya diğer derslerden aldığınız projeleri bu teknolojileri kullanarak gerçekleştirmek olacaktır.

Bu teknolojilerle ilgili olarak Oracle ‘ın sitesinde fazlasıyla kaynak mevcut. Ama ben yine de APEX (Application Express) ile yeni tanışacak olanların bu yazıya ve Oracle ile yeni tanışacak olanların da bu yazıya bakmalarını önereceğim. Turkcell ‘deki bu staj süreci ile ilgili olarak Hasan Tonguç Yılmaz ‘ın blogunda yazdığı bu yazıya bakmak da faydalı olacaktır. Yine aynı şekilde staj süreci hakkında bilgi alabileceğiniz diğer bir kaynak da şu anda hala stajyer olarak Turkcell ‘de bulunan Bilal Hatipoğlu ‘nun Blogu. Bilal gerçekten de çok yalın ve anlaşılır bir dille bu süreci ve öğrendiklerini bloguna taşımış. (Bu güzel paylaşımından ötürü Bilal ‘i tebrik ediyorum.)

Umarım bu blog yazısı öğrenci arkadaşlar için motive edici ve yol gösterici olur. Bu yıl içerisinde gereken çabayı gösterip yazıda bahsi geçen teknolojilere odaklanarak seneye siz de Turkcell ‘de stajyer olmaya ve kariyerinize yön vermeye ne dersiniz?

VISUALSVN – Subversion Plugin For Visual Studio

vssvn.pngSanırım başlıkta Visual ile başlayan bir sözcük blogumu takip eden görmek .NETci arkadaşlarımızı mutlu etmiştir. Dünkü Eclipse yazısından sonra bugün de Visual Studio için bir eklentiden bahsetmeye karar verdim.

Uygulama geliştirirken özellikle de takım halinde çalışıyorsak Version Control (yada Source Control yada Revision Control) dediğimiz kaynak kodlarımızı bir havuzda (repository) toplayarak bunların yönetilmesini sağlayan bir sisteme mutlaka ihtiyaç duyarız. (Yönetmek: Senkronizayon, aynı dosya üzerinde birlikte çalışma ,değişiklikleri geriye alma vb.)

Bu iş için son zamanlarda popülerliği gitgide artan (Neredeyse CVS ‘i unutturacak bizlere) SVN (SubVersioN) sistemini kullanabilirsiniz.

Bundan bir kaç ay evvel Visual Source Safe ile ilgili ufak bir araştırma yaparken Visual Source Safe ‘in Eclipse ile birlikte de kullanılabileceğini görmüştüm. Malumunuz Visual Source Safe kurulumu yaptığınızda kendisini Visual Studio ‘ya entegre eder ve projelerinizi Source Safe içinde saklamanıza ve yönetmenize imkan tanır. İşte Visual Source Safe ‘i Eclipse ortamında da kullanabilmek için de VSS Plugin adlı open-source bir uygulama geliştirmişler. Hatta o zamanlar IDE ‘ye para vermeyip Source Control ‘e (VSS ‘ye) kim para verir diye düşünmüştüm. (Hala da düşünüyorum?)

Bu yazıya konu olan uygulama ise bir Eclipse eklentisi değil Visual Studio eklentisi. Bu eklenti sayesinde SVN ‘i .NET uygulamalarınızın kaynak kodlarını yönetmek için kullanabilirsiniz. Elbette bu uygulama da ücretli. (Ücretli bir ürüne ücretsiz bir eklenti yazıldığı nerede görülmüş :) ) Fakat lisans ücretleri gayet uygun. Elbetteki Visual Source Safe kadar kompleks ve gelişmiş bir ürün değil fakat Visual Studio ‘ya verdiğiniz linsans ücretinin üstüne bir de Visual Source Safe ücreti eklemek istemiyorsanız tercih edilebilir ve gayet de iyi iş görecektir.

Bu yazıyı yazmadan evvel sabah ufak ben de bir deneme yaptım. Eğer sizler de denemek isterseniz buradan 30 günlük deneme sürümünü indirebilirsiniz. Ayrıca buradaki adresten VisualSVN ‘e ait dokümantasyonu indirip anlatılanları adım adım uygulamak faydalı olacaktır. (24 sayfalık gayet güzel ve sıkmayan bir döküman hazırlamışlar.) Sizlere tavsiyem SVN ile çalışacaksanız Tortoise SVN ‘i indirip kurun. (Windows platformunda olduğunuzu varsayıyorum.) Bu sayede dosya sisteminiz üzerinde bu güzel shell eklentisi ile hızlıca işlemlerinizi yapabilirsiniz. Kurulumdan sonra boş bir dizin yaratın ve sağ tıklayarak Create Repository komutunu çalıştırın. Bir sonraki adımda VisaulSVN eklentisini de kurun ve Visaul Studio ‘ya eklenen VisualSVN menüsünden repository’e bağlanın (file:///D:/SVN şeklinde) Bundan sonra dökümandaki yönergeleri takip ederek VisualSVN ile kolaylıkla çalışabilirsiniz.

Eğer Microsoft ‘a elimizi verdik kolumuzu nasıl kurtarırız diye düşünüyorsanız bu gibi farklı uygulamalara şans tanımak ve  ihtiyaçlarınızı karşılıyorsa bu tarz ürünleri kullanmak maliyetlerinizi düşürecektir. Şimdilik benden bu kadar. Sağlıcakla kalın…

ECLIPSE İÇİN QUANTUM DB

Hangi Java mail grubuna yada forumuna bakarsanız bakın konu dönüp dolaşıp IDE (Integrated Development Environment) konusuna gelmiştir. Hatta bir kısım Javacı arkdaşlar bu tartışmalardan ve belirsizlikten bunalıp kendilerini .NET platformunun dolayısıyla Visual Studio ‘nun sıcak kollarına atmışlardır. Her ne kadar Visual Studio gibi kur ve kullan başka da birşey yapma tarzında yada daha modern bir ifadeyle ALL-IN-ONE bir IDE ‘ye sahip olmasak da Javacılar için de vazgeçilmez hatta yavaş yavaş standart haline gelmeye başlayan Eclipse var. (Bir kere ayarla her yerde kullan.)

Aslında bu tip bir ihtiyaç her uygulama geliştiricinin hayatında var. Yani uygulama geliştirirken herşeyin bir arada olması en azından basitçe işinizi görecek araçların tek bir yerde toplanması önemlidir.(Ciddi durumlarda Aqua Data Studio, Rapid SQL yada TOAD gibi araçlara ihtiyaç olabiliyor.) Bu nedenle Visual Studio ‘nun hakkının verilmesi gerektiğine inanıyorum.

Eclipse ‘e dönecek olursak default olarak gelen eklentilerle zaten Javacıların işini fazlasıyla görecektir ama ihtiyaçlar değiştikçe yeni eklentiler kurarak daha da zenginelştirmek gerekebilir. Bu noktada en büyük sıkıntı doğru eklentiyi seçme konusunda yaşanır. (Eclipse için yüzlerce plugin -eklenti- mevcut)

quantum2.jpg  Bitirme projem sırasında Visual Studio ‘da en sevdiğim ve sıklıkla kullandığım özelliklerden bir  tanesi de Server Explorer idi. Hatta eğer bağlantı kuracağınız sunucu yerelinizde değilse SQL  Server 2005 Management Studio ‘dan daha hızlı çalıştığını da söyleyebilirim. Bu güzel özelliği Eclipse ‘e de kazandırmak gerekli diye düşünürken karşıma Quantum DB eklentisi çıktı. JDBC tabanlı bu güzel plugin ile hem veritabanı sunucunuzda ne var ne yok visual bir şekilde görebilirsiniz hem de SQL sorgularınızı çalıştırabilirsiniz.

Quantum DB ‘yi Eclipse dahil etmek çok kolay ama burada karşınıza bir GEF (Graphical Editing Framework) plugin sorunu çıkabilir.Öncelikle Eclipse GEF ‘in doğru sürümünü eklemeli , ardından da Quantum DB kurulumuna geçmelisiniz. ( Note: Quantum needs the GEF plugin to work, so you have to install it before installing Quantum)

Eclipse ‘e plugin eklemek için ben genellikle web update ‘i tercih etmiyorum. Onun yerine plugini bilgisayarıma indirip Eclipse ‘e ekliyorum , bu sayede ileride farklı bir Eclipse ‘e de kurma şansım oluyor. (Plugin dosyalarını kopyalayıp yapıştırmak her zaman olumlu sonuçlar doğurmuyor o nedenle bu yöntem daha sağlıklı !)

Kullandığınız Eclipse sürümü için uygun GEF pluginini buradan indirebilirsin. İndirdiğiniz zip dosyasını uygun bir yere extract ettikten sonra Help -> Software Updates ->Find and Install yolunu takip edin. Search For New Futures To Install seçeneğini seçtikten sonra ilerleyin ve bir sonraki adımda New Local Site butonuna tıklayın. Açılan pencereden az önce plugini extract ettiğiniz dizini seçin ve tamam diyerek bir sonraki adıma geçin. Kullanıcı sözleşmesini de onayladıktan sonra kurulum tamamlanacaktır ve pluginin düzgün bir şekilde çalışabilmesi için Eclipse ‘i baştan başlatın.

GEF eklentisini kurduktan sonra buradan Quantum DB ‘yi indirin ve GEF ‘i kurarken izlediğiniz adımların aynısını tekrarlayın. Eğer herhangi bir hata almadıysanız Eclipse ‘i yeniden başlattıktan sonra eklentiniz kullanımıma hazır.

Window -> Open Perspective -> Other -> Qunatum DB yolunu izleyerek Quantum DB perspektifine geçebilirsiniz. Sonra da Window -> Show View yolu ile bu perspektif içerisinde görülmesini istediğiniz Quantum DB bileşenlerini seçebilirsiniz.

quan.jpg  Artık Quantum DB ‘nin görsel ayarları tamam. Tek yapmanız gereken Veritabanı          sunucunuzun çalışır halde olup olmadığını kontrol etmek ve Database Bookmarks alanına New Bookmark ile eklemek. Burada en önemli nokta uygun sürücüyü Quantum DB ‘ye göstermek. Açılan JDBC Driver penceresinden Add Driver ile veritabanı yönetim sisteminize ait sürücüyü eklemeniz gerekir. (İlgili sürücüleri kullandığınız DBMS ‘in üreticisine ait web sitesinden indirebilirsiniz.) Bir sonraki adımda da ilgili DBMS için gerekli bağlantı bilgilerini verip, bu bookmark ‘a bir ad vererek işleminizi tamamlayabilirsiniz. ( MySql için yandaki resimde örnek bir bağlantı gerçekleştirdim.)

Quantum DB ile ilgili başlangıçta sizlere lazım olacak bilgileri bu yazıda aktarmaya çalıştım. Bu güzel aracın diğer özelliklerini keşfetmek sizlere kalıyor. Fırsat buldukça farklı Eclipse pluginlerini inceleyip , deneyimlerimi sizlerle paylaşamaya çalışacağım. Şimdilik benden bu kadar . Sağlıcakla kalın…

İŞLEMİNİZ BAŞARIYLA TAMAMLANMIŞTIR ?

Bir uygulamadan duyacağınız en güzel cümledir “İşleminiz Başarıyla Tamamlanmıştır” cümlesi fakat bu güzel cümle bazen sizi çok kötü biçimde aldatıyor olabilir.Geçen hafta başıma bu tip bir olay geldi ve ben de sizlerle paylaşmak istedim.

Geliştirmekle sorumlu olduğum modülün düzgün bir şekilde çalışıp çalışmadığını anlamak için öncelikle farklı tablolardan bazı verileri alıp bir look-up table oluşturmam gerekiyordu. (Select sorgusundan istediğim kritelere uygun verileri çekip look-up tabloma ekleyecektim.) Bunun için de verileri alacağım tabloları uygun verilerle doldurmam gerekti. Ben de tablo doldurma işini SQL cümleleriyle değil de o tablolara kayıt ekleyen ekranları kullanarak yapmaya karar verdim. Hem böylelikle arkadaşlarımın yaptığı ekranları da test etmiş olacaktım. (Ayrıca tablolar arasında PK-FK ilişkisi olduğundan veritabanı bütünlüğünün bozulmaması için verileri bu şekilde girmek daha sağlıklı olacaktır diye düşündüm)

Öğle aramı bu iş için ayırıp 58 tane kayıt girdim. (Yani en azından ben öyle sanıyordum.) Sonra bir güzel ADS ‘yi (Aqua Data Studio) açıp master tabloya select count … diyerekten sorgumu yolladım ve gördüm ki ben 58 tane kayıt girmek için öğle aramı heba etmeme rağmen tabloda sadece 22 tane kayıt vardı. (Bir an yorgunluktan kaydet butonuna basmadığımdan bile şüphelendim) Sonra 10 tane daha kayıt girdim ve gördüm ki kayıt sayısı 27 olmuş. O zaman anladım ki bir yerlerde “insert” yerine “update” yapılıyordu. Olmayan bir kaydın neyini update ediyordu peki? Cevap basit kaydı aradığımız kriter yanlıştı ve ne ilginçtir ki tabloda o yanlış kritere uyan kayıtlar vardı.

Ufak bir debug operasyonundan sonra hatayı bulup düzelttik. (Tesadüfen bulduk ama olsun) Yine ne ilginçtir ki bu ekranın testi de yapılmıştı. Yani Test-Case ‘leri “genelde “Kullanıcı saçma sapan birşeyler yapınca ne olur” şeklinde olduğundan bu hata gözden kaçmıştı.

Sanırım bu yanılgıya çoğu uygulama geliştirici (ben de dahil olmak üzere) düşüyor. Yani yeterince Exception-handling yaptıysak ve kendimize de birazcık güveniyorsak “İşleminiz Başarıyla Tamamlanmıştır” mesajına hemen kanı veriyoruz. Bu yapımızdan ötürü de bu tip SİNSİ hatalar gözümüzden kaçıveriyor.

Okuldaki projeler sırasında da bu tip hatalar başıma geldiğinden veritabanına kayıt atarken mutlaka attığım kayıtları kontrol ederim. Hem ekran ile veritabanındaki tablolar arasındaki boyut kısıtlamalarının uyumunu kontrol etmek hem de beklediğim kayıtların gerçekten BAŞARIYLA kaydedildiğini görmek için. Aksi halde uygulamayı geliştirdiğiniz sırada yapmış oladuğunuz mantık hatalarını kolay kolay görmeniz mümkün olmuyor. Hem bu tip hatalarda bir hata mesajı yada anormallik olmadığından Production ortamında da o modülü kullanan son kullanıcının bir şikayeti olmuyor. (Taaki bir gün kaydettiği verileri görmesi gerekinceye kadar)

Öğle arama mal olan bu olaydan en azından testler sırasında daha dikkatli olunması gerektiğini öğrenmiş oldum. (Normal şartlarda testlerin , görevi yazılım test etmek olan kişilerce yapılması gerekir??) Geliştirdiğiniz uygulamaları test ederken “Umarım bir hata mesajı almam da bir an evvel yemeğe giderim” mantığından uzak durmanızı tavsiye ediyorum aksi halde ilerliyen zamanlarda uzun süre aç kalabilirsiniz. Şimdilik benden bu kadar. Sağlıcakla kalın…