اذهب إلى المحتوى

السؤال

نشر

هل التقنيات مثل docker و neovim يستحقون بعض الاستثمار من وقتي اليومي؟  ايضا لدي اهتمام بلغة Golang لكن سمعت انها ليست كائنية التوجه فكيف يمكن بناء تطبيقات scalable بدون اشياء كال "توريث"  وايضا سمعت انها لا تملك اطار عمل يحترم طريقة عملها مما يساوي عملية تطوير ابطئ, شاركوني آرائكم

Recommended Posts

  • 0
نشر

Docker و Neovim :

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

Golang
صحيح أنها ليست كائنية التوجه بشكل تقليدي كما هو الحال في لغات مثل Java أو Python. ولكن Golang تعتمد على البساطة والوضوح، وتستخدم مبدأ التكوين (composition) بدلاً من التوريث (inheritance) لزيادة إعادة استخدام الشيفرة. يساعد ذلك في بناء تطبيقات قابلة للتوسع وأكثر وضوحًا. كما أن نظام الـ goroutines وchannels في Golang يساعد في التعامل مع التزامن بكفاءة عالية، وهو أمر حيوي للتطبيقات الكبيرة.

أما عن الأطر، فهناك مكتبات وأطر مثل Gin و Echo و Fiber التي تعتبر خفيفة وتدعم عملية تطوير فعالة في Golang، على الرغم من أن نهج Golang يكون أحيانًا أقل تعقيدًا من بعض الأطر الضخمة الموجودة في لغات أخرى.

ولكن Golang ما زالت حديثة ليست مثل: java و python على سبيل المثال.
فمن الافضل الا تسثمر فيها وقتك الان,

  • 0
نشر

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

وتستطيع مشاركة نفس بيئة التطوير التي لديك من خلال ملف docker مع أي شخص وسيقوم بتشغيل المشروع على نفس البيئة بغض النظر عن نظامه.

بخصوص Golang فهي بديل للغة C/C++ ولكن بشكل أبسط وأسهل، فهي مطلوبة في الشركات الأجنبية أكثر، لكن هناك شركات عربية تستخدمها ومطوريها ليسوا بالكثيرين لذا مرتباتها مرتفعة.

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

فلو قمت بذلك من خلال PHP أو  جافاسكريبت فلن تتمكن من تحقيق ذلك.

أيضًا تتميز بـ multithreaded architecture والمفيدة في بناء  large-scale distributed systems و high-performance applications، ويتم عمل compile لها للغة الآلة مباشرًة.

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

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

والتكوين Composition بمعنى تشجع Go التكوين على الوراثة، فتستطيع إنشاء هياكل تحتوي على هياكل أخرى أو مراجع لها، مما يحقق تأثيرًا مشابهًا للوراثة.

والـ Interfaces والتي توفر طريقة لتعريف عقد أو مجموعة من الأساليب التي يجب على نوع معين تنفيذها، وذلك يسمح بتعدد الأشكال وفك الارتباط.

بالإضافة إلى الـ Dependency injection حيث توفر مكتبة Go القياسية والأطر الشائعة آليات لحقن التبعية، الأمر الذي يساعد في التجزئة وإمكانية الاختبار.

أما بخصوص Golang Frameworks فما ذكرته غير صحيح، حيث يتوفر لها عدّة إطارات وأشهرها Gin وهو إطار للويب لديك أيضًا:

  • Beego
  • Buffalo
  • Echo

ويوجد Revel كإطار full-stack للويب.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...