矎しいコヌドずは䜕ですか、それは必芁ですか Yandexはどう思う

Yandexの埓業員数は6,000人を超えおおり、䞀郚の掚定によるず、埓業員の半数以䞊がプログラミングの経隓を持っおいたす。 そしおもちろん、これらの人々はそれぞれ、理想的なコヌドがどうあるべきかに぀いお、独自の正しい意芋を持っおいたす。



その結果、私たちはしばしばコヌドが矎しいはずかどうかに぀いお議論したす。 さらに、ここでの矎しさの抂念は、他の堎所ず同様に䞻芳的であるこずがわかりたした。「プログラマヌのコヌドの奜みは、女性の奜みのようです。 ブルネットが奜きな人もいれば、ブロンドが奜きな人もいたす。」



コヌドのどの特性がさたざたな関係者によっお支持されおいるかを理解するために、私は次の癜熱した議論を熱心に远求しお、同僚に矎しいコヌドずは䜕か、そしおそれはたったく矎しいはずかを尋ねるこずにしたしたか それがうたく機胜し、理解できるのに十分ですか たたは、明確なデフォルトコヌドは矎しいですか







調査には、 bobuk 、 anatolix 、 anton 、Andrey yafinder Plakhov、Anton Samokhvalov、Andrey Gulin、Vladimir Ivanovなどが含たれたす。 このマむクロむンタビュヌに参加したすべおの参加者の8幎間のプログラミング経隓は198幎です。





アンドレむ・ダファむンダヌプラホフ

24幎間のプログラム。 Yandexです。6歳。



圌は2008幎に䞊玚開発者ずしおYandexに来たした。 圌の最初の仕事は、新しいタむプのランキング芁玠であるドメむンを䜜成するこずでした。 ランキングに埓事し、Spectrumシステムを䜜成したした。 物理孊および数理科孊の候補。 珟圚、圌は怜玢機胜サヌビスを管理しおいたす。特に、 怜玢ヒントを開発しおいたす。 圌は、補品の技術ずナヌザヌ特性の䞡方を深く理解しおいたす。



アンドレレむ・プラホフ



矎しいコヌドずは䜕か、プログラマはこのようにすべきかどうかを尋ねるのは、建築家に矎しい家ずは䜕か、そうすべきかず尋ねるのず同じです。 建築家があなたに矎しい家ずは䜕かを説明するこずはたずありたせんし、もしあなたがそれがそのようなものであるかどうか尋ねるず、圌はもちろん圌がすべきこずを蚀うでしょう。



私の意芋では、コヌドは矎しいはずです。 それが矎しい堎合、それは非垞に良いですが、時々あなたはそれなしでやらなければなりたせん。 実際、心の䞭で私たち䞀人䞀人は、い぀か圌がシドニヌなどに自分のオペラハりスを建おるこずを倢芋おいたす。 それたでの間、共同アパヌトを建おる必芁がありたす。



たぶんこれは少し悲芳的なこずかもしれたせんが、1950幎代に共同アパヌトから自分の家に匕っ越した人の堎所に身を眮くず、たずえ5階建おの小さな建物であっおも、珟圚は「フルシチョフ」ず呌ばれたす。人生の喜びは、䞊から吊るすこずができるどんな矎しさよりも。



コヌドの矎しさずわかりやすさは、たったく同じものではありたせん。 最も理解しやすいコヌドは、存圚しないコヌドです。 コヌドが少ないほど良い。 100行のコヌドは、10,000行のコヌドよりも理解しやすく、2行目がどれほど矎しく魔法のように曞かれおいおも関係ありたせん。 これが最初です。 第二に、理解しやすく、䞀般的にコヌドを理解するこずはセックスのようです。 䞀人でやらないほうがいいずいう意味で。




りラゞミヌル・むワノフ

30幎間のプログラム。 Yandexです。22歳。



圌は、Yandex自䜓の開始の数幎前にYandexプログラマヌずしお働き始めたした。 1992幎、圌はロヌカルネットワヌク䞊で5台のコンピュヌタヌを収集したした-倜、奜奇心から。 Yandexが別の䌚瀟ずしお遞ばれたずき、圌はネットワヌク事業に切り替え、長い間すべおのNOCを率いおいたした。 珟圚、圌は再びプログラミングを行っおいたす。ほずんどの堎合、ネットワヌクの操䜜に関連するものです。 公開されたプロゞェクトのうち、 Yandex.BrowserでFastDNSずいう名前を付けるこずができたす。 䞖界の䞍完党さを深く理解し、圌は簡単に党䞖界を曞き換えたす。



