「もし始めたばかりなら、Scalaを再び選んだでしょう」:Scink開発についてのTinkoff.ru





Scalaは、さまざまな角度から困難を抱える言語で定評があります。入力のしきい値はJavaよりも高く、開発者ははるかに少ないです(したがって、チームを編成するのがより困難になる可能性があります)。 その結果、ロシアの企業はめったにそれを使用することを決定しません。 しかし、Tinkoff.ruは長年積極的に使用してきました。Scalaで実際にどのように機能するかを会社に尋ねることにしました。 技術的な問題と人間的な問題の両方があるため、ソフトウェア開発部門のRoman Dokuchaevの責任者と人事プロジェクトの責任者Olga Shpuntenkoの 2人の従業員に質問をしました





ローマン・ドクチャエフ



-最初の質問は、なぜ会社はScalaを支持して自明でない選択をしたのですか?



-多くの理由があります。 まず第一に、シンプルで簡潔で表現力豊かな非同期コードを書く能力です。 同時に、既製のJavaライブラリを簡単に再利用できます。これは、他のシステム、特にエンタープライズクラスとの統合の問題を解決する際に重要です。 ほとんどの場合、Scalaが好きな人は活気に満ちているので、非常に創造的で陽気なチームを編成することがわかります。 出力では、開発速度が速く、バグが少なく、他の言語に比べて大きな負荷がかかります。



-ここでは、多くの人が簡潔なコードが「単純」を意味しないことに異議を唱えたいと思います。Scalaコードは「squigglesのセット」と呼ばれ、言語自体は複雑と呼ばれます。 新しい従業員が既存のコードを理解するのが難しいという事実に問題はありますか?



-実際、誰もがFPの考え方を整理することは容易ではありません。 しかし、成功した人にとっては、ユニコーン、虹、最小限の痛みで新しい世界が開かれます。 波線について-私は同意しますが、それらを使用する人はほとんどいません。 ほとんどすべてに明確な文字表現があります。 通常、新入社員には大きな問題はありません。



-「デブリーフィング」 ポッドキャストで 、「Goはあまりにも原始的で、金融サービスがあります-フォールトトレランス、パフォーマンス」と言いました。 ここで、誰かが反対する場合もあります:「しかし、GoはGoogleを行います。また、フォールトトレランスとパフォーマンスも備えています。」 Scalaはなぜ「高速」だと思いますか?



-問題はむしろ、ある言語が他の言語よりもどの程度速いかではなく、特定のタスクの実装にどの程度適しているかです。 多くの統合を考慮して、非常に複雑なビジネスロジックが存在します。 Goで実装すると、維持するのが難しい多くのコードを取得します。 時間がたつにつれて、新しいケースが出現するにつれて、特に多くの開発者が書いた場合、コードはさらに複雑になります。 より多くのコード-より多くのバグがあり、最適ではない可能性が高くなります。 したがって、弾力性とパフォーマンスの低下。



-新興企業が実験する余裕がある場合、責任ある大企業は実績のある資金を使用する必要があります。 銀行業界では、責任が高く、ScalaはJavaに関して「若い競争相手」と見なされています。



「Scalaでの6年以上の実稼働アプリケーションで、タスクに信頼できる適切な言語であることが証明されています。 世界中の多くのフィンテック企業が長い間Scalaを選択しています。 最近、これもロシアの特徴です。 これを確認するには、hh.ruの検索で「Scala」と入力するだけです。



-Scalaの反対者は「コンパイルするのに長い時間がかかる」と言いますが、あなたにとってこれは痛ましい場所ではありませんか? プロジェクトで得られたものの具体例を挙げていただけますか?



-実際、ScalaのコンパイルはJavaよりも遅く、特にプロジェクトでシェイプレスマクロが積極的に使用されている場合はそうです。 しかし、マイクロサービスアーキテクチャを使用すると、大きな違いに気付かないことができます。



メトリックについて話すと、依存関係を考慮した6000行のScalaコードのプロジェクトがコンパイルされ、70秒で組み立てられます。



-Scalaでは同じことをさまざまな方法で行うことができるため、独自のガイドラインはありますか?



-はい、それらは進化的な方法で表示されます。 レビューで議論のある状況が発生した場合、SlackのScalaチャットで投票が作成され、チーム自体が合理的なアプローチを選択します。 次に、結果がwikiのタブレットに記録されます。



-Scalaを使用すると、「サイクル」を頻繁に行うことになりますが、Javaの場合、既製のオープンソースJavaソリューションを使用しますか?



