"يمكنني أن أخبركم عن الألم المشترك لجميع مطوري iOS" - 10 أسئلة للمبرمج ، العدد 2



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


نيكولاي ليخوغرود ( ليشكوغرود ) من موسكو. بدأ بـ HTML و Basic في الصف التاسع. ثم درس بشكل مستقل C # ، ودخل جامعة VMK Moscow State ، ثم انضم إلى فريق Any Void. جنبا إلى جنب مع Any Void ، انتقل إلى Yandex ؛ خلال 2.5 سنة الماضية كان يعمل كرئيس فريق لمجموعة تطوير Yandex.Maps لنظام iOS.

1. أخبرنا عن الميزة التي نفذتها والتي تفتخر بها.


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

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

تطفو الدمية على نيفا ، ولا شيء غير عادي

2. والآن - عن fakap الأكثر شرسة.


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

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

3. صف مساحة العمل الخاصة بك: من الكرسي والشاشة إلى بيئات البرمجة والمرافق المفضلة لديك.


"أعطوني كرسيًا وطاولة أيضًا". عليها شاشة Thunderbolt وجهاز كمبيوتر محمول. وكذلك لوحة مفاتيح وماوس لاسلكيين ، بحيث يمكنك العمل مع الشاشة فقط.



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

4. بأي مبدأ تختار الوظيفة؟ المكدس ، المنتج ، ظروف المعيشة ، المال؟


- ربما سأجيب على السؤال " إذا اخترت ...". في الواقع ، في الواقع ، لم أغير أبدًا وظائف. لقد نمت بالفعل في Yandex - لقد عملت لأكثر من خمس سنوات. الآن لدي موقع جيد ، فريق ، مسؤوليات ، العديد من الخطط.

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

قضية نقدية مهمة أخرى. ولكن هنا يبدو أن كل شيء زائد أو ناقص. أجري الكثير من المقابلات وأعلم كم تقدم في الشركات الأخرى.

5. ما هي التقنيات واللغات التي تستخدمها والتي ترغب في تصحيحها؟


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

حتى عملنا يعتمد على ما يجمع Xcode لفترة طويلة. يعمل بشكل جيد مع Objective-C ، لكنه سيئ مع Swift. إذا قام بذلك بشكل طبيعي ، فلن يضطر إلى تقسيم التطبيق إلى وحدات - كان علينا الاستثمار فيه. الآن نقوم بتطوير المزيد في مشاريع الاختبار ، وليس في التطبيق الرئيسي. ثم نرمي من مشاريع الاختبار إلى المشروع الرئيسي. على الرغم من أن هذا أفاد في نهاية المطاف المشروع بأكمله ، كانت هناك بعض التكاليف لتعلم كيفية العمل بهذه الطريقة.

6. أين من الأفضل التعلم من تجربة شخص آخر - في الجامعة ، في المؤتمرات ، في المركز؟ في مكان آخر؟


- الأكثر فاعلية هو عندما يكون لديك مشكلة معينة وتبحث عن حل. "للتعلم من التجربة" - لا أفهم حقًا ما يعنيه هذا. لكن "أين تبحث عن حل للمشكلة" أمر مفهوم. حيث تم العثور عليها. أنت فقط تحشوها في Google وترى ما تقوله لك.

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

7. إذا كان لديك موارد غير محدودة (الوقت والمال والسلطة والأشخاص) ، فما المشروع الذي ستقوم به؟


- لدي قائمة صغيرة كبيرة "كنت أرغب لفترة طويلة ، ولكن ليس لدي وقت" - ما أريد القيام به في الخرائط. هناك أجزاء أود تحسينها.

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

8. كيف تسترخي؟ ماذا تفعل بجانب العمل؟


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

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

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

9. أخبر عن 3 كتب مفضلة - تعليمية وعلوم شعبية وخيال.


- لم أتدرب مع كتب التدريب. في العمل ، يمكنني القول أنني لم أقرأ كتابًا واحدًا. في البداية ، ربما كانت هذه الكتب على C ++. أتذكر السفر إلى مخيم الأطفال: كان الناس عاديين ، وكان لديّ C ++. ونتيجة لذلك ، لم أقرأ أي شيء ، لأنه لم يكن هناك جهاز كمبيوتر في متناول اليد. قرأت - يبدو مفهوما ، ولكن كيف يمكنني تطبيق هذا على المهام الخاصة بي؟ كيف تكتسب الخبرة؟ أنا ممارس أكثر ، ولست منظرا. ربما لا أعرف أي مصطلحات مثيرة للاهتمام يستخدمها الرجال الآخرون ، ولكن في نفس الوقت يمكنني القيام بعملي. تعلمت هذا فقط من خلال حل المهام الصعبة. كنت أبحث دائمًا عن الخبرة والحلول ببساطة على الإنترنت.

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

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

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

10. إذا استيقظ الذكاء الاصطناعي أمام عينيك ، فماذا ستقول له؟


- السؤال هو ماذا يعني "الوعي"؟ إذا تم إجراؤه ببساطة لاجتياز اختبار تورينج ، فهو ليس وعيًا بعد. ولكن إذا لم يدخل المرء في مثل هذه التفاصيل ، فسأسأل عن حل أي مشاكل محددة. ما زلت شخص الممارسة. "كيف تجعل Xcode أسرع؟" :).

ولكن عليك بالتأكيد أن تبدأ بـ "مرحبًا ، كيف حالك؟" "كيف حالك؟" ، "ماذا تفعل؟" - قد تحتوي إجابات هذه الأسئلة على بعض ملاحظات التأمل. كيف تقيّم الآلة شؤونها ومزاجها حقًا؟ وماذا تفعل الان؟

سؤال من البطل السابق: ما هي التكنولوجيا التي استمتعت بها كثيرًا في عملية التعلم؟


- هل هي متعة؟ لم أتعلم بعد كيف أستمتع بالعمل والدراسة. تعلمت أن أتعامل معهم بهدوء وأعمل بشكل جيد. iOS SDK ، على سبيل المثال ، لم تسبب لي الكثير من الاهتمام ، لأنه بسيط بشكل عام.

كان الأمر مثيرًا للاهتمام في الجامعة عندما استخدمت التعلم الآلي في المشروع. كان من المثير للاهتمام أن نفهم أنه لا يوجد شيء معقد في ML. بمعرفة معلمات الإدخال ، يمكنك التنبؤ بالنتيجة أكثر أو أقل. ربما ، بسبب هذا جزئيًا ، لا أشعر بالنشوة من الذكاء الاصطناعي ، التي يعاني منها الكثيرون. أعلم أن هذه كلها خوارزميات فقط.

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

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

المكافأة: اطرح أي سؤال على مطور آخر.


- مع العلم أنه لا يمكنك العودة ، هل ستطير إلى المريخ في الرحلة الأولى؟

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


All Articles