ผมพัฒนาสถาปัตยกรรมโครงการปัจจุบันของเราและเริ่มพัฒนามันในตัวเอง(บางสิ่งบางอย่างถึงชอบ )revision 40
เรากำลังพัฒนาเฟรมเวิร์กการกำหนดเส้นทางรถไฟใต้ดินที่เรียบง่ายและการออกแบบของฉันก็ทำได้ดีมาก - โมเดลหลักหลายมุมมองที่สอดคล้องกันตรรกะหลักและโครงสร้างข้อมูลถูกสร้างแบบจำลอง "ที่ควรจะเป็น" และแยกออกจากการเรนเดอร์ นอกเหนือจากโมเดลหลักและมีจุดตัดเล็ก ๆ น้อย ๆ จำนวนหนึ่ง
ฉันจะเรียกว่าการออกแบบที่ปรับขนาดได้ปรับแต่งได้ง่ายต่อการใช้งานการโต้ตอบส่วนใหญ่ขึ้นอยู่กับ "ปฏิสัมพันธ์กล่องดำ" และดีมาก
ตอนนี้สิ่งที่ทำ:
- ฉันเริ่มต้นการใช้งานอินเทอร์เฟซที่เกี่ยวข้องบางอย่างย้ายบางไลบรารีที่สะดวกและเขียนส่วนการปรับใช้สำหรับบางส่วนของแอปพลิเคชัน
- ฉันมีเอกสารที่อธิบายถึงรูปแบบการเข้ารหัสและตัวอย่างของการใช้รูปแบบการเข้ารหัสนั้น (รหัสที่เป็นลายลักษณ์อักษรของฉันเอง)
- ฉันบังคับให้ใช้
C++
เทคนิคการพัฒนาที่ทันสมัยมากขึ้นหรือน้อยลงรวมถึงno-delete
โค้ด (ซึ่งพันผ่านตัวชี้อัจฉริยะ) และอื่น ๆ - ฉันบันทึกวัตถุประสงค์ของการใช้งานอินเทอร์เฟซที่เป็นรูปธรรมและวิธีการใช้งาน
- การทดสอบหน่วย(ส่วนใหญ่เป็นการทดสอบการรวมเนื่องจากไม่มีรหัส "จริง" จำนวนมาก)และชุด mocks สำหรับ abstractions หลักทั้งหมด
ฉันขาดเป็นเวลา 12 วัน
สิ่งที่เรามีตอนนี้ (โครงการพัฒนาโดยสมาชิก 4 คนในทีม):
- ที่แตกต่างกัน 3 รูปแบบการเข้ารหัสทั่วโครงการ(ฉันเดาสองของพวกเขาตกลงที่จะใช้รูปแบบเดียวกัน :) , เช่นเดียวกับการตั้งชื่อของแนวคิดของเรา(เช่น
CommonPathData.h
,SubwaySchemeStructures.h
)ที่มีพื้นส่วนหัวประกาศโครงสร้างข้อมูลบางส่วน - ไม่มีเอกสารประกอบสำหรับชิ้นส่วนที่เพิ่งนำมาใช้อย่างสมบูรณ์
- สิ่งที่ฉันสามารถเรียกว่า
single-purpose-abstraction
ตอนนี้จัดการกับเหตุการณ์ที่แตกต่างกันอย่างน้อย 2 ชนิดมีการมีเพศสัมพันธ์อย่างแน่นหนากับส่วนอื่น ๆ และอื่น ๆ - ครึ่งหนึ่งของอินเทอร์เฟซที่ใช้มีตัวแปรสมาชิก
(sic!)
แล้ว - การใช้ตัวชี้แบบ Raw เกือบทุกที่
- การทดสอบหน่วยถูกปิดใช้งานเนื่องจาก "
(Rev.57) They are unnecessary for this project
" - ... (ที่อาจจะไม่ได้ทุกอย่าง)
ประวัติการกระทำแสดงให้เห็นว่าการออกแบบของฉันถูกตีความว่าเป็น overkill และผู้คนเริ่มรวมกับจักรยานส่วนบุคคลและล้อ reimplemented แล้วมีปัญหาการบูรณาการชิ้นรหัส
ตอนนี้ - โครงการยังคงทำสิ่งเล็ก ๆ น้อย ๆ ที่เราต้องทำเรามีปัญหาการรวมที่รุนแรงผมถือว่าการรั่วไหลของหน่วยความจำบางอย่าง
ในกรณีนี้มีอะไรที่เป็นไปได้บ้างไหม
ฉันรู้ว่าความพยายามทั้งหมดของฉันไม่ได้รับประโยชน์ใด ๆ แต่กำหนดเวลาค่อนข้างเร็วและเราต้องทำอะไรบางอย่าง ใครบางคนมีสถานการณ์ที่คล้ายกัน?
โดยทั่วไปฉันคิดว่าการเริ่มต้นที่ดี (ดีฉันทำทุกอย่างเท่าที่จะทำได้) สำหรับโครงการอาจจะนำไปสู่สิ่งที่ดีอย่างไรก็ตามฉันเข้าใจว่าฉันผิด