Technology Newsfeed
Tech

Блюзкийн инженерийн соёл дотор

Програмчлалын тэмдэглэл: энэ долоо хоногт пүрэв гаригт The Pulse байхгүй болно. Би оролцож байна Гар урлалын бага хурал Унгарын Будапешт хотод жил бүрийн бага хурлынхаа илтгэлийг тэр өдөртөө хүргэж байна. Миний гол илтгэл "Хуучин зүйл дахин шинэ" гэсэн гарчигтай. Би бичлэгийг бэлэн болмогц мэдээллийн товхимолд хуваалцах болно. Долоо хоногийн турш туранхай, уян хатан стартап (Bluesky) дээр энэхүү дэлгэрэнгүй мэдээлэл танд таалагдана гэж найдаж байна!

Bluesky бол ирээдүйтэй төвлөрсөн бус Twitter-ийн хувилбар юм. Хоёр жилийн өмнө үүсгэн байгуулагдсан тус компани 2021 онд Твиттерээс 13 сая долларын санхүүжилт авчээ. Өнөөдөр тус компани 12 программ хангамжийн инженер ажиллуулж байгаа бөгөөд зөвхөн урилгаар бета хувилбарыг гаргаснаас хойш жилд 5 сая гаруй хэрэглэгчтэй.

Өмнө нь бид сошиал медиа платформын архитектур, инженерийн шийдвэрийг судалж үзсэн Блюзкийн барилга: тархсан нийгмийн сүлжээ (бодит ертөнцийн инженерийн сорилтууд). Энэ нийтлэлээс бид баг болон инженерийн соёлын талаар олж мэдсэн бөгөөд үүнд:

  1. Ер бусын гарал үүсэл. Олон нийтэд арилжаалагддаг компаниуд өрсөлдөгч болж болзошгүй стартапуудыг санхүүжүүлэх нь ховор боловч Bluesky-д ийм зүйл тохиолдсон.

  2. Баг. Инженерийн багийн дунд хуучин үүсгэн байгуулагчдын харьцаа өндөр (70-80!%), Big Tech туршлага бараг байхгүй.

  3. Техникийн стек. TypeScript, Go, ScyllaDB, SQLite, React+Expo.

  4. Компанийн соёл. Цагийн бүсийн давхцал бүхий бүрэн алсын удирдлага, "маш онлайн".

  5. Баг хэрхэн ажилладаг. 2-3 хүн DRI-тай баг, хүн бүрт зориулсан ажлын найзууд, олон тооны урт хэлбэрийн бичвэрүүд.

  6. Инженерийн соёл. Нэгжийн туршилт, буцах / урагшлуулах, томоохон хэмжээний зохион байгуулалтын туршлагагүй байхын давуу тал дээр интеграцийн туршилтууд.

  7. Нээлттэй эх сурвалж ба нийгэмлэг. Хувь нэмэр оруулагчидтай сайн харьцаж, хөгжүүлэгчийн платформ, баримт бичигт хөрөнгө оруулалт хийж, гуравдагч этгээдийн оруулсан хувь нэмрийг тэмдэглэх/дэмжих.

Энэ нийтлэлийн төгсгөлд та хэдэн арван инженерүүд сая сая хэрэглэгчдэдээ асар их нөлөө үзүүлж, хурдацтай хөгжиж буй бүтээгдэхүүнийг хэрхэн бүтээж, ажиллуулж байгааг ойлгох болно гэж найдаж байна. Жижиг боловч маш үр ашигтай инженерийн багууд, ялангуяа 0% хүүгийн төгсгөл - "Үр ашигтай" програм хангамжийн инженерийн багууд нь салбарын хэмжээнд жишиг болж байна.

Энэ нийтлэлийн доод хэсгийг зарим цахим шуудангийн үйлчлүүлэгчид тасалж болно. Өгүүллийг бүрэн эхээр нь онлайнаар тасралтгүй уншина уу.

Нийтлэлийг бүрэн эхээр нь онлайнаар уншина уу

1. Ер бусын гарал үүсэл

Блюзки 2019 онд тухайн үеийн Twitter-ийн гүйцэтгэх захирал Жек Дорсигийн одоо алдартай TWEET-ээр гараагаа эхэлсэн.

Энэ жиргээ Блюзкиг эхлүүлсэн

Боломжит нэр дэвшигчид Жак руу DM (шууд мессеж) илгээсэн бөгөөд тэдний арав орчим нь нэгдэхийг урьсан. Матриц чатлах өрөөнд тэрээр дараах санаануудыг хэлэлцэхийг уриалав.

