Все учатся со временем, и, к вашему удивлению, программисты ничем не отличаются. Мы (Да, Программисты) делаем ошибки и обещаем себе, что больше не повторим. Мы снова повторяем и снова обещаем. И наступает день, когда мы не повторяем эту ошибку. В этот день мы чувствуем себя удовлетворенными и пьем эту чашку чая с внутренним чувством полноты.

Но мы здесь, чтобы обсудить некоторые плохие практики (на мой взгляд), которые вызывают у меня тошноту всякий раз, когда я сталкиваюсь с ними. У каждого свой стиль программирования, но эти немногие ИМО действительно нуждаются во внимании. Могут быть и многие другие, и возможно, что я единственный, кто их не любит. В любом случае, не выходи из себя и не ругай меня за рулем, и никогда не забывай, что табак вреден для здоровья.

Практика 1 — Отрицание If с else

If(not_condition) {
//выполнить задачу с no_true
} else {
//выполнить задачу с true
}

Пример :

If( ! (возраст ›=60)) { // отрицание ! ваш разум возненавидит это утверждение
print("Ты можешь прожить несколько лет");
} else {
print("Ты можешь умереть в любой момент!")
}

Я много раз читал такой оператор If в коде, и он на мгновение останавливал меня. Потому что это не обычно, это не просто. Что-то, что можно было бы легко выразить, но писатель (здесь программист) предпочел необычный и раздражающий (IMO) способ, потому что у него был плохой день.

Предложение Else по определению предназначено для отрицания утверждения и добавляет меньше нагрузки на ум для понимания.

Хотите что-то простое :-

if(age ‹ 60){ // утвердительное условие
print("Ты можешь прожить несколько лет");
} else {
print("Ты можешь умереть в любой момент!")
}

Практика 2 — логическое условие для возврата логического значения

Компактный код всегда прост для понимания. Но большинство программистов много раз совершают эту ошибку в начале своей карьеры. Видеть это :

Версия 1 (Очень раздражает) -

boolean isTeenager(int age) {
boolean isTeenage = false;
if(age ‹ 20 && age › 12) {
isTeenage = true;
} else {
isTeenage = false;
}
return isTeenage;
}

Версия 2 (Раздражает) -

boolean isTeenager(int age) {
if(age ‹ 20 && age › 12) {
return true;
} else {
return false;
}
}

Версия 3 (мне нравится) -

boolean isTeenager(int age) {
return age ›12 && age ‹20;
}
ДА, МЫ МОГЛИ бы заменить эти числа константами (MIN_AGE_FOR_TEEN и MAX_AGE_FOR_TEEN), но вы знаете, что это определение не изменит, и не будьте слишком умны. Излишество в чем-либо плохо. Опять же в ИМО.

Написание кода — это искусство, если только ваш код может говорить от вашего имени.

Практика 3 — Непрерывная, если нет родственных связей

Я иногда вижу этот тип кода (99,9999% без комментариев) и, поверьте мне, это заставляет меня желать, чтобы я встретил этого программиста, пока я весь пьян, и ударил его этой пустой бутылкой из-под пива. Здесь я представляю прекрасный фрагмент кода:

Если (некоторые_условия_для_проверки_процентной_ставки_в_банке) {

} еще если(какое-то_условие_проверить_бесплатную_еду_в_ресторане) {

} иначе, если(какое-то_условие_проверить_земля_круглая_или_не){

} иначе, если(некоторые_условия_из_другой_вселенной_которая_может_никогда_не соответствовать_другим){

}

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

Практика 4 — If Lover со всем промежуточным кодом

Компактный код -> Удобочитаемый код -> Поддерживаемый код -> Красивый код

Но немногие программисты ненавидят быть красивыми. Они думают, что если я делаю эту дерьмовую работу, то почему я должен делать других счастливыми? Они делают все возможное, чтобы сделать день других как можно хуже.

Помните: когда вы пишете плохой код за x часов, вы тратите 2x + c времени на сопровождающего, где c не определено, и он определенно проклянет вас больше, чем свою жену. Если когда-нибудь с вами случится что-то плохое в будущем, думайте, что это из-за одного разочарованного программиста, который попытался прыгнуть в вашу кодовую базу.

Видеть это :

if(some_condition_1) {
// какая-то строчка кода, которую можно было бы вызвать как функцию
// но ни один наш любимый программист не подумал, что это будет сложно
// ему поставить 0,01 миллисекунду дополнительных усилий
} else (condition_2) {
// какая-то строчка кода, которую можно было бы вызвать как функцию
// но ни один наш любимый программист не подумал, что это будет сложно
// чтобы он приложил 0,01 миллисекунды дополнительных усилий

// какая-то строка кода, которую можно было бы вызвать как функцию
// но ни один наш любимый программист не подумал, что это будет сложно
// ему приложить 0,01 миллисекунды дополнительных усилий
} else (condition_3) {
// какая-то строчка кода, которую можно было бы вызвать как функцию
// но ни один наш любимый программист не подумал, что это будет сложно
// ему поставить 0,01 миллисекунду дополнительное усилие

// какая-то строчка кода, которую можно было бы вызвать как функцию
// но ни один наш любимый программист не подумал, что это будет сложно
// ему приложить 0,01 миллисекунды лишних усилий
}…


if(condition_51){
// какая-то строчка кода, которую можно было бы вызвать как функцию
// но ни один наш любимый программист не подумал, что это будет сложно
// для ему приложить 0,01 миллисекунды дополнительных усилий

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

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

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

if( condition_1 ) {
callFunction();
} else if( condition_2 ) {
callFunction2();
}

Посмотрите, как легко это читать, сопровождающий все равно проклянет вас, но поверьте мне, вы справитесь с этим. Помните, что «Карма» всегда наблюдает.

Практика 5 — Таинственное возвращение

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

строка 168 : // здесь какой-то код
// здесь снова какой-то код, который наверняка выдаст нулевой указатель с одной ошибкой
строка 237 :// здесь снова какой-то код, подверженный ошибкам
// if (condition1) {return;}
// здесь снова какой-то код
// здесь снова какой-то код, который выглядит хорошо //
if(condition_2){ return;}
// здесь снова какой-то код, который каким-то образом умудряется выполнить
строку 301: // здесь снова какой-то код, хотя и неплохой
// возвращаем правильно

Вы видите эти два загадочных возвращения между ними. Прочтите еще раз, если пропустили. Предположим, приходит новый программист и этот бедолага хочет написать простой лог ИЛИ событие аналитики. В конце он добавляет свою красиво написанную фразу, выпивает кофе и закрывает глаза мечтой однажды сесть за руль Ferrari. Он отправляет свой код, но позже узнает о вашем таинственном возвращении, которое испортило всю его аналитику. Как ты можешь думать, что он не будет молиться за твою смерть. Мир!

Может быть много других плохих практик кода ИЛИ также возможно, что вы поддерживаете одну из них. Прокомментируйте свое мнение и давайте вести здоровую дискуссию. Не будь «**ck» → больным человеком, я имел в виду.

Нашли этот пост полезным? Нажмите кнопку ❤ ниже! :) Если ты хочешь; Помните о карме!