Torihaji's Growth Diary

Little by little, no hurry.

Rails tutorial 3章 わかったことまとめ

はじめに

ワタクシ、トリハジ!!

続きやってきます!!

流し読みしながらわかったこと

rails generate controller コントローラ名

コントローラ作る時に使用する

コントローラ名は大文字で区切られる

StaticPagesというコントローラを作ったらstatic_pagesというふうに解釈される

自動化テスト

実行可能なドキュメントを作るために必要!

作るのは慣れがいるけど、テキストオンリーのドキュメントとは異なり、

きっとあなたの役に立つはず

ぜひ頑張って

tutorialでやるのは コントローラテストとモデルテスト、統合テスト

統合テストは ユーザがwebブラウザでアプリケーションとやり取りする操作をシュミレートできるのでよき。

minitest

テストはアサーションというものの積み上げ。

get ~~urlで対象にリクエストを飛ばせる

色々書き方がある。

rails testでテストを行う。ファイル指定可能。

assert_select

対象に特定のHTMLタグが存在するかどうか

Minitestの結果を見やすく!

test/test_helper.rbに下記を追加

ENV["RAILS_ENV"] ||= "test"
require_relative "../config/environment"
require "rails/test_help"
# この2行
require "minitest/reporters"
Minitest::Reporters.use!

そうすると 色付きで見やすく表示される。

guard を入れると自動テスト

gemを入れる必要があるらしいが、すでに入っているらしいので

設定ファイルを作るにはbundel exec guard init

Rails tutorial 2章 分かったことまとめ

はじめに

こんにちはtorihaziです。

長ったらしい挨拶は抜きです!!

続きです!

ltg!!

流し読みしながら分かったこと

rails generate scaffold

決まった雛形アプリを作成するために必要なコマンド

あらかじめ出来上がっているものを作れる。お試し用。

インスタンス変数

@で始まる変数をRuby ではインスタンス変数と呼ぶ

Railsコントローラ内で宣言したインスタンス変数はビューで使えるようになる。

ルーティング

ルーティングヘルパーというものが便利

rails routesをした後にPrefixというところに記載のあるものは

ビューでも使える。

バリデーション

モデルに投入するデータの制約を付与することができる

