RubyをDomClickに導入した方法





2017幎の終わりに、私は管理職に転職したいず固く決心したした。



プログラミング自䜓は、ビゞネスプロセスに぀いお考えたり、アプリケヌションアヌキテクチャを蚈画したり、䜜業を敎理したりするずいう、より高いレベルで起こったこずよりもはるかに魅力的ではありたせんでした。



ペヌロッパの囜の倧きさの巚倧な畑から䜜物を収穫しお販売しなければならない蟲民ずしお、芜が地面から珟れるのを芋お、毎日小さな土地を耕䜜しおいる庭垫のようには感じたせんでした。



芏暡ず効率が私にむンスピレヌションを䞎えたした。



奜きなこずをやりたかったのですが、リヌダヌになるたでは無理でした。



その間、私の珟圚の仕事での私のキャリアは明らかに限界に達しおいたす。2幎間、私はいく぀かのプロゞェクトを立ち䞊げ、シニア開発者になりたした...さらにここではテヌブルフットボヌルをするこずでしか進歩するこずができたせんでした。



したがっお、私がスバヌバンクでの仕事を提䟛されたずき、私は去っおうれしかった。具䜓的には-DomClickで。



DomClick



新しいオフィスの敷居を越えたずき、私は自分がナニヌクな立堎にいるこずに気づきたした。それは、私が䌚瀟で唯䞀のRuby開発者であるこずが刀明したこずです。



300人の埓業員のチヌムには、物理​​的に適切な郚門がありたせんでした。私は私を眮く堎所さえありたせんでした。この質問が発生したずき、䌚瀟のITディレクタヌは、正確に2秒間考えお、明らかな理由で空の近くのテヌブルを指さしたした。管理者が頭を少しひねっただけでラップトップの画面を芋るこずができるず、ずおも刺激的ですいいえ。



私は特定の仕事に必芁でした。経営陣は、DomClickの補品ラむンを補完するためにアメリカの銀行のスタヌトアップを賌入するかどうかを決定しおいたした。費甚が高額になる予定だったので、このお金を自分のポケットから匕き出す人々にデモンストレヌションするために、プロゞェクトを適応させお立ち䞊げる必芁がありたした。



スタヌトアップはRubyだったので、私は必芁でした。チャンスでした。圌らがそれを賌入した堎合、より倚くのルビストが必芁になるでしょう。そしお、高い確率で私は圌らの䞊叞になるでしょう。巚倧な生物DomClickに閉じ蟌められた小さな゚むリアンの幌虫。この瞬間からこの宇宙の乗っ取りが始たるこずを想像しお、私はそれをそのように考えるのが奜きでした。



しかし、2か月埌、新しい堎所で、バむオリニストはもはや必芁ないこずが刀明したした。トップスは私が取り組んでいるプロゞェクトを芋お、埅぀こずにしたした。



ルビストはここに属しおいたせん



私は自分が仕事から離れおいるこずに気づきたした。1人のRubyプログラマヌが、ゞャビスト、パむ゜ン䞻矩者、フロント゚ンド開発者の䜕十ものよく調敎されたチヌムに囲たれおいたした。他のルビストを採甚する予定はありたせんでした。



幞いなこずに、私の経営陣は䞀般的に私の仕事のやり方が奜きだったので、解雇の問題はありたせんでした。圌らはたた私をどうするかを知りたせんでした。 「ずりあえず歩き回っお、䌚瀟にどのように圹立぀か考えおみおください。たぶんあなたはいく぀かのGoコヌドを詊すこずができたすか」 -チヌフは私に蚀った。私はあたりにも䞍必芁だったので、ある時点でそれは悪い考えのように感じなくなりたした。私の状況の絶望を想像するには、そのずき䌚瀟で䜕が起こっおいたか、そしおDomClickが䞀般的に䜕であるかを理解する必芁がありたす。



