CodeGym /مدونة جافا /Random-AR /تحليل الأخطاء الشائعة التي يرتكبها المبرمجون المبتدئون، ص...
John Squirrels
مستوى
San Francisco

تحليل الأخطاء الشائعة التي يرتكبها المبرمجون المبتدئون، ص. 2

نشرت في المجموعة
مرحبا مرة أخرى، الجميع! سنستمر في النظر في المشكلات التي قد يواجهها المبرمج الشاب وغير الناضج في وظيفته الأولى. الجزء الأول يمكن العثور عليه هنا . تحليل الأخطاء الشائعة التي يرتكبها المبرمجون المبتدئون، ص.  2 - 1فلنكمل.

13. عدم الالتزام بإرشادات أسلوب الترميز.

عادةً ما تلتزم فرق التطوير بأسلوب ترميز واحد. أي أن المطورين الفرديين يتبعون قواعد معينة مكتوبة أو غير مكتوبة لضمان عدم اختلاف أسلوب الترميز الخاص بهم عن الآخرين. لا تحاول أن تميز نفسك بأسلوب ترميز مميز: فهذا لا يجعلك تبدو جيدًا. إذا كنت جديدًا في المشروع، فيجب عليك معرفة ما إذا كان هناك أي وثائق تحدد الإرشادات العامة لأسلوب البرمجة على الفور. قد تكون هناك بعض ملفات الأنماط لمشروعك المحدد والتي تحتاج إلى طلبها واستيرادها إلى IDE الخاص بك (على سبيل المثال، IntelliJ IDEA)، بحيث يمكن لـ IDE توفير تلميحات نمط الترميز الصحيحة. على سبيل المثال، قد يتطلب النمط استخدام المعدل النهائي حيثما أمكن ذلك. يتيح ملف النمط لـ IntelliJ IDEA تمييز أي متغيرات لا يتم احترامها باللون الأصفر.

14. الإحباط بسبب الأخطاء

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

15. عدم تطبيق سلامة الخيط.

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

16. الإرهاق

تحليل الأخطاء الشائعة التي يرتكبها المبرمجون المبتدئون، ص.  2 - 3
من فيلم نادي القتال (1999)
ربما يعتقد كل مبتدئ أنه من خلال العمل في الليل، سيبدأ في إكمال المزيد من المهام وسيتم تكليفه بمزيد من المسؤولية. كنت أعتقد ذلك أيضًا، لكن ليس بعد الآن. لقد لاحظت أنه تأتي نقطة عندما تصل إلى الحد الأقصى الخاص بك، عندما تتوقف عن القدرة على التفكير بشكل مناسب. تبدأ في الشعور بالملل الشديد وتشعر بالضباب العقلي. يستغرق الأمر ساعة واحدة للقيام بالأشياء التي يمكنك القيام بها في 10 دقائق إذا كان عقلك نشيطًا. وبدون استثناء تقريبًا، بعد تجاوز هذا الخط من التعب، تواجه بعض المشكلات التي تبدو مستعصية على الحل. ولكن عندما تأتي إلى العمل في صباح اليوم التالي، يمكنك حل المشكلة في غمضة عين. لذلك عندما تشعر أنك وصلت إلى هذه المرحلة، لا تسهر. فقط اذهب إلى المنزل واستمتع براحة جيدة. بعد كل شيء، إذا بقيت في مكتبك حتى وقت متأخر من الليل، فلن تتمكن فقط من تحقيق نتائج رائعة بشكل خاص خلال ساعات العذاب هذه، ولكنك في الوقت نفسه تخاطر بالحصول على راحة سيئة (غير كافية) قبل يوم العمل التالي، عندما سوف المسمار مرة أخرى. فكر في صحتك: هل يستحق تقويضها بهذه الطريقة في بداية حياتك المهنية؟ لا أعتقد ذلك. إنه وقت مكلف للمرض. وفكر في صاحب العمل الخاص بك. من خلال إرهاق نفسك، فإنك تجعل الأمور أسوأ ليس فقط بالنسبة لك، ولكن أيضًا بالنسبة لصاحب العمل. من يحتاج إلى موظف يشعر بالنعاس الدائم، ولا يستطيع، بسبب الإرهاق، تنفيذ أبسط خوارزمية الفرز؟ نعم، هناك بلا شك أوقات يكون لديك فيها موعد نهائي ساخن، وأوقات تسوء فيها الأمور، وأوقات - وهذا هو المفضل لدي شخصيًا - "نحن بحاجة إلى هذا بالأمس". لكن هذه المواقف نادرة بشكل عام، وبمجرد تجاوزها، عليك الجلوس والتفكير بعناية في كيفية حدوثها وكيفية تجنبها في المستقبل.

