"من الأهمية بمكان أن يضع المجتمع معايير": مارشين موسكالا حول كوتلين



قبل عامين ، كان هناك الكثير من منشورات المدونة "انظر إلى أي لغة مثيرة للاهتمام في Kotlin" التي أوضحت الأساسيات. في عام 2019 ، لم تعد بحاجة إلى مضغ الأساسيات ، ولكن الآن يظهر المنشور بتنسيق مختلف تمامًا. مارسين موسكالا ، الذي كان يعلم الناس هذه اللغة لسنوات عديدة ، ينشر الآن كتاب "Kotlin الفعال" - أي ليس فقط "كيفية كتابة Kotlin" ، ولكن "كيفية كتابة Kotlin بأفضل طريقة".

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

- أولا ، من فضلك قل لنا قليلا عن نفسك. ماذا فعلت قبل أن تبدأ في تثقيف الناس وإنشاء Kt. أكاديمية ؟

- لقد كنت البرمجة منذ الطفولة. لقد بدأت باستخدام Visual Basic عندما كان عمري 10 أعوام لأنني أردت إنشاء ألعاب. في وقت لاحق ، خلال التدريب ، اكتشفت أندرويد بنفسي وكرست نفسي لتطوير أندرويد. في السنوات التالية ، عملت لشركات مثل Samsung و Warta و mBank (كموظف في Apreel) و Docplanner و Gamekit. واكتشفت كوتلين أيضًا وسقطت في الحب. بدأت في تقديم عروض حوله ، وكتابة المقالات والكتب. قريباً ، بدأت الشركات تلجأ إلي للتدريب ، وهكذا ظهر Kt. أكاديمية.

- هل لديك حالة شريك JetBrains ، وماذا يعني ذلك؟ ما هي المتطلبات التي تحتاجها لتلبية؟ هل تتحدث غالبًا مع JetBrains؟

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

أظل على اتصال مع بعض أعضاء فريق Kotlin ، وكذلك مع المبشرين ، لكنني لست متأكدًا من مدى ارتباط هذا بوضع الشريك. في الغالب ، تعد هذه الحالة طريقة لتقرير JetBrains بأن شخصًا ما يعرف تقنية JetBrains معينة ، وأن الشهادات من هذا الشخص لها قيمة.

- أنت تعلم شعب Kotlin ، بحيث تحصل على الكثير من الملاحظات والأسئلة حوله من أشخاص مختلفين. ماذا يقولون وماذا يطلبون في معظم الأحيان؟

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

- هل هناك أي خطأ أو مضاد مشترك في كود Kotlin لأشخاص مختلفين؟

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

- في البداية ، جاء الجميع إلى Kotlin فقط من جافا. الآن هل يجب عليك تعليم الأشخاص الذين لا يعرفون جافا على الإطلاق ، ولكنهم يريدون تعلم Kotlin؟

- نعم ، لقد قمت بتدريب الكثير من المطورين في JavaScript و Swift ، وفريق من الروك وحتى فريق من المطورين في C ، الذين كانت Kotlin قفزة هائلة. كما يفكر كوتلين كثيرًا في المذهب الثوري - آمل أن ينضموا أيضًا.

- هل ستوصيك بتعلم Kotlin كلغة أولى في عام 2019؟ أم أنه سيتعين على المبتدئين التعامل مع Java ، لذلك سيكون من الصعب؟

- إذا أراد أي شخص الانخراط في تطوير Android ، فإنني أوصي به بالتأكيد. إذا كان لدي المزيد من الوقت ، فسوف أكتب كتابًا عن تطوير نظام Android الحديث ، ولم يمس الأصول على الإطلاق ، ولكن اقترح على الفور طرقًا جديدة: Kotlin و AndroidX و Room و WorkManager و ConstraintLayout و MVVM مع ViewBinding (وقريباً Jetpack Compose ) ... يمكننا العيش بشكل جيد بدون جافا ، مكتبة الدعم ، DatabaseHelper ، AlarmManager.

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

- يتم تقييم اللغات المختلفة بشكل مختلف في سياق التعلم: غالبًا ما يتم الإشادة بيثون في هذا الصدد ، وفي بعض الأحيان يتم توجيه جافا. ما يشبه تدريس Kotlin مقارنة بجافا؟

- من ناحية ، في Kotlin ، من الأسهل بكثير القيام بشيء ما. عندما تقوم بتدريس Kotlin ، فإن القدرة على وضع العديد من الفئات والوظائف في ملف واحد تساعد كثيرًا.

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

- في بعض الأحيان يُنظر إلى Kotlin على أنها "لغة Android" فقط ، ولكن لها طموحات في مجالات أخرى. ماذا ترى من التدريبات الخاصة بك: كل الطلب عليها من مطوري المحمول ، أو هل تنطبق على مقدمي الدعم؟

- منذ عام مضى ، كان الجميع تقريبا لمطوري Android. والآن ، على ما أظن ، حوالي 50 إلى 50. هناك أيضًا اهتمام متزايد بتدريب Kotlin Coroutines وفعاليات Kotlin الفعالة.

- بالنسبة إلى سؤال Kotlin الفعال: يُسمى كتابك الجديد نفسه ، وتقريرك عن Mobius هو Kotlin الفعال. هل تعني هذه الأسماء المتشابهة أن التقرير الجديد هو سرد موجز لأطروحات الكتاب كله؟

