จากการออกแบบที่ดีฉันหมายถึงสิ่งต่าง ๆ เช่นคลาสที่มีความหมายและสถาปัตยกรรมการใช้รูปแบบการออกแบบที่ดีการใช้สิ่งที่เป็นนามธรรมการจัดองค์ประกอบที่ดีการประสานที่สูงและการมีเพศสัมพันธ์ต่ำระหว่างส่วนประกอบ
ประการแรกซอฟต์แวร์ไม่ว่าจะดีหรือไม่ดีมันไม่ได้อยู่ในความสันโดษ แต่เป็นแบบจำลองสถานการณ์จริงที่มนุษย์คิดว่าเป็นปัญหาและมักเกี่ยวข้องกับสิ่งที่เรียกว่า "โดเมนแอปพลิเคชัน" เสมอ ดังนั้นเมื่อใดก็ตามที่คุณพูดถึงซอฟต์แวร์อันดับแรกคุณควรศึกษาและทำความเข้าใจเกี่ยวกับโดเมนเพื่อที่คุณจะสามารถใช้วิจารณญาณของสิ่งที่ดีและไม่ดีได้
git - ไม่เพียง แต่ดี แต่เป็นการออกแบบที่น่าทึ่ง มันไม่ได้เป็นตัวควบคุมเวอร์ชันที่เป็นแกนหลัก แต่เป็นระบบไฟล์ แผ่นไม้อัดบางของฟังก์ชั่นด้านบนของแกนทำให้มันเป็นระบบควบคุมเวอร์ชัน ทำความรู้จักกับภายในของคอมไพล์และความรู้สึกของการออกแบบซอฟต์แวร์ของคุณจะถูกรู้แจ้ง
jQuery - ไม่ใช่ไลบรารีเอกสารที่ดี (ภายใน) แต่แหล่งข้อมูลที่สร้างแรงบันดาลใจแสดงให้เห็นว่าโค้ด JavaScript ฝั่งไคลเอ็นต์สามารถทำสิ่งมหัศจรรย์ได้อย่างไร
NodeJS - หากคุณกำลังสร้างเซิร์ฟเวอร์โครงการนี้มีแนวคิดและรูปแบบใหม่ที่จะนำเสนอ
v8 - รหัส C ++ ที่ดีมากห้องสมุดที่ยอดเยี่ยมในการเรียนรู้ / ศึกษาการใช้งานเครื่องเสมือน
โครงการ NoSQL - Couch, Mongo, Redis, Cassandra - โครงการเหล่านี้แสดงให้เห็นถึงวิธีการที่ชาญฉลาดในการแก้ปัญหาการคงอยู่ พวกเขายอมรับแนวคิดของการคงอยู่ของคนหลายภาษา
เพิ่มห้องสมุด - ปริมาณ C ++ ที่ดี
OpenStack - โครงการที่ดีมากเกี่ยวกับ cloud computing และ virtualization
มูลนิธิซอฟต์แวร์ Apache - เลือกโครงการใดโครงการหนึ่งของพวกเขาและศึกษา โครงสร้างแบบแยกส่วนของ HTTPd เป็นแหล่งข้อมูลชั้นเยี่ยมหากคุณต้องการดูว่าส่วนประกอบต่างๆมารวมกันอย่างไร APR (runtime แบบพกพา apache) - lib ที่ดีจริงๆ
mod_wsgi - หนึ่งในโปรแกรม C ที่ดีที่สุดที่ฉันเคยเจอ
"การใช้รูปแบบการออกแบบที่ดี" - มันไม่สำคัญสำหรับรหัสที่จะสอดคล้องกับรูปแบบการออกแบบที่รู้จักกันดี - มันสำคัญกว่าที่จะแก้ปัญหา "อย่างชาญฉลาด" - ซึ่งมันสามารถบำรุงรักษาได้นำมาใช้ใหม่และสามารถอ่านได้ หากรหัสถูกยัดเยียดให้เป็น "รูปร่าง" โดยเฉพาะ - เพียงเพื่อให้เป็นไปตามรูปแบบการออกแบบ - อาจเป็นรหัสที่ไม่ดี
"ไม่น้อยกว่า 100,000 บรรทัดของรหัส" - ตั้งแต่เมื่อใดจำนวนบรรทัดกลายเป็นตัวชี้วัดคุณภาพที่ดี - การได้รับรสชาติของ "ซอฟต์แวร์ที่ออกแบบมาอย่างดี / สถาปัตยกรรม" ไม่จำเป็นต้องเป็นเรื่องใหญ่
อีกครั้งอย่าลืมศึกษาธรรมชาติและความแตกต่างของโดเมนปัญหาก่อนจากนั้นจึงอ่านรหัส
อัปเดต: ต.ค. 2558
InfluxDB - https://influxdb.com/
โครงการ Go นี้อยู่ระหว่างการพัฒนาที่ใช้งานอยู่และยังไม่ซับซ้อนมาก ดังนั้นคุณสามารถเริ่มต้นด้วยการขุดเป็นรหัสได้ง่ายกว่า OpenStack