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

Windows Üzerinde Kaynak Kod Versiyon Kontrol Sistemi ve CVSNT.

ae

Özellikle yazılım geliştirme dünyasında iseniz, yazdığınız kodların güvenilir bir şekilde saklanması, versiyonların takip edilmesi, kodun gelişimine katkıda bulunanların ve kodun kontrol altında tutulması ihtiyacınız doğmuştur. Windows ortamında kaynak kod güvenliğini ve versiyonlama takibini yapabilmek için bir kaç alternatifiniz bulunuyor. Özellikle MS ürünleri ile yazılım gerçekleştiriyor iseniz mutlaka karşınıza çıkmış olan Visual Source Safe, açık kod dünyasından RCS , SVN, CVS ve CVSNT Yabancı terimlerin Türkçeye çevrilmesindeki bazı güçlüklerden dolayı açıklamaların başında Türkçe manasını verip metin içinde orjinal kısaltmaları kullanmaya çalışacağım.

Veri Yapıları ve Algoritmalar

polat

Veri Yapıları ve Algoritmalar (Program Tasarımı ve Yazılım Mühendisliğinde) program geliştiren, matematik ve mühendislik problemlerini bilgisayar ortamında çözmek isteyen, iş dünyasına yönelik yazılım tasarımları yapan her düzeyden programcı veya yazılımcılar için ciddi bir başvuru kitabıdır. Kitap, aynı zamanda, üniversitelerin bilişimle ilgili bölümlerinde okutulan Veri Yapıları ve Algoritmalar dersleri için bir ders kitabı özelliğindedir. Program ve yazılım tasarımında, ciddi bir bakış açısı yakalamak isteyenlere önerilir...

ACM Bilgisayar Bilimleri Klasik Kitaplar Listesi

nec

ACM, kendi portalında, okuyucu anketiyle belirlenen, içinde "201 Principles of Software Development", "Anatomy of LISP" gibi kitapların olduğu bir klasikler listesi yayınlamış. Listede Dijkstra, Minsky gibi isimlerin de kitapları var.

Bazı kitapların tamamına PDF olarak erişilebiliyor siteden. Yazdığına göre eksik olanlar için de izin almaya çalışıyorlarmış. Takip edilesi.

Matematik Dünyası - Yeni Sayı Çıktı

FZ

Türkiye´nin yegâne popüler matematik ve bilgisayar bilimleri dergisi Matematik Dünyası´nın son sayısı çıktı.

İstanbul Bilgi Üniversitesi desteği ile çıkan derginin son sayının kapak konusu ``2 x 2 = 4´´. Evet yanlış okumadınız. Aşikar gibi görünen bu ifadenin temel kavramlar oluşturulup nasıl ispatlandığını bu sayıda okuyup matematiğin harika dünyasında eğlenceli bir gezintiye çıkabilirsiniz.

Bilgisayar bilimcilerinin ilgisini çekecek bölümlerden biri ise Chris Stephenson´un Bilgisayar Bilimi köşesinde ele aldığı ``Sayıları Tepeleyerek Sıralamak´´ başlıklı makale. Bu yazıda çeşitli sıralama algoritmalarının algoritmik karmaşıklığı inceleniyor ve ilginç örnekler veriliyor.

İstatistiklere göre derginin abone sayısı 4200´ü, satışı ise 8000´i geçmiş durumda ancak Prof. Dr. Ali Nesin, bunun Türkiye´nin nüfusuna (ve genç nüfusuna) sahip bir ülke için hala çok düşük olduğunu vurguluyor haklı olarak. Bu sayının artmasını ümit ediyoruz.

Administrative tools

HoLY

Dsniff, MRTG, IP Flow Meter, Tcpdump, NTOP, Ngrep ve diğerleri hakkında açıklamada bulunan PDF formatında bir döküman. Neden ve nasıl ağı dinleyebileceğimizi örneklerle de açıklamışlar saolsunlar:) Döküman bu linkte