[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: KISS
Страницы: 1, 2
twin
KISS – (keep it short and simple делай короче и проще)

Или как еще иногда расшифровывают в гневе: "keep it simple stupid!" - делай это проще, тупица.

Когда я вижу этот термин, всегда вспоминаю про кнопку на унитазе. Анекдот это или реально - не знаю. Но как гласит легенда, из решенй задачи на активацию слива в унитазе, чтобы не испачкать руки, среди различных сенсорных, лазерных, с эффектом присутствия и так далее, было выбрана обычная педаль.

Зачастую программисты, особенно молодые, грешат склонностью к оверинженирингу. Еще не прошло желание сказать "мама, смотри как я умею!". А ведь чаще всего самыми эффекивными и надежными являются самые простые решения. Яркий пример, который порицается 90%-ми tru-программистов, это простая инициализация переменных из элементов суперглобальных массивов. В Yii допустим эта инициализация выглядит так:
    $page = Yii::app()->request->getPost('page', null);

Хотя самым простым, очевидным, и ничем не уступающим, решением этого конкретного места было бы
    $page = @$_POST['page'];


Однако это подвергается гонениям по нескольким причинам.
1. Все боятся собак
2. Хотят однообразия
3. Так круче!

И если первые (особенно второй) еще имеют некий смысл, к третьему (а он зачастую решающий) так и хочется применить принцип KISS

Это не руководство к действию, конечно не стоит выделяться из толпы, можно и огрести. Но как пример очень подходяще. Настолько уже въелось у всех в сознание, что круче как минимум через тернарник, что такая строчка сразу же вызывает жуткий батхерт дискомфорт.

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

Так что KISS трактуется не как "Упрощай!", а именно как "Не усложняй!".

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Гость_glock18
Цитата (twin @ 5.10.2015 - 08:36)
   
$page = Yii::app()->request->getPost('page', null);


Хотя самым простым, очевидным, и ничем не уступающим, решением этого конкретного места было бы
   
$page = @$_POST['page'];



Однако это подвергается гонениям по нескольким причинам.
1. Все боятся собак
2. Хотят однообразия
3. Так круче!


Тут сложно удержаться от поправки. KISS собой в первую очередь подразумевает простоту для понимания, а не маленькое кол-во вызовов функций. Чем они отличаются с точки зрения понятности?

$page = Yii::app()->request->getPost('page', null);

Просто прочитав строку (свойства и методы один за другим) - все предельно ясно. Берется объект request приложения, и у него запрашивает post-переменная page. Второй аргумент, пожалуй, неочевиден (дефолт скорее всего), но наверняка для null его можно опускать, после чего строка перестанет иметь потенциально неочевидные (не simple stupid) фрагменты:
$page = Yii::app()->request->getPost('page');


Несмотря на то, что
$page = @$_POST['page'];
выглядит короче, здесь уже есть собака, которая в принципе сама по себе делает неочевидную вещь. Но даже если разработчики решили согласиться на понятности собаки для всех, обилие генерируемых ошибок в пыхе очень сильно сказываются на производительности (в частности добавить проверку isset, убрать собаку и все в ажуре - и кстати понятнее, чем @). Пример из опыта такой:

В одном проекте был контроллер, который возвращал список записей (не помню уже в каком виде), закралась в него ошибка, которая возникала на каждой итерации цикла (записей 300 было где-то). Обработка такого запроса занимала почти 30 секунд, а после устранения ошибки - меньше секунды (то есть в районе 0.1с выигрыша за устранение одной ошибки). Так что даже если вы считаете, что @ - абсолютно понятный и очевидный оператор (возможно, тем не менее, забываете, что она не мешает генерации ошибок, она всего лишь подавляет их вывод - почти вся лишняя работа со стороны пыха все равно делается), то может быть его влияние на производительность заставит вас пересмотреть свое отношение к нему.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.