Хамгийн том бөгөөд урт хугацааны зорилго бол олон нийтийн яриа хэлэлцээний бат бөх, нээлттэй протоколыг бий болгох явдал юм. Үүнийг аль нэг байгууллага эзэмшдэггүй, аль болох олон байгууллага хувь нэмэр оруулдаг. Мөн энэ нь интернетэд ижил зарчмаар төрж, хөгжсөн.

Bluesky-ийн гүйцэтгэх захирал Жей Грабер энэ жижиг группын нэг байсан бөгөөд үүнд:

  • Жереми Миллер : Whatspp, Kik Messenger, Zoom зэрэг програмуудад өнөөдөр ашиглагдаж байгаа Өргөтгөх мессеж ба оршихуйн протоколд (XMPP) үр дүнтэй хувь нэмэр оруулагч.

  • Мэттью Хожсон: техникийн үүсгэн байгуулагч Матриц , төвлөрсөн бус, аюулгүй харилцаа холбооны нээлттэй протокол.

  • Иан Престон: эцсийн хэрэглэгчид өөрсдийн өгөгдлийг хянадаг "дараагийн вэб"-ийг бүтээхийг оролдож буй Peergos платформыг үүсгэн байгуулагч. Мөн Twitter-ийн анхны инженер.

Тус бүлэг нь төвлөрсөн бус мессежийн протоколд хүнд цохилт өгсөн хүмүүсээс бүрдсэн бөгөөд бизнес эрхлэгчид вэбийг хөгжүүлэх, хөгжүүлэх зорилготой байв.

2020 оны дундуур Жэй бичихийг санал болгов экосистемийн тойм одоо байгаа төвлөрсөн бус нийгмийн сүлжээ, технологийн талаар. Энэхүү тоймыг боловсруулах явцад чатын өрөө ~60 хүн болж өссөн. 2020 оны эцэс гэхэд Твиттер бүлэгт санал авах хүсэлтээ гаргажээ. Жэй Грабер зэрэг хэд хэдэн хүн хариу өгсөн.

Твиттер 2021 онд Блюзки төслийн удирдагчийг сонгох ярилцлагын процессыг явуулсан. 8-р сард Жэйг сонголт гэж зарлав.

Төсөл нь юу болох нь тодорхойгүй байхад Жэйг Bluesky-ийн удирдагчаар зарлав

Өвөрмөц тохиргоо

Ер бусын байдлаар Блюзки Твиттерийн нэг хэсэг биш бие даасан байгууллага болж хувирсан. Ихэнхдээ компани шинэ санаачилгын санхүүжилтийг зарлахад энэ нь компанийн дотоод хэлтэс болдог. Гэхдээ энэ тохиолдолд эсрэгээрээ болсон: Блюзки эхний өдрөөсөө Twitter-ээс гадуур, хараат бус байсан.

Жэй өөрийн мөнгөөр Даниел Холмгренийг хөлсөлж, нарийн ширийн зүйлийг эцэслэн боловсруулж байх үед прототип хийж эхэлсэн. Тэд хамтдаа Жэйгийн 2018 онд техникийн зөвлөхтэй хамтран бичсэн протоколыг гаргаж ирсэн нь Блюзкид өнөөг хүртэл хадгалагдан үлдсэн үндсэн загвар юм.

Төсөл 2021 оны 12-р сарын 31-нд ногоон гэрлээр ассан бөгөөд Твиттер шинээр байгуулагдсан аж ахуйн нэгжид AT протоколыг бүтээхэд ихээхэн хэмжээний 13 сая доллар төлж, мөн Блюзки бүрэн бие даан ажиллах гарын үсэг зурсан. Үнэндээ байсан. нэг нөхцөл байдлаас Твиттер :

"Twitter-ийн Bluesky-ийн санхүүжилт нь Блюзки олон нийтийн нээлттэй, төвлөрсөн бус яриа өрнүүлэх технологийг судалж, хөгжүүлэхээс өөр ямар ч нөхцөлөөс хамаарахгүй."