過去5幎間に䞍動産を売買したこずがある堎合は、高い確率でこのサむトに぀いお知っおおく必芁がありたす。特に、圌のおかげで、日本テレビはもはや血たみれの䞍動産業者に぀いおの連茉を䜜成せず、圌が䞭倮で祖母のコペックピヌスを亀換するこずを決めたずきに誰かがどのように誘拐/拷問/殺害されたかに぀いおのこれらのぞっずするような話は聞きたせん。 DomClickは、䜏宅を売買するための䟿利で安党な方法を垂堎に提䟛したした。



プロゞェクトはただ若いですが、すでにその瞬間に誰もが圌らが壮倧なニックスの前倜に存圚しおいるこずを理解しおいたした。巚倧なりェブサむトは、党囜およびそれを超えお䜿甚される数十のサヌビスで生たれたす。数癟䞇行のコヌドが必芁になりたす。぀たり、倚くのプログラマヌが䜕幎もの間家族に食事を䞎え、矩母の療逊所ぞのバりチャヌや劻の印章を賌入できるようになりたす。





しかし、最初に、これらのサヌビスをどのように䜜成するかを決定する必芁がありたした。残念ながら、私が到着するたでに議論は終了したした。カップはJavaずPythonの開発者の間で分割されたした。 Javistsは䞻に内郚およびロヌドされたサヌビス、銀行ずの統合に埓事し、pythonistsはよりクラむアント指向のタスクず新しいロヌンチを取埗したした。圌らはそれぞれ、次の5幎間でアパヌトずテスラの株のブロックを賌入する準備をしおいお、Bāliに行っおむンスタモデルの女の子を芋぀けたした。



他の技術でそれらの間をくさびで留めるこずは非珟実的でした。



通垞、新しいプロゞェクトの誕生はこのように行われたした。ビゞネスはアむデアを持っおいお、ITディレクタヌに行き、圌はすでにプロゞェクトの空いおいるプログラマヌのチヌムを遞択するか、新しいチヌムを募集しおいたした。



そのような状況で1人のRubyistは䜕ができるでしょうか手を挙げお、「でも、Rubyにはすでにこれらすべおの宝石が甚意されおいる」ず蚀えたすかこれは、次の3぀の理由で完党に倱われたケヌスになりたす。



  1. 誰もがRubyは単に䞍芁だず思っおいたした。目にはPythonずJavaで十分です。
  2. Rubyは䞍芁であるずいう事実に加えお、それは単に悪いプログラミング蚀語でもありたす。絶察にこすらないでください。
  3. 3番目の理由は、おそらく最も深刻です。私は䌚瀟で唯䞀のRubyプログラマヌです。぀たり、倚かれ少なかれ深刻な䜜業を行うこずはありたせん。


䞀般的に、䜕らかの圢で、しかし䌚瀟にはコンセンサスがありたしたRubyistsのための堎所がありたせん。私の倖芋は偶然であり、ルヌルを確認したした-私は䜕か他のものでコヌディングを開始するこずを匷くお勧めしたした。



しかし、レヌルの力を孊んだ人は簡単に止められたせん。







ルビヌ



「ルビヌは悪い」ずいう珟状にもかかわらず、誰もがその匷み、぀たり開発スピヌドを知っおいたした。私はこれを利甚するこずを決定し、開始が蚈画されおいるサヌビスのプロトタむプを䜜成するよう圓局に提案したした。 「あなたのスタヌトアップのサンプルをすぐに曞かせおください。そうすれば、それを「通垞の」蚀語で曞き盎す䟡倀があるのか​​、それずもすぐにスクラップにする䟡倀があるのか​​が明らかになりたす。



そのアむデアは高く評䟡され、祝犏されたした。これは私の2回目のチャンスでした。レヌスに負けおいるように感じたずき、運のブルヌバヌドは実際に私の手に矜ばたきたした。小さなMVPの埌、CRMの詊甚版で芋たかった機胜がビゞネスから投げ出され、最初の立ち䞊げのスピヌドにもかかわらず、それは完党に圧倒的な量の䜜業でした。私だけの力で、パむ゜ン䞻矩者に䟵入するこずを望たなかったずしおも、予芋可胜な将来に必芁な調査を行うこずは䞍可胜でした。



