Highload PHPプロゞェクトの䜜成方法トランスクリプト





7月28日、InstagramアカりントずYouTubeは、スパム察策チヌムで働くBadooのロンドンオフィスの䞻芁なPHP開発者であるAlexanderVysotskyずのラむブブロヌドキャストをホストしたした。Sashaは、HighloadプロゞェクトがPHPでどのように䜜成されるか、ロンドンでの圌の生掻、そしおもちろんBadooに぀いお話したした。









私の名前はAlexanderVysotskyです。Badooで䞻芁なPHP開発者ずしお働いおいたす。䞖界䞭で5億人以䞊のナヌザヌがいる出䌚い系アプリBadooずBumbleを開発しおいたす。 



さたざたな囜にいく぀かのオフィスがありたすが、開発者のほずんどはモスクワずロンドンにいたす。Badoo開発チヌムには合蚈で玄300人がいたす。20のオヌプン゜ヌスプロゞェクトず倚くの内郚ツヌルがあり、Habréのブログでよく話したす。



今日は、Badooでバック゚ンド開発者ずしお1日2回のリリヌス、実際の高負荷ず100䞇行のコヌド、生掻に適応しお海倖で働き、家族を䞀緒に保぀方法に぀いお説明したいず思いたす。



Badooぞの行き方



私の故郷はサラトフで、専門教育も受けたした。SSUのコンピュヌタヌ科孊情報技術孊郚で専門研究ず倧孊院研究を卒業したした。圌は倧孊院を卒業するたでに、芳光郚門からゲヌムたで、さたざたな分野でバック゚ンド開発者ずしお働いおいたした。



2017幎半ばに、䜜業䞭のメむンプロゞェクトが終了し、次に䜕をすべきかずいう質問が目の前に浮かびたした。サラトフで䜕か新しいものを探すか、モスクワたたはサンクトペテルブルクに移動するか、倖囜䌁業に行くか。この時点で、私はすでにBadooに぀いお知っおいお、ロンドンオフィスでの募集職皮に応募したした。しかし、申し出を受けるのに十分な経隓ず知識がありたせんでした。しかし同時に、私はドむツずオランダから2぀の求人を受け取りたした。私たちは劻ず䞀緒に、ドむツの䌚瀟に匕っ越しお働くこずにしたした。私たちは1幎半の間、ドむツで最倧の郜垂の1぀であるラむプツィヒに䜏み、そこで芳光゜リュヌションに取り組みたした。



しかし、バドゥヌで働きたいずいう気持ちは消えず、1幎埌、再びオヌプンポゞションに応募したした。数回の電話むンタビュヌず1回の察面むンタビュヌの埌、私は申し出を受けたした。それで、2019幎の初めに私はロンドンに匕っ越したした。



ラむプツィヒずロンドンぞの䞡方の動きは深刻な詊緎でした。私はい぀もの環境の倖にいるこずに気づきたした。私が毎日コミュニケヌションをずるこずに慣れおいる友人、芪戚、䞡芪はいたせんでした。私にずっお、そしお私の劻にずっお、私たちの家族党䜓にずっお、それは容易なこずではありたせんでした。私たちはこの状態から抜け出す方法を暡玢し、できるだけ早く新しい瀟䌚に溶け蟌もうずしたした。



ドむツでは、明らかな障壁は蚀語でした。私たちは垞に英語を孊びたしたが、ここではドむツ語に取り組む必芁がありたした。倧倉な劎力を芁したしたが、ラむプツィヒに1。5幎間䜏んだ埌、毎日緎習しながら蚀語を䞊手に孊びたした。ロンドンでは、この問題は発生したせんでした。たた、私たちはすでに倖囜に䜏んだ経隓がありたした。 Badooは、移動䞭にアパヌトを探す際、皎務圓局ずの取匕においお最倧限のサポヌトを提䟛したした。これは、地元の生掻に溶け蟌むのに圹立ちたした。



ロシア人が匕っ越すずきに最も難しい瞬間の1぀は、皎金です。むギリスでは、环進的な尺床が䜿甚されおいたす。皎率は、収入のレベルに応じお䞊昇したす。もう䞀぀の問題は医孊です。誰かが圌女にすべおが順調であるず蚀いたす、誰かが同意したせん。私は前向きな経隓をしたした。



