9 خطوات: اختيار كومة التقنية لتطبيق الويب الخاص بك

يمكن أن يكون تخطيط تطبيق الويب الجديد لديك أمرًا صعبًا (تصوير Luca Bravo على Unsplash).

هل أنت مؤسس ، أو مدير تنفيذي ، أو CTO ، أو استشاري أو صاحب مصلحة آخر يحتاج إلى أن يقرر كيفية بناء منتج برمجي؟ هل تواجه مشكلة في اتخاذ قرار بشأن الكومة التقنية لتطبيق الويب الخاص بك؟ هل يجب عليك استخدام Python أو Java كلغة؟ هل node.js أو Flask / Django هو الاختيار الصحيح لإطار الويب؟ ما هو أفضل خيار أمامي: الزاوي ، رد الفعل أو VueJS؟ ماذا عن قاعدة البيانات - MySQL ، Postgres أو MongoDB؟ يجب أن تستضيف مع Apache أو Nginx على DigitalOcean ، أو مجرد الذهاب مع Amazon AWS؟ ربما تفضل العمل مع PaaS مثل Heroku؟

إذا كان لديك مليون سؤال ولا تعرف من أين تبدأ ، فيمكن أن تساعدك هذه المقالة في اتخاذ قرارك.

1. يبقيه بسيط. الذهاب رشيقة!

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

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

بمجرد أن تعرف أن مفهومك سينجح ، يمكنك المضي قدمًا في بناء المنتج. البقاء رشيقة خلال هذه المرحلة. يجب ألا تقضي أبدًا عدة أشهر في تجميع مواصفات النظام المكونة من 100 صفحة ("Pflichten- und Lastenheft" باللغة الألمانية) للمطورين ، خاصةً إذا كان يفترض 6 أو 12 شهرًا لتحقيق المنتج. من المحتمل أن ينتج عنه منتج قديم أو تم تسليمه بعد فوات الأوان.

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

2. فكر في متطلباتك الشخصية

الحفاظ على مساحة مشكلتك في الاعتبار. يجب أن تعتمد التكنولوجيا التي تختارها على المشكلة التي تريد حلها. بعض الأشياء يتم إجراؤها بشكل أفضل بلغة واحدة من لغة أخرى - على سبيل المثال ، تعتبر بايثون عظيمة بالنسبة للحساب والإحصاء.

المستخدمين قبل التكنولوجيا

يجب أن تكون المنتجات مصممة لمستخدميها. ما المنتج الذي تريد بناءه؟ كيف يمكنك إنشاء أفضل تجربة للمستخدم؟ فكر في من سيستخدم نظامك. هل سيعملون على أجهزة كمبيوتر سطح المكتب أو الأجهزة اللوحية؟ هل سيصلون إلى الأشياء عبر اتصال محمول (كما يفعل 60٪ من جميع المستخدمين حاليًا)؟ يجب أن يكون هناك تطبيق على غرار سطح المكتب؟ ما المتصفحات التي سيتم استخدامها في معظم الأحيان؟

السرعة والأداء

هل لديك (باستثناء) المعايير؟ هل سيتم تشغيل البرنامج في إنترانت الخاصة بك؟ إذا كان الأمر كذلك ، فقد تكون أوقات التحميل الأولية أقل من الأمثل.

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

الهجرات والأنظمة القديمة

هل لديك قواعد بيانات و / أو بيانات تحتاج إلى ترحيل؟ هل لديك أنظمة قديمة تحتاج إلى نقلها إلى النظام الجديد؟ هذه الاعتبارات وما شابهها تحتاج إلى دراسة وتقييم.

الأمان

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

3. الذهاب للتكنولوجيات مفتوحة المصدر

عند إنشاء برنامج جديد ، يجب عليك البحث عن حلول مفتوحة المصدر. أنها تمنعك من الاضطرار إلى بناء كل شيء من الصفر ؛ سيوفر لك الكثير من الوقت وربما أكثر أمانًا (العديد من الرؤوس أفضل من القليل). ستتمكن أيضًا من التركيز على الجانب التجاري للأشياء وجعل منتجك متميزًا. تذكر أن تعيد إلى مجتمع المصادر المفتوحة!

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

سؤال مهم آخر: كيف يتعامل الفريق الذي يقف وراء التكنولوجيا مع المشكلات الأمنية؟ هل يوجد عنوان بريد إلكتروني للإبلاغ عن الثغرات الأمنية؟

4. تحقق من النظام البيئي

كل التكنولوجيا لديها نظام بيئي يتكون من الناس والأدوات.

ما حجم النظام البيئي وراء اللغة أو الإطار؟ كم عدد الأسئلة والمؤتمرات والبرامج التعليمية عبر الإنترنت في Stackoverflow (مثل Udemy)؟ ماذا تقول Google Trends؟ هل لا يزال الاهتمام بالبرنامج ينمو؟ ما عدد الحزم (npm ، PyPi ، وما إلى ذلك) الموجودة هناك ، وهل لديهم تراخيص يمكنك العمل بها؟

هل تعرف عن قوائم رهيبة رهيبة؟ أنها تساعدك على حفر في النظام البيئي للغة أو الإطار. يمكنك التحقق من البرامج التعليمية والمقالات والحزم المهمة المتعلقة بتكنولوجيا معينة. هناك قوائم لـ Django و node.js و React و Angular وغيرها الكثير.

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

5. الاتجاهات والدعم على المدى الطويل

دورات حياة السوق

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

هناك فكرة أخرى هي التحقق من أكوام التكنولوجيا المفضلة للصناعة باستخدام stackshare.io أو techstacks.io. تحقق من ما يستخدمه Airbnb أو ما يعجبه الأشخاص حول AngularJS ومن يستخدمه. إذا كنت غير متأكد من تقنية ما ، فيمكنك البحث عن بدائل. فيما يلي قائمة بالبدائل لـ Angular JS على alternativeto.net.

