第4回目(10/23)
1.講義メモ
クラウドインフラが変えたもの
・変化が起こり、今となってほぼスタンダード
- 機器の調達の短縮化:
発注から納品まで1ヶ月かかっていたが、数分で用意できる
- スモールスタート:
物理サーバの手配時は5年利用を前提にしたスペック設計が必要だった。従量課金となりスモールスタートが可能になった。利用予定がなければ廃却が可能
- インフラのコード化
機器同士の接続からその設定まで、簡単に再現、複製できるコードとして設計が可能
・システム開発の常識を変えた
- テスト用環境がすぐに作れる。失敗したら削除できる
- 複製して本番環境にできる
- 利用者が増えたら強化(スケールアップ、スケールアウト)も容易
バージョン管理システム
・SVN
- バージョン管理システムの1つ。最近は積極的に使われていない
- 分散方ではないためリポジトリは単一
- メリットとしてExcelの差分比較が行われる、スナップショットを保存するという形式から復元
・Git
- リモートリポジトリとローカルリポジトリというのが分散型
- 複数の履歴保持の場所を持つ
- リモートリポジトリからローカルリポジトリへ反映
git clone、git pull
- ローカルリポジトリに反映
git add、git commit
- ローカルの変更をリモートリポジトリへ反映
git push
・デフォルトブランチ名
- ブランチ名には、mainとmasterという名称が混在しているが、現在はmainが主流
・GitHubはGitと完全互換のWebサービス、主に下記の手順で使うことができる
- GitHub上にリポジトリを作成してから、cloneする(git pushで利用可能な設定が済んだリポジトリがローカルに出来上がる)←現場使うことが多い
- ローカル上にリポジトリを作成してから、GitHubでリポジトリを作成し、そのアドレスをローカル側でgit remote add(Git Hub へpushできるように)する
CRUD処理とは
・Create(生成/登録)、Read(読取)、Update(更新)、Delete(削除)の頭文字を取ったもの
・業務系のシステムにおいてはマスターメンテナンスと呼ばれるもに、この処理が入っている
DBとSQL
・Web系の言語で利用されるものは、MySQLやPostgreSQLが多い
・SQLはAthenaでも活用したりする(データ分析)
・progateでSQL学習ができる
https://prog-8.com/
・SQLだけでプログラムと同等の処理を実現できる(SQLとプログラムでの役割分担が必要)
2.課題
・Ruby on RailsでCRUDのRead処理を実装(画面描画、DBと繋ぐのも含む)
1)設計
ToDoのRead処理を作成する
MySQL:
テーブル名「todos」でカラムと型は以下の通り
task:string ・・・タスク名
contents:text ・・・タスクの内容
start_date date ・・・開始日
end_date:date ・・・終了日
テストデータ:
db/seeds.rbにてテストデータをMySQLに登録する
2)Rails設定
・Controller(app/controllers/todo_controller.rb)
- todoモデルを利用するコントローラーを作成
- indexアクションしてモデルのデータをすべて取り出す
class TodoController < ApplicationController
def index
@msg = 'Todo data'
@data = Todo.all
end
end
・Views(app/controllers/todo/index.html.erb)
- indexアクション用のテンプレートを作成
- テンプレートはHTMLで作成
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Todo</title>
</head>
<body>
<h1>Todo#index</h1>
<p><%= @msg %></p>
<table border = "1">
<tr>
<th>id</th>
<th>task</th>
<th>contents</th>
<th>start_data</th>
<th>end_data</th>
</tr>
<% @data.each do |obj| %>
<tr>
<td><%= obj.id %></td>
<td><%= obj.task %></td>
<td><%= obj.contents %></td>
<td><%= obj.start_date %></td>
<td><%= obj.end_date %></td>
</tr>
<% end %>
</table>
</body>
</html>
・Model(db/migrate/20211025172534_create_todos.rb)
- MySQLのテーブル名やカラムを設定した内容が自動的に反映されている
class CreateTodos < ActiveRecord::Migration[6.1]
def change
create_table :todos do |t|
t.string :task
t.text :contents
t.date :start_date
t.date :end_date
t.timestamps
end
end
end
・ルーティング設定(config/routes.rb)
- 「get ’アドレス’ to:'コントローラー#アクション'」でアドレスを明示的に指定(http://ドメイン/コントローラーのアドレスでindexメソッドを呼び出す)
Rails.application.routes.draw do
get 'todo/index'
get 'todo', to: 'todo#index'
end
3)実装結果
・GitHubにプルリクエストを作る
この記事が気に入ったらサポートをしてみませんか?