Yazılım Üzerine Yazılmış En İyi 5 Kitap

Yazılım geliştirirken eminim sizin de önünüzde ufuklar açan bazı kitaplar olmuştur. Bu yazıda yazılımla uğraşan genç yaşlı herkesin okuması gereken yazılım üzerine yazılmış kaynak, başucu kitaplardan bahsetmek istiyorum.

Seçtiğim kitaplar yazılım geliştirme ile ilgili kuşkusuz. Fakat belli bir programlama diline yönelik kitaplardan ziyade bu iş hakkı ile nasıl yapılır? Profesyonel anlamda hangi ilkeleri, prensipleri dikkate alıp benimsersem daha iyi bir geliştirici olurum kaygısını taşıyanlar için seçildi.

Yazılım projelerinin geneline baktığımızda önemli oranda başarısızlıklar görülmektedir. Bahsedeceğim kitaplardaki ilkeleri uygularsanız bakımı kolay, anlaşılabilir, düzgün bir tasarıma sahip, modüler ve esnek kodlar geliştirirsiniz. Böylece profesyonel anlamda da öne çıkarsınız.

Kaliteli yazılımın kuralları kanunları bellidir ve her ülkede geçerlidir.

Şimdi beş kitabı sırasıyla inceleyelim:

Clean Code – A Handbook of Agile Software Craftsmanship

Bahsedeceğim ilk kitap temiz kod (Clean Code). Robert C Martin, namı diğer bob amca tarafından yazılmış bir başucu kitabıdır.  Başka hiçbir kitap okumayıp sadece bu kitabı okursanız bile size çok önemli katkılarda bulunacaktır.

Kitabın başında yazan bir cümle nasıl bir eserle karşı karşıya olduğunuzu size hissettirecektir.

Kendinize profesyonel demeniz için temiz kod yazmanız gerekiyor. En iyisinden azını yapmak için hiçbir mantıklı bahaneniz olamaz.

Clean Code

Anlamlı değişken isimlerinden tutunda, nasıl fonksiyon yazılır, yorumlar hangi durumlar için yazılır?  Kodun formatı, hata yönetimi, sınıf tasarımı vb. gibi konular herkesin anlayabileceği netlikte ve basitlikte teker teker anlatılmış.

Kitapta yazılımcı psikolojisinden de bahsedilmiş. Projeyi teslim tarihine yetiştirmek için, kodun kimi yerlerinde hatalı/eksik çözümlere yöneldiğimiz ve projeyi zamanında yetiştirmek için, ihmal ettiğimiz gözardı ettiğimiz şeylerin, sonradan başımıza ne dertler açabileceğine değinmiş.

Java unit test kütüphanesi olan JUnit’ten bir bölümde bahsetmiş,  diğer bir bölümde de Refactoring konusundan bahsetmiş. Refactoring kötü yazılmış, kötü tasarlanmış kodun daha güzel bir yapıya dönüştürülmesinin aşamalarını anlatan bir disiplin.

Clean Code hem yeni mezun olmuş bu işe yeni başlayanlara hem de tecrübeli yazılımcılara faydalı öğütler de bulunan bir başucu kitabıdır.

Refactoring – Improving The Design Of Existing Code

Bahsetmek istediğim ikinci kitap Martin Fowler tarafından yazılmış bir eser olan Refactoring isimli eserdir. Yazarı Martin fowler ile birlikte Kent Beck, John Brant, William Opdyke ve Don Roberts isimli yazarlar da kitaba katkıda bulunmuşlardır.

Refactoring konusundan daha önce bahsetmiştim: Mevcut kodunun işlevselliğini değiştirmeden yapısını, tasarımını iyileştirmek.

Refactoring konusu neden hayati bir konudur?  Çünkü kimse her zaman sıfırdan bir projeye başlamaz,  varolan kodların bakımını yapmak durumunda kalır. Hatta sıfırdan yeni bir projeye başlasa bile,  tek satır kod yazdıktan sonra bakım moduna geçer.

Sürekli mevcut kodda eklemeler, çıkarmalar ve iyileştirmeler yapar. Bu değişiklikleri yaparken tasarımını bozmadan, tersine iyileştirecek şekilde yaparsa kolun kalitesini arttırmış olur.

Refactoring yaparken, mevcut kodun birim testleri varsa, değişikliği içiniz daha rahat bir şekilde yaparsınız. Aksi takdirde çalışan kodu bozma riskiniz de olabilir. Bu yüzden dikkat etmekte fayda olacaktır.

Kitabın ilk bölümünde basit bir refactoring uygulaması çalışması yapılıyor. İkinci bölümde Refactoring ile ilgili tanımlar ve çeşitli konular üzerine değerlendirmelerde bulunuyor.

En beğendiğim bölümlerden birisi de üçüncü bölüm. Bu bölüm Kent Beck ile Martin fowler tarafından yazılmış. Bad Smells In Code: Kodun kötü olduğunu gösteren belirtiler, kötü kokular.

12 sayfadan oluşan bu kısım için bile kitap alınabilir.

Diğer bölümlerde de asıl olan konuya geçerek farklı refactoring uygulamalarından bahsediyor.

Design Patterns – Elements of Reusable Object-Oriented Software

Tasarım desenlerini anlatan referans kitap olan Tasarım Desenleri (Design Patterns), yazılım üzerine hazırlanmış en sağlam eserlerden birisidir. Yazarları Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides. Yazarlarına esprili bir şekilde dörtlü çete (GoF – Gang of Four) denilmektedir.

Yazılım üzerinde tasarım desenleri 1980’lerin ortalarında Kent Beck tarafından dile getirilmiştir. Kavramın aslı ise daha önceleri Christopher Alexander tarafından mimari yapılar üzerinde kullanılmıştır.

1994 yılında Design Patterns kitabının piyasaya çıkması, yazılım dünyasında bir dönüm noktası olmuştur. Kitabı çok satmış ve hayli etkili olmuş çok önemli bir eser olarak değerlendirebiliriz.

Kitapta anlatılan 23 tasarım deseni, GoF (dörtlü çete) tasarım desenleri olarak adlandırılmıştır.

Tasarım deseni, yazılım tasarlarken sürekli karşılaştığımız problemlerin akıllı bir şekilde problemin özünü göz önüne alarak çözen yapılardır.

Kitapta tasarım desenleri sistematik bir şekilde ortaya konmuş durumdadır.

Tek tek tüm tasarım desenleri, ismi, amacı, hangi durumda uygulanır, örnek kod nasıl olur gibi sorulara cevap verilerek açıklanmış.

Tasarım desenleri kitapta oluşturucu (Creational), yapısal ( Structural) ve davranışsal (Behavioral) olmak üzere üç grupta toplanmış.

Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development

Diğer kitaplardan biraz daha farklı olarak uygulamaya ağırlık veren bir kitap. Pragmatik bir yaklaşımı benimsemiş olan kitabın yazarı Craig Larman.

Bir yazılım projesinin baştan sona doğru adım adım nesne yönelimli ilkelere uygun olarak nasıl geliştirileceği anlaşılır bir dille anlatılmaktadır.

Vakaların ortaya konması, gereksinimlerin çıkarılması, alan modellemesi, uml notasyonuna uygun bir şekilde diyagramların çizilmesi ve katmanlı yapıların ortaya çıkarılması takip etmesi kolay bir şekilde anlatılmaktadır.

Yazılım servisleri yapbozunun tüm parçaları bu kitapta bir araya gelmektedir diyebiliriz. Kitapta GoF tasarım desenlerine de bol bol referans verilmektedir.

Code Complete – A practical handbook of software construction

Steve McConnell tarafından yazılmış olan Code Complete, her yazılım geliştiricisinin okuması gereken temel eserlerdendir.

Clean code kitabına benzer şekilde nasıl kaliteli kod yazılır, yazarken nelere dikkat edilmeli gibi konularda olağanüstü faydalı, zekice tavsiyelerde bulunmaktadır.

Metafor kullanımı, gereksinim analizi, Savunmacı Programlama (Defensive Programming), Pseudo Programming gibi kavramlardan tutun, değisken isimlerine, temel data tiplerine kadar pek çok farklı konu hakkında aydınlatıcı bilgiler vermektedir.

İlginç olan bölümlerden biriside, yazılım projeleri için programlama dili nasıl seçilir, hangi yaklaşımlar uygulanır konularından bahsedilen bölümdür.

Yazılımcı psikolojisine bile değinen alanında saygın bir kişi tarafından yazılmış, önemli bir eser olarak değerlendirebileceğimiz kitaptan profesyonel anlamda kendini geliştirmek isteyen her geliştiricinin faydalanabileceği pek çok öneri var.

Bu bölümü yazarın güzel bir sözü ile bitirelim:

Güzel kod kendisinin dokümantasyonudur. Koduna yorum ekleyeceğin zaman kendine şu soruyu sorman gerekiyor: Kodu nasıl iyileştirebileyim ki yorum yazmaya gerek kalmasın? Kodu iyileştir ondan sonra yorum yaz ki daha anlaşılır ve temiz olsun.

Code Complete


Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir