Re: [Linux-programlama] Yapisal Programlama / Nesne Temelli Programlama

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Bora Güngören (bora@boragungoren.com)
Date: Tue 24 May 2005 - 13:22:02 EEST


Merhaba,

Nesne Tabanl? Programlama'n?n gereklilig(ini "anlamak" için baz?
deneyimleri yas,amak gerekiyor.

(i) "Büyük" bir uygulama yazmak. Bunu ekip halinde yazmak. Mesela 8-10
kis,inin 1-2 y?l kod yazacag(? bir s,eyin içinde bulunmak.
Gereksinimlerin sürekli deg(is,tig(i bir ortamda bu ölçekte bir
uygulaman?n düzgün biçimde ve hatas?z biçimde teslim edilmesi için
yap?sal programalaman?n sundug(u bir yöntembilim yok.

Yap?sal programlama "dondurulan" bir gereksinim belgesinin var oldug(unu
düs,ünür. Ancak böyle bir s,ey yoktur. Nesne tabanl? programlama ise
üzerine kuruldug(u "soyutlama" kavram? sayesinde varl?g(?n? zaten kabul
ettig(i "deg(is,en gereksinimler" için "esnek" yap?lar kurmaya olanak
sag(lar.

(ii) Eski, hatta bas,kas?n?n yazd?g(?, bir uygulamaya "bak?m" yapmak.
Kimin, nerede, ne amaçla, neyi, nas?l ve ne zaman yapt?g(?n? k?sa sürede
tespit edip, gerekli görülen deg(is,iklikleri yapabilmek için
uygulaman?n yap?s?n?n çok iyi kurgulanmas? gerekir. Nesne tabanl?
programlama bu konuda son derece güçlü araçlar sunar. Elbette yaz?l?m
bak?m? sadece deg(is,iklik gereken yeri tespit etmekle bitmez. Bir de
bu deg(is,iklig(in, yaz?l?m?n geri kalan k?s?mlar?nda ek bir
deg(is,iklik gerekmeden (yada az?c?k gerektirerek) yap?labilmesi
gerekir. Nesne Tabanl? Programlama burada da avantajl?.
(iii) Önceden yaz?lan uygulamalardaki kodlar? kullanarak, ayn? türden
olmasa da, yeni bir uygulamay? daha h?zl? biçimde gelis,tirmek. Yani
yeniden kullan?m (re-use) sag(lamak. Bu konu çok tart?s,?lmakta olan bir
konu. Nesne tabanl? proramlama "biles,en" haz?rlamak ve kullanmak için
çok önemli baz? alt yap?lar getirerek bu amaca ulas,mak için
kulland?g(?m?z temelleri atm?s,t?r.

Uygulama çat?s? olarak adland?rd?g(?m?z s,eyler de buradan ç?km?s,t?r.
PHP ile benzeterek bir örnek vermeye çal?s,ay?m. Nuke kodlar? ile
oynayarak bir portal? k?sa sürede ç?kartmak çok yap?lan bir s,ey. Ama
sonuçta Nuke'de olmayan bir özellik, davran?s, ve hatta d?s, görünüs,te
ciddi bir deg(is,iklik istendig(i zaman t?kanmak olas?. Ancak nesne
tabanl? bir portal uygulama çat?s? ile çal?s,?nca, ne
gelis,tirdig(imizden bag(?ms?z biçimde kazan?mlar?m?z oluyor. Bu nedenle
bak?nca "Nuke" demek olas?l?g(? kalm?yor. Neyin çal?s,t?g(?n?
anlayam?yorsunuz. Çünkü asl?nda çok da önemi yok. Birisini söker ötekini
takars?n?z. (Madde ii)

K?saca özetlersek "nesne tabanl? düs,ünce" bambas,ka bir düs,üncedir.
Yap?sal düs,üncenin çözemedig(i problemleri çözmek için yap?sal
düs,üncenin d?s,?na ç?kar. Kavramlar?n?n baz?lar?n?n yap?sal düs,üncede
dengi yoktur.

I.yi çal?s,malar.

Bora.
Not: Haziran bas,?nda raflarda olacak olan UML ile Nesne Tabanl?
Çözümleme ve Tasar?m kitab?mda, UML ile ilintilendirerek de olsa, bu
tür s,eylerden bahsediyorum. Bir ara bir kitapç?da kar?s,t?r?n; sizin
akl?n?zdaki sorulara yan?tlar içeriyor gibiyse al?n. Arada UML de
ög(renirsiniz. :-)

Armag Eddon wrote:

>Merhabalar;
>
>Sormak istedigim, yapisal programlama ve Nesne Temelli Programlama
>arasindaki yaklasim farkidir. Yani, bunlari birbirinden ayiran temel
>ve genis farklar, benzerlikler, artilar ve eksiler uzerine. Daha once
>Pascal / C / PHP kullanmis biri olarak, yapisal programlama
>cercevesinden ayrilmadigim asikar. Simdi ise, baslangic seviyesinde
>python ile ugrasiyorum, ve gec olmadan, hatta uygulamadan once bu
>yaklasimi teorik olarak kavramak istiyorum. Cogu yerde bunun icin
>sorular soruluyor farkindayim, ancak acikcasi tatmin olmus degilim, en
>azindan bu yaklasimin gerekliligini kavrayabilmis degilim. Birkac
>farkli yerde bunun uzerine dokumanlar da okudum, lakin yabanci dilim
>yetersiz oldugu icin, ve konu tamamen teorik / birebir sohbet tadini
>icerdigi icin cok verimli olmadi benim icin. Sizden ricam, vaktinizin
>elverdigi olcude bu konuda dusuncelerinizi, size gorelerinizi
>paylasmaniz.
>
>Tesekkurler...
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Linux-programlama mailing list
>Linux-programlama@liste.linux.org.tr
>http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.