Facebook'un mobil uygulama geliştirme sürecine bir bakış

Yazar: Laura McKinney
Yaratılış Tarihi: 4 Lang L: none (month-011) 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
Facebook'un mobil uygulama geliştirme sürecine bir bakış - Uygulamaların
Facebook'un mobil uygulama geliştirme sürecine bir bakış - Uygulamaların

İçerik


Geçenlerde, mobil Facebook uygulamasını geliştirme ve sürdürme sürecini öğrenmek için Londra'daki Facebook Merkezini ziyaret ettim. Burada muhtemelen sizin tahmin ettiğinizden çok daha fazlası var: Facebook'un uygulamalarından bazıları, masaüstünde WhatsApp ve iş odaklı Workplace uygulaması gibi, tümüyle burada işleniyor.

Ofisler, Facebook'un imajından beklediğiniz şeylerdir, ancak Sosyal Ağ düzeyindeki aşırılık seviyelerine olmasa da. Burası ciddi işlerin yapıldığı bir yer, ancak yine de şık, ilginç ve rahat bir ortam var. Çalışanlar, seçtikleri yerde çalışmak için dizüstü bilgisayar taşıyabilirler, posterler yapmak için bir baskı odası var (sadece çünkü), duvarların birçoğunda sanat çalışmaları yaptırıyorlardı ve dev bir Ninja Kaplumbağa - nedenini hiç anlamadım.

Oh, ve yemek inanılmaz. Çin Yeni Yılı sırasında oradaydım ve çoklu domuz gobekleri. İyi zamanlar.


Ancak, dekor ve mutfağın tadını çıkarmak için orada değildim, Facebook hakkında mobil cihazlarda öğrenmek için oradaydım. Daha spesifik olarak: Nasıl bu dünyada bu kadar büyük ve iddialı bir projeyi sürdürmeye devam edersiniz? Facebook arka uç iki milyardan fazla kişiye hizmet veriyor ve Android uygulaması tek başına her hafta piyasaya sürülen yeni bir sürüm görüyor.

Çok iddialı özelliklere sahip bir uygulamayı nasıl yönetirsiniz?

Facebook’un kendi telepresence sistemi üzerinden Tal Kellner ile konuştum. Tal, Tel Aviv mühendislik ofisinde bulunan Yayın Mühendisliği Ekibinden sorumlu bir teknik program yöneticisidir. O cesur detayları paylaşmaktan çok mutluydu.


Tal ve ekibi ilk kez Facebook'un Lite versiyonunu iOS'a yüklüyor

Öğrendiğim şey hem geliştirici bakış açısından hem de kullanıcı olarak oldukça etkileyiciydi. İşte öğrendiklerim.

Facebook'ta proje yönetimi - Neden Scrum> Şelale

Herhangi bir büyük projeye bakarken, proje yönetimi yaklaşımınızı dikkate almanız gerekir. Bu örneklerden biri “şelale” proje yönetimidir. Bu, sırayla belirli bir aşamada çalıştığınız sıradan ve doğrusal bir yaklaşımdır.

Facebook gibi şirketler bunun yerine “scrum” adı verilen proje yönetimine daha modern bir yaklaşım getirmeyi tercih ediyor

En önemlisi, bu yaklaşımda bir önceki aşama tamamlanana kadar bir sonraki aşamaya başlamazsınız. Sistem, belirli aşamaların genellikle önceki aşamaya dayandığı üretimden kaynaklanır: bir duvar inşa etmeden önce tuğlaları kaynaklamanız gerekir!

Yazılım söz konusu olduğunda, bu yaklaşım kısıtlayıcıdır. En kötü durumda, bir güncellemenin yayılması çok uzun sürebilir, geldiği zaman eskidir. Dük Nukem Sonsuza dek kimse var mı?

Bu nedenle, bazı yazılım şirketleri bunun yerine çevik bir metodoloji olan “scrum” denilen daha modern bir yaklaşımı tercih ediyor. Bu yöntem en önemli işlere öncelik verir ve onu modüler parçalara böler. İç bölümler ve hatta kendi kod köşelerinde çalışan bireysel ajanlar arasındaki iletişime dayanır.

