Harumaki Blog

2026/4/18 1:10:15

開発始動!地獄のlaravelマイグレーション編

今日はようやくテーブル設計がひと段落し、開発に着手できた。一時はどうなることかと思ったが、とりあえず週内に開発開始するという目標はクリアできたので、ペースは悪くないと思う。

一度開発が始まってしまえば、あとは家に持ち帰ってずっとコードを書いていればなんとかなると思う。早速サービス残業する気満々だが、正直レビューがボトルネックになる気がしているので、なんらかの工夫を考える必要がある。一人で土日とか深夜にコードを書いていたら、プロジェクトを私物化する化け物なので、バランスをとりつつ、同期2人のケツを叩いてやっていかねば。

メンバーは3人で、役割分担としては、2人がデザインで、俺がテーブル設計のレビューをひたすら打ち返しながら改善していく感じ。正直、レビューの内容を俺一人で受け止めて打ち返すのは精神的にも脳みそも結構疲れる。メンターの方々も色々レビューしてくれるのはありがたいんだけど、メンター全員のレビューをまともに反映していたらテーブル数がやたら多くなるし、いざコードを書き始めた時にはJOIN地獄に苦しめられるのは間違いないし、何よりいつまで経っても決まらないから、適当なところで「これで行きます」とGOサインを出さないといけない。そうしないと、同期2人もストレスが溜まってくるだろうし。中間管理職の疑似体験かも?

まぁレビューの内容自体はめちゃくちゃ勉強になっている。テーブル設計期間中に受けた指摘の例は以下のようなもの

  • 命名が悪い(hoge_resultsは抽象的すぎる、resultsの具体的な中身が知りたい)

  • 状態を別テーブルに切り出すこと。例えば、retired_atのようなカラムを持つ代わりに、retired_usersのようなテーブルを別で作るとか?

  • どちらかというと、余分なテーブルがあるとの指摘を受けた

  • 外部サービス連携で外部サービスのデータを取得してアプリケーションがわで保持する際、テーブルはアプリケーション内の純粋なテーブルからは切り出しておいた方が良い。これはアプリケーションの外部依存を弱める働きがある

  • VARCHAR(255)の255の理由は、アルファベットの場合、1文字=1バイトなので、可変長の文字列全体は高々255バイト以下。そして、VARCHARでは文字列の長さという情報を持つために、文字列全体のバイト数を表現するプレフィックスを持つのだが、このプレフィックスが255までだと、1バイトで11111111として表現できるというメリットがあるみたい。で、色々改めて調べると、日本語は1文字あたり3〜4バイトなので、普通に255にしようが、文字列全体のバイト数は全然255を超えうるのであまり意味がない気もする。一応、慣習的に255が使用されているくらいの理解で良いと思う。

他にも色々とあるんだけど、思い出すのも疲れたからここら辺にしておく。

今回の研修に関しては、実際にアプリケーションの画面レベルまで機能を具体で考えている俺らと、テーマを知っているだけのメンターとでかなり認識のずれがあったから、こちら側が手を抜いた説明をしても、当然全く伝わらない。このように、必然的に仕方なく両者の解像度が異なるようなケースは往々にしてあると思っており、こういったケースでは伝えることを粘り強くしていかなければならない。

進め方についても色々と悩んでいるんだけど、結局は技術力があれば俺の今の色々な辛みは一定解消される気もする。結局のところ、技術力がないので、あらゆる判断がトレードオフを突きつけるものなのか、それとも単に俺の知識不足が招いたミスなのかがわからない。技術力、技術力は全てを解決する。。。!!

家でもlaravelで個人開発のアプリケーションを作ろうと思い、現在着手中。とりあえず昨日から詰まっていたデータベース周りのエラーを解決できた。環境変数周りをごちゃごちゃいじって解決した感じ。

直接の原因としては.env内のSESSION_DRIVERがdatabaseになっていたことが原因らしい。いろんな記事を参考にしたところ、SESSION_DRIVERのデフォ値はfileになっているはずなんだけどね。。。なんでだろ。

DBの接続周りでエラーが出た時は、とりあえず、.envのDB関連の環境変数周りと./config/database.phpあたりを読めば良さそうに思われる。

ちなみに、このsession driverというやつは、sessionをどこに保存するか的なことを司っているらしい。(ちなみにここでいうSessionはログインUser情報や、CSRFトークンなどのことらしい)。なんかこういった頼んでいない子がいつの間にか入っていて辛いのはどうにかならないかしら。

