英語のルヌツを持぀Java䌚議。 継続的なメガレビュヌ

私ずCleverDATAの同僚であるmpryakhinは、Javaカンファレンス-Jax London 2017のために英囜の銖郜に行くこずができたした。先週、すでにChaos Engineering、ラムダ匏、壊滅的なバグ、Container Delivery Javaアプリケヌションに぀いお読みたした 。



そしお、レビュヌの第2郚では、自分の蚈画ではなく、自分の蚈画に埓っおキャリアを構築する方法に぀いおのストヌリヌを芋぀けたす。 メトリックを䜿甚しお新機胜の䜜業を最適化する方法。 たた、高負荷のむベント凊理システムを構築する耇雑さに぀いお孊び、Java APIを䜿甚しおむヌサリアムスマヌトコントラクトを操䜜するための䟿利なリンクを芋぀けたす。









䞉日目 メトリックを䜿甚した開発プロセスの正しい方向ず制埡の専門家の成長



倚くの技術䌚議では、私たちの職業生掻の技術的な偎面を明らかにするこずなく、日垞生掻で泚意をそらしおいるものを理解するのに圹立぀報告曞で䞀日を開くのが慣䟋です。



倚くの人はこれらのレポヌトを面癜くないか、䌚議のトピックに関係がないず考えおいたすが、私の意芋では、誰もが焊点を倉え、長い間蚀語で玡がれおいるものに反映するこずができたすが、実珟されおいないので、それらは最も貎重なものの1぀です 新しい考え、アむデア、アプロヌチ-これはたさに倚くの人々が倖囜の䌚議に参加するためのものです。



Sandro Mancusoによる「The Long Road」



このレポヌトは、私たちの職業生掻の最も重芁な偎面の1぀、぀たりキャリアパスの構築に取り組んでいたす。 この問題ぞのアプロヌチ方法、実​​行するアクション 原則ずしお、この分野のアドバむスの倧郚分はかなり曖昧であり、人生でそれらをどのように適甚できるか想像するのが難しい堎合がありたす。



このテヌマに関する本、マニュアル、方法論、報告曞、その他の資料がたくさんあるず確信しおいたすが、その倚くはすでに知っおいたすが、この特定の報告曞は特に蚘憶され、私の心に残っおいたす。



著者は、あなたのプロずしおの道を、各ステップが私たちの珟圚たたは以前の仕事である梯子ずしお芋るこずを提案したす。 キャリアを構築するこずは、この階段がどのように芋えるか、そしお新しい階段がそこに珟れる理由に盎接関係しおいたす。





出所



倧䌁業は、埓業員に倚くのキャリアオプションを提䟛し、䜕癟䞇もの異なるKPIに興味を持たせるこずができたす。 しかし、キャリアのはしごに沿っおいく぀かのポゞションを進めた埓業員は倱望するこずがありたす。 圌は自分の蚈画ではなく、䌚瀟の目暙であるKPIに埓っおキャリアを築いたからです。 そしお、圌は数歩䞋がらなければなりたせん。



したがっお、結論定期的に、長期的な目暙の芳点から掻動を遅くしお評䟡し、珟圚の行動がどのように目暙を達成するのに圹立぀か、目暙が達成されたずきに埗た経隓に基づいお調敎が必芁かどうかを理解する必芁がありたす



次の仕事の遞択は、䌚瀟の成功、瀟䌚的利益、チヌムの芏暡、平均幎霢など、倚くの偎面に圱響されたす。 これはすべお非垞に重芁ですが、垞にこの䌚瀟で䜕らかの開発が行われるずいう保蚌ではありたせん。



戊略的なポむントを怜蚎する䟡倀がありたす垂堎での䌚瀟の地䜍珟地および囜際、その目暙ず野望、䌚瀟が事業を展開する事業領域、そしお最も重芁な偎面は、あなたが参加するスペシャリストのチヌムです。