- لكلمات "فعالة" و "فعالة" في البرمجة معان مختلفة تمامًا ، مثل "آمنة" و "آمنة". "فعال" هو أكثر عمومية ، عن أفضل الممارسات المختلفة. و "Efficient Kotlin" يتعلق فقط بتحسينات الأداء والذاكرة ، أما الجزء الثالث فهو مخصص لهذا في الكتاب. بالنسبة إلى Mobius ، هذا أفضل ، لأن المؤتمر معروف بالتقارير المتقدمة للمطورين ذوي الخبرة. ووقت التقرير محدود ؛ لا يمكن تغطية الكتاب بأكمله هناك.



- وهل مبادئ "Kotlin الفعالة" و "Kotlin الفعالة" مناسبة لجميع المطورين ، بغض النظر عما يكتبون على Kotlin ، أم أن هناك أي خصوصية هناك؟

- الجميع: ليس فقط Android والواجهة الخلفية ، ولكن حتى أولئك الذين يستخدمون Kotlin / JS و Kotlin / Native.

- اسم "Effective Kotlin" يعيد إلى الأذهان "جافا الفعال" لجوشوا بلوخ. كيف يبدو كتابك مثلها؟

- هناك العديد من الكتب بتنسيق "Effective X" ، وكلها مبنية على نفس المبدأ: عرض بأمثلة ملموسة كيفية كتابة التعليمات البرمجية بشكل أفضل. لقد استلهمت من Java الفعال وغيرها من Effective C # و Effective Python و Effective C و JavaScript الفعالة. ولكن لا يوجد أي ارتباط صارم لأي من هذه الكتب - كل هذه اللغات مختلفة ، وهناك حاجة إلى نصيحة مختلفة معهم. على الرغم من أنك إذا قرأتها جميعًا ثم قرأت فعالية Kotlin ، يمكنك ربط أي من نصيحتي بنصيحة الكتب الأخرى "الفعالة". وكذلك مع نصائح من كتب مؤثرة أخرى مثل Code Complete و Clean Code و Clean Archutecture و Structure وتنفيذ برامج الكمبيوتر وما إلى ذلك. كان هدفي هو أخذ أفضل النصائح التي تناسب Kotlin وتقديمها بأكثر الطرق المفهومة.

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

- نعم ، أعتقد أن المجتمع قد نما كثيرًا بحيث أصبح الآن بحاجة إلى أفضل الممارسات. وفقًا لموقع الويب الرسمي ، يوجد بالفعل أكثر من مليوني من مطوري Kotlin في العالم. هذا كثير يوجد بالفعل العديد من "How to ..." لتنسيق المقالات والأجوبة على Stack Overflow ، ولكن هناك المزيد والمزيد من الأشخاص الذين اضطروا إلى استخدام Kotlin بسبب حل CTO ، أو الذين أصبحت اللغة الأولى لهم. الآن وضع المعايير أمر بالغ الأهمية لأن Kotlin يسمح بالكثير ، وإذا لم نمنع الناس من القيام بأشياء مجنونة ، فقد ينتهي بهم الأمر إلى حبها والبدء في اعتبارها مربكة وغير قابلة للقراءة.

- أفضل الممارسات هي دائمًا موضوع قابل للنقاش ، تختلف آراء الناس حول "الأفضل". هل هناك مناقشات في التدريبات أو التقارير الخاصة بك؟

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

"أنت تنشر الكتاب الثاني." كيف تبدو عملية العمل عليها؟ على سبيل المثال ، كيف يمكنك تحديد من سينشرها؟

- أول ما نشرته في حلف. لم أكن راضيًا تمامًا عن هذا التعاون ، لذلك قررت نشر تطبيق Kotlin الفعال بمفردي باستخدام LeanPub. حتى الآن ، التجربة ممتازة. لدي مراجعين متطوعين ممتازين ومصمم جيد وطباعة لطيفة. نشأت مشاكل فقط مع الحساب في أمازون ، لكنني آمل أن يكون لدي وقت للتعامل معه قبل نشر النسخة النهائية من الكتاب.

- هل تنصح المطورين بكتابة الكتب؟ ما مدى فائدة هذا للمطور؟

"للوصول إلى الكتاب ، تحتاج إلى معرفة أن الأمر سيستغرق بالتأكيد وقتًا أطول مما تتوقع". تقدير 1-2 ساعات لكل صفحة. وإذا كنت مطورًا ، فمن غير المرجح أن يجلب لك الكتاب أموالًا أكثر مما لو كنت قد قضيت هذا الوقت في البرمجة. من ناحية أخرى ، سوف تتعلم الكثير. لكتابة بثقة ، تحتاج إلى دراسة الموضوع بعناية وفهم كل حجة حقًا. وهذه تجربة فريدة من نوعها.

- والسؤال الأخير: إذا كنت تستطيع تغيير شيء واحد في Kotlin ، ماذا سيكون؟

- أعتقد أنني سوف تتخلص من وحدة. انه مزعج قليلا. خاصة عند التفاعل مع بعض اللغات الأخرى.

أخيرًا ، استرجع الروابط لما ورد في النص. يتم نشر كتاب "Effective Kotlin" على Leanpub ، ويتم نشر وصف تقرير مارسين الجديد ، الذي سيصل به إلى موبيوس في ديسمبر ، على موقع المؤتمر (ويمكنك أيضًا رؤية برنامجه الكامل هناك ).

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


All Articles