Techcamp 転職 参加の記録

73期 2020年3月9日開始

3月24日(火) 12日目 webアプリケーションの開発にあたって

 

 


GitHub flow

これに沿って開発するのが一般的である。カリキュラムもGitHub flow に則る。

1.masterブランチのものは何であれデプロイ可能である

2.新しい何かに取り組む際は、説明的な名前のブランチを master から作成する

3.作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容を push する

4.フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、プルリクエストを作成

5.他の誰かがレビューをして機能にLGTM( OK )出をしてくれたらmasterへマージすることができる

6.レビューを経てマージをしたら、直ちにデプロイをする

 


デプロイ

アプリケーションをサーバー上で公に利用可能な状態にすること

 


デプロイと GitHub

デプロイをする際には、GitHub を介して行うと便利。

GitHub のマスターブランチのみがサーバー側に反映されるようにデプロイする。

何か新機能を加えたい時や修正をしたい時は以下で行うと稼働中のサービスを長時間止める事なくアップデートできる。

ブランチを作成
コード変更修正
動作確認
マージ
サーバー側に pull デプロイ

 

コンフリクト あるファイルにおいてブランチごとに情報が異なり辻褄が合わない状況のこと

 


git revert

コミットを打ち消すコミットを生成する操作が行なえる。

gitにおいて、プッシュした情報をローカルリポジトリに戻すことはできないため、プッシュする前に作業をしているブランチは正しいのかどうか、必ず確認する

それでも誤ったプッシュをした場合は、git revert

 


コミットの注意点

コミットはなるべく細かく行うべき。1機能1コミットをするのがベター。基本的にファイルを元に戻したいと思ったときには、コミットごとでしかファイルを元に戻すことが出来ないため。

 


プッシュ

ローカルリポジトリで加えた変更とリモートリポジトリに同期させること。ローカルでコミットが終わり、リモートに変更を同期させたい場合には必ずプッシュを行う必要がある。

 


プル

リモートリポジトリの変更履歴をローカルリポジトリに反映させる操作のこと。

他の開発者による変更がリモートリポジトリに反映された後や、自分でマージを行った際には必ずこのプルの作業を行う必要がある。

 


競合(コンフリクト

複数の人が同じ箇所を編集してしまい、変更箇所を自動では判断できすにマージできなくなること。

競合が起きる条件は、2つのブランチで同じ箇所のソースコードを編集した際、片方のブランチをマージし、もう片方のブランチを同じブランチにマージをするという2つの条件が起こったときに、競合は発生する。

 


.gitignore
gitの管理対象から管理を外すためのファイルやディレクトリを指定するためのファイル。.gitignoreにファイルやディレクトリを指定すると、管理対象から外すことができる。
管理対象から外れるということは、githubにコードやファイルを同期させなくて済むということ。
- アプリケーションのlogファイル
- 画像ファイル public/uploads 以下
- secrets.yml 等のセキュリティ上問題があるファイル
このようなファイルを主にgitignoreに指定する。
これ以外にも、自分でgithubで公開したくないファイルも自分で指定できる。

 


/log/*

という記述が.gitignoreのファイルにあったら

logファイル以下のファイル、ディレクトリをgitの管理下から除外を行う指定を行っている。

 

 

 

ChatSpace

ChatSpaceを実装することで、身につくスキル

Webサービスの開発全体の流れの把握
GitHubを用いたサービス開発フロー
ゼロからのデータベース設計
Railsを使ったアプリケーション制作
javaScriptを使った動きのあるアプリケーション制作
サービスをWeb上に公開する方法

 

Webアプリケーション開発の流れ

企画
設計
開発
公開
(運用、保守)

 


Webアプリケーション開発手順

必要な機能の洗い出し
必要な画面の設計
データベースの設計
Railsでアプリケーションの雛形を作成
大きな機能から順に実装
テストコードを記述し動作を担保する
リファクタリングによりソースコードを整理する
外部のサーバにサービスをアップして公開する

 

コミットメッセージの書き方(まとめ)

書く上で心がけること
- 後で見て、コードを見なくても何をしたか分かるように書く
- 他人が読むものとして書く
- 長くなりそうだったら改行して何行書いても良い

 


SQL

ますはターミナルで操作

% mysql -u root

Mysqlにルートで接続する

Show databases;

作成済みのデータベースを参照する

create database 名前;

新しいデータベースを作成する

use データベース名

選択する

show tables

データベースの中を見る

CREATE TABLE テーブル名 (カラム名 カラム名の型, ……);

 


Railsでは数字を入れる型は"Integer"、文字列を入れる型は"String"だった

 


型名
保存できる値
INT
数字
VARCHAR(M)
最大M文字の文字列
e.g.

create table goods (id int, name varchar(255));

 


show columns from goods;

テーブル構造の確認

 


alter table goods add (price int, zaiko int);

e.g."price"と"zaiko"という2つのカラムを、共に"int"型で作成

 


修正

ALTER TABLE テーブル名 CHANGE 古いカラム名 新しいカラム名 新しいカラムの型;

alter table goods change zaiko stock int;

e.g."zaiko"→"stock”へ変更

 


削除

alter table goods drop stock;

e.g.”stock”の削除

 


登録

Insert

・全てのカラムに値を入れる場合

INSERT INTO テーブル名 VALUES(値1, 値2, 値3);

・特定のカラムのみに値を入れる場合

INSERT INTO テーブル名(カラム名1, カラム名2) VALUES(値1, 値2);

 


insert into goods values(1, "ペン", 120);

全てのカラムに値を入力する

 


SELECT * FROM goods;

全てのテーブル情報を表記する

 


insert into goods(id, name) values(2, "消しゴム");

特定のカラムにのみ入力する

 


更新

update goods set price = 100 where id =2;

ID2のpriceに100を入力

 


削除

delete from goods where id = 2;

ID2の行削除