Theo thiết kế tốt, ý tôi là những thứ như các lớp và kiến trúc có ý nghĩa, sử dụng tốt các mẫu thiết kế, sử dụng tốt sự trừu tượng, tổ chức tốt các thành phần, độ gắn kết cao và độ khớp nối thấp giữa các thành phần
Đầu tiên, một phần mềm, tốt hay xấu, không sống trong sự cô độc - nó mô hình hóa một kịch bản trong thế giới thực mà con người quan niệm là một vấn đề và do đó luôn gắn liền với một thứ gọi là "miền ứng dụng". Vì vậy, bất cứ khi nào bạn nói về phần mềm, trước tiên hãy biết và nghiên cứu tên miền - chỉ sau đó bạn mới có thể đạt được sự quyết định tốt và xấu.
git - không chỉ tốt, mà là một thiết kế tuyệt vời. Nó không phải là một điều khiển phiên bản ở cốt lõi của nó, chỉ là một hệ thống tập tin. Một veneer mỏng chức năng trên đầu lõi làm cho nó một hệ thống kiểm soát phiên bản. Nhận biết nội bộ của git, và ý thức của bạn về thiết kế phần mềm sẽ được khai sáng.
jQuery - không phải là một thư viện tài liệu rất tốt (nội bộ), nhưng là một nguồn cảm hứng cho thấy cách mã JavaScript phía máy khách có thể làm nên điều kỳ diệu.
NodeJS - nếu bạn tham gia vào việc tạo máy chủ, dự án này có những ý tưởng và mô hình mới để cung cấp.
v8 - mã C ++ rất tốt, thư viện tuyệt vời để tìm hiểu / nghiên cứu triển khai máy ảo.
Các dự án NoQuery - Couch, Mongo, Redis, Cassandra - những dự án này thể hiện những cách thông minh để giải quyết các vấn đề dai dẳng. Ngoài ra họ nắm lấy ý tưởng của sự kiên trì polyglot.
Thư viện Boost - liều tốt của C ++.
OpenStack - các dự án rất tốt về điện toán đám mây và ảo hóa.
Quỹ phần mềm Apache - Chọn bất kỳ dự án nào của họ và nghiên cứu nó. Cấu trúc mô đun của HTTPd là một nguồn tuyệt vời nếu bạn muốn xem các thành phần kết hợp với nhau như thế nào. APR (apache xách tay thời gian chạy) - một lib thực sự tốt cũng có.
mod_wsgi - một trong những chương trình C tốt nhất tôi từng gặp.
"sử dụng tốt các mẫu thiết kế" - điều quan trọng là mã không tương ứng với mẫu thiết kế nổi tiếng - điều quan trọng hơn là nó giải quyết vấn đề "một cách thông minh" - rằng nó có thể duy trì, có thể tái sử dụng và có thể đọc được. Nếu mã được nhồi nhét vào một "hình dạng" cụ thể - chỉ để tuân thủ một mẫu thiết kế - đó có thể là mã xấu.
"không ít hơn 100.000 dòng mã" - từ khi nào số lượng dòng trở thành một thước đo có chất lượng tốt - nhận được một "phần mềm được thiết kế / kiến trúc tốt" không đòi hỏi nó phải LỚN.
Một lần nữa, hãy nhớ nghiên cứu bản chất và sắc thái của miền vấn đề trước, sau đó đi sâu vào đọc mã.
CẬP NHẬT: Tháng 10 năm 2015
InfluxDB - https://influxdb.com/
Dự án Go này đang được phát triển tích cực và vẫn KHÔNG phức tạp lắm. Vì vậy, bạn có thể bắt đầu với việc đào sâu vào mã tương đối dễ dàng hơn so với một cái gì đó như OpenStack.