Есть ли стандарт, чтобы легко показывать и скрывать контент? - PullRequest
2 голосов
/ 06 мая 2009
  • Вы переключаете комментарии или фрагменты кода, чтобы быстро показать или скрыть содержимое?
  • Какие распространенные методы вы используете?
  • Есть ли принятый стандарт?
  • Следует ли избегать каких-либо методов? то есть могут ли они быть неправильно истолкованы некоторыми двигателями?
  • Есть ли альтернативное или лучшее решение?

Стандартный - это то, что я использую для охвата большинства языков: CSS, JavaScript, PHP, ActionScript

/**/ visible /**/
/**\/ hidden /**/

HTML

<!----> visible <!---->
<!----/> hidden <!---->

PHP - Определение чего-то вроде $ hide работает хорошо, другие переменные могут быть рабочими или dev - большие плиты могут быть скрыты и показаны вместе с одним простым изменением переменной.

if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined

Ответы [ 4 ]

2 голосов
/ 06 мая 2009
/*
Commented
// */

//*
Not commented
// */
2 голосов
/ 06 мая 2009

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

Существует много рисков для жесткого кодирования комментария в коде. Среди них:

  • Очень легко испортить комментарий

  • Непонятно, что комментировали.

  • Проблема, когда закомментированные секции перекрываются

  • Ошибки вырезания и вставки

  • Все, что вы хотели скрыть, все еще доступно, влияет на поисковые системы и т. Д.

1 голос
/ 06 мая 2009

Некоторые люди говорили мне, что правильный способ комментировать разделы C ++, так как мы, очевидно, больше не используем препроцессор, это использовать оператор if.

if(false)
{
    chunk of code;
}

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

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

class Foo
{
    void Bar();
    if(false)
    {
        int Baz(double); // WRONG!!!
    }
};

С другой стороны, это прекрасно работает для таких языков, как python, которые допускают любые операторы в любом блоке, и в которых также отсутствует стандартный препроцессор или комментарии к блоку.

0 голосов
/ 06 мая 2009

Я предпочитаю использовать текстовый редактор, который понимает структуру исходного текста, который я редактирую ( Vim и Emacs - почтенные фавориты), и что может сделать свертывание кода на основе структуры, проанализированной редактором.

Любой из Vim, складывающийся или Emacs, складывающийся , удовлетворяет эту потребность для меня.

...