第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)実装結果

スクリーンショット 2021-10-26 16.05.13

スクリーンショット 2021-10-26 16.03.12

スクリーンショット 2021-10-26 16.04.14

スクリーンショット 2021-10-26 16.07.15


・GitHubにプルリクエストを作る



この記事が気に入ったらサポートをしてみませんか?