ノァレラがむンタヌンを雇い、蚭蚈方法を教え始めた方法

開始する



ノァレラは 、䞭倮アゞアの1぀の倧囜にある1぀の倧芏暡IT䌚瀟でチヌムリヌダヌずしお働いおいたす。 仕事にはいく぀かの倧きなプロゞェクトがあり、マヌケティングおよび販売のスペシャリストの茝かしい顔から刀断するず、それらはすぐにもっず倧きくなりたす。 同じ考えで、Valeraはテクニカルディレクタヌから受け取った䌚議ぞの招埅によっお促されたす。 䌚議のテヌマは、教育システムの方向性を拡倧するこずです。



翌朝、䞻芁スタッフが䌚議宀に集たりたした。 テクニカルディレクタヌ圌にただ慣れおいない人のため-圌の名前はむノァンはすぐに質問の栞心に行きたした。 ご存知のように、しばらく前に、垂堎でのプレれンスを拡倧するずいう目暙を蚭定し、そのために新しい営業所を開蚭したした。 したがっお、この戊略はうたくいきたした。 1か月で、遠隔教育プラットフォヌムの開発ず実装に関する契玄に眲名したす。 このプロゞェクトは非垞に興味深いですが、それに぀いおはただそうではありたせん。 それを匕き出すには、教育システムの方向に新しいチヌムを急ぐ必芁がありたす。」



「スリッパ」ノァレラの頭から光りたした。 圌は、垂堎に無料の開発者がほずんどいないこずを明確に理解しおおり、1か月埌には適切な量を芋぀けるこずはほずんど䞍可胜になりたす。 圌はこれらの考えを同僚ず共有したした。 しばらく議論した埌、䌚議の参加者は次の決定に至りたした。 他の3人の匷力な専門家は、新しい方向で他のチヌムず区別されたす。 むンタヌンはすべおのチヌムに受け入れられたす-昚日の孊生たたは孊郚生は蚓緎を受ける必芁がありたす。 すべおのプロゞェクトの矩務が圱響を受けないように、迅速に蚓緎しおください。 Valeraは、新しいチヌムのチヌムリヌダヌになりたす。 解決されたした。



2週間埌、若い男がためらいながら新しいチヌムの新しいオフィスに入りたした。 圌はノァレラのテヌブルに行き、「Yerzhanはあなたの研修生です」ず自己玹介したした。 ノァレラは、以前メヌルでしか察応しおいなかった男性を最初に芋お、タスクを䞎え、解決策を確認したした。 そしお、圌は䌚瀟の最も重芁なプロゞェクトの1぀で長い間働かなければなりたせん。



「座っお」、私たちのヒヌロヌは怅子に向かっお手を振った。 圓瀟には、各むンタヌンにメンタヌを付けるずいうルヌルがありたす。 研修生が課題を完了するのに圹立ち、䜕をどの順序で勉匷するかに぀いおの掚奚事項を瀺したす。 䞀般的に、私の仕事は私が自分自身を知っおいるすべおをあなたに䌝えるこずです。 すべおの質問で私に連絡しおください。」 ダヌゞャンは埮笑んだ「スヌパヌ これは私が物事のコヌスに䜕倍も早く入り蟌み、実際の問題を解決し始めるのに圹立぀ず思いたす。」 ノァレラは、その男には正しい動機があるず自分に蚀い聞かせたした。



動機付けによる動機付けですが、Valeraは、数週間のうちに、囜内の教育システムに悩たされおいる男性から問題を自分で解決できるようにする方法を理解する必芁がありたした。 そしお、それらを効率的か぀時間通りに解決したす。 これを行うには、Valeraが長幎にわたっおキャリアを積んできたすべおの経隓を䜓系化し、それを研修生に迅速に䌝えようずする必芁がありたす。 タスクは簡単ではありたせんが、䟡倀がありたす。 誰かが埌でこれに぀いお本を曞くでしょう。



しかし、䞀般的に、䜕に集䞭するのでしょうか 悪いプログラマヌず良いプログラマヌの違いは䜕ですか 垞に接続し、ステヌタスを远跡し、コヌドの半分を曞き盎し、ステヌトメントをもう䞀方に䌝え、詳现を説明し、ビゞネスに぀いお冷静に行かなければならないこずを知っお、䞀方にタスクを䞎えるこずを恐れるのはなぜですか そのうちの1人はプログラミング蚀語をよく知っおいお、もう1人はあたりよくないでしょうか いいえ、そうではありたせん。 ノァレラは、プログラミング蚀語に関する耇数の本を研究したが、単玔なアプリケヌションを蚭蚈するこずができなかった人々を十分に芋おいたした。 埅っおください...デザむン...そこにありたす 優れた開発者は蚭蚈できなければなりたせん。 そしお、このスキルの開発は最初に集䞭しなければなりたせん。



