Rubyについて
Ruby
- 1993年に日本人のまつもとゆきひろさんに設計された言語です。
- Rubyが得意とするのは、ショッピングサイト、ブログサイト、アプリケーションサイト など、フレームワークを使い構築できるWebサイトです。
- マイグレーションは、直接SQLを使わずにデータベースのテーブルやカラムなどの構造 を変更できる仕組みのこと。
- 公式サイト
- GitHub
SideKiq
- Rubyで記述されたオープンソースのバックグラウンドジョブフレームワークです。
- Ruby On Railsと緊密に統合し、バックグラウンド処理を非常にシンプルにします。
- 公式サイト
RSpec
- Rubyの自動テストツールです。
- 公式サイト
RubyGems
- RubyGemsソフトウェアを使用すると、システムにRubyソフトウェアパッケージを簡
- 単にダウンロード、インストール、および使用できます。
- 公式サイト
Bundler
- bundlerとは、gemをどのバージョンで使うか一元管理できるgemのことです。
- 公式サイト
jBuilder
- jbuilderとは、RailsのGemfileにデフォルトで含まれている「JSON形式のデータを簡 単に作成する事が出来るgemのこと」です。
Rake
- Rake は Make によく似た機能を持つ Ruby で書かれたシンプルなビルドツールです。
- 公式サイト
RuboCop
- Rubyの静的コード解析を実行するgemです。
- 要はRuboCopが.rbファイルに記述してあるコードを検査し、ここのコードは長すぎるね。とか、インデント入れたほうがいいよ。とかメソッド名変えようか。とかをコマンド 1つでターミナルに吐き出しててくれます。
- 公式サイト
gRPC
- gRPCでは、IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .proto ファイルとして定義し、そこからサーバー側&クライアント側に必要なソースコードのひな形を生成します。
- 言語に依存しないIDLで先にインタフェースを定義することで、様々なプログラミング言語の実装を生成できるというメリットがあります。
- 公式サイト
Rubyフレームワークについて
Ruby on Rails
- Rubyプログラミング言語で記述されたWebアプリケーション開発フレームワークで す。
- 機能が豊富
- コード量も少ない
- 複雑なアプリにも対応
- その分ルールが多く難しい
- 繰り返してはいけない
- DRYはソフトウェア開発の原則であり、「すべての知識は、 システム内で単一の明確で信頼できる表現を持っている必要があります」と述べてい ます。
- 同じ情報を何度も書かないことで、コードはより保守しやすく、拡張可能にな り、バグが少なくなります。
- 設定より規約
- Railsは、Webアプリケーションで多くのことを行うための最良の方 法について意見を持っており、無限の設定ファイルを介して細目を指定する必要はなくデフォルトでこの一連の規約になります。
- 公式サイト
- Railsガイド
- Railsコマンド
Sinatra
- Rubyで作成されたオープンソースのWebアプリケーションフレームワークであり2007 年に公開された。
- シンプルなアプリに対応しています。
- 簡単で分かりやすいので初心者向けです。
- 公式サイト
Padrino
- Sinatraにインスパイアされ、性能を保ちながらその利便性を高めたツールとして知られております。
- Sinatraでは採用していなかったMVCモデルを採用していることが特徴の一つです。
- 小さくて速いです。
- 豊富な追加機能があります。
- 初心者でも簡単に使えます。
- 公式サイト
関連言語について
Crystal
- Rubyに似た構文を使用します(ただし、Rubyとの互換性は目標ではありません)。
- 静的に型チェックされますが、変数の型やメソッド引数を指定する必要はありません。
- Crystalでバインディングを記述してCコードを呼び出すことができます。
- ボイラープレートコードを回避するために、コンパイル時の評価とコードの生成を行い ます。
- 効率的なネイティブコードにコンパイルします。
- 公式サイト
Elixer
- Rubyに似ている言語です。
- 拡張性と保守性の高いアプリケーションを構築するためにデザインされた、動的で関数 型のプログラミング言語です。
- 公式サイト
Antikythera
- Elixerのフレームワークです。2018年4月27日に株式会社ACCESSがOSSにして開発コミュニティ向けに公開しました。
- IoTサービスの実現には、Web技術をあらゆる機器やサービスに組み込むことがカギとなります。
- 並行処理機能を持つ関数型プログラミング言語として注目されるElixirを用いたWebアプリケーションフレームワークです。
- IoTサービスを実現する時に重要となります。
- 公式サイト