「当社の信頼性要件は平均的な企業よりも高い」:ドイツ銀行のJava開発および会議

Deutsche Bank Technology Centerは、Javaスピーカーで知られています。RuslanChereminAleksey Ragozinは、レポートで最もアクセスしやすいトピックからはほど遠いものを選択し、どちらもテクニカル ブログでリードしてきました。 ドイツ銀行は2016年のジョーカーに参加し、これを口実としてChereminとRagozinにいくつかの質問をしました。











Ruslan Cheremin(シニア開発者)





-通常、彼らは「彼はドイツ出身です」ということだけを知っています-あなたがそこで何をするのか、どのように正確に(たとえば、どのツールを使用するのか)教えてください。



-私たちは外国為替市場に従事しています。 特に、私が働いているチームは通貨商品の価格の生成に従事しています-多くの市場から情報を収集し、それに特別な魔法を適用し、ドイツ銀行がこの特定の通貨を顧客と取引する準備ができている価格を決定します。



ここにあるツールからそれほど珍しいものはありません。ドイツ銀行はIDEAのライセンスを持っていますが、一部の専門家はまだEclipseの習慣から発展しています。 アセンブリにはMavenとAntを使用し、近隣のチームはGradleを使用します。



-「スライドなし」で、「ドイツ銀行には私のような専門家が必要だったことがわかった」と言いました 。そして、「あなたのような」とはどういう意味でしたか。



-その瞬間、私の現在のチームは、価格生成サーバーをゼロから書き直そうとしていました-ディスラプターと他のトリックを使って。 彼らは、この新しいサーバーのメイン開発者となる人物に欠員があり、彼の助けを借りて新しい美しいレイテンシーの数値を達成します。 そして、ここで私はDisruptorについてします。Yandexを去ろうとしているところで、低遅延ドメインで働く機会に非常に興味があります。 会議の準備で、私はVolodya Dolzhenkoに会いました。



-銀行セクターから遠く離れている人に伝えてください:Java開発全般と区別するドイツ銀行TechCenterのような場所でのJava開発の詳細は何ですか? 信頼性要件の増加?



-もちろん、信頼性の要件は平均的な企業よりも高くなっていますが、それでもここではシャトルを開始していません-超越的なものは何もありません。 信頼性は主に冗長性によって提供されます。たとえば、サーバーがリッスンする20個のデータソースのうち、実際に使用されるのは5個のみで、明らかに最高品質です。 突然高品質のソースがサイレントになった場合、残りは単に交換のためにケージに入れられます。低品質ですが、まだ動作しています。 そして、多くのレベルでのそのような冗長性。



銀行セクターの特徴は、非常に規制され検証可能であることです。 したがって、ビジネス要件の重要な部分は、監査人の要件を満たすことです。 たとえば、システムで何が起こっているかに関する多くの情報を保存し、ほぼ永久に保存します。 たとえば、信頼性の要件の大部分は、当社のビジネスから直接もたらされるのではなく、当初は監査人/規制当局から生じます(特定のアプリケーションのコンテキストでは、これらの要件はかなり奇妙に見える場合があります)。



-JPoint 2016で、あなたエスケープ分析について話しました -彼の知識が特定の作業タスクに対処するのにどのように役立ったかの経験から具体的な例を挙げることができますか?



-いいえ、できません:)これはかなり最近の研究であり、彼は私の仕事で注目すべきアプリケーションをまだ見つけていません。 パフォーマンスの面で最も重要なアプリケーションは、かなり古いバージョンのJavaの時代に書き戻され、さらに多くのオーク最適化手法がそこで適用されました。 そして、それがファッションと若者であるという理由だけで、ファッションと若者に関して簡単で信頼できる書き直しをするために...私は新しいプロジェクトを待っています-多分それはそこで役に立つでしょう。



-さて、これは新鮮すぎます-そして、2013年に発表されたJavaメモリモデルのようなトピックの場合、「ここで助けた」特定のケースはありますか?



-はい、コード内の同じ弱いキャッシュが頻繁に使用され、GCの負荷を軽減します。 暑い場所には、特定のシナリオに特化した並行マップまたはバッファーがあります。



一般に、JMMの知識は補助的なスキルです。JMMの主な用途は、意図的に誤った決定を除外することです。 ほとんどの場合、機能、設計、パフォーマンスの点で適切なソリューションを探しています-メモリモデルは、マルチスレッド条件で実装するのが困難なアイデアを拒否するフィルターとして機能し、逆もまた同様です。実証済みのマルチスレッドパターンを提案します。



良性人種のようなトリックはほとんどありません。 JMMの実際の使用のほとんどは、愚かで簡単なことを何もしないことです。



Alexey Ragozin(ソリューションアーキテクト)



-あなたはかなり「ハードコア」な専門家です。 多くの適切なタスクがあるため、ドイツ銀行はあなたに適していますか?



-彼の基準では、私は「ハードコア」に頼りません。 RTCには、超低遅延のカテゴリから問題を解決するチームがあります。ここには「ハードコア」があります。 しかし、ドイツは、業界でまだ「標準」ソリューションを持っていない問題を解決する必要があることが非常に多いという事実に本当に惹かれます。 特定のテクノロジ(インメモリデータグリッドなど)に関心がある場合は、ドイツ銀行TechCenterがほとんど唯一の場所であると言えます。



-あなたは非常に活発な公開活動を行っています。会議で何度も話をしており、英語のブログを持っています。 これの主な動機は何ですか?



-ブログと会議に加えて、私は長い間、MSTUの2番目の高等教育のコースを教えていました。 バウマン、そして今私たちのテクノロジーセンターのJavaスクールで 2つのコースを教えています



しかし、質問に戻ると、主な目標はコミュニケーションの輪、意見交換の輪を広げることです。 ブログのスピーチや記事は、読者/リスナーからの反応を引き出します。私は非常に頻繁に何か新しいことを学びます。



-Javaスクールについては興味があります。2つのコースは何ですか?



-1つはJavaアプリケーションのプロファイリングに関するもので、もう1つはガベージコレクションに関するものです。 JPointに関する私の2つのレポートをエコーし​​ます。



-時々、独学で十分であると信じられています:彼らは、StackOverflowですでに答えを見つけることができると言います。 そして、なぜJavaスクールなのか-それは何を提供するのか、あなたはGoogleにはないだろうか?



-学校はたくさん与えます。 大まかに言って、人が問題を理解していない限り、彼は正しく質問することはできません。 そして、それに応じて、StackOverflowへの答えを見つけることができません。 これは悪循環です。 そのため、多くのエンジニアリングタスクでは、個人が公開されているリソースを使用して特定の問題の解決策を独自に見つけることができるようになる前に、「学問的」基盤が必要です。 これは、JVMチューニングのような狭い技術トピックだけでなく、非常に異なるトピックにも当てはまります。 StackOverflowは、複雑なフレームワークの使用方法やアプリケーションアーキテクチャの設計方法を教えてくれません。








最後に-ChereminとRagozinが近年JUG.ruグループ会議で行った報告:














All Articles