初心者フリーランスのためにRubyフレームワークを調べてみた

                               f:id:nobuo_iine:20181017151101p:plain

初めましての方は初めまして!そうでない方も初めまして!

初心者フリーランスのノブオです。

 

前回はRubyについて、自分の備忘録も含めご紹介させて頂きました。

Rubyは人気言語なだけに、やはりたくさんの資料があり

個人的に非常に勉強になりました。

今回はRubyRubyでも、Rubyに使用されるフレームワークについて

簡単にまとめましたので、ご紹介させて頂きます!

 

 

 

 

1.Rubyとは

Rubyとは、まつもとゆきひろさん(通称:Matz)により開発されたオブジェクト指向スクリプト言語です。
詳細は前回の記事でご紹介しています。

またRubyについて、個人的に参考になったサイトもご紹介します。
結構詳しく書いてあり、フリーランスエンジニアの方にとっては有益な情報があるかもしれません。

 

www.appstars.io

 

2.フレームワークとは

フレームワークとは一般的には「枠組み」「骨組み」「構造」という意味ですが、

IT系の開発現場の「フレームワーク」も同じような意味合いで使われています。

一つのアプリを作ろうとした時に必要な骨組みがある程度フレームワークにはあるので、

アプリ開発をする時のテンプレートのようなものと思って良いかもしれません。

Rubyで有名なフレームワークというと、Ruby on Railsなどが挙げられます。

 

2.1 フレームワーク を使用するメリット

フレームワークを使うメリットとして、生産性のアップし開発向上が期待でき、

ソースコードの書き方が統一される為、保守や改修を行いやすくできます。

例えば一つのプロジェクトでフレームワークを使用せずに開発を進めていて、

初期からアサインされている開発者が離れた場合があったとします。

その開発者が離れても開発された機能は動き続けるので、

何か問題が起こった時に後任のエンジニアがそれらの問題を解決する事になります。

その時に前任の開発者の「書き癖」の濃いソースコードだと、作業効率は下がり、

さらなる不具合を起こす原因となるでしょう。

そのような事を起こさない為にも、フレームワークを使用し、

ソースコードの書き方を統一する必要があるのです。

 

3.Rubyで使われるフレームワーク

Rubyで使われるフレームワークはどのようなものがあるのでしょうか。

有名なフレームワークからあまり耳馴染みしないフレームワークまで簡単に調べてみました。

 

3.1 Ruby on Rails

Ruby on RailsオープンソースのWebアプリケーションフレームワークです。

このフレームワークRoRRailsと呼ばれており、Rubyで書かれています。

短いコードで書け、フルスタック機能を提供している為、とても人気があります。

 

3.2 Ramaze

Ramaze(ラマゼ)は軽量で自由度の高いRubyフレームワークです。
簡潔・軽量・モジュール化を目指して以下8つの原則に従って設計・開発されています。
・KISS:簡単に記述
・POLS:直感的に簡単
・Modular desin:モジュール化により構造選択可能
・Minimal dependencies:Ruby、Rack、Innateのみに依存
・Documentation:全て文章化される
・Open development:パッチ歓迎
・Examples:豊富に実例を用意
・Fully Behaviour Driven Design:Baconを使ったBDD

 

3.3 HANAMI

HANAMIは多数のマイクロライブラリで構成されたRubyフレームワークです。
ある程度の機能を持ちながら、拡張する事を意識して設計されている事が特徴とされているようです。
1つ1つのアプリが小さく、継続的に機能拡張していく開発手法の為、仕様変更に対応できるそうです。

 

3.4 Sinatra

Sinatraは2007年に公開され、Rubyで作成されたオープンソースWebアプリケーションフレームワーク です。

Model View Controllerに基づかない設計で、小さく柔軟性のあるプログラミングが可能とされてます。

またアップル、BBC、LinkedIn、GitHubなどで使用されており、

Ruby on Railsの次に有名なフレームワークと言われています。

 

3.5 Padrino

PadrinoはSinatrawをベースに作成されているオープンソースWebフレームワークです。

こちらもRubyで書かれています。

