Evil Martians Ruby on Railsコース

こんにちは、私の名前はアンドレイ・シトニクです。私は邪悪な火星人のフロントエンドです。 3月29、30、4月1日にモスクワで開催されるRuby on Rails Brainwashingにご招待します。



火星人は定期的にRuby on Railsの洗脳を行っています。 今年は、コースをさらにクールにするためにコースを完全に再設計することにしました。 コースでは、フロントエンドに関するセクションをリードします。以下では、過去1月のコースと、Railsでの開発を促進するために最も重要だと考えるトピックについて説明します。



そして物語の最後に、次の3月の洗脳を割引にする2つの方法があります。





ラビルとレシャがラックの練習を説明



このコースでは、RubyやRailsをゼロから学ぶのではなく、商用プロジェクトで既にRubyでプログラミングしている人に焦点を当てます。 多くの場合、毎日のルーチンには、タスクを完全かつ適切に処理したり、エラーの原因を理解したり、正しい方法を学ぶための十分な時間がありません。 そのような経験を採用できる経験豊富な同僚が十分にいないことがあります。



このコースでは、Railsの作業に対する理解を深め、大規模プロジェクトで得た経験を共有し、有用な洞察を与え、一般的な誤解を払拭します。 言い換えれば、Ruby on Rails開発者、チームリーダー、Railsプロジェクトのテクニカルディレクターを短時間で「投入」します。



コース構成



開始日から、コースの構造を変更しました。 Tanya Misyutinaは優れたデータ視覚化の頭脳を持ち、そこで興味深い形式を使用しています。講義の2日、宿題の休憩の1日、4日目の結果のディスカッションです。 最初は、デザインコースでのフォーマットランインがプログラマーに根付かないことを心配していましたが、1月のコースでは、知識を統合し、商用アプリケーション(または必要に応じてオープンソースプロジェクト)で実際の問題を解決するための独立したタスクとして学生を提供しました) この形式はゲストにとっては新しいものであり、結果が心配でした。





デニスはリファクタリングの結果を示しています



しかし、最終日は最高でした! ほとんどすべての学生がプロジェクトを大幅に改善しました。 数人がサイトのロードを数回加速しました(フロントエンドの最適化)。 多くの人がアプリケーションコードをリファクタリングして、理解しやすく拡張しやすくしました。 そして、学生の1人がFeedbinコードを大幅に改善しました。



しかし、最も価値のあることは、講師との議論でした。 学生は私たちのトピックについて多くの明確な質問をしました(余分な日が私の頭に知識を置き、不足しているものを見つけるのに役立ちました)。 学生は私たちと仕事の困難を分かち合い、一緒に最高の解決策を探しました。 予期しない問題-サイトの読み込みが速すぎる(!)-から始まり、マネージャーとのコミュニケーションで終わる多くのトピックを取り上げました。 激しい議論の中で、彼らはなんとかオープンソースプロジェクトで2つの修正を行うことさえできました。



Git



Gitコースは、ツールを深く理解することで開発を別のレベルに進めることができることを示す素晴らしい例です。 すべてのRails開発者はgitを使用しますが、場合によっては、リベースを介したマージの途中で止まってしまい、提供する機能が失われ始めます。 ただし、Gitの内部には、シンプルで明確な基本的なものが含まれています。



ラック



ラックは、Ruby Webアプリケーションの基盤です。 Ruby on Railsスタック内の多くの要素はラックにバインドされており、Rubyがどのように機能するかを理解すると、RailsでWeb要求を処理するメカニズムが説明されます。



Ravil BayramgalinはRackに直接複数回コミットしているため、多くの興味深いアプリケーションについて語っています。



Rails 4のアーキテクチャ



このトピックについて教えたい最も重要なことは、Railsのソースを開いて掘り下げるための最初のアーキテクチャの複雑さを恐れないことです。 これを行うために、Railsで直接コードを整理する方法を簡単に見て、フレームワークを拡張する最善の方法を説明します。



1月のコースでは、最初にコントローラースタックの動作、つまりHTTPリクエストのアプリケーションへの取得からテンプレートのレンダリングまでを検討しました。 Rails 4では、コントローラーのアーキテクチャが大幅に改善されました。その柔軟性を利点として使用する方法について説明します。



