هندسة البرمجيات
اختيار التقنيات، وأطر الواجهة الأمامية، والعربية والكتابة من اليمين إلى اليسار، والتطبيقات الأصلية أو متعددة المنصات، والسحابة، وأدوات الاختبار، والأنظمة القديمة.
12 سؤالًا
كيف تختارون التقنيات المستخدمة؟
ننطلق مما يستطيع فريقك تشغيله وتوظيف الكفاءات له، ومما تستخدمه أنظمتك الأخرى، ومما يجب أن تؤديه البرمجيات. ويعني ذلك في معظم برمجيات الأعمال لغة شائعة مثل TypeScript أو Java أو C# أو Python، وقاعدة بيانات علائقية مثل PostgreSQL أو SQL Server، والسحابة التي تستخدمها حاليا. نتجنب الأدوات المتخصصة النادرة ما لم تحل مشكلة حقيقية، ونوثق كل خيار وأسبابه.
ما إطار عمل الواجهة الأمامية الذي تستخدمونه؟
نستخدم React مع Next.js في معظم التطبيقات الجديدة، لأنه يدعم العرض على الخادم، ويتمتع بأدوات قوية، ويعرفه عدد كبير من المهندسين. ونعمل أيضا مع Angular وVue، ونواصل العمل بإطار العمل الذي تستخدمه حاليا عندما يكون ذلك الخيار المنطقي. يعتمد القرار على مهارات فريقك، وما يجب أن يؤديه التطبيق، وما ستتولى صيانته لاحقا.
هل يمكن أن يدعم التطبيق العربية ولغات أخرى؟
نعم. نفصل كل النصوص عن الشيفرة لتمكن ترجمتها، ونبني تخطيط الصفحات بالخصائص المنطقية لتنعكس بشكل صحيح في اللغات التي تكتب من اليمين إلى اليسار مثل العربية. وتتبع التواريخ والأرقام والعملات إعدادات كل لغة ومنطقة. نخطط لذلك منذ البداية، لأن إضافة لغة ثانية إلى تطبيق بني للغة واحدة تتطلب جهدا أكبر بكثير.
هل نبني تطبيقا أصليا أم متعدد المنصات؟
تمنح التطبيقات الأصلية المكتوبة بلغتي Swift وKotlin أوسع وصول إلى قدرات الجهاز وأقرب توافق مع كل منصة. أما التطبيقات متعددة المنصات المبنية بإطاري React Native أو Flutter فتشترك في معظم شيفرتها بين iOS وAndroid، ما يخفض تكلفة بنائها وتغييرها. نوصي بالتطبيق الأصلي عندما يعتمد التطبيق اعتمادا كبيرا على الجهاز، كأجهزة الدفع أو الوسائط المعقدة، وبالتطبيق متعدد المنصات لمعظم تطبيقات الأعمال والمستهلكين.
هل يمكن أن يعمل التطبيق دون اتصال؟
نعم، حيث تسمح رحلات الاستخدام بذلك. نخزن البيانات التي يحتاج إليها المستخدم على الجهاز مشفرة، ونحتفظ بتغييراته في قائمة انتظار حتى يعود الاتصال. وتحدد قواعد المزامنة ما يحدث عندما يتغير السجل نفسه في مكانين. نصمم هذه القواعد معك، لأنها قرارات عمل بقدر ما هي قرارات تقنية.
أي مزود خدمات سحابية ينبغي أن نستخدم؟
عادة المزود الذي تستخدمه بالفعل، ما لم يكن هناك سبب واضح للتغيير. فكل من Amazon Web Services وMicrosoft Azure وGoogle Cloud يشغل أحمال عمل المؤسسات جيدا. والعوامل الحاسمة هي عقودك ومهاراتك القائمة، والخدمات المدارة التي تحتاج إليها، وقواعد إقامة البيانات، وطريقة اتصال أنظمتك الأخرى. نعمل على المزودين الثلاثة، ونحصر الشيفرة الخاصة بمزود بعينه في المواضع التي تستحق ذلك.
ما أدوات الاختبار التي تستخدمونها؟
نستخدم الأدوات التي تلائم تقنياتك وفريقك: Playwright أو Cypress للاختبارات الشاملة على الويب، وAppium للأجهزة المحمولة، وJest أو JUnit أو pytest لاختبارات الوحدات، وPostman لفحوص API، وk6 أو JMeter للأداء، وOWASP ZAP للفحص الأمني. ونحفظ الاختبارات في مستودعك وبلغة البرمجة التي يستخدمها مهندسوك قدر الإمكان، ليتمكنوا من صيانتها.
كيف تختبرون التكامل مع البنوك ومزودي خدمات الدفع وأنظمة ERP؟
نستخدم بيئة الاختبار أو بيئة sandbox لدى الشريك إن وجدت، والمحاكيات إن لم توجد، لتعمل الاختبارات مع كل تغيير دون الاعتماد على جهة خارجية. وتغطي بيانات الاختبار مسارات الإخفاق: المدفوعات المرفوضة، وانتهاء المهلة، والرسائل المكررة، والإخفاقات الجزئية. وتتأكد الفحوص الشاملة من مطابقة الإجماليات بين الأنظمة، لا من نجاح كل استدعاء فحسب.
هل يمكنكم التصميم للعربية وسائر اللغات التي تكتب من اليمين إلى اليسار؟
نعم. والتصميم من اليمين إلى اليسار أكثر من قلب الشاشة. فالتنقل ومؤشرات التقدم والرسوم البيانية والأيقونات التي تدل على اتجاه تحتاج إلى عكس، بينما لا تعكس عادة الأرقام والشعارات وأزرار التحكم في الوسائط. ويحتاج النص العربي إلى خط وحجم وارتفاع سطر خاصة به. نصمم الاتجاهين معا ونراجعهما مع قراء ناطقين باللغة.
ما نظام التصميم، وهل نحتاج إليه؟
نظام التصميم مجموعة مشتركة من الألوان والخطوط والمسافات والمكونات، مع إرشادات لاستخدام كل منها، تبقى متطابقة بين ملفات التصميم والشيفرة. تحتاج إليه عندما يجب أن تبدو عدة فرق أو منتجات متسقة في الشكل والسلوك، أو عندما ينمو المنتج سنوات. أما لأداة صغيرة واحدة، فكثيرا ما تكفي مكتبة مكونات أخف.
متى يكون تغليف النظام أفضل من استبداله؟
عندما تكون النواة القديمة مستقرة وصحيحة لكن يصعب الوصول إليها. فواجهات API الحديثة أمامها تتيح للقنوات والشركاء والمنتجات الجديدة استخدام وظائفها دون المساس بتفاصيلها الداخلية، وبمخاطر أقل بكثير من استبدالها. ونوصي بالاستبدال عندما يعيق النظام التغيير، أو لا يمكن تأمينه، أو لم يعد ممكنا إيجاد من يعمل عليه.
ما التقنيات القديمة التي يمكنكم العمل بها؟
نعمل بالتقنيات التي بنيت عليها كثير من أنظمة الأعمال، ومنها الإصدارات القديمة من Java و.NET، وقواعد البيانات العلائقية مثل Oracle Database وSQL Server، وخدمات SOAP، والواجهات القائمة على الملفات. وفي المنصات الأندر، نقيم الشيفرة أولا ونخبرك بوضوح هل نملك المهارات اللازمة، أم ينبغي أن ينضم إلى الفريق متخصص.
مزيد من الأسئلة
- الذكاء الاصطناعي والبياناتالنماذج ومزودوها، والدقة، والاسترجاع أو الضبط الدقيق، ومنصات البيانات، والبيانات اللحظية، وأتمتة المستندات.12 سؤالًا
- التكاملاتأنظمة ERP، والبرمجيات الوسيطة، وصيغ البنوك، وISO 8583، وأجهزة الدفع، والربط المباشر أو EBICS، والخدمات المصرفية المفتوحة، وواجهات API الخارجية.19 سؤالًا
- القطاعاتالأنظمة المصرفية الأساسية، وISO 20022، ومراقبة الاحتيال، والمتاجر، وEDI وشركات الشحن، وHL7 وFHIR، وإمكانية الوصول، وترقيات ERP.15 سؤالًا
- التكلفة والأسعارما الذي يحدد تكلفة المشروع أو الفريق، وكيف نعد التقديرات.31 سؤالًا
- الجداول الزمنيةكم يستغرق بدء العمل وتسليمه، وما الذي يؤثر في ذلك.18 سؤالًا
- الملكية والعقودمن يملك الشيفرة والبيانات والنتائج، وكيف تعمل العقود.9 أسئلة
- الأمن والبياناتكيف نحمي أنظمتك وشيفرتك وبياناتك أثناء عملنا.32 سؤالًا
- الفرق والكوادرمن يعمل على مشروعك، وكيف يختار، وكيف تتغير الفرق.22 سؤالًا
- طريقة العمل والتواصلكيف يخطط للعمل، ويبلغ عنه، ويقبل.43 سؤالًا
- الدعم والتشغيلما يحدث بعد الإطلاق: الدعم والمراقبة والتغيير.17 سؤالًا
- عن XSISمن نحن، وأين نحن، وكيف تتواصل معنا.7 أسئلة
أخبرنا بما تحتاج إلى بنائه أو ربطه.
صف لنا الأنظمة والجدول الزمني والقيود، وسيتولى المهندسون المناسبون الأمر من هناك.