katsu-coach1215

Django

【Django】Djangoでよく出るエラーと解決法まとめ

こんにちは、かつコーチです。Djangoを学び始めると、赤い画面いっぱいに英語のエラーメッセージが表示されて、何をどう直せばいいのか分からなくなることがよくあります。筆者自身、最初の1ヶ月は「エラー画面が出るたびにコピペで検索する」を繰り返...
Django

【Django】django-environと.envで環境変数・秘密情報を管理する

こんにちは、かつコーチです。Djangoでアプリを作っていると、settings.pyにSECRET_KEYやデータベースのパスワードを直接書いてしまいがちです。ですがこのままGitHubにpushしてしまうと、秘密情報が世界中に公開されて...
Laravel

【Laravel】Laravel×Vue/Inertiaで簡単なTODOアプリを作ってみる

こんにちは、かつコーチです。これまでService・Repository・Form Request・ディレクトリ構成と、Laravelの設計面を中心に見てきました。ここからは実践編として、フロントエンドにVueを使い、Inertia.jsで...
Laravel

【Laravel】Laravelのディレクトリ構成をカスタマイズする考え方

こんにちは、かつコーチです。これまでService・Repositoryパターン、Form Requestと、責務ごとにクラスを分ける方法を紹介してきました。クラスの数が増えてくると、次に気になるのが「これらをどこに置くか」というディレクト...
Laravel

【Laravel】Form Requestを活用してバリデーションを整理する

こんにちは、かつコーチです。前回はService・Repositoryパターンで、ControllerからDB操作や業務ロジックを追い出す方法を紹介しました。今回は、Controllerに残りがちなもう一つの塊「バリデーション」を整理する、...
Laravel

【Laravel】Service・Repositoryパターンを導入するメリットと実装例

こんにちは、かつコーチです。前回は「太らせないControllerの書き方」というテーマで、Controllerの責務を最小限に絞る考え方を扱いました。では、Controllerから追い出したロジックはどこに行くべきなのでしょうか。今回はそ...
Laravel

【Laravel】MVCを実践する:太らせないControllerの書き方

こんにちは、かつコーチです。前回はパフォーマンスチューニングの基本を解説しました。今回からは設計・アーキテクチャ編に入り、最初のテーマとして「Fat Controller(太ったコントローラ)」問題を扱います。Laravelは書きやすさゆえ...
Laravel

【Laravel】Laravelのパフォーマンスチューニング入門

こんにちは、かつコーチです。前回は外部APIとの連携方法を解説しました。今回は、実装したアプリケーションが「遅い」と感じ始めたときに見直すべき、Laravelのパフォーマンスチューニングの基本を扱います。やみくもにキャッシュを増やすのではな...
Laravel

【Laravel】外部APIとの連携方法(Http::get/postの使い方)

こんにちは、かつコーチです。前回はAPI Resourceで自社のAPIレスポンスを整形する方法を解説しました。今回はその逆で、天気情報や決済サービス、外部の認証基盤など、他社が提供するAPIをLaravelから呼び出す方法を扱います。La...
Laravel

【Laravel】LaravelでAPIを作る基本(API Resource)

こんにちは、かつコーチです。前回はLivewireの基本機能を解説しました。今回は少し話題を変えて、フロントエンドがVueやReact、あるいはスマホアプリになったときに欠かせない「API」の作り方を扱います。Eloquentモデルをそのま...
Laravel

【Laravel】Vue・Inertia・Laravelでの画像アップロード実装

こんにちは、かつコーチです。前回はBladeベースでのファイルアップロードの実装パターンを解説しました。今回はもう一歩進んで、Vue・Inertiaを使ったSPA(Single Page Application)構成での画像アップロードを扱...
JavaScript

【TypeScript】JavaScriptプロジェクトをTypeScriptに移行するコツ

こんにちは、かつコーチです。前回は、外部ライブラリの型定義(@types)の探し方・使い方について解説しました。そして今回が、TypeScript基礎編の最終回です。テーマは「動いているJavaScriptプロジェクトを、どうやってType...
JavaScript

【TypeScript】外部ライブラリの型定義(@types)の探し方・使い方

こんにちは、かつコーチです。前回は、「とりあえずany」から卒業するための考え方について解説しました。TypeScriptで開発をしていると、自分のコードではなく外部のライブラリをimportしただけで型エラーが出て困る、という場面によく出...
JavaScript

【TypeScript】「とりあえずany」から卒業するための考え方

こんにちは、かつコーチです。前回は、strictモードとtsconfig.jsonの主要オプションについて解説しました。strictモードを有効にしても、実は簡単に型チェックをすり抜ける方法があります。それが今回のテーマ、any型です。「型...
JavaScript

【TypeScript】strictモードとは?tsconfig.jsonの主要オプション解説

こんにちは、かつコーチです。前回は、よくあるTypeScriptエラーの読み方について解説しました。今回は少し視点を変えて、そもそもTypeScriptが「どこまで厳しくエラーを検知するか」を決めているtsconfig.jsonのstric...
JavaScript

【TypeScript】よくあるTypeScriptエラーの読み方

こんにちは、かつコーチです。前回は、非nullアサーション(!)を使うべき場面・避けるべき場面について解説しました。型注釈やジェネリクスを覚えてきても、実際にコードを書いていると必ずぶつかるのが「赤い波線」と「見慣れない英語のエラーメッセー...
Expressjs

【Express】ExpressアプリをRenderにデプロイする方法

こんにちは、かつコーチです。ローカル環境でExpressアプリを作れるようになったら、次は誰でもアクセスできるようにインターネット上に公開してみましょう。この記事では、無料枠から始められるホスティングサービスRenderを使って、Expre...
Expressjs

【Express】エラーハンドリングミドルウェアで一元的にエラーを処理する(よくあるエラーの実例つき)

こんにちは、かつコーチです。Expressで開発をしていると、必ずと言っていいほどエラーに遭遇します。私自身も学習中に何度もサーバーをクラッシュさせたり、原因不明のエラーに数時間悩まされたりしてきました。この記事では、そんな実体験も交えなが...
Expressjs

【Express】シンプルなREST APIを作る(CRUD実装)

こんにちは、かつコーチです。ルーティングやミドルウェアを学んだら、次はいよいよ実践です。この記事では、データベースを使わずに、配列(インメモリデータ)を使ったシンプルなREST APIを作りながら、CRUDの基本を身につけます。CRUDとは...
Expressjs

【Express】ルーターを分割して整理する(express.Router()の使い方)

こんにちは、かつコーチです。Expressでアプリを作り始めると、app.js(またはindex.js)にapp.get()やapp.post()をどんどん書き足していきがちです。最初は数個だったルートも、機能が増えるにつれて数十行、数百行...