نظرة عامة على تقارير جوكر 2018 الأكثر إثارة للاهتمام: إصدار EastBanc Technologies

مرحباً أيها المواطنون هابروفسك! في هذا المنشور ، نرغب في مشاركة انطباعاتنا عن المؤتمر لمطوري Java في Joker 2018 ، وهو ما سمعنا أنه لا ينسى.

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




اليوم الأول


لا تبتعد عن التعقيد ، اركض - فينكات سوبرامانيام


رشيقة هي القدرة على التكيف مع التغيير. يتم منع استخدام Agile بشكل فعال من خلال تعقيد نظامنا الذي تم إنشاؤه.

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

كيف نجعل الأنظمة معقدة:

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

    - ما هو ثمن إدخال تقنية جديدة؟
    - ما مدى سهولة التخلي عن التكنولوجيا المختارة؟
    - مكتبة أم إطار عمل؟ أنت تستخدم المكتبة ، والإطار "يحيط بك". من الأسهل بكثير رفض مكتبة من إطار عمل. لذلك ، يجب اتخاذ قرار استخدام الإطار بعناية أكبر. إذا كان من السهل العودة إلى النهج القديم وإذا استطعنا إثبات ذلك ، فعلينا أن نأخذه. لا تقم بتنزيل ما لا تحتاجه حقًا.
    - استئناف التنمية المدفوعة.
  • صعوبة عشوائية
    على سبيل المثال ، multithreading مستوى منخفض. إذا قمت بحل المشكلة مع تجمع مؤشر الترابط ، فلديك الآن تجمع المشكلة.

شلالات المعاملات ، أو كيفية بناء بنية الخدمات الصغيرة للمعاملات - Harald Wendel ( عرض تقديمي )


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

في الواقع ، يحتوي التقرير على فكرة واحدة - التخلي عن المعاملات عند التحول إلى نظام موزع.

كيف تعمل عملية المعاملات السابقة:

  1. لا تزال المعاملات ، ولكن عملية تجارية واحدة فقط (مشروطة) ملتزمة بقاعدة البيانات. يحفظ آخرون ضمن المعاملة قاعدة بيانات لـ Kafka.
  2. أيضًا ، كجزء من المعاملة ، نحصل على معاملة تجارية جديدة تابعة للدولة. هذه دولة قائمة بذاتها صحيحة تماما.
  3. يقرأ معالج خاص القاعدة: إما الاستقصاء أو تنفيذ ربط على الكيان ، إذا كان المعالج في نفس مكان الكيان. ثم يرسل رسالة إلى كافكا.
  4. مشتركو كافكا يعالجون الرسائل. هنا آلية ضمان التسليم القياسية مفيدة لنا. الرسائل في كافكا في الوقت المناسب وستتم معالجتها يومًا ما بواسطة الخدمة.
  5. أثناء المعالجة ، يمكن للمشتركين الالتزام بقواعد بياناتهم وتغيير دولتهم. في هذه الحالة ، تبادل الخدمات الدولة.
  6. المعاملات التجارية التراجعية رقم. وهناك ثلاثة خيارات للتعامل مع المشكلات:

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

ذاكرة معالجة Java على الرفوف - Andrey Panguin


يمكن استخدام تقرير Andrey كمرجع وكيفية حول تصحيح الأخطاء مع تسرب الذاكرة الأصلية عن طريق مثال الذاكرة غير الكومة.

التقرير مفيد لفهم من وما يأكل الذاكرة. يعرض Andrei أدوات لتحليل الذاكرة ، بما في ذلك AsyncProfiler ، الذي تم دمجه في Idea: "يدمج IntelliJ IDEA 2018.3 القادم ملف تعريف عينات منخفضة منخفض يمكنه تعريف JVM و Native code - Async profiler."

نوصي الجميع بمشاهدته وتشغيل وحداته وخدماته الصغيرة في نفس الخطوات.

مطابقة الأنماط وأصدقائه الخياليين - تاجير فاليف


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

مغامرات السنيور هولمز وجونيور واتسون في عالم تطوير البرمجيات [إصدار جوكر] - إيفجيني بوريسوف وباروخ سادوجورسكي ( عرض )


خلاصة التقرير كانت مثيرة للاهتمام بالفعل. وعد هولمز وواتسون بحل العديد من الألغاز من التطوير اليومي: الأدوات والمكتبات والأطر التي تربك المطورين العاديين في روتينهم اليومي.