次に、これをダヌゞャンに䌝える必芁がありたす。 ノァレラは予期せず開始したした「芁件は垞に倉わりたす。」 圌の察談者の驚きの衚情を芋お、圌は続けたした。「開発者ずしおのあなたの䞻な仕事は、䜜成されたシステムのナヌザヌの芁件を実装するこずです。 そのため、ナヌザヌは非垞に颚が匷い生き物であり、必芁なものがすぐにはわかりたせん。 システムの最初のバヌゞョンを確認しお初めお、芁件が明確になり始め、倚くの堎合倧幅に倉曎されたす。 たた、機胜が異なるように動䜜するはずだずわかるたびに満足できるようにコヌドを曞く必芁がありたす。 䜜成した蚭蚈により、これらの芁件を簡単に実装でき、システムが少し良くなるからです。」



ノァレラは、適切な蚭蚈が非垞に重芁である理由をYerzhanに説明するのにもう少し時間を費やしたした。 圌は、キャリアの初期段階で、蚭蚈が䞍十分なシステムをどのように䜿甚したかに぀いお話したした。 それらのわずかな倉曎でさえ、チヌム党䜓でパニックを匕き起こしたした。 結局のずころ、この倉曎埌にシステムが砎損する堎所を誰も知りたせんでした。 そしお、テスタヌが故障を報告するのは良いこずです。 ビゞネスナヌザヌがこれを報告した状況は、ノァレラの最も楜しい思い出に属しおいたせんでした。



Valeraの芁玄「数週間で開発を開始するシステムは、倧きく耇雑です。 そしお、あなたはそこに座っおバグを修正するこずはありたせん。 あなたは開発の本栌的な参加者になりたす。 柔軟なオブゞェクト指向蚭蚈の䞖界に飛び蟌む準備をしおください。」 「い぀でも準備ができおいたす」䞀郚の映画で聞かれるフレヌズは、ゞェルゞャンの朜圚意識から飛び出したした。 圌はたた、ここでそれを奜きになり始めたず思った。



初日。 最初の真実



翌日、Yerzhanが職堎に来たずき、圌が最初に目にしたのはモニタヌの近くにある2冊の本でした。 Stephen McConnellの「Perfect Code」ずRobert Martinの「Perfect Programmer」。 Valeraにこれらの本がなぜテヌブルに茉っおいるのかを説明するように頌み、圌は答えたした。「最初の本は良いコヌドの品質に぀いお語っおいたす。 2番目の本は、優れたプログラマヌの資質に぀いお語っおいたす。 圌らはお互いを完党に補完しおいるように思えたす。 䞀方が他方なしでは存圚できたせん。 これらの本を読んだ埌、開発を倧幅に加速できたす。 さらに、良い本は刺激を䞎えたす。 成功のために重芁です。」



本を終えた埌、ノァレラは圌らが開発するシステムを簡単に説明したした。 少し前、教育省は遠隔教育研究所を蚭立し、教育サヌビスの提䟛のための新しいモデルの開発を任されたした。 その結果、さたざたな倧孊の教垫がコヌスを公開し、孊生がカリキュラムに基づいお必芁なセットを遞択するずいうサむトのコンセプトが生たれたした。 各教垫は、コヌスを完了するための䟡栌を瀺したす。 そしお、孊生は、䟡栌ず品質の比率に基づいお、自分に最適なオプションを遞択したす。 研究所は、このメカニズムが教垫間の競争を刺激し、䞀般に遠隔教育の質を向䞊させるず想定しおいたす。



「そしお、圓瀟はこのモデルを立ち䞊げるためのプラットフォヌムを開発する必芁がありたす。」ずValeraは説明し続けたした。 短い議論の埌、同僚は、これが完了したタスクを怜蚌するためのモゞュヌルになるこずを決定したした。



Yerzhanのラップトップは、必芁なツヌルをすべおむンストヌルした技術サヌビススペシャリストが所有しおいたす。 圌らは明日だけそれを䞎えるので、Valeraは特定のタスクの詳现を議論するのではなく、すべおのプログラマヌが理解する必芁があるこずをYerzhanに䌝えるために今回を䜿甚するこずにしたした。 そしお、圌がそれらをより早く理解するほど、より良いです。



ノァレラは、「オブゞェクト指向プログラミングずは䜕か、それは䜕のために発明されたのか」ずいうお気に入りの質問から始たりたした。ダヌザンは質問の単玔さに驚き、すぐに答えたした。 オブゞェクト指向プログラミングを䜿甚するず、実際のオブゞェクトをコヌドで蚘述できたす。 車があり、車茪やその他のメカニズムがあるずしたす。 「適切なクラスを䜜成し、それを䜿甚しお車を運転し、プログラムで䜿甚できたす。」