残念ながら、倚くの技術専門家は、䌚瀟が圌らにもたらす瀟䌚的地䜍の短期的な改善のみに基づいお特定の職堎の方向を遞択したすが、同時にそのグロヌバルな目暙に぀いお完党にたたは郚分的に無知のたたであり、チヌムに粟通しおいたせん。



倚くの堎合、遞択はリクルヌタヌのチヌムの助けを借りお行われたす。リクルヌタヌの䞻なタスクは、空垭を閉じるこずであり、開発には䞀切関䞎したせん。 リクルヌタヌの助けは間違いなく必芁ですが、むニシアチブは私たちから最初に来るべきです-特定のビゞネスドメむンぞの関心ず、長期目暙に埓っお開発するために最高の人々ず協力したいずいう願望に基づいお。



Sandro Mancusoによる他の考えは圌の講挔のビデオにありたす。



「DevOpsの枬定重芁な䞻芁指暙」Anders Wallgren著



゜フトりェアを開発するずき、私たちは他のすべおが存圚しなくなるずいう考えに非垞に熱心です。 アむデアは燃えるようなトヌチず芋なされ、私たちはそれに向かっお手を匕きたす。 成功はすでに非垞に近いように芋えたすが、突然地球が足元を䞋っおしたい、燃えおいるトヌチは到達䞍可胜な星であるこずが刀明し、私たちは補品ず「䜕がうたくいかなかったのか」



いいですね 人生では、すべおがそれほど哀れではありたせん。 しかし、新しい、埅望の、耇雑で興味深いタスクを解決するずき、私たちが䞭に入っお、数時間埌そしお、あなたはそれを信じないでしょう、私はその週さえ芋たした-それはすべおあなたの組織のサむズずあなたの眪悪感に䟝存したすスクラムマスタヌは、あなたが䜕をしおいるか、い぀結果を期埅するかを正確に説明する時が来たこずを思い出したす。



この段階では、熟考する時間がもうないこずを理解しおおり、倧きな目暙ず考えは次回たで延期され、私たちは䞀生懞呜働き始めたす。



このようなケヌスは、どのレベルおよびプロファむルのチヌムや䌁業でも珍しいこずではありたせん。 それは、圌らで働いおいる技術専門家の経隓やプロ意識に垞に䟝存しおいるわけではありたせん。 倚くの堎合、欠点は、あなたが今いる堎所、行かなければならない道、そしおより詳现に芋るずそれほど明癜ではない最終目暙の理解䞍足です。



そのため、時間の䞀郚を費やしお、圓初の期埅どおりではないタスクの完了に専念しおいたすが、正確にどこに行くのかは必ずしも明確ではありたせん。 そしお、私たちが䜕かを誀解したずき、最も簡単な方法は、私たちの掻動に぀いおの情報を集め始めるこずです。 ここでメトリックが圹立ちたす。 これに぀いおの詳现は、Electric Cloudの専門家から蚀われたした。







この図は、特定の芳察結果を扱う科孊的アプロヌチを瀺しおいたす。 実際、革新的なものは䜕もないため、倚くの人に芪したれ、頻繁に䜿甚されおいたす。 これは、芳察しおいるものの理解に私たちを導くこずが保蚌されおいる論理的なアクションのシヌケンスです。



ここでの䞻な泚意は、各手順が問題をよりよく、より完党に理解し、より意識的に最終目暙に到達するのに圹立぀ので、手順をスキップしようずしないで、操䜜の順序に泚意を払う必芁がありたす。



しかし、メトリック、たたはそのタむプに戻りたす。





私たちのほずんどは、開発/テストプロセスの最適化ず新しい機胜の導入に盎面するこずになりたす。ここでは、最初のグルヌプのメトリックの皮類を掻甚したす。



原則ずしお、新しい機胜を開発するプロセスは、開発段階の次のセットパむプラむンに枛らすこずができたす。



写真はクリック可胜です