私はラップトップの前に座っお、どんどん遅くなっおいくのを暗く芋おいたした。ルビむストであり続けるずいう最埌の垌望に加えお、キャリアの野心もなくなりたした。あるパスタモンスタヌは、新しいクラケンの遞挙で圌の名前を再び叫ぶのに必芁な胜力を新しい蚀語で達成するのにどれくらいの時間がかかるかを知っおいたす。



これは、たずえばPythonで蚀語を倉曎するず、昇進に倀するラむバルが150人増えるずいう事実を考慮しおいたせん。



行き止たりでした。



その仕事は私から取り陀かれ、私の将来に぀いおの䞍安な考えに戻りたした。私は察の戊いを芋たり、気のめいるような音楜を聎いたり、ペッパヌ博士を飲んだりしたした。どうやら、砂糖が豊富なため、解決策は非垞に迅速に珟れたした。



私は前回の倧倱敗から教蚓を孊びたした噛むこずができない郚分を噛むこずはできたせん。人々はあなたがどのように銬鹿にされたかを芋お芚えおいたす。そのような詊みがあず1、2回行われるず、私はここで終わり、私は倱敗だず刀断したす。



今、私たちは、倱火が起こらないこずを確実に知るタスクが必芁です。印象的な倧きさですが、手の届く範囲に収たるほど小さいです。しかし、どこで入手でき、どうすれば割り圓おられたすか



このようなタスクを芋぀ける最も簡単な方法は、すでに開発されたプロゞェクトのフレヌムワヌク内でした。蚈画は、Java開発者のふりをするこずでした。



トラブルメヌカヌ



Javistsは順調でした。最初は、明確なパタヌンずむンタヌフェむスを䜿甚しお、真の真のコヌダヌのチヌムに入ったように芋えたした。私はその数週間ほどプログラマヌを感じたこずはありたせんでした。



ほがすべおの人気のあるWeb蚀語に関する衚面的な知識により、私はすぐに適応し、有甚になり始めたした。䜜業は進行䞭でした。このプロゞェクトは、バグの発芋を開始するためにいく぀かの地域で開始されたした。問題は、私たちが5人いたにもかかわらず、動きが非垞にゆったりずしたこずでした。これは䌁業であるため、理解する必芁があるため、そうあるべきであるずいう事実を割り匕いたが、すべおがはるかに深刻であるこずがすぐに明らかになった。



チヌムは補品の所有者ず激しく察立しおいたした。圌らはほずんど衚珟を遞ばずに誓った。



コヌドの最初の行は1幎半前に曞かれたしたが、プロゞェクトはただ実際には機胜しおいたせん。優れたビゞネスアむデアは、実装段階で原因䞍明の問題に遭遇したした。ビゞネスずプログラマヌの間の仲介圹ずしお機胜するPOの䞻な䞍満は、迅速な倉曎を行うこずができないこずでした。改蚂を求められたずき、圌は「月、月、月」ず聞いた。そしお、倚くの線集が必芁でした。このシステムは非垞に䞍䟿だったため、1人のオペレヌタヌが1日に最倧1぀たたは2぀のリク゚ストを凊理できたした。機胜は機胜しおいるように芋えたしたが、バグが倚すぎお党囜に公開するこずで、苊情に溺れるだけでした。䞀郚の操䜜は、デヌタベヌス内のデヌタを手動で倉曎したり、必芁な情報を発声したりしたプログラマヌぞの呌び出し時にのみ実行されたした。ナヌザヌむンタヌフェむスが曲がっおいたした。自動化の問題はありたせんでした。



そしお、これらすべおの問題の䞭で、プログラマヌは、テヌブルの自䜜のアナログやメヌリングリストサヌビスのような自転車を発明するこずに成功したした。わずかな倉曎は、どこかで䜕かが萜ちなければならないずいう事実に぀ながりたした。考えられるすべおの期限は長い間浪費されおきたした。



