全力、は楽しい。
常人の2〜3倍の努力では生ぬるい。
死ぬ気で20〜30倍ぐらいやって周囲を引き離せ。
ーー編集者:箕輪厚介ーー
https://www.onecareer.jp/articles/1923
誰もが箕輪さんみたいになれるとは思わないけど
自分が思う常人の20倍ぐらい努力したいなって思わせてくれました。
幻冬舎の見城さん思い出した。師弟だからそりゃそうか。笑
ありがとうございます。
改めていまを頑張ろう、立ち向かおうという勇気をもらいました。
プログラミングも、音楽もやったるで。
全部中途半端にならんように程よく力を抜いて、人生に全力で取り組もう。
そっちの方が楽しいって知ってるからね。
今日の目次。
1.簡単日記
今日は息抜きにnanaという音楽系SNS?に投稿した。久しぶりだったから客観的に見た出来はいまいちだったけど、これが今の僕の実力。定期的にやって理想の音楽を演奏できるようになるぞ!
聴く人に曲の情景が浮かび上がるようなパーカッションを打ちたい。
と、少し格好良いことを言って簡単日記を終えます。笑
2.今日の学び
◆#Rails で定義していないのにfindなどDBへの接続メソッドが使える理由
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
各コントローラーはActiveRecord::BaseというActiveRecord(Railsで使用されているOR mapper)を引き継いでいる。このActiveRecord::Baseで定義されているメソッドがfindであったりnewだったりする。#プログラミング初心者
この辺りの理解が曖昧だったな。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
ActiveReord::Baseで定義されているから使えるようになってたのね。だからDBと直接繋がっていないviewとかでは使わないのね。納得。
◇下記を参考◇
Rails: ActiveRecord::Baseメソッドのまとめ https://t.co/a90CJMTMrC #Qiita#プログラミング初心者 #Rails
◆#データベース のテーブル内キーの制約
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
作成したmigration fileに追記して制約を付与。
・NOT null制約(nullは不可)
カラム設定末尾に下記追加
null:false
・一意性制約(重複は不可)
カラム設定次の行に下記追加
add_index :tablename, :columnname, unique: true#プログラミング初心者
・主キー制約(各テーブル内でレコードを判別する為のキー)
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
Railsではidカラムが自動で主キーになる。
・外部キー制約(他テーブルと関連つける為に必要なキー)
カラム設定行の末尾に下記を追加
foreign_key: true
外部キーってアソシエーションでも使うやつやん。#プログラミング初心者 #Rails
◆#データベース 正規化
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
第一正規系…繰り返されるカラムを一つにまとめる。
第二、第三正規系…レコードで重複している内容を別テーブルとして管理する。
正規化のデメリットはテーブル数が増える、つまり関連するテーブルを検索する度にSQLを発行する回数が増える。#プログラミング初心者
また、正規化した後のテーブルで考えるのは
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
・レコードが増えた場合どの様な変更が必要になるのか?
⇛新たなテーブルを作成する必要にならないか。
・カラムの内容を変更する時に手間がかからないか?
⇛カラムの変更で大量のデータ修正は不要か。
を確認したい。#プログラミング初心者
◆#Rails データベース設計
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
外部キーのカラムタイプはintegerではなくreferencesとしないとforeign_keyのオプションが効かなくなる。nameも勝手にmodel_idに変えてくれる。
ex.
|column|type|option|
|-----|-----|-----|
|user|references|null:false, foreign_key: true| #プログラミング初心者
◆データベースの多対多
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
アソシエーションを組む時、多対多の時は中間テーブルを挟んだほうがわかりやすく管理しやすい。その方法は
・hogesテーブルとfugasテーブルの中間テーブルをhoge_fugasテーブルとする。
・hogesとhoge_fugasの関係は1対多、fugasとhoge_fugasも同じ。#プログラミング初心者
・アソシエーションの記述としてはhogeとfuga側には
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
has_many :hoge_fugas
has_many :fugas, through hoge_fugas
と記載。
・hoge_fugaには
belongs_to :hoge
belongs_to :fuga
と記載することでアソシエーションを組める。
…ちょっとざっくりしすぎたかな。。。いつものことか#プログラミング初心者
◆#Sass とは?
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
CSSの機能を拡張した言語。
・Sassを使うことでCSSを効率的にかける。
・CSS内で変数を使って使いまわしたり計算することができる。
・ファイルの種類は.sassと.scssの2種類。scssの方がメジャーで記述方法もCSSと似ている。
・複数のCSSファイルを統合可能。#プログラミング初心者
◆#Sass におけるBEM
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
BEMとはBlock, Element, Modifierの頭文字を取ったHTML要素のclass命名規則。これで楽に命名可能。
Bの中にEがあり、BやEを装飾する時Mを使う。
・Bの中のEは menu__listみたいに_を2つ使用する。
・Mを使う時は list--blackみたいに-を2つ使用する。#プログラミング初心者
◆#Haml とは
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
HTML…html.erbをより簡潔に記述できるビューテンプレートエンジン。
まだ導入しただけで使ってないけど、Githubとかサイトを色々見てるとめっちゃ書きやすそう!早く使ってみたいな。お楽しみは明日へ持ち越そう。#プログラミング初心者
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
★データベースの正規化及び設計…カリキュラムで使うアプリのLGTMもろた。早い対応に感謝
★Sass、Hamlの導入
★音楽練習の為nana投稿
★ライブ当日スタッフへ連絡
今日は主にデータベースについて学習後、フロント側をかじり始めた。明日は実際に実装する!#プログラミング初心者
今日はデータベース設計が主。カリキュラムのデータベース設計もLGTM(Looks Good To Me)をもらって一安心。
明日はがっつりフロントエンドやったるで!!!
3.明日やりたいこと
SassやHamlを使ったフロントエンド実装。
4.終わりに
今日もまたたくさん学んで成長できた〜!笑
寝る時にピンクノイズ聞きながら寝るのを忘れずにしよう。
どうやら記憶力がよくなるらしいよ。あのTVの砂嵐が弱くなったみたいな音。
明日も素敵な一日にしていきましょ!
ありがとうございました^^