それでいうと、マイグレーションファイル周りはかなり辛くて、Zennで調べた内容とかが本当に役に立たない記事ばっかりだった。というのも、おもに詰まったのが別テーブルの主キーに対する外部キー制約をマイグレーションファイルの記述に使用するという箇所なのだが、どの記事も暗黙の了解として、テーブルの主キーは”id”という文字列を使用していたため、それによる差分によってうまくいかなかった。(laravelでは、主キーが”id”と命名されているケースに合わせて引数が省略されている→constrained()などがあり、こいつらの謎仕様のせいで主キーを’table名_id’と命名する会会員の我々が不利益を被っている)

何が言いたいかというと、AIコーディングの時代はAIが自動補完をよしなにしてくれるので、複数の書き方ができたり、タイピングの負担を減らせる必要はなくて、なんらかの行いたい場合に、それが一通りの方法によって達成されることのほうが大事なのでは?と思っている。

2385文字)

2025/12/17 19:48:50

同じtimestampのはずなのに表示が違う時(Next.js)

ブログサイトをNext.jsで開発している最中だが,以下の問題が発生している.前提として,DBから取得した同じ日時データを編集ページ,閲覧ページで表示...

2025/12/12 0:24:16

初投稿

個人ブログを作成してみた.はてなブログとかCMSを使っても良かったんだけど,ブログ自体が,自分で使う機会が多そうなのと.色々機能追加の余地があって個人...

2026/1/10 12:14:15

米社会と小麦社会における性格の違い

https://youtu.be/aGvqMW4aAUc?si=gOXWjg2zfxiw-77b上の動画は,日本人が英語が不得意な理由を,農業の違いか...

2026/1/21 21:30:27

モチベが湧かないことを言い訳にしない

明日までに教授に一次提出,来週中に最終稿提出だが,全く書き進まない.本当に気が進まない.頭の中でモチベが湧かない言い訳をしているけど,それは言い訳には...

2025/12/12 17:39:17

うまくいかない

修論の締め切りまで残すところあと1ヶ月と少し,来週には学会発表が控えているし,やることは無限にある一番やばいのが内定者インターンのタスクで,かれこれ1...

2025/12/17 18:11:17

学会発表を控えて

明後日に学会発表を控え,一通りのタスクが一旦完了したので,直近の状況を記録する.ここ1ヶ月は,ただでさえ追い込まれた研究に加えて,バイトがうまくいかな...

2026/1/26 10:27:33

PC作業中の姿勢改善アプリ「SitApp」を試してみた

https://sitapp.app/PC作業中の首の凝りがひどいので,SitAppという姿勢改善アプリを入れてみた.SitAppはバックグラウンドで...

2026/2/4 0:55:10

一貫性のある人生の目標を立てたい

生成AIの顕著な進歩に伴って,ソフトウェアエンジニアの仕事の将来性はかなり危ぶまれるものとなっている.エンジニアという仕事の未来については,いろいろな...

2026/4/4 22:29:48

【小ネタ】homebrewのFormulaeとCaskとは?

homebrew経由でインストールしたパッケージを一覧表示しようとすると、下のように、FomulaeとCasksという二つのカテゴリーに分かれてパッケ...

2026/4/13 1:43:42

初めての技術書展