Lyoshaは、Railsプロジェクトで広範なチーム経験を持っているだけでなく、Railsコードに複数回コミットしています。



もちろん、コントローラーのみの作業のレビューは少ないでしょう。 3月のコースでは、ArelとSprocketsも分析することでトピックを拡大します。これらの2つのトピックも外部からは怖いように見えますが、実際には内部は非常にシンプルで柔軟です。



リレーショナルデータベース



データベースに関するストーリーについては、ロシアのグルーポンの元火星人およびチームリーダーであるIvan Yevtukhovichを特に招待しました。 Vanyaは素晴らしい講演者であり、Grouponのデータベースを使って彼が実際に魔法をかける方法を何度も見てきました。





ヴァンヤは一日の終わりにデータベースについて話します



もちろん、Ivanのすべての魔法は、PostgreSQLが内部でどのように機能するかを正しく理解することに基づいています。 彼は、クエリのプロファイリング、データベースの複製、およびデータを複数のデータベースに分割する方法について話しています。 インデックスとディスクキャッシュのニュアンスについて説明します。



フロントエンド



フロントエンドは、2つの理論的トピックと2つの実用的トピックの4つのトピックで構成される4時間の特別な「小さな洗脳」専用です。



理論的な部分では、CSSおよびJSコードの編成について説明します。 JavaScriptコードの典型的な問題の概要を説明するために、特定のフレームワークから離れることを特に試みました。 フレームワークがこれらの問題を解決するアイデア。 さまざまなフレームワークアプローチ(Angular、Ember、React、Flight)を説明し、それらの操作を支援します。



練習のために、一方では多くの危険な誤解に関連するトピックで最大限の理解を必要とする2つのトピックを取り上げました。他方では、ビジネスに非常に迅速に利益をもたらすことができます。 サイトの読み込みを高速化する方法と、ほとんどの「フリーズ」およびインターフェイス速度の問題を迅速に診断および修正する方法を説明します。





配布資料からコースへのグラフ 。これにより、インターフェイスの「フリーズ」をすばやく見つけて修正できます。



さらに、重要なフロントエンドツールをリストし(たとえば、Auto-Prefixerについて:-))、デザイナーとのやり取りの問題に対処し、Groupon、Rocketbank、Ontoursでの作業から多くのケースを伝えます。



コードの最適化



高品質でクリーンなコードはすぐに直接商業的利益をもたらすわけではありませんが、非常に強力な長期的影響があり、Rails開発の主要なアイデアに直接関連しています:よく組織化されたコードを使用すると、新しい機能をすばやく追加して、古い機能を処理できます。これはビジネスにとって非常に重要です。



デバッグとプロファイリング



最近、Rubyコードをデバッグするための多くの新しいツールが登場しました。 このコースは理論よりも実践に焦点を当てていますが、新しいツールはこのスキルをより便利にします(たとえば、非常にまれにしか発生せず、本番環境でのみ発生するエラーをキャッチして調査できます)。



Ravilはこのテーマに最適です。 多くの場合、非常に困難な問題に直面し、彼は簡単なパッチの作成を拒否し、エラーのすべての原因を完全に理解するまでgemとRuby自身を掘り下げました。 その結果、彼は、デバッグツールを含む40以上のオープンソースプロジェクトにコミットしています。



聴衆にとって最も記憶に残る瞬間は、ライブデバッグセッション中にRavilがデバッガエラーを発見し、わずかな疑いもなく「深く」なり、デバッガ自体をデバッグした場合でした:-)。



ロールアウト



このトピックでは、Railsアプリケーションを展開するためのテクノロジーに関連しています。もちろん、まず第一に、Capistranoとその新しい3番目のバージョンの機能です。 また、構成管理の基本(ChefとAnsible)についても簡単に説明します。 また、3月のコースでは、Dockerという未来を展開する技術について少し分析します。



割引き



コースには多くの費用がかかります(多くのコースを止めることがわかっています)が、それだけの価値はあります。 それをもう少し利用しやすくするために、Habrahabrを使用しているすべての人(記事を参照することを忘れないでください)に2,000ルーブルの割引を提供します。 また、コンテストも開催しています-Railsでの開発に関する質問をしてください。最高の作者には5,000ルーブルの割引を提供します。



詳細なプログラムとコースエントリ: brainwashing.pro/rails




All Articles