ما يحتاجه مدير التكنولوجيا المبتدئ CTO لبناء شركة برمجيات ويب ناشئة - مقال كلاود
 إدعم  المنصة   
makalcloud
تسجيل الدخول

ما يحتاجه مدير التكنولوجيا المبتدئ CTO لبناء شركة برمجيات ويب ناشئة

كيف تبني ويب ستارتاب من الصفر !

  نشر في 16 نونبر 2015  وآخر تعديل بتاريخ 10 ماي 2016 .

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


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

الصورة عن برنامج devinPOS ل تسيير عمليات البيع للشركات الصغرى و المتوسطة
راجع أيضا برنامج devinStock و هي خدمات مقدمة من شركة برمجيات الويب المغربية  Devinweb - دفينوب ..

1 - بيئة العمل: اختيار النظام المستضيف

هناك طريقتين أن تكون البرمجيات تعمل في بيئة خاصة، مثلا على جهاز المستعمل و في هذه الحالة ستعمل ب localhost، أو في خادم شركة خاصة للمستعمل. أو أن تكون الخدمة البرمجية في بيئة على الويب و هذا النوع أصبح معروف بالكلاود،أو خدمة  SaaS - Software as a Service.  

 مميزات أنظمة SaaS أنك ستجد جميع الخدمات التي تحتاجها و لن تحتاج لعمل تدبير لبيئة العمل بنفسك.

أهم خدمة ينصح بها الجميع في الوقت الحالي هي خدمة أمازون ويب سيرفيس AWS: تقوم باختيار نظام لينوكس لبيئة Server EC2ثم القيام ببناء بعض الخدمات التي ستحتاجها عند التطوير ك Mysql و Apache ...

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

2 - بيئة العمل: اختيار البرمجيات 

لاختيار لغة البرمجة هناك معايير:

- اللغة التي تريحك عند التطوير بها
- خصائص و متطلبات المشروع
- الفريق و إمكانية إيجاد مطورين و متعاونين في لغة البرمجة المختارة
- الكلفة 

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

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

3 - أطر عمل البرمجيات:  Framework 

أهم ما يجب أن تركز عليه هو اختيار أطر العمل منذ البداية، لأنها ستوفر عليك 80 % من الكود المستعمل في كل المشاريع، اطار العمل الخلفي سيمكنك من التواصل مع قاعدة البيانات بطريقة فعالة، ممتعة، مرتبة، أكثر إنتاجية و آمنة .. لذا ابدأ بتعلم البرمجة مع أطر العمل و لا تحاول صناعة العجلة و عمل كل سطر كود بيدك، فلن تصل بهاته الطريقة.

الواجهة الخلفية : Backend

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

PHP: Laravel  or Simphony
JavaScript (Server Side): Express
Python: Django
Ruby: Ruby On Rails
Java: SPRING
ASP .net

 الواجهة الأمامية : Front End

إطار العمل في الواجهة الأمامية سيسهل عليك عملية استخدام مميزات البرمجة و التصميم الذي سيظهر للمستعمل في جميع المتصفحات. 

CSS: Bootstrap or Foundation
 Javascript: AngularJS  or Backbonejs   

4 - تدبير ال Packages و المكاتب المساعدة في المشروع

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

نظام Bower
مثلا: حين تستعمل مكتبة جافاسكريبتك jQuery لا تضفها بطريقة يدوية، لكن استعمل نظام Bower: سيمكنك من استعمال آخر إصداراتها بطريقة سلسة و تحديثها بدون التأثير على الكود الذي عملته، النظام سيتكلف بالأمر!

هذه أهم أنظمة تدبير ال Package manager