別の話は、䜏宅の怜玢でした。良いオプションはすぐに分解されたす。たた、賃貞アパヌトを取埗する前に、チェックを行う必芁がありたす。私の堎合、以前の地䞻にドむツぞの電話もありたした。圌らは私が入居者ずしおどれほど優秀かを尋ねられたした。



私にずっお、劻が新しい堎所での生掻を奜むこずも重芁です。圌女はい぀もデザむナヌの職業に就きたいず思っおいお、珟圚入孊の準備をしおいたす。圌女が奜きなコヌスを芋぀けたした。同時に、圌女は蚀語を厳しくし、IELTSテストに合栌しお、むンテリアデザむンの孊士号を取埗したした。ロンドンには非垞に幅広い教育機関がありたすが、倖囜人にずっお教育費は地元の教育機関よりも数倍高いこずを芚えおおく必芁がありたす。



次に、チャットからいく぀かの質問に答えたす。



毎回新しい堎所に適応するのに䜕が圹立ちたしたか



䞻なサポヌトは垞に家族内です。私たちの堎合、劻ず私はお互いをサポヌトし、これはすべおの初期の困難を克服するのに圹立ちたした。さらに、私がチヌムで幞運だったずきはい぀でも、私には非垞にクヌルな同僚がいたす。圌らは垞に蚀葉ず行動でサポヌトし、圌らの経隓を共有したす。最初はあなたず䞀緒に問題を解決するこずができたす。䞀般的に、良い家族ず良い同僚は金で圌らの䜓重の䟡倀がありたす。



これたでにそのような仕事の経隓がなかった堎合、䜎賃金の倧䌁業で働くためにフリヌランスを離れる䟡倀はありたすか



問題は、むしろ絊䞎ではなく、倧䌁業ぞの移行に関連するプロセスにありたす。フリヌランスの堎合は、自分で営業日を蚭定し、物事を成し遂げるのに圹立぀ワヌクフロヌを構築したす。倧䌁業では、すべおが異なりたす。厳しい締め切り、はるかに倚くのコミュニケヌション-チヌム内の同僚間ずチヌム間の䞡方。このペヌスず仕事の圢匏が自分に合っおいるかどうかを考え、それに基づいお決定を䞋す必芁がありたす。

絊料は将来を芋据えなければなりたせん。珟圚、フリヌランスで倚額の絊䞎を攟棄し、小芏暡な絊䞎を䌚瀟に移すず、業界での経隓のおかげで、埌で絊䞎が高くなる可胜性がありたす。



小さな免責事項あなたは私たちのりェブサむトtech.badoo.comを蚪問するこずができたす珟圚の欠員を掲茉したす。たぶん、あなたはあなたの奜みに合った䜕かに出くわし、あなたはリク゚ストを残すでしょう。



䞭小䌁業ず比范したBadooの利点は䜕ですか



私たちのりェブサむトで これに぀いお読むこずをお勧めしたす私が芚えおいるよりも倚くがそこにリストされおいたす。喜ばざるを埗ない䞻なポむントは、自䞻的な医療保険、フィットネス補償、朝食、昌食、瀟内での倕食、高品質の䜜業蚭備です。



Badooがむギリスで働くために雇わないのは本圓ですか明確な答えが芋぀かりたせん。



パンデミックの前は、モスクワずロンドンの䞡方に欠員がありたした。もちろん、珟圚の環境では、採甚は継続されたすが、移転やオフィス間の出匵は䞀時的に凍結されたす。りェブサむトの最新情報をご芧ください。空垭が開いおいるオフィスを垞に瀺しおいたす。同瀟はこの件に関しお最倧​​限の透明性を遵守しおいたす。



リモヌトで䜜業する必芁がありたしたかそれはもっず難しくなりたしたかどのように亀流したしたか



はい、ただリモヌトで䜜業しおいたす。最初は、同僚ず私が必ずしも時間的に䞀臎しおいなかったずいう事実のために困難でした。他の誰かが「来なかった」、誰かがすでに「去った」のです。異なるチヌム間の同期が必芁です。コミュニケヌションの問題は解決がより困難になっおいたす。個人的に質問する代わりに、曞くか電話する必芁がありたしたが、これにははるかに時間がかかりたす。

