AllesKlar
16.03.2017 - 23:32
Цитата (Игорь_Vasinsky @ 15.03.2017 - 12:52) |
Не знаю как насчет кучи, но в сложных валидациях без некоторого количества обойтись практически нереально, чтобы не заветвить свой код до состояния нечитабельности. |
try {
if(!isValid(var1)) {
throw new Exception("invalid value for param Param1: " + var1);
}
if(!isValid(var2)) {
throw new Exception("invalid value for param Param2: " + var2);
}
} catch (Exception ex) {
log("Validation error: " + ex.getMessage());
if(isTraceEnable()) {
ex.printStackTrace();
}
}
_____________
[продано копирайтерам]
S.Chushkin
17.03.2017 - 09:17
Цитата (maximka787 @ 13.03.2017 - 12:02) |
Тоже самое или нет? return $a == 0;
|
Ещё вариант:
return !!$a;
п.с. Я так никогда не делаю. И не рекомендую делать другим - считаю нечитабельным стилем.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
17.03.2017 - 09:24
Цитата (Ron @ 16.03.2017 - 21:45) |
По-моему там же написано почему не стоит использовать тернарники. |
Бред. Стоит и даже очень. Естественно там, где нужно.
Например:
$min = min(1,2);
$min = (1 < 2 ? 1 : 2);
эквиваленты. Только второй вариант намного быстрее, - в длинных быстрых циклах разница очень заметна.
Вообще, всегда стоит помнить, что вызов функции ресурсоёмкая операция.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
17.03.2017 - 09:27
Цитата (Ron @ 16.03.2017 - 21:45) |
Не знаю как насчет кучи, но в сложных валидациях без некоторого количества обойтись практически нереально, чтобы не заветвить свой код до состояния нечитабельности. |
100%
Использование 2-3-х return зачастую заметно увеличивает читабельность.
Если улучшает читабельность, надо использовать, однозначно.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
17.03.2017 - 09:37
Цитата (Ron @ 16.03.2017 - 21:45) |
На мой взгляд, одна из самых полезных книг по программированию. По пользе (положительному влиянию) ее можно сравнить разве что с книгами про паттерны/анти-паттерны. =) |
Когда читаете подобные книги, надо фильтровать советы.
Например, один такой "умник" договорился до того, что что чуть ли не каждый чих надо заворачивать в отдельный метод, якобы это увеличивает читабельность. В результате получилось, что на 2-3 десятка строк кода вызывается десяток методов. И чего удивляться после таких советов, что код ползает как черепаха.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Цитата (S.Chushkin @ 17.03.2017 - 05:24) |
$min = (1 < 2 ? 1 : 2); |
Скобки тут читабельности никак не добавляют. :) Ну или как минимум так:
$min = (1 < 2) ? 1 : 2;
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Хочешь писать понятный в твое команде код?
1) Пиши его по принятому в твоей команде стандарту, если стандарта нет, то нужно принять.
2) Избегай комментариев обычного кода (а его по статистике 99%), комментировать нужно либо хаки, либо не очевидные места.
3) Используй досрочные выходы, не использую сокращения переменных, выделяй участки код по функциональности в разные методы, используй плюсы ООП.
Писать понятный код, этому нельзя просто так научиться, тем более самому. Как минимум нужна команда на которой можно оттачивать свои идеи.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin, я не из тех людей, кто экономит машинное время засчет своего личного. Да, если удастся значительно повысить читабельность, можно даже слегка пожертвовать производительностью.
Дело в том, что программист гораздо больше времени тратит на чтение кода, чем на его написание. Поэтому сократить издержки в этом плане наиболее эффективная стратегия как в экономическом плане, так и для себя любимого, в конце-концов, удобство оно и в африке удобство. =)
В случае с тернарниками речь не идет про замену функцией. Лучше его заменить полной конструкцией, вот и всё. Есть мнение, что она читается значительно легче. Не берусь утверждать, может быть кому-то еще из авторитетных (для меня по крайней мере) людей принадлежит, не Мартину.