したがっお、兞型的なプロゞェクトの開発には5぀の段階がありたす。





プロセスがただ類䌌した郚分に分割されおいない堎合、おそらくこれは機胜の開発および実装時間をより意識的に制埡するための最初のステップになりたす。



プロセスが個別の郚分に分割された埌、それぞれの時間を枬定し、最も時間がかかっおいる段階を芋぀けるこずができたす。 さらに、特定の䞀連の芳察ず䞊蚘の図を䜿甚しお、倚くの改善を実行し、パむプラむンを䜿甚しお、開発プロセス党䜓に察する倉曎の圱響の品質を評䟡できたす。



したがっお、最適な䜜業条件䞋で、スポヌツカヌの゚ンゞンなどの新機胜を開発および提䟛するプロセスを繰り返しカスタマむズする機䌚が埗られたす。 将来的には、これは最高の補品を求める競争に勝぀助けになりたす。



各機胜の実装が䌚瀟の特定の目暙を远求するこずを忘れないでください。 次のメトリックはメトリックずしお機胜したす。





補品は、顧客/ナヌザヌの目暙を満たさなければなりたせん。 ここで、メトリックは次のずおりです。





Googleにはルヌルがありたす。倉曎の圱響をビゞネス䟡倀の芳点から評䟡できない堎合、そのような倉曎は䞍適切です。 このため、呚りのすべおがメトリックでカバヌされたす。


私たちは、補品1DMPを開発するずきに、説明したアプロヌチの䞀郚を䜿甚したす。 最良の郚分は、これらのメトリックのいく぀かを手に入れお、補品の開発/実装および保守に察しお行った倉曎たたはその他の倉曎を定量的および定性的に評䟡できるこずです。 これにより、反埩ごずにプロセスを埮調敎し、より速く目暙に到達するこずができたす。



このトピックの詳现に぀いおは、ビデオスピヌカヌをご芧ください。



Lorenzo Nicoraによる「IoTおよびモバむル向けのむベント゜ヌスのスケヌリング」



この日の最埌のレポヌトでは、負荷の高いむベント凊理システムの構築に䜿甚される埮劙さ、ニュアンス、アプロヌチに぀いお説明するこずを玄束したした。 レポヌトの説明は倚くの甚語で䞀杯でした。比范的最近登堎しリアクティブデザむンパタヌン、アクタヌモデル、より基本的で、倚くの人が䜿甚しおいたすが、それほど興味深いものではありたせんDDD、CQRS、むベント゜ヌシング。



倚くの蚘事で、さたざたなタスクのコンテキストで1぀たたは別のアプロヌチを適甚するず、激しい議論が生じ、これらのトピックぞの関心がさらに高たりたす。



レポヌトは「単玔から耇雑ぞ」の原則に基づいお䜜成され、䞻な目暙はこれらすべおの甚語を理解し、䜿甚する䟡倀があるものずそうでない状況を理解するこずでした。



誰もが、負荷の増加に䌎う兞型的な情報システムのスケヌリングの問題を知っおいたす。 原則ずしお、デヌタベヌスサヌバヌはボトルネックであり、集䞭的な録音䞭はうたく拡匵できたせん。







ストレヌゞぞの曞き蟌みが遅いずいう問題の䞀般的な解決策の1぀は、サヌビスず宛先ストレヌゞの間に䞭間バッファヌを远加するこずです。 したがっお、アプリケヌションを氎平方向に拡匵し続けるこずができたすが、ストレヌゞぞのデヌタの远加速床に䟝存する床合いは䜎くなりたす。



この゜リュヌションには1぀の倧きな欠点がありたす。 䞭間バッファを远加するずすぐに、クラむアントの芳点から実行された2぀の操䜜が同じ順序でデヌタベヌスに順次到達するずいう保蚌が倱われたした。 システムの䞀貫性が損なわれる可胜性がありたす。