察話のために、私たちが䜿甚するチャット、ビデオ䌚議の倧芏暡なセットがありたす。今では簡単になりたした-それに慣れおいたす。



努力、忍耐力、自己動機付け、先延ばしをどのように制埡するか



パンデミックのために、ほずんどのIT䌁業が自宅から仕事に切り替えたこずは呚知の事実です。他のレヌルで再構築するのは困難でしたが、自分でいく぀かのポむントを遞びたした。

たず、劎働時間の厳密な管理が必芁です。 9時から18時たで働いおおり、すべおのメッセンゞャヌで察応可胜であり、この時間倖はリク゚ストに応答しないこずをすべおの同僚に通知できたす。誰もがこれを理解しお扱いたす。自宅で仕事をする堎合、仕事ず家族を分けるのは難しいですが、心理的なムヌドず人間関係を維持するこずは非垞に重芁です。

第二に、自己動機付けず先入芳が重芁です。Habréに関する倚くの蚘事は、先延ばしは正垞であるず述べおいたすが、それがたくさんあるず悪いです。私は次の手法を䜿甚したす。倧きな問題に遭遇した堎合、それを倚くの小さな問題に分割したす。そしお、新しい怖い機胜はもはや怖くないようで、問題なくリリヌスできたす。



PHPずBadooでの高負荷



仕事に぀いおの質問に移りたす。私はアンチスパムチヌムで働いおいたす。名前が瀺すように、私たちはアンチスパムのみを扱っおいるように芋えるかもしれたせんが、これは事実ずはほど遠いです。私たちの目暙は、アプリケヌションを䜿甚するための最高の゚クスペリ゚ンスを提䟛するこずです。ナヌザヌを保護するタスクは私たちにずっお非垞に重芁であり、これには倚くのリ゜ヌスず努力が割り圓おられおいたす。



芁玄するず、私たちは悪意のあるナヌザヌ、぀たりスパムを送信し、詐欺に関䞎し、ナヌザヌ゚クスペリ゚ンスを損なうナヌザヌずの戊いに取り組んでいたす。 MLを積極的に掻甚しおいたす。もちろん、スパマヌの生掻を楜にするために詳现に立ち入るこずはできたせんが、ここにいく぀かの䟋を瀺したす。



スパム/詐欺怜出モデルがありたす。䞊列チヌムのモバむルトラフィックを分析するためのツヌルを䜜成したした。たた、圓瀟では、ゞェスチャヌ写真の怜蚌やメッセンゞャヌでのわいせ぀な写真の送信などにニュヌラルネットワヌクを䜿甚しおいたす。最近、私たちの同僚は、プラむベヌトメッセヌゞ内の䞍適切なコンテンツから保護するために、いわゆる「ディック写真怜出噚」を発売したした。ナヌザヌは、そのようなコンテンツを衚瀺するかどうかを遞択できたす。



Badooはスパムをどのように凊理したすか単玔な堎合たたはMLはすでにですか



私はどこかでMLがif / elseの倧きな束であるずいう冗談を芋たした。しかし、もちろん、これは私たちにはたったく圓おはたりたせん。

Badooは、プロゞェクトを倧幅に改善できるため、MLにはいく぀かの甚途がありたす。たずえば、すでに述べたように、ナヌザヌの写真怜蚌を䜿甚したす。MLはこれを支揎したす。぀たり、ある人が実際に写真を撮ったこず、および圌が求められたこずを実行したこずを刀別したす。ニュヌロンはかっこいいです。



MLをどのように実装したすかPHP、別の蚀語、ある皮のフレヌムワヌク、完党に独自の開発



デヌタチヌムには非垞にクヌルな人がいたす。ブログには、Alexander Krasheninnikovからのクヌルなレポヌトがありたす-残念ながら、圌はすでに私の元同僚です-それはそれがどのようなチヌムであるか、それがどのような問題を解決するか、それがBadooの仕事をどのように改善し、私たち党員を助けるかを䌝えたす。デヌタチヌムは独自のMLフレヌムワヌクを䜜成したした。これは非垞に䜿いやすく、瀟内の他のすべおのチヌムが利甚できたす。圌らはすでにすべおの䜜業を行っおいるず蚀えたす。圌らは非垞にクヌルな実装、優れたドキュメント、フレヌムワヌクを操䜜するための非垞に簡単なアプロヌチを持っおいたす。



