開始56日目〜超初心者、文系、30代のスタート〜
本日学んだこと:
正規化が必要な理由:
データベースのデータ構造をより効率的で重複や無駄のないシンプルな構造にするための手順である。
重複する情報がある場合、エンティティの属性の中に他のエンティティの情報が含まれる場合、この問題を解決するため。
※エンティティ:サービスの中で管理する必要のある概念(情報)、「ユーザー」や「投稿内容」、「コメント」など。
正規化の順番:
非正規形
第一正規形・・・テーブル内に繰り返されるレコード(例ではclassレコード)をなくすこと。
第二正規形
第三正規形・・・複数のレコードで重複している内容を別のテーブルとして管理すること。
※第一と第三は代表的。
上記上から順番に段階を踏む。
その後、ボイスコッド正規形、第四正規形、第五正規形が続くが、実際の現場では第三正規形までで正規化を終えることがほとんど。
正規化のデメリット
テーブルが増えれば関連するテーブルを検索するたびにSQLを実行する回数が増え、速度が低下する為、
第三正規形で終えることが多い。
has_manyのthroughオプションは、モデルに多対多の関連を定義するときに利用。
throughという名前のとおり、「~を経由する」という意味。
マークダウンとは、文書を記述するための軽量マークアップ言語のひとつ。
マークダウンで記述されたものは、HTMLに変換される。
https://qiita.com/Qiita/items/c686397e4a0f4f11683d
READMEとは、マークダウンで記述され、ソフトウェアの仕様、規格、インストール方法などを文書化したもの。
rails newをした際に自動生成される。
データベース設計:
VScodeで修正したら、必ずGithub Desktopでcommitする。
→pull originで反映する。
Sass:
SassはCSSに非常に似ていますが異なる言語です。
CSSの機能を拡張した言語で、CSSを効率的に書けるようになる。
CSSを簡潔に書けるだけではなく、CSSの中で変数を使ったり、計算を行うことなどができる。
Sassのメリット:
- 記述の簡略化ができる
- プログラムのような処理ができる
- 複数のCSSファイルを1つにまとめることができる
- 同じ値を使い回すことができる
Sassは通常のCSSファイルには記述することができません。反対にSassファイルにCSSを記述することはできます。
BEM:
多くの開発者が取り入れているCSS設計(CSSを記述する時のルール)
厳格なクラスの命名規則が特徴。
Block、Element、Modifierの頭文字を取ったもので、ページを構成する要素をBlock、Element、Modifierのどれかに当てはめてクラスを命名する。
BEMのメリット:
- クラスの命名が簡単になる
- 要素の再利用がしやすくなる
BEM3つのクラス
Block
Blockとは、ある要素の大元となるブロック要素です。Blockの命名には名詞を使用します。以下で説明するElementやModifierは、このBlockを起点に命名されます。
Element
Elementとは、Blockに属する子要素です。1つ以上のElementによって、Blockは構成されています。Elementの命名には名詞を使用します。
Modifier
Modifierとは、Blockまたは、Elementに特別な修飾をする要素です。Modifierの命名には形容詞を使用します。
明日やること:
データベースの修正。
Halmの導入。
過去問テストを受講する。
感想:
まずは進めていかないことには話にならない。
12月の最初の週に集中してやるプランも検討。
次の就業先も最悪は決まっているので、大丈夫だが、もう少し余裕を持って、
勉強に集中できる環境があれば、そこを選ぶ。
もう少しだけ探してみることにする。