Хөрөнгө оруулагчдаас санхүүжилт босгож буй компаниуд зоримог алсын хараатай байх нь элбэг байдаг ч Твиттер шиг олон нийтэд арилжаалагддаг компани гарааны бизнесийг санхүүжүүлж, түүнд бараг чөлөөтэй эрх олгох нь маш ховор байдаг. Энэ нь Жакын хувийн сонирхлоос үүдэлтэй байж магадгүй ч төсөлд юу хэрэгтэй байгаа талаар Жэйгийн итгэл үнэмшилтэй холбоотой юм. Өөрийнх нь хэлснээр:

"Би тусгаар тогтнолын төлөө зургаан сарын хэлэлцээр хийсэн, учир нь Твиттерийн охин компани байх нь тийм ч боломжийн сонголт биш байсан. Компани хэтэрхий удаан хөдөлсөн бөгөөд хэрэв удирдлага өөрчлөгдвөл Блюзки төслийн хувьд алагдах эрсдэл хэтэрхий их байгааг би мэдэрсэн. Энэ нь үнэн болсон."

Жэй Твиттерийн охин компани байх нь ашигтай сонголт гэдгийг хүлээн зөвшөөрөхгүй учраас тусгаар тогтнолын төлөө зургаан сарын турш хэлэлцээ хийсэн гэж бидэнд хэлсэн. Твиттер хэтэрхий удаан хөдөлж байгааг Жэй мэдэрч, хэрэв Твиттерийн удирдлага өөрчлөгдсөн бол Блюзкийг төсөл болгон алах эрсдэл хэтэрхий их байгааг мэдэрсэн. 2022 оны 11-р сард энэ таамаг хэр үнэн болохыг харгалзан үзвэл. Элон Маск Твиттерийг худалдаж авсан мөн хийсэн эрс өөрчлөлтүүд эхнээсээ.

Бизнесийн загвар

АНУ-ын ихэнх VC-ээс санхүүждэг бизнесүүд нь хязгаарлагдмал хариуцлагатай компаниуд (ХХК) ба ашгийн төлөө байдаг. Блюзки биш. Энэ бол а Нийтийн ашиг тус C-корпораци (PBC,) нь түүний үндсэн эрхэм зорилго нь ашиг биш харин "нийтийн сайн сайхны төлөө" гэсэн үг юм.

Энэ ялгаа нь Блюзкид ашгийн төлөө ажилладаг ердийн компаниудаас бага зэрэг давуу талыг өгч магадгүй юм: тэд зөвхөн олон нийтэд арилжаалагддаг компаниуд шиг хувьцаа эзэмшигчдэд ашиг олоход анхаарлаа хандуулах шаардлагагүй, эсвэл бүтээгдэхүүний зах зээлд тохирсон арилжааны хувьд шууд амьдрах чадвартай байх шаардлагагүй. Үүний оронд Блюзки номлолд анхаарлаа төвлөрүүлж чадна. нээлттэй, төвлөрсөн бус олон нийтийн яриа хэлэлцээний технологийг өргөн цар хүрээтэй нэвтрүүлэх, хөгжүүлэх."

Гэхдээ энэ нь стратеги нь урт хугацааны амжилтанд хүрэх том бүрэлдэхүүн хэсэг гэдгийг мэддэг ч богино хугацаанд бизнесийн стратегийг тодорхойлох шаардлагаас зайлсхийдэг тул эрсдэлтэй байдаг.

Бид энэ эрсдэлийн талаар Блюзкигээс асуусан. Эцсийн эцэст, хэрэглэгчид мөнгө олохын оронд эрхэм зорилгодоо анхаарлаа төвлөрүүлснээс болж бэлэн мөнгөгүй болох үйлчилгээнд яагаад итгэх болов? Багийнхан ингэж хэлж байна:

  • Уламжлалт сошиал медиа компаниудаас өөр өөр урамшуулал. Bluesky-ийн архитектурын нээлттэй байдлаас шалтгаалан хэрэглэгчид түгжигдээгүй байна. Тэд ямар үйлчлүүлэгчийн програм ашигладаг эсвэл үндсэн тэжээлдээ ямар алгоритм ашигладаг эсэхээс үл хамааран хэрэглэгчид Bluesky-ийн өгөгдмөл мэдээллийг сонгох эсвэл өөр үйлчилгээ үзүүлэгч рүү шилжих боломжтой. Шилжүүлэх зардал маш бага тул Bluesky нь хэрэглэгчдийг аз жаргалтай байлгах арга замаар мөнгө олохыг урамшуулдаг. Нөгөөтэйгүүр, Twitter нь 2023 онд гуравдагч этгээдийн үйлчлүүлэгчдийг хориглосон , учир нь тэд зар сурталчилгаа үзүүлээгүй.

  • Төлбөртэй үйлчилгээг нэмүү өртөг болгон судлах. Гадны санхүүжилтээс хамаарахгүйн тулд Блюзки бизнесийн алсын хараа төлбөртэй үйлчилгээ зарах. Эхнийх нь Namecheap-тай хамтран ажиллаж байна Bluesky-ийн томоохон хэсэг болох захиалгат домэйн зарах. Одоо хэн нэгэн Namecheap-ээр домэйныг бүртгүүлэхэд Bluesky жижиг комисс авдаг.

