Sınıfta çeşitli yazılım geliştirme yöntemlerini öğreniyoruz. Odaklandığımız ve projemizi geliştirmek için kullandığımız şelale yöntemiydi.
Muhtemelen başlangıçtan itibaren belirtilen yazılım geliştirme dünyasına tanıtmakla ilişkilendirilen klasik Şelale modelini öğrendiniz, büyük ölçekli yazılım sistemleri geliştirmek için uygun değildi. Muhtemelen birçok insanın Şelale modeli olduğunu düşündüğü sorunlarla ilgili daha fazla bilgi edinmek için Winston Royce'un Büyük Yazılım Sistemlerinin Geliştirilmesini Yönetme başlıklı makalesini okumak istersiniz .
Bununla birlikte, Şelale modeli, yazılım geliştirme yaşam döngüsünü ilerlerken öğretmek için iyidir ve mühendislik, mimari tasarım, ayrıntılı tasarım, uygulama, test ve bakım işlemlerini öğrenmek ve gerçekleştirmek için çok net, farklı aşamalarda zaman harcayabilir.
Sınıf diyagramlarımızda, özel olanlar da dahil olmak üzere TÜM özellikleri ve yöntemleri listelemek zorunda kaldık. İşlevleri olabildiğince kısa ve odaklanmış tutmak için Temiz Kod adlı birkaç kitap okudum. Diğer geliştiricilere yardım etmezlerse, şemalarımızdaki her küçük işlevi listelemek sıkıcı görünmektedir (özeldir, başka kimse bunları kullanmaz). Ayrıca, programı tasarlarken her küçük işlevi düşünmeyebilirim, yeniden düzenlerken ortaya çıkabilirler.
Bunların hepsi çok geçerli noktalar.
Şelale kullanılırken bile tasarım aşamasında tüm özelliklerin ve yöntemlerin listelenmesi muhtemelen aşırıdır. Temel özelliklerin yanı sıra halka açık olan her şeyi kesinlikle listelemelisiniz. Gerçekte, diğer her şey, uygulamanızı diyagramlara tersine çevirerek elde edebileceğiniz bir uygulama detayıdır.
Clean Code'un tavsiyesi (Hiç okumadım - sadece yayınladığınız şeyle gidiyorum) Şelale metodolojisini kullanırken bile adil ve uygulanabilir görünüyor. Sınıflarınızı ve yöntemlerinizi Tek Sorumluluk İlkesi , endişelerin ayrılması ve diğer SOLID ilkeleri doğrultusunda tasarlayabilirsiniz . Şelale size nasıl tasarlamanız gerektiğini söylemez. Bununla birlikte, uygulama sırasında bunu yapmanın daha iyi yollarını öğrendikçe ve düşündüğünüzde ön tarafta daha zor olduğunu söyledi.
Bence bu, tasarım ve uygulama arasında çok açık bir şekilde yinelemenin gerekli olduğu gerçeğine işaret ediyor - geleneksel Şelalenin açıklanmadığı bir sorun.