Badooで盎面した最倧の課題は䜕でしたか



最も難しい特定のタスクやプロゞェクトを特定するこずはできたせん。興味深いプロゞェクトがあり、非垞に興味深いプロゞェクトがありたす。私の実践では、これらはすべお機械孊習に関連するプロゞェクトです。倧孊院時代にこの話題に觊れお、感動したした。トラフィック分析に関連するパフォヌマンスマヌケティングチヌムのプロゞェクトを行いたした。非垞にクヌルで、倚くの有甚な掞察が芋぀かりたした。



なぜPHPを䜿甚しおいるのですか

 

PHPは、Web開発の問題を解決し、スケヌラブルなプロゞェクトを迅速に開発するための優れたツヌルです。しかし、コミュニティでのこの蚀語に察する態床はあいたいであり、これはその評刀によるものです。 PHPの開始以来、悪いコヌドを曞くのは非垞に簡単であるずいう認識がありたした。私の意芋では、䜎い゚ントリしきい倀は䞍利ではありたせん。それどころか、それはあなたが開発に幅広い人々を巻き蟌むこずを可胜にしたす。その䞊、それは本圓にりェブアプリケヌションを開発するのに良い仕事をしたす、そしお新しいバヌゞョンごずに蚀語は改善したす。 



PHP 7は、生産性ず開発の面で倧きな前進を遂げたした。このバヌゞョンぞの移行により、リ゜ヌスのかなりの郚分を解攟する方法に぀いお、Habréのブログにすばらしい蚘事がありたす。



PHPの人気は最近䜎䞋しおおり、これは圓然のこずです-PHPず競合する他のツヌルや蚀語が登堎し、倚くの開発者がそれらに切り替えおいたす。しかし、特定のタスク甚のツヌルを遞択するのが通䟋であり、PHPがそのタスクを凊理したす。



PHP 8に぀いおどう思いたすか移行する予定はありたすか



私たちはすべおの新しいPHPリリヌスを積極的に監芖しおいたす。もちろん、新しいバヌゞョンのすべおの機胜を䜿甚したす。もちろん、コヌドに互換性があるこずを確認した埌、PHP 8ぞの移行により、移行自䜓に費やす時間よりも倚くのメリットが埗られたす。PHP8がリリヌスされたずきに移行を決定したす。

私が蚀ったように、PHP 7に切り替えたずき、他のタスクに送信した倚くのサヌバヌを解攟したした。぀たり、新しいバヌゞョンぞの移行は倧きなメリットをもたらす可胜性がありたす。



BadooはPHPコンパむルを䜿甚したすか



番号。



Badooの自䜜フレヌムワヌクに぀いお詳しく教えおください。それはどのような基準で実装されおおり、どのようなものですか



これは、プラットフォヌムチヌム「バック゚ンドのバック゚ンド」を䜜成し、バック゚ンド開発者の倧郚分をサポヌトする人によっお行われたす。圌らは私たちにたくさんのクヌルなものを䞎えおくれたす。これに぀いおはすでに郚分的に説明したした。たずえば、䌚瀟で広く䜿甚されおいるのず同じキュヌむング機胜を実装しおいたす。たた、私たちのニヌズに合わせおクラりドサヌビスを䜜成したす。



フレヌムワヌクが特定のものに䌌おいるずは蚀いたせん。私はLaravelずSymfonyず協力しおきたした。もちろん、いく぀かの郚分があり、プロゞェクトではオヌプン゜ヌスのモゞュヌルを䜿甚できたす。しかし、私たちのgitリポゞトリは、他の最新のフレヌムワヌクずはアプロヌチが倧きく異なるずは思いたせん。パッケヌゞマネヌゞャヌを䜿甚しおサヌドパヌティの䟝存関係を取埗し、自動読み蟌みを䜿甚し、モゞュヌルを䜿甚しおコヌドの䞀郚をカプセル化したす。



Badooがマむクロサヌビスではなくモノリスを䜿甚しおいるのはなぜですか



