Başlangıç > MESLEKTEN, NEDEN?, NEDİR? > KOD ÜRETMEK ve KOD ÜRETİCİ NEDİR ?

KOD ÜRETMEK ve KOD ÜRETİCİ NEDİR ?

codegen.jpgBu yazıda sizlere KOD ÜRETİCİLER hakkında bilgiler vermeye çalışacağım. Öncelikle kod üretici nedir, neye yarar,nerelerde kullanılır gibi soruların cevabını verip, ardından da piyasa kullanılan bazı kod üreticilerden behsetmeyi düşünüyorum. Aslında bu yazım CETURK’ te buradaki adreste yayınlandı. Fakat haberi olmayanlar için blogumda da yer almasının iyi olacağını düşündüm.

Aslında pek çoğumuz farkında olmadan kod üreticileri uygulama geliştirme sırasında kullanıyoruz. En basit haliyle, uygulamanız için bir arayüz tasarlıyorsanız arka planda buna ait kodların kullandığınız araç tarafından otomatik olarak oluşturulduğunu görürsünüz. Zaten kod üretmek; bir uygulamayı oluşturan parçaların otomatik olarak gene bir başka uygulama tarafından oluşturulmasıdır.

Kod üretmenin tanımını yaptıktan sonra şimdi de neden kod üretiriz sorusunu cevaplayalım. Bunun için şu nedenleri sıralayabiliriz:

1-Üretkenliği artırmak (Productivity) : Kod üreticiler sayesinde saatlerce sürecek işlemleri hızlıca halledebilmek mümkündür. Belki bir uygulama geliştiricinin günlerini alacak bir işlem kod üreticiler sayesinde hızlıca halledilebilir. Özellikle aynı kalıpta ve sıkça tekrar eden kod bloklarını kopyala yapıştır yerine bir kod üreticiye ürettirmek üretkenliği artıracaktır.

2-Kod Kalitesini artırmak (Quality) : Üzerinde çalıştığımız konuda uzmanlaşmış kişilerin hazırladığı kod üreticileri kullanarak daha kaliteli kod üretebiliriz. Böylece bizlerden kaynaklanacak olan hata riskini de minimuma indirgemiş oluruz. Özellikle bir konuda yeterli deneyime sahip değilsek bu noktada bir kod üreticiden yardım almak ulama kalitesi açısından faydalı olacaktır.

3-Kodun tutarlılığını artırmak(Consistency) : Bence kod üreticilerin en çok gerektiği nokta burası. Çünkü bir projede görevler farklı kişiler arasında paylaştırıldığında, yazılan kodlar arasında en basitinden bir üslup farklı olacaktır. Hele bir de proje sırasında isimlendirme vb. spesifikasyonları hazırlanmamışsa, kodları birleştirmek sorunlu olabilir. Fakat bir araç tarafından üretilen kodlarda ise tutarlılık % 100 olacaktır. Çünkü siz bu aracı nekadar çalıştırırsanız çalıştırın her defasında aynı tipte kod üretir ve bu da kod tutarlılığını artırır.

4-Dizaynı uygulamadan ayırmayı sağlamak ( Abstraction) : Son olarak da dizaynı uygulamadan ayırma aşamasında kod üreticilerden faydalanabiliriz. Zaten kod üreticiler girdi olarak tasarım ve şablonları alıp çıkışta bize hazır kod verirler. Bu şekilde hazır kodları doğrudan uygulamamıza dahil edebiliriz.

Bu gibi faydalarına rağmen eminim bir kısmınız hala kod üretici uygulamalarla tanışmamışınızdır. Buradaki bence en önemli etken bir projede kod üretici kullanma kararının önemli bir adım olmasıdır. Çünkü bazı kod üreticilerin kendine has bir dili mevcuttur. Giriş bilgisi olarak bu dilleri kullanarak bazı şeyleri tanımlamanız gerekebilmektedir. Örnek olarak Velocity uygulamasını inceleyebilirsiniz. Bu tip bir kod üreticiden belki milyonlarca satır kodu otomatik olarak alabilirsiniz fakat öncelikle ona bir dille giriş bilgilerini vermeniz gerekmektedir. Bu nedenle bazı kişiler kod üretici kullanmaya sıcak bakmazlar.