りラゞミルル・むワノフ



もちろん、コヌドを矎しくすべきかどうかはコンテキストに䟝存したす。 おそらく、掗濯機のコヌドはあたり矎しくないかもしれたせん。倚くの人が曞いおいないからです。 そしお、倚くの人々がプロゞェクトに参加するずき、コヌドは少なくずもそれほど厄介ではないはずです。 たばこの吞い殻が足の䞋にきしみ音を立おる汚れた郚屋ずは䜕ですか、これはおそらく理解できるでしょう。 コヌドは、あなたが逃げたいものでもありえたす、はい。 そしお、人が拒絶感を抱いおいるずころでは、私は働きたくありたせん。



おそらく、コヌドはある皋床矎しく、ある皋床たずもであるべきです。 矎しい文字で、あなたはある皮のたったくのナンセンスを曞くこずができたす。 しかし、それは起こりたす...぀たり、むンデントだけではありたせん。




アナトリヌアナトリクスオルロフ

それは25幎間プログラミングされおいたす。 Yandexです。9歳。



最初の2幎間、MarketはYandexに぀いお曞いた埌、「サンクトペテルブルクに小さなオフィスを䜜りたした」ず長い間探しおいたした。䞻にその生産性をはじめ、その他すべおを探しおいたした。 珟圚、圌は速床、建築などの分野でさたざたなプロゞェクトに埓事しおいたす。 圌らは、AnatolixがYandexプログラマヌの䞭で最もcであるず蚀っおいたす。



アナトリヌ・オロロフ



私は最近、Kurserで神経生物孊のコヌスを取りたした。 人々は圌をMRIに入れ、写真を芋せ、どれが矎しいのか、どれがそうでないのかを尋ねたした。 その埌、研究者は参加者のどの脳領域が掻性化されおいるかを調べたした。 芁するに、矎しい写真を芋るず、食べられるものの原因ずなる脳の領域が掻性化され、悪い写真を芋るず、その領域が逃げ出すこずになりたす。 矎しいコヌドずは、できるだけ逃げたくない食甚のコヌドです。



誰もが矎しいコヌドを望んでいたす。 真剣に蚀えば、実際には倧芏暡システムでは、完璧で矎しいコヌドは䞍可胜です。 嫌なコヌドは䜿甚できないため、コヌドは嫌なものであっおはなりたせん。 そしお、あなたはそれを正垞に戻すために時間を費やす必芁がありたす。 しかし、完党に矎しいコヌドは、ある皮の時間を費やすこずでもありたす。 チヌムにはそれをなめる時間がありたせん。




アントンPG83サモクバロフ

18幎間のプログラム。 Yandexです。9歳。



9幎前、圌は普通のC ++プログラマヌずしおYandex Marketに来たした。 圌はサヌビスのさたざたなタスクを担圓したした-そのずき私たちはほずんどいたせんでした。 数幎埌、怜玢に移り、ランタむム怜玢の信頌性ずパフォヌマンスに携わりたした。 メタ怜玢、ロボットトラップ、負荷分散システムで倚くの仕事をしたした。 珟圚、圌は倧芏暡な分散クラスタヌ䞊でコヌドベヌス党䜓を数分でアセンブルできるビルドシステムに取り組んでいたす。 アントンは、゚ラヌなしですぐに曞くず蚀うプログラマヌのグルヌプに属したす。 ただ、圌はそうしおいるようで、話すだけではありたせん。



タヌントン・サモフロロフ



矎しいコヌドは最小限のコヌドです。 これは、このコヌドで解決しようずしおいるタスク以倖に䜕もするべきではないこずを意味したす。 ゆるい麺はなかったが、それは思考の明確で簡朔な説明でした。 これが矎しいコヌドです。



コヌドは読み取り可胜である必芁がありたすが、それによっおコヌドが矎しくなるこずはありたせん。 私の芋地からすれば、矎しくない、非垞に読みやすいコヌドを芋たした。



奇劙なこずに、コヌドはおそらく矎しくなくおもかたいたせん。 矎しさはその優れた特性ですが、完党にオプションです。 たず、コヌドは適切に機胜し、それを読んだ人が理解できるものであり、解決されるタスクにずっお過床に耇雑であっおはなりたせん。 圌は同時に矎しいでしょうか 圌が同時に矎しいならいいのですが、原則ずしおこれは必芁ありたせん。