17. إهمال مهارات اللغة الإنجليزية

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

18. السعي وراء التكنولوجيا العصرية

عندما يبدأ المطورون طريقهم، غالبًا ما يحاولون مواكبة أحدث التقنيات. غير أن الشيء الصحيح الذي ينبغي عمله؟ من ناحية، نعم: أحدث التقنيات والمشاريع ... ولكن هل يستحق الأمر أن نجعل ذلك أولوية قصوى؟ ربما يكون من الأفضل متابعة "مجموعة الأدوات الكلاسيكية" لمتخصص في مجالك؟ الجديد أمر جيد بالتأكيد، لكن يجب ألا تنسى التقنيات الأساسية في مجال عملك. وعندها فقط، بعد أن تكتسب القليل من الخبرة والمعرفة العميقة بالأساسيات، يمكنك تجربة شيء جديد. ضع في اعتبارك أيضًا أن التقنيات الجديدة قد تكون متفوقة في بعض النواحي الدقيقة، لكنها قد تفقد مزاياها في طرق أخرى. وإلى أن يفهم المطور المبتدئ هذه المقايضات، فمن الأفضل الالتزام بالحلول التي تم اختبارها عبر الزمن. على سبيل المثال، إذا كان أحد المبرمجين يقوم بتطوير تطبيق يتفاعل مع بعض البيانات، فلا تتعجل في استخدام أحدث حلول NoSQL لمجرد أنه رائج. من المرجح أن تحتوي قاعدة بيانات SQL العادية المجربة والصحيحة (MySQL، وPostrgreSQL، وما إلى ذلك) على وثائق وحلول تفصيلية حول StackOverFlow لأية مشكلات محتملة :)

19. تعلم عدة تقنيات و/أو لغات مختلفة في وقت واحد

تحدثنا أعلاه عن المبتدئين الذين يحاولون تعلم التقنيات العصرية. حسنًا، ماذا عن دراسة العديد من التقنيات أو اللغات في وقت واحد؟ من الواضح أنك سمعت عن مبرمجين يعرفون أكثر من لغة برمجة وأتقنوا العديد من التقنيات. لكنني سأشير سريعًا إلى أن هؤلاء الأشخاص ليسوا جديدًا على البرمجة. هؤلاء هم الأشخاص الذين لديهم سنوات عديدة من الخبرة وراءهم. لقد أتقنوا تقنيتهم ​​الأصلية ثم ذهبوا إلى أبعد من ذلك. يجب على المبتدئين الذين يحاولون إتقان كل شيء مرة واحدة أن يتذكروا المثل الرائع: "طارد أرنبين ولن تصطاد أيًا منهما". قد تكون النتيجة أنك لن تتقن أي موضوع بشكل جيد، بل ستتعلم المواضيع بشكل سطحي فقط. سيكون هناك طلب أكبر على المتخصص الذي يعرف لغة واحدة بعمق أكثر من الشخص الذي يعرف القليل عن كل شيء. لذلك، إذا كنت تريد معرفة العديد من اللغات والتقنيات، فأنت بحاجة إلى التعامل معها بحكمة. للبدء، تحتاج إلى اختيار لغة أساسية أساسية يجب أن تتعلمها بعمق. وعندها فقط يجب أن تبدأ في دراسة مجالات أخرى. على سبيل المثال، كن خبيرًا في لغة Java، ثم تعلم لغة Python كلغة ثانية. بعد ذلك، قد تتعلم شيئًا عن التفاعل/الزاوية للواجهة الأمامية. في هذه الحالة، نحن نتحدث عن تقنيات غير قابلة للتبديل، مثل C# وJava، ولكنها متكاملة، مما يعمل على توسيع فرصك المهنية. لكني أكرر مرة أخرى: لا يجب أن تحاول تعلم كل شيء دفعة واحدة. عليك أن تذهب بالتتابع. قبض على أرنب واحد في كل مرة، إذا جاز التعبير.

20. صياغة الأهداف بشكل غير صحيح