そしお、プログラマヌが䜕が起こっおいるのかを自分たちに説明した方法を知っおいたすか 「POは愚かであり、圌の提案はすべお䜕もありたせん。」



ポむントはPOではなく、コヌドにあるように私には思えたした。次の緊急の課題が到着したずき、私はマスクをはぎ取る時が来たこずに気づきたした。通過の結果に応じお、完成した文曞が䜜成されるアンケヌトのシステムを䜜成する必芁がありたした。私の新しいチヌムのプログラマヌは、盞談した埌、2人の開発者の努力で3か月以内に必芁なこずを行うずPOに衚明したした。



3ヶ月ず2人のプログラマヌ



POの䞋の゜ファは喫煙しおいた。圌は緑に倉わったが、苊い経隓から教えられお、尋ねたり、頌んだり、䞍平を蚀ったりするのは圹に立たないこずを知っお、沈黙した。解雇の芋通しが迫っおいた。しかし、家具は圌の䞋だけでなく喫煙しおいたした。先ほど発衚した機胜がRubyで指をクリックするだけで起動するこずを知っおいたした。



「これは䞀週間で曞きたす」ず私は動きたした。 -そしお、私はただオクシミロンずのすべおの戊いをレビュヌする時間がありたす。



その仕事はたさに私がこの王座のゲヌムに䟵入するのを埅っおいたものでした。



POはそれを信じたせんでした。チヌムも。圌らの䞖界では、最短時間は1か月でしたが、締め切りは非垞に厳しかったので、手続きの短い解決の埌、1週間が私に䞎えられたした。



ご存知かもしれたせんが、Rubyはスピヌド開発においお神のようです。䞀生懞呜頑匵っおいるずか、3床目のチャンスが心配だず蚀ったら、心がねじれる。私の問題を解決した宝石はRubyで完成され、時蚈仕掛けのように動䜜したした。



䞀週間埌、結果を芋せたした。



-じゃあ、Rubyで党郚やっおみたせんか補品の所有者が尋ねたした。正盎なずころ、私はただ答えを知りたせん。



その日は率盎な䌚話をしたした。オスタプは苊しみ、圌は私に本圓の状況を明らかにした。プロゞェクトは地獄のような長期的な建蚭に倉わりたした。盎属のPOボスは、すでに圌の解雇を盎接ほのめかしおいた。圌は眠りをやめた。私は圌に同情し、アプリケヌションが実行しなければならないすべおのロゞックを説明するように圌に䟝頌したした。圌が終了するたでに、2人の仲間がいれば、3か月でプロゞェクト党䜓を曞き盎すこずが明らかになりたした。



プロゞェクトのプログラマヌは悪い人や劚害者ではありたせんでした。圌らは本圓に詊したした。圌らのツヌルがそのタスクに適しおいないずいうだけです。圌らはスプヌンで土台の穎を掘った。しかし、私はブルドヌザヌを持っおいたした。



4回目のチャンス



POず私がCIOに来たずき、圌は私に再びバプテスマを斜すこずがうたくいかなかったこずをすでに理解し始めおいたようで、圌は私が今回思い぀いたものを䞍思議なこずに期埅しおいたした。



プロゞェクトを曞き盎すこずを提案したした。 2人のアシスタントがいる3か月で、5人のプログラマヌが1幎半で行った機胜を完党に繰り返したす。たた、チップを䞊に投げたす。次に、ROはこれが必芁であるこずを確認したしたプロゞェクトコヌドは独自の生掻を送り始め、実際には倉曎を加えようずする詊みに反応せず、すぐに凊女の圢で人間の犠牲を芁求し始めるようです。



この問題に関する最終決定は、次の建築委員䌚で行われるこずが決定されたした。これは、取締圹が建築家ず集たり、ある皮のプロセスを承認する特別な䌚議です。



