テストコード勉強中!!

昨日からテストコードを勉強しているのだが、本当に勉強になる!!

 

単純に意識的にコードを覚えないと、単体テストコード、結合テストコードと要領が似ているのでカリキュラムも親切でなくなってくるからだ😭

 

テストには正常系、異常系と2種類あって正常系とはユーザーが開発者の意図する操作を行った時の挙動を確認するテストコードで、異常系とはユーザーが開発者の意図しない操作を行った時の挙動を確認するテストコードである。

 

railsではRSpecというGemを使うことによって、かなりお手軽に実装することができる!!

 

一気に色々飛ばすが今日勉強した忘れそうな事から書いていこう

 

FactoryBot インスタンスをまとめることができるGem、他のファイルを予め各クラスのインスタンスに定める値に設定しておき各テストコードを使用する。

 

build Active Rscordのnewメソッドと同じ意味を持つ。

 

before  全てのテストコードを実行する前に、セットアップを行うことができる。

 

Faker Gemの1つでランダムな値を設定する。名前、アドレス、パスワード等の入力項目で使う。

describe 日本語で「〜について記述します」という意味。どのようなコードを書いてるのかの説明記述

context describeと同じ使い方で条件を分けたいときに使う。

Gitの続き

本日も朝からGitを進めている中でブランチでつまづきました😭

 

ブランチとは枝という意味が有り保存したデータを分岐ができ、それをチーム開発だとモデル、ルーティング、コントローラーなど各々に別れて開発が進めらる機能で、保存しているメインのデータをマスターブランチ、分けられた枝のデータをトピックブランチと言います!!

 

ここで問題が起き、例えばAさんがマスターからブランチを作成しモデル開発をしています。

 

それを知らずBさんもマスターからブランチを作成しモデル開発をしています。

 

AさんとBさんでは記述が違います。その中でAさんが完成させcommit,

push,mergeまで進めました、その時に記述が違うがBさんも完成してcommitをしてmergeを使用とするとコンクリフトという状態になる。

 

コンクリフトとは、あるファイルにおいて情報がそれぞれ異なり辻褄が合わなくなっている状態のことなのだが、その時の対処方を学ぼうとしてその状態を作り上げようとしていると後からcommitした方がmergeが出来ない事にテンパリ、データを削除してやり直してしました😭

 

カリキュラムを読んでいれば書いていたのですが、後からの方をmergeしようとしても出来なくなっていて、それを知らずに3回作り直してしまった😂

 

今日の教訓として、ちゃんとカリキュラムは最後まで読もう!!

本日はアプリ作成までの実際の流れとGitについての学習!!

アプリ作成の流れとはパソコン上での開発ではなく、現場の流れ

 

企画 アプリケーションの内容を考案。

要件定義 アプリケーションの使用や、要件を洗い出す

設計 開発に必要なデータベース設計など

開発 実際にプログラミング言語を用いて開発

運用/保守 リリース後のバグの対処や追加機能の実装。

 

企画をする際にペルソナと言う言葉が出てくるのだが、これは開発するに当たってサービスを使用するユーザーを想像することで、性別,年齢,趣味,職業等架空の設定を作りユーザーストーリーを想像していく。

ユーザーストーリーとはペルソナ目線で何がしたくてこういう事ができれば良いな〜というのを考え出し、それをどのような機能を実装して解決していくかという事である。

 

まだまだ細かい内容は有りますが、Gitにいきたいと思います。

 

GItとはコードのファイルやフォルダの変更履歴を記録し追跡するバージョン管理システムで経験がある方もいらっしゃると思いますが、コードを書いている際にブラウザで確認したところバグが発生、何処でどう間違ったのか何が間違えているのか解らなくどこまで修正すれば良いのかも解らなくなった時にリポジトリというGit管理下にあるファイルやディレクトリの変更履歴を保管しておく箱のようなものが有る!!

2種類のリポジトリを学んだのだが1つはローカルリポジトリ、これはローカルサーバーと同じで自身のPC上に設置できるもので修正をすれば好きなタイミングで変更履歴を記録することができる。

 

もう一つはリモートリポジトリと言い外部のサーバーに設置するリポジトリでこちらは修正変更があった際は直接記録をする訳ではなくローカルリポジトリの変更履歴を記録した上で同期させ反映させる流れである。

 

リモートリポジトリには他の人とデータ今日ができこれによりチームで開発を進める際はかなり便利である!!

 

 

 

 

落とし穴

前回書いたpictweetというアプリの作成中に実体験で学べた事カラムとレコードの編集をしてrails sでローカルサーバーを起動しブラウザで確認したところエラー発生(泣)

 

何度もコードを確認したが間違ってるとこもない、ネットで調べたらrails db:migrateのし忘れと(汗)

 

ターミナルを確認したら完全に忘れていた。

 

rails db:migrateが必要なのは

1,rubyのバージョン変更があった際

2,テーブル、カラムの情報を変更した際

3,Gemの導入状況の変更があった際

 

一般的なことはブイエスコードを記述しただけでブラウザに反映されるが、この3パターンの時は起動した際に情報が更新されるみたいなので気をつけよう。

pic tweet

写真の投稿、ツイートの投稿、編集、削除、ログインと新規登録、検索、ツイートへのコメント機能が付いているアプリをカリキュラムで作成するのだが、その中で重要そうな言葉が出てきた!!

リレーショナル.データ.ベース(RDB)表形式でデータを管理するデータベースのこと。

 

RDBMS  RDBを使用する際にそれを管理するシステム。

 

あと一つ、今は覚えなくてもと書いているがconfigにある、datebase.ymlデータベースの設定を運用環境ごとに変えることができる仕組みで

運用環境には・・・

 

開発環境  development

テスト環境  test

本番環境  prodaction

の3つがあり、開発環境ではバグが発見しやすいツールを入れたり、本番環境ではアプリケーションのパフォーマンスを上げるため余分なツールを省く必要があるため。

未経験のパソコン8年ぶりからのプログラミング

9月7日からプログラミングを初めて気がつけば10日を経過している!?
全く未経験からやろうとしている貴方!!
これは慣れだと思います(汗)

f:id:MURAMASAkun:20200918214711j:plain

前職はマネジメント がメインの仕事で人との会話で使う言語を自然言語、プログラミングにおいてPCに指示を出す言語をプログラミング言語と言います。
人との会話は慣れていましたがプログラミング言語は全く解らずコイツ(PC)話が通じないと本気でゲンナリしました(泣)
その中でもやっていけば少しづつ慣れてきたなという実感もあります。
今、勉強しているのがRUBY on Railsカリキュラムに沿ってやってみたものの全くわからず(笑)
簡単なアプリを作ってみたもの、このまま複雑なアプリ作成を始めたら本気で解らなくなるなと思い復習しました!
復習の仕方として、アプリ開発の流れを理解すること❗️
MVCと言うワードが有りますが、モデル、ビュー、コントローラー、それにルーティング、データベースをまじえての作成までの流れ。
今学んでいるカリキュラムの流れとして。。。
1,rails new 新規アプリ作成
2,rails db:create
3,ルーティングの設定
4,コントローラーの作成
5,ビューの作成
6,モデルの作成
7,テーブルからのデータ取得
8,見た目を整える
9,投稿ページの作成
この流れで作成しています!
それぞれ、アウトプットして細かく更新していきたいと思います。