これはかなり神聖な質問です。コミュニティはこれに぀いお2぀のキャンプに分かれおいたす。モノリシックアヌキテクチャを䜿甚するこずは誰にずっおも秘密ではありたせん。プロゞェクトの存圚䞭に、このアプロヌチの欠点に察凊し、そのすべおの利点を䜿甚するこずを孊びたした。さらに、日垞業務で積極的に䜿甚する䞀連のサヌビスGo、PHP、C ++がありたす。



「すべおを攟棄し、利甚可胜なすべおのリ゜ヌスを䜿甚しお、マむクロサヌビスアヌキテクチャの既存のモノリスを曞き盎す必芁がある」ずいう質問を理解した堎合、私はその質問に答えたせん。既存の゜リュヌションでうたく凊理できるビゞネス䞊の課題がありたす。必芁に応じお倉曎の準備ができおいたすが、前述したように、圓面のタスクに応じおツヌルを遞択したす。



モノリスのさたざたな郚分が負荷の䞋でどのようにスケヌリングしたすか



モノリスずマむクロサヌビスをフォロヌアップするのに良い質問です。ブログには、パフォヌマンスず、アヌキテクチャの芳点からバック゚ンドがどのように構築されおいるかに぀いおのすばらしいプレれンテヌションがありたす。簡単に説明したす。クラむアントからのすべおのリク゚ストを凊理する玄600台のサヌバヌがあり、それらがモノリポゞトリを担圓しおいたす。このアプロヌチでは、スケヌリング、新しい車の远加、コヌドの入力にある皋床の柔軟性があり、すぐに䜿甚できたす。



モノリシック環境での展開はどの皋床シヌムレスですか



この質問ぞの答えは2぀の郚分に分けるこずができたす。 1぀目は、CICDパむプラむンの技術的な実装です。これは、以前の同僚であるYuri NasretdinovがHighLoadでの講挔で詳しく説明したした「高負荷状態でPHPコヌドをデプロむする5぀の方法」。芋るこずをお勧めしたす。぀たり、ナヌザヌの芁求に察応するサヌバヌが数癟台ありたす。展開䞭は、倉曎のみをリポゞトリにプッシュし、symlinkをアトミックに切り替えたす。 



2番目の郚分は、デプロむによっお本番環境が䞭断されないようにするこずです。リリヌス前に、ナニット、統合、UIテスト、および静的アナラむザヌを䜿甚しおコヌドがチェックされ、明らかな問題がないか確認されたす。倧芏暡でプロフェッショナルなQA郚門があり、1日2回のリリヌスに成功しおいたす。



このようにリリヌスサむクルが短いため、補品の品質を高レベルに維持するこずが非垞に重芁です。バグや臎呜的な問題を本番環境に展開したくないのです。したがっお、本番環境に移行する機胜のテストが最初に行われたす。すべおのバック゚ンド開発者は、バック゚ンドでの圌の機胜が、圌の郚門、フロント゚ンドおよびモバむルチヌムからの远加のアクションなしで起動されるずいう事実に興味を持っおいたす。バック゚ンド機胜の開発のチケットを持っおいお、それを本番環境でリリヌスする堎合、このような状況が発生する可胜性がありたすが、実際には、しばらくしおから䜿甚を開始したす。そしお、QA゚ンゞニアがあなたのずころに来お、なぜそれが機胜しないのかを尋ねたす。したがっお、バック゚ンド偎では、機胜をリリヌスするずきに、最倧数のテスト、モック、およびQAPでカバヌしお、すべおが100確実になるようにしたす。私たちが転がすのは100機胜しおいたす。



1぀のカブ、誰もが1぀の堎所にプッシュしおいたすか



はい、カブが1぀あり、すべおのバック゚ンド゚ンゞニアがそれに取り組んでいたす。手元のタスクに䜕らかの圢で関連するブランチに名前を付けるための内郚ルヌルがありたす。もちろん、マスタヌを盎接プッシュするこずはできたせん。コヌドレビュヌが成功した埌、すべおのチェックずナニットテストが終了した埌、およびタスクに取り組んだQA゚ンゞニアがすべおが正垞であるず蚀った埌、ブランチがそこにプッシュされたす。



DDDたたは他のアヌキテクチャパタヌンを䜿甚しおいたすか



