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 8199 kez okundu.
Oyla:
En Düşük
Oy ver: 1Oy ver: 2Oy ver: 3Oy ver: 4Oy ver: 5
En Yüksek
YORUMLAR
Toplam 9 yorum
12Sonraki
CHIP Online Ziyaretçisi 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:26Bu yorumu beğendimBu Yorumu Beğenmedim
CHIP Online Ziyaretçisi 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
durulalin yazmış:
Öncelikle şunu belirtmeliyim ki her konuda yaşanan kavram karmaşası içinde, programlama ve yazılım geliştirme sürecine dahil bu makalenin bu sorunu çok iyi aydınlattığına inanıyorum...Her zaman için matematiksel düşüncenin,güçlü mantıksal yaklaşımın,sağlam algoritma kurmanın temellerinin platformu, terimleri öncelikle çok iyi kavramaktan, analiz etmekten geçtiğine inanırım.Bu açıdan çok besleyici ve beklentileri karşılayan bir makale olmuş...
Çok teşekkürler
08 Haz 2008  22:54Bu yorumu beğendimBu Yorumu Beğenmedim
CHIP Online Ziyaretçisi yazmış:
alınt:"Hangi programlama dilini tercih edeceğinizi bu konudaki daha önceki birikiminiz, müşteri talebi ve piyasadaki eğilimler belirlemektedir."

bu konuda cok arastırmcı olmak lazım yanı sızın yazılarınızı okumaya devam hocam:)
07 Haz 2008  00:55Bu yorumu beğendimBu Yorumu Beğenmedim
12Sonraki


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...

Berker Güngör - 1984
Atom'un Düşmanları
Mustafa AcungilGelecek Postası
Doğrudan Demokrasi
Kadir ÇamoğluTek Kişilik Yazılımevi
Nesneye Yönelik Programlama
Recep BaltaşRecep Baltaş
Dizüstü bilgisayarlarda yerli malı işkencesi
Cem ŞancıCem Şancı
iPad ile hayatımız yine değişecekmiş
 

CHIP Dergisi: Şubat 2010


İşbirliği ortaklarımız

  • Hepsiburada.com
  • Level
  • Doğan Telekom
  • Turhost
  • CHIP Download
  • yenibiris.com
  • CHIP Download
 
 
Cep telefonları | Ekran kartları | Desktop | Notebook | Ses kartları | Webcam | Klavye & Fare | Yazıcılar
Mp3 Player | Usb Bellekler | Video kameralar | Dijital Kameralar | Taşınabilir diskler | LCD & Plazma | Monitörler