-最近、多くの「正しい」非同期Scalaライブラリが登場しました。 以前は、Javaの類似物を使用するか、まれに独自の何かを書く必要がありました。



-そして、あなたのこれから何かを開きますか?



-努力していますが、残念なことに、セキュリティ上の理由から、すべてがオープンアクセスに該当するわけではありません。 Aerospike用のDSLなどの安全なツールセットが開きます。



-Scalaはロシアよりも海外で人気があります-これは、Javaを使うよりも、あなたが国際社会と接触しているという事実につながりますか? 海外のScala会議に参加しますか?



-実際、世界のScalaスタックはロシアに比べてはるかに普及しています。 しかし、これは問題ではなく、開発者が言語に問題を起こすことはめったにありません。さらに、私たち全員がコードと通信します。 専門的な会議について話す場合、毎年最大規模で、誰かを聞いたり、話したりするように努めています。



-Tinkoff.ruは長年Scalaを使用していますが、この期間中にこの言語を使用している会社で何が変わったのですか、どのような傾向がありますか?



-毎年、マイクロサービスからビッグデータまで、Scalaのアプリケーションが増えています。 テスターでさえ、それを使用してプロセスを自動化します。 トレンドは続くと確信しています。



-この言語を使用している間、業界でも多くの変化がありました。たとえば、Kotlinは最近、コルーチンの助けを借りて非同期の重要な問題に対処しました。 今始めたばかりの場合、まだScalaを選択しますか?



-Kotlinも最近勢いを増していますが、言語はまだ非常に若いです。 さらに、特定のシステムを実装するためのプラットフォームを選択する場合、その機能と展望に加えて、市場で利用可能な開発者の数は非常に重要です。 市場にはもっとロックマンがいます。 最初からやり直した場合、Scalaを選択します。



オルガ・シュプンテンコ





-Tinkoff.ruには何人の開発者がいますか、そしてそのうちの何人がScalaで書いていますか?



合計で、全国で約600人の開発者が働いており、そのうち70人は不安定です。



-Scala開発者はJavaよりもはるかに小さいため、そのような開発者を探すのは苦痛ですが、皆さんにつかまなければならないのでしょうか?



-履歴書のScalaまたはJavaキーワードのために全員を雇うわけではありません-候補者はまだ技術面接を受けなければなりません。 Scalaは非常に人気のある言語ではないという事実に加えて、Scalaを学ぶ場所はほとんどありません。 大学はこれを教えていません。Javaでも少し教えられています。すべてがC ++です。 Courseraにはいくつかの教室コースがあり、すべてがそれらに限定されています。 そして、言語を自分で習う少数の人々のうち、誰もがインタビューを受けているわけではありません。



しかし同時に、ロッキーの選択が苦痛だとは言えません。 はい、Scalaでウィンドウの下に書きたい人の列はありませんが、ITコミュニティでの関数型プログラミングへの関心は毎年(モスクワだけでなく)高まっており、これは朗報です。 ロシアにはScalaを使用している企業は多くありませんが、そうなっています。 そして、Tinkoff.ruがわが国では関数型プログラミングに関連付けられていることを嬉しく思います。



-Scalaの方向性がある「フィンテックスクール」は、この「マスターする場所がない」に対処するのに役立ちますか? 彼女の卒業生のどの部分があなたのために働いていますか?



-はい、Scalaをコースの1つにしたのは理由がないわけではありません。 Fintech Schoolsの参加者は、抽象的ではなく、非常に現実的な技術的タスクを処理し、すぐに当社のプロセスがどのように構築されるかを学びます。 そして、学校のカリキュラムを改善し、自分自身で学び、実験し、その結果、卒業生の本当の問題を解決するための準備を整えています。学校の新しい卒業はどんどん良くなっています。 その結果、卒業生の80〜85%が私たちと共に働いています。



-「Java to Scala」の欠員があります。これは、ロッカーを獲得するもう1つの明白な方法です。Javistsを獲得して終了します。 また、あなたの場合、Scala開発者を獲得するための大規模で効果的なチャネルはどれくらいになりますか?



-私たちの場合、チャンネルは非常に大きく、会社で働いていたときのロッキーロッカーの半分以上はジャビストでした。 私たちは、文字通り数ヶ月でかなり短い時間で、岩の多いジャビストを再訓練する方法を学びました。 再訓練を希望する人にとって、これは今すぐ言語を習得する良い機会です。これは明らかに2、3年で人気があり、お金をもらえます。正しい方向に。



All Articles