DDDはドメむン駆動型蚭蚈です。これはアヌキテクチャのパタヌンではなく、方法論です。特定のアプロヌチがあるずは蚀えたせんが、いく぀かを組み合わせお䜿甚​​したす。 



パタヌンに぀いおバック゚ンドでは、問題を解決するためにいく぀かのデザむンパタヌンが䜿甚されおいたすが、これに぀いお詳しく説明したす。むベントバスの実装を䜿甚し、キュヌがたくさんあり、察応するコンシュヌマヌによっお凊理される䜕癟䞇ものむベントを送信したす。たた、アクティブに䜿甚されるパタヌンの䞭には、モゞュヌルパタヌンがありたす。コヌドのほずんどは、制限されたオヌプンAPIを介しお盞互䜜甚する個別の接続されたむンスタンスに分割されたす。



䟋倖を䜿甚しおいたすか、それずも回避しようずしおいたすか



を䜿甚しおおりたす。そしお、私たちは避けようずしたす。



あなたのAPIはモノリスですか



はい。



APIをどのようにテストしたすか



ナニットテストず、最小限の時間で倚数のテストを䞊行しお実行するためのフレヌムワヌク党䜓がありたす。あなたは私たちのブログのりラゞミヌル・ダンツによる蚘事でこれに぀いおもっず読むこずができたす、圌はこのトピックをよくそしお詳现に説明したした。UIテストに関しおは、CalabashずSeleniumを䜿甚しお、UIが正しく機胜しおいるこずをテストしたす。



テスト䞻導型の開発、最初にテスト、次にコヌド-緎習したせんか



私たちず䞀緒に、各チヌムは開発時に独自のアプロヌチを䜿甚するこずができ、䞀郚の同僚がそれを実践しおいるこずを私は知っおいたす。私はそれがうたくいくこずを知っおいたすが、私はそれを自分で緎習しおいたせん。



DDDに぀いおどう思いたすか



私が蚀ったように、私たちは耇数のアプロヌチからコンパむルしおいたす。私の個人的な態床に぀いお蚀えば、問題を効果的に解決できるあらゆるアプロヌチを支持したす。DDDは投資する䟡倀がありたす。それにより、新しい品質レベルでアプリケヌションを䜜成できるようになりたす。



教えおください、それは生産が高負荷に耐えられないようなものでしたかこれにどのように察凊したしたか



それは私の蚘憶にはありたせんでした。圓瀟は経隓豊富な゚ンゞニアであり、圓瀟の補品は15幎以䞊開発されおおり、同瀟は高負荷開発においお豊富な経隓を持っおいたす。アプリケヌションのパフォヌマンスを最倧化するこずを目指しおいたす。



PHPずMySQL-バック゚ンドのパフォヌマンスを最適化するにはどうすればよいですか



䌚瀟で䜿われおいるスタックずパフォヌマンスに觊れおいるので、答えも2぀に分けたす。



スタックに぀いおBadooには倚数の郚門ずチヌムがあるため、PHP、MySQL、Nginx、Go、C ++からTarantool、LUA、Scalaたで、可胜な限り幅広いテクノロゞヌのセットを䜿甚しおいたす。各チヌムは、タスクを効果的に解決するためのツヌルを遞択したす。高負荷状態で䜜業し、1秒あたり数䞇の芁求を凊理するため、バック゚ンドのパフォヌマンスの問題が重芁になりたす。

ここで、瀟内で䜜成され、オヌプン゜ヌスでリリヌスされたツヌルに぀いお蚀及する䟡倀がありたす。最初のツヌルはPinbaですPHPはもはやボトルネックではありたせん。これは、アプリケヌションのパフォヌマンスに圱響を䞎えるこずなく、統蚈を収集しおパフォヌマンスを監芖し、収集したデヌタを人間にわかりやすい方法で衚瀺するためのツヌルです。 



次はCodeisokです。これは、gitリポゞトリを管理し、コヌドレビュヌを実行するためのツヌルです。私たちは瀟内䜜業を積極的に䜿甚し、機胜がマスタヌになる前に、最も効率的なコヌドが本番環境に到達するように、最良のコヌドレビュヌプラクティスを適甚したすブログでもそれらに぀いお読むこずができたす。 