Javascript : Bower
Php : Composer
(nodejs : Node package manager (npm
Ruby : Gem

كما ستمكنك بعض الأنظمة ك Grunt من عمل أتمتة - Automatisation لأشياء مهمة يقوم بها المطورون عند الإنتهاء من مرحلة التطوير إلى إنتاج الكود code production كتقصير حجم المكاتب المستعملة. هذه أنظمة ال Automatisation للأعمال

Grunt or Gulp

أيضا نظام Yoeman يساعدك لبدء مشروع  نظام يتضمن كل هذه الأنظمة. 

5 - قاعدة البيانات

هناك تطور ملحوظ في أنظمة قاعدة البيانات: هناك نوعان

RDB - Relational databases: كأوراكل أو Mysql أو Postgresql

 NoSQL databases: ك MongodB

ستجد نقاشات كثيرة عن من هو أفضل و أحسن، شخصيا أفضل أن يتم البدئ ب Mysql لأنه مجاني و مفتوح و ستجد فيه مساعدة أكثر. Posgresql متطور و أكثر قوة نوعا ما عن Mysql إذا أردت قاعدة بيانات ب Objects Tables.

لا تمر إلى ال NoSQL إلا إذا كانت هناك حاجة تقنية مثلا، نمو عدد ال Rows بشكل كبير في أل Tables. بالفعل ف أل Nosql أبسط و أكثر جاذبية، نظرا لغياب مفاهيم مثل أل schema ... لكن أفضل البدء ب ال RDB.

6 - التحكم في إصدارات المشروع

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

Github : لعمل برمجيات مفتوحة المصدر.

Bitbucket : موقع مجاني لفريق لا يتعدى 5 مطورين ولعمل برمجيات خاصة غير مفتوحة.

هذه الصورة تبين لك كيف بإمكان العمل بمحرر كود sublime text وإطار عمل PHP laravel مع terminal يساعد في بناء الخدمات المساعدة ك git و bower و composer ..... 

على الصورة composer يمينا و نظام git على اليسار  

التحقق من عمل المشروع: Tests

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

Unit test : يمكن من التحقق من عمل الدوال functions و أقسام classes الكود.

Functional test: التحقق من عمل خاصيات التطبيق بشكل سليم كما هو مرغوب.

Performance test: التحقق من الأداء الجيد للمشروع، كقياس سرعة التحميل مثلا.. 


في النهاية آمل أنك وجدت الفائدة هنا، لا تنس مشاركة المقال فهذا تشجيع لي على الاستمرارية في العمل، أتمنى التوفيق للجميع !



  • 17

  • عبد الله العبُّوس - Abdellah El Abbous
    شريك مؤسس لمنصة مقال كلاود، وشركة خدمات الويب ديفين ويب - مهتم بخدمة الويب + المحتوى العربي الإليكتروني + القراءة + ريادة الأعمال - أنشر بين الفينة و الأخرى بعض الخربشات
   نشر في 16 نونبر 2015  وآخر تعديل بتاريخ 10 ماي 2016 .

التعليقات

شكرا جزيلا عزيزي عبد الله ، أكيد سوف يستفيد الشباب من هذا المقال
0
عبد الله العبُّوس - Abdellah El Abbous
بحول الله عزيزي ضياء يلزم فقط بعض العزيمة، الطاقة و الوقت لتعلم كل هذا :)

لطرح إستفساراتكم و إقتراحاتكم و متابعة الجديد ... !

مقالات شيقة ننصح بقراءتها !



مقالات مرتبطة بنفس القسم

















عدم إظهارها مجدداً

منصة مقال كلاود هي المكان الأفضل لكتابة مقالات في مختلف المجالات بطريقة جديدة كليا و بالمجان.

 الإحصائيات

تخول منصة مقال كلاود للكاتب الحصول على جميع الإحصائيات المتعلقة بمقاله بالإضافة إلى مصادر الزيارات .

 الكتاب

تخول لك المنصة تنقيح أفكارك و تطويرأسلوبك من خلال مناقشة كتاباتك مع أفضل الكُتاب و تقييم مقالك.

 بيئة العمل

يمكنك كتابة مقالك من مختلف الأجهزة سواء المحمولة أو المكتبية من خلال محرر المنصة

   

مسجل

إذا كنت مسجل يمكنك الدخول من هنا

غير مسجل

يمكنك البدء بكتابة مقالك الأول

لتبق مطلعا على الجديد تابعنا