Programlamaya Bütünsel Bakış

Program geliştirmenin temel öğeleri nelerdir sizce?
4 Haziran 2008
Önceki girdilerde yazılımın tüm süreçlerine genel bir bakış edindik. Bu girdide ise yazılım sürecinin bir bölümü olan programlamaya genel bir bakış edineceksiniz. Programlama dediğimiz yazılım geliştirme aşaması ilk başlarda sadece kodlamadan ibaretti. Ancak daha sonra bilgisayar dünyasındaki hızlı yükselişle birlikte yazılımdan beklenenler arttı ve grafik ekranlı işletim sistemleriyle birlikte yazılımlardan daha kullanıcı dostu arabirimler ve gelişmiş raporlar beklenir oldu. Bu noktadan itibaren programlama kodlamanın ötesinde arayüz ve rapor gibi kullanıcı etkileşimli arabirimler tasarlamayı da içine alır oldu.

Bu kapsam genişlemesi aynı zamanda yazılım geliştirme araçlarının ve programlama dillerinin kapsamını da genişletti. Günümüzde çok gelişmiş yazılım geliştirme ortamları sayesinde hem kodlama hem de kullanıcı arabirimi tasarımını çok kolay bir şekilde geliştirebiliyoruz. Ama nedir bu yazılım geliştirme arabirimi, programlama dili, kodlama, teknoloji, programlama? Nedir bunlar ve birbirleriyle ilişkileri nedir?

Önceki girdilerdeki diyetisyen için randevu yazılımını ele alalım. Uygulamayı hangi platform için geliştirecektik: Web. Demek ki olayın bir platform boyutu var. Yani uygulama neyin üzerinde çalışacak. Internet dünyasının ortaya çıktığı günlere kadar yazılımlar sadece işletim sistemleri için geliştirildi. Burada platform dediğimiz şey işletim sistemleri ve işletim sistemlerinin üzerlerinde çalıştıkları bilgisayar sistemleriydi. Bir kişisel bilgisayar için yazılım geliştirecekseniz sizin için önemli olan bu kişisel bilgisayarın işlemcisinin türünün ne olduğu ve üzerinde çalışan işletim sistemiydi; yani bir x86 ve Windows ya da bir Apple ve MacOS gibi… Platformda esas olan yazdığınız programda hangi programlama dilini kullandığınızdan bağımsız olarak, platforma özel durumları biliyor olmanız gerekliliğidir. Bu durumda siz eğer Windows programlıyorsanız farenin tıklama olayının nasıl ele alındığını bilmek önemli olur. Bunu C# ya da Visual Basic ile programlıyor oluşunuz bir şeyi değiştirmez. Yine benzer bir biçimde “Form” nesnesi ve üzerindeki buton, metin kutusu, açılır liste gibi kutuların nasıl çalıştığını ve birbirleriyle ilişkisini bilmek demek, platformu bilmek demektir ve programlama dilleriyle direkt olarak ilişkili değildir. Öreğin Visual Basic ile Windows programlama konusunda uzmanlaşmış bir kişi, Web Uygulamalarındaki “session” mantığını bu platforma bilgi ve deneyimi olmadığı için bilmiyor olabilir. Bu, bu kişinin Visual Basic bilmediği anlamına gelmez. Günümüzde işletim sistemleri haricinde bazı başka platformlar da bulunmaktadır. Bunlar avuç içi bilgisayarlar, cep telefonları, gömülü sistemler, internet, ofis sistemleri, veritabanları olarak sıralanabilir. Bazen de bunların birleşiminden oluşabilir. Örneğin bir ucunda ATM, bir ucunda internet şubesi, bir ucunda Windows üzerinde çalışan şube uygulamaları ve arka uçta çalışan servisler ve veritabanlarıyla birlikte bir bankacılık uygulaması komple bir platformlar birleşimi platformudur.