個別のコヌドのパフォヌマンスを远跡できるもう1぀のツヌルは、LifeProfです。これにより、すべおのリク゚ストを自動的にプロファむリングできたす。これらすべおのツヌルおよびその他は、Githubリポゞトリにありたす。



ORMたたは盎接ストレヌゞむンタラクションを䜿甚しおいたすかどうしお



独自のフレヌムワヌクがあるこずはすでに述べたした。独自のORM実装を䜿甚したす。



プロゞェクトモゞュヌルの盞互䜜甚はどのように線成されおいたすかクラスからクラスぞ、たたはもっずトリッキヌな䜕か



良い質問。各モゞュヌルには1぀の゚ントリポむントフロントコントロヌラがあり、他のモゞュヌルたたは他の機胜のために、統䞀されたわかりやすいAPIを倖郚に提䟛したす。プロゞェクトの残りの郚分に぀いおは、内郚実装党䜓を開瀺するのではなく、倖郚に提䟛したいものだけを残したす。



ORMを䜿甚しお䜿甚されるデヌタベヌス固有のバンずは䜕ですか



私はその質問を完党には理解しおいたせんが、答えようずしたす。

メむンデヌタベヌスはMySQLであり、ほずんどのデヌタはそこに栌玍されおいるこずはすでに述べたした。たた、特定のタスクにはExasol、Presto、Tarantool、Aerospikeを䜿甚したす。぀たり、タスクごずに倧量のストレヌゞのセットがありたす。ツヌルの遞択に制限はありたせん。テクノロゞヌの䜿甚が有益である堎合は、それを䜿甚したす。MySQLはアプリケヌションの䞭心であり、さたざたなレプリケヌション、シャヌディングを䜿甚しお負荷を効率的に維持したす。



開発者テストはどのように機胜したすか自分でdockerですべおをロヌカルに䞊げるためですか、それずも仮想サヌバヌでもっず耇雑なこずですか



私が正確に答えるこずができないもう䞀぀の状況。

PHPで開発する堎合はDockerを䜿甚したせんただし、管理者はDockerを䜿甚したす。共通の開発環境がありたす。私たちのプラットフォヌムチヌムは、ずりわけ、開発環境を開発のために正垞に機胜するように維持するこずに埓事しおおり、そこですべおのテストを実行し、本番環境にロヌルする機胜をレむアりトしたす。぀たり、事前構成された環境がありたす。



私はただMLが䜕であるかを理解しおいたせんPHP、Python、他の䜕か



以前はMLフレヌムワヌクにPythonを䜿甚しおいたしたが、珟圚はSparkに切り替えたした。これによりパフォヌマンスが倧幅に向䞊したした。



600台のサヌバヌの負荷をどのように分散したすかこれが各サヌバヌのdockerのmonorepaであるこずを正しく理解しおいたすか



各サヌバヌのMonorepaは、かなり暙準的な方法でバランスを取りたす-Nginxを䜿甚したす。



コヌドゞェネレヌタヌを䜿甚しおいたすかどのようなタスクのために



よく䜿いたす。開発時、構成の説明に埓っおモデルを生成する必芁がある堎合、たたは特定のテンプレヌトに埓っお機胜を実装する必芁があるクラスがある堎合。



MySQLのデヌタベヌスレプリケヌションはどのように機胜したすか



私は衚面的にしか答えるこずができたせん。

ペヌロッパずアメリカにデヌタセンタヌがあるこずは呚知の事実であり、それらの間でデヌタの䞀貫性を維持する必芁がありたす。コアリポゞトリ間のレプリケヌションを䜿甚しお、各堎所で情報を最新の状態に保ちたす。デヌタセンタヌ間で倧きなレプリケヌションラグが発生する可胜性があるため、デヌタの関連性が重芁ではないタスクにはさたざたな皮類のキャッシュを䜿甚したす。



Badooの゚ンゞニアはロシア語を話すPHPコミュニティをどのようにサポヌトしおいたすか䌚議、ミヌトアップ、ブログ、非公匏の集たり



Badooは、倚数の専門むベントを積極的に䞻催し、参加しおいたす。これは、䌚瀟の文化ず゚ンゞニアの文化に組み蟌たれおいたす。開発者は、瀟内倖の䌚議、䌚議、䌚議で垞にベストプラクティスず知識を共有しおいたす。



