Saya mengembangkan arsitektur proyek kami saat ini dan mulai mengembangkannya sendiri (mencapai sesuatu seperti, revision 40
) .
Kami sedang mengembangkan kerangka kerja perutean kereta bawah tanah yang sederhana dan desain saya tampaknya dilakukan dengan sangat baik - beberapa model utama, pandangan yang sesuai, logika utama dan struktur data dimodelkan "sebagaimana mestinya" dan sepenuhnya terpisah dari rendering, bagian algoritmik juga diterapkan terlepas dari model utama dan memiliki sejumlah kecil titik persimpangan.
Saya akan menyebut bahwa desain scalable, dapat disesuaikan, mudah diimplementasikan, berinteraksi sebagian besar didasarkan pada "interaksi kotak hitam" dan, yah, sangat bagus.
Sekarang, apa yang dilakukan:
- Saya mulai beberapa implementasi dari antarmuka yang sesuai, porting beberapa perpustakaan yang nyaman dan menulis potongan implementasi untuk beberapa bagian aplikasi.
- Saya memiliki dokumen yang menjelaskan gaya pengkodean dan contoh penggunaan gaya pengkodean itu (kode tulisan saya sendiri).
- Saya memaksakan penggunaan
C++
teknik pengembangan yang kurang lebih modern , termasukno-delete
kode (dibungkus melalui smart pointer) dan lain-lain. - Saya mendokumentasikan tujuan implementasi antarmuka konkret dan bagaimana mereka harus digunakan.
- Tes unit (kebanyakan, tes integrasi, karena tidak ada banyak kode "aktual") dan satu set ejekan untuk semua abstraksi inti.
Saya absen selama 12 hari .
Apa yang kita miliki sekarang (proyek ini dikembangkan oleh 4 anggota tim lainnya):
- 3 gaya pengkodean yang berbeda di seluruh proyek (saya kira, dua dari mereka sepakat untuk menggunakan gaya yang sama :) , sama berlaku untuk penamaan abstraksi kami (misalnya
CommonPathData.h
,SubwaySchemeStructures.h
) , yang pada dasarnya adalah tajuk yang menyatakan beberapa struktur data. - Tidak adanya dokumentasi untuk komponen yang baru-baru ini diterapkan.
- Apa yang baru-baru ini saya sebut sebagai
single-purpose-abstraction
sekarang menangani setidaknya 2 jenis acara yang berbeda, memiliki hubungan erat dengan bagian lain dan seterusnya. - Setengah dari antarmuka yang digunakan sekarang berisi variabel anggota
(sic!)
. - Penggunaan pointer mentah hampir di mana-mana.
- Tes unit dinonaktifkan, karena "
(Rev.57) They are unnecessary for this project
". - ... (itu mungkin bukan segalanya) .
Komit sejarah menunjukkan bahwa desain saya ditafsirkan sebagai sebuah pembunuhan berlebihan dan orang-orang mulai menggabungkannya dengan sepeda pribadi dan roda yang diimplementasikan kembali dan kemudian mengalami masalah dalam mengintegrasikan potongan kode.
Sekarang - proyek masih hanya melakukan sejumlah kecil dari apa yang harus dilakukan, kami memiliki masalah integrasi yang parah, saya berasumsi beberapa kebocoran memori.
Apakah ada yang bisa dilakukan dalam kasus ini?
Saya menyadari bahwa semua usaha saya tidak ada manfaatnya, tetapi tenggat waktunya segera dan kita harus melakukan sesuatu. Apakah seseorang memiliki situasi yang sama?
Pada dasarnya saya berpikir bahwa yang baik (baik, saya melakukan semua yang saya bisa) memulai untuk proyek mungkin akan mengarah pada sesuatu yang baik, namun, saya mengerti bahwa saya salah.