ノァレラの時代が来たした。「あなたの話は真実です。 しかし、それはポむントではありたせん。 実際、OOPの䞻な目暙は耇雑さを克服するこずです。 意味を説明したす。 OOP以前は、䞻芁な開発モデルは手続き型プログラミングでした。 しかし、システムがより耇雑になるず、手続き型のアプロヌチは滑り始めたした。 コヌドの保守ず開発は非垞に時間がかかりたした。 たた、すべおの手順では、システムコンポヌネントを盞互に適切に分離するこずができなかったためです。 䞀郚の手順の倉曎は、他の手順の動䜜に圱響を䞎えたした。 OOPは、この問題を解決するために考案されたした。 オブゞェクトアプロヌチを䜿甚するず、プログラムを独立した分離されたコンポヌネントに分割できたす。 そしお、1぀を倉曎しおも他の人の行動には圱響したせん。 さらに、人間の脳は非垞に匱く、ある時点でシステム党䜓をカバヌするこずはできたせん。 たた、このクラスを䜿甚するず、システムの別の郚分に集䞭し、それを理解しお操䜜できるため、タスク党䜓の耇雑さが軜枛されたす。



少し考えお、圌の最初のプロゞェクトを思い出した埌、Valeraは次のように付け加えたした。 付随するすべおの問題を抱えながら、同じCで完党に手続き型のコヌドが蚘述されおいるのを芋おきたした。 オブゞェクト指向プログラミングずオブゞェクト指向蚭蚈を理解し、それらを正しく䜿甚できるようにする必芁がありたす。 その埌、あなたは幞せで実り倚いキャリアを持ちたす。 そしお、今ではOOPのみを䜿甚しおいるずは思わないでください。 他のアプロヌチもあり、それぞれが独自の分野で䜿甚されおいたす。 しかし、私たちにずっお、゚ンタヌプラむズシステムの開発者ずしお、OOPは非垞に重芁です。」



OOPから始めお、次の論理的なステップは、Yerzhanに匱い結合たたは英語の甚語を䜿甚するための疎結合を䌝えるこずでした。 クラスを䜿甚するず、システムコヌドを別々の郚分に分割できたす-これは良いこずです。 しかし、これらの郚分が互いに぀いおできるだけ知識を持たず、可胜な限り独立しおいるこずがさらに重芁です。 あるクラスでの倉曎は、別のクラスには圱響したせん。 さらに、システムはプログラマヌのチヌムによっお䟿利に開発され、それらの間に独立したコンポヌネントを配垃したす。 匱い凝集力は、私たちが必ず努力しなければならない品質です。 しかし、それを行うこずは芋た目よりも困難です。 システムコンポヌネント間の接続は、明瀺的ず暗黙的の䞡方で、さたざたな圢で珟れたす。



説明にしばらく時間を費やした埌、ノァレラはダヌゞャンの物思いに沈んだ顔を芋お、安心させようず急いで蚀いたした。「私が話しおいるこずを完党に理解しおいなくおも心配しないでください。 匊瀟は柔軟な開発手法のファンであり、蚭蚈においおも同じアプロヌチを採甚しおいたす。 明日から実際のタスクを開始し、埐々にスキルを磚きたす。 そしお今日では、理論は十分です。 「オフィスを歩いお、ここですべおがどのように配眮されおいるかを確認し、人々ず知り合うこずをお勧めしたす。」



YerzhanはValeraのアドバむスを急いだ。 圌は残りの時間を新しい同僚ずのコミュニケヌションに費やしたした。 そしお、圌らのそれぞれは、Yerzhanに新しい情報の䞀郚を䞎えたした。 そこで圌は、オブゞェクト指向蚭蚈の基本原則を説明する魔法の略語SOLIDがあるこずを孊びたした。 たた、賢い人々がさたざたなプログラミングの問題を解決するための既補のレシピを思い぀いたこずがわかりたす。 これらはデザむンパタヌンず呌ばれたす。 もちろん、Yerzhanはすぐにはあたり理解したせんでした。圌はこれをすべお理解し、クヌルな゜フトりェアの曞き方を孊びたいずいう匷い願望を持っおいたした。



だから圌の新しい䌚瀟でダヌゞャンの最初の日を過ぎたした。 時蚈が18時を瀺した埌、圌は同僚に別れを告げお家に向かいたした。 しかし数分埌、圌は戻っおきお、テヌブルから「完璧なコヌド」を拟い䞊げ、再び手を振っおオフィスを出たした。



継続するには...



PSこれは、チヌムリヌダヌValeru、むンタヌンYerzhan、および柔軟な蚭蚈に関する䞀連の蚘事の最初の蚘事です。 次の蚘事では、Yerzhanが芁件を実装し、倚くのコヌドを蚘述し、同時に柔軟なオブゞェクト指向蚭蚈の原理を研究する厄介な道に぀いお説明したす。



PPSノァレラに関する最初の蚘事はここにありたす 。



PPPS実圚の人物やむベントずの䞀臎はすべお架空のものです。



All Articles