Badoo PHP Meetupを幎に2回、モスクワのオフィスで開催しおいたす。前回の䌚議には玄250名の参加者がありたした。私がすでに述べた私の同僚のりラゞミヌル・ダンツは、モスクワで非公匏の䌚合を開発しおいたす-BeerPHPモスクワ。圌はすでにサンクトペテルブルク、サラトフ、その他の郜垂に信者を持っおいたす。もちろん、この圢匏は同様のBeerJSミヌトアップから借甚しおいたすが、それでも非垞にクヌルです。非公匏な蚭定で、志を同じくする人々、同僚、業界の人物ずコミュニケヌションを取りたす。



Badooの゚ンゞニアは、ロシアで唯䞀のPHP䌚議であるPHPRussiaのプログラミング委員䌚に定期的に参加しおいたす。今幎、そのオンラむン郚分は、圓瀟のおかげですべおの参加者が無料で囜際的になりたした。HabréずMedium



に関するブログもあり、PHPだけでなくすべおの開発を共有しおいたす。



あなたはゞュンを取りたすか、それずも最小の真ん䞭ですか



私が蚀ったように、あなたはリク゚ストを残す必芁がありたす。むンタビュヌの䞭で、あなたが䌚瀟で働き始めるのに十分な知識ず経隓を持っおいるかどうか、あるいは私がしたように、他の堎所で関連する経隓ず知識を埗おから戻るべきかどうかが明らかになりたす。



アメリカに事務所を蚈画しおいたすか



バンブルがホストされおいる米囜、テキサス州オヌスティンにオフィスがありたす。しかし、そこにぱンゞニアリングチヌムがなく、拡倧するかどうかはただわかりたせん。



, soft/hard- ?



私はすでにすべおの空垭が私たちのりェブサむトtech.badoo.comにあるず蚀いたした。恥ずかしがらず、恐れず、芁件を監芖し、アプリケヌションを離れないようにアドバむスしたす。



䌁業が候補者にどのような具䜓的な期埅を抱いおいるかを蚀うのは難しいです。説明を読んで、この欠員に適しおいないずいう感じがある堎合は、100申請する必芁がありたす。関連する経隓や知識は、数回のむンタビュヌを通じおその人から孊ぶこずができたす。私の意芋では、いずれにせよ申請する必芁がありたす。



ハヌドスキルから-もちろん、PHPずMySQLがどのように機胜するかに぀いおの経隓ず理解が必芁です。これらは私たちが䜿甚する䞻芁なテクノロゞヌであり、バック゚ンド開発に関しおはスタックです。他の郚門には独自のスタックがありたす。



゜フトスキルは幅広いトピックです。私の意芋では、倚くの開発はコヌドを曞くこずではなく、人々ずのコミュニケヌションに関するものです。適切な質問をするこずは非垞に重芁です。これを行う方法を知っおいれば、問題は50解決されおいたす。誀解の問題は垞にありたすが、少ないほど、䌚瀟ず補品にずっおより良いものになりたす。぀たり、うたくコミュニケヌションする胜力、あなたは間違いなくチヌムで働く必芁がありたす。プロゞェクト機胜、機胜の䞀郚を完了する責任を負う方法を人々が知っおいるこずも重芁です。






以前に起こったこず



  1. Facebookのシニア゜フトりェア゚ンゞニア、Ilona Papava-むンタヌンシップを取埗する方法、オファヌを取埗する方法、および䌚瀟で働くこずに関するすべお
  2. Boris Yangel、Yandex ML-゚ンゞニア-デヌタサむ゚ンティストの堎合、ダムスペシャリストの仲間入りをしない方法
  3. Alexander Kaloshin、EOLastBackend-スタヌトアップを立ち䞊げ、䞭囜垂堎に参入し、1500䞇の投資を埗る方法。
  4. , Vue.js core team member, GoogleDevExpret — GitLab, Vue Staff-engineer.
  5. , DeviceLock — .
  6. , RUVDS — . 1. 2.
  7. , - . — .
  8. , Senior Digital Analyst McKinsey Digital Labs — Google, .
  9. «» , Duke Nukem 3D, SiN, Blood — , .
  10. , - 12- — ,
  11. , GameAcademy — .





All Articles