2009-02-18 8 views
19

программного обеспечения, я надеюсь, что это не дубликат ...Примеры великолепного дизайна и реализации

Что является наиболее прочно разработана и внедрена система программного обеспечения/рамки/приложение, которое вы столкнетесь?

Похоже, что TDD, SOLID принципы, шаблоны проектирования OO и тому подобное могут быть легко теоретизированы в подкастах и ​​блогах с использованием действительно простых примеров, но трудно представить, как разрабатывать большие системы, полностью соответствующие этим стандартам, без взрыв кода. В моей компании выполнение полного TDD кажется почти не связанным с нашими временными ограничениями.

Если кто-нибудь может указать мне на любые хорошие проекты с открытым исходным кодом, мне бы очень хотелось вскочить и посмотреть, какой хороший TDD/SOLID/etc. выглядит как. Благодарю.

ответ

7

Space Shuttle программное обеспечение?

They Write the Right Stuff

Но как много работы программного обеспечения делает не то, что делает его замечательным. Что отличает , насколько хорошо работает программное обеспечение . Это программное обеспечение никогда не сбой . Это никогда не должно быть перезагружено . Это программное обеспечение без ошибок. Идеально, так же прекрасно, как человеческие существ. Рассмотрим эти характеристики : последние три версии программы - каждая 420 000 строк длиной - всего одна ошибка. Последние 11 версий этого программного обеспечения имели из 17 ошибок. Коммерческие программы эквивалентной сложности имели бы 5000 ошибок .

+0

Я, кажется, помню, что этот код был разработан с использованием много формальной методологии доказательства. Может ли кто-нибудь подтвердить или опровергнуть это? – dmckee

0

Google Chrome

+0

Мне нравится хром, но где любовь в Linux? Это моя единственная проблема с хром. –

+0

и устранили ли они все ошибки/зависания от бета-версии? –

4

TeX?

Кнут все еще предлагает reward for confirmed bugs.


BTW: Я не уверен, что Кнут подписывается на любой механизм модного слова, чтобы сделать действительно надежное развитие. Не знаю, как он это делает. Может быть, просто внимание к деталям.

4

.NET Framework.

  • Замечательно, когда я «вставляю» пространство имен, и его члены - именно то, чего я ожидал бы.
  • Это «просто работает».
0

Firefox 2,0

  • Простой пользовательский интерфейс
  • Надежная функциональность
  • Очень стабильный
+0

Подождите, что? Robost? Стабильный? Нет, Хосе! –

+0

Работает отлично для меня ... конечно, лучше, чем интернет-исследователь 6/7 – Element

+1

@ Элемент, все лучше, чем интернет-исследователь 6/7. –

0

Apache HTTPD.

  • Clean
  • Простой
  • Функциональная

Также: Graphviz - удивительный пример силы, последовательности и простоты.

Лучший код, который я когда-либо видел, - это правильность; он работал в истинной элегантности и красоте. Но, к сожалению, он должен оставаться анонимным.

BTW: Любой огромный интерфейс/апи, что может быть упрощена, не солидно разработан по определению. И для многих компаний большие уродливые интерфейсы получают только больше и uglier.

Paul.

2

Многие другие сообщения упоминают программы, которые не были реализованы с помощью TDD, и, как таковые, не дают ответа на вопрос «Я действительно хотел бы вникнуть и посмотреть, какой хороший TDD/SOLID/etc. выглядит как." Например, я вполне уверен, что источники Apache HTTPD Server и Firefox никогда не видели TDD. Я просто просмотрел немного их источников, и в тестовых папках было всего несколько небольших файлов, и производственный код не выглядел так, как будто он был написан с помощью TDD или с помощью SOLID.

Например, Fitnesse был написан с использованием TDD изобретателем SOLID. Это должно быть хорошей ссылкой на то, как выглядит такой код, особенно более новые части кода (в его книге Clean Code у дяди Боб есть несколько примеров плохого кода из Fitnesse, который он затем очищает, поэтому необязательно весь код в Fitnesse чистый).

Я также запишу свой собственный проект, Dimdwarf Application Server, который был написан на 100% с помощью TDD/BDD и попытался написать как можно более чистый код (после SOLID и т. Д.). Там также есть некоторые уродливые части (в основном при планировании задач и сборе мусора), но эти части все еще находятся в рабочем состоянии, и они будут очищены к моменту завершения этих функций.

+0

Энди спрашивает о двух вещах: примеры надежного программного обеспечения и примеры действительно хорошего кода, разработанного с использованием TDD. Тот факт, что некоторые из лучших примеров не используют TDD, не доказывает, что TDD не очень хорош, но доказывает, что это необязательно. YMMV; недавняя формализация под названием TDD; и т.д... – dmckee

Смежные вопросы