تخطَّ إلى المحتوى

تطوير برمجيات مخصّصة

تطوير برمجيات مخصّصة بـ Next.js

برمجيات تُبنى لشركة واحدة بدل أن تُهيّأ من منتج جاهز. ما تكلّفه، وما تمنحه، والحالات التي يكون فيها الشراء الجاهز هو الجواب الأفضل.

البرمجية المخصّصة هي برمجية موجودة لأن شركةً تفعل شيئًا بعينه، ولا يوجد منتج يحاكي ذلك الشيء بدقة تكفي ليستحق ليّه.

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

ما يعنيه هذا عمليًا

العمل يأخذ دائمًا تقريبًا واحدًا من ثلاثة أشكال.

نظام تشغيلي - ما يعمل فريق داخله طول اليوم. عروض أسعار، أعمال، قضايا، مخزون، جداول، موافقات. وهو يحلّ غالبًا محلّ مجموعة جداول بيانات، أو تطبيق موروث لا يستطيع أحد تغييره، أو كليهما في الوقت نفسه.

سطح يراه العملاء فوق أنظمة لم تُصمَّم يومًا ليكون لها سطح. بوابة، صفحة تتبّع، حساب خدمة ذاتية، حجز. والجزء الصعب نادرًا ما يكون الشاشة؛ بل أن البيانات وراءها تسكن شيئًا قديمًا وتجيب ببطء.

أداة داخلية موجودة لأن منتجًا لا يستطيع فعل الشيء الوحيد المهم. وهذه أصغر المشاريع وأكثرها عائدًا في الغالب، لأن البديل أسبوعُ عملِ شخص.

لماذا الرسم على الخادم وليس تطبيق صفحة واحدة

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

تطبيق App Router يُلغي تلك الطبقة في أكثر الشاشات. يقرأ الخادم البيانات ويرسم الصفحة. ويستلم المتصفح وسمًا جاهزًا بدل حزمة تطلب بعد ذلك البيانات التي تحتاجها. ولا تُرسَل جافاسكربت إلا حيث يحتاجها تفاعل فعلًا، وفي نظام تشغيلي هذه أقلية الشاشات.

والآثار عادية وتتراكم. لغة واحدة في التطبيق كله بدل لغتين. مستودع واحد ونشر واحد بدل اثنين يترقّمان مستقلين. صفحة صحيحة حين تصل بدل صحيحة بعد لحظة. وكود أقل بكثير، وهو الطريقة الموثوقة الوحيدة لتقليل كلفة السنة الثانية.

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

مكان سكن البيانات يُحسَم في الوقت نفسه

التطبيق المخصّص في معظمه نموذج بيانات بشاشات عليه، فالمخطّط ليس تفصيلة تُترك لاحقًا.

والقرارات التي يصعب عكسها هي العادية. ما هو كيان وما هو حقل. أين يُخزَّن المال والتاريخ وبأي نوع. هل يمكن حذف سجل أم إحلال غيره فقط. وهل الحالة عمود أم تاريخ انتقالات - وهذا الفرق بين نظام يستطيع قول ما جرى وآخر لا يصف إلا الحاضر.

وPostgreSQL هو الخيار الافتراضي في هذه الأعمال، لأسباب موجودة في صفحة PostgreSQL. وهو افتراضي لا قاعدة، والفخّ التشغيلي الحقيقي الواحد - عدد الاتصالات في بيئة بلا خوادم - مشكلة معروفة لها جواب معروف لا مفاجأة.

كيف يسير العمل

على مراحل، تنتهي كل واحدة بشيء منشور.

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

ونطاق كل مرحلة يُثبَّت كتابةً قبل بدئها. ويراجع مطوّروكم طلبات الدمج من الأسبوع الأول إن كان لديكم مطوّرون، لأن هكذا تنتقل الأعراف، وهي الصورة الوحيدة التي يبقى فيها الكود قابلًا للصيانة بعدنا.

ما تحصلون عليه

في نهاية كل مرحلة تطبيق منشور تستطيعون استخدامه - لا بيئة عرض ولا فرع.

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

متى يكون هذا المشروع الخطأ

يستحق القول صريحًا، لأن الجواب أحيانًا لا.

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

وإن كان المطلوب بضع صفحات ونموذج تواصل، فذلك موقع. ونظام إدارة محتوى بقوالب جيدة يخدمكم أفضل من تطبيق بلا ميزانية صيانة وراءه.

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

