UNIX¶
История¶
Правила программы-хорошего гражданина Unix-среды
(сформулированные Эриком Реймондом)¶
- Модульности: создавать простые части, соединенные чистыми интерфейсами
- Ясности: ясность лучше заумности
- Композиции: проектировать программы с учетом того, что они будут соединяться с другими программами
- Разделения: отделять политику и механизм, интерфейс и реализацию
- Простоты: проектировать как можно проще, добавлять сложность только по мере необходимости
- Бережливости: писать большую программу только, когда четко продемонстрированно, что другого выхода нет
- Прозрачности: проектировать программы так, чтобы сделать удобной отладку и инспекцию
- Устойчивости: устойчивость — производная прозрачности и простоты
- Представления: вкладывать знания в данные, чтобы логика программы была тупой и простой
- Наименьшего удивления: в дизайне интерфейсов самое главное — меньше всего удивлять
- Тишины: если у программы нет никаких особенных сообщений, лучше ничего не сообщать
- Починки: а если же происходит сбой, то нужно создавать как можно больше шума
- Экономии: уменьшать затраченное программистом время за счет машинного времени
- Генерации: стараться писать программы, которые пишут другие программы
- Оптимизации: сперва прототип, потом полировка и оптимизация
- Разнообразия: нет единственного правильного пути
- Расширяемости: проектируйте с учетом будующего, поскольку оно прийдет раньше, чем вы думаете
Сильные стороны¶
- основа на открытых стандартах
- файл-центричность
- каждая программа должна делать что-то одно, но делать это хорошо; "small pieces, loosely joined" (маленькие, слабосвязные кусочки, из которых собираются большие системы)
- богатые текстовые форматы представления данных
- простая коммуникация через PIPE
Also available in:
HTML
TXT