フルスタックフレームワークとして使用できるそうですが、

必要機能を選択してSinatraに導入する事も可能だそうです。

 

4.まとめ

いかがでしたでしょうか?

Rubyに使用されるフレームワークを簡単にご紹介させて頂きました。

RubyフレームワークといえばRuby on Railsが有名ですが、調べてみると色々なフレームワークがあり、

私個人もとても勉強になりました。
日本では「Rubyの開発=Ruby on Rails」というケースが多いですが、

海外では「Sinatra」や「Padrino」の人気が多いそうです。
初心者フリーランスやベテランフリーランスの方もRuby on Rails以外のフレームワークに実際に触れ、

フレームワーク毎の特徴を感じてみてはいかがでしょうか。

 

また今回Rubyフレームワークを調べるにあたり

下記フリーランスエンジニア・デザイナー向けエージェントの「APPSTARS」さんのサイトが参考になりました。

フリーランスエンジニアの面談対策など、ちょっとした役立ちコンテンツもあるようなのでオススメ致します!

 

www.appstars.io

初心者フリーランスがRuby言語でできることを調べてみた

        f:id:nobuo_iine:20181017151101p:plain

こんにちは!フリーランス初心者のノブオです。
最近エンジニアにチャレンジしようと思い、結構前から国内人気がすごい!と噂の
Ruby」を

習得しようと考えているのですが、、、、

 

「そもそもRubyって何だっけ?」とか

Rubyでどんな事が出来るんだっけ?」など…。

 

調べれば調べるほど興味が出てきてしまい仕事に集中出来ません!笑

そこで今回はRubyとはどういったプログラミング言語なのか、Rubyを習得するとどんな事が出来るのか、など

自分と同じフリーランスの方へ簡単にご紹介できればと思います。

 

 

1.Rubyとは

Rubyとは、まつもとゆきひろさん(通称:Matz)により開発されたオブジェクト指向スクリプト言語です。

Rubyの名前の由来はまつもとゆきひろさんの同僚の誕生月が7月で誕生石がルビー(Ruby)だったから、

との事です。

 

1.1 Rubyスクリプト言語

プログラミング言語には、コンパイル言語とスクリプト言語に分けられるそうです。

コンパイル言語は高速で動作する一方で、記述が面倒であり、スクリプト言語コンパイル言語に比べると

動作が低速ですが、記述が短くすることができます。

Rubyスクリプト言語になるので、少ないコードで簡単に開発できる為、開発スピードが上がり、

可読性の優れたコードを書くことができるそうです。

 

1.2 Rubyオブジェクト指向

オブジェクト指向とは、大規模なソフトウェアを開発する時によく使われる”概念”の考え方です。

ここでは説明を省略しますが、大人数で開発を行う時にソースコードなど開発者側がプログラム全てを

把握できない事が多々あり、途中変更した場合にバグが発生する恐れがあります。

それを克服する為にオブジェクト指向というものがある、との事です。

Rubyオブジェクト指向なので、仕様変更に強く、バグの発生をある程度抑える事が可能と言われています。

 

1.3 優秀なフレームワークRuby on Rails

Ruby on Rails』はオープンソースのWebアプリケーションフレームワークで、Ruby案件の多くは

このフレームワークを使用しています。

多くのスタートアップやベンチャー企業での開発現場で使われており、WEBアプリやゲーム、

業務系システムなど仕様用途は多岐に渡ります。

長いコードを書かずに済む為、開発スピードが上がり、パッケージの充実度が多言語のものと異なるので、

非常に優秀なフレームワークです。

 

Rubyの詳細情報はこちらの記事が参考になりました。

www.appstars.io

 

2.Rubyを習得すれば出来ること

Rubyを習得する事でどのような事が出来るのでしょうか?

 

2.1.WEB、スマホアプリ開発

多くのWEB、スマホアプリ開発Rubyが使われています。
「Smart News」や「楽天市場」「食べログ」など有名なサービスもRubyで開発されているようです。
またRuby on Railsの恩恵もある為、開発スピードの向上や可読性の高いコードの維持も期待できます。

 