وإن لم يملك أحد في الداخل النتيجة - لا شخص يتحسّن عمله إذا نجحت - فستُترك بصرف النظر عن جودة بنائها. وهذا أكثر فشل نراه، والوحيد الذي لا علاقة له بالهندسة.

النطاق والشروط

نموذج التعاقد
نطاق محدّد يُتفق عليه كتابةً قبل بدء العمل. وليس أجرًا يوميًا مقابل قائمة مفتوحة.
السعر والمدة
يُحدَّدان لكل مشروع بعد تحديد النطاق، ويُعرضان معًا قبل بناء أي شيء.
ما نحتاجه منك
شخص واحد يملك اعتماد القرارات، ووصول إلى مستودعك ونظام تتبّع المهام لديك.
غير مشمول
كل ما يقع خارج النطاق المتفق عليه. فيصير نطاقًا مستقلًا لا أمر تغيير.
تكاليف الأطراف الثالثة
الاستضافة والتراخيص ورسوم الواجهات البرمجية واشتراكات الخدمات السحابية تتعاقد عليها وتدفعها أنت.
الفوترة
⁦Codefacture Yazılım A.Ş.⁩، تركيا. باليورو أو الدولار أو الجنيه الإسترليني عبر حوالة بنكية، دون ضريبة قيمة مضافة تركية على الخدمات المصدَّرة.

الأسئلة الشائعة

ما الذي يُعدّ برمجية مخصّصة وما الذي يُعدّ موقعًا فقط؟
أن تحفظ حالةً يعود إليها أحد. الموقع ينشر معلومات؛ أما البرمجية فلها سجلات وأدوار ومسار وتاريخ - عرض سعر يصير أمرًا، وقضية يعيد أحد فتحها الشهر القادم، ولوحة هي الحقيقة التشغيلية لا تقريرًا عنها. فإن كان المطلوب صفحات ونموذجًا يرسل بريدًا، فذلك موقع وينبغي أن يُبنى كموقع. وإن كان الناس سيعملون داخله كل يوم، فهو برمجية، والقرارات مختلفة من الأسبوع الأول.
لماذا Next.js لشيء ليس موقعًا عامًّا؟
لأن معظم البرمجيات المخصّصة اليوم تُستخدم عبر متصفح، وتطبيق المتصفح كان يعني واجهة أمامية منفصلة وواجهة برمجية منفصلة ونشرتين. أما التطبيق المرسوم على الخادم فيُلغي تلك الطبقة في أكثر الشاشات - يقرأ الخادم البيانات ويرسل الصفحة، وجافاسكربت فقط حيث يحتاجها التفاعل. لغة واحدة ومستودع واحد ونشر واحد، وكود أقل بكثير كان موجودًا ليحرّك البيانات بين جزأين من نظامكم نفسه.
هل هي أرخص من شراء منتج؟
في السنة الأولى لا تقريبًا، وهذه هي المقارنة الصادقة. المنتج يكلّف اشتراكًا ويمنحكم تصوّر شخص آخر لعملكم. والمخصّص يكلّف بناءً ويمنحكم تصوّركم. يستحق عندما يكون العملية نفسها هي ما تتنافسون به، أو عندما يجعل الحجم العمل اليدوي مكلفًا، أو عندما يحتاج المنتج من التهيئة والحلول الملتوية ما يعني أنكم تصونون برمجية أصلًا دون أن تملكوها.
كيف يُحدَّد النطاق والسعر؟
على مراحل، كل مرحلة تُثبَّت كتابةً قبل بدئها وتُسعَّر لكل مرحلة لا بأجر يومي. المرحلة الأولى صغيرة بقصد وتنتهي بشيء منشور تستطيعون استخدامه، لأن تقديرًا لاثني عشر شهرًا يُعطى في الأسبوع الأول تخمين ويعرف ذلك كل من في الغرفة. وما يحرّك الرقم عدد الشاشات وعدد الأنظمة التي يجب ربطها ومقدار البيانات القائمة التي تحتاج تنظيفًا، لا إطار العمل.
لمن يكون الكود؟
لكم، من أول commit، في مستودعكم أو مُسلَّمًا من مستودعنا بتاريخ git سليم. وقرارات المعمار تُكتب وهي تُتخذ، لأن وثيقة تسليم تُحرَّر في النهاية وثيقة لا يقرؤها أحد ولا يستطيع أحد التحقق منها.
اتصل بنا+1 848 272 7583واتساب+90 850 308 5436البريدinfo@codefacture.comصفحة التواصل