لاحظنا أكثر النقاط فائدة في القصة:

  • في Spring 5 ، يمكنك إضافة سلال وأغراض ربيعية أخرى في ملف رائع. على سبيل المثال لا حاجة لإعادة البناء ، فقط قم بإعادة التشغيل ، على سبيل المثال ، لإضافة BeanPostProcessor.
  • تحتاج إلى تذكر اسم الفاصوليا. على سبيل المثال ، لا يمكنك إنشاء حبة ConversionService ، لأن هذا بالفعل في أمعاء الربيع.
  • عليك أن تتذكر المعايير. على سبيل المثال ، يُسمح بتعدد الأجزاء للنشر فقط ، بينما يشاهد Spring.
  • بحاجة لقراءة الوثائق. دعنا نشرح باستخدام مثال القبر. يضيف AllArgsConstructor إضافة java.beans.ConstructorProperties للمنشئ. علاوة على ذلك ، إذا لم يكن هناك تعليق توضيحي ، يستخدم Jacson المُنشئ الافتراضي والرسائل ، لأن لا يتم حفظ أسماء معلمات المُنشئ بعد التحويل البرمجي. إذا كان هناك تعليق توضيحي ، فسيتم الإشارة إلى أسماء المعلمات فيه (وفقًا لاتفاقية جافا) ، ويستخدم جاكسون المُنشئ. يتغير التعليق التوضيحي في Lombok SneakyThrows الاستثناءات المحددة للاستثناءات غير المحددة.
  • طرح التقرير أيضًا سؤالًا مثيرًا للاهتمام: "هل نحتاج إلى استثناءات محددة من حيث المبدأ؟" اعتقدنا.

اليوم الثاني


رد الفعل المتشددين: كيفية بناء الناشر الخاص بك <؟> - Oleg Dokuka


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

التعلم الآلي في جافا من لا شيء إلى الإنتاج في ساعة واحدة - ديريك فيرغسون ( عرض )


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

الرسالة الرئيسية هي: يمكنك استخدام Google TensorFlow لتدريب النماذج من Java ، ولكن دعم التدريب محدود. ولكن يمكنك استخدام نماذج مدربة. على سبيل المثال ، قم بتحميل نموذج مدرب إلى TensorFlow microservice وأرسل الطلبات من Java أو أي خدمة أخرى إليه للحصول على إجابة. على سبيل المثال ، تعرف على صورة ، وأخبرها بالأعراض ، ونوع المرض ...

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

Micronaut vs Spring Boot ، أو من هو الأصغر هنا؟ - كيريل Tolkachev ومكسيم Gorelikov


قارن Cyril و Maxim الإطارات الحديثة من حيث سرعة بدء التشغيل ، ومقدار الذاكرة اللازمة للتشغيل ، وتعقيد الترميز.

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

الموزع التفاعلي ok.ru/music - Vadim Tsesko ( عرض )


يتحدث Vadim Tsesko عن هندسة موزع الموسيقى في Odnoklassniki. يحتوي التقرير على وصف للخوادم وأدوارها ، ووصف للموازنة وكيفية توفير التسامح مع الأخطاء والتوافر العالي. بشكل منفصل - حول النهج التفاعلي في حالة حقيقية بدون تفاصيل فنية خاصة. أظهر OK مثالاً عمليًا لاستخدام نهج رد الفعل.

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

الربيع التفاعلي - جوش لونج


التقرير الذي سافرنا إليه: في الواقع لا ، لكن جوش لونج هو أحد النجمين الكبيرين في المؤتمر. تقريره رائع ، يجمع بين الفكاهة والتكنولوجيا.

ما نسميه تقريرًا عمليًا هو جلسة ترميز مباشرة حول إنشاء الخدمات الدقيقة التفاعلية باستخدام Spring WebFlux. إنه يعطي فهمًا عامًا لما هو واجهة برمجة التطبيقات التفاعلية ، ويقدم مثالًا للاستخدام في Spring 5 ، والمكافأة هي عرض تقديمي ممتع. كان هناك أيضًا مثال مع وكيل رد الفعل كبديل لـ Zuul. ننصح الجميع بالنظر.

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


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

من بين التقارير حول التفاعل كانت لكل ذوق: وتقنية بحتة ، على سبيل المثال ، جوش لونج ، الذي أخبر كيفية القيام بالتفاعل في الربيع. والحالات الحقيقية لاستخدام التفاعل - على سبيل المثال ، Vadim Tsesko من زملاء الدراسة.

تقنيتنا الرئيسية هي Spring ، لذلك نعتبر تقرير Josh Long أمرًا لا بد منه. ( رابط إلى المستودع من التقرير ). هناك مثال على الخدمة التفاعلية التي تتفاعل مع مونغو ، والخدمة التفاعلية التي تتفاعل مع خدمة تفاعلية أخرى. كان مفيدًا جدًا بالنسبة لنا لمعرفة ذلك.

Source: https://habr.com/ru/post/ar427517/


All Articles