#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
Комментариев нет:
Отправить комментарий