كزافييه نوريا على القضبان 6 ، والاستشارات وأكثر من ذلك

بالفعل هذا السبت ، سنلتقي مع جميع روبيات في المؤتمر الرئيسي المكرس لهذه التكنولوجيا - RubyRussia 2019 . 28 سبتمبر قريب جدًا ، وفي هذه المقابلة ، تم إعداد الأسئلة الخاصة بـ Xavier Noria بواسطة مطور Evrone Pavel Argentov ، وساعده الطلاب والمعلمون الذين عمل معهم في دورة "لغات برمجة الإنترنت" في جامعة MSTU.

صورة
صورة نادرة من الزيارة الأخيرة لشافير إلى روسيا - في RailsClub موسكو 2012

ما الذي تعتبره الأكثر إثارة للاهتمام والأكثر أهمية لما حدث مؤخرًا في عالم RoR؟

أعتقد أن Rails 6 كان إصدارًا مثيرًا للإعجاب. مكونات أساسية جديدة ، ودعم قواعد بيانات متعددة ، واختبار مواز ؛ محمل الإقلاع الجديد الذي "يرسل إلى التاريخ" أشعل النار الشهير مع التحميل التلقائي.

يمكنك كسب العيش مع ريلز الاستشارات. ماذا أعطاك هذا كمبرمج؟

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

متابعة للسؤال السابق ، بناءً على تجربتك ، ما الذي يجب على مطوري Rails مراعاته؟

يجب على المطورين أولاً معرفة Ruby and Rails بأعمق ما يمكن. هذا يعني قراءة الكتب والوثائق ، بدلاً من نشر مقالات المدونة. يجب على السيد امتلاك صكه. على سبيل المثال ، تحتاج إلى فهم SQL جيدًا حتى يكون Active Record بمثابة محفز للعملية ، وليس الصندوق الأسود. استخدم "السجل النشط" - لإنشاء SQL بأمان وبسهولة من شأنه أن يكون مكتوبًا بخط اليد - ومعالجة مجموعات البيانات الناتجة بسهولة. من المهم فهم HTTP الصحيح لأنه اللغة التي يتحدث بها التطبيق إلى العالم الخارجي (بما في ذلك تذكر WebSockets). هناك العديد من الأشياء الأخرى التي يجب وضعها في الاعتبار ، ولكن أود أن أذكر الأداء بشكل خاص. تحتاج إلى معرفة كيفية قيادة المعايير ، تحتاج إلى معرفة GVL في التصوير بالرنين المغناطيسي وكل ذلك. ابحث عن موارد حول هذا الموضوع ، ادرسها ، حدس مستنير.

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

أنا شخصياً أشك في مثل هذه التعميمات. روبي يثيرني ، سكالا تثير مبرمجي Scala. لقد كنت أقوم ببيرل منذ عدة سنوات وأحبه كثيراً ، لكن الكثيرين لا يحبونه. تجد العقول المختلفة متعة في أشكال الشكليات المختلفة ، حتى تفضيلاتك الخاصة قد تتغير بمرور الوقت. كمبرمج ، أنت أفضل حالاً في استخدام أكبر عدد ممكن من اللغات والعديد من النماذج قدر الإمكان. كانت اللغة التي حطمت رأيي هي Prolog. كان النموذج الذي أثر فيي أكثر "البرمجة الأدبية" بأسلوب Knuth. من خلال هذه الطرق المختلفة تماما البرمجة يجعلك أفضل. أجد روبي مرنًا جدًا وعالي المستوى.
المستوى العالي يساعد على القول "أقرب إلى المهمة." هذا يجذبني إلى لغات عالية المستوى (VHLL). أنا عالم رياضيات عن طريق التعليم ، وأستطيع أن أعمل مع أي شكل من أشكال الشكليات التي سوف يزرعونها ؛ لغات البرمجة هنا هي لعب الأطفال. تورينج الكمال ، على سبيل المثال ، لا يتزامن مع التكافؤ العملي. لحل المشاكل الحقيقية ، من الصعب التوصل إلى شيء أفضل من VHLL. تشعر أنك قوية ومنتجة حقًا ، نظرًا لوجود قدر أقل من التعقيد المصطنع ، ويمكنك التركيز بشكل أفضل على الحل الحقيقي للمشكلة. كان حل المشكلات الحقيقية هو ما جعلني أمارس مهنة في البرمجة. بشكل عام ، "حيث هناك حاجة إلى C - خذ C".

نحن نجعل المؤتمر "روبي" أكثر من "على القضبان". ما تطبيقات Ruby الموجودة بجانب Rails ، أو حتى webdev؟

إذا كانت الذاكرة تخدمني بشكل صحيح ، فإن أول برنامج روبي استخدمته هو FreeBSD Port / Package Manager. كان ذلك في أوائل 2000s قبل القضبان. يعد برنامج Vagrant أو Metasploit أو Jekyll أو Chef أو Puppet أو Homebrew من أشهر برامج Ruby التي لا ترتبط مباشرة بتطوير الويب. بالإضافة إلى ذلك ، نادراً ما تتكون الأنظمة في شركات Rails من واجهة ويب فقط. عادة ، هناك نظام بيئي كامل للبرمجيات. الشركة التي لغتها الرئيسية هي روبي عادة لديها أيضًا برنامج روبي خلفي نظيف (ربما بالتزامن مع التقنيات الأخرى).