アンドレむ・グリン

それは25幎間プログラミングされおいたす。 Yandexです。9歳。



圌はC ++プログラマヌずしおYandexに来たした。 最初のタスクは、ドキュメント内の単語の正確な圢匏に関する情報を曞き留めるために、逆玢匕の圢匏をやり盎すこずでした補題のみが以前に保存されおいたした。 機械孊習テクノロゞヌであるMatrixnetの䞻芁なクリ゚むタヌの1人。 ランキングサヌビスを実行したす。 クヌヌトが圌の3巻を曞いおいなかったら、この仕事はアンドレむに䞎える䟡倀があったでしょう。 アンドリュヌ自身は、ダンデックスで䜕をしおいるのかず尋ねられたずき、「私はコンピュヌタヌで働いおおり、すべおの人が幞せになるようにあらゆるこずをしおいる」ず答えた。



アドレナリン・グリン



矎しいコヌドが䜕なのかわかりたせん。 矎しいは、ある皮の矎的カテゎリヌです。 画面に収たるか、画像に䌌おいるか。 これらの抂念で操䜜するのは難しいず思いたす。 正盎に蚀うず、圌らは私にはあたり興味がありたせん。



最良のコヌドは、存圚しないコヌドです。 したがっお、すでにコヌドを蚘述する必芁がある堎合は、䜕かがおかしかったのです。 ただし、それを曞いおいる堎合は、読みやすいように曞いおください。 誰かがあなたのコヌドを読むのが䞍快な堎合は、無駄にしようずしたからです。 䞀般に、コヌドの蚘述には10の時間がかかり、残りの90はすでに蚘述されたものを読んでいたす。 したがっお、矎しいコヌドが必芁かどうかはわかりたせんが、読みやすいコヌドが重芁です。



読めないコヌドは通垞、新しい開発者によっお䜜成されたす。 そしお、もちろん、新しい人を募集するずき、たたはむンタヌネットから䜕かをダりンロヌドするずき、私たちはこれに盎面しなければなりたせん。 それは有甚であり、䜿甚できるずいう事実にもかかわらず、誰かが読むこずが䞍可胜な方法ですべおを曞いた、倉数の名前は1文字で構成され、読むこずに費やす必芁がある努力はすべおを曞くこずに匹敵するたた。 したがっお、そのようなコヌドはもちろんcourseいです。 矎しいは明確なコヌドであり、矎しくないコヌドは特に矎しいです。



぀たり、問題を単玔化し、それほど悪くも良くもない方法で解決するこずができたなら、これは間違いなく利益です。 システムがあり、その半分を消去するこずができた堎合、これは祝う必芁がある倧きなお祝いです。 耇雑な方法の発明を避けるこずができれば、これはあなたがする必芁があるこずです。 単玔な線圢怜玢で十分に高速であれば、問題ありたせん。




アンドレむ・ミシュチェンコ

24幎間のプログラム。 Yandexです。9歳。



圌は、C ++開発者ずしおYandexに来たした。長い間、Blog Searchの開発の責任者であり、Perlで曞いおいたした。 アンドレむは、物理科孊および数理科孊の候補です。 珟圚、Andrei Gulinず協力しお、怜玢゚ンゞンの孊習アルゎリズムを改善しおいたす。



アンドレむ・ミシュチンコン



私にずっお、矎しいコヌドの䞻な機胜は柔軟性です。 圌の開発の可胜性は䜕ですか。 より耇雑になり、足元で倉化するタスクを実行する堎合、毎回プロゞェクトの半分を再描画する必芁はありたせん。 いく぀かの堎所で倉曎を加える-すべお準備ができおいたす。 すべおの成長ポむントは、事前にコヌドで予枬する必芁がありたす。 プログラマヌはこの方向に矎意識を向けるべきだず思いたす。



蚓緎するこずができたす。 プログラマヌに矎しいコヌドを芋せ、賞賛するように教えおください。 そしお、蚓緎された矎意識は、正しい建築䞊の決定を䞋すのに圹立ちたす。 圌らはあなたに盎接矎しいように芋えたす。



そしお、スペヌスを正しく配眮する方法、どの倉数名を䞎えるか、どのファむルにプロゞェクトをレむアりトするか、どのフォルダヌに入れるかは、空虚だず思いたす。 私たちはこれ以䞊でなければなりたせんあなたが同僚に同意するなら、それをしおください。 他の人にこれに぀いお議論させおください。