Sonuç, teoride, herkesin her zaman onlar için en çok neyin baskıda çalıştığı ve işin diğer bölümlerinin ne yaptıklarını bildiğidir. Her mühendis için yüksek bir sahiplik düzeyi vardır ve sonuçta herkes kendi işinden sorumludur. Bu sadece şirketi daha çevik kılmakla kalmıyor, aynı zamanda iş yeri memnuniyetini de arttırıyor. Hiç kimse makinede sadece bir dişli değildir.

Kuruluşun herhangi bir yerindeki herhangi biri yeni bir özellik için fikir önerebilir

Kuruluşun herhangi bir yerindeki herhangi bir kimsenin yeni bir özellik için bir fikir önerebileceğini duymak ve daha sonra devam ederse bunun üzerinde çalışmak için çok etkilendim. Bazen bu bile kendi ayrı uygulamasına dönüşebilir! Facebook, çoğu zaman olduğu gibi tasvir edildiği birkaç kişinin (ya da bir kişinin) yukarıdan aşağıya uygulanmış vizyonundan çok daha fazla işbirliğine dayalı bir projedir.

Bu, Facebook'un her hafta yeni bir mobil güncelleme sağlayan son derece hızlı bir geliştirme döngüsü uygulayabilmesini ve aralarında binlerce komisyon (önerilen kod değişikliği) yapmasını sağlar. Bunun etkileyici olduğunu düşünüyorsanız, web sürümü (arka planı mobil uygulamaya da hizmet eder) her iki veya üç saatte bir güncellenir!

Facebook genellikle yeni fikirleri ve başlangıçları desteklemektedir. Yeni fikirleri ve işletmeleri desteklemeye adanmış LDN LAB adlı bir girişimi bile var.

Bakiye bulma

Tal’ın kendi slaytlarından alınmış

Tabii ki, bir şirketin idare edebileceği şey söz konusu olduğunda her zaman hala bir sınır olacak. Bu kadar kodla her zaman iyileştirmeye yer vardır, ancak sürümün “yeterince iyi” olduğu düşünülecek bir zaman gelmelidir.

İşte bu noktada “altın üçgen” devreye giriyor. Bu üçgenin üç noktası, özellikleri, kaliteyi ve zamanı gösterir. Her şirketin burada yapacağı bir seçeneği vardır: Çatlama zamanı geldiğinde, biraz daha uzun sürmek pahasına yeni özelliklere öncelik verir misiniz? Daha fazla özellik ekleyebildiğiniz anlamına gelirse, küçük bir mevcut hatanın ağda kaymasına izin veriyor musunuz? Her şeyi yapamadığınızda, öncelik vermek zorunda kalırsınız.

Facebook'ta öncelikler kalite ve zamandır. Bir güncelleme, ayrılan pencerenin arkasına düşüyorsa, bir özellik muhtemelen geri itilecektir; bir köşe kesilmekte veya güncelleme geciktirilmekte.

Sürüm kontrolü ve hokkabazlık değişiklikleri

Bu güncellemeleri yapmak ve koddaki değişiklikleri yapmak için, Facebook, Mercurial'ın kendi değiştirilmiş versiyonunu kullanır. Bu, şirketin amaçları için de iyi bir ölçeklendirme yapmayan çok yaygın kullanılan Git'in yerine. Phabricator, GitHub'a eşdeğerdir ve iş akışını kolaylaştırmaya yardımcı olmak ve bazen işleri biraz daha eğlenceli hale getirmek için birçok eklenti kullanır (Facebook, görünüşte memelerini sever).

Dışarıdaki programcı olmayanlar için Mercurial, Git gibi bir versiyon kontrol sistemidir. Çok sayıda insanın tek bir yazılım üzerinde çalışmasına ve “ana dal” olarak adlandırılan ana uygulama sürümünü tehlikeye atmadan değişiklik ve düzeltmeler yapmasına olanak tanır. Bu araçlar kod çakışmalarını önlemeye ve denemeye olanak sağlar. Ancak bir test dalında bir değişiklik iyice onaylandıktan sonra, master'a kabul edilir.

Bazı kötü programcıların tüm kodu bozan bir yazım hatası yaptığını ve sadece bir versiyonunun olduğunu hayal edin! Bu herkes için kötü bir gün olurdu.

Mercurial gibi araçlar, scrum yaklaşımını göreceli bir kolaylıkla uygulayarak herkesin belirli özellikler üzerinde çalışmasına ve büyük bir kapta birleştirilmesinden önce hataların aynı anda çalışmasına olanak tanır.