Platform üzerinde uygulama geliştireceğimiz bir alan ama olayın bir de “uygulama türü” boyutu vardır. Yani Windows için uygulama geliştireceksiniz ama bu bir konsol uygulaması mı olacak, form uygulaması mı yoksa Windows servisi mi? Ya da Web platformu için bir uygulama geliştireceksiniz. Bu bir Web uygulaması mı olacak yoksa Web servisi mi?

Uygulamanızı geliştirmek için bir platform seçtikten sonra sıra bu platform için programlama yapacağınız programlama dili seçimine gelir. İşte bu noktada bazen seçtiğimiz platforma özel dilleri tercih etmemiz gerekirken, bazen birçok platforma destek veren programlama dillerini seçme şansımız da olabilir. Örneğin ASP uygulamaları geliştirirken ilk zamanlarda zorunlu olarak “VBScript” kullanmamız gerekiyordu. Ancak şimdi Asp.Net uygulamaları geliştirmek için isterseniz Visual Basic, isterseniz C# kullanabilirsiniz. Bu dilleri aynı zamanda Windows ya da mobil cihazları programlamada da kullanabilirsiniz. Bir programlama dilinin diğerinden farkı genel olarak söz dizimi, değişkenler, nesnelerle çalışma, fonksiyonlar, kod akışlarının yönetimi, hata işlemeye yaklaşımı başlıklarında belirlenebilir. Farklı üreticiler, farklı ya da benzeri platformları destekleyen programlama dilleri geliştirmişlerdir ve geliştirmeye devam etmektedirler. Hangi programlama dilini tercih edeceğinizi bu konudaki daha önceki birikiminiz, müşteri talebi ve piyasadaki eğilimler belirlemektedir.
Günümüzde programlama dilleri sadece temel programlama yapısıyla gelmiyorlar. Artık beraberlerinde çok güçlü birer altyapıyla birlikte geliyorlar. Yüzlerce ya da binlerce hazır nesne ve fonksiyon kitaplığından oluşan bu altyapılar, kullandığınız dilde platform üzerinde yapılması gereken işlemleri çok daha kolay bir biçimde yapmanızı sağlar. .Net Framework bu anlamda Microsoft programlama dilleri için geliştirilmiş bir altyapıdır.

Platformu belirleyip programlama dilini tercih ettikten sonra sıra programlama ortamını seçmeye gelir. Programlama ortamı, (IDE: Integrated Development Environment) basit bir not defteri uygulaması bile olabilir. Ancak kullanıcı arayüzlerini tasarlayacak form tasarımcıları, kod yazarken işinizi kolaylaştıracak otomatik tamamlayıcılar ve akıllı yardımlarla çalışmak çok daha verimli programlama yapmanızı sağlayacaktır. Eğer programlama dili olarak Visual Basic seçtiyseniz dilerseniz Visual Basic 2008 Express Edition ya da Visual Studio 2008’in standart, profesyonel ya da takım sürümlerini kullanabilirsiniz. Ortamı belirlemenizde bütçe ve müşteri/proje talepleri önem kazanır. Eğer proje gereği bir Windows Servisi yazmanız gerekiyorsa bunu Visual Basic 2008 Express Edition ile yapamazsınız. Bunu için daha yüksek bir Visual Studio sürümüne ihtiyacınız olacaktır.

Tüm bunların dışında uygulama geliştirirken kullanmanız gerekecek “teknoloji”ler vardır. Örneğin platformdan ve programlama dilinden bağımsız olarak kullanabileceğiniz XML bir teknolojidir. Eğer müşteri için bir toplu mail bülteni uygulaması geliştiriyorsanız SMTP protokolünün nasıl çalıştığını bilmeniz ve SMTP sunucularını tanımanız gerekir.

Ve son olarak da “Know How” ya da alan bilgisi diyebileceğimiz bir boyutu vardır programlamanın. Eğer bir bankacılık uygulaması geliştirecekseniz, bankacılık işlemlerini ve kurallarını bilmeniz gerekir. Bilmiyorsanız da ya ekibe bilen birini alırsınız ya da öğrenirsiniz…