app/models/**配下のファイルに記述する。

アソシエーション

異なるデータモデル同士を関連づけることができる。

Aに多くのBが紐づいているならAに has_manyを、

Bに1つのAが紐づくならBに belongs_to。

デプロイ

毎回 画面に飛んだら、Configureしてリポジトリ追加しないとダメなのね。

通りで中央の検索欄に入力しても出てこないわけだ。

秘密鍵表示は code config/master.keyこれ知られないようにね。

終わりに

はい次!!

Rails tutorial 第1章 分かったことまとめ

はじめに

みなさんこんにちは、torihaziです。

最近疲れが溜まってまともにできていませんでしたが、

爆睡して回復してなんとか今日から爆速で巻き返していきたいと思います!!

Webエンジニアになるために!!

RailsとかGoを手なづけるためにも今日からまた頑張ります!!

今日からRails tutorial を行います!

著作権に引っかからないように パクリには気をつけます!

それではltg!!

最初から流し読み

Hotwire

Hotwireとは?|猫でもわかるHotwire入門 Turbo編

モダンなWebアプリケーションをRailsでも作れるようになる。Rails7から採用された。

画面遷移をむっちゃ高速にしてくれるっぽい。

SPAを作る際にサーバからブラウザにJSONを送らずにHTMLを送って作っていくやり方のこと。

MVC アーキテクチャ

UIを持つようなアプリケーションを作る際に採用される作り方のこと。

クライアントがWebサーバにリクエストを送る

-> リクエストをコントローラに渡る

-> コントローラがリクエストに基づいて対応するビューへ処理を引き渡しレスポンスを作成させる

->もしくはデータベースとの通信を担当しているモデルとやりとりしてデータを取り出す。

-> そのデータを元にビューへデータをわたし、最終的に得たレスポンスをコントローラがもらい、クライアントへ返す

この一連の流れでMVCアーキテクチャは処理を行う。

このうちビューがHTMLを整形するような処理のことをレンダリングという。

render メソッド

render html: "hello world"

呼び出すテンプレートを指定するメソッド。

レンダリングする元となるファイルを指定することができるメソッド。

コントローラもしくはビューで使用することが可能。

デプロイする

Render に対してデプロイを実行する

90日間無料

デプロイするためには下記2ファイルが必要。

  • config/master.key
  • config/credentials.yml.enc

codespacesを使っていない場合は master.keyがないので credentials.yml.encを削除

上記2ファイルを作成するためには下記コマンド

bin/rails credentials:edit

画面が開くが気にせず閉じる

git 使ってたら credentialsをpushして Render へ!

render で必要事項記入してデプロイ。

時間がかかるけどLiveってなったらOK

終わりに

次!!!

初心者が Ruby on rails を齧ってみた感想

はじめに

みなさん、こんにちは torihaziです。

今回は 2週間くらい前から Ruby on railsを学習しています。

ちゃんとしたフレームワークを学ぶのは

これが初めてになりますがなんとかノリでやっていこうと思います!

今回はいつもとテイストを変えて

授業のノートのように 不明点や詰まったところを中心に

1章1章まとめていこうかと思います。

丸パクリだけは気をつけて頑張ります!

それでは ltg

参考書籍

現場で使える Ruby on Rails 5速習実践ガイド | 大場寧子, 松本拓也, 櫻井達生, 小田井優, 大塚隆弘, 依光奏江, 銭神裕宜, 小芝美由紀 |本 | 通販 | Amazon

学習したこと

1章 Rails の前に Rubyを学ぶ

全てがオブジェクト

RubyRailsでは全てがオブジェクトになります。

オブジェクトとは、現実世界の物理的なモノから抽象的な概念をプログラミングで扱えるように考えだされたもの

データ(値)や処理(メソッド)を格納して随時呼び出すことができます。

Rubyでは オブジェクトの種類として 文字列、数値、配列、シンボル、範囲・・など多くのオブジェクトが元から用意されており

それぞれに固有のメソッドが付与されています。

メソッドとは

上でメソッドというものを前触れもなく記載しましたが、私は次のように理解しました。

メソッドとは対象の振る舞いを決めるもので、他言語でいう関数に相当するものです。

メソッドの中にも種類があり、Rubyがあらかじめ用意している組み込みメソッドや開発者が新しく作ったメソッドなどがあります。

Rubyにおいてメソッドは オブジェクトに作用させることで効果を発揮します。

使用方法は object.methodというように ".(ドット)"を付与することで機能します。

このメソッドを持つオブジェクトのことをレシーバと呼びます。

null ではなく nil

SQLでは何もないことを Nullと表現しますが、Rubyでは nilを使用します。

これもまたオブジェクトです。

if

Rubyにおける真偽を確かめる方法に if 文がありますが、

Rubyは 0 も true扱いになります。

falseになるのは nil か falseのみです。

間違えないようにしましょう。

キーワード引数

与える引数の意味を一目でわかるように設定するものです。

また与える引数の順番を気にしなくて良くなるので、

デフォルト引数を使用している際は、デフォルト引数をはじめの方に寄せなければならないということをしなくて良くなります。

クラスとモジュール

クラスもモジュールも何かをまとめたものでありますが、

クラスがオブジェクトのあれこれをまとめたもので

モジュールはメソッドをまとめたものになります。

ただモジュールはクラスのようにインスタンス化することはできず

用途としては複数オブジェクト間で共通の処理を使いたいときに使用します。

Rubyは複数の親を継承する多重継承をすることができないので

モジュールを使ってこの問題点を解決します。

使用する際は includeメソッドを使用します

& ぼっち

使用方法に癖がありますが、これを使用することで

レシーバがnilであってもエラーを返さなくなります。

ログイン時のcurrent_userなどを使用する際に真価を発揮しそうです。

2章 Rails アプリを覗く

Railsアプリの雛形作成

作業用のフォルダで下記コマンドを実行することで Railsアプリの雛形を作成することができます。

rails new アプリ名 [-d データベース名 ]・・・

データベースを作成

Railsアプリで使用するデータベースを作成するためには次のコマンドを実行します。

bin/rails db:migrate

rails ではなく bin/railsコマンドを使用することで、Gemfile通りのgemを利用できる環境でコマンドを実行できます。

開発用サーバ起動

Railsアプリをブラウザで確認するために使用する開発用サーバは下記コマンドで起動できます。

bin/rails s

MVC

MVCというのは Model 、View、 Controllerの頭文字をとったものです。

UIがあるアプリケーションを作る際の設計手法、概念のことです。

  • データベースとのやりとりを司る Model
  • モデルやビュー、リクエスト、レスポンスなど色々なところとのやりとりを司る Controller
  • アプリの見せる部分の生成を司る View

3章 アプリ作成の準備

データベースは環境ごとにある

データベースとはデータを保存するところです。

しかし開発をする上でデータには複数の種類が存在します。開発用のデータ、テスト用に作ったデータ、本番運用していく中で蓄積されたデータです。

これらを分けるためにデータベースも分ける必要があります。Railsは3種類のデータベースがあります。

  • 開発環境 - development
  • テスト - test
  • 本番 - production

テンプレートエンジン

アプリはユーザに見せる画面を最終的にHTMLで表現します。

Railsでのビュー開発はテンプレートエンジンを使用して行うと開発を進めやすくなります。

デフォルトは ERBですが、そのほかにもHamlやSlimがあります。

モデルの雛形作成

モデルを作成するためには下記コマンドを実行します。

bin/rails g model [モデル名] [属性名: データ型・・・]

マイグレーション

データベースへテーブルを追加するためにはマイグレーションを使用する。

データベースへの変更の1つ1つを rubyのプログラムとして行います。

また状態の履歴を追うことができます。

下記コマンドでマイグレーションを実行することができます。

bin/rails db:migrate

コントローラとビュー

モデル作成と同様にジェネレータを使用して下記コマンドで作成することができます。

bin/rails g controller コントローラ名 [アクション名 アクション名 ・・・]

このようにすることでアクション名と同名のビューが作成されます。

HTMLにおいてaタグの要素を出力するためのメソッドで下記の書式です。

link_to 'リンク名', リンク先のURL, a 要素につける属性指定

Flashメッセージ

redirect_toに渡すことができるメッセージのことです。

次のリクエストに対して少しのデータを渡すためにRailsが用意している仕組みです。

パーシャル

ビューファイルで重複しているレイアウトを部品化して使いまわせる仕組みのことです。

パーシャルテンプレートのファイル名は先頭にアンダーバーを付与します。

4章 現実の複雑さに対応する

モデルに制約を

データベースのカラムに制約をつけることができます。

非ヌル制約は null: falseを

文字列長さは limit: 長さを

一意制約は unique: trueをマイグレーションファイルに設定します。

バリデーション

データを保存するときに保存するデータを検証する必要があります。

その検証のことをバリデーションといい、モデルファイルに下記を追記することで設定できます。

  • 必須か - presence: true
  • 文字列の長さは - length { maximum: 30 } など

セッション

サーバ上に保存する小さな情報もしくはその領域のことです。

HTTPプロトコルはステートレスであるためCookieを使用してログインというものを実現することができます。

セッションとは異なりブラウザ側に保存する小さな情報もしくはその領域のことです。

複数リクエストの間で状態の保存をすることができます。

5章 テスト

RSpec

Railsのminitestと同じようなテストフレームワークのことです。

動く仕様書という発想で作られているそうです。

Capybara

Rspecと組み合わせて使用します。ブラウザ操作をシュミレーションできたりjavascriptの動作までテストすることができます。

人が行う操作をコード化して実現するというイメージです。

FactoryBot

テスト用のデータを作成することができるgemです。

Fixtureという仕組みもありますが、Factorybotの方が便利だそうです。

ログインという操作をコード化

ログイン操作は下記のようなコードで実現可能です。

visit login_path
fill_in 'メールアドレス', with: 'a@example.com'
fill_in 'パスワード'm with: 'password'
click_button 'ログインする

直感的に何をしているかがわかります。

6章 Railsの全体像を理解する

ルーティング

ルーティングとはクライアントからこのURLでリクエストが来たらどのコントローラのどのアクションを呼び出すかを決定させるものです。

書き方としては次のようなものがあります。

get '/login', to: 'sessions#new'
resources : tasks

Strong Parameters

コントローラでリクエストパラメータを受け取る際に、想定外の値を受け取らずおかしい処理をしないようにするための仕組みです。

アセットパイプライン

JavascriptCSS 、画像を効率的に配信する仕組みです。

主な機能としてはコンパイル、アセットの連結、アセットの縮小圧縮、ダイジェストの付与です。

ブラウザにアセットを読み込ませる

Rails ではCSSを読み込むためにstylesheet_link_tagを、Javascriptタグを読み込むにはjavascrupt_include_tagというヘルパーメソッドを使います。

マニフェストファイル

アセットパイプラインにおいてファイルをどのように連結して出力するのかを記述したファイルです。

app/assets/application.cssやapp/assets/application.jsといったものが該当します。

sass-rails gemが有効なら Sassでマニフェストファイルを記述できます。

application.js

記載方法は次のようなものがあります。

  • require 指定したjavascrptの内容を記述した位置に取り込みます。拡張子は省略可能です。
  • require_tree 指定したディレクトリは以下の全ファイルの内容を結合し、記述した位置に取り込みます。

application.css

記載方法はSassということで @import で記述します。

プリコンパイル

production環境でアプリケーションを動かすために必要です。

あらかじめアセットパイプラインを実行して静的ファイルを生成する処理のことです。

下記コマンドで実行できます。

bin/rails assete:precompile

master.key

本番環境でアプリを利用する場合、Railsが同環境の秘密情報を複合するために利用する鍵です。

config/master.key もしくは 環境変数 RAILS_MASTER_KEYです。

本番環境でサーバ起動

下記コマンドです。

bin/rails s --environment=production

credentials.yml.enc

マスターキーによって暗号化された秘密情報のことです。

実物は config/credentials.yml.encにあります。

参照する場合は bin/rails credentials:showです。

編集する場合は bin/rails credentials:editです。

絶対に紛失しないようにしましょう。

7章 機能追加

ransack

検索機能を追加するためのgemです。ransackメソッドが追加され検索することができます。

search_form_forメソッドを使って、検索用のフォームを追加できます。

またソート機能もついており、sort_linkヘルパーを使うことで可能になります。

メーラー

Railsではメールを送るためにAction Mailerという機能があります。

メーラーを作成するには下記コマンドです。

bin/rails g mailer メーラー名

deliever_nowメソッドを使うことで即時送信を行うことができます。

メーラーの動作確認

mailcatcher というgemを利用します。

使用方法は mailcathcer というコマンドを実行してから実際にメールを飛ばすという感じです。

Active Storage

画像ファイルを管理するために必要なgemです。

クラウドストレージへファイルをアップロードしてActiveRecordに紐づけることをしています。

下記コマンドでインストールできます。

bin/rails active_storage:install

そのあとマイグレーションファイルが作成されるので db:migrateします。

ページネーション

ページネーションは kaminari というgemをインストールします。

8章 javascript

こちらは後日学習するので飛ばします。

9章 チーム開発

こちらは gitに関することだったので飛ばします。

終わりに

かなり超大作でした。

この書籍は rails 5対応なので、個人環境でrails 7で書き直してみましたが

bootstrapの箇所など 挙動が異なる箇所が多かったので

詰まりながら調べながらでなかなか苦戦しました。

これからのアウトプットで入れたものを出して、

足りなければまた入れてを繰り返して定着を図っていきたいと思います。

まだまだ道は長いですが、頑張りましょう。

僕も頑張ります。

Mac M2 でrails x mysql x docker 構築時に no matching manifest for linux/arm64/v8 と言われたら

はじめに

みなさんこんにちは。torihaziです。

今回は Mac M2 でrails x mysql を docker で構築しようとしたら タイトルのエラーが出たので

その解決法になります。

秒で終わります。

ltg

結論

docker-compose.yml に下記を追加

  db:
    platform: linux/amd64 <- この行
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password

原因

Mac M1 のアーキテクチャarm64 (uname -m で見れます) に対し、

Docker hubが提供している mysql5.7系のアーキテクチャ

amd64と一致していないから。

platformオプションを選択しないと、

ホストマシンのアーキテクチャと同様のものを探しに行く。

しかし、今回の場合は arm64が無いので怒られたと言うわけ。

試しに Docker hub で mysql:5.7系を検索してみてください。

みんな 2列目の OS/ARCHamd64ですよね。

そう言うことです。

終わりに

今日は長ったらしくしません!

以上です!終わり!!

初心者がREST APIを爆速で理解した(かもしれない)話

はじめに

みなさん、こんにちは torihaziです。

先週のSQL大激闘を乗り越え、次は APIと戦っています。

今回はそのAPIの中でも REST というルールに基づいて作られている API

REST API について つらつらしていこうと思います。

それでは ltg

あ、ちなみに APIって言葉はググってから進んでくださいね。

自分もググって分かったので大丈夫です

RESTってなに

堅苦しい日本語の定義です。

分散型ハイパーメディアシステムの設計原則群

1つづつ紐解きます。

分散型

システムやデータが複数のコンポーネント(コンピュータなど)に分散されて配置されている状態のこと

これにより1人で対応しきれないたくさんのデータを処理できるようになります。

100の作業量はスーパーな1人よりノーマルな100人でやった方が仕事分散できますよね。

対義語としては中央集権型です。

ハイパーメディアシステム

テキスト、画像、音声、動画を組み合わせたメディア要素をリンクによって結合させているようなシステムのことです。

昨今のWebそのものと認識して良いと思います。

設計原則群

要はルールのことです。決まり事。作り方と言ってもいいです。

以上を総括すると、

下図のようないろいろ繋がってるシステムの綺麗な作り方

というイメージになります。

REST APIとは

では本題のREST APIについて。

上記の説明を元に説明すると

なんか決まったルールで作られた WebAPIの1つ

です。

WEB API とは 情報のやり取りに HTTPというプロトコルを使用する APIのことです。

ということなので改めて翻訳すると

なんか決まったルールで作られ、情報のやり取りにHTTPを使用する API

ということになります。

RESTのルール

ここからはそのなんか決まったルールについてです。

RESTルールを満たすには下記の6箇条が必要です。

1つ クライアントサーバ型アーキテクチャであるべし
1つ 通信はステートレスであるべし
1つ 情報をキャッシュできるようにするべし
1つ インターフェースを統一すべし
1つ 階層化システムであるべし
1つ リソース指向であるべし

クライアントサーバ型アーキテクチャ

クライアントとサーバがいて、それぞれ役割が分かれているシステムであることということです。

「情報を欲しい!」というクライアントと「情報をあげる!」というサーバがいます。

アーキテクチャは難しく捉えがちですが、作りや建築学でいう建築様式のような意味合いです。

ちなみに役割が同等のもので構成されているようなシステムを「P2P(ピアツーピア)」と言います。

LINEがこのシステムだった(はずです)

ステートレス通信

状態を持たない通信のことです。

これについては色々な例え話で説明されていますね。

個人的には今さっき思いついた例がしっくりきたのでご紹介します。

お店にて、「大将!! いつもの!!

と言って

はいよ!! とくればステートフル

は? とくればステートレス

です。

何が違うかというと お客さんのいつものというものを大将側が覚えているか否かです。

これにはそれぞれ次のような利点欠点が存在します。

ステートフル
利点

伝える側(クライアント)が提供する情報量が少なくて済む。

欠点

もらう側(サーバ)が以前の情報を覚えておかなければならない。

ステートレス
利点

もらう側(サーバ)が以前の情報を覚えておかずに済む

欠点

伝える側(クライアント)側が毎回いつもの!!の詳細な内容を伝えないとダメ

(生1つに枝豆に鶏皮につくねにネギまに。。。。という感じで)

どちらがいい悪いという問題ではなく、用途によって選びましょうということです。

キャッシュできる

キャッシュというのはサーバ側からもらった情報をクライアントが覚えておくことです。

何がいいかというと、情報通信量の削減です。

前にもらった情報を覚えているので、毎度毎度全部を要求する必要がありません。

ただもらった情報の中でもいらない情報をキャッシュする必要はないので

必要なもののみキャッシュすることが必要です。

インターフェースの統一

特徴としては以下の4つです。

  • 情報(リソース)はURIという一意の識別子で表すことができる
  • リクエストやレスポンスを読めば情報の意味がわかる
  • システム内のリソースを全て同じ方法で参照できる
  • HATEOSであるべき

この最後のHATEOSについて少し説明します。

HATEOSとは レスポンスの中に他データのURI等をリンクとして含めることで

そのデータを見れば次にどのURIにアクセスをすれば良いかわかるような設計概念のことです。

例えばWebサイトを試しに開くと、色々なリンクがありますよね。

お困りの方はこちら!のリンクをクリックしたら問い合わせページに飛ぶだろと推測できますよね。

APIのレスポンスにも同じようなリンクデータを含めるわけです。

階層化システム

複数の階層に分けたコンポーネントによって情報を段階的に処理するようなシステムのことです。

それぞれ役割が決まっていて、独立していることが特徴です。

リソース指向

システム内のすべての情報はリソースとして扱います。

そしてそれらをURIで表現するべきであるという考えのことです。

終わりに

いかがだったでしょうか。

REST APIについてふんわりとでも理解することはできたでしょうか。

私の理解としては

REST API

REST という設計ルールに従い、情報のやり取りにHTTPプロトコルを使用するAPI

と理解しています。

みなさんはどのように理解しましたか?

初めて読んだ時は何だか腹落ちしなかったにも関わらず

今読み返してみるとわかったような気がする

という状態になってくれたら嬉しいです。

ネットをググれば色々な定義が載っていて

どれが正解なのかわからない、なんてこともあるかと思います。

個人的にIT用語は辞書的な意味を覚えてもほぼ無意味だと思うので

まずは自分の中で定義を確立させてから

そこから色々な文献や他者の意見を読み聞きして

自分なりの理解を確立させていったほうがいいかと思います。

上達には逃げずに自分の言葉で言語化!これにつきます。

頑張ってください。

僕も負けじと頑張ります。

Happiness Chain Euforia 0ヶ月目 を終えて

みなさん、こんにちは 。torihaziです

今回は”月報"回です。

と言っても稼働は3/1からなので、Euforiaとしては

活動 0 ヶ月目となります。

これから楽しみですね。半年後が楽しみです( ´ ▽ ` )

今月の勉強時間について

119h5m!!!

2月が29日あったので1日あたり 4時間ほどという計算です。

土曜日や日曜日に8時間ほど学習を続けることができたので

その分時間が多くなっているのだと思います。

完了したタスクについて

公式ページに記載のあるカリキュラムより拝借してきました。

2月の初めに Dockerの課題をやり始め、現在はSQLの課題です。

  • 2024/2/1 06課題 課題を終了
  • 2024/2/20 07課題 課題を終了
  • 2024/3/1 8課題 課題を終了
  • 2024/3/7 9課題 課題を終了

というおおまかな目標で進めており、オンスケです。

SQLがちょっと終わらないかもしれませんが、頑張ります。終わらせます。

反省点

SQL課題で失速

インプット書籍に掲載されていたドリルを終わらせるためにかなりの時間を要してしまいました。

前スクールでSELECTやUPDATE 、INSERT、DELETEは一通り知っているつもりだったのですが、甘かったです。

UPDATEとINSERTを混同しており、SET かVALUESを何度も書き間違えていました。

またSQLの関数に関する知識も希薄でした。

特にCOALESCEや CASE WHENは初めて知りました。

巻末問題で嫌いになる程、目にしたので現在は大丈夫です。

またドリルとは別にあるDB設計に関する書籍インプットにおいても苦戦しました。

特に苦戦したものは 正規化と論理設計です。

正規化については用語自体は知っていましたが、使えるかと聞かれたら否でした。

論理設計については、言葉自体は初耳でしたが同様のことは前プロダクト制作においてもやっていました。

そのためあの時やっていたものが論理設計だったのかと思いながら読み進めていました。

ただ途中で出てくるエンティティの抽出。

こちらについては自らの手で1からできるかは怪しいです。

今後の演習で身につけていきたいと思います。

もくもくに入って勉強しなかったこと

今までもくもくに入って勉強はしていませんでした。

理由は特にありません。入っていなくても学習を続けることはできていました。

ただ最近入るようになって思うことがあります。

それは「入ったらスイッチが入る」ということです。

今までは学習を続けてはいましたが、今思えばメリハリがなかったように感じます。

あともくもくに入ると、少し緊張感が出るような気がします。

もしマイク入って変なこと言ってたらどうしようみたいな感じで

誰かに見られているという感覚が少しでも芽生えるからでしょうか。

とにかく何かと好循環であるのでこれからも続けていきたいと思います。

良かった点

英語学習の継続

毎朝や隙間時間に少しづつ単語学習や文法学習を進めることができています。

今まで電子書籍で学習を進めていたのですが、最近紙のほうがいいということに気づきました。

すり減っていく様子を見ると勉強している感がわかり、モチベーションが上がるためです。

現時点で5冊ほどです。すでに広辞苑を勝る分厚さです。

大学受験を思い出します。あの時の追い込みを思い出して

着実に積み重ねていきたいと思います。

自分を鼓舞できた

これはSQLで詰みかけていた時のことです。

1章で終わると思っていた問題が2章、3章あると分かった時、

とりあえず本を閉じました。現実から少し逃げました。

しかし、「頑張れ自分」と励まして最後までやり抜くことができました。

側から見ればかなり "イタい"人間だったと思います。

自分はあまり強い人間ではないので恥ずかしさはありますが、

この手法を続けていきたいと思います。

高校サッカーの部活でよく走らされていた時のラストスパートを思い出しながら

今後も負けないように精進していきます。

できるようになったことの棚卸し

いつの日か見返したときに懐かしむ用です。

ただ正確ではない可能性があるので定期的に見直しが必要です。

  • git の基礎的なコマンド(add commit push pull)
  • docker の基礎的なコマンド (build run)
  • docker compose の基礎的なコマンド (up down)

Docker のコマンド をただ羅列した - Torihaji's Growth Diary

  • docker コンテナのネットワーク

初心者がDocker で 使い捨て PostgreサーバとPostgreクライアントを作る - Torihaji's Growth Diary

来月の目標

来月の目標は

  • rails課題の半分以上を終わらせること
  • 記事を3つ書くこと
  • 英語 単語 毎日 50個以上
  • 英熟語 毎日 1P以上
  • 多読 1週間 1冊以上
  • 寿司打 14000円
  • 曖昧or誤字脱字文章撲滅。(これこそ曖昧かもしれない)

に取り組んでいきたいと思います。

めげず挫けず諦めず。

稼げるようになるためにこれからも頑張っていきます。