تغيير مجموعتي من يوم الاثنين



تحياتي الزميل!



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



إذا كنت مثلي ، مبرمجًا لديه حوالي 12 عامًا من الخبرة ، حوالي 30 عامًا ، باقٍ في مجموعة الأكشاك الخاصة بك (خاصةً إذا كان C # .Net MVC) ، فأنا أدعوك تحت cat. بالنسبة لمن هم أصغر سنًا ، أعتقد أنه سيكون من المفيد أيضًا أن يكونوا مستعدين مسبقًا.



تبدأ الخلفية بحقيقة أنني كنت أطور على C # .Net stack (ASP ، MVC ، خدمات Windows) لفترة طويلة. يبدو لي أنه يمكن أن يُطلق علي شيئًا مثل مطور مكدس كامل: قواعد البيانات والواجهة الخلفية والواجهة الأمامية وحتى برمجة الأولمبياد - لقد مررت كل هذا من خلالي. لن أقول إنني محترف ، لكن من الصعب أن تفاجئني بشيء عندما يتعلق الأمر بـ .Net. لا ، لم أحضر. المؤتمرات التالية وما شابه ، لكنني درست مع العديد من كبار السن في الجامعة ، أعرف بعضهم شخصيًا ، وقد تجاوز عدد المشاريع المتوسطة الحجم التي أطلقتها في PE 30.



كما أشير قبل الكاتا ، بدا لي ذلك أنني أحترق. عندما تم إحضار مشروع جديد إلينا للتنفيذ (ليس كبيرًا جدًا - هذا مهم!) ، كنت أعرف بالفعل في الاجتماع الأول ماذا نفعل وكيف سنفعل - ممل.



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



لذلك ، كان أمامي حوالي نصف عام من العمل غير المثير للاهتمام. لكننا أكملنا المشروع قبل بضعة أشهر ، وتعلمنا مجموعة من الأشياء الرائعة ، وضخنا في المجالات ذات الصلة وحصلنا على الكثير من المرح! لن أتأخر ... تم إنشاء المشروع الجديد على مكدس جديد تمامًا: Node.js + React.



يجب على الزملاء ، بعد توقع الحدوث ، التحفظ على الفور بأن قرار تغيير المكدس لم يأتي تلقائيًا. منذ عدة أشهر كنت أفكر في فكرة أن .Net MVC ليس هو الخيار الأفضل عندما يتعلق الأمر بالمشاريع الصغيرة. كنت أبحث عن بدائل ، أنظر حولي. حول الجمع بين Node.js و React ، اعتقدت أن هذه أدوات تم تحسينها من جانب الخادم وجانب العميل أكثر من C # ، ولكن التجربة الأولى تجاوزت بالفعل جميع توقعاتي.



دعونا نضع القواعد



أولاً ، أرى أنه من الضروري توضيح بعض التفاصيل والشروط التي بموجبها يمكن اعتبار الفكرة الرئيسية للمقال - استبدال مكدس .Net MVC و Node.JS + React - صحيحة. لا أميل إلى التطرف وأقول إن مثل هذا الحدث سيكون مفيدًا في جميع الحالات ، لذا إليك قائمة قصيرة بالقيود الأولية:



  • المشاريع التي يشارك فيها ما يصل إلى 3-5 مبرمجين ؛
  • عدم وجود حسابات أساسية ومنطق معقد في الخلفية ؛
  • التوفر و / أو الحاجة إلى توحيد الواجهة الخلفية والواجهة ؛


المشاريع التي يشارك فيها ما يصل إلى 3-5 مبرمجين



نشأ هذا القيد بسبب الافتراض أنه بمشاركة فريق كبير من 5 أشخاص أو أكثر ، فإننا نتحدث عن تطبيقات مؤسسية جادة سيكون من الصعب تنفيذها بدون مزايا .Net (وليس فقط ASP.NET ، ولكن أيضًا Core). سنتحدث عن المزايا والعيوب نفسها أدناه.



عدم وجود حسابات أساسية ومنطق معقد في الخلفية



استخدام JavaScript (أو حتى TypeScript ، لن يوفر لك) ، وهي لغة مكتوبة ديناميكيًا بدون تعدد مؤشرات الترابط وبدون Linq ، لتنفيذ العمليات الحسابية أو منطق الأعمال الأكثر أو أقل تعقيدًا ، ببساطة غير ممكن - اللغة ببساطة ليست مصممة لهذا الغرض. لا يمكن قول الشيء نفسه عن C #. من المهم أن تأخذ في الاعتبار خصوصيات الأداة حتى لا تطرق الأظافر بالمجهر.



التوفر و / أو الحاجة إلى توحيد الواجهة الخلفية والواجهة الأمامية



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



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



قائمة تدقيق



تكلفة التطوير والصيانة



هل تتطلب ميزانيتك مستوى منخفض من المواهب وتكاليف صيانة منخفضة؟



إذا كان لديك شركة صغيرة أو فريق من المبرمجين ، فإن تعقيد أدوات التطوير يستهلك موارد ثمينة. يحتوي مكدس Node.js + React على عدد من المزايا المميزة مقارنة بـ .Net MVC أو Core: 



  1. توحيد الواجهة الخلفية والواجهة الأمامية - سيتمكن المتخصصون من العمل كمكدس كامل أسهل وأسهل مما لو كان مكدس C # ؛
  2. متطلبات أقل لموارد الخادم - Node.js ليس شرهًا مثل .Net وهو حقًا متعدد الأنظمة الأساسية ؛
  3. سرعة التطوير أعلى - بسبب نقص الكتابة ، يزيد معدل إصدار الإصدارات الأولى من المنتج بشكل كبير




إطلاق MVP (الحد الأدنى من المنتجات القابلة للتطبيق) و PoC (إثبات المفهوم)



هل مواعيدك النهائية لإطلاق MVP أو PoC؟



من حيث سرعة تنفيذ MVP أو PoC ، فإن مكدس Node.js + React بلا شك في وضع أفضل من مكدس صافي. مع الأخذ في الاعتبار النقطة السابقة حول تكلفة التطوير والمحتوى ، يظهر التآزر لمهمة إطلاق MVP: سريع ورخيص وفعال. بالإضافة إلى ذلك ، فإن استقرار Node.js على مستوى عالٍ وغير مرضٍ.



بيئة التطوير



هل ستكون وظائف IDEs "الخفيفة" كافية لك؟



تعد IDEs خفيفة الوزن رائعة بالنسبة إلى Node.js بالتزامن مع React. على سبيل المثال ، لا يتطلب VS Code الكثير من القوة أثناء التطوير ، وهو محرر متعدد المنصات ، يتم توزيعه مجانًا ، ووظائفه كافية تمامًا لتطوير كل من الواجهة الخلفية والواجهة الأمامية بشكل مريح.

بالنسبة للمشاريع في C # ، يمكنك استخدام Visual Studio Community - وهو أيضًا بيئة تطوير متكاملة لبرنامج كومبيوتري ، لكنه سيتطلب بالفعل موارد ، ولن يكون سريعًا ولن يكون عبر الأنظمة الأساسية.



كتابة اللغة



هل يمكنك تقديم دعم وتطوير عالي الجودة لمشروعك ، نظرًا لقلة الكتابة؟



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



الأداء وقابلية التوسع



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



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



عبر منصة



هل تحتاج إلى منصة مشتركة خارج الصندوق؟



نعم ، تحت .Net يوجد .Net Core ، الذي يدعي أنه مشترك بين الأنظمة الأساسية. لكنها ما زالت ليست كذلك .Net MVC. إذا قمت بتجميع كمية كبيرة من المكونات الجاهزة لـ .Net MVC ، فلن يكون الانتقال إلى .Net Core أمرًا سهلاً. باستخدام Node.js ، لا داعي للقلق بشأن هذا واستخدام التطورات الخاصة بك لأي نظام أساسي ، حسب متطلبات العميل.



خاتمة



سيسمح لك العالم الثري لوحدات Node.js بتنفيذ أي مهمة مطبقة بكفاءة وفعالية من حيث التكلفة تقريبًا بدءًا من التراخيص في أنظمة الشركة و rest-api إلى برامج الدردشة الخاصة بالمراسلين.



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



هل حاولت تغيير المكدس؟






All Articles