Страницы

Поиск по вопросам

суббота, 30 ноября 2019 г.

Как правильно помечать костыли в коде?

#ide #phpstorm

Зачастую при любой разработке возникает необходимость написать код, про который известно
заранее что он:  


Крайне не гибок.  Или..
Может вызвать баги, проблемы в дальнейшем. Или..
Совершенно не читаем.


Или такой код достаётся по наследству, и хочется пометить места, которые надо затем
выправить. Такой код называется по-русски костыль. К сожалению на англоязычных сайтах
трудно найти информацию об этом, так как у них термин "костыль" - отсутствует в принципе.
Рекомендуют переводить, как "kludge" - но это не часто понимают.

Вопрос - как помечать костыли в коде комментариями, чтобы было просто составить список
из всех костылей в проекте, и крайне желательно - чтобы была их обозримость в IDE,
может даже расстановка приоритетов? Меня больше интересует PhpStorm, но другим будет
интересно узнать про их IDE.

P.S.
 Есть конечно спец-метка в комментах TODO, но хотелось бы представлять костыли и
TODO отдельно друг от друга, всё таки они сильно разные по сути. Поэтому некоторые
договариваются о специальных комментах вроде:

/* TRASHCODE {why below code is bad} */
...
/* TRASHCODE end*/


Потом по коду выискать просто, но помощи IDE в обозрении костылей в таком случае нет.
    


Ответы

Ответ 1



хотелось бы представлять костыли и TODO отдельно друг от друга Во-первых, все приличные IDE кроме TODO понимают "из коробки" ещё и FIXME. но помощи IDE в обозрении костылей в таком случае нет Во-вторых, все приличные IDE :) умеют добавлять пользовательские таск-теги. PhpStorm (и любые другие джетбрейновские): Eclipse (можно кастомизировать даже для каждого языка/проекта): для FIXME и TODO - можно обозначать конец? То есть выделить с помощью комментов блок. Насколько понимаю - нет, везде отслеживается только одна строка с ключевым словом. Максимум что можно - кликнуть по ней в соответствующей закладке и перейти к этому месту в исходнике. CLion: В закладке: Eclipse: В закладке:

Ответ 2



Ахахах...Нет ничего более постоянного, чем временное решение Если Вы не можете писать лаконичный и гибкий код для определенной задачи, то у вас проблемы с проектированием архитектуры и стоит подтянуть свои скилы, такие проблемы у начинающих разработчиков из-за недостатка опыта. Помните, что один костыль требует нагромождения новых костылей, расширение системы и ее функционала, а также внесение изменений будет затруднено. Вы немного неправы про отсутствие костыля в английском языке, оно часто называется kludge or workaround Куски кода которые требуется исправить часто отмечают с помощью FIXME, которую поддерживают многие редакторы и PHPSTORM тоже, оно отмечается в TODO. FIXME ставиться непосредственно перед проблемным участно и может содержать описание в каких строках код содержит проблемы и что за проблемы, которые нужно исправить, ограничителя нет. FIXME: строки 38-120 имеют низкую абстракцию. Опыт Могу сказать, что я и коллеги, мы редко помечаем костыли. Часто они сразу переписываются без пометок в момент новой задачи или поиска ошибки (класс уже несколько раз стрельнул, даже после исправления), потому что все эти пометки с недостатком времени превращаются в постоянные. Переписываются естественно костыли без фанатизма, в целях экономии средств бизнеса на дальнейшую разработку и поддержку продукта. Если в команде поддерживается стремление к высокому уровню абстракции и соблюдению правил количества строк в классе, рефакторинг какого-то кривого кода не занимает много времени, но если достался в наследство, то нужно определять уровень рефакторинга в зависимости от предоставленного времени на задачу. P.S Избегайте лишних парадигм: костылирование, инкостыляция и поликостылизм, пишите красивый код приложив к нему хотя бы минутку проектирования.

Ответ 3



PHP #region FIXME Bug text ... #endregion Javascript //region FIXME Bug text ... //endregion

Комментариев нет:

Отправить комментарий