Stajda nesne yönelimli programlama tekniğini daha iyi anlamam için head first yayınlarının object oriented analysis and design kitabını okumam istendi. Kitap daha önce karşılaşmadığım bir anlatım tekniğiyle yazılmıştı. Kitapta bolca görsel öğeler kullanılarak anlatılacak konular okuyucuyu sıkmayacak bir şekilde aktarılmaya çalışılmıştır. Kitapta nesne yönelimli programlamanın önemini vurgulamak amacıyla çeşitli problemler tanımlanıyor. Problemler ilk başta nesne yönelimli programlama teknikleri kullanmadan da çözülebiliyor olmasına rağmen daha sonradan programa yeni bir şeyler eklenmek istendiğinde nesne yönelimli programlamanın önemi, yenilenebilirlilik kavramı açısından önemi daha iyi anlaşılıyordu.Bundan ilave kitap boyunca sürekli kullanıcıya sorular sorularak hem kullanıcılarla etkili iletişim kurulmuş hem de okuyucunun dikkati canlı tutulmaya çalışılmıştır.Kitap boyunca sürekli iyi bir yazılımın nasıl olması gerektiği hakkında çeşitli bilgiler verilimiştir. İyi bir yazılımın iyi tasarlanmış,iyi kodlanmış kolayca değiştirilebilir, kolayca yeniden kullanılabilir ve kolayca yenilikler eklenebilir olması gerektiği kitap boyunca üstüne basıla basıla çeşitli örnek problemler de ortaya atılarak vurgulanmıştır. Kitapta vurgulanan bir diğer önemli nokta iyi yazılımın müşterinin isteğine uygun yapılmış olması gerektiğidir. Yazılım tasarlarken nesne yönelimli programlama tekniğini düzgün kullanmamızın yazılımı sonradan müşterinin yeni isteklerine göre değiştirmemiz istendiğinde kolayca değiştirebileceğimizi göstermek amacıyla örnek bir problem tanımlanmıştır. Bu problemde ailenin şöyle bir sorunu vardır; köpekleri her gece havlayarak dışarı çıkmak istemektedir ve aile üyeleri gece yataktan kalkarak kapıyı açmaktan bıkmıştır.Köpek havladığı zaman dışarı çıkmasına izin veren bir kapı sisteminin tasarlanması istenmiştir. Bunun için yazılımcılar aile üyelerinin gece yataktan kalkarak köpeğe kapıyı açmalarının karşısını almak amacıyla uzaktan kumanda sistemi kullanılarak havlama sesi duyulduğunda kapıyı uzaktan kumandayla açabilmeleri sağlanmış ve müşteriler gece yataktan kalkmak zorunda kalmadıkları için programdan memnun kalmışlardır. Belli bir süre programı kullandıktan sonra aile üyeleri yeni isteklerini yazılımcılarına bildirmişlerdir. Bu sefer müşteriler sürekli gece uyanarak uzaktan kumandaya basmaktan bıktıklarını belirtmiş ve havlama sesine duyarlı otomatik kapı tasarlanmasını istemişlerdir. Yazılıma köpek sesi tanıyıcı eklendikten sonra müşterilerin istediği yazılım onlara sunulmuştur. Müşteriler mutlu bir şekilde yazılımın yeni versiyonunu kullandıktan sonra yeni bir istekle tekrar yazılımcılara müracaat etmişlerdir. Bu sefer müşteriler köpek sesi tanıyıcının tüm köpeklerin sesine tepki vererek açıldığından yakınmış ve köpek sesi tanıyıcısının sadece onların köpeğinin sesine duyarlı olmasını istemişlerdir. Yazılımcılar bu sorunu da çözerek köpek sesi tanıyıcısının sadece kendi köpeklerinin sesine duyarlı olmasını sağlamışlardır. Kitapta tüm bu değişikliklerin nesne yönelimli programlama tekniği kullanılarak ne kadar rahat yapılabildiği vurgulanmış ve kod üzerinde gösterilmiştir.
2 Ekim 2010 Cumartesi
1 Ekim 2010 Cuma
Futbol Menajerlik Sümulasyonu Projesi
Taktik Sayfası: Bu sayfada kullanıcının takımının taktiğini ayarlayabiliyor. Taktiği ayarlamadan maç yapılamıyor bu nedenle maç yapabilmek için taktik ayarlanması zorunludur. Ayarlamak istemeyen kullanıcılar yardımcıya sor seçeneğini tıklayarak taktiğin otomatik olarak ayarlanmasını sağlayabilirler. Taktiği otomatik seç seçeneği dizilişi değiştirmez sadece esas ve yedek kadro için oyuncu seçimi yapar. Kullanıcı sürükle-bırak yöntemiyle takımın dizilişini istediği şekilde ayarlayabilir. Kullanıcı taktiği ayarladıktan sonra kaydet butonuna basarak taktiğin kaydedilmesini sağlar.
Antrenman Sayfası: Bu sayfada kullanıcıdan takımının antrenman ayarlarını yapması istenir. Kullanıcı takımının antrenman ağırlıklarını yatay scroll-bar yardımıyla ayarlar.Antrenman ağırlığı olarak 3 aşama bulunmaktadır hafif, orta ve ağır.
Maç Sayfası: Bu sayfa menajerin dostluk maçı ayarlaması içindir. Kullanıcıdan rakip takımı ve maçın oynanacağı stadı seçmesi istenir. Kullanıcı bu seçenekleri seçtikten sonra maç düğmesine tıklayarak maçın oynanmasını sağlar. Bu aşamada ilerde bahsedeceğim maç oynatma algoritması devreye girerek takımların güçlerine göre bir maç skoru ve gol atılmışsa, gol atan oyuncuların isimleri kullanıcıya gösterilir.
Takvim Sayfası: Kullanıcı bu sayfada takımının sezon boyunca yapacağı resmi maçların takvim bilgilerine ulaşabilir. Ayrıca daha önce yapılmış maçların da skorlarını görebilir.
Lig Bilgisi: Kullanıcı bu sayfada lig tablosunu görebilir. Lig tablosunda takımların yaptığı maç sayısı ‘O’, galibiyet sayısı ‘G’, beraberlik sayısı ‘B’ , mağlubiyet sayısı ‘M’ ,attığı gol sayısı ‘AG’, yediği gol sayısı ‘YG’, averajı ‘AVG’ ve puanı ‘P’ görülmektedir. Kullanıcı bu sayfada ayrıca gol krallığı yarışına da göz atabilmektedir.
Transferler Sayfası: Bu sayfa programın bu versiyonunda bitirilememiştir. Bu sayfada kullanıcının oyuncu transferlerinin gerçekleştirmesi planlanmaktadır ilerki versiyonlar için.
Bütçe Sayfası: Programın bu versiyonunda bu sayfada takımın bütçesi yer almaktadır sadece. Stadium sekmesinde anlatılacak olan yeni koltuk ekleme sırasında yapılan harcamalar bu ekranda görülebilmektedir.
Stadyum Sayfası: Bu sayfada kullanıcı kendi takımının stadyum kapasitesini arttırabilmektedir.
Kupa Bilgisi Sayfası: Bu sayfa programın bu versiyonunda tasarlanmamıştır. İlerki versiyonlar için bu sayfada takımın avrupa kupası bilgi ve istatistiklerinin görüntülenmesi planlanmaktadır.
Haberler Sayfası: Bu sayfada kullanıcının internet bağlantısı mevcut olduğu taktirde http://www.pfl.az sitesinin ana sayfası görüntülenir ve kullanıcının azerbaycan ligiyle ilgili en güncel haberlere erişmesi sağlanır.
Hakkımızda Sayfası: Kullanıcı bu sayfada oyunun geliştiricisi hakkında bilgiye ulaşabilir. Geliştiriciyle iletişime geçerek yorumlarını iletebilir. Bu sayfada ayrıca programın ilerki versiyonlarında yapılması planlanan değişiklikler yer almaktadır.
Programın maç yaptırma algoritması şu şekilde çalışmaktadır: Tüm oyuncuların bir savunma ve hucum gücü değeri bulunmaktadır. Takımların sahaya sürülen ilk on bir oyuncusunun hucum ve defans değerlerinin aritmetik ortamaları takımın hücum ve defans değeri olmaktadır. Bir takımın hücum değeri diğer takımın defans gücü değerinden ne kadar yüksekse takımın gol atma olasılığı artmaktadır. Ayrıca kendi sahasında oynayan takımların rakip takıma göre biraz daha avantajlı olması sağlanmaktadır. Rakibine göre göstericileri çok düşük olan takımların bile gerçek hayatta kazanma olasılığı bulunduğu göz önüne alınarak az olasılıkla da olsa bu takımlara bir veya iki gol atma şansı tanınmıştır.