سيتم تسليم جميع المحادثات وورش العمل باللغة الإنجليزية ، دون ترجمة فورية إلى اللغة الروسية.
يستلزم تصميم لغة برمجة ، مثل أي لغة أخرى ، العديد من المقايضات التي تنطوي على متطلبات متعارضة. تحل اللغات المختلفة هذه المقايضات بطرق مختلفة ، مما يجعل كل منها أكثر ملاءمة لبعض السيناريوهات وأقل جاذبية للإعدادات الأخرى.لوا لديها مجموعة من الأهداف الخاصة بها ، والتي توجه تصميمها. هذه المجموعة تعطي الأولوية للتضمين ، وصغر الحجم ، والبساطة ، وسهولة الحمل. (هناك أهداف أخرى أيضًا ، مثل الأداء وسهولة الاستخدام من قبل المبرمجين غير المحترفين.)في هذا الحديث ، سنناقش تأثير هذه المجموعة من الأهداف. سنرى كيف تؤثر هذه الأهداف على اللغة نفسها ، وكيف تؤثر على استخداماتها ، وكيف تؤثر على ملاءمتها لمختلف مجالات التطبيق.
تعد حلقات الأحداث غير المتزامنة طريقة مجربة لتوسيع نطاق خوادم الشبكة ، حيث يستخدم nginx (بين العديد من المنتجات الناجحة الأخرى) هذه التقنية في جوهرها. ومع ذلك ، يعتمد أدائها على افتراض أساسي: يجب ألا يعمل منطق العمل لفترة طويلة ، وإلا فإن الأداء الكلي ينهار بسرعة.في Cloudflare ، نعتمد اعتمادًا كبيرًا على OpenResty ( مكتبات nginx + Lua +) لخوادمنا المتطورة ، وضمان الأداء المتنبأ به أمر بالغ الأهمية. لذلك ، يعد تفريغ بعض الأجزاء المعقدة من المعالجة خارج حلقة الحدث ضروريًا ويتم ذلك عادةً عن طريق كتابة خدمات ميكروية. لقد جربنا طريقة أخرى للاستفادة من ميزة تجمع مؤشرات ترابط nginx . في هذا الحديث ، سأشرح بالتفصيل التحديات والنتائج المترتبة على إخراج ميزات الأمان الأساسية من حلقة الحدث.
كل لغة برمجة لها نظامها البيئي الخاص ، وهو أمر مهم لرفاهية المجتمع. تطوير التطبيق ليس فقط حول كتابة الكود ، ولكن أيضًا عن اختباره وتحسينه ومشاركته مع الآخرين. هنا في Tarantool لدينا العديد من المطورين الذين يتفاعلون مع Lua بدوام كامل.سأناقش الجوانب المختلفة لتطوير Lua في بيئتنا:كيف نكتب رمز مريح مع الوبر.ما هي الأدوات التي نستخدمها لتصحيح الأخطاء والاختبار.كيف ندير الوثائق والتعبئة والتغليف بسهولة.والأهم من ذلك ، ما هي الميزات التي نفتقر إليها.
لا يمكن كتابة تظليل في Lua ، لكن من الممكن التحكم فيها باستخدام Lua. أرغب في توضيح مدى سهولة إجراء تأثيرات جميلة بفضل قوة GLSL و Lua. بالإضافة إلى ذلك ، سأقدم نصائح وحيل مفيدة للعمل مع تظليل في محرك لعبة Defold.
Dynasm عبارة عن مولد رمز الآلة للعديد من الهياكل (x86 ، x86_64 ، إلخ). يحتوي على جزأين:مولد رمز الجهاز المكتوب في C ،وتجميع المعالج في لوا.يعمل المعالج الأولي الأصلي فقط مع مصادر C / مجمع. وهناك شوكة بواسطة luapower والتي يمكنها معالجة ملفات Lua مسبقًا مع مولدات التعليمات البرمجية Assembler. هناك حالة عندما نريد استخدام المنطق من إدخال المستخدم. دعنا نبحث في مجموعة الأدوات هذه ونصنع مترجم s-تعبير بسيط.السؤال الرئيسي هو "كم هو مريح لجعل مترجم لإدخال المستخدم".
في IPONWEB ، لدينا تطبيق Lua الخاص بنا. كان متشعب من LuaJIT 2.0 ورثت كل القيود. على وجه الخصوص ، لم تكن pairs والوظائف next مدعومة بواسطة برنامج التحويل البرمجي JIT. ومع ذلك ، في قاعدة بيانات Lua الخاصة بنا ، يعد هذا سببًا أوليًا لإحباط تجميع التتبع ، والذي يفرض بعض المفاضلات بين نمط الشفرة وأداء التطبيق. في هذا الحديث سأذهب إلى:مناقشة ما يعنيه جعل وظيفة المكتبة استدعاء JITable ؛شرح تفاصيل تنفيذ pairs next في LuaJIT ؛أخبرنا عن قيود JIT التي تجعل pairs والتجميع next مهمة ليست مهمة ؛إثبات تقدمنا في حل هذه المهمة.
pairs
next
JITable
حديث مكافأة روبرتو.
للوهلة الأولى ، Tarantool هي قاعدة بيانات. ومن الصعب جدًا رؤية الإمكانات الكاملة لهذا المنتج كخادم تطبيقات.سوف أساعدك في فتح هذه الإمكانية: كيفية استخدام خادم LuaJIT المدمج مع مآخذ ، والألياف ، والقنوات ، وصندوق ffi وغيرها الكثير. كيفية جعل رمز إعادة تحميل على الطاير. ستتم مناقشة هذه المواضيع خطوة بخطوة في مثال بناء خادم قائمة الانتظار كتطبيق نموذجي.
المنصات هي لعبة شعبية للغاية ، بعضها بسيط وبعضها معقد إلى حد ما. في هذه الورشة ، سأشرح كيفية صنع منصة أساسية باستخدام محرك لعبة Defold. تميل معظم البرامج التعليمية حول هذا الموضوع إلى تبسيط الأمور بمستويات مصنوعة يدويًا عندما يمكن إنشاؤها واستخدام محرك الفيزياء عندما لا يكون ذلك ضروريًا تمامًا.
Source: https://habr.com/ru/post/ar441680/More articles:لا يعتقد Linus Torvalds أن الخوادم على بنية ARM ستحل محل x86. "بيع طراز 64 بت - حماقة"STM32. ممارسة فقدان الوزن أو النظام الغذائي لوحدة التحكمتصميم الاختبار؟ سهلكيفية تكوين صداقات PLUTO و HDSDRفيزياء إعصار اللعبة: كيف يتم تطبيق الديناميكا الهوائية في Just Cause 4 (حركة المرور)HyperX Fury 3D - SSD مع نسب واضحةالتوقعات: سوف تتغير الغيوم 2019كيف قمنا بتطبيق ذاكرة التخزين المؤقت على قاعدة بيانات Tarantoolالألعاب تغير العالم: كيف يلفت Hellblade الانتباه إلى مشاكل الأشخاص المصابين بمرض عقليأنت لا تحتاج Blockchain: ثماني حالات الاستخدام المعروفة ولماذا لا تعملAll Articles