Это хорошая практика? "/*/что-то что-то//*/" - PullRequest
7 голосов
/ 21 июля 2009
/*/ comment here
do some thing.
/*/
do some thing.
//*/

Почему люди пишут такой код? Это хорошая практика?

Ответы [ 9 ]

25 голосов
/ 21 июля 2009

Обычно используется только при тестировании чего-либо на данный момент. То есть вы никогда не должны передавать подобный код в систему управления версиями, потому что это может сбить с толку.

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


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

/*/ comment here
do some thing.
/*/
do some thing else.
//*/

//*/ comment here
do some thing.
/*/
do some thing else.
//*/
16 голосов
/ 21 июля 2009

Дрянная практика. Мертвый код не имеет никакого отношения к любому производственному качественному коду. Если действительно существуют ситуации, когда старый, мертвый код будет применяться, то он должен быть преобразован во что-то, что может быть включено / выключено с использованием конфигурации без перекомпиляции.

15 голосов
/ 21 июля 2009

Я бы лучше сделал

#ifdef DOIT_ONE_WAY
do one way
#else
do another way
#endif

но это дело вкуса

3 голосов
/ 21 июля 2009

Это смущает меня и требует времени для разбора, так что нет, я не думаю, что это хорошая практика.

Любая легкость переключения, упомянутая в ответе Кейна, я думаю, не стоит того. Об удобстве комментирования должен позаботиться браузер разработчиков.

Для меня это просто запутанно и определенно не стандартно.

2 голосов
/ 21 июля 2009

Это сбивает с толку и не хватает эстетики программирования. Хороший способ сделать это - использовать препроцессор C и кодировать его так:

#if 0

code block disabled

#endif

code block enabled
2 голосов
/ 21 июля 2009

У каждого есть свой способ делать вещи ... Я предполагаю, что они сделали это, поэтому все, что вам нужно сделать, это добавить / к первому комментарию и удалить последний /, а затем он переключает блок комментария на другой набор инструкций.

РЕДАКТИРОВАТЬ: На самом деле все, что вам нужно сделать, это добавить / к первому комментарию, а затем удалить его, чтобы переключить его обратно.

1 голос
/ 21 июля 2009

Я думаю, что это и метод #ifdef, о котором упоминает Аркадий, плохи, поскольку многофайловый поиск делает что-то , оба выглядят так, как будто код работает, хотя он может не зависеть от предыдущих строк.

Если код действительный #ifdef, зависит от платформы,

но если это просто тестирование кода и т. Д., Я бы предпочел выделить лот и вставить комментарий C ++ //, который в VisualStudio равен Ctrl-K, C

0 голосов
/ 21 июля 2009

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

0 голосов
/ 21 июля 2009

Это простой способ переключаться между двумя блоками кода (как сказал Кейн Уоллманн).

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

...