RailsClub2017。NikitaShilnikov、Dry-rbおよびRom-rbコア開発者へのインタビュー

RailsClub 2017カンファレンスへのカウントダウンは数日間続いており、スピーカーとの会話を公開し続けています。 Pavel Argentovは、Dry-rbとRom-rbの開発者であるNikita Shilnikovに、Rubyコミュニティでの仕事、書籍、状況について尋ねました。



画像






Rubyでプログラミングを始めたきっかけは何ですか?



すべてがシンプルでした。 以前にお金のためにプログラムしたことはありませんでした。 最初はマネージャーでしたが、プログラマーとして働くように勧められました。 行った。 RubyとOracleがありました(現在はあります)。 それ以来、私は同じ場所で7年間働いて、タスクを切り替えてきました。



「職業訓練」を受けていますか、それとも自分で勉強しましたか?



技術的なバックグラウンドがあります。 研究所では、C ++、Prolog、およびアセンブラーを学びました。 仕事を得る前に、JavascriptとC ++を知っていました。



すぐにWeb開発を始めましたか、それとも何かありましたか?



私が仕事に来たのはウェブで、レールがありました。 システムの中核はOracleにあり、インターフェースはRailsにあり、さらにJavascriptが少しありました。 Railsは「ストレージ」、つまりビジネスロジックがない場合にうまく機能します:)(ストアドプロシージャ-P.A.)。



あなたは今webdevで働いていますか?



実際、はい。



そして、どのようにしてオープンソースを手に入れたのですか?



あるカンファレンスで-私は正確に覚えていません-DevConfのように、Rubyに関するセクションがありました。 そこでKirill MokevninがDDDについて話しましたが、私たちが仕事をしているのはDomain Driven Designだけであることに気付きました。 Cyril氏は、ActiveRecordでは、サブジェクトエリアのエンティティをリレーショナルデータベースにマッピングする際に問題があり、ROMを作成する人がいて、最初にDataMapperを作成したと述べています。 それに興味があり、その時(2012年)からROMを監視し始めました。 2015年にバージョン1.0がリリースされました。 私はちょうど新しいプロジェクトを立ち上げました-Railsを使用しました。 私はそこからActiveRecordを投げ、ROMを挿入し、戦い始めました。 この闘争の中で、私はオープンソースプロジェクトのROMとdry-rbでコミットに行きました。



ROMとdry-rbはFPからの借用で知られています。 関数型プログラミング手法をRubyに追加することが重要だと思いますか?



私は特定のプログラミング言語のファンではありません。 各タスクに適切なツールを選択することに賛成です。 さまざまな問題を解決できる一般的な言語があり、それらには長所と短所があります。 20年以上前に登場したRuby自体は、当初はオブジェクト指向でした。 しかし、LISPは彼に非常に強い影響を与えました。 Matzでさえ、PerlとLISPの混合物を作りたいと言った。 そして、LISPは最初の関数型言語です。 深く掘り下げると、Rubyには機能的な祖先があることがわかります。 私たちはOOPに執着しているため、他のツールをRubyで開発することを許可しなかったようです。 他のプログラミング言語を見て、Rubyに当てはまるものを借りる必要があると思います。 FPとOOPを組み合わせることはできますか? 試みています。



なぜ乾燥した宝石はDRYと呼ばれますか?



通常、これは単なる商標です。 宝石の本質は個々の問題を解決することです。 たとえば、dry-typesはタイプを記述し、タイプはさまざまな場所でさまざまな方法で再利用できます。 これは名前の意味の1つです。



ルビーは一般的にどの方向に、特にレールに行きますか?



標準的な質問。 たとえば、Matzはpythonに起こったことを恐れています。Python2からPython 3への飛躍が大きすぎたので、Rubyでこのような繰り返しを望んでいません。 しかし、Ruby 1.8から1.9への移行は具体的なものでしたが、苦痛はありませんでした。 Rubyには後方互換性を壊すような大きな変更はないと思います。 Railsについて具体的なことは言えません。



あなたの意見では、Rubyに欠けているものは何ですか?



ここで私が間違いなく言っているのは、パターンマッチングです。 アプリケーションに加えて、ライブラリコードを記述します。そこでパターンマッチングを使用するのは素晴らしいことです。 アプリケーションの観点から、マルチスレッドのプログラミングプリミティブを追加して、GILを取り除くことができます。 不安定な構造はまだ十分ではありません。非定常の考え方により、コードについて考えるのがはるかに簡単になり、初心者には便利です。 たとえば、ドライ構造では、非安定性をエミュレートしました。 そのようなツールが言語自体にあれば、おそらく素晴らしいでしょう。



あなたの意見では、Rubyエコシステムで最も顕著な現象はdryとromですか?



花見は非常に興味深いプロジェクトです。 これは適切なドキュメントと適切なツールであり、どこでどのように使用するかが明確です。 Railsに代わるものがあることは非常にクールであり、独自のフレームワークを作成することではありません。



なぜ次のレールが必要なのですか?



誰もが1つの大きなプロジェクトに取り組んでいます。 テンプレートからSQLをスローすることから始めました。 レールには、一般的に多くの未回答の質問があります-大規模で長いプロジェクトを開発する方法。 私たちはそれをどのように使うかを学びましたが、共通の標準には達していないので、必要なものすべてが標準化されているフレームワークを持つことはクールでしょう。 Railsの深刻な問題はActiveRecordであり、これには特定の欠陥を伴う物議を醸すパターンがあります。 たとえば、降りるのは難しいです。 また、ビジネスロジックからビジネスロジックを「隠す」ほど、機能しやすくなります。



初心者や経験豊富なルビストにおすすめのサイト/コース/本は何ですか?



初心者には、このような複雑な本を扱うことをお勧めします。最初に読んで、何かが頭に堆積するようにし、作業中に参考として戻ってください。 その好例が、マーティンファウラーの「エンタープライズアーキテクチャ設計パターン」です。 この本は2002年に書かれたものであり、関連性があります。レールの多くのクラスは、そのパターンをいくつか実装しています。 個人的には、経験豊富なプログラマ向けの別の本がそもそもあります。MartinKleppmann、「Designing Data-Intensive Applications」です。 これはあまり深くはありませんが、よく書かれた本で、興味のあるトピックに関するリンクがたくさんあります。 著者は主に分散システムの研究に従事しており、この本を4年間執筆し、さまざまなシステムのデータを扱うことに専念しています。 データを操作する多くの側面をわかりやすく説明し、特定の言語に関連付けられていません。 開発者としてのレベルを上げたい場合、これが一番です。



Rubyコミュニティの最大の問題は何ですか?



言語の可能性をまだ完全に明らかにしていないことを示す必要があります。すでに20年以上前ですが、古いタスクと新しい開発分野の両方に新しいアプローチを適用できます。



面白い? そして、NikitaのRubyでの型についての講演では、さらに興味深いものになります! チケットの購入を先送りする場所はありません。最後の場所は残っています! ここで登録、チケット価格-9000ルーブル。

会議主催者: Evrone



私たちをサポートしてくれる最高の企業に感謝します! たとえば、 Revoは国際的なフィンテック企業であり、主要な小売チェーンやオンラインストアと提携して、5年以上にわたって高度な部品支払いサービスを作成しています。 プラスチックなし。 論文はありません。 シンプル。 早く。 モダン。



会議であなたを待っています。



All Articles