بحكم التجربة: اللغة العودة تعلم إيجابيات وسلبيات

النص الكامل 3707 الكلمات، وعندما يكون التعلم مدى المتوقع 11 دقيقة

مصدر الرقم: Unsplash

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

لكن الأمور صعبة، وتعلم أشياء جديدة كل شيء. إذا المطورين يريدون تعلم لغة برمجة جديدة، ماذا تختار؟

الذهاب بسيطة المدهش أن اللغويات

عندما بدأت لأول مرة تعلم اللغة العودة، تم تعيين خرجت لتطوير مشروع شخصي، والتي كان لي لتعلم قواعد اللغة الجديدة (أنا دائما تعلم لغة برمجة جديدة للتوصل إلى مشروع).

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

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

الانطباعات الأولى

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

مصدر الرقم: Unsplash

لغة تطوير لماذا العودة

هدف

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

"تستخدم حزمة معاهدة المواد الانشطارية وC-مثل printf وظيفة وscanf، وتستخدم لتحقيق تنسيق I / O. C من النموذج الفعل، ولكن أكثر بساطة."

هذا هو الناجح ومن لغة واحدة مشتركة (لغة C في تجسيد الحالي) يتم استخراج وتعرض لمثل الوظيفي للتحسين.

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

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

من الناحية النظرية، وهذا سوف يقلل من المطورين الفرق على أساليب أسلوب رمز والبرمجة، كما يحتوي على العديد من حكم لغة Eslint جافا سكريبت.

طريقة

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

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

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

مصدر الرقم: Unsplash

الذهاب أسباب لتعلم اللغة

1، والبساطة

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

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

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

2 وسريعة

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

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

3، التزامن

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

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

مشاكل

لا نموذج

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

الوضع التنافسي

"لا ترسل من خلال الذاكرة المشتركة، والعكس، إلى ذكريات سهم من خلال تبادل".

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

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

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

مصدر الرقم: Unsplash

تدقيق الخطأ

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

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

بالنسبة لبعض المشكلة بسيطة جدا

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

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

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

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

عندما لاستخدام

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

ومع ذلك، نوع آخر من لغة يمكن أن تحل جميع المشاكل؟

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

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

تذكر ان لا خطأ في تحديد الهوية، على غرار.

مصدر الرقم: Unsplash

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

انتباه رسالة الابهام

معا نحن نشارك في التعلم وتطوير AI الجاف

مثل طبع، يرجى ترك رسالة وراء الكواليس، والامتثال للمعايير طبع

العام الجديد! 5 لتحسين تجربة ترميز كود VS التمديد، رائع

للابتعاد عن الخداع والمواد الإباحية ، كيف تستخدم أداة Deepfake "لفائدة البشرية" بمسؤولية؟

اليوم صوت الأساسية | تحصل على تذاكر حتى الآن؟ 2020 مهرجان ربيع اليوم رسميا

لا ترمش! انظر كيف تحسن الأساليب السحرية أداء كود Python؟

الذكاء الاصطناعي يمكن معرفة ذلك مثل الإنسان؟

زار فوجيان نينغده منطقة ساندو: استئناف المنظم للمجمع لإنتاج اغتنام مدة ونوعية الأمن

بعثة للألفية الفضاء القادمة لإنقاذ البشرية - العلماء يتآمرون في

واضاف "انها رواتب جيدة، ولكن أيضا ما الجوائز في نهاية السنة؟"

الصوت الأساسي اليوم | أكثر ذكاء من تسلا، وهناك القراصنة سيارة؟

السيطرة على JS console.log وحفظ التعليمات البرمجية الخاصة بك

VirtualDOM الأموات؟ بعد بالغت الشائعات الرهيبة ......

اليوم صوت الأساسية | ملاحظة! أكثر من 500 مليون هاتف محمول جديد، تم زرعها سرا طروادة