2.2 スクレイピング

Webサイトの情報を収集・抽出したり、その情報を加工して仕様する技術のことを

スクレイピング」と言います。

Rubyにはスクレイピングする時の定番ライブラリといえる「Nokogiri」があり、

HTMLなどの情報を解析して要素の抽出する事ができます。

 

2.3 API開発

APIとはソフトウェアの一部を公開して、外部からでも利用できるようにするものです。

APIRubyフレームワークであるRuby on Railsで作成する事が可能です。

APIの作成方法は下記に詳しく記載されています。

https://github.com/rails-api/rails-api

 

3.Rubyで開発されたサービス

Rubyで開発されたサービスを以下に簡単にまとめました。

 

3.1 Hulu

www.happyon.jp

アメリカのロサンゼルスに拠点を置く動画配信サービスですが、Huluの開発にRubyが使われています。
定額で映画、ドラマなどを見る事ができ、日本でもかなり知名度があります。

 

3.2 クックパッド

cookpad.com

クックパッド株式会社が運営する料理レシピコミュニティサイトです。こちらもRubyで開発されています。

 

3.3 Github

github.com

コードを共有しながら開発を進行できるソフトウェア開発プラットフォームです。
開発の進行をGithubで管理できたり、開発現場でもよく使われています。

 

3.4 マネーフォワード

moneyforward.com

個人向け資産管理・家計管理ツールである「マネーフォワード」もRubyで開発されています。
フリーランスになると資産などのお金の管理が色々手間なので、その作業を簡単にできます。

 

4.習得面でのRubyと多言語の比較

Rubyは多言語と比べ、習得のしやすさに違いがあるのでしょうか?

ここでは数あるプログラミング言語の中から個人的な興味から、PythonPHPを選びRubyと比較してみました。

 

4.1 RubyPython

RubyPythonは同じオブジェクト指向スクリプト言語であり、どちらも人気の言語です。

習得のしやすさで言うと、プログラミング初心者からすると「Ruby」の方が習得しやすいとされています。

公式サイトにもあるように、表現力豊かで決まった規約に囚われない点や、

日本生まれのプログラミング言語なので日本語ドキュメントが豊富なので非常にありがたいです。

ただ多言語からRubyPythonに入る場合は、Pythonの方がすぐに入りやすいと言われています。

汎用性の高さ、学術分野、統計、機械学習など数字に強い言語で、シンプルで扱いやすい設計がされている為、

CやJavaエンジニアがPythonを習得する事も多いらしいです。

 

4.1 RubyPHP

RubyPHPはどちらも初心者が習得しやすいプログラミング言語です。

特にPHPは型指定せずにコードを書いても動くと言われています。

PHPで環境構築などWEBサービス制作の大枠に触れ、こんな風にできているのか、と理解し

プログラミングの楽しさを知る事が重要だ」とプログラミングスクールの先生が言っていましたが

プログラミング入門としてプログラミングに触れてみたい・習得したいとお考えの方はPHPを、

スタートアップやベンチャー企業でWEBアプリを開発したいなど、中長期的にフリーランスで活動する時の

明確な目標がある場合にはRubyを選択すると良いかもしれません。

 

5.まとめ

いかがでしたでしょうか?

Rubyを習得する事でできる事について簡単にまとめてみました。

プログラミング言語を習得する時は自分のキャリア・市場価値を考えて「どの言語を選択し、習得するのか」

重要とされています。

Rubyは「書いていて楽しい言語」と言われているので、これからRubyを習得予定のフリーランス初心者の方や

ベテランフリーランスのみなさまは、楽しみながらRubyを習得し、プログラミングの楽しさを感じてみては

いかがでしょうか。

 

そんなわけでフリーランスフリーランスらしい生活をしたい私は

今日からRubyを勉強しようと思います!笑

 

ちなみにフリーランスにとって結構重要な案件獲得手段ですが、このしがない記事が巡りに巡り、

下記エージェントさんと仲良しになりまして、案件紹介していただきました。

www.appstars.io

 

おわり