Yazılım Mühendisliğinde Çıkmaz Sokak Tarifleri: Anti-Patterns

0
FZ
Bilgisayar yazılımları geliştirmekle yıllardır uğraşılmakta. Son yarım yüzyılda ortaya çıkan bu alanda çeşitli paradigmalar (prosedürel, nesne tabanlı, fonksiyonel, vs) ve çeşitli modeller (code reuse, unit testing, component model, extreme programming, design patterns) ortaya atıldı. Daha çok "Özgür Yazılım'' ile birlikte dağıtık geliştirme yöntemleri gündeme geldi. Tasarım, uygulama ve test aşamalarını kapsayan geniş bir açıdan baktığımızda bize önerilen çeşitli "doğru'' geliştirme yöntemleri var.

Diğer her alanda olduğu gibi dengeli ve sağlıklı bir kavrayışa sahip olmak için doğruların yanında "yanlış'' yöntemler hakkında da bilgi sahibi olmak gereklidir. Bu konuda yaşanmış çok tecrübe olmakla birlikte, yazılı olarak birkaç kaynak dışında ciddi bir eksiklik bulunmaktaydı. Bu makale, ağırlıklı olarak yazılım mühendisliği ile ilgili birkaç Internet sitesinden derlenmiş, daha çok özgür yazılım alanını ilgilendiren bu tür çıkmaz yolları tanıtmaktadır. Ortak noktaları:

* Çoğu bir problemi çözmek isterken ortaya çıkar
* İlk bakışta harika bir fikir gibi gözükebilirler
* En çok tasarım aşamasında görülürler
* Sizden çok daha üretken ve başarılı grupları batırmışlardır!

Gürer Özen'in Anti-Patterns çevirisinin devamını burada okuyabilirsiniz.

Görüşler

0
ttk
Çok faydalı bir döküman ve çalışma olmuş bence, ingilizcesini görse ne olduğuna bile bakmadan geçecek benim gibiler için özellikle...
Hazırlayanların eline sağlık.

Adres ve bilgi için teşekkürler.
0
mentat
Öncelikle eline sağlık yazarın, içeriğine hemfikirim, iyi Türkçe referans oldu böylece elimizde.

Anti-Pattern terimi üzerine bir sorum olacak. Benim bildiğim, ya da yanlış hatırladığım belki, bu terim yazının başlarında listelenen "modellerden", "design patterns"'ın (DPs) karşıt düşünce kampı anlamına geliyor, yanılıyor muyum? Ve bu DPs, yazılım mühendisliğindeki genel, proje yönetimsel olanlar değil de, kodlardaki DPs, yani singleton, proxy ıvır zıvır gibi taklaların genel adı olan DPs'e karşıt akımı tanımlıyor diye biliyordum.

Bir de, eğer çeviriyse, çevirinin orijinaline nasıl ulaşabiliriz?
0
cagataycatal
Güzel ve aciklayici bir yazi olmus ancak son anti-patternin ismiyle iliskili olarak biraz daha aciklama verilebilir.
Anti-patternler gercekten de yazilim dunyasinda bilerek ya da bilmeyerek yapilan hatalari ortaya koyup, farketmedigimiz hatalarimizi karsimiza cikariyor.
0
skoylu
Ortak noktaları:

* Çoğu bir problemi çözmek isterken ortaya çıkar
* İlk bakışta harika bir fikir gibi gözükebilirler
* En çok tasarım aşamasında görülürler
* Sizden çok daha üretken ve başarılı grupları batırmışlardır!


Bu sorunun asıl kaynağı, tasarım aşamasının süreç olarak külliyeten yanlış olmasından kaynaklanır. Bu noktada da devreye gerekler analizinin doğru yapılmayışı girer. ama çoğu zaman, işe başlarken elinizde doğru anlamda bir gerekler listesi bile yoktur maalesef.

Bu konuda,

http://cekirdek.uludag.org.tr/~tekman/blog/index.php?p=51

adresindeki kitaba gözatmak faydalı olacaktır.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

C Programlama Dilinin Evrimi

sametc

Aşağıdaki yazı benim çok ilgimi çekti paylaşmak isterim sanırım herkes benim gibi bu dilin nasıl ortaya çıktığını merak etmiştir.

C'nin tarihini tartışmaya UNIX'ten bahsedilmeden başlanamaz çünkü işletim sistemi ve sistem üzerinde çalışan programların bir çoğu C'de yazılmıştır.

Debian GNU/Linux İçin Paket Yapımı

yuxel

Debian GNU/Linux'u en popüler dağıtımlardan birisi yapan şüphesiz ki paket yönetim sistemidir. Neredeyse tüm paketleri resmi depolardan (http://www.debian.org) veya gayri resmi yansılardan (http://www.apt-get.org) edinmek mümkün. Ancak bazen istediğiniz programı istediğiniz koşullarda paketlenmiş olarak bulamıyorsunuz. Bu durumda kendiniz kaynak koddan derlemek zorunda kalıyorsunuz. Daha sonraki kullanımlar veya arkadaşlarınızla paylaşmak için bu derleme işlemini bir paket olarak kenarda köşede bekletmek isteyebilirsiniz. Bu belgede, Debian paket yapımı hakkında bilgi bulacaksınız

E-bergi Şubat 2009 Sayısı Okuyucularını Selamlar

ilke444

Yeni yıla çok güzel bir başlangıç yapan aylık bilgisayar bilimi ve özgür yazılım derginiz e-bergi, Şubat 2009 sayısıyla da yine çok konuşulacak.

21 Günde Değil 10 Yılda Programlama Öğrenin

FZ

Herhangi bir kitapçıya gittiğinizde Teach Yourself Java in 7 Days (7 Günde Java Öğrenin) benzeri, size birkaç günde veya birkaç saatte Visual Basic, Windows, Internet (vs.) öğretmeyi vadeden kitaplarla karşılaşırsınız...

... Birkaç günde, Beethoven, kuantum fiziği ya da köpek eğitimi öğreten kitaplar yok. Bu sonuçlara bakılırsa, ya insanlar bilgisayar hakkında yeni şeyler öğrenmek için çok hevesli ve aceleci ya da bu iş bir şekilde inanılmaz derecede kolay.

... Araştırmacıların da (Hayes, Bloom) ortaya koyduğu üzere, satranç oynamaktan beste yapmaya, resimden piyanoya, yüzmeden tenise ya da nöropiskoloji ve topoloji alanlarında araştırma yapmaya kadar bir çok alanda uzman olmak, on yıl civarında bir zaman alıyor ve bunun bir kısayolu var gibi gözükmüyor.

Peter Norvig'in "Teach Yourself Programming in Ten Years" başlıklı makalesinin çevirisini On Yılda Programlama Öğrenin adresinde okuyabilirsiniz.

Tomcat ile Dağıtık (Distributed) Sistem İnşâsı

malkocoglu

E-ticaret ve benzeri türden internet sitelerinin karşısında çıkan klasik ölçekleme sorunu şunlardır:

Her Tomcat sunucu makinası sadece belli sayıda ziyaretçiye Servlet/JSP servisi yapabilir. Bir makinanın sınırı aşıldığında yeni bir Tomcat makinası ekleyerek sitemizin kapasitesini arttırabilmeliyiz. Fakat bunu nasıl yapacağız? Bu birçok Tomcat sunucusunun işlemci gücünü dış dünyaya tek bir kuvvet olarak sunabilecek bir yöntem lazım, yani kümeleme (clustering) kavramının Tomcat dünyasında olan karşılığı....
Yazının Devamı