Kod üreticiler genelde büyük projelerde kullanılırlar. Çünkü bu tip bir uygulamaya bir kez alıştınız mı size çok büyük bir verimlilik getirirler. Ayrıca kod üretici uygulamanıza vereceğiniz giriş bilgilerini ortak bir havuza koyarsanız bunun üzerinde yapacağınız değişiklikleri kolaylıkla tüm projenize aktarabilirsiniz. Sizin için bir tür ayar dosyası görevi görecektir. Zaten günümüzde konfigürasyon yönetimi çok fazla önem kazanmış ve bunun için pek çok araç geliştirilmiştir. Kod üreticiler konfigürasyon yönetim işlerinizi de kolaylaştıracaklardır.

Kod üreticiler bu işlemleri farklı yaklaşımlarla gerçekleştirebilirler. Bazıları KOD-MERKEZLİ YAKLAŞIM (CODE-DRIVEN APPROACH) ile çalışır. Yani kaynak kodlarımızın arasında kod üreticimizin anlayacağı etiketler yer alır ve o etiketleri işleyerek size kod üretirler. Hepinizin bildiği JAVADOC uygulaması bu şekilde çalışır. Yazdığınız JAVA kodları arasındaki açıklama satırlarını işleyerek size HTML formatında bir belge üretir.

Bir diğer yaklaşım ise MODEL-MERKEZLİ YAKLAŞIMDIR (MODEL-DRIVEN APPROACH). Burada ise şablonlar ve UML tabanlı modellerden faydalanılır. Kod üretimi açısından daha esneklerdir. Fakat geliştirilme süreçleri daha uzundur. Tasarımdan koda geçişte büyük kolaylık sağlarlar.

Kod üreticilerle ilgili olarak acaba neyin kodunu üretebiliriz gibi bir soru aklınıza gelebilir. Mesela bir veritabanı uygulaması için Veritabanı şeması , stored-procedure, trigger üreten bir kod üretici hazırlanabilir. Özellikle de trigger ve fonksiyonların elle yazılması gerçekten zordur. Bunu otomatik olarak her sorgu tipi için gerçekleyecek bir kod üreticiye ihtiyaç duyulabilir. Yine aynı şekilde HTML, ASP, JSP gibi web dillerine ait kod üreticiler de tasarlanabilir. Çünkü çoğu web uygulaması standart bileşenlere ihtiyaç duyar. Bu gibi durumlarda uygulamanıza ait özellikleri kod üreticiye girip, ihtiyacınız olan kodu ürettirebilirsiniz. Piyasada bu alandaki çalışmalar daha çok tasarıma yöneliktir. Yani tasarım sırasında sizin için kod üreten ve sürekle bırak ile çalışabilmenizi sağlayan pek çok uygulama mevcuttur.

Kod üreticiler hakkında söyleyebileceklerim bu kadar. Umuyorum ki kod üreticiler hakkında bir fikir sahibi olmanızı sağlayan faydalı bir yazı olmuştur. Bu yazıyı hazırlamamda ve kod üreticilerle tanışmamda çok büyük katkısı olan Serkan DEMİR’e de teşekkürlerimi iletiyorum.

KAYNAKLAR:

Serkan DEMİR-KOD ÜRETME TEKNİKLERİ & VELOCITY

BAĞLATILAR:

XDOCLET http://xdoclet.sourceforge.net/xdoclet/index.html
VELOCITY http://velocity.apache.org/
SQL2JAVA http://sql2java.sourceforge.net/
MIDDLEGEN http://boss.bekk.no/boss/middlegen/
CODE GENERATION NETWORK http://www.codegeneration.net/
FREEMARKER http://freemarker.sourceforge.net/
XML2JAVA http://www.jnerd.de/xml2java.html
AUTOGEN http://www.gnu.org/software/autogen/
IRON SPEED http://www.ironspeed.com/
CODESMITH http://www.codesmithtools.com/
MYGENERATION http://www.mygenerationsoftware.com/portal/default.aspx
DeKlarit http://www.deklarit.com/portal/hgxpp001.aspx?12

 

 

Reklamlar
Kategoriler:MESLEKTEN, NEDEN?, NEDİR?
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: