реклама на сайте
подробности

 
 
> Как писать неподдерживаемый код?
juvf
сообщение Sep 12 2016, 08:47
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



пролистовал учебник... или "учебник" по жаваскрипт.... наткнулся на такую статью

Предлогается писать подобный индусский код
Код
// код из jQuery
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;


Это шутка какая-то, или реально сейчас учат так писать???

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Slash
сообщение Sep 12 2016, 13:18
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 202
Регистрация: 10-04-05
Из: Санкт-Петербург
Пользователь №: 4 011



Для С++ есть Clang Format. http://format.krzaq.cc/ тут можно поиграть онлайн.
Но если переменные называть i, j, k, l, m - тут ничего не поможет. В смысле, все нормально, рабочее место за вами.

Сообщение отредактировал Slash - Sep 12 2016, 13:21
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 12 2016, 17:57
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(Slash @ Sep 12 2016, 18:18) *
Но если переменные называть i, j, k, l, m - тут ничего не поможет. В смысле, все нормально, рабочее место за вами.

Если переменные называть i, j, k, l, m и/или следовать советам статьи, то рано или позно сам себе ногу отстрелишь.... с последующим увольнением.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 13 2016, 05:17
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(juvf @ Sep 12 2016, 23:57) *
Если переменные называть i, j, k, l, m и/или следовать советам статьи, то рано или позно сам себе ногу отстрелишь.... с последующим увольнением.

И что? Я все локальные переменные внутри функций так называю. И когда просматриваю функцию - сразу понимаю, что это локальная переменная не заглядывая в заголовок.
За >15лет работы ногу не отстрелил.
Зато есть у нас один программист-коллега, так он переменные называет именами длиной по несколько десятков символов, почти в сотню - вот тут действительно отстрелишь пока такое прочитаешь.
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 13 2016, 05:54
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(jcxz @ Sep 13 2016, 10:17) *
И что? Я все локальные переменные внутри функций так называю. И когда просматриваю функцию - сразу понимаю, что это локальная переменная не заглядывая в заголовок.
За >15лет работы ногу не отстрелил.
Про однобуквенные переменные было сказано в контексте статьи. в статье предлагается использовать однобуквенные переменные не для циклов, и не внутри коротких функций. Назовите переменные например
class ComPort
{
int d,i,e;
std::strung j,q;
};

А ещё лучше этот же компорт

class Uu
{
int d,i,e;
std::strung j,q;
};

Цитата
И когда просматриваю функцию - сразу понимаю, что это локальная переменная не заглядывая в заголовок.
1) Ну так-то глобальные переменные - зло. внутри функции все переменные должны быть локальными. Конечно есть люди, кто всё пишет с глобальными переменными и код годный.... но это не есть тру.
2)А как вы потом понимаете, что это за переменная? есть устоявшиеся правила что i, j, k, n - счетчики в циклах, это понятно. Но вот вам надо переменные локальные сделать, кол-во красных машин, кол-во белых машин, а также кол-во красных и белых фонарей. Вы назовёте их q,w,e,r. Да ещё и в аргументах функции они будут
bool funk(int q, int w, int e, int r); ))))) как в статье говориться - даже простейшее изменение займет годы оплачиваемого труда
Конечно найдется человек, который скажет: "Я с таким кодом за 15 лет ногу не отстрелил". Найдутся люди, которые в кобуре проносили заряженный пистолет 15 лет и ногу не отстрелили.... но это не значит что другие не отстрелят.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 13 2016, 06:25
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(juvf @ Sep 13 2016, 11:54) *
например
class ComPort
...

Это конечно не комильфо.

Цитата(juvf @ Sep 13 2016, 11:54) *
2)А как вы потом понимаете, что это за переменная? есть устоявшиеся правила что i, j, k, n - счетчики в циклах, это понятно. Но вот вам надо переменные локальные сделать, кол-во красных машин, кол-во белых машин, а также кол-во красных и белых фонарей. Вы назовёте их q,w,e,r. Да ещё и в аргументах функции они будут
bool funk(int q, int w, int e, int r); ))))) как в статье говориться - даже простейшее изменение займет годы оплачиваемого труда

Нет, конечно так (однобуквенно или буква цифра i0, i1,...) я называю только временные переменные внутри функций, всякие счётчики циклов как вы указали и т.п. Есть у меня устоявшиеся правила: i<цифра> или j<цифра> или с<цифра> - int или unsigned, q<цифра> - 64-битное значение, a<цифра>, x<цифра> - float или double, n<цифра> - какое-нить количество, p<цифра> - указатель (общий случай), s<цифра> - указатель на char и т.п.
И если надо внутри функции чтобы были например переменные типа int и типа unsigned int, то это будет:
int i, i0, i1, ...;
uint j, j0, j1, ...;
чтобы дальше по коду сразу было ясно - где знаковая, а где беззнаковая операция.
Аргументы функций все многобуквенные.
И это не жёсткое правило, если нужно N красных машин и N синих машин, может быть будет nr и nb, а может nRed и nBlue - по обстоятельствам.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 07:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016