技術書展に初めて行ってきた。池袋のサンシャインシティが会場だった。(ちなみに、先月あった女性店員が刺殺された事件の現場も、サインシャインシティ内のポケ...

2026/4/19 2:07:32

aerospace気持ち良すぎだろ

今日は昼に起きてから、洗濯をしたりちょっと買い物をしたりして、あとはひたすらPCを触っていた。さすがに4月も折り返しを過ぎて、もうそろそろ会社以外の時...

2025/12/23 14:22:52

富山旅行

先日,学会で富山を訪れた.19日の昼過ぎに新千歳空港を出発し,羽田で乗り継いで富山に着いたのは18:00.さらにそこから電車とバスとを2回の乗り継いで...

2026/1/15 16:24:42

マグレブとは

マグレブとは,アフリカの北西部に位置するモロッコ,アルジェリア,チュニジアの3カ国(+リビア)を指す.マグレブ(Maghreb)とは,アラビア語で「日...

2026/4/3 1:34:51

目黒線は5度止まる

今日の出勤では電車が5回も緊急停止して「ご迷惑をおかけされた」俺の家の最寄りは洗足駅で、東急目黒線で東京の方向に登る感じ。1日に5回は流石に多すぎると...

2026/4/15 1:10:47

先入観の力

今日の朝は月に一度の社内表彰があった。年度はじめの第一回ということで、新入社員の自己紹介や役員の方々のスピーチ、社長のお話などがあり、かれこれ1時間、...

2026/3/15 15:21:55

3月の近況

しばらくこっちのブログで日記を書いてなかったので、近況を記しておく。東京に来て今日で昨日で丁度2週間。ここ1ヶ月は結構休みなく色々なことに動き回ってい...

2026/1/6 22:38:45

不動産業界の産業構造とDXについて

上京まで3ヶ月なので,物件探しに取り掛かっている.物件探しの上で一つめんどくさいのが物件探しで,インターネットがあるにも関わらず,更新されていないSU...

2026/4/10 2:41:39

パターンの箱を増やす

今日から技術研修の本番が始まった。今日から約1ヶ月の期間で、社内で使用されるツールを開発することがノルマとして与えられている。生成AIの使用は禁止とい...

2026/4/8 1:32:34

向島の街並みについてなど

この1週間で通勤にかなり慣れた。朝9時に家を出ると、洗足駅からちょうど東急目黒線の南北線直通の電車に乗れるみたいだ。自宅から大岡山駅のアップダウンがこ...

2026/4/4 19:44:46

社会人として初の休日

昨日は仕事が終わった後23:00から彼女と地獄の3時間電話をして、その後もすぐに寝ずにダラダラとプライベート用のMacのターミナル設定をああでもないこ...

2026/1/22 3:10:19

宇宙全体ではエネルギー保存則が成り立たないらしい

エネルギー保存則は物理学における普遍的な法則である.エネルギー保存則はあらゆる状況で必ず成り立つと思っていたのだが実際にはそうではないらしい.物理学で...

2026/4/8 23:15:53

技術研修開始

入社後1週間の全体研修が終わり、今日から技術研修がスタートした。全体研修は基本的に話を聞くだけだったし、ある程度リラックスして話をきていたのだが、さす...

2026/4/20 0:57:47

Reactをちゃんと理解するぞ

昨日からタイピングのアプリを本格的に開発しており、一旦タイピングゲームをするためのガワの部分としてReactでフロントエンドを作っている。Reactは...

2026/4/11 3:42:17

しんどい

仕事も恋愛もしんどい。介錯してくれ。。。...

2026/4/15 22:45:42

メカニカルキーボードが欲しい

今日で技術研修開始からちょうど5日目。まだテーブル設計について悩んでおり、コードを書き始めることすらできていない。フォームのテーブルに関しては、アプリ...

2026/4/2 1:04:41

今日から社会人

待ちに待った(?)社会人としての1日目が終わった。無事乗り切った。乗り切ったというと大袈裟だが、昨日も夜中まで彼女と電話して寝不足の状態の中で、寝坊せ...

2026/3/31 16:16:53

明日から社会人

2026年3月31日をもって、18年の長きにわたる学生生活が終わる。明日からはようやく社会人になる。これまでは、家族や学校や制度からは何かを与えてもら...

2026/4/6 0:35:02

憂鬱な日曜、爆弾

昨日は途中まで完璧な一日だったが、最後の最後で台無しになった。彼女との電話が長引いたせいで、気づいたら朝の3時を過ぎていた。一番楽しいタイミングで切り...

2026/4/14 1:13:38

高自由度なフォームのテーブル設計について

データベース設計に関する議論が大白熱した1日だった。というのも、現在技術研修で開発しているアプリケーションは、フォームが一つ重要になる。フォームのテー...

2026/4/11 23:17:53

ソフトウェアアーキテクチャの基礎

昨日も長電話のせいで4時に寝て、今日起きたのは13:30。連日の長電話は体に来る。それだけではない。技術研修で社内ツール開発がスタートして2日目だが、...

2026/4/3 22:25:24

東京初一人拉麺〜目黒の藤しろで〜

今日の朝は電車がスムーズに進行してくれたので、始業30分前に到着してしまった。真面目君じゃん。。。〜本日は研修3日目だったが、先日よりも偉い人が講義に...

2026/1/22 22:32:21

光回線と電話回線の違いについて(素材と配線方式)

同期と引越しの話からインターネット回線の話になり,色々疑問が湧いたので調べてみる.通信回線の契約について,回線の種類は2つある.電話回線光回線ケーブル...

2026/2/4 16:11:34

エンジニアとしてのキャリア戦略を考えてみる

社会人Debut(デビュー)する前にエンジニアとしてのキャリア戦略を一旦考えてみる.ここ数週間の間,プライベートや研究が上手くいかなかったりで悩む時間...

2026/4/17 0:00:44

自分の力で進める、決めることが大事

今日も相変わらず、開発には入れず。今日思ったことは、手を動かすのが早いやつが得をするということ。特に0→1を作る場面では、とにかく手が早いことが正義。...

2026/4/6 22:10:05

東京の都市計画

日に日に通勤がスムーズになっていく。実際、今日の通勤は一度も電車が止まらなかったので、家から会社までに要した時間はジャスト40分であった(最短記録)。...