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

Yeniden Düzenleme (Refactoring) Video Sunumu

malkocoglu

Yazılım mühendisliği dünyasında özellikle XP (eXtreme Programming) gruplarında, "Yeniden Düzenleme" (Refactoring) tekniği oldukça ilgi görmeye başladı. Birim testler mevcut ise, kodumuzun tasarımını değiştirmenin artık bir ismi, değişik teknikleri ve de destekleyen yardımcı programları var.

Emacs üzerine eklenti olarak kullanılan Xrefactory böyle bir program. Xrefactory kuruluşu, kullanılışı (ilk kez video ile) sitemizde yayınlandı.

Zemberek Nasıl Çalışır? 1. Bölüm: Sözlük ve Kök Ağacı

FZ

Zemberek bir kelimenin Türkçe olup olmadığına nasıl karar veriyor? Bu basit sorunun cevabı "verilen bir kelimeyi Türkçe kök ve eklerine ayırabilirseniz Türkçedir, ayıramıyorsanız değildir". Kısacası bir kelimenin Türkçe olup olmamasını anlamak için morfolojik analiz yapabilmelisiniz. Türkçe yazım denetimi yapabilmek için önceleri en sık kullanılan kelimelerin bir dosyaya konulup gelen kelimelerin o dosyadan kontrol edilmesi gibi ilk bakışta mantıklı görünen ama biraz inceleyince pratik olmadığı anlaşılan yöntemler de düşünülmüştü. Bu tür yöntemlerin yetersiz olan %98-99 doğrulukla çalışması için bile milyonlarca kelimeyi içermesi gerekir.

Makalenin devamı: http://zembereknlp.blogspot.com/2007/02/zemberek-nasl-alr-1szlk-ve-kk-aac.html

Python 101: Eğlenceli bir programlama diline genel bir bakış

FZ

FM üyelerinden tongucyumruk'un yazdığı Eğlenceli bir programlama dili: Python başlıklı belgeyi FM camiası ile paylaşıyoruz.

Hazır 2.4 sürümü çıkmış iken meraklısı için iyi bir başlangıç olur diye düşündük.

Not:Bu belge LATEX belge hazırlama sistemi ile hazırlanmıştır. LaTeX ile üretilen PDF ve sıkıştırılmış PostScript belgelerini de kağıda kaliteli çıktı almak için kullanabilirsiniz.

Essentials of Metaheuristics yayınlandı

okanakyuz

Sean Luke yeni kitabı Essentials of Metaheuristics yayınlandı. Kitap özellikle yapısal kestirim, popülasyon metotları, paralel hesaplama, Kovelasyon, Çok hedefli optimizasyon, Karınca kolonileri, Genetik algoritmalar, Genetik programlama, evrimsel yazılım metotları gibi birbirinden populer yapay zeka konularını içerisinde barındırıyor. Gösterilen algoritmalar rahatlıkla C/C++,Java, Python, Lisp gibi bir dilde programlanabilecek sadelikte. Özellikle yapay zeka meraklısı arkadaşlara tavsiye ederim.

Kitap creative common lisans ile korunmuş olarak yazarın George Mason Üniverstesindeki sitesinde bedava olarak pdf formatında dağtılmakta. (http://cs.gmu.edu/~sean/book/metaheuristics/)

Ve yine Kevin Mitnick, bu sefer basımdan önce kaldırılmış ilk bölüm

Phaedrus

Kevin Mitnick´in yazdığı Art of Deception adlı kitaptan Wiley yayınevi tarafından basımdan hemen önce çıkartılan ilk bölümü Bu adreste okuyabilirsiniz. Genel olarak bu bölüm Mitnick´in geçirdiği kaçak günleri, hapisteki zamanlarını ve medyada Mitnick´in adıyla ve düzenlediği asılsız, popülist haberlerle, ardından da yazdığı kitapla milyon dolarlar kazanan gazeteci John Markoff´u anlatıyor.