MM日記 (original) (raw)

この広告は、90日以上更新していないブログに表示しています。

皆様こんにちは、Amiaです。

私は1ヶ月くらいかけてタイトルにもある通り『Ruby on Rails5速習実践ガイド』(https://www.amazon.co.jp/dp/B00EE1XPAI)を読んでいました。
そのため今回は上記の書籍について読んだ感想等をまとめいきたいと思います。

よろしければ最後までご覧になっていただければと思います。

⚫︎良かった点

⚫︎学んだこと

「Chapter1 RailsのためのRuby入門」

「Chapter2 Railsアプリケーションをのぞいてみよう」

「Chapter3 タスク管理アプリケーションを作ろう」

環境の種類 環境のシステム名 用途
開発 development 開発時の動作確認を行う
テスト test 自動テストを行う
本番 production ユーザーが利用可能な形で稼働させる
生成されるものの種類 用途
モデルクラスのソースコード 生成されたクラスの実装
マイグレーションファイル データベースに作成されたテーブルを追加する
モデルの自動テスト 生成されたクラスについての自動テストの実装
モデルの自動テストで使うfixtureファイル 生成されたクラスについての自動テストのためのデータ投入の定義

「Chapter4 現実の複雑さに対応する」

コマンド 意味
bin/rails db:migrate 最新までマイグレーションを適用する。
bin/rails db:migrate VERSION=20180608051058 特定バージョンまでマイグレーションが適用された状態にする。VERSIONにはマイグレーションファイル名の先頭の数字部分(日時部分)を指定する。例えば、ファイル名が『20180608051058_create_tasks.rb』であった場合は『VERSION=20180608051058』とする。
bin/rails db:rollback バージョンを1つ戻す。
bin/rails db:rollback STEP=2 バージョンを指定したステップ数だけ戻す。
bin/rails db:migrate:redo バージョンを1つ戻してから1つ上げる。(バージョンは最終的に変化しないが、バージョンを戻す処理が想定通り動作することを簡単に確認できる。)
コールバックの種類 代表的な使い道
before_validation 検証前の値の正規化
after_validation 検証結果(エラーメッセージ)の加工
before_savebefore_createbefore_update saveのために裏側で行いたいデータ準備を行う。(ある属性の値に従ってある関連を作成するなど。)検証エラーを出してもユーザにはどうすることもできない状態異常を防ぐために例外を出す。
after_saveafter_createafter_update そのモデルの状態に応じて他のモデルの状態に変えるなど、連動した挙動を実現する。検証エラーを出してもユーザにはどうすることもできない状態異常を防ぐために例外を出す。
before_destroy 削除してOKかをチェックし、ダメなら例外を出すなどして防ぐ。
after_destroy そのモデルの削除に応じて他のモデルの状態を変えるなど連動した挙動を実現する。

「Chapter5 テストをはじめよう」

「Chapter6 Railsの全体像を理解する」

要素の名前 要素の内容の例 説明
HTTPメソッド GETPOSTPATCHPUTDELETE サーバへのリクエストの際に指定するもので、情報の送信・取得の方法を表す。一般的なブラウザから送ることができるのはGETとPOSTのみだが、Railsでは_methodというリクエストパラメータの値に"PATCH","PUT","DELETE"という文字列が入ったPOSTリクエストを、それぞれPATCH,PUT,DELETEリクエストと解釈する。
URLパターン /tasks/tasks/:id URLそのものや、:idのように一部人にの文字が入るようなパターンを指定する。
URLパターンの名前 new_tasktasks 定義したURLパターンごとに一意な名前を付ける。この名前をもとに、対応するURLを生成するためのnew_task_path,new_task_urlといったヘルパーメソッドが用意される。
コントローラ tasks(TasksController) 呼び出したいアクションのコントローラクラスを指定する。
アクション index 呼び出したいアクションを指定する。

「Chapter7 機能を追加してみよう」

⚫︎難しく感じた部分

⚫︎最後に

今回読んだ書籍は全体的に難しく、イメージしづらい部分があるように感じました。
まだまだ理解不足だということを痛感しました...。
しばらくはrails漬けになりそうです...。
これからアウトプットしたり経験を積んだりして慣れていきたいと思います!
気になった方は是非購入を検討してみてはいかがでしょうか。

皆様こんにちは、Amiaです。

私は「Happiness Chain」というオンラインのプログラミングスクールに入会して勉強しています。

そして「Happiness Chain」に入会してから12ヶ月が経ちました。
また、Euphoriaに加入して4ヶ月が経ちました。

それでは12ヶ月目に学習した内容を書いていきたいと思います。

⚫︎自己評価

自己評価は100点中20点です。
月全体の学習時間は前月よりも減ってしまいました。 色々と考えてしまうことがあり、あまり学習に集中できていない1ヶ月でした。
モチベーションやメンタルに左右されず、淡々と学習を行なっていけるようにしていきたいと思います。

⚫︎12ヶ月目の学習内容(約90時間)

Ruby on Rails

①動画でのインプット
②書籍でのインプット(途中)

⚫︎学習時間について

・1ヶ月目の学習内容(約66時間)
・2ヶ月目の学習内容(約88時間)
・3ヶ月目の学習内容(約88時間)
・4ヶ月目の学習内容(約74時間)
・5ヶ月目の学習内容(約83時間)
・6ヶ月目の学習内容(約82時間)
・7ヶ月目の学習内容(約70時間)
・8ヶ月目の学習内容(約73時間)
・9ヶ月目の学習内容(約56時間(12/21まで))
・10ヶ月目の学習内容(約98時間(1/31まで))
・11ヶ月目の学習内容(約98時間(2/29まで))
・12ヶ月目の学習内容(約90時間(3/31まで))
・Happiness Chain入会後累計学習時間(約1,023時間)

⚫︎成長したこと

・英語の学習を習慣化できたこと。

⚫︎良かったこと

・毎日少しの時間でも学習を継続できたこと。

⚫︎悪かったこと

・メンタルが不安定だったこと。
・学習にあまり集中できていなかったこと。

⚫︎改善すること(ネクストアクション)

・メンタルのケアを行う。
・イベントや雑談会に参加する。
・隙間時間を有効的に使う。

⚫︎感想・来週の目標

・1日の学習時間を伸ばす。
・コミュニケーション能力向上のために必要なタスクをこなす。

⚫︎1ヶ月振り返ってみての感想

今月はRailsのインプットのみで終わってしまいました。
環境構築等でエラーが頻繁に発生したため、想定していたよりも時間が掛かっています。
焦ることはあまり良くないのですが、なかなか難しいですね...。

それではまた遅くて1ヶ月後ぐらいにお会いしましょう...。

皆様こんにちは、Amiaです。

私は「Happiness Chain」というオンラインのプログラミングスクールに入会して勉強しています。

そして「Happiness Chain」に入会してから11ヶ月が経ちました。
また、Euphoriaに加入して3ヶ月が経ちました。

それでは11ヶ月目に学習した内容を書いていきたいと思います。

⚫︎自己評価

自己評価は100点中30点です。
月全体の学習時間は前月と変わりませんでした。 月の前半はあまり学習時間を確保できませんでしたが、月の後半ぐらいから1日の学習時間を伸ばすことができたおかげで学習時間を減らさずに継続できたので良かったです。 この調子で来月も進み続けていけるようにしたいと思います。

⚫︎11ヶ月目の学習内容(約98時間)

SQL

①書籍でのインプット
②書籍でのインプット
③アウトプット課題

・REST

①動画でのインプット
②アウトプット課題

Ruby on Rails

①動画でのインプット(途中)

⚫︎学習時間について

・1ヶ月目の学習内容(約66時間)
・2ヶ月目の学習内容(約88時間)
・3ヶ月目の学習内容(約88時間)
・4ヶ月目の学習内容(約74時間)
・5ヶ月目の学習内容(約83時間)
・6ヶ月目の学習内容(約82時間)
・7ヶ月目の学習内容(約70時間)
・8ヶ月目の学習内容(約73時間)
・9ヶ月目の学習内容(約56時間(12/21まで))
・10ヶ月目の学習内容(約98時間(1/31まで))
・11ヶ月目の学習内容(約98時間(2/29まで))
・Happiness Chain入会後累計学習時間(約931時間)

⚫︎成長したこと

・アウトプット課題を通して、SQLについて少しずつ理解が深まったこと。
・学習に対する心構えが変わったこと。

まだまだ知識不足ですので、これからも日々積み重ねていきたいです。

⚫︎良かったこと

・毎日少しの時間でも学習を継続できたこと。
・月の後半から学習時間を伸ばすことができたこと。
・隙間時間を前月に比べて有効に使えたこと。

⚫︎悪かったこと

・環境の変化等で月の前半は学習をあまり行えていなかったこと。
・英語の学習が疎かになってしまったこと。
・月末に体調を崩してしまいスクール内のイベントに参加できなかったこと。

⚫︎改善すること(ネクストアクション)

・イベントや雑談会に参加する。
・隙間時間を有効的に使う。

⚫︎感想・来週の目標

・英語の学習を習慣化する。
・1日の学習時間を伸ばす。
・コミュニケーション能力向上のために必要なタスクをこなす。

⚫︎1ヶ月振り返ってみての感想

今月は環境の変化もあり、生活リズムを崩してしまうことがありました。ですが、そんな中毎日少しでも学習を行うことができたことは良かったと思います。
思いの外、SQLのインプットに時間が掛かってしまいましたがなんとか課題まで完了することができました。
SQLについては繰り返しやっていくことで慣れていくしかないのかな、と思います。 まだまだ知識不足なため所々復習を挟みつつ、学習を進めていきたいと思います。

疎かになっていた英語の学習についても来月からは習慣化していきたいと思います。

それではまた遅くて1ヶ月後ぐらいにお会いしましょう🖐️

皆様こんにちは、Amiaです。

私はここ何日かで「REST API」について少しインプットしました。
そのため今回はアウトプットも兼ねて「REST API」について記事を書いていきたいと思います。

よろしければ最後までご覧になっていただければと思います。

⚫︎REST APIとは

⚫︎RESTfulとは

⚫︎CRUDに相当するメソッド

操作 意味 メソッド
Create 作成(リソース名が未定の場合に使用する。) POST
Create 作成 (リソース名が決まっている場合に使用する。) PUT
Read 読み取り GET
Update 更新 PUT
Delete 削除 DELETE

⚫︎URI設計で考慮すること

⚫︎HTTPメソッドとURI

今回は例としてmovieをリソースとしてCRUD操作のHTTPメソッド、URIを定義してみます。

操作 URI HTTP method
映画の一覧を取得 http://api.example.com/movies GET
映画の新規登録 http://api.example.com/movies POST
特定の映画の取得 http://api.example.com/movies/678 GET
特定の映画の更新 http://api.example.com/movies/678 PUT
特定の映画の削除 http://api.example.com/movies/678 DELETE

⚫︎リソースを特定するパラメータ

種類 概要 使用用途
クエリパラメータ URLの末尾にある「?」に続くキーバリュー。GET http://api.example.com/users?page=3 一意なリソースを表示したいときに利用する。
パスパラメータ URL中に埋め込まれるパラメータ。GET http://api.example.com/users/123 特定のものに条件を加える場合に利用する。

⚫︎REST API設計レベル

設計レベルは4段階存在する。

⚪︎LEVEL0 : HTTPを使っている。

REST APIの基本レベル。RPCスタイルのXML通信。
* HTTPは単なる通信手段として利用。
* 1URLで全て完結。
* リクエストボディーに処理と引数が含まれる。

⚪︎LEVEL1 : リソースの概念を導入。

リソースごとにURLを分割。
* リソースごとにURLを分離。
* HTTPメソッドは活用できていないため、GETかPOSTのみで通信。

⚪︎LEVEL2 : HTTPの動詞を導入。

LEVEL1に加えてHTTPメソッドを活用。
* リソースに対してHTTPメソッドを使ったCRUD操作が行われている。

⚪︎LEVEL3 : HATEOASの概念の導入。

LEVEL2に加えてレスポンスにリソース間のつながりが含まれる。
* レスポンスに現在の状態に関連するハイパーリンクが含まれている。
(=HATEOASに相当する情報がレスポンスに含まれている。)

⚫︎最後に

今回はこの辺りで終わりたいと思います。
それではまた🖐️

皆様こんにちは、Amiaです。

私はここ何週間かでタイトルにもある通り『達人に学ぶDB設計 徹底指南書』を読んでいました。
そのため今回は上記の書籍について読んだ感想等をまとめいきたいと思います。

よろしければ最後までご覧になっていただければと思います。

⚫︎良かった点

⚫︎学んだこと

「第1章 データベースを制する者はシステムを制す」

「第2章 論理設計と物理設計」

「第3章 論理設計と正規化 ~ なぜテーブルは分割する必要があるのか?」

「第4章 ER図 ~ 複数のテーブルの関係を表現する」

「第5章 論理設計とパフォーマンス ~ 正規化の欠点と非正規化」

「第6章 データベースとパフォーマンス」

「第7章 論理設計のバッドノウハウ

「第8章 論理設計のグレーノウハウ」

「第9章 一歩進んだ論理設計 ~ SQL木構造を扱う」

⚫︎難しく感じた部分

⚫︎最後に

今回読んだ書籍は全体的に難しく、イメージしづらい部分が多くあるように感じました。
まだまだ理解不足だということを痛感しました...。
これからアウトプットしたり経験を積んだりして慣れていきたいと思います。
気になった方は是非購入を検討してみてはいかがでしょうか。

皆様こんにちは、Amiaです。

私はここ何週間かでタイトルにもある通り『スッキリわかるSQL入門』を読んでいました。
そのため今回は上記の書籍について読んだ感想等をまとめいきたいと思います。

よろしければ最後までご覧になっていただければと思います。

⚫︎良かった点

⚫︎学んだこと

「第2章 基本文法と4第命令」

「第3章 操作する行の絞り込み」

SELECT * FROM 家計簿 WHERE 費目 IN('食費', ' 交通費')

SELECT * FROM 家計簿 WHERE 費目 NOT IN('食費', '交通費')

式 基本比較演算子 ANY(値1, 値2, 値3...)

式 基本比較演算子 ALL(値1, 値2, 値3...)

「第4章 検索結果の加工」

SELECT 費目, 出金額 FROM 家計簿 ORDER BY 出金額 DESC OFFSET 0 ROWS FETCH NEXT 3 ROWS ONLY

「第5章 式と関数」

SELECT 費目, 出金額, CASE 費目 WHEN '居住費' THEN '固定費' WHEN '水道光熱費' THEN '固定費' ELSE '変動費' END AS 出費の分類 FROM 家計簿 WHERE 出金額 > 0

SELECT 日付, 費目, COALESCE(メモ, '(メモはNULLです)') AS メモ, 入金額, 出金額 FROM 家計簿

「第6章 集計とグループ化」

SELECT 選択列リスト FROM テーブル名 [WHERE 条件式] [GROUP BY グループ化列名] [HAVING 集計結果に対する条件式] [ORDER BY 並び替え列名]

「第7章 副問い合わせ」

「第8章 複数テーブルの結合」

SELECT 選択列リスト FROM 左表の名前 LEFT JOIN 右表の名前 ON 左表の結行条件列 = 右表の結合条件列 UNION SELECT 選択列リスト FROM 左表の名前 RIGHT JOIN 右表の名前 ON 左表の結合条件列 = 右表の結合条件列

「第9章 トランザクション

「第10章 テーブルの作成」

①主キー制約の指定(単独列) CREATE TABLE 費目( ID INTEGER PRIMARY KEY, 名前 VARCHAR(40) UNIQUE )

②主キー制約の指定(複合主キー) CREATE TABLE 費目( ID INTEGER, 名前 VARCHAR(40) UNIQUE, PRIMARY KEY(ID, 名前) )

外部キー制約の指定方法① CREATE TABLE テーブル名( 列名 型 REFERENCES 参照先テーブル名(参照先列名) : )

外部キー制約の指定方法② CREATE TABLE テーブル名( : FOREIGN KEY(参照元列名) REFERENCES 参照先テーブル名(参照先列名) )

「第11章 さまざまな支援機能」

「第12章 テーブルの設計」

⚫︎難しく感じた部分

設計の部分が難しく感じました。資料から非正規形にする部分は正解が1つというわけではないため特に難しいと感じました。SQL文についても言えることだと思いますが、とにかく経験を積んで慣れていくことが重要だと思いました。

⚫︎最後に

巻末問題を最後に行いましたが、ボロボロでした😭
もしかしたら各章を終えたごとに問題に取り組んでいったほうがよかったかもしれませんね...。
これから経験を積んで慣れていきたいと思います。
気になった方は是非購入を検討してみてはいかがでしょうか。

皆様こんにちは、Amiaです。

私は「Happiness Chain」というオンラインのプログラミングスクールに入会して勉強しています。

そして「Happiness Chain」に入会してから10ヶ月が経ちました。

それでは10ヶ月目に学習した内容を書いていきたいと思います。

⚫︎自己評価

自己評価は100点中25点です。
今月は学習時間に対する考え方が甘いと感じました。他の方の日報や週報を拝見すると、質も大事ですがやはり圧倒的な時間を学習に充てることが大切だと痛感しました。まだまだ自分に甘かったです。
私は平日2時間、休日5時間を最低目標時間としていますが、来月はこの時間を伸ばしていきたいと思います。

⚫︎10ヶ月目の学習内容(約98時間)

Ruby

①コーディング課題(4)
②コーディング課題(5)

SQL

①動画でのインプット
②書籍でのインプット

⚫︎学習時間について

・1ヶ月目の学習内容(約66時間)
・2ヶ月目の学習内容(約88時間)
・3ヶ月目の学習内容(約88時間)
・4ヶ月目の学習内容(約74時間)
・5ヶ月目の学習内容(約83時間)
・6ヶ月目の学習内容(約82時間)
・7ヶ月目の学習内容(約70時間)
・8ヶ月目の学習内容(約73時間)
・9ヶ月目の学習内容(約56時間(12/21まで))
・10ヶ月目の学習内容(約98時間(1/31まで))
・Happiness Chain入会後累計学習時間(約835時間)

⚫︎成長したこと

Rubyの課題を全てクリアできたこと
Rubyの課題についてメンターの方にペアプログラミングをしてもらいつつですが、先月と合わせてようやくクリアできました。
インプットを始めた時は「本当にできるだろうか...。」と思うことばかりでした。これをやり遂げたということは少しは成長できたのではないかと感じています。
ペアプログラミング、本当にありがとうございます🙏
まだまだ知識不足ですので、これからも日々積み重ねていきたいです。

⚫︎良かったこと

・毎日目標学習時間(mustタスク)を達成できたこと。
・月の後半から英語の学習を習慣化できたこと。

⚫︎悪かったこと

・月の前半は英語の学習を行えていなかったこと。
・コミュニケーション能力向上のために必要な行動が疎かになっていたこと。

⚫︎改善すること(ネクストアクション)

・イベントや雑談会に参加する。
・隙間時間を有効的に使う。

⚫︎感想・来週の目標

・英語の学習を引き続き継続させる。
・コミュニケーション能力向上のために必要なタスクをこなす。

⚫︎1ヶ月振り返ってみての感想

今月は3週間くらいRubyのコーディング課題に取り組み、残りの週はSQLの学習を行いました。
Rubyの課題について進捗が停滞して焦る時もありましたが、なんとかクリアできました。
まだまだ知識不足なため所々復習を挟みつつ、学習を進めていきたいと思います。
次はSQLです。こちらもとても大切な学習なため、また気を引き締め直して臨みたいと思います。

あと英語とコミュ力😨

それではまた遅くて1ヶ月後ぐらいにお会いしましょう🖐️