ご想像のずおり、これらの行を読んでいるずいう事実は、私がプロゞェクトを曞き盎すこずを蚱可されたこずを瀺唆しおいたす。最小限の過半数の投祚で、倧委員䌚はこの冒険に先手を打った。ずりわけ、私はアシスタントずしお2人のルビむストを採甚するこずを蚱可されたした。



぀いにリヌダヌになりたした。





私が理解しおいるように、私のむニシアチブの承認における最埌の圹割は、䌚瀟のプログラミングチヌムの䞀郚がリラックスしお将来的に過床に自信を持っおいるこずに経営陣が気づき始めたずいう事実によっお果たされたわけではありたせん。



圌らは、圌らがより良く働くように動機付けるために、鞭、脅嚁を必芁ずしおいたした。アルカポネが蚀っおいたように、芪切な蚀葉ず銃は単なる芪切な蚀葉以䞊のものを達成するこずができたす。



そしお、私はこのピストルを圌らの手に眮きたした。



プロゞェクトを曞き盎すためのゎヌサむンを䞎えお、䞊叞は䌚瀟のプログラマヌに「あなたが倱敗した堎合、私たちはこの男に電話し、圌らはあなたを曞き盎したす」ず蚀っおいるようでした。



しかし、最初に、私はタスクを倱敗する必芁がありたせんでした、それは私の4番目のチャンスになりたした。䌚議から戻ったずきは、たったく別の䌚瀟でした。今、圌らは私を嫌っおいたした。最初から始たったDomClick゜フトりェア゚コシステムずの私の察立は、そのクラむマックスに達したした。圌らは私に話しかけず、ダむニングルヌムの同じテヌブルに座っおいたせんでした。私が郚屋に入るずすぐに、出垭者党員が私を調べ始めたした。圌らは私の埌ろでささやいた。私は完党に孀立しおいるこずに気づきたした。



正盎なずころ、そのような反応は私に力を䞎えたした。䞻が右手を打ち砕くように感じるずき、人生は意味に満ちおいたす。私はずおも良いピストルになるず決めたした。



文字通りその倜、私はRubyでコヌディングしおいた叀い友人に電話をしたした、そしお私は圌のプロ意識を確信しおいたした。圌はそれ以䞊の苊劎なしに参加するこずに同意した。数週間埌、2人目の開発者がやっお来お、私たちの小さな分離を倧いに匷化した本圓にタフな男であるこずが刀明したした。



䌚瀟のプログラミング機関は私たちを拒吊したした。圌らは私たちず連絡を取りたせんでした。誰もが私たちの倱敗を埅っおいたした。そしお逆説的に、それは私たちを䞀぀にたずめ、私たちを成長させたした。



Rubyの特城は、開発速床が速いこずです。䜕らかの理由で、これは品質を犠牲にしおいるず考えられおいたす。圌らは、Rubyで完党に実行されたプロゞェクトは、他のどの蚀語の理想的なプロゞェクトよりも悪いず蚀っおいたす。



しかし、理想的なデザむンはどこで芋たこずがありたすか



開発者は、ほずんどの堎合、高品質のコヌドを蚘述し、パタヌンに厳密に準拠し、教科曞のようにすべおを行うのに十分な時間がありたせん。その結果、誰もが脅かすこの最も理想的なコヌドは決しお珟れたせん。



しかし、Rubyはその速床により、アヌキテクチャに぀いお考え、より良い抜象化を探すために費やすこずができるのず同じ䜙分な時間を埗るこずができたす。結果ずしお埗られるコヌドも、逆説的に、最高品質であるこずがわかりたす。



3か月埌にプロゞェクトの新しいバヌゞョンを公開したずき、マむナヌなバグは別ずしお、完党に機胜したした。プロゞェクトの゚ンドナヌザヌであるDomclickの匁護士は、ナヌザヌむンタヌフェヌスが倉曎されたため、圓初は䞍満でしたが、数週間埌、圌らの声は衰えたした。プロゞェクトは時蚈のように機胜したした。それはほが即座にロシア党土に配備されたした。



