هل هناك معيار لإظهار المحتوى وإخفائه بسهولة؟

StackOverflow https://stackoverflow.com/questions/827711

  •  06-07-2019
  •  | 
  •  

سؤال

  • هل تقوم بتبديل التعليقات أو شرائح التعليمات البرمجية لإظهار المحتوى أو إخفائه بسرعة؟
  • ما هي بعض الأساليب الشائعة التي تستخدمها؟
  • هل هناك معيار مقبول؟
  • هل يجب تجنب بعض الأساليب؟ أي هل يمكن أن يساء تفسيرها من قبل بعض المحركات؟
  • هل هناك حل بديل أو أفضل لهذا؟

معيار - هذا ما أستخدمه لتغطية معظم اللغات:CSS، جافا سكريبت، PHP، أكشن سكريبت

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

لغة البرمجة

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

بي أتش بي - تعريف شيء مثل $hide يعمل بشكل جيد، ويمكن أن تكون المتغيرات الأخرى هي الإنتاج أو التطوير - ويمكن بعد ذلك إخفاء الألواح الكبيرة وإظهارها مع تغيير متغير بسيط واحد.

if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined
هل كانت مفيدة؟

المحلول

أعتقد أنه إذا كان بإمكانك التحكم برمجيًا فيما يتم عرضه، فهذا هو الأفضل (مثل ما فعلته في PHP).الحل الأفضل لما كتبته (أساسًا ماكرو معالج مسبق محلي) هو تقسيم كود العرض الخاص بك إلى وظائف تولد أجزاء فرعية من المستندات.إذا لم تكن بحاجة إليه فلا تتصل به، ويكون لديك شرط واضح في الكود.هذه، على سبيل المثال، الطريقة التي تتم بها كتابة ميدياويكي.خلاف ذلك، في المشاريع المعقدة، يصبح الأمر في حالة من الفوضى.

هناك العديد من المخاطر التي قد تواجه عملية الترميز الصعب للتعليق في التعليمات البرمجية.فيما بينها:

  • من السهل جدًا إفساد عدم التعليق

  • ليس من الواضح ما تم التعليق عليه.

  • مشكلة عند تداخل الأقسام التي تم التعليق عليها

  • أخطاء القص واللصق

  • كل ما تريد إخفاءه لا يزال بإمكانك الوصول إليه، ويؤثر على محركات البحث، وما إلى ذلك.

نصائح أخرى

/*
Commented
// */

//*
Not commented
// */

لقد أخبرني بعض الأشخاص أن الطريقة الصحيحة للتعليق على أقسام لغة C++، نظرًا لأننا على ما يبدو لم نعد نستخدم المعالج المسبق هي استخدام if إفادة.

if(false)
{
    chunk of code;
}

النظرية هي أن المترجم سوف يقوم بتحسين تلك التعليمات البرمجية الميتة من المنتج النهائي، ويمكن أن تكون متداخلة، والتي /* */ التعليقات النمطية لا تستطيع أن تفعل.

هذه النظرية زائفة بالطبع، لأنه لا يمكنك استخدامها للتعليق على مناطق عشوائية من التعليمات البرمجية، على سبيل المثال:

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

من ناحية أخرى، يعمل هذا بشكل مثالي مع لغات مثل بايثون التي تسمح بأي عبارة في أي كتلة، والتي تفتقر أيضًا إلى معالج مسبق قياسي أو تعليقات جماعية.

أفضل استخدام محرر نصوص يفهم بنية النص المصدر الذي أقوم بتحريره (همة و ايماكس هم المفضلة الجليلة)، وذلك يمكن أن تفعل طي التعليمات البرمجية على أساس الهيكل كما تم تحليله من قبل المحرر.

أيا من فيم قابلة للطي أو ايماكس قابلة للطي يلبي هذه الحاجة بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top