Haftada bir kez, bir serbest bırakma adayı ustadan kesilecek ve bu daha sonra test aşamasından geçecek. Bütün haftayı hata düzeltmeleri veya yeni özellikler üzerinde çalışmakla geçiren kodlayıcılar bu noktada işlerini yeni güncellemenin içine sokacağını umarak parmaklarını geçecekler.

Ekip üyelerinin yapmış olduğu son dakika düzeltmeleri veya değişiklikler, sorumlulara yeni şubeye dahil edilmek üzere “kiraz toplama” gerektirecektir. Bildirildiğine göre, karar vericilere hediye edilen çikolata ve alkol şeklinde rüşvet kullandıkları bilinmektedir.

Derlemek için, Facebook Buck adında başka bir araç kullanır. Bu tek derleme aracı, uygulamanın paketlenmesi söz konusu olduğunda her şeyi oluşturabilir. Farklı platformları hedeflerken Gradle veya Ant gibi ayrı seçeneklere gerek yoktur.

Zaman içinde böcek yakalamak

Farklı şeyler üzerinde çalışan herkes ve düzenli olarak yapılan pek çok güncelleme olduğunda, şirketlerin yazılımlarının çalıştığından ve ciddi hatalar yaşamadığından emin olmaları çok önemlidir. Çoğunlukla, Facebook, işleri devam ettirmek konusunda oldukça iyi bir geçmişe sahip.

Bu amaçla, ekip yazılım testini C1, C2 ve C3 olarak adlandırılan katmanlara böler.

C1 dahili testtir ve tüm çalışanlar bu sürümü çalıştırır. C2 sırasında, sürüm genel halkın yüzde 2'sini kullanıyor ve C3 üretim yapıyor. Gerçekten ciddi bir şey bulunursa, her çalışan üretimi durdurmak için bir acil durdurma düğmesine erişebilecek.

Aşamalarını ilerletmek için kendilerini ortaya koyan gönüllüler “ağaç kucaklamaları” ismiyle (dallar çünkü) devam ediyorlar ve bunu düzenli işlerinin üstünde yapıyorlar.

Mobil'de benzer katmanlara alfa, beta ve prod denir. Alpha, tüm çalışanların çalışacağı bir iç test anlamına gelir. Herhangi bir şirketin kendi ürünlerini bu şekilde kullanma sürecine “köpek maması” denir - “kendi köpek yemeğinizi yemekten”.

Testçiler ayrıca hataları hızlı bir şekilde raporlamak için ellerinde benzersiz ve ilginç araçlara sahiptir. Bunlardan bir tanesi, cihazı basitçe sallamakta Google Haritalar'da olduğu gibi bir hata raporunu mümkün kılacak olan “Rageshake”.

Testçiler ayrıca hataları hızlı bir şekilde rapor etmek için ellerinde bazı benzersiz ve ilginç araçlara sahiptir.

Alfa - hangi herhangi bir dahili teste atıfta bulunur - Facebook, uygulamayı çalıştırmak için otomatik testi de kullanır. Örneğin, son zamanlarda “Sapienz” adlı bir yazılım parçası, her bir düğmeyi tıklatarak ve her özelliği bir kazayı tetikleyene kadar rastgele bir saldırıda kullanarak çalışır. Daha sonra yığın izini günlüğe kaydeder, eylemi kaydeder ve geri rapor eder.

Beta uygulaması (genel halk tarafından test edilen sürüm), genel halkın küçük bir alt bölümünden (~ yüzde 2) geçer. Bu küçük snippet, Facebook'a gerçek dünyadan geri bildirim sağlayarak güncellemeyi önceden alacak. Her şey iyi görünüyorsa, güncelleme tüm popülasyona yayılır ve süreç yeniden başlar.

Otomasyon ve kuvvet çarpımı için güçlü araçlar

Tüm bu süreci olabildiğince çabuk ve sorunsuz tutmak için Facebook çok sayıda farklı araç kullanıyor. Şirketin Phabricator ve Sapienz'i nasıl kullandığını zaten gördük, ancak diğer aşamalar için başka araçları ve eklentileri de var.

Picknic adlı bir araç, hızlı ve kolay inceleme için tüm çekme isteklerini (çalışanların yaptığı değişiklikleri) bir yerde toplar.