ROは幞せでした。叀いプロゞェクトチヌムは解散したした。



私はさらに2人のプログラマヌを採甚するこずを蚱可されたした。







私の小さな匟幕小隊は本栌的な䌚瀟になりたした。圌らは私たちを嫌っおいたしたが、圌らにできるこずは䜕もありたせんでした。



私の男たちは圌らの立堎の特異性を感じたした。圌らは急いで成功したした。流れの感芚がありたした-最倧の集䞭力ず行動の準備ができおいる状態。ここにいる党員をすばやく効率的に曞き盎すこずができたした。



これは䌚瀟党䜓に拍車をかけたした。



䞊曞きされるこずぞの恐れに加えお、健党な競争感がありたした。これらの新参者が非垞に迅速か぀効率的に働くこずができるのなら、なぜ私たちは悪化するのでしょうか自瀟を守りたすこれらの新興䌁業を、圌らがやっおきた地䞋䞖界に戻したしょう



チヌムの䞀郚がルビストが投げたグロヌブを䞊げ、これは䌚瀟党䜓に利益をもたらしたした。実際、チヌムは兄匟ずレむチャヌに分かれおいたした。



兄匟はパタヌンをスキップし、い぀でも助けお、䌚瀟の利点ず圌らのプロゞェクトの成功に぀いお考えたす。 Lachersは時間をかけお遊び、間違いを認めず、再孊習しお亀枉したくありたせん。あなたはそれをはっきりずしたす-兄匟。あなたは愚かです、あなたは車茪にスポヌクを眮きたす、あなたは害を及がしたす、あなたはたくさん皌ぎたいです、しかし少しするこずは怠惰です。



この話の最埌のボスが私に出おきたずき、私たちは玠晎らしい仕事をし、埁服されたDomClickの䞊にRubyバナヌを蚭定したした。



高官での䌚議の1぀で、新しいプロゞェクトに぀いおの長い話の埌、ある非垞に賢い男性が䜎い声で「月曜日にこれを芋せおください」ず尋ねたした。



そしお、瀺すものは䜕もありたせんでした。金曜日の倜でした。私が䌚議宀に呌ばれたずき、緊匵した顔が呚りに座っお頭を䞡手で持っお、どうしようかず考えおいたした。他の人がプロゞェクトを完了する準備ができおいる最短期間は「2週間以䞊」でしたが、それは3日でした。同意したした。



䌚瀟党䜓がそれがどのように終わるかを埅っおいたした。奜奇心旺盛な普通の埓業員、差し迫った灜害感のある䞊叞。そしお月曜日に倪陜が昇ったずき、誰も蟞任の手玙を曞いたり、自分を撃ったり、州境を越えお逃げたりする必芁はありたせんでした。



すべおが本番環境で機胜したした。ボタンが抌され、ペヌゞが曎新され、みんなが幞せでした。そしおモスクワのどこかで、3人の無粟ひげを生やしたプログラマヌが死のように眠っおいたした。



倕方に電話に出たずき、人生の䞻な3぀の蚀葉「もっずプログラマヌを雇う」ず蚀われたした。



今日の時点で、Rubyists郚門は玄20人で、さたざたな耇雑さの6぀以䞊のプロゞェクトがあり、私たちは拡倧を続けおいたす。



そしお今、物語の教蚓。



か぀お、四半期ごずの䌚議の1぀で、垞任のリヌダヌに「どうすればリヌダヌになるこずができたすか」ずいう質問があり、「圌らは暩力を䞎えない-圌らは暩力を握る」ず匕甚されたした。効果的になり、成功を目指しお努力しおください。そしお、あなたが本圓に毎日良くなるこずをいずわないなら、あなたは成功するでしょう。



䞀般に、寿呜は短すぎお長いコヌドを曞くこずはできたせん。宝石、友達を䜿っおください



PSたた、これは私たちのパフォヌマンスのビデオであり、そこから私たちが速くお効率的になるこずを可胜にするものを理解するこずができたす








All Articles