العودة
SiTech
حِيَل برمجية صغيرة: لماذا تُثمر قطع المعرفة الصغيرة كل يوم
SiTech AI Team3 წთ. საკითხავი

حِيَل برمجية صغيرة: لماذا تُثمر قطع المعرفة الصغيرة كل يوم

يرى ويل كيلهر أن جزءًا كبيرًا من إنتاجية المهندس اليومية يأتي من قطع معرفية صغيرة قائمة بذاتها — من بحث git pickaxe إلى دلاء المقاييس اللوغاريتمية. ويقترح مشاركة حيلة واحدة كل يوم مع الفريق.

لماذا تهمّ قطع المعرفة الصغيرة

يرى ويل كيلهر في تدوينة جديدة أن نسبة مفاجئة من الإنتاجية الهندسية اليومية تأتي من قطع معرفية صغيرة: أن تعرف بوجود ميزة في اللغة، أو أن تدرك أن تأخرًا غير مفسَّر في TCP مرتبط على الأرجح بخوارزمية Nagle، أو أن تتذكر أمر git الصحيح للخروج من مأزق، أو أن تعرف حيلة لإعادة كتابة ملف. بعضها لا يحتاج تقريبًا إلى بنية ذهنية مساندة: لا تحتاج إلى معرفة Python لتشغيل python3 -m http.server في مجلد، ومع ذلك يصبح العمل أسهل قليلًا.

في الطرفية وفي Git

تبدأ أمثلته من الطرفية. يبحث Ctrl+R في سجلّ الأوامر، وتثبيت fzf يحوّل ذلك إلى بحث ضبابي؛ ويستبدل atuin سجلّ الطرفية بقاعدة SQLite قابلة للبحث؛ ويتيح per-directory-history التبديل بين البحث في الأوامر المنفذة في المجلد الحالي والبحث في كل الأوامر السابقة. أما في Git فإن git log -S pattern — المعروف بـ pickaxe — يسرد كل التزام (commit) أضاف نصًا معينًا أو حذفه، ويصفه الكاتب بأنه مفيد للغاية في قواعد الشيفرة القديمة. ويشبهه git log -G لكنه يُظهر أيضًا الحالات التي نُقل فيها السطر. أما git checkout - فيعيدك إلى HEAD السابق، كما يعيدك cd - إلى المجلد السابق.

ويرى أيضًا أنك على الأرجح لا تحتاج إلى find: فكثير من أوامر find يمكن استبدالها بأنماط glob مثل **/*.md، وهي مدعومة مباشرة في معظم الأصداف، أما bash فيحتاج أولًا إلى shopt -s globstar. وبالمثل، يقول إن الأغلبية سيفضّلون ripgrep بدل grep أو ack أو ag. أما الإكمال التلقائي المتقدم في zsh، كما يلاحظ، فليس مفعّلًا افتراضيًا ويحتاج أسطرًا قليلة لتفعيله.

قواعد البيانات والمقاييس وJavaScript

بعض الحِيَل تتعلق بالحصول على الجواب أسرع. فـ SELECT من دون FROM يعمل في SQL وهو طريقة سريعة لاختبار سلوك دالة أو لتذكّر ما يعيده SELECT TRUE <> NULL. ويدعم كل من PostgreSQL وMySQL الأمر explain analyze، الذي ينفّذ الاستعلام فعلًا ويعطي معلومات عن أدائه أكثر بكثير من explain العادي. وفي التعبيرات النمطية يحدد \b حدود الكلمة ويسهّل البحث عن بداية الكلمة أو نهايتها. وفي المقاييس، يساعد تسجيل دلو لوغاريتمي مثل Math.floor(Math.log10(count)) على تكوين فكرة عن توزيع القيم لا عن المتوسط وحده.

وفي جانب JavaScript يشير إلى Array.flatMap وObject.entries وPromise.withResolvers كميزات حديثة تستحق المعرفة، وإلى حيلة واحدة في Node.js بأثر كبير: إنشاء https.Agent وتمريره إلى نداءات fetch يُبقي الاتصال بمورد خارجي مفتوحًا، وهو ما قد يكون له أثر بالغ على زمن الاستجابة.

معرفة الشركة مصنوعة من المادة نفسها

يشير كيلهر إلى أن المعرفة داخل الشركة تتخذ هذا الشكل أكثر: أي مصدر بيانات تستخدم عند تتبّع مشكلة ما، ومن يعرف مجالًا بعينه ويساعده بسعادة، وأين توجد الوثائق الجيدة، وأي إشارة تعني أن الخدمة تحتاج إلى توسيع يدوي، وما أمر إعادة التشغيل التدريجي، وأي أداة تجعل مشكلة مملة قابلة للبرمجة النصية. وفي شركة سابقة كان يشارك حيلة واحدة كل يوم مع فريق الهندسة على Slack، تقنية كانت أو خاصة بالشركة. وحتى من يعرفون تسعًا من عشر حِيَل وجدوا الحيلة العاشرة مفيدة، وكانت حيلة واحدة يوميًا الجرعة الصحيحة لعدم إغراق الناس. ويقترح على المهندسين الأكبر أن يفكروا في فعل شيء مشابه.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.