Bilgi İşlem Tasarım Kalıpları

0
anonim
Tasarım Kalıpları (Design Patterns) adı verilen akım, özellikle bilgi işlem yazılımcıları tarafından son yıllarda çok ilgi görmüştür. Bir tasarım kalıbı basit bir açıklama ile bir nevi reçetedir. Bu reçete, sürekli karşımıza çıkan bir sorun tipine karşı bulunmuş, gene sürekli verilmiş olan ve işe yarar bulunmuş bir çözümdür.

Yazının devamı için buraya tıklayın.

Görüşler

0
FZ
Konu ile ilgilenenlere birkaç güncel makale-tartışma adresi:

Design Patterns Still Aren't: A Pattern of Misunderstanding: Fetishizing the Gang of Four

http://perlmonks.org/index.pl?node_id=285065



Software Design Resources

http://perlmonks.org/index.pl?node_id=285637

0
mentat
hmm, cehaletimi bagislayin oncelikle, java'ci degilim.. ancak o yazida ben hic pattern goremedim. bazi isleri yapmak icin kullanilabilecek yontemler anlatilmis ama bunlar java dili ile ilgili degil, java kutuphanelerinden hangileriyle en dogru cozume ulasilabilecegi ile ilgili sanki. bir gariplik var sanki.

benim pattern'dan anladigim sey, dilin klasik deyimleri ile (nesne, inheritance, vs) cozumlenemeyecek islerin yine dilin kaliplari kullanilarak cozulmesi.

mesela singleton en basitinden. global member variable'dir kendisi ama biraz daha guvenli ve temiz bir kullanim getirir (duruma gore). ama dil disindan baska hicbir kutuphane vs kullanmazsiniz.

class SingletonFoo{
static SingletonFoo* m_pThis;
SingletonFoo();
~SingletonFoo();
public:
static const SingletonFoo* getInstance() {
if (!m_pThis) // bunu cpp'de 0'a esitledik
m_pThis = new SingletonFoo;
return m_pThis;
}
// buraya da non-static member funclar vs..
};

budur, mesela singleton..

neysem, benden onceki mesaji atan arkadasin da belirttigi gibi, pattern'lar konusunda bitmeyen bir tartisma da var. iyi mi kotu mu seklinde. ozellikle de GoF'un patternlarina karsi ciddi elestiriler mevcut. (adini hic bir zaman tam dogru yazamayacagim) Alexandriescu'nun da Modern C++ Design'di galiba kitabi ise ciddi saygi duyulasi bir baska kitap..

pattern nedir konusna donersek de, bazilarina gore veri yapilari bile bir pattern'dir (bence abarti biraz), kriter, dilin kendisi icinde olmamasi. (orn, yigit, kutuk, vs)

bir baska ilginc nokta da, gucunden pek suphe edilmeyen c/c++ pattern'lara muhtac iken, genelde parantez sayisiyla alay konusu olan Lisp'in pattern'lara ihtiyac duymayan, en ilerlemeye ve gelistirmeye acik dil oldugu gorusu..

neyse, sabah sabah daha fazla uzatmayayim..

bir de bir rica, patternlarin bence de en onemli islevi, yazilimcilar arasinda dil ve iletisim birligini saglamasi. o nedenle, siz de yazidaki pattern'larin turkce'lerinin yanina da en azindan ingilizcelerini ekleyebilirseniz parantez icinde, biz de daha iyi ogrenmis ve standart pattern'larin (inatla kalip demiyorum, dogru turkcesi oldugundan supheliyim) turkce isimlendirilmesini de saglamis olursunuz.
0
malkocoglu
Kaliplari, dil haricindeki alanlar icin de kullanabilirsiniz. Son zamanlarda revacta olan kalip kitaplari, teknoloji secimi, yazilim gereksinimleri analizi (requirement analysis) gibi konulara bile uygulanmaya basladi.

LISP hakkindaki yorumunuz ilginc.. Hakli olabilirsiniz. :)

Bilgi islem dunyasi bir bilim alani hala degil; Mesela karsilastiracak olsak, iliskisel veri tabanlarinin altinda kapi gibi matematiksel teori vardir, bir XYZ iliskilsel modelin 'dogrulugu' ispat edilebiliyor. Yazilim muhendisliginde bir nesnesel modelin dogrulugunu ispat edebiliyor muyuz? Bu soruya hala cevap hala hayir. Boyle gri bir alanda o yuzden zevkle ve renkler konusuyor, ya da tecrubeye dayali 'receteler'.

Kaliplari, bir onceki yazarin soyledigi gibi, cok buyutmemek lazim; Bizim takip ettigimiz kaliplarin 'formatidir'. Sunum tarzi olarak bilgi islem cozumleri icin kaliplarin uygun oldugunu dusunuyorum. Ayrica, baskalarinin kullandigi receteleri takip amaci ile de iyi olabiliyor. Template Method, Singleton, Observer kullanmasak bile, fikir olarak yararlandigimiz gorus acilari.

Iyi calismalar,



Görüş belirtmek için giriş yapın...

İlgili Yazılar

Linux Açılış Disketi NASIL

yalcink01

Hep hayalini kurduğum şey, kendi başıma imal ettiğim bir işletim sistemi idi. Baktım ki bu iş oldukça uzun bir zamana mal olacak, ben de hayalimi güncelledim ve kendi birleştirdiğim bir işletim sistemi yapmaya karar verdim. Hani legolar var ya onun gibi bir şey işte. Eh, Linux çekirdeği artı GNU araçları ve bilumum özgür yazılım etrafta cirit atıyor:) Al parçaları birleştirmeye başla dedim ama işte orada tıkandım kaldım. Parçaları bulmak kolay ama bir GNU/Linux İşletim Sistemi nasıl çalışır, temel parçalar nelerdir, kim kimi tetikliyor, kimin eli kimin cebinde konuları biraz karışık. Demokraside çare tükenmez deyip kendi yol planımı yaptım ve işe başladım: Öncelikle "bu sistem nasıl açılır, temel parçalar ve ana hatlar nelerdir?" sorununun yanıtını bulabilmek amacı ile The Linux Bootdisk HOWTO kılavuzunu hatim eyledik. Sırada Çekirdek Çitleme Kılavuzu (tldp tarafından şu an güncelleniyor) ve The Pocket Linux kılavuzu var.

Linux Açılış Disketi NASIL kılavuzu; bir açılış disketi yapımını anlatmakla birlikte -ki bu işin çok daha kolay bir yöntemi de mevcuttur:mkbootdisk- sistemin ilk ateşlemesini ve bu sistemin çalışması için gereken temel araçları açıklaması yönünden bence oldukça önemli bir başlangıç noktasını oluşturmakta. İyi bir başlangıç olmakla birlikte, sistem temellerini anlayabilmek için tek başına yeterli olmasını beklemeyin. Zaten kılavuzun ana hedefi de bu değil. Adı üstünde: açılış disketi nasıl yapılır, onu anlatıyor :)

Her halükarda okunması gereken ve Linux öğrenmeye çalışan benim gibiler için, uygulanması gereken bir kılavuz. Init'in ne olduğunu anlamadan önce, init'in herşeyin atası olduğunu anlamak gerekir, öyle değil mi?

http://www.geocities.com/yalcink01/bootdisk-howto/index.html adresinden belgeye ulaşabilirsiniz. Her zaman olduğu gibi: her türlü geribeslemeye kapımız açıktır

Versiyon Yönetim Sistemi Olarak SVN Kurulum ve Kullanımı

anonim

Açık kod camiasında en çok tercih edilen versiyon yönetim sistemleri (VYS) Concurrent Versions System(CVS) ve Subversion(SVN)'dir. VYS'leri sadece programların kaynak kodlarını yönetmek için değil ihtiyaçlarımıza ve hayal gücümüze bağlı olarak farklı birçok yerde kullanabiliriz. Mesela geçen günlerde okuduğum makalede bir GNU/Linux sistemde home dizininin nasıl başarıyla yıllardır CVS/SVN'de tutulduğu anlatılıyordu.

O´Reilly Kitapları Türkiye´de Türkçe

FZ

Efsanevi yayınevlerinden O´Reilly kitapları artık Türkiye´de Türkçe olarak da yayınlanıyor.

Pusula Yayıncılık tarafından Türkçeye kazandırılan ilk iki kitap Pratik C++ Programlama ve .NET Framework.

Özellikle bu kitaplardan birincisi yani Pratik C++ Programlama 600 sayfalık hacimli bir kitap olup bu önemli programlama diline hakim olmak isteyen programcılar için önemli bir kaynak niteliğinde. Kitap sadece C++ dili ile ilgili değil aynı zamanda gcc, gdb gibi önemli programlama araçlarına dair de bilgiler içeriyor.

Gelişmekte Olan Ülkelerde Kablosuz Ağ Kurulumu

arikan

Creative Commons lisansıyla bedava yayınlanan bu yeni kitap kırsal bölgelerde düşük maliyetle kablosuz ağ kurulumu ve işletimini anlatıyor. Kitap dünyanın çeşitli kırsal bölgelerinde ağ kurmuş ve işletmiş profesyoneller tarafından hazırlanmış.

Açık Akademi Yayınlarında en az %50 indirim

anonim

Daha önce tasviye sürecine gireceği bildirilen Açık Akademi yayınlarında çok yakın zamanda son noktaya gelinecektir. Yayınevi stoklarını tüketmek için kitaplarda son bir indirim daha yaparak, indirimleri %50 ile %60 seviyesine çıkarmıştır.