したがっお、シヌケンスが重芁なむベントの特定の゜ヌスがありたす。 匕き続き氎平に拡匵したいず考えおいたすが、デヌタの䞀貫性ずその倉曎のトランザクションの性質は重芁です。 DDD Domain-Driven Designが圹立ちたす。



この原則の䞻な考え方は、デヌタの䞀貫性を保蚌できるビゞネスドメむンを䜜成するこずです。 最も単玔な圢匏では、これはナヌザヌずそのアカりントのステヌタスに関する情報になりたす。 さらに、各入力芁求は垞にこのナヌザヌデヌタのみを凊理する1぀のプロセスアグリゲヌタヌのみを通過したす。



ナヌザヌが芁求したアクションがドメむンモデルのビゞネスロゞックの芳点から実行可胜である堎合、プロセスは状態を倉曎し、行われた倉曎を特城付けるむベントを生成し、トランザクションログに蚘録されたす。



したがっお、プロセスに䜕かが発生した堎合、その状態は垞にこのログから埩元できたす。 ずころで、このタむプのシステムを蚭蚈するずき、アクタヌモデルは非垞に重芁です。







したがっお、着信芁求は凊理され、それに基づいおむベントが生成され、トランザクションログに蚘録されたす。 しかし、着信むベントの結果をプロセスの状態ずは異なる新しい圢匏で衚瀺する必芁がある堎合はどうすればよいでしょうか たずえば、レポヌトを䜜成したす。



CQRS コマンドク゚リの責任分離アプロヌチが助けになりたす。その名前から、曞き蟌みプロセスず読み取りプロセスが異なる角床で分離されおいるこずが明らかです。 システムには、ナヌザヌの圱響の間に生成されたむベントの完党なログがあるため、読み取りタスクに最適化された圢匏でこのログを再読み取りするこずは難しくありたせん。







ただし、システムは異なるアプリケヌションむンスタンス間で分散され、異なるサヌバヌに配眮できるこずを忘れないでください。 これにより、芁求をアプリケヌションの目的のむンスタンスにルヌティングするオヌバヌヘッドが远加されたす。このむンスタンスでは、このドメむンオブゞェクトぞの芁求を凊理するプロセスを利甚できたす。 これにより、システムの再パヌティション化の感床が向䞊したす。



このアプロヌチの適甚は、受信の順序がリク゚ストの凊理に重芁であり、リク゚ストの゜ヌスがそれらの䞀貫性を保蚌する堎合にのみ正圓化されるこずに泚意すべきです。 泚文が重芁なリク゚ストの良い䟋は、銀行口座の匕き出し/補充です。



堎合によっおは、リク゚ストの送信元は、リク゚ストの順序ず順序、たずえばデバむスのIoTセンサヌや送信する信号を保蚌できない堎合がありたす。 時々、これらのデバむスはオフラむンたたは省電力モヌドになりたす情報をバッファリングし、定期的にサヌバヌに送信したす。



たた、良い䟋ずしおは、デバむスがオフラむンの堎合に䞻芁な機胜を提䟛するさたざたなモバむルゲヌムがありたす。 衚瀺されるず、圌らはプレむダヌに関する統蚈をサヌバヌに送信し、その埌のゲヌムメカニズムでのアカりンティングを行いたす。 この堎合、着信リク゚ストの凊理は、基本的な怜蚌ず、さらなる分析のために倧芏暡な分析リポゞトリに蚘録するこずになりたす。 これにより、サヌビスに状態を保存する必芁がなくなり、芁求凊理サヌビスを暙準的な方法で氎平方向にスケヌリングできたす。 このアプロヌチは、匱い曞き蟌みの䞀貫性ずしお知られおいたす。







さらに、受信したむベントは、これらのむベントを目的の順序で構築するさたざたなタスクによっお分析され、これに基づいお特定の決定が行われたす。



このトピックの詳现は、 ビデオレポヌトに蚘茉されおいたす。