Testler bir hata attığında, Nagbot adında bir bot sorumluları bilgilendirir ve nazikçe işlerini yapmalarını sağlar. Bu süreci ele almak için ilkel bir AI kullanmak, yalnızca işin yapılmasını sağlamakla kalmaz, aynı zamanda yöneticinin sürekli dürtmeyle “kötü adam” olmaktan da kaçınmasını sağlar!

Test, birisinin düzeltmesi için bir hata yaptığında, Nagbot adında bir bot sorumluları bilgilendirir ve işi yavaşça yapmalarını sağlar.

Crashbot, bu hataları olduğu gibi bildirmekten başka bir bottur ve gerçek zamanlı olarak bildirdiği için Google Konsolundan gelen metriklere tercih edilir. Crashbot, sorunlar “kabul edilebilir çarpma eşiğini” aştığında bir sorunu işaretleyecektir. Bu, hatayı yaşayan kişilerin sayısı veya tek bir kullanıcının aynı hatayla karşılaştığı zaman olabilir. Her iki durumda da, Facebook'ta üzgün kullanıcı sayısını gösteren bir ölçüm olacaktır.

Dahili iletişim için, Facebook Workplace adlı bir şey kullanır. Bu, ekip üyeleri hakkında bilgi edinmenin ve yayılma ofisinin diğer tarafında oturanlarla hızlı bir şekilde iletişim kurmanın yararlı bir yolunu sağlayan, işletmelere yönelik Facebook'un etkili bir sürümüdür. Facebook bu yazılımı üçüncü şahıslara da satmaktadır.

Elbette, Facebook, uygulamalarının her yeni sürümünü Google Play Store, App Store, Amazon ve diğerlerine yüklemek için zaman harcamaz. Mobile Push Train adında bir uygulama da var.

Kapanış düşünceleri

Facebook gibi bir uygulamayı güncel tutmak çok büyük bir girişimdir ve şirketin kullanıcıları bu güncellemeleri yüklemeleri konusunda ikna etmesi gerekir. Bu, bağlantının garanti edilmediği ülkelerde özellikle zordur. Kanada'da, kullanıcıların yalnızca yüzde biri hala bir yaşından büyük bir Facebook sürümünü kullanıyor. Etiyopya'da bu rakam yüzde 50'ye yakın!

Facebook ekibi net bir şekilde çok çalışıyor ve her şeyi mümkün olduğunca düzenli tutmak için bir dizi araç ve işlem kullanıyor. Günün sonunda, geliştirme ekibi beş yönetici ilkeye bağlı kalmayı hedefliyor:

  • Master'ı temiz tutun.
  • Yayın mühendisliği konusunda uzman bir ekibe sahip olun.
  • Sık sık zamanında serbest bırakın.
  • Dogfood ürünleri.
  • Kullanıcılara karşı nazik olun.

Kulağa basit geliyor ama görebildiğiniz gibi çok sayıda eğirme plakası içeriyor. Süreçte kullanılan tüm araçları korumak bile başlı başına bir proje!

Facebook, Londra’nın ofisinde dostça ve yürekli bir atmosfer sunuyor. Ekip, GIF'leri ve memleri eklentiler aracılığıyla takas ediyor, odaları “İngilizlerin nefret ettiği şeylere” ve Shakespearean püf noktalarına göre adlandırıyor ve çalışmalarıyla gurur duyuyorlar. Facebook'ta çok çalışıyorlar ve çok oynuyorlar ve görünüşe bakılırsa sistem çalışıyor.

Bir dahaki sefere daha büyük uygulamalarınızdan biri için yeni bir güncelleme çıktığında, oraya ulaşmak için harcadığınız tüm iş ve organizasyon için bir fikir verin.

USB Tip-C Nedir?

Randy Alexander

Temmuz 2024

Geçtiğimiz birkaç yıl içinde yeni bir akıllı telefon aldıyanız, şarj etmek için kullanılan yeni bir bağlantı noktaı ve hatta e için olaılık var. Yeni bağlantı noktaı remen UB ...

Neden bir Verizon MVNO'su Görünmüyor?

Randy Alexander

Temmuz 2024

Bu haftanın başlarında, ize Verizon ağındaki ınırız veri, konuşma ve yazıyı ayda yalnızca 40 dolara kazandıran Viible adlı yeni bir mobil ervi hakkında bir yazı yayınladık. Hizmet şu anda erken aşamad...

Öneririz