نظرة من الداخل على عملية تطوير تطبيقات الجوال على Facebook

مؤلف: Laura McKinney
تاريخ الخلق: 4 Lang L: none (month-011) 2021
تاريخ التحديث: 1 تموز 2024
Anonim
الموضوع حصري - شاهد كيف قرأت جميع محادثات حبيبتي من هاتفي عن بعد - درس مهم جدا
فيديو: الموضوع حصري - شاهد كيف قرأت جميع محادثات حبيبتي من هاتفي عن بعد - درس مهم جدا

المحتوى


قمت مؤخرًا بزيارة مقر Facebook في لندن للتعرف على عملية تطوير تطبيق Facebook للجوال والمحافظة عليه. هناك الكثير مما يحدث هنا مما قد تدركه: بعض تطبيقات Facebook تتم معالجتها هنا بالكامل ، مثل WhatsApp لسطح المكتب وتطبيق Workplace الموجه للأعمال.

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

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

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


كيف يمكنك إدارة تطبيق باستخدام هذا العدد الطموح من الميزات

لقد تحدثت مع Tal Kellner عبر نظام الحضور عن بُعد على Facebook. Tal هو مدير برنامج تقني ، مسؤول عن Release Engineering Team ومقره في مكتب تل أبيب الهندسي. كانت أكثر من سعيدة لتبادل التفاصيل الجريئة.

قامت Tal وفريقها بتحميل الإصدار Lite من Facebook إلى iOS لأول مرة

ما تعلمته كان رائعا للغاية سواء من منظور المطور أو كمستخدم. هذا ما اكتشفته.

إدارة المشاريع في الفيسبوك - لماذا سكروم> الشلال

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

تختار شركات مثل Facebook بدلاً من ذلك نهجًا أكثر حداثة لإدارة المشاريع يسمى "سكروم"

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


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

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

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

يمكن لأي شخص من أي مكان داخل المنظمة اقتراح فكرة عن ميزة جديدة

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

يسمح هذا لـ Facebook بتنفيذ دورة تطوير سريعة للغاية ، مما يتيح تحديثًا جديدًا للجوال كل أسبوع ، وآلاف عمليات التعدي (التغييرات المقترحة في الكود) بين ذلك الحين. إذا كنت تعتقد أن هذا أمر مثير للإعجاب ، فإن إصدار الويب (الذي يخدم الخلفية أيضًا تطبيق الجوّال) يتم تحديثه مرة كل ساعتين إلى ثلاث ساعات!

يدعم Facebook بوجه عام الأفكار الجديدة والشركات الناشئة. حتى أن لديها مبادرة تسمى LDN LAB المكرسة لدعم الأفكار والشركات الجديدة.

إيجاد التوازن

مأخوذة من شرائح Tal الخاصة

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

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

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

التحكم في النسخة وتغيير شعوذة

لمعالجة هذه التحديثات والتغييرات على الكود ، يستخدم Facebook نسخته المعدلة من Mercurial. هذا بدلاً من Git المستخدم على نطاق واسع جدًا ، والذي يبدو أنه لم يتناسب أيضًا مع أغراض الشركة. Phabricator هو المكافئ لـ GitHub ، ويستخدم الكثير من المكونات الإضافية للمساعدة في تبسيط سير العمل وأحيانًا فقط لجعل الأشياء أكثر متعة (يحب Facebook الميمات على ما يبدو).

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

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

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

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

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

للتجميع ، يستخدم Facebook أداة أخرى تسمى Buck. يمكن لأداة الإنشاء المفردة هذه بناء أي شيء عندما يتعلق الأمر بتغليف التطبيق. ليست هناك حاجة لخيارات منفصلة مثل Gradle أو Ant عند استهداف منصات مختلفة.

اصطياد الحشرات في الوقت المناسب

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

تحقيقًا لهذه الغاية ، يقوم الفريق بتقسيم اختبار البرامج إلى مستويات يشار إليها باسم C1 و C2 و C3.

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

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

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

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

يمتلك المختبرون أيضًا بعض الأدوات الفريدة والمثيرة للاهتمام التي يقدمونها للإبلاغ عن الأخطاء بسرعة

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

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

أدوات قوية للأتمتة وضرب القوة

للحفاظ على هذه العملية بأسرع وقت ممكن وسلسة ، يستخدم Facebook عددًا كبيرًا من الأدوات المختلفة. لقد رأينا بالفعل كيف تستخدم الشركة Phabricator و Sapienz ، ولكن لديها أدوات ومكونات إضافية لمراحل أخرى.

تجمع أداة تسمى Picknic جميع طلبات السحب (التغييرات التي أجراها الموظفون) في مكان واحد للمراجعة السريعة والسهلة.

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

عند إجراء اختبار خطأ لإصلاح شخص ما ، يقوم برنامج الروبوت المسمى Nagbot بإبلاغ المسؤولين عنه ويحثهم بلطف على إنجاز العمل

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

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

بالطبع لن يضيع Facebook وقتًا في تحميل كل إصدار جديد من تطبيقاته إلى Play Store و App Store و Amazon و البقية. يوجد أيضًا تطبيق لذلك يسمى Mobile Push Train.

إغلاق الأفكار

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

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

  • الحفاظ على سيد نظيفة.
  • لديك فريق واحد من ذوي الخبرة في هندسة الإصدار.
  • الافراج في الوقت المحدد في كثير من الأحيان.
  • منتجات Dogfood.
  • كن لطيفًا مع المستخدمين.

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

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

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

تم إطلاق ZTE Axon 10 Pro للتو في الولايات المتحدة ، وكان وصولها متوقعًا للغاية. يتميز هذا الهاتف الذكي بمواصفات راقية وأداء ممتاز لجزء بسيط من تكلفة الرائد التقليدي. في حين أن بعض أحدث الإصدارات في عا...

أعلنت ZTE أن خليفة Axon 7 سيطلق عليه ZTE Axon 9.قد تكون القفزة في الأرقام متعلقة بكيفية ظهور العلامة التجارية Axon 8 باللغة الصينية.من المتوقع أن يتم إطلاق Axon 9 في وقت لاحق من عام 2018.تم إطلاق ZTE ...

مقالات رائعة