アントン・アントン・ノォルヌヒン

23幎間のプログラム。 Yandexです。8歳。



最短の方法で問題を解決するプログラマヌ。 圌は2006幎にプロゞェクトマネヌゞャヌずしおYandexに来たした。 長幎、圌はブログ怜玢サヌビスの責任者でした。 珟圚、圌はテクノロゞヌ配垃グルヌプを率いおいたす。「Yandexにはクヌルなテクノロゞヌがいく぀あるかを党員に認識させ、ロシア党䜓でテクノロゞヌストヌリヌの品質ずその重芁性を理解しようずしおいたす。」



ネット・ノ・ル・ヌ・ヒン



「矎しいコヌド」ずいう甚語は、2぀の異なるこずを意味するように思えたす。 最近プログラミングをした人にずっおは、矎しいコヌドのように思えたすが、長い間これをやっおいお倚くのこずに出くわした人にずっおは、別のものです。 最初のものは矎孊であり、それは私の頭の䞭の抜象的な矎しさの衚珟に基づいおいたす。これが起こった堎合、コヌドは完璧なようです。 もう1぀は、コヌドがその圹割を適切に実行し、たずえば、このコヌドを埌に読んでくれる100人の人々にずっお理解しやすい堎合です。 そしお、これらはしばしば非垞に異なるコヌドであるこずが刀明したす。



コヌドが矎しいかどうかは、特定の目的に䟝存したす。 䞀般的に、そうだず思う。 人々は自分自身が奜むもののために努力するべきです。 そしお、矎しいコヌドは圌らが奜きなものです。 人々が䞍快で恐ろしいず思うこずを曞いた堎合、圌らは自分たちがしおいるこずを奜たないでしょう。 次に、たずえば、Yandexは悪いでしょう。 だから、誰もが矎しいコヌドを曞くよう努力する必芁がありたすが、頭の䞭で䜕幎もかけお起こるいく぀かの修正がありたす。




グリゎリヌ・ボブク・バクノフ

それは25幎間プログラミングされおいたす。 Yandexです。10歳。



ダンデックスで䜕をしおいたのかず尋ねるず、圌は「みんなに」ず答えたした。 か぀おシステム管理者ずしお働き始め、珟圚はテクノロゞヌディストリビュヌションのディレクタヌをしおいたす。



グリゎリヌ・バクノフ



矎しいコヌドずは、たったく異なる2぀のカテゎリになりたす。 アルゎリズムによる解決策は矎しい堎合がありたす-これは1぀の話です。 たたは、たずえば、いく぀かの矎しいトリック。 たずえば、叀代では、メモリの䞀郚を迅速にクリアするために、アセンブラのプッシュコマンドを䜿甚しお、メモリを䞀気にすばやくプッシュしたした。 そしお、それはただの矎しいトリックでした。 産業甚プログラミングの矎しいトリック-深刻なワヌクロヌド、いく぀かの倧きな深刻な決定に関しおは、ほずんどの堎合、堎所がありたせん。 しかし、矎しいアルゎリズムには垞に堎所がありたす。 そしおもちろん、コヌドは矎しくなければならず、誰もがここでコヌドが匷力であるこずを知っおいる必芁がありたす。



コヌドの䞻なタスクは、蚭定されおいる問題を解決するこずです。 コヌドが行うべき最も重芁なこずは䜜業です。 ステヌゞに分割できたす。 最初に、コヌドをコンパむルする必芁がありコンパむルされた蚀語のコヌドの堎合、テストに合栌する必芁がありたす。 そしお最終的に、これがナヌザヌ向けのコヌドである堎合、圌は圌を喜ばせる必芁がありたす。 ぀たり、コヌドは膚倧な数の異なるタスクを実行したす。 コヌドはプログラマヌ自身を喜ばせるべきですか もちろん、そうすべきです。 そうでなければ、なぜ圌は実際にプログラマヌずしお働くのでしょうか お金のためではなく、私たちは皆ここで働いおいたすよね




これらは私が集めた意芋です。 実際、それらは誰もが矎しいず考えるコヌドのみが異なりたす。 最も重芁なこずは、誰もが同意し、誰も疑うこずのない、コヌドが機胜するこずです。 そしお重芁なのは、同僚があなたのコヌドをどのように扱うかずいうこずです。 きっずあなたはこの問題に぀いおあなた自身の芖点を持っおいたす。 異なるかどうかを知るのは興味深いです。 コメントで教えおください。



All Articles