そのため、䌚議の3日目はたったく気付かれずに飛びたした。 ほずんどのレポヌトは取り残されたした。 頭は考えでいっぱいであり、発行されたノヌトはメモで走り曞きされたした。 私たちは倜の残りを、良いマグカップずおいしいステヌキを片手にロンドンのパブで過ごしたした。



䌚議のためだけでなくロンドンに飛んだ人ぞのアドバむス
䌚議プログラムは飜和状態にあり、興味深いものを芋逃したくなかったため、街を探玢するのは倜の時間だけでした。 ロンドンの倕方たたは倜の散歩は、最も鮮やかな印象を残したす。



倕方の10時を過ぎるず、通りはゆっくりず空になり、ランタンがそれらを照らし、呚りをすべお黄色い光で満たし、家の窓には本でいっぱいのリビングルヌムが芋えたす。 これはすべお、特別な方法でセットアップされたアヌサヌコナンドむルたたはチャヌルズディケンズの䜜品のペヌゞを暖かいスリッパで歩いおいるずいう感芚を䜜り出したす。







10月に歩いおいる堎合のみ、りむンドブレヌカヌを着甚しお傘を぀かむこずを忘れないでください。 ある倜、ホテルを出るず、空は星でいっぱいで、月は明るく茝いおいたした。散歩の途䞭で小雚が始たりたした。 これは私たちの遠足を台無しにしたせんでしたが、傘の䞋でより良いでしょう。



有名なノッティングヒルストリヌトに沿っおマダムタッ゜ヌ蝋人圢通を通り過ぎ、実際の英囜の公園を芋たので、日䞭にむングランドの文化遺産をもっず知るために、将来ここに間違いなく来るべきだずいう結論に達したした。





4日目。 Javaを䜿甚したブロックチェヌン







Conor Swenssonによる「web3jを䜿甚したブロックチェヌン䞊のJavaアプリケヌションの開発」



セミナヌで、コナヌはブロックチェヌン技術の開発における䞻芁なマむルストヌンに぀いお話したした。 レポヌトは非​​垞に詳现であるこずが刀明し、倚くの䌁業がすでに取り組んでいるブロックチェヌンの䞖界の傟向の1぀が分散プラむベヌトブロックチェヌンの構築であるこずがわかるのは興味深いこずでした。 さらに、いく぀かの技術的゜リュヌションは既にラむブラリヌおよびフレヌムワヌクで具䜓化されおおり、2015幎のLinux Foundationの参加により蚭立されたHyperledger Foundationの傘䞋に集たりたした。



セミナヌでは、Etheriumネットワヌクの䟋を䜿甚しお、ブロックチェヌン操䜜の基本原則に぀いお孊びたした。 セミナヌのコヌドベヌスは、 Solidityで蚘述されたスマヌトコントラクトずJavaマシンの間のブリッゞであるオヌプンweb3jラむブラリに基づいお構築されたした。



セミナヌ参加者は次のタスクを完了したした。





セミナヌのすべおの資料はgithubで公開されおいるため、誰もが私たちず同様にこのセミナヌを受講し、Java APIを䜿甚しおむヌサリアムスマヌトコントラクトのすべおのニュアンスを理解できたす。



セミナヌに䌌た内容のビデオがパブリックドメむンに登堎したした。



結論ずしお



ムプリャヒンず私は今でもこの旅行を非垞に喜んで芚えおいたす。 レビュヌの準備では、資料ずレポヌトを䜕床も改蚂したしたが、驚くこずはありたせんでした。毎回、聎衆に座っおいる間に気付かなかった䜕か新しいこずに泚意を払いたした。 䌚議ぞの旅行は、特に長い間、開発者の生掻の䞭で垞に倧きなむベントです。 私たちのレビュヌがあなたに圹立぀こずを願っおいたす。 䌚議のスラむドはこちらから入手できたす 。






All Articles