Уламжлалт сошиал медиа компаниудын ашигладаг мөнгө олох стратеги нь хэрэглэгчийн мэдээллийг зар сурталчилгаанд зарах гэх мэт Блюзкийн хувьд тийм ч үр дүнтэй биш байх болно. Тиймээс тэд мөнгө олох шинэ арга замыг олох хэрэгтэй болно. Bluesky-ийн хөгжүүлэгчийн харилцааны инженер Эмили Люгийн хийсэн сонирхолтой ажиглалт:

"Бид энэ хугацааг хэрэглэгчдэд ямар үйлчилгээ үнэ цэнэтэй болохыг судлахын тулд ашиглаж байна, тухайлбал хэрэглэгчдийн боломжтой захиалгат домэйнүүд Bluesky-ээр дамжуулан худалдан авч, удирдах . Бид нийгмийн аппликейшнийг дотроос нь эргүүлж байна - сошиал медиа төвлөрсөн аваргуудаас ялгаатай нь бид хэрэглэгчийн өгөгдөлд монополь эрх мэдэлгүй, тиймээс бид супер уламжлалт мөнгө олох замаар явахгүй байна."

PBC болж, амжилтанд хүрсэн, тэр байтугай олон нийтэд нээлттэй болсон компаниудын жишээ бий. Даатгалын технологийн стартап Lemonada энэ тохиргоогоор 2020 онд олон нийтэд нээлттэй болсон. Боловсролын гарааны Coursera нь мөн PBC компани бөгөөд нүдний шилний компани болох Warby Parker юм.

2. Баг.

Өнөөдөр Блюзки 40 орчим орон тооны ажилтантай:

  • 17 нь "үндсэн" багт, 12 нь хөгжүүлэгчид юм

  • Ойролцоогоор 20 хүн дэмжиж, зохицуулж байна

Хөгжилтэй баримт: эрт ажилд орсон хүмүүсийн хэн нь ч Твиттерт ажиллаж байгаагүй! (Т Twitter-т өнгөрсөн туршлагатай анхны хүнийг 2024 онд авчирсан.) Блюзки байгуулагдсанаас хойш Твиттерт ийм сонирхолтой санагдаж байна. ажиллах хүчнийхээ 75 хувийг халсан - Тэдний зарим нь шинэ сошиал медиа стартапад элсэх талаар бодож байсан байх.

Багийн бүтэц

Инженерийн үндсэн багт бүгд Bluesky дээр байгаа бөгөөд бид тэдний профайлыг холбож байна.

Инженерийн бүтцийн зураглалыг гаргахын тулд та Bluesky-д ажиллах шаардлагагүй. Ихэнх компанийн гүнд шумбахдаа бид одоогийн болон өмнөх ажилчдаас багийн бүтцийг авахыг хүсдэг. Гэхдээ Блюзкийн хувьд та зөвхөн доторх төслүүдийг шалгаж болно Bluesky агуулах , мөн Github-ийн хувь нэмэр оруулагчдын Bluesky бариулын газрын зураг! Блюзкийн инженерүүдийн бичсэн бүх код олон нийтэд нээлттэй байгаа бөгөөд би бага зэрэг гайхаж байна. зүгээр л Энэ бүхэн ямар ил тод, сайн талтай вэ.

Хуучин үүсгэн байгуулагчдын ер бусын өндөр харьцаа

"Үндсэн" багийн 4/5 орчим нь өмнө нь үүсгэн байгуулагчид байсан бөгөөд энэ нь гарааны бизнест ер бусын зүйл юм. Мэдээжийн хэрэг, стартапууд жижиг багуудад ажиллахыг илүүд үздэг хүмүүсийг татдаг бөгөөд тэдний зарим нь үүсгэн байгуулагч байсан. Гэхдээ юу Блюзкид ийм олон хүнийг татсан бэ?

