Coding with Firas
الـ Base de données هي قلب السيستم، ولو هي رزينة، الـ Application الكل باش تكون رزينة 🐢. هذي أهم النصائح (Best Practices) باش تخلي الـ Database متاعك طيارة وتتجنب المشاكل الشائعة:
♦ 1. Stop using SELECT * الـ SELECT * هي عدو الـ Performance. ما تجيبش الـ Colonnes الكل وانت حاجتك كان بالـ ID والـ Name. كل ما تنقص الـ Data اللي ماشية في الـ Network، كل ما الـ Response Time يكون أسرع.
♦ 2. Indexing is an Art الـ Index موش سحر تحطو وين يجي.
حط Index: على الـ Colonnes اللي ديما تستعملهم في الـ WHERE، JOIN، والـ ORDER BY.
رد بالك: كثرة الـ Indexes ترزن الـ INSERT والـ UPDATE (خاطر الـ DB لازمها تعمل Update للـ Index زادة). الميزان لازم يكون دقيق.
♦ 3. The N+1 Problem أشهر غلطة تصير مع الـ ORMs (كيف Hibernate, TypeORM, Prisma). بدل ما تجيب الـ Parent والـ Children متاعو في Query وحدة (بستعمال JOIN أو Eager Loading)، تلقى روحك عملت 1 Query للـ Parent و N Queries للـ Children. ثبت مليح في الـ Logs متاعك!
♦ 4. Transactions are Mandatory أي عملية فيها تغيير على أكثر من Table (مثلاً: تنقص Stock وتزيد في الـ Sales)، لازم تكون وسط Transaction. يا كل شيء يتعدى (Commit)، يا كل شيء يرجع كيف ما كان (Rollback) لو صارت غلطة. ما تخليش الداتا متاعك "Inconsistent".
♦ 5. Pagination Strategy في الـ Tables الكبار (Millions of rows)، ابعد على الـ Offset Pagination (LIMIT 10 OFFSET 100000). كل ما تقدم، الـ DB باش تقرأ الـ Rows اللي قبل الكل وطيشهم. استعمل Cursor-based Pagination (يعني: أعطيني 10 سطور من بعد آخر ID وصلتو).
♦ 6. Soft Delete vs Hard Delete في أغلب الحالات، ما تفسخش الداتا بالرسمي (DELETE). استعمل is_deleted = true أو deleted_at. هكا تنجم ترجع الداتا لو صارت غلطة، وتحافظ على الـ History والـ Integrity متاع الـ Relations.
♦ 7. Connection Pooling فتح وتسكير الـ Connection مع الـ DB ياخو برشا وقت. تأكد اللي الـ Backend متاعك يستعمل في Connection Pool باش يعاود يستعمل الـ Connections المحلولة، وهكا تربح برشا Performance.
شنوا أكثر مشكلة واجهتكم في الـ Databases؟ وكيفاش حليتوها؟ 👇
تخيل تخدم أقل، وتنجز أكثر. مش حلم، أتمتة مهامك اليومية هي الحل!
شوف، هذي الحكاية اللي كنت نحب نعرفها كيّ نبدّا في الـ freelancing متاعي. Honestly، اكتشفت n8n متأخر شوية، وندمت على كل وقت ضاع وأنا نخدم يدوياً!
Met a Tunisian startup founder who hired a part-timer just to update their project board. Showed them n8n's Trello + Slack integration. Saved 500 TND/month and redirected that person to actual strategic work.
ياسر من الـ freelancers و الشركات الصغرى هنا في تونس وفي الـ MENA عموماً يطيحوا في فخ الـ repetitive tasks. تظل تعاود نفس الـ operations كل يوم، كل أسبوع، وهذا يقتل الـ productivity ويخليك تخسر برشا وقت كان تنجم تستغلّه في حاجات أهم. سواء كانت invoices تبعثها، ولا posts تنشرها على الـ social media، ولا data تجمعها من APIs مختلفة. الوقت هذا راهو فلوس.
أنا كـ automation engineer، ديما نحب نلقى الـ solutions اللي تخلي الـ processs أسهل وأسرع. و بصراحة، n8n من أقوى الـ tools اللي لقيتها للـ automation. هو مفتوح المصدر وتقدر تستعمله مجاناً (self-hosted). صحيح، ماهوش الـ solution الوحيد ولا الـ perfect لكل حاجة، أما بالنسبة لـ 90% من المهام المتكررة، صدقني يجيب الحل. يخليك تربط بين أكثر من 400 تطبيق وخدمة بالـ visual workflow builder.
مثلاً، لو تحب تجمع بيانات من API معين وتبعتها لـ Google Sheet، ولا حتى تبعث email notification، الحكاية بسيطة:
— Firas 🇹🇳
Click here to claim your Sponsored Listing.
Category
Contact the public figure
Telephone
Website
Address
Tunis