Примеры отличного проектирования и реализации программного обеспечения
Я надеюсь, что это не дубликат...
Какова самая продуманная и реализованная программная система / фреймворк / приложение, которое вы встречали?
Кажется, что TDD, принципы SOLID, шаблоны проектирования ОО и тому подобное можно легко теоретизировать на подкастах и блогах, используя действительно простые примеры, но трудно представить разработку больших систем, полностью соответствующих этим стандартам, без взрыва кода, В моей компании выполнение полного TDD кажется почти невозможным с нашими временными ограничениями.
Если кто-то может указать мне на какие-либо хорошие проекты с открытым исходным кодом, я бы очень хотел покопаться и посмотреть, что хорошего TDD/SOLID/ и т.д. похоже. Благодарю.
8 ответов
Программное обеспечение Space Shuttle?
Но то, как много работает программное обеспечение, не делает его замечательным. Что примечательно, так это то, насколько хорошо работает программное обеспечение. Это программное обеспечение никогда не падает. Это никогда не должно быть перезагружено. Это программное обеспечение не содержит ошибок. Он идеален, настолько совершенен, насколько достигли люди. Рассмотрим следующую статистику: последние три версии программы - каждая длиной 420 000 строк - имели только одну ошибку в каждой. Последние 11 версий этого программного обеспечения имели в общей сложности 17 ошибок. Коммерческие программы эквивалентной сложности будут иметь 5000 ошибок.
.NET Framework.
- Здорово, когда я "разбираюсь" в пространстве имен, и его члены - именно то, чего я ожидал.
- Это "Просто работает".
TeX?
Кнут все еще предлагает вознаграждение за подтвержденные ошибки.
КСТАТИ: Я не уверен, что Кнут подписывается на любой механизм модных слов для действительно надежной разработки. Понятия не имею, как он это делает. Может быть, просто внимание к деталям.
Во многих других постах упоминаются программы, которые не были реализованы с помощью TDD, и поэтому они не дают ответа на вопрос: "Мне бы очень хотелось покопаться и посмотреть, как выглядит хороший TDD/SOLID/ и т. Д.". Например, я вполне уверен, что источники Apache HTTPD Server и Firefox никогда даже не видели TDD. Я просто просмотрел их источники, и в тестовых папках было всего несколько небольших файлов, и рабочий код не выглядел так, как будто он был написан с использованием TDD или следовал SOLID.
Например, Fitnesse был написан с использованием TDD изобретателем SOLID. Это должно быть хорошим справочным материалом о том, как выглядит такой код, особенно о новых частях кода (в своей книге " Чистый код" у дяди Боба есть несколько примеров плохого кода из Fitnesse, который он затем очищает, поэтому не обязательно весь код в Фитнесс чистый).
Я также добавлю свой собственный проект, Сервер приложений Dimdwarf, который был написан на 100% с использованием TDD/BDD и попытался написать как можно более чистый код (следуя SOLID и т. Д.). Там также есть некоторые уродливые части (в основном в планировании задач и сборке мусора), но эти части все еще находятся в работе, и они будут очищены к тому времени, когда эти функции будут завершены.
Firefox 2.0
- Простой пользовательский интерфейс
- Надежная функциональность
- Очень стабильный
Apache httpd.
- чистый
- просто
- функциональная
Также: Graphviz - потрясающий пример силы, последовательности и простоты.
Лучший код, который я когда-либо видел, был уместен; это было превращено в вещь истинной элегантности и красоты. Но, к сожалению, это должно остаться анонимным.
КСТАТИ: Любой огромный интерфейс / API, который может быть упрощен, не полностью разработан по определению. И для многих компаний большие уродливые интерфейсы становятся только больше и уродливее.
Павел.