あやこ
2026/01/07
今日のメモ
・「データベースとO/Rmapper(ActiveRecordの概要について知ろう(SQLとActiveRecord))、(ActiveRecordの操作について知ろう(CRUD))、(ActiveRecordの操作について知ろう (高度なクエリ操作))」
・今ひとつ集中力に欠ける
・今ひとつ集中力に欠ける
😐
⛅
🌰
Elu
2026/01/07
今日のメモ
Rails基礎18の自動レビューエラーをのりぴちさんにご協力いただき解決。Gitのユーザー登録が外れてる?といった事象が発生していたので、ユーザー名、メールアドレスを入力して再度pushしたところ解決。しかしいまだに真の原因はわからない。
・原因不明のエラーの場合、バックアップを取った上で原因追及に移る
・コミットの粒度は細かく、コミットメッセージはどんな実装をしたかわかるように書く。
・ターミナルに打ち込むコマンドの効果範囲を理解した上でEnterを押す。「〜だろう」、「〜だしこれでええやろ」という認識で取り組むのはNG。
のりぴちさんのお陰でコマンドの威力への理解が深まりました。現場目線のご指導に感謝🙌
イベントの診療もお疲れ様でした。またお願いします!!
・原因不明のエラーの場合、バックアップを取った上で原因追及に移る
・コミットの粒度は細かく、コミットメッセージはどんな実装をしたかわかるように書く。
・ターミナルに打ち込むコマンドの効果範囲を理解した上でEnterを押す。「〜だろう」、「〜だしこれでええやろ」という認識で取り組むのはNG。
のりぴちさんのお陰でコマンドの威力への理解が深まりました。現場目線のご指導に感謝🙌
イベントの診療もお疲れ様でした。またお願いします!!
😄
🌞
🌳
のりぴー
2026/01/07
今日のメモ
本日は、貴重なお時間を割いて参加していただきありがとうございました!
企画初めてで、かつ、試験開催で想定を超える人数でただただ感謝しかありません。
一方で、言葉遣いやトーンを含めた説明をやさしく伝える力が不足していると反省しております。
考えを相手に受け取ってもらえるように難しくならないように伝えることを痛感しました。
企画初めてで、かつ、試験開催で想定を超える人数でただただ感謝しかありません。
一方で、言葉遣いやトーンを含めた説明をやさしく伝える力が不足していると反省しております。
考えを相手に受け取ってもらえるように難しくならないように伝えることを痛感しました。
🙂
⛅
🌱
まさじん
2026/01/07
今日のメモ
◆学習時間: 7h
◆学習内容:Ruby復習、卒制MVP着手
◆本日の振り返り:
卒制issue
1つDone。想定以上に時間はかかっているけど、とりあえず地道に終わらせてはいるのでOK :sparkles: :sparkles: :sparkles:
ただ、目標としていた1月中に卒業するのは難しいかもと思ってきました :scream:
腰痛や家庭の用事などがあって少し伸びてしまっているので、明日またスケジュールを組み直します。
Ruby復習
Paizaで少しだけruby復習。Dランクの問題集を少し解いたけどスラスラでてくるレベルになるのはいつになるのやら....
応用ステップ放置しているのでそれもやらねば!! :fire:
◆今日の気づき:
RUNTEQ入学して技術書5冊ほど買ったはいいものの、全然やってません。。。。 :sweat_drops:
そしてなんと明日また2冊届きます。(ログの教科書・オブジェクト指向でなぜつくるのか)
ちゃんとその日の学習スケジュール立てて、技術書を読んで実践する時間もつくりたいですね。
技術書の輪読会とかイベントあったら参加したいな :thinking_fac
◆学習内容:Ruby復習、卒制MVP着手
◆本日の振り返り:
卒制issue
1つDone。想定以上に時間はかかっているけど、とりあえず地道に終わらせてはいるのでOK :sparkles: :sparkles: :sparkles:
ただ、目標としていた1月中に卒業するのは難しいかもと思ってきました :scream:
腰痛や家庭の用事などがあって少し伸びてしまっているので、明日またスケジュールを組み直します。
Ruby復習
Paizaで少しだけruby復習。Dランクの問題集を少し解いたけどスラスラでてくるレベルになるのはいつになるのやら....
応用ステップ放置しているのでそれもやらねば!! :fire:
◆今日の気づき:
RUNTEQ入学して技術書5冊ほど買ったはいいものの、全然やってません。。。。 :sweat_drops:
そしてなんと明日また2冊届きます。(ログの教科書・オブジェクト指向でなぜつくるのか)
ちゃんとその日の学習スケジュール立てて、技術書を読んで実践する時間もつくりたいですね。
技術書の輪読会とかイベントあったら参加したいな :thinking_fac
😄
⛅
🌰
🍵
1
かずき
2026/01/07
今日のメモ
138日目
学習時間:7.5h
ER図 67期Masaさんのアウトプットリレーで書かれてたMermaid記法にならって
https://note.com/masa_007_02/n/n84136266be9b
楽すぎる 簡単に終わりました。
FK(外部キー)があってるかわからないですが、とりあえず明日画面遷移図LGTM後提出します!
学習時間:7.5h
ER図 67期Masaさんのアウトプットリレーで書かれてたMermaid記法にならって
https://note.com/masa_007_02/n/n84136266be9b
楽すぎる 簡単に終わりました。
FK(外部キー)があってるかわからないですが、とりあえず明日画面遷移図LGTM後提出します!
😁
☁
🌰
💯
1
フルちゃん
2026/01/07
今日のメモ
昨日のRails8の問題についてらんてくんに聞きながら解決したところ、yarn が正常にインストールされていないことが原因であることがわかった!
卒制のREADMEを作成した!ChatGPTとGeminiにNotionでまとめたアプリの内容を説明して、READMEを書かせてみた!
ユーザー層など想定外の情報があって聞いてよかったと思った!
ううんと思った箇所もあったため、自分の思っていることと合わせて完成させていきたい!
後半では、deviseのsessionコントローラーのコードをいじって遊んだ!具体的には、newメソッドの処理を公式の継承された処理から変えてみたり、新たなメソッドを定義したりして、Rubyの継承の概念について理解を深めることができた!
また、deviseのRspecについてらんてくんを活用しながら調べた!書けるように頑張っていきたい!ただ、卒制の時に作成するタイミングについて悩んでいる!
行うにしても実装後になるかもしれない!
卒制のREADMEを作成した!ChatGPTとGeminiにNotionでまとめたアプリの内容を説明して、READMEを書かせてみた!
ユーザー層など想定外の情報があって聞いてよかったと思った!
ううんと思った箇所もあったため、自分の思っていることと合わせて完成させていきたい!
後半では、deviseのsessionコントローラーのコードをいじって遊んだ!具体的には、newメソッドの処理を公式の継承された処理から変えてみたり、新たなメソッドを定義したりして、Rubyの継承の概念について理解を深めることができた!
また、deviseのRspecについてらんてくんを活用しながら調べた!書けるように頑張っていきたい!ただ、卒制の時に作成するタイミングについて悩んでいる!
行うにしても実装後になるかもしれない!
🙂
⛅
🌱
あやこ
2026/01/06
今日のメモ
本日、「Webを支える技術(Web技術について)」から「データベースとO/R mapper(データベース入門を読もう)」までのカリキュラムを順調に進められた。
1週間の学習報告会を行い、学習報告のやり方をnice ownershipと評価していただけたことが励みになった。
同期の一人が圧倒的なスピードでカリキュラムをこなすのを知り、モチベーションが上がる一方で少し焦りも感じたが、自分のペースを忘れずに進むことをまず大事にしたい。
とはいえ、素直に見習う姿勢を持ち、今後はより効率よく学習を進められるよう、具体的な改善点を考えていきたい。
今後は実践的な演習や理解の深掘りを通じて、知識と技術の定着を図りたい。
1週間の学習報告会を行い、学習報告のやり方をnice ownershipと評価していただけたことが励みになった。
同期の一人が圧倒的なスピードでカリキュラムをこなすのを知り、モチベーションが上がる一方で少し焦りも感じたが、自分のペースを忘れずに進むことをまず大事にしたい。
とはいえ、素直に見習う姿勢を持ち、今後はより効率よく学習を進められるよう、具体的な改善点を考えていきたい。
今後は実践的な演習や理解の深掘りを通じて、知識と技術の定着を図りたい。
🙂
⛅
🌱
まさじん
2026/01/06
今日のメモ
◆学習時間: 4.8h
◆学習内容:卒制MVP着手
◆本日の振り返り:
昨日よりも腰が痛かったのであまり学習は集中できず。。。
ただ、ひさじゅ校長のライブ配信をアーカイブで聞いて、学習の仕方や方向性について改めて振り返ることができました。(xでも発信していただいていましたね :sparkles: )
=====================
<< AI時代におけるエンジニアの学習優先度>>
結論
これからのエンジニアに求められるのは
「コードを書く人」ではなく、「AIを使ってシステム全体を設計・判断する人」。
AIは優秀な実装担当(大工)。人間は 設計・意思決定・責任を持つ役割(建築家) にシフトしていく。
🔻 学習優先度が下がった領域(暗記・単純作業)
AIや開発ツールの進化により、以下は「深追いしすぎなくてよい」領域。
基本的な暗記
メソッド名、API仕様、細かい構文
👉 必要なのは「全部覚える」ではなく「どこを調べればいいか分かる状態」
HTML / CSS の細部
タグ暗記や微調整は AI が最も得意
フレームワーク固有の細かい流儀
Rails 流の書き方に過度に固執しない
👉 lint が通る / チームで読める で十分
複雑なアルゴリズムの実装
ゼロから書く機会は稀
👉 計算量の考え方・前提理解は必要
テストコードを1行ずつ手書き
重要なのは「何をテストすべきか」という設計視点
🔺 今こそ深く学ぶべき領域(設計・意思決定)
AIが苦手で、人間の価値が高まる領域。
🧠 設計・構造理解
ソフトウェアアーキテクチャ
責務分離、オブジェクト指向、設計パターン 👉 設計が崩れると AI のコードも破綻する
データモデリング
テーブル設計、正規化 👉 システムの寿命を決める重要要素
🌐 インフラ・土台
Web三層構造
Web / App / DB の役割理解
クラウド基礎
AWS 等のサービスを「なぜ使うか」 👉 トラブルシュート力が一気に伸びる
📝 ビジネスと接続する力
ドメインモデリング / 要件定義
曖昧な要望を分解し、システムに落とす 👉 「作る / 作らない」の判断ができるか
非機能要件
パフォーマンス / セキュリティ / 可用性 👉 AIが見落としがちな重要ポイント
🚀 若手エンジニア向け・具体アクション
素のサーバー構築を経験する
VPS + SSH で一から環境構築 👉 ネットワーク / OS / インフラ理解が深まる
上流工程に積極的に関わる
要件定義・顧客MTGに同席 👉 「なぜこの仕様か」が見えるようになる
AI活用フローを意識する
AIに何を任せ、何を人が判断するか 👉 チームで再現可能な使い方を考える
=====================
卒制issue
予定していたissueは終わらせられず。
ただ、最近アプリ開発の中で、フォームオブジェクト / サービスオブジェクトといったデザインパターンを使用することがあり、これまで点でよくわかっていなかったものが、かなり短いですが線としてつながってきた感覚がありました :sob:
また明日がんばります :muscle:
◆1日1技術質問の壁打ちは、面接対策シートに記載されている分がひと通り終わったので一旦終了します。
ruby復習が最近できていないので、次はpaizaでrubyの問題集を毎日コツコツやっていこうかな :thinking_face:
◆学習内容:卒制MVP着手
◆本日の振り返り:
昨日よりも腰が痛かったのであまり学習は集中できず。。。
ただ、ひさじゅ校長のライブ配信をアーカイブで聞いて、学習の仕方や方向性について改めて振り返ることができました。(xでも発信していただいていましたね :sparkles: )
=====================
<< AI時代におけるエンジニアの学習優先度>>
結論
これからのエンジニアに求められるのは
「コードを書く人」ではなく、「AIを使ってシステム全体を設計・判断する人」。
AIは優秀な実装担当(大工)。人間は 設計・意思決定・責任を持つ役割(建築家) にシフトしていく。
🔻 学習優先度が下がった領域(暗記・単純作業)
AIや開発ツールの進化により、以下は「深追いしすぎなくてよい」領域。
基本的な暗記
メソッド名、API仕様、細かい構文
👉 必要なのは「全部覚える」ではなく「どこを調べればいいか分かる状態」
HTML / CSS の細部
タグ暗記や微調整は AI が最も得意
フレームワーク固有の細かい流儀
Rails 流の書き方に過度に固執しない
👉 lint が通る / チームで読める で十分
複雑なアルゴリズムの実装
ゼロから書く機会は稀
👉 計算量の考え方・前提理解は必要
テストコードを1行ずつ手書き
重要なのは「何をテストすべきか」という設計視点
🔺 今こそ深く学ぶべき領域(設計・意思決定)
AIが苦手で、人間の価値が高まる領域。
🧠 設計・構造理解
ソフトウェアアーキテクチャ
責務分離、オブジェクト指向、設計パターン 👉 設計が崩れると AI のコードも破綻する
データモデリング
テーブル設計、正規化 👉 システムの寿命を決める重要要素
🌐 インフラ・土台
Web三層構造
Web / App / DB の役割理解
クラウド基礎
AWS 等のサービスを「なぜ使うか」 👉 トラブルシュート力が一気に伸びる
📝 ビジネスと接続する力
ドメインモデリング / 要件定義
曖昧な要望を分解し、システムに落とす 👉 「作る / 作らない」の判断ができるか
非機能要件
パフォーマンス / セキュリティ / 可用性 👉 AIが見落としがちな重要ポイント
🚀 若手エンジニア向け・具体アクション
素のサーバー構築を経験する
VPS + SSH で一から環境構築 👉 ネットワーク / OS / インフラ理解が深まる
上流工程に積極的に関わる
要件定義・顧客MTGに同席 👉 「なぜこの仕様か」が見えるようになる
AI活用フローを意識する
AIに何を任せ、何を人が判断するか 👉 チームで再現可能な使い方を考える
=====================
卒制issue
予定していたissueは終わらせられず。
ただ、最近アプリ開発の中で、フォームオブジェクト / サービスオブジェクトといったデザインパターンを使用することがあり、これまで点でよくわかっていなかったものが、かなり短いですが線としてつながってきた感覚がありました :sob:
また明日がんばります :muscle:
◆1日1技術質問の壁打ちは、面接対策シートに記載されている分がひと通り終わったので一旦終了します。
ruby復習が最近できていないので、次はpaizaでrubyの問題集を毎日コツコツやっていこうかな :thinking_face:
🙂
⛅
🌰
Elu
2026/01/06
Today I Learned
Rails基礎17の掲示板のページネーションを完了し、18に着手した。
実装時にはファイルがごっちゃになり、エラーが多く発生したため、再度整理する必要を痛感した。
今回の経験を通じて、アーカイブと命名規則の統一、リファクタリングの優先順位付けの大切さを学べた。
今後はファイル構成を事前に設計してから実装に入るようにし、エラーハンドリングとテストの充実を図りたい。
引き続き、ページネーション周りの動作確認と、18の実装内容の理解を深めていく意欲を持つ。
実装時にはファイルがごっちゃになり、エラーが多く発生したため、再度整理する必要を痛感した。
今回の経験を通じて、アーカイブと命名規則の統一、リファクタリングの優先順位付けの大切さを学べた。
今後はファイル構成を事前に設計してから実装に入るようにし、エラーハンドリングとテストの充実を図りたい。
引き続き、ページネーション周りの動作確認と、18の実装内容の理解を深めていく意欲を持つ。
😐
⛅
🌱
toma
2026/01/06
今日のメモ
「掲示板作成機能の実装」と「フォーム入力時エラー情報を個別表示」2コマ完了。「掲示板の画像アップロード機能」着手。
Gemfileにgem 'carrierwave', '2.2.2'を記載してインストールを行うところでchromeとdbコンテナは正常に起動しているけどwebコンテナだけが表示されていない(起動に失敗している可能性が高い)という事態発生。
1docker compose up -dは実行されたものの、docker compose psでwebコンテナが表示されていない
2chromeとdbのみが起動している状態
3orphan containers(孤立したコンテナ)の警告が出た
原因はorphan containers(孤立したコンテナ)が数個あったこと?
docker compose down --remove-orphansコマンドでクリーンにしたらエラー消えて、無事にhttp://localhost:3000アクセスできた。
疑問は孤立した「コンテナとは?」どこかのタイミングで定期的にクリーンにしなくちゃいけないの?明日調べます。
Gemfileにgem 'carrierwave', '2.2.2'を記載してインストールを行うところでchromeとdbコンテナは正常に起動しているけどwebコンテナだけが表示されていない(起動に失敗している可能性が高い)という事態発生。
1docker compose up -dは実行されたものの、docker compose psでwebコンテナが表示されていない
2chromeとdbのみが起動している状態
3orphan containers(孤立したコンテナ)の警告が出た
原因はorphan containers(孤立したコンテナ)が数個あったこと?
docker compose down --remove-orphansコマンドでクリーンにしたらエラー消えて、無事にhttp://localhost:3000アクセスできた。
疑問は孤立した「コンテナとは?」どこかのタイミングで定期的にクリーンにしなくちゃいけないの?明日調べます。
🙂
⛅
🌱
のりぴー
2026/01/06
Today I Learned
今日は午前中に健康診断と明日のイベントの打ち合わせを済ませ、午後はカリキュラムの学習に取り組みました。
埼玉でも地震が一度あり、こうした揺れで集中力が途切れてしまう場面がありました。
落ち着かせながら、再開して学習を進めるよう心がけました。
埼玉でも地震が一度あり、こうした揺れで集中力が途切れてしまう場面がありました。
落ち着かせながら、再開して学習を進めるよう心がけました。
🙂
☁
🌰
ヤドン
2026/01/06
今日のメモ
勉強時間:10時間
今日はのりぴーさんに、ちょっと早いRUNTEQ大学付属病院お悩み相談をしてもらった笑
一段視野が広がる話も素晴らしかったし、のりぴーさんが言ってたことを、ひさじゅ校長がその日の生配信で同じことを言っていて驚いた
RUNTEQ生で悩みがない人なんかいないだろうし、ひょっとすると下記のイベントはチャンスなのかも
RUNTEQ大学付属病院 総合診療編
https://school.runteq.jp/v2/runteq_events/1728
# 📅 開発日誌 (2026/01/05) - DB設計の最適化とN+1問題へのアプローチ
## 📝 概要
本日は、コードレビューで指摘を受けたデータベース設計の最適化と、アプリケーション全体のパフォーマンス改善に取り組みました。
単に機能を追加するだけでなく、「将来の拡張性」や「セキュリティ」、「運用時の負荷」を考慮したリファクタリングを実施。また、静的解析ツール(Brakeman)の警告にも即座に対応し、堅牢なアプリケーション基盤を構築しました。
### 📸 スクリーンショット
[](https://gyazo.com/64860b5543da663f10485e3604e4e2c0)
## 🚀 技術的な取り組みと成果
### 1. データベース設計の堅牢化 (Schema Refinement)
将来的な仕様変更や外部連携のリスクを考慮し、[users]テーブルのカラム定義を見直しました。
- **Google認証用画像URLの型変更**:
- `string` (255文字) から `text` 型へ変更し、将来的にURLが長大化した場合の切り捨てリスクを排除。
- アプリケーション層 ([User]モデル) で最大長制限とHTTPS形式のバリデーションを追加し、データの整合性を担保。
- **ユーザー名の正規化**:
- ストレージ効率とUXを考慮し、上限を50文字に設定 (`limit: 50`)。
- 本番データの状況を確認した上で安全にマイグレーションを実行。
### 2. パフォーマンス・チューニング (Fixing N+1 Queries)
管理画面やタイムラインでの表示速度低下を防ぐため、Active Recordの発行クエリを最適化しました。
- **ActiveStorageのアバター画像のEager Loading**:
- [User]に紐づく [uploaded_avatar]表示時に発生していたN+1問題を特定。
- `includes(user: { uploaded_avatar_attachment: :blob })` を明示的に呼び出すようコントローラーとスコープ (`Post.with_associations`) を修正。
- これにより、リスト表示時のDBアクセス回数を大幅に削減。
### 3. セキュリティ強化 (Security Hardening)
セキュリティスキャンツール **Brakeman** のレポートに基づき、潜在的な脆弱性を修正しました。
- **正規表現のアンカー修正**:
- URLバリデーションにおいて、行頭 `^` / 行末 `$` ではなく、文字列の先頭 `[不適切な内容が検出されました]` / 末尾 `[不適切な内容が検出されました]` を使用するように修正。
- 改行コードを含む悪意のある入力(バリデーションバイパス攻撃)を未然に防ぐ実装へ変更。
### 4. 品質保証とドキュメント整備
- **RSpec / RuboCop**: 修正に伴うテストの修正(WebMockのHTTPS対応など)を行い、全テスト(321件)のPassを確認。
- **Pull Request改善**: レビューワーとの共通認識を深めるため、リスクや影響範囲を明記したPRテンプレートを整備。
## 💡 学んだこと・工夫した点
- **「動けばいい」からの脱却**:
これまでは機能実装を優先していましたが、今回は「データ型ひとつが将来の運用にどう影響するか」を深く考えました。特に外部API(Google)の仕様変更リスクを考慮して `text` 型を選択した点は、設計判断として良い経験になりました。
- **セキュリティは細部に宿る**:
正規表現の `^/$` と `[不適切な内容が検出されました]/[不適切な内容が検出されました]` の違いは些細に見えますが、セキュリティホールになり得ることを再認識しました。自動化ツール(Brakeman)の指摘を単に修正するだけでなく、その「理由(Why)」を理解してコードに落とし込む姿勢を大切にしました。
- **チーム開発を意識したコミュニケーション**:
PRにおいて「変更しました」だけでなく、「なぜ変更したのか」「既存データへのリスク確認結果(0件でした)」といった**エビデンスベース**の報告を行うことで、レビューワーの負担を減らし、信頼獲得につながるよう心がけました。
今日はのりぴーさんに、ちょっと早いRUNTEQ大学付属病院お悩み相談をしてもらった笑
一段視野が広がる話も素晴らしかったし、のりぴーさんが言ってたことを、ひさじゅ校長がその日の生配信で同じことを言っていて驚いた
RUNTEQ生で悩みがない人なんかいないだろうし、ひょっとすると下記のイベントはチャンスなのかも
RUNTEQ大学付属病院 総合診療編
https://school.runteq.jp/v2/runteq_events/1728
# 📅 開発日誌 (2026/01/05) - DB設計の最適化とN+1問題へのアプローチ
## 📝 概要
本日は、コードレビューで指摘を受けたデータベース設計の最適化と、アプリケーション全体のパフォーマンス改善に取り組みました。
単に機能を追加するだけでなく、「将来の拡張性」や「セキュリティ」、「運用時の負荷」を考慮したリファクタリングを実施。また、静的解析ツール(Brakeman)の警告にも即座に対応し、堅牢なアプリケーション基盤を構築しました。
### 📸 スクリーンショット
[](https://gyazo.com/64860b5543da663f10485e3604e4e2c0)
## 🚀 技術的な取り組みと成果
### 1. データベース設計の堅牢化 (Schema Refinement)
将来的な仕様変更や外部連携のリスクを考慮し、[users]テーブルのカラム定義を見直しました。
- **Google認証用画像URLの型変更**:
- `string` (255文字) から `text` 型へ変更し、将来的にURLが長大化した場合の切り捨てリスクを排除。
- アプリケーション層 ([User]モデル) で最大長制限とHTTPS形式のバリデーションを追加し、データの整合性を担保。
- **ユーザー名の正規化**:
- ストレージ効率とUXを考慮し、上限を50文字に設定 (`limit: 50`)。
- 本番データの状況を確認した上で安全にマイグレーションを実行。
### 2. パフォーマンス・チューニング (Fixing N+1 Queries)
管理画面やタイムラインでの表示速度低下を防ぐため、Active Recordの発行クエリを最適化しました。
- **ActiveStorageのアバター画像のEager Loading**:
- [User]に紐づく [uploaded_avatar]表示時に発生していたN+1問題を特定。
- `includes(user: { uploaded_avatar_attachment: :blob })` を明示的に呼び出すようコントローラーとスコープ (`Post.with_associations`) を修正。
- これにより、リスト表示時のDBアクセス回数を大幅に削減。
### 3. セキュリティ強化 (Security Hardening)
セキュリティスキャンツール **Brakeman** のレポートに基づき、潜在的な脆弱性を修正しました。
- **正規表現のアンカー修正**:
- URLバリデーションにおいて、行頭 `^` / 行末 `$` ではなく、文字列の先頭 `[不適切な内容が検出されました]` / 末尾 `[不適切な内容が検出されました]` を使用するように修正。
- 改行コードを含む悪意のある入力(バリデーションバイパス攻撃)を未然に防ぐ実装へ変更。
### 4. 品質保証とドキュメント整備
- **RSpec / RuboCop**: 修正に伴うテストの修正(WebMockのHTTPS対応など)を行い、全テスト(321件)のPassを確認。
- **Pull Request改善**: レビューワーとの共通認識を深めるため、リスクや影響範囲を明記したPRテンプレートを整備。
## 💡 学んだこと・工夫した点
- **「動けばいい」からの脱却**:
これまでは機能実装を優先していましたが、今回は「データ型ひとつが将来の運用にどう影響するか」を深く考えました。特に外部API(Google)の仕様変更リスクを考慮して `text` 型を選択した点は、設計判断として良い経験になりました。
- **セキュリティは細部に宿る**:
正規表現の `^/$` と `[不適切な内容が検出されました]/[不適切な内容が検出されました]` の違いは些細に見えますが、セキュリティホールになり得ることを再認識しました。自動化ツール(Brakeman)の指摘を単に修正するだけでなく、その「理由(Why)」を理解してコードに落とし込む姿勢を大切にしました。
- **チーム開発を意識したコミュニケーション**:
PRにおいて「変更しました」だけでなく、「なぜ変更したのか」「既存データへのリスク確認結果(0件でした)」といった**エビデンスベース**の報告を行うことで、レビューワーの負担を減らし、信頼獲得につながるよう心がけました。
😁
🌈
🌳
フルちゃん
2026/01/06
今日のメモ
READMEの作成が途中です!文章難しい!
ruby3.3.6でRails8からRails7にすることを同時並行でやってました!
原因は、rails new でバージョンを指定していないことにあったようです!
らんてくんに聞いてそのやり方でうまくいくことが確認できました (gitと連携していない段階で行いました):
```
# 1. コンテナとボリュームを削除
docker compose down -v
# 2. Dockerイメージも削除(必要に応じて)
docker compose down --rmi all
# 3. rails newで生成されたファイルを削除
# Dockerfile、docker-compose.yml、.env などは残す
rm -rf app/ bin/ config/ db/ lib/ log/ public/ storage/ test/ tmp/ vendor/ Gemfile Gemfile.lock
# 4. 再度ビルドから開始
docker compose build
# 5. Rails 7系をインストール (今回は7.2.3)
docker compose run --rm web gem install rails -v '7.2.3'
# 6. rails newを実行
docker compose run --rm web rails _7.2.3_ new . -d postgresql -j esbuild --css=tailwind --force
# 7. 依存関係をインストール
docker compose run --rm web bundle install
```
- rails バージョン番号 newでバージョン指定
- --force で既存ファイルに上書きされる
ただ、コンテナ名が同じで途中変にいじった影響か、もう一個作成していたrails8が動かなくなったので (webコンテナを起動すると自動停止してしまう)
その原因を突き止めたい!
ruby3.3.6でRails8からRails7にすることを同時並行でやってました!
原因は、rails new でバージョンを指定していないことにあったようです!
らんてくんに聞いてそのやり方でうまくいくことが確認できました (gitと連携していない段階で行いました):
```
# 1. コンテナとボリュームを削除
docker compose down -v
# 2. Dockerイメージも削除(必要に応じて)
docker compose down --rmi all
# 3. rails newで生成されたファイルを削除
# Dockerfile、docker-compose.yml、.env などは残す
rm -rf app/ bin/ config/ db/ lib/ log/ public/ storage/ test/ tmp/ vendor/ Gemfile Gemfile.lock
# 4. 再度ビルドから開始
docker compose build
# 5. Rails 7系をインストール (今回は7.2.3)
docker compose run --rm web gem install rails -v '7.2.3'
# 6. rails newを実行
docker compose run --rm web rails _7.2.3_ new . -d postgresql -j esbuild --css=tailwind --force
# 7. 依存関係をインストール
docker compose run --rm web bundle install
```
- rails バージョン番号 newでバージョン指定
- --force で既存ファイルに上書きされる
ただ、コンテナ名が同じで途中変にいじった影響か、もう一個作成していたrails8が動かなくなったので (webコンテナを起動すると自動停止してしまう)
その原因を突き止めたい!
😐
☁
🌰
あやこ
2026/01/05
Today I Learned
本日の学習日記として、残業が長引き日付が過ぎるまで作業を続け、カリキュラムと学習報告会に参加できなかったことを反省します。
年度末の忙しさが影響し、卒業できるかどうかに不安を感じていますが、その状況下でも自分の学習計画を見直し、隙間時間を活用できる方法を模索したいと思います。
今後は、業務と学習のバランスを取るための具体的なスケジュール調整や、学習報告会に備えるための短時間で効果的な復習法を取り入れ、安定して成果を積み重ねられるよう努めます。
年度末の忙しさが影響し、卒業できるかどうかに不安を感じていますが、その状況下でも自分の学習計画を見直し、隙間時間を活用できる方法を模索したいと思います。
今後は、業務と学習のバランスを取るための具体的なスケジュール調整や、学習報告会に備えるための短時間で効果的な復習法を取り入れ、安定して成果を積み重ねられるよう努めます。
😐
⛅
💤
toma
2026/01/05
今日のメモ
・「rollbackが必要になるケース」
rails db:migrate実行前 → ファイルを直接編集してOK
rails db:migrate実行後 → rollbackしてから修正が必要
・前回は問題なかったファイルが、今回突然Lintエラーになるという不思議なことが起きたので、らんてくんに状況を伝えて聞いてみた。
「**今回のケースで考えられること・・・
前回のカリキュラム(06_decorator)と今回のカリキュラム(07_board_index)の間で
Rubocopの設定が更新された
masterブランチに新しいルールが追加された
依存関係のアップデートでRubocopのバージョンが上がった
いずれかの理由で、前回は問題なかったファイルが今回チェックに引っかかった可能性が高いです。」**
Rubocopの設定やバージョンが更新された可能性が高いのかな?いや、依存関係のアップデートでRubocopのバージョンが上がったからかな?結局、原因を追跡するやり方がわからず断念。気になるけどこれに時間かけるのなんか違うと思うので諦めよう。Lintエラーの修正・対応方法はAIなしで対応できるようになってきた。私成長したかも😳🥺
rails db:migrate実行前 → ファイルを直接編集してOK
rails db:migrate実行後 → rollbackしてから修正が必要
・前回は問題なかったファイルが、今回突然Lintエラーになるという不思議なことが起きたので、らんてくんに状況を伝えて聞いてみた。
「**今回のケースで考えられること・・・
前回のカリキュラム(06_decorator)と今回のカリキュラム(07_board_index)の間で
Rubocopの設定が更新された
masterブランチに新しいルールが追加された
依存関係のアップデートでRubocopのバージョンが上がった
いずれかの理由で、前回は問題なかったファイルが今回チェックに引っかかった可能性が高いです。」**
Rubocopの設定やバージョンが更新された可能性が高いのかな?いや、依存関係のアップデートでRubocopのバージョンが上がったからかな?結局、原因を追跡するやり方がわからず断念。気になるけどこれに時間かけるのなんか違うと思うので諦めよう。Lintエラーの修正・対応方法はAIなしで対応できるようになってきた。私成長したかも😳🥺
🙂
⛅
🌱
Rick
2026/01/05
今日のメモ
ブランチがおかしなことになってたので、切り直してなんとかLGTM😭
gitの管理、むずかしい
明日までに基礎編のデバッグの課題終わらせれば目安達成!
お仕事も忙しくて疲れた、頑張ったと思います。
ねむねむ
gitの管理、むずかしい
明日までに基礎編のデバッグの課題終わらせれば目安達成!
お仕事も忙しくて疲れた、頑張ったと思います。
ねむねむ
😄
🌞
🌳