Під хорошим дизайном я маю на увазі такі речі, як осмислені класи та архітектура, добре використання моделей дизайну, хороше використання абстракцій, хороша організація компонентів, висока згуртованість та низька зв’язок між компонентами
По-перше, програмне забезпечення, добре чи погано, не живе в самоті - воно моделює реальний сценарій, який люди сприймають як проблему і, таким чином, завжди тісно асоціюється з чимось, що називається "доменним додатком". Тож, коли ви говорите про програмне забезпечення, спочатку знайте і вивчайте домен - лише тоді ви можете отримати розсуд про добро і погано.
git - не просто хороший, а дивовижний дизайн. По суті це не керування версіями, а лише файлова система. Тонкий шпон функціональних можливостей у верхній частині основи робить його системою управління версіями. Познайомтеся з внутрішністю git, і ваше відчуття дизайну програмного забезпечення буде просвітлено.
jQuery - не дуже добре (внутрішньо) документована бібліотека, але надихаюче джерело, що демонструє, як JavaScript-код на стороні клієнта може творити чудеса.
NodeJS - якщо ви створюєте сервери, цей проект пропонує вам освіжаючі нові ідеї та шаблони.
v8 - дуже хороший код C ++, фантастична бібліотека для вивчення / вивчення реалізацій віртуальної машини.
Проекти NoSQL - Couch, Mongo, Redis, Cassandra - ці проекти демонструють розумні способи вирішення завзятості проблем. Також вони охоплюють ідею наполегливості поліглоту.
Збільшення бібліотек - хороша доза C ++.
OpenStack - дуже хороші проекти з хмарних обчислень та віртуалізації.
Фонд програмного забезпечення Apache - виберіть будь-який із своїх проектів та вивчіть його. Модульна структура HTTPd є чудовим джерелом, якщо ви хочете побачити, як компоненти збираються. APR (переносна апаратура apache) - справді хороша також ліб.
mod_wsgi - одна з найкращих програм на C, яку я натрапив.
"хороше використання моделей дизайну" - НЕ важливо, щоб код відповідав добре відомій схемі дизайну - важливіше, щоб він вирішив проблему "розумно" - щоб він був легкодоступним, багаторазовим і читабельним. Якщо код забитий певною "формою" - просто дотримуватися дизайнерського шаблону - це може бути поганий код.
"не менше 100 000 рядків коду" - з тих пір, коли кількість рядків стала показником хорошої якості - отримання смаку "добре розробленого / архітектурного програмного забезпечення" не вимагає, щоб воно було великим.
Знову ж таки, не забудьте спочатку вивчити природу та нюанси проблемної області, а потім поглибитися у читанні коду.
ОНОВЛЕННЯ: жовтень 2015
InfluxDB - https://influxdb.com/
Цей проект Go знаходиться в стадії активного розвитку, і все ще НЕ дуже складний. Таким чином, ви можете розпочати роботу з кодом порівняно легко, ніж щось на зразок OpenStack.