Багийнхантай ярилцахаас эхлээд:

  • Блюзкийн агуу эрхэм зорилгод итгэх итгэл

  • Төвлөрсөн бус вэб туршлагыг бий болгох

Блюзки нийгмийн сүлжээг бий болгож байна. Хэрхэн хурдацтай өргөжүүлэхийг мэддэг хүн байвал энэ нь Big Tech компаниудын хувийн туршлагатай хүмүүс юм; 2000-аад оны эхээр Google-ийн инженерүүд, 2000-аад оны дунд үе, 2010-аад оны эхээр Facebook-т байсан инженерүүд, 2010-аад оны эхэн үеийн Netflix-д ажиллаж байсан инженерүүд гэх мэт. Гэвч Блюзкид инженерийн ажилд орсон анхны цөөн хэдэн хүмүүсийн дунд ийм хүмүүс байгаагүй гэж бодож байна.

Үүсгэн байгуулагч инженер Пол Фрейзи:

“Үндсэн багийн ихэнх туршлага нь өмнөх төвлөрсөн бус вэб эсвэл төвлөрсөн бус нийгмийн төслүүдээс ирсэн; өндөр хэмжээний нийгмийн сүлжээнээс хамаагүй илүү.

"Бид үе тэнгийн сүлжээнүүдийн талаар маш их туршлагатай байсан бөгөөд блокчэйний ертөнцөд ихээхэн анхаарал хандуулсан. Эхний багийн хувьд энэ нь төвлөрсөн бус сүлжээг бий болгож буй хоёр, гурав, бүр дөрөв дэх удаагаа байлаа."

3. Техникийн стек

Бичлэг (бараг) бүх талаараа

Арын хэсэг нь ихэвчлэн Typescript дээр байдаг бөгөөд урд талын болон гар утасны програмууд байдаг. Энэ нь програм хангамжийн инженерүүдэд хэлээ солихгүйгээр стек дээр ажиллах боломжийг олгодог. Энэ сонголт нь ижил төстэй Ар болон урд талын хооронд Typescript ашиглах шугаман .

Яагаад энэ хэлийг сонгох вэ? Даниел Холмгрен хэд хэдэн шалтгааныг хэлж байна:

  • Вэбийн де факто хэл. "Javascript, тиймээс Typescript нь вэбийн хувьд "lingua franca"-тай адил ойрхон байж магадгүй юм. Протоколын лавлагааны хэрэгжилтийн үндсэн санааг хүргэх нь зүйн хэрэг гэж бид үзсэн."

  • Урд болон хойд талын хэлийг хуваалцсан. "Үйлчлүүлэгч болон ивээн тэтгэгчийг хамтран хэрэгжүүлэх нь хөгжлийн сайхан туршлагыг бий болгодог, ялангуяа хоёр тал схемийн системийн талаар нийтлэг ойлголттой гэдгийг мэддэг."

  • AT протоколын динамик өгөгдлийн арга барилд тохирно. "Динамик хэл учраас Typescript нь ATproto экосистемээс олсон динамик өгөгдөлтэй ажиллахад маш сайн байсан."

  • Код үүсгэхэд маш тохиромжтой. ""Typescript нь код үүсгэх үнэхээр гайхалтай экосистемтэй. Миний бодлоор TypeScript-ийн бодит албан ёсны хэрэгжилт нь зүгээр л AST-д задлан шинжилж, дараа нь түүнийг удирдаж, код гаргах хэрэгслийг илгээдэг. Энэ нь тийм ч олон хүнд хэрэггүй байсан ч тэнд байсанд би үнэхээр баяртай байсан."

  • Жижиг багтай прототип хийхэд тохиромжтой. “Бичиг бичих нь хурдан бүтээхэд тохиромжтой хэл юм. Ажиллах хугацаа нь нэлээд хүчтэй бөгөөд санах ойн менежмент, зэрэгцүүлэх гэх мэт зүйлсийн талаар санаа зовохгүй байх боломжийг олгодог. Төрөл систем нь маш эргономик бөгөөд танд хэрэгтэй бүтцийг хангадаг боловч саад болох нь ховор. Ийм жижиг эрт үеийн багтай бол бидэнд хурдан прототип хийх боломжийг олгодог хэлийг сонгох нь утга учиртай байсан."

Node.js

