إرغونوميا البرمجة: كيف تحافظ على طاقتك الذهنية وتُبرمج بكفاءة أعلى

دقائق القراءة: 5

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

إضاءة بناء الجملة (Syntax Highlighting) المتطورة: أبعد من مجرد الألوان

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

لقطة شاشة لمحرر Visual Studio Code مع إضاءة بناء الجملة المحسّنة، تُظهر ألوانًا مختلفة للأقواس وكتل التعليمات البرمجية.

فيما يلي بعض الإضافات المفضلة لدي التي تُحدث فرقًا كبيرًا:

  • Bracket Pair Colorizer: تُبرز أزواج الأقواس المتتالية بألوان مختلفة ومتطابقة، مما يجعل مهمة البحث بين الأقواس المتداخلة شيئًا من الماضي.
  • TODO Highlight: تُزيل بشكل فعال أي عذر قد يكون لديك لارتكاب تعليقات TODO و FIXME عن طريق الخطأ، وذلك بجعلها سهلة الرؤية للغاية. يمكنك حتى إضافة كلماتك المفتاحية المخصصة لتسليط الضوء عليها (أقترح wtf، لكنك لم تسمع هذا مني).
  • Indented Block Highlighting: تضع إضاءة سهلة التمييز ولكن غير مزعجة خلف كتلة التعليمات البرمجية الحالية ذات المسافة البادئة، حتى تتمكن من رؤية أين ينتهي if هذا ولماذا لا يعمل else الأخير على الإطلاق.
  • Highlight Line: تضع خطًا ساطعًا (أحيانًا ساطعًا جدًا) حيث تركت مؤشرك آخر مرة. يمكنك تخصيص مظهر الخط – أنا أضبط borderWidth الخاص بي على 1px.

المظهر الموضح في Visual Studio Code أعلاه هو Kabukichō، وقد قمت بإنشائه.

استخدام خطافات Git (Git Hooks) لتبسيط سير العمل

لقد قدمت لكم سابقًا قائمة تحقق تفاعلية لـ pre-commit والتي كانت ممتعة ومفيدة لتعزيز جودة التزاماتك. لكن هذا ليس كل شيء! خطافات Git هي نصوص برمجية تعمل تلقائيًا في نقاط محددة مسبقًا في سير عملك. استخدمها جيدًا، ويمكنك توفير قدر كبير من طاقتك الذهنية.

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

أقضي معظم وقتي هذه الأيام في البرمجة بلغة Python، لذا إليك ملف .pre-commit-config.yaml المفضل لدي حاليًا:

fail_fast: true
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.1.0 # Use the ref you want to point at
    hooks:
      - id: detect-aws-credentials
      - id: end-of-file-fixer
      - id: trailing-whitespace
  - repo: https://github.com/psf/black
    rev: 19.3b0
    hooks:
      - id: black
  - repo: https://github.com/asottile/blacken-docs
    rev: v1.7.0
    hooks:
      - id: blacken-docs
        additional_dependencies: [ black==19.3b0 ]
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.780
    hooks:
      - id: mypy
  - repo: local
    hooks:
      - id: isort
        name: isort
        stages: [ commit ]
        language: system
        entry: isort
        types: [ python ]
      - id: black
        name: black
        stages: [ commit ]
        language: system
        entry: black
        types: [ python ]

هناك العديد من الخطافات المدعومة التي يمكنك استكشافها لتناسب احتياجاتك.

استخدام أنظمة الأنواع (Type Systems) لتقليل الأخطاء

إذا كنت تكتب بلغات مثل Python و JavaScript، فامنح نفسك هدية مبكرة وابدأ في استخدام نظام أنواع ثابت (Static Type System). لن يساعدك هذا فقط في تحسين طريقة تفكيرك في التعليمات البرمجية، بل يمكن أن يساعد أيضًا في توضيح أخطاء الأنواع قبل تشغيل سطر واحد من الكود. بالنسبة لـ Python، أحب استخدام mypy للتحقق من الأنواع الثابتة. يمكنك إعداده كخطاف pre-commit (انظر أعلاه) وهو مدعوم أيضًا في Visual Studio Code.

أما TypeScript فهي طريقتي المفضلة لكتابة JavaScript. يمكنك تشغيل المترجم من سطر الأوامر باستخدام Node.js، ويعمل بشكل جيد جدًا مع Visual Studio Code مباشرة، وبالطبع هناك خيارات متعددة لتكامل الإضافات.

الخلاصة التقنية

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *