Kitap Hakkında
Swift ve/veya Kotlin’i temel düzeyde bilen ancak ileri düzey nesne yönelimli programlamaya, analiz ve modellemeye, yazılım mimarisine odaklanmak isteyenler için!
Aykut Taşdelen’in kaleme aldığı bu kitap, kariyerinde yazılım mimarı/proje yöneticisi olmayı hedefleyen, ileri düzeyde nesne yönelimli programlama öğrenmek, dizayn paternleri ve yazılım mimarileri ile mimari paternlere hakim olmak isteyen, analiz ve modelleme konularında bilgisini arttırmak isteyen, yazılım geliştiriciler için benzersiz bir kaynaktır.
Bu kitap nesne yönelimli programlama paradigmasını destekleyen diller olan Kotlin ve Swift'i sözdizim kuralları seviyesinde değil yazılım mimarisi açısından çok önemli olan dizayn paternleri seviyesinde ele almaktadır. Bu açıdan kitap bir şekilde bu iki dili temel seviyede öğrenmiş ve iOS/Android uygulamaları geliştirmekte olan programcılara hitap etmektedir. Kitap bu diller hakkında temel bilgilere (karar yapıları, diziler, döngüler, sanallık, sınıflar, interface’ler vb) sahip olduğunuz varsayılarak yazılmıştır.
Ayrıca Swift veya Kotlin dillerinden birini biliyor ve diğerini de öğrenmek istiyorsanız, (değişken nasıl tanımlanır, if nedir, sınıf ne işe yarar) gibi temel konularla zaman kaybı yaşamak istemiyorsanız, bu kitapla birbirine çok benzeyen bu iki dili karşılaştırmalı olarak da öğrenebilirsiniz.
1. UML : Bu bölümde UML notasyonu ve UML ile modelleme konuları ele alınmıştır. Ayrıca bu bölümde nesneler arasındaki ilişkiler (association, compozition vs) ve temel nesne yönelimli programlama prensipleri (abstraction, encapsulation) gibi konular üzerinde durulmuştur. Bu bölümde yazılım geliştiricilerin dışında analistlerin de faydalanabilecekleri konu başlıkları söz konusudur. Ayrıca Bölüm 1.B’de pek çok örnek UML diyagramı söz konusudur.
1. Tasarım ve Paketleme Prensipleri : Bölüm nesne yönelimli programlama prensiplerine ayrılmıştır. Prensiplerin paternlerden önce ele alınmasının gerekçesi; aslında paternlerin burada anlatılan prensipleri kalıplaştıran çözümler olmalarıdır. Dolayısıyla paternlere giriş öncesinde bu konular ele alınarak okuyucunun bilinç düzeyinin geliştirilmesi hedeflenmiştir. Ayrıca çeşitli kod metriklerinin (kararsızlık, soyutluk vs) hesaplandığı formül ve grafikler yine bu bölümde ele alınmıştır. Ayrıca bu bölümde patern, anti-patern, idiom gibi kavramlar ele alınmıştır.
2. Nesne Oluşturulmasına/Yaratılmasına Ait (Creational) Patern’ler : Nesne yaratılışına ilişkin GOF patern’leri (Singleton, Abstract Factory, Object Pool vb) bu bölümde ele alınmıştır. Verilen örnekler 2 dili de kapsamaktadır.
3. Davranışsal Paternler : Nesnelerin davranışlarına ilişkin GOF patern’leri (Observer, Command, State, Mediator vb) bu bölümde ele alınmıştır. Verilen örnekler 2 dili de kapsamaktadır.
4. Yapısal Paternler : Bu bölüm yapısal paternler (Facade, Decorator, Adapter vb) diye kategorize edilen paternleri ele almaktadır. Verilen örnekler 2 dili de kapsamaktadır.
5. Diğer Paternler : GoF dışında kalan bir kaç Delegation, Object Pool gibi paternin daha ele alındığı bölüm.
6. Yazılım Geliştirme Sürenin Modellenmesi : Bu bölümde okuyucuya genel kültür kazandıracak ölçüde yani fazla detaya girilmeden (Waterfall, eXtreme Programlama, Rational Unified Process, CRC) gibi yöntemler ele alınmaktadır.
Ürün Özellikleri