Ар талд байгаа бичгийн код нь үүнийг ашигладаг Node.js ажиллах цаг. Node.js програм нь хүсэлт бүрт шинэ утас үүсгэхгүйгээр нэг хэлхээнд ажилладаг тул багийнхны санаа зовоосон асуудал байсан. Энэ нь Node.js-ийг ажиллуулж буй сервер нь олон урсгалыг илүү үр дүнтэй дэмждэг хүрээнээс цөөн параллель хүсэлтийг шийдвэрлэх боломжтой гэсэн үг юм.

Гэсэн хэдий ч багийнхан үйлчилгээг хэвтээ байдлаар өргөжүүлэх нь маш хялбар болохыг олж мэдсэн (илүү олон машин нэмэх,) гэхдээ зөвхөн харьяалалгүй байх өргөдлийг бий болгосноор. Тэд үүнийг хийсэн бөгөөд Даниел дараахь зүйлийг нотолсон гэдгээ дурсав.

"Нэг удаа бид HAProxy-ийн ард ажилладаг 192 орчим зангилааны процесстой байсан. Эдгээр бүх процессууд нь CPU-ийн 1% орчим ашиглалттай маш "уйтгартай" байсан. Гэхдээ гол нь харьяалалгүй зангилааны үйлчилгээг хэвтээ байдлаар өргөжүүлэхэд маш хялбар байдаг - тиймээс бид үүнийг хийсэн!"

Гүйцэтгэлийн төлөө яв

Арын хэсэг нь Typescript хэлбэрээр эхэлсэн боловч цаг хугацаа өнгөрөхөд Go-г танилцуулсан. Гэхдээ Typescript хангалттай сайн ажиллаж байхад яагаад өөр хэл оруулж ирэх ёстой гэж? Гүйцэтгэл гэж Даниел хэлэв.

"Relay болон манай дотоод "Датаплан" гэх мэт зарим нэмэлт үйлчилгээнүүд нь гүйцэтгэлд тулгуурладаг. Эдгээр нь ихэвчлэн маш олон крипто үйлдлүүд болон доод түвшний бит мушгиатай холбоотой байдаг. Эдгээр нь Go-ийн гайхалтай зүйлс юм. Ялангуяа Go нь Scylla-д (бидний ашигладаг мэдээллийн сан) хэлтэрхий мэддэг драйвертай бөгөөд энэ нь түүнтэй харилцах байгалийн сонголт болсон."

Гүйцэтгэлийг сайжруулах шаардлагатай үед баг нь Typescript-ээс Go хүртэлх үйлчилгээг дахин бичсэн. Өнөөдөр Go дахь үйлчилгээ:

  • Хайлт гэх мэт үйлчилгээ Паломар .

  • "Галын хоолой" Relay гэж нэрлэдэг. Энэ үйлчилгээ нь доод түвшний морин хуур, крипто олон үйлдлийг гүйцэтгэдэг.

  • Датаплан. Энэ үйлчилгээг "BigSky үйлчилгээ" гэж нэрлэдэг бөгөөд хаалттай эх сурвалжтай цөөхөн үйлчилгээний нэг юм. Энэ үйлчилгээ нь өгөгдлийг удирдаж, ScyllaDB, түүнчлэн Redis зэрэг бусад мэдээллийн дэлгүүрүүд болон өөрсдийн гараар бичсэн кэш дэлгүүрүүдтэй ярилцдаг.

Өгөгдлийн давхарга: Postgres, ScyllaDB, SQLite

Bluesky PostgreSQL-ийг мэдээллийн сан болгон эхлүүлсэн боловч ачаалал нэмэгдэхийн хэрээр багийнхан энэхүү уян хатан боловч өргөтгөх боломжгүй шийдлээс уян хатан, илүү өргөтгөх боломжтой шийдэл рүү шилжих цаг ирнэ гэж найдаж байв.

Цагаачлал 2023 оны дундуур болсон:

  • ScyllaDB нь AppViews-ийг идэвхжүүлдэг.

  • SQLite бол хувийн мэдээллийн серверүүдийн (PDSses.) сонгох мэдээллийн сан юм.

Бид өгөгдлийн давхаргын шилжилт хөдөлгөөний талаар илүү ихийг хамардаг 1-р хэсэг: Мэдээллийн сангийн давхаргыг өргөжүүлэх .

Урд талын харилцаа холбоо

The Толь бичгийн схем HTTP-ийн төгсгөлийн цэгүүд болон сүлжээн дэх бүх бичлэгийн төрлийг тодорхойлоход ашигладаг. Энэ арга нь арын болон үйлчлүүлэгчийн хооронд хүчтэй бичигдсэн гэрээ, хэлэлцээрийг баталгаажуулдаг.

Ийм хүчтэй гэрээ нь төвлөрсөн бус сүлжээнд онцгой ач холбогдолтой юм. Bluesky нь мөн нээлттэй бичил үйлчилгээний сүлжээ тул протоколын түвшинд илүү хатуу байх нь утга учиртай юм. Пол Фрейзи үүнийг дараах байдлаар тайлбарлав.

"Та бүхэл бүтэн сүлжээг нээлттэй бичил үйлчилгээний сүлжээ гэж ойлгож болно. Та үүнийг схемийн хэлээр системчлэх, энэ бүх янз бүрийн зүйлд гэрээг дагаж мөрдөж байгаа эсэхийг шалгахын тулд бичил үйлчилгээ хийж байх нь тийм ч ховор биш юм."

Багаж хэрэгсэл бүтээх

Баг нь CI/CD стекэд GitHub Actions ашигладаг. Төсөл нээлттэй ажиллаж байгаа тул та боломжтой Эдгээр гүйлтийг өөрөө шалгана уу :

Сүүлийн үеийн CI/CD Bluesky протоколын санд ажиллаж байна. Эх сурвалж: Блюзки

Барилга нь чанарын асуудлыг эрт илрүүлэхийн тулд нийтлэг хэрэгсэл, арга техникийг ашигладаг:

Хувцасны чимэг: кодчиллын асуудлыг шийдвэрлэхийн тулд статик кодын шалгалтыг ажиллуулж, кодчиллын хэв маяг нь кодын суурь дээр нийцэж байгаа эсэхийг шалгаарай. Блюзкийн доторлогооны олж авсан асуудлын төрлүүдийн жишээ энд байна:

Ашиглагдаагүй хувьсагчдад өгөгдсөн утга нь доторлогоо нь анхааруулга өгөхөд хүргэдэг. Үйлдвэрлэлийн кодын санд хувьсагч байхгүй байх нь ухаалаг хэрэг юм. Эх сурвалж: баталгаажуулах гүйлт

Автомат туршилтууд : нэгж ажиллуулах, нэгтгэх, агшин зуурын туршилтууд.

Зургийн тестийн жишээ:

Хариулт дээрх "таалагдах" нь UI-г хүлээгдэж буйгаар нь шалгах замаар зөв хийгдсэн болохыг харуулсан агшин зуурын тестийг (56-р мөр, .toMatchSnapshot() дуудлагаар) мөн лайк дарсан тоо хүлээгдэж байгаа шиг (58-р мөрөнд) байна. ). Эх сурвалж: Bluesky эх код

Гар утас болон вэб стек

Bluesky-ийн нэг сонирхолтой зүйл бол вэбсайт, iOS програм болон Android гар утасны програмууд байсан явдал юм бүгд нэг хөгжүүлэгч бүтээсэн. 2022 оны зунаас 2023 оны эхэн үе хүртэл инженер Пол Фрейзи ганцаараа үүн дээр ажилласан. 2023 оны эхээр уг аппликейшн нь гадны хувь нэмэр оруулагчидтай байсан бөгөөд 4-р сард хоёр дахь бүтэн цагийн ажилд орсон. Энэ бүхнийг идэвхжүүлсэн технологийн стек нь React Native болон Expo:

React Native-г сонгохдоо, Пол Фрейзи тайлбарлав:

"Бид бүх томоохон платформуудыг анхнаасаа л цохихыг хүсч байгаагаа мэдэж байсан бөгөөд бидний Typescript-ийн анхаарлыг харгалзан үзэхэд үүнийг хийх цорын ганц боломжит арга зам байсан: React Native."

Хэрэв танд хоёр тусдаа програмын кодын суурь байгаа бол танд хоёр тусдаа бүтээгдэхүүн байна. Та бүх зүйлийг хоёр удаа хэрэгжүүлж, бүх зүйлийг хоёр удаа дибаг хийж байгаа бөгөөд үр дүн нь бүгд бага зэрэг өөрчлөгдөх болно."

Гэхдээ React Native бол "шидэт сум"-ын шийдэл биш гэж Паул хэлэв.

""Энэ амаргүй. Зарим өдөр энэ нь галзуурдаг. Олон вэб хөгжүүлэгчид олон хөтөчийг чиглүүлэх нь хичнээн их урам хугардагийг мэддэг; одоо уугуул iOS болон Android-ыг онилно гэж төсөөлөөд үз дээ. Энэ нь "заримдаа урам хугарах" болон "боломжгүй" хоёрын хоорондох сонголт юм.

Экспо Энэ нь вэб, iOS болон Android дээр ажилладаг бүх нийтийн уугуул програмуудыг хөгжүүлэх, хянах, байршуулах платформ юм. Bluesky үүнийг 2023 оны 3-р сард танилцуулсан бөгөөд баг нь шинэ хамаарлыг нэвтрүүлэхийг хязгаарлахдаа болгоомжтой байсан ч зорилго нь барилгын ажлыг удирдаж, Экспогийн модулийн экосистемд нэвтрэх явдал байв.

Вэбд зориулсан уугуул хариу үйлдэл хөгжүүлэлтийн багийг хүртэл гайхшруулсан сонголт байсан. Эхэндээ Пол React Native програмыг зөвхөн гар утасны аппликейшнд ашиглахаар төлөвлөж байсан ч дараа нь React Native нь вэбэд нэлээд удирдах боломжтой болохыг олж мэдэв. Паул тайлбарлав:

"Бидний код хуваалцах замаар хийж чадах зүйлсийн хэмжээ үнэхээр гайхалтай. Бид арын тавцангаас эхлээд эдгээр өөр өөр платформ бүр хүртэл хаа сайгүй ажилладаг хуваалцсан кодтой бөгөөд энэ нь бид үүнийг жижиг багтай хийж чадсаны нэг хэсэг юм."

"Нэг хүний" гар утасны програм

Дээр дурдсанчлан The Bluesky гар утасны аппликейшн болон вэбсайтыг нэг жилийн дотор нэг хөгжүүлэгч Пол Фрейзи бүтээжээ. Өнөөдөр зургаан инженер програм болон вэбсайт дээр ажиллаж байгаа бөгөөд протокол болон арын тал дээр ойролцоогоор ижил тоо байна.

Гэсэн хэдий ч ганц туршлагатай инженертэй хөөргөхөд бэлэн програм бүтээх нь гайхалтай үр дүнтэй байдаг. Тэгэхээр Пол үүнийг яаж гаргасан бэ?

Тэрээр протоколыг боловсруулж эхэлсэн. үгүй програм. Эхний 6 сарын турш Пол Даниел, Жэй нартай Твиттертэй зөвшилцсөний үндсэн дээр протокол хэрхэн ажиллахыг олж мэдэхээр ажилласан. Блюзкийн санаа бол протокол нь илүү чухал хэсэг байх болно гэсэн санаа байсан бөгөөд тэд эцэст нь програм бүтээнэ гэсэн хүлээлт байсан. Гэвч энэ ухаарал 2012 оны дунд үе хүртэл тохиолдсонгүй. Паулаас:

"Бид програм бүтээнэ гэдгээ үргэлж мэддэг байсан, учир нь бид протокол боловсруулах ажлыг програм хөгжүүлэлттэй хамт хийх ёстой гэж үздэг байсан ч энэ нь илүү прототип байх болно гэж эхэндээ бодож байсан. Твиттертэй харилцах харилцаа маань өөрчлөгдөхөд л бид протоколыг ажиллуулж, бүрэн өргөдөл гаргах хэрэгтэй гэдгээ ойлгосон. Тиймээс энэ нь бага зэрэг өөрчлөлт байсан."

Даниел, Девин нарын арын баг, урд талын/апп багийн Пол хоёрын харилцаа уламжлалт урд/арын баг шиг байсан. Тэд хамтдаа онцлог шинж чанаруудыг тодорхойлж, тус бүр юу хийх ёстойг ярилцав. Дараа нь тэд өөрсдийн талбай дээр ажиллаж, эцсийн үр дүнг зохицуулсан.

Аппликейшнийг бүтээх нь протоколыг хөгжүүлэхэд тусалж, ажлыг илүү хөгжилтэй болгосон гэж Даниел дурсав.

"Хамгийн хөгжилтэй зүйл бол протокол дээр нийгмийн програмыг бий болгосноор бидний санаанууд хэрэгжиж байгааг харсан байх. Протоколыг хийсвэрээр бүтээх/зохион бүтээх нь нэг хэрэг, гэхдээ энэ нь бодитоор хэрэгжиж байгааг харах нь өөр хэрэг."

4. Компанийн соёл

Дэлгэрэнгүй унших