Mevcut proje mimarimizi geliştirdim ve kendi başıma geliştirmeye başladım (gibi bir şeye ulaşmak revision 40
) .
Basit bir metro yönlendirme çerçevesi geliştiriyoruz ve tasarımım son derece iyi yapılmış gibi görünüyordu - birkaç ana model, karşılık gelen görünümler, ana mantık ve veri yapıları "olması gerektiği gibi" modellenmiş ve oluşturmadan tamamen ayrılmıştır, algoritmik bölüm de uygulanmıştır ana modeller dışında ve az sayıda kesişim noktası vardı.
Bu tasarımı ölçeklendirilebilir, özelleştirilebilir, uygulaması kolay, çoğunlukla "kara kutu etkileşimi" ne dayalı, ve çok güzel olarak adlandırıyorum.
Şimdi ne yapıldı:
- İlgili arayüzlerin bazı uygulamalarına başladım, bazı uygun kütüphaneleri taşıdım ve bazı uygulama parçaları için uygulama taslakları yazdım.
- Kodlama stilini ve bu kodlama stili kullanımının örneklerini (kendi yazılı kodum) açıklayan belgem vardı.
- Ben az çok çağdaş kullanımını zorunlu
C++
olmak üzere geliştirme teknikleri,no-delete
kod (akıllı göstericiler üzerinden sarılmış) vb - Somut arayüz uygulamalarının amacını ve nasıl kullanılması gerektiğini belgeledim.
- Birim testleri (çoğunlukla entegrasyon testleri, çünkü çok fazla "gerçek" kod yoktu) ve tüm temel soyutlamalar için bir dizi alay.
12 gün boyunca yoktu .
Şimdi elimizde ne var (proje ekibin diğer 4 üyesi tarafından geliştirildi):
- Projenin her yerinde 3 farklı kodlama stili (sanırım, ikisi aynı stili kullanmayı kabul etti :) , temelde bazı veri yapılarını bildiren başlıklar olan soyutlamalarımızın (örn
CommonPathData.h
.SubwaySchemeStructures.h
) Adlandırılması için de geçerlidir . - Yakın zamanda uygulanan parçalar için mutlak dokümantasyon eksikliği.
- Son zamanlarda ne diyebileceğim
single-purpose-abstraction
şu anda en az 2 farklı olayı ele alıyor, diğer bölümlerle sıkı bağlantıya sahip. - Kullanılan arayüzlerin yarısı artık üye değişkenleri içermektedir
(sic!)
. - Hemen her yerde ham işaretçi kullanımı.
- Birim testleri devre dışı, çünkü "
(Rev.57) They are unnecessary for this project
". - ... (bu muhtemelen her şey değildir) .
Taahhüt tarihi, tasarımımın aşırıya kaçma olarak yorumlandığını ve insanların onu kişisel bisikletler ve yeniden tekerleklerle birleştirmeye başladığını ve daha sonra kod parçalarını entegre etmede sorun yaşadığını gösteriyor .
Şimdi - proje hala yapması gereken şeylerin sadece küçük bir kısmını yapıyor, ciddi entegrasyon sorunlarımız var, bazı bellek sızıntıları olduğunu varsayıyorum.
Bu durumda yapılabilecek bir şey var mı?
Tüm çabalarımın herhangi bir faydası olmadığının farkındayım, ancak son tarih çok yakında ve bir şeyler yapmak zorundayız. Birisi benzer bir durum yaşadı mı?
Temel olarak, proje için iyi bir başlangıç (iyi, yapabileceğim her şeyi yaptım) muhtemelen güzel bir şeye yol açacağını düşündüm, ancak yanlış olduğumu anlıyorum.