دعم البائع على المدى الطويل

هل يبدو بائع التكنولوجيا وكأنهم موجودون لفترة من الوقت؟ هل الشركات الكبرى ترعى تطوير التقنية المعنية؟ جوجل وراء Angular ، وفيسبوك وراء React. هذا يعني أنه يجب أن يكون هناك بعض التقدم ، حتى تقرر الشركة في النهاية إسقاط دعمها (نعم ، يمكن أن يحدث هذا). ولكن كلما كان المجتمع أكبر ، كلما زادت فرصة أن تستمر الأمور لبعض الوقت.

بعض التطبيقات لديها إصدارات مع دعم طويل الأجل. ثم يتم توفير الإصدارات المحددة مع إصلاحات الأخطاء لفترة معينة من الوقت. يجب عليك أيضًا التحقق من صفحة الويب الخاصة بالتكنولوجيا: كيف تتم معالجة التحديثات؟ ما مدى سهولة عملية التحديث / الترحيل؟ هل كانت هناك إصدارات غير متوافقة بشكل خاص (مثل Angular 1 & Angular 2)؟

6. الموارد البشرية والتوظيف

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

فيما يتعلق بالتوظيف ، تأكد من التحقق مما يلي: هل يمكنك العثور على عدد كافٍ من مطوري الجودة للحصول على التكنولوجيا المطلوبة؟ كم تحتاج أن تدفع لهم؟ هل الشركات الكبيرة تعمل بنفس التقنيات وتختطف كل المطورين الجيدين؟ هل المطورين الذين تجدهم محترفون في الغالب ، أم أنه من الصعب التمييز بينهم وبين الأطفال النصيين؟ قد يكون من السهل العثور على مطور جافا جيد مقارنة بمطوّر Ruby on Rails أو مطور PHP. للبحث الخاص بك ، يمكنك التحقق من بوابات XING أو LinkedIn أو البحث عن وظيفة. يمكنك أيضًا التحقق من اتجاهات الوظائف (على سبيل المثال ، مقارنة الزاوي بـ React).

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

أخيرًا وليس آخرًا: يعد مسح Stackoverflow Developer مورداً رائعًا في الموارد البشرية. يوفر نظرة عامة رائعة على أنواع المطورين والتقنيات المستخدمة وتقارير الرواتب. الق نظرة!

7. سوف تكون مرنة بما فيه الكفاية؟

تحبب الخدمة

الأمور تتغير بسرعة أكبر بكثير مما كانت عليه قبل 20 سنة. لفترة طويلة ، عمل الأشخاص بشكل أساسي على أجهزة كمبيوتر سطح المكتب ومع Windows. ربما لن يكون هذا هو الحال في 10 سنوات أخرى. من المحتمل أن تبقى التكنولوجيا التي اخترتها معك لمدة 5 إلى 10 سنوات: هذا وقت طويل ، ولا يمكنك التأكد من كيفية تطور الأشياء. لهذا السبب يجب أن تكون مستعدًا لتغيير التقنيات عند الحاجة.

فكر في الحبيبات ، فكر في مجموعات صغيرة ، وفكر في فصل المخاوف. يجب فصل الخدمات والواجهات الأمامية والواجهات الأمامية في تطبيقات أصغر وخدمات صغيرة. يجب أن تكون قادرًا على تبديل التقنيات بسهولة عندما لا تعمل التقنيات الحالية من أجلك. تحقق من المفاهيم مثل الهندسة الموجهة للخدمة (SOA) والتصميم القائم على المجال (DDD).

يمكنك إنقاذ؟ هل هو مقياس؟

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

8. كيف تشعر؟

اطلب من المطورين الخاص بك النظر في التكنولوجيا ، أو القيام بذلك بنفسك. ما هي الانطباعات الأولى؟ احصل على إعداد تجريبي صغير ، جرب المراجل الموجودة ، أو (إن أمكن) لديك مشروع اختبار صغير. إذا ذهبت مع الخدمات الحبيبية ، فيمكنك إنشاء خدمة صغيرة جديدة باستخدام تقنية معينة ومعرفة كيفية عملها.

هناك أيضًا تطبيقات حقيقية يمكن أن تمنحك فهمًا أفضل للاختلافات. يعد TodoMVC مشروعًا رائعًا - تم تحقيق تطبيق Todo بسيط باستخدام أطر عمل جافا سكريبت المختلفة ، ويمكنك التحقق من بنية كود المصدر. هناك كل أنواع الأمثلة ، ويمكنك مقارنة Angular مع React أو Vue مع Ember.

يمتد مشروع RealWorld الرائع إلى أبعد من ذلك: إنه تطبيق مكدس متوسط ​​الشبيه يستخدم إما Django أو node.js للجهة الخلفية و Angular أو React للجهة الأمامية. يمكنك قراءة مقال تمهيدي حوله بواسطة إريك سيمونز.

9. البدء

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

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

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

المزيد من الموارد:

  • كيفية اختيار التقنيات المناسبة لمشروع البرنامج الخاص بك (قائمة سريعة لقراءة النقاط النقطية)
  • كيفية اختيار المكدس التقني المناسب لتطبيقك (مقالة لطيفة تناقش القرار وفقًا لحجم / حالة الشركة)
  • 5 نصائح لاختيار كومة تقنية بدء التشغيل الخاصة بك (قائمة لطيفة وتحذير من Tech Stirrers)

شكرا على اهتمامك. هل نسيت شيء مهم؟ هل لديك رأي مختلف؟ يسعدني دائمًا تلقي تعليقات.

اتبعني على Twitter للحصول على التحديثات والمزيد: @ jensneuhaus -