Kadir Çamoğlu
kadircam@hotmail.com

Toplam 11271 kez okundu.
Oyla:
En Düşük
Oy ver: 1Oy ver: 2Oy ver: 3Oy ver: 4Oy ver: 5
En Yüksek
YORUMLAR
Toplam 11 yorum
123Sonraki
Ziyaretçi yazmış:
Çok güzel bir yazı olmuş teşekkürler.
29 Ağu 2010  05:33Bu yorumu beğendimBu Yorumu Beğenmedim
Ziyaretçi yazmış:
güzel anlatım teşekkürler
13 Ağu 2010  19:02Bu yorumu beğendimBu Yorumu Beğenmedim
Ziyaretçi yazmış:
yazılımın yol haritasını tasvir eden güzel bir yazı olmuş, devamını bekler, başarılıar dilerim
06 Ağu 2009  09:26%0Bu yorumu beğendimBu Yorumu Beğenmedim%100
Ziyaretçi yazmış:
güzel özetlemişsiniz teşekkürler. yazılarınızı takip edicem.

scraby
19 Eyl 2008  01:33Bu yorumu beğendimBu Yorumu Beğenmedim
kcamoglu yazmış:
Bu güzel yorumlar için herkese ayrı ayrı teşekkür ediyorum.
Bu girdi, bu anlamda bir başlangıç oldu. Bu cesaretlendirici yorumlardan sonra bu girdiyi daha da geliştirerek zenginleştirmeyi planlıyorum.
Bloga ve girdilere yorumlarınızla yön verdiğimi unutmayın ve beni yorumlardan mahrum bırakmayın.
09 Haz 2008  13:15Bu yorumu beğendimBu Yorumu Beğenmedim
123Sonraki


Bu sayfalarda yer alan okur yorumları kişilerin kendi görüşleridir. Yazılanlardan CHIP Online sorumlu değildir.
Siz de yorumunuzu yazın
CHIP Online Ziyaretçisi
Yorumunu Gönder
Lütfen bu bölüme sadece yorumlarınızı yazın. Teknik yardıma ihtiyaç duyduğunuz konuları lütfen forumda ilgili bölüme veya Uzmanına Sorun bölümümüze yazın, yanıtınızı çok daha sağlıklı ve hızlı olarak alabilirsiniz
Siz de kendi teknoloji blogunuzu ücretsiz oluşturun!

Tek Kişilik Yazılımevi-Kategoriler

 


Haziran 2008
PtsSalÇarPerCumCtsPzr
      1
2345678
9101112131415
16171819202122
23242526272829
30      

CHIP Online Yazar Blogları

Yazarlarımızdan, editörlerimizden sizlere...

Cem SinanoğluCem Sinanoğlu
Türk Telekom ve Sabit Ücret...
Rik FergusonRik Ferguson
Yılbaşı alışverişinde yalancı fırsatlara kanmayın!
Selim ÖztürkSelim Öztürk
Steve Jobs’ı böyle bilmezdik!
Kadir ÇamoğluTek Kişilik Yazılımevi
Yazılım Test Uzmanlığı Kariyeri
Zeynel ÖztürkZeynel Öztürk
Google+ sizi yayınlamasın!
 

CHIP Dergisi: Şubat 2012


İşbirliği ortaklarımız

  • Hepsiburada.com
  • Level
  • Turhost
  • CHIP Download
  • yenibiris.com
  • CHIP Download
 
 
Cep telefonları | Ekran kartları | Masaüstü | Notebook | Ses kartları | Webcam | Klavye & Fare | Yazıcılar | Tablet Ev Sineması
Mp3 Player | Usb Bellekler | Video kameralar | Fotoğraf Makinesi | Taşınabilir diskler | LED & LCD Tv | Monitörler | OEM | PDA
Navigasyon | Oyun Konsolu