문제

  • 콘텐츠를 빠르게 표시하거나 숨기기 위해 주석이나 코드 슬라브를 전환하시나요?
  • 당신이 사용하는 일반적인 방법은 무엇입니까?
  • 허용되는 표준이 있나요?
  • 어떤 방법은 피해야 할까요? 즉 일부 엔진에서는 잘못 해석될 수 있습니까?
  • 이에 대한 대안이나 더 나은 해결책이 있습니까?

기준 - 이것은 내가 대부분의 언어를 다루기 위해 사용하는 것입니다:CSS, 자바스크립트, PHP, 액션스크립트

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

HTML

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

PHP - $hide와 같은 정의는 잘 작동하며 다른 변수는 프로덕션 또는 개발일 수 있습니다. 그런 다음 하나의 간단한 변수 변경으로 큰 슬래브를 숨기고 표시할 수 있습니다.

if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined
도움이 되었습니까?

해결책

나는 렌더링되는 내용을 프로그래밍 방식으로 제어할 수 있다면 그것이 가장 좋다고 생각합니다(PHP에서 했던 것처럼).작성한 것(본질적으로 로컬 전처리기 매크로)보다 더 나은 솔루션은 실제로 렌더링 코드를 문서의 하위 부분을 생성하는 함수로 나누는 것입니다.필요하지 않으면 호출하지 않고 코드에 명확한 조건이 있습니다.예를 들어 이것은 MediaWiki가 작성된 방식입니다.그렇지 않으면 복잡한 프로젝트에서는 엉망이 됩니다.

코드에서 주석 처리를 하드 코딩하는 데는 많은 위험이 있습니다.그 중에는:

  • 주석 해제를 엉망으로 만드는 것은 매우 쉽습니다.

  • 어떤 댓글이 달렸는지 명확하지 않습니다.

  • 주석 처리된 섹션이 겹칠 때 발생하는 문제

  • 잘라내기 및 붙여넣기 오류

  • 숨기려는 모든 항목은 여전히 ​​접근 가능하며 검색 엔진 등에 영향을 미칩니다.

다른 팁

/*
Commented
// */

//*
Not commented
// */

일부 사람들은 C ++의 섹션을 언급하는 적절한 방법을 들었습니다. 우리는 더 이상 전처리기를 사용하지 않기 때문입니다. if 성명.

if(false)
{
    chunk of code;
}

이론은 컴파일러가 최종 제품에서 해당 데드 코드를 최적화하고 중첩 될 수 있다는 이론입니다. /* */ 스타일의 의견은 할 수 없습니다.

물론 그 이론은 가짜입니다.

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

반면에 이것은 블록의 모든 진술을 허용하고 표준 전처리 기 또는 블록 댓글이없는 Python과 같은 언어에 완벽하게 작동합니다.

편집하는 소스 텍스트의 구조를 이해하는 텍스트 편집기를 사용하는 것이 좋습니다 (정력 그리고 EMACS 유서 깊은 즐겨 찾기) 코드 폴딩을 수행 할 수 있습니다 편집자가 구문 분석 한 구조를 기반으로합니다.

어느 쪽이든 vim 폴딩 또는 EMACS 접이식 나를 위해이 필요를 충족시킵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top