История изменений
Исправление Kroz, (текущая версия) :
но awesome продолжит выполнять свою основную функцию. Плохо, неюзабельно, но будет. ☺
Притча, рассказанная одним преподом в универе:
Поручили инженерам сделать водопроводный кран. Одни заказчики поручили сделать кран который дает много воды. А вторые заказчики поручили сделать кран, который приносит много денег. Инженеры почесали в затылке, и сделали кран, который дает воды, не то чтобы много, но и не мало, ну и денег приносит средненько. И отдали это заказчикам. Итог: набили морду и те и другие.
Мораль: Если делаешь что-то, делай это хорошо. Или не делай вообще.
Для простых вещей он простой. Сложное приходится делать лютыми хаками. Никакого противоречия здесь нет.
Это противоречит лучшим практикам.
Есть два подхода к программным решениям:
1. Разделяешь на простое/сложное, простое делаешь максимально простым (опции в конфиге), сложное - даешь мощный хоть и сложный инструмент. Цель: минимальный порог входа для новичков.
2. Даешь один инструмент конфигурации (язык) который умеет всё, и не требует «лютых хаков». Да, простое будет сложнее, но зато то, что обычно сложно, будет проще. Цель: максимальная конфигурабельность доступная пользователям.
Соответственно, с самого начала ты должен определить что тебе важнее: простота или конфигурабельность, а далее следовать этому принципу.
Примеры первого подхода:
- в Винде простые вещи делаются чекбоксами в Control Panel. Сложные - магией в реестре.
- в KDE простые вещи делаются чекбоксами в System Setting или в соотв. конфигах, сложные - виджетами на Python или WinScript на JavaScript.
- в FireFox/Chrome простые вещи делаются чекбоксами в настройках или в соотв. конфигах, сложные - плагинами на JavaScript.
Пример второго подхода:
- в Линукс практически всё настраивается конфигами в текстовых файлах. Это сложнее чем GUI чекбоксы в Windows/Mac, но зато сделать можно намного больше.
- В nftables всё конфигурится нетривиальными конфигами, но зато сделать можно много чего.
Исходная версия Kroz, :
но awesome продолжит выполнять свою основную функцию. Плохо, неюзабельно, но будет. ☺
Притча, рассказанная одним преподом в универе:
Поручили инженерам сделать водопроводный кран. Одни заказчики поручили сделать кран который дает много воды. А вторые заказчики поручили сделать кран, который приносит много денег. Инженеры почесали в затылке, и сделали кран, который дает воды, не то чтобы много, но и не мало, ну и денег приносит средненько. И отдали это заказчикам. Итог: набили морду и те и другие.
Мораль: Если делаешь что-то, делай это хорошо. Или не делай вообще.
Для простых вещей он простой. Сложное приходится делать лютыми хаками. Никакого противоречия здесь нет.
Это противоречит лучшим практикам.
Есть два подхода к программным решениям:
1. Разделяешь на простое/сложное, простое делаешь максимально простым (опции в конфиге), сложное - даешь мощный хоть и сложный инструмент. Цель: минимальный порог входа для новичков.
2. Даешь один инструмент конфигурации (язык) который умеет всё, и не требует «лютых хаков». Да, простое будет сложнее, но зато то, что обычно сложно, будет проще. Цель: максимальная конфигурабельность доступная пользователям.
Соответственно, с самого начала ты должен определить что тебе важнее: простота или конфигурабельность, а далее следовать этому принципу.
Примеры первого подхода:
- в Винде простые вещи делаются чекбоксами в Control Panel. Сложные - магией в реестре.
- в KDE простые вещи делаются чекбоксами в System Setting или в соотв. конфигах, сложные - виджетами на Python или WinScript на JavaScript.
- в FireFox/Chrome простые вещи делаются чекбоксами в настройках или в соотв. конфигах, сложные - плагинами на JavaScript.
Пример второго подхода:
- в Линукс практически всё настраивается конфигами в текстовых файлах. Это сложнее чем GUI чекбоксы в Windows/Mac, но зато сделать можно намного больше.
- В nftables всё конфигурится нетривиальными конифгами, но зато сделать можно много чего.