على سبيل المثال ، في الشركة التي أستشيرها حاليًا مع Stuart Delivery ، لقد قمت للتو بتنفيذ خدمة تقبل الرسائل من كافكا إلى Redis لمعالجتها من قبل عمال Sidekiq. لقد عملنا أيضًا على مشروع ترحيل بيانات غير تافه وعلى محاكي أعمال مثير للغاية. كل شيء مكتوب في روبي النقي. الواجهة الأمامية من جانب الخادم في الشركة هي Rails ، ولكن خلف الكواليس وعلى المنصة بأكملها ، هناك العديد من البرامج واللغات المختلفة. هذا أمر شائع في ممارستي.

المفسد الوقت - ماذا سيكون تقريرك حول في RubyRussia 2019؟

سأتحدث عن Zeitwerk ، جوهرة Ruby الجديدة التي تنفذ التحميل التلقائي ، وإعادة التشغيل ، والتمهيد النشط لمشاريع Ruby. Rails 6 يفوض هذه الميزات إلى Zeitwerk بشكل افتراضي.

ما هو أفضل انطباع عن عالم روبي؟ ربما الكود ، التكنولوجيا ، المعرفة أو الموقف؟

هذا انطباع شخصي ، لكني أعتقد أن عالم روبي كان مبتكرًا بشكل مدهش. تحدثنا عن هذا مع تيرينس لي منذ بعض الوقت. بالنسبة للمبتدئين ، أعتقد أنه من الصعب الاختلاف مع القول بأن Rails تمثل ثورة حقيقية في تطوير الويب. كانت شركات مثل Heroku أو New Relic أو Shopify أو GitHub مجرد ثورية. ومع ذلك ، في تجربتي ، فإن الأشخاص الذين ينجذبون بشكل أساسي نحو مجتمعات معينة يكونون أعمى جزئيًا لما يحدث في المجتمعات في الحي. أنا متأكد من أنه يمكن العثور على الابتكار في أي مجتمع ، سواء كان سكالا أو هاسكل أو حتى برينفوك. وبالتالي ، إذا تمكنت من مراقبة كل مجتمع على مستوى العالم ، فسوف أجد أن مجتمع روبي ليس مبتكرًا بشكل خاص لأنهم جميعًا مبتكرين بطريقة أو بأخرى.

في رأيك ، هل تحتاج Rails إلى شيء يشبه مكتبة مكونات CMS قياسية؟ مثل السقالات لبناء أجزاء CMS القياسية؟

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

الحلول الحديثة غير متجانسة بشكل عام: يمكننا استخدام Julia for ML و Java لأعباء العمل الثقيلة. هل يوفر روبي أدوات للتفاعل اللغوي بما فيه الكفاية؟ هل هناك أي أدوات لجعل هذا سهلا؟

يتواصل JRuby مع Java أصليًا. يمكنك كتابة C-extensions لـ MRI ، ويمكنك لف مكتبات C بطريقة محمولة باستخدام FFI ، و Helix يسمح لك بكتابة ملحقات في Rust. بشكل عام ، من الأسهل التواصل مع العمليات بطرق قياسية باستخدام نظام الملفات ، المقابس ، HTTP ، قواعد البيانات ، gRPC ، وسطاء الرسائل.

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

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

هناك العشرات من لغات البرمجة للاختيار من بينها. لماذا تختار Ruby ، ​​لماذا لا Python أو JavaScript ، ماذا عن Clojure ، Rust ، C ++ ، Go؟ جميع الخيارات مثيرة للجدل أو العكس - هذه كلها خيارات رائعة. اختر واحدة ، واجعل الدورة لا تنسى ، واجعل الطلاب يدرسون البرمجة ، وأفضل الممارسات ، ومفهوم المصطلح ، ودعهم يتعلمون كيفية التحقق من الوثائق ، واستكشاف القضايا المهمة ذات الصلة التي تتجاوز الشكليات. هذا هو ما سيجعلهم ينمو ، وإعدادهم للمهنة بشكل أساسي. في رأيي ، هذا هو دور الجامعة.

هناك العديد من الأدوات المختلفة لنفس الشيء: Rails core مع Active Record و Dry-rb وغيرها. هل يجب علي الاستيلاء على البدائل؟ ألا تجعل القضبان "مسارات" بدلاً من "مسارات"؟

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

نراكم في RubyRussia!

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

لن يكون هناك تقارير فقط ، ولكن أيضًا مواقف لأفضل الشركات:

المنظم - إيفرون
الشريك العام - توبتال
الشريك الذهبي - Gett
شركاء الفضة - Valarm ، JetBrains ، Bookmate و Cashwagon
الشريك البرونزي - InSales

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


All Articles