كيف تحدد الأهداف لنفسك؟ تصبح مطورًا رائعًا؟ تذكر هذا مرة واحدة وإلى الأبد: أنت بحاجة إلى تحديد أهداف ملموسة، أو بعبارة أخرى - أهداف قابلة للتحقيق. ما الذي أتحدث عنه؟ على سبيل المثال، قمت بتحديد الهدف: "أريد أن أصبح غنيا". ولكن كيف يمكنك معرفة ما إذا كنت قد حققت هذا الهدف؟ أو كيف تقيس مدى قربك من تحقيق ذلك؟ حسنًا، إذا حددت الهدف "أريد أن أجني مليون دولار"، فهذا أكثر وضوحًا، أليس كذلك؟ بمجرد حصولك على 10000 دولار أمريكي، تكون قد اقتربت من هدفك بمقدار 10000 دولار أمريكي - لم يتبق سوى 990000 دولار أمريكي. لا يزال هناك الكثير لتحقيقه، ولكن يمكنك أن تشعر بالتقدم الذي تحرزه وتفهم مكان خط النهاية، لذلك سيكون لديك الدافع للاستمرار. فيما يتعلق بحياتك المهنية، ماذا عن تحديد هدف ملموس أكثر لنفسك؟ على سبيل المثال: أريد أن أصبح قائدًا للفريق. أو أحد كبار المطورين. أو في النهاية مهندس معماري. حسنًا، يجب تقسيم كل مهمة كبيرة إلى مهام فرعية صغيرة. لا تصبح قائدًا للفريق في بداية حياتك المهنية. حدد مواعيد نهائية إن أمكن ومناسبة، وركز على المرحلة الحالية.
  1. إذا كنا نتحدث عن أن نصبح مطورًا كبيرًا ، فسيكون الهدف الصغير الأول هو العثور على تدريب داخلي أو وظيفة كمطور مبتدئ في إحدى الشركات.
  2. بعد ذلك، يمكنك تحديد أهداف لتعميق معرفتك بتقنيات معينة. فيما يتعلق بجافا، يمكنك الاستعداد للحصول على شهادة المستوى الأول من Oracle. نحدد إطارًا زمنيًا لإعدادنا ومعالجة الهدف.
  3. بعد ذلك، على سبيل المثال، قد تحدد هدفًا لتحسين مستواك في اللغة الإنجليزية بمستوى واحد (على سبيل المثال، من B1 إلى B2). نرسم خطة التعلم، ونحدد الوقت، ونتحرك نحو الهدف.
هذه هي الطريقة التي يمكننا بها تحقيق هدفنا النهائي خطوة بخطوة (مع اكتساب خبرة في تطوير البرمجيات).

21. النظرية بلا ممارسة

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

22. الكمالية المفرطة

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

23. عدم التفكير في الهندسة المعمارية

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

24. متلازمة المحتال

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

25. نادراً ما يلتزم

تذكر أن تقوم بالالتزامات كثيرًا! ليس كل نصف ساعة، انتبه. إذا قضيت أسبوعًا في تنفيذ بعض الوظائف، فلا ينبغي عليك تنفيذ التزام واحد ليلة الجمعة، ولكن، على سبيل المثال، خمس التزامات. يمكن تقسيم أي مهمة كبيرة تقريبًا إلى مهام أصغر للراحة. لذلك تقوم بإكمال هذه المهام الصغيرة والالتزام بها. ولا تنس إرسال هذه الالتزامات إلى الخادم البعيد على الفور. بخلاف ذلك، قد تقوم بالتزامات طوال الأسبوع ثم يحدث عطل في جهاز الكمبيوتر الخاص بك يوم الجمعة في وقت الغداء، ثم تخسر أسبوعًا كاملاً دون مقابل! ولكن إذا قمت بتحميل التزاماتك إلى خادم بعيد، فسوف تقوم فقط بسحب الفرع الذي يحتوي على التزامك الأخير إلى كمبيوتر آخر وتستمر في العمل. شيء آخر: لا ترسل وظائف جديدة إلى خادم الإنتاج المباشر ليلة الجمعة. ثق بي. لا تحتاج لذلك. من المحتمل جدًا أن تظهر أخطاء غير متوقعة، وسوف تقضي عطلة نهاية الأسبوع في إصلاحها. وهذا ليس ممتعا. أنت بحاجة إلى الراحة في عطلة نهاية الأسبوع. أعتقد أن هذا كل شيء لهذا اليوم. ملاحظة: نصيحة أخيرة: اكتب الكثير من التعليمات البرمجية. PPS اكتب كمية كبيرة جدًا من التعليمات البرمجية، لأن هذه هي الطريقة الوحيدة لاكتساب الخبرة التي تشتد الحاجة إليها.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION