GitとGitHub~冒頭~
GItという言葉を聞いた事がありますか?自身はRubyを中心に開発を行なっていますが、開発を進めていく上でGitがあるとないでは、RPGでいう”冒険の書”ぐらい必須だなぁと感じてきます。
Gitとは?
GitやGitHubはプログラミング言語ではなく、開発環境を管理するためのツールです。GitやGitHubをマスターしたからといって、Webアプリケーションが作れるようにはなるわけではありません。
GitやGitHubはプログラミング開発における、作業順序の管理や共同作業のための仕組みと捉えてください。いくらプログラミング技術があっても、GitやGitHubの知識が無い状態では、他のエンジニアと共同作業をすることができないのです。
アプリケーション開発におけるメリット
- バージョン管理が出来る
- 複数人での開発が行える
- 共同開発に使える機能がたくさんある
バージョン管理が出来る
開発を進める中で作成しているファイルが、どれがどの順序で作成されたのか、わからなくなった場合、Gitはこの問題を解決してくれるシステムです。
Gitでアプリケーションを管理すると、それぞれの修正点でセーブポイントのようなものを記録して、時系列で管理してくれます。セーブポイントとしてしっかり記録しているので、当然いざというときには遡ることも出来ます。
複数人での開発が行える
Gitでは、クラウド上での開発が可能なので開発途中経過を見たり、他の人の開発の進行を見たりして、次の工程に移る事が出来ます。
共同開発に使える機能がたくさんある
Gitには開発に使える機能がたくさんあります。代表的なのがフォーク(fork)、プルリクエスト (pullrequest)、マージ(merge)です。詳細はここでは説明しませんが、共同開発をする上で、コミニケーションを取りやすくするツールです。
GitとGitHubの違い
Gitはアプリケーションなどのプロジェクトをバージョン管理してくれるシステム、GitHubはそのGitの仕組みを用いて簡単に複数人での開発ができるようにしてくれるツールです。
GitHubを導入することによって、Gitで管理しているプロジェクトを複数人で取り扱うことができるようになります。
”Gitはエンジニア必須のツール”なんて言葉よく目にしますが、実際に開発に取り入れてみると、確かにそうだなと感じます。GItはまだまだ奥が深いので、自身も勉強しながら使いこなしていきたいとおもいます。
SASSとSCSS
CSSの記述方法でSASSとSCSSというものがあります。CSSはコードが長くなったりすると見易さに難点が出てきたり、トップページなどを作成する際など膨大なCSSの記述に時間が掛かったりします。
SASSとは?
”Syntactically Awesome StyleSheet”の略でSassを利用することで、CSSを効率的に書けるようになります。CSSを簡潔に書けるだけではなく、CSSの中で変数を使ったり、計算を行うことなどができます。
SASSとSCSSがありますが、どちらも同じ”サス”でCSSの表記に若干の違いがあります。
SASS
SASS記法では波カッコの省略やセミコロンが不要などのモダンで非常にシンプルな記法という特徴です。
```
```
SCSS
CSSの表記と似ていますが、SCSSの場合だとネストして続きが書けるため、コードを効率よく書けます。CSSの記述方法とも似ているため、現在はSCSSが主流となっているようです。
```
```
CSSでよく使用する色や数字などに変数を使用することができます。例えばピクセル数やカラーコードなどの何度も使用する値を変数を定義することで、変数名で何度も使用することができます。変数を定義するには、$変数名: 値;のように記述します。
パーシャル
パーシャルで機能や内容ごとに管理ができるようになります。一つのファイル に全てのスタイルを書くと膨大な記述になり、可読性が悪くなります。一定のルールでファイルを分割して開発することで変更・修正がしやすくなります。
下記のファイルだと上、中、下でCSSファイルを分割して分けています。
```
application.scss
```
&(アンパサンド)を使うことにより親のセレクタを参照することができます。
```
```
SASSは最初こそ使いにくく、分かりずらいと感じると思いますが、慣れていくとCSSに戻ろうとは考えないと思います。それくらい便利です!
CarrierWaveの導入
carrierwaveはRuby on Rails のgemでアプリに画像のアップロードをしたい時に使用するgemになります。今回はcarrierwaveの使い方について書いていきます。
carrierwaveの導入方法
carrierwaveはgemなので、gemfileに記載します。画像をリサイズしてくれるminimagickとういうgemも導入機会が多いので一緒に記載します。
次にファイルの作成
$ rails g uploader imageを実行
モデルと関連付けするためにmount_uploader :src, ImageUploaderを記載
先ほど作成したapp/uploaders/image_uploader.rbにてinclude CarrierWave::MiniMagickをコメントアウトを解除して、process resize_to_fit: [100, 100]を追記します。
以上がCarrierWaveの導入になります。
VSCode(Visual Studio Code)の導入 ~Mac~
プログラミングを書いていく上で”テキストエディタ”というものが必要になってきます。
”テキストエディター”とは?
テキストエディタ(英語: text editor)とはコンピュータで文字情報(テキスト)のみのファイル、すなわちテキストファイルを作成、編集、保存するためのソフトウェア(プログラム)である。一般的に、文字情報の入力、削除、コピー、貼り付け、検索、置換、整形などの機能を備えている。Windowsのメモ帳や、macOSのテキストエディット、UNIXのvi、Emacsなど、多くのオペレーティングシステム (OS) やデスクトップ環境に最初から装備されている。
出典: Wikipedia
種類だけあげても
- TeraPad(テラパッド)
- サクラエディタ
- Atom
- Notepad++(ノートパッドプラスプラス)
- CotEditor
- mi
- Sublime Text
- Brackets
- 秀丸エディタ
- Liveweave
- mou
- Visual Studio
- Xcode
- Eclipse
- vi(vim) / Emacs
- Visual S など
これだけの種類があり、どれを選べばいいのか初心者の方は迷ってしまうと思います。今回は使いやすく、多機能でもある”VSCodee”の導入について書いていきます。
VSCodeは、マイクロソフトによって開発された、無料で利用できるテキストエディタです。このテキストエディタはプログラミング開発に特化したものになっていて、エンジニアには非常に人気が高いエディタの一種です。
まずコチラからダウンロードページへ飛びます
ダウンロードが終わったら、VSCodeをDockにドラッグ&ドロップし、アプリケーションフォルダへ移動しましょう。
警告が生じた場合は、まず「このソフトウェアは開けません。」という画面で[OK]を選択し閉じます。次に[システム環境設定]を開き、[セキュリティとプライバシー]をクリックして、[一般]タブを開き、画面下部の「ダウンロードしたアプリケーションの実行許可」にある[このまま開く]をクリックしましょう。[開く]が選択できるので、こちらをクリックして完了です。
導入は以上で完了ですが、より使いやすくするためにいくつかの拡張機能を追加しましょう。
- 日本語表記にしよう
Japanese Language Pack for Visual Studio Code
- HTMLとCSSの自動補完機能を追加しよう
HTML Snippets
作業を効率化するために、自動補完の機能を追加しておきます。
- 全角スペースのチェック機能を追加しよう
zenkaku
プログラミングは基本的に、半角で記述していきます。プログラミングコードの中に全角スペース等が入ってしまうと、予期せぬエラーの要因となってしまいます。そのような事象を防ぐために”zenkaku”を導入しましょう。
zenkakuを使用するためにはもう一手間いります
ここまでやれれば、zenkakuが使用可能になっています。
Qittaなど見ると面白い拡張機能があったりするので、自分で使いやすくカスタマイズしているとちょっと楽しくなりますよ。
Ruby on Rails できること
プログラミングを始めて1ヶ月ほどたった時、個人アプリを作ることになりました。1ヶ月学んでいたものの、正直当時の自分はRuby on Railsで何が作れるのかもわかっていませんでした。
Ruby on Railsで作られたもの
Webアプリケーション
Ruby on Railsが最も得意としているのがWebアプリケーション開発です。
豊富に用意されているGemを利用することで、Webアプリケーションに必要なあらゆる機能を簡単に実装可能です。
API
Ruby on RailsではAPIの開発も可能です。
APIというのは、アプリケーションを他のアプリやデータベースと連携させ、機能を拡張させるためのもの。
例)Twitter、Facebook、LineなどのAPIが使用できます
ブログ
ブログもRuby on Railsで作成できます。
企業などの大規模なサイトや求められている機能を柔軟に追加していきたい場合は、Ruby on Railsでの開発がおすすめです。
通販サイト
通販サイトもRuby on Railsで開発できます。
例)価格.com
SNS
TwitterなどのSNSもRuby on Railsで開発できます。
例)Twitter
Webスクレイピング
Ruby on RailsではWebスクレイピングも行えます。
スクレイピングとは、Web上から特定の情報を集めるための操作で、Ruby on Railsの場合は、「Nokogiri」というGemでスクレイピングが可能になります。
業務システム
入出管理システムやファイル・タスク・スケジュール共有管理システムなど仕事で必要な業務システムもRuby on Railsで開発することができます。
例)GIthub
改めて調べて見ると色々出来ることが分かりました。今後の自身の開発にも取り入れてみたいと思います。
Ruby on Rails ~MVC~
Ruby on Rails はフレームワークとで、Rubyを使用しWebアプリケーションの枠組みを作ることが出来ます。扱うためにはMVCの考え方が必須になります。
MVCとは?
それぞれの頭文字をとってMVCと呼んでいます
M:Model(モデル)
Modelの主な役割は、データベースを管理する事です。コントローラーからの指示に従い必要なデータを取得してコントローラーへ返します。データの取得だけではなく、コントローラーからの命令によっては、データを更新や削除します。Modelの主な役割はデータベースの管理ですが、データの検証(バリデーション)やテーブルとの関連付けなど細かい処理もModelの役割です。
V:View(ビュー)
Viewの役割は、最終的な出力の描画を担当することです。静的なページだけではなく、コントローラーから受け取ったデータを表示させることも可能です。
また、フォームなどでユーザーに名前やコメントなど必要な情報を入力させてコントローラーに渡すことによってデータベースに送信することも出来ます。
C:Controllera(コントローラー)
Controllerの役割は、ViewとModelを繋ぐことです。
Controllerでは、データの表示はViewに、ロジックの実行はModelに切り分けます。ロジック部分をModelに書かずにControllerに書く事は出来ますが、その様なコードを書くとファットコントローラーと呼ばれ、コードが管理しづらい状態になります
ルーティング
URLとアプリケーションを結びつける役割を担っています。MVCに辿る道筋を設定する場所というイメージです。
MVCはそれぞれをちゃんと説明すると深い話になるんで、機会がある時にまた掲載したいと思います。
Git~README.md~
今日GitのMTGに参加したので、付随した話でREADME.md(リード・ミー)について書いていきたいと思います。
README.md(リード・ミー)とは?
リードミー(Readme)とは、ソフトウェアを配布する際の添付文書のひとつ。配布物の一般的な情報を記載したファイルである。多くの場合、そのソフトウェアをインストールし使用する前に読むべきものとされている。とWikipediaには記載されています。
Webアプリケーションを作る際、アソシエーション(MVCのモデル)を繋げるための設計図のようなものです。
Column | Type | Options |
---|---|---|
カラム名 | 単位(数) | 制約(外部制約)など |
user、itemなど |
integer、stringなど |
null:false、foreign_key:trueなど |
Associationはどのモデル同士がそのような関係で結びついているかを記載します。
has_many 参照元テーブル → 参照先テーブル
belongs_to 参照先テーブル → 参照元テーブル
has_one 1対1の関係
シンプルに書くこと、人によっては日本語でREADMEを書いてる方もいるそうです。設計図なので分かりやすく書くということが一番大事なのだと思います。