katsu-coach1215

Flask

【Flask】pytestでFlaskアプリの単体テストを書く

こんにちは、かつコーチです。ルーティング・データベース・ログイン機能と実装が進んでくると、「コードを直しても、他の部分が壊れていないか」を毎回手動で確認するのが大変になってきます。この記事では、Pythonの定番テストツールpytestを使...
Flask

【Flask】Flask-Loginでログイン機能を実装する

こんにちは、かつコーチです。これまでの記事でデータベースの基本操作を学びました。今回は、その知識を活かして、Webアプリに欠かせない「ログイン機能」をFlask-Loginという拡張ライブラリで実装します。Flask-Loginとは?セッシ...
Flask

【Flask】Flask-Migrateでマイグレーションを管理する

こんにちは、かつコーチです。前回の記事で、db.create_all()にはテーブル構造の変更を反映できないという弱点を紹介しました。今回は、その弱点を解消するFlask-Migrateを使って、モデルの変更を安全にデータベースへ反映する方...
Flask

【Flask】Flask-SQLAlchemyでモデルを定義しCRUD操作をする

こんにちは、かつコーチです。ここまでの記事でルーティングとテンプレートを扱ってきましたが、実際のアプリではデータを保存・取得する仕組みが欠かせません。この記事では、Flaskでデータベースを扱うための定番ライブラリFlask-SQLAlch...
Flask

【Flask】Jinja2テンプレートでHTMLを動的に生成する

こんにちは、かつコーチです。これまでの記事では、return "文字列"で画面を表示してきましたが、実際のWebアプリでは装飾されたHTMLを表示したいはずです。この記事では、Flaskに標準搭載されているJinja2というテンプレートエン...
Flask

【Flask】@app.routeでルーティングを設定する基本

こんにちは、かつコーチです。前回、最小構成のFlaskアプリを動かしましたが、実際のWebアプリには複数のページやURLが必要です。この記事では、Flaskの心臓部とも言える@app.routeの使い方を、パターン別に整理して解説します。ル...
Flask

【Flask】pip install flaskで最小構成のアプリを動かす

こんにちは、かつコーチです。前回の記事でFlaskがどんなフレームワークか紹介しました。今回は実際に手を動かして、環境構築から最小構成のアプリを動かすところまでを一気に進めます。コピペで動かせる完全なコードを用意したので、ぜひ手元で試してみ...
Flask

【Flask】Flaskとは?軽量なPython Webフレームワークを初心者向けに解説

こんにちは、かつコーチです。「Pythonでウェブアプリを作りたいけど、Flaskって何ができるの?」「Djangoとどう違うの?」と気になっている方向けに、この記事ではFlaskの正体と学ぶメリットを分かりやすく解説します。読み終わる頃に...
Laravel

【Laravel】Seederでテストデータを入れる3つの方法と使い分け方〜 DB::table() と updateOrCreate() の違いを徹底解説〜

こんにちは、かつコーチです。Laravelで開発していると、テストデータや初期データを登録したい場面は多くあります。そんなときに便利なのが「Seeder」です。本記事では、Seederでデータを登録する3つの方法と、それぞれの使いどころをわ...
Java

【Java】Javaのメソッド参照の使い方を4パターンで解説

こんにちは、かつコーチです。s -> s.length()のようなラムダ式をあちこちで見かける一方、String::lengthという書き方に戸惑ったことはありませんか。今回はJavaのメソッド参照(既存のメソッドをそのままラムダ式代わりに...
Java

【Java】Javaの並列Stream(parallelStream)の仕組みと使いどころ

こんにちは、かつコーチです。stream()をparallelStream()に変えるだけで速くなると聞いて安易に使い、かえって遅くなった経験はありませんか。今回はStreamAPIの基礎を理解している前提で、並列Streamの仕組みと「使...
Java

【Java】JavaのCollectors活用術:groupingBy・partitioningByで集計処理を簡潔に書く

こんにちは、かつコーチです。Collectors.toList()やtoMap()は使えるようになったものの、groupingByやpartitioningByとなると急に難しく感じませんか。今回はStream・Collectorsの基本を...
Java

【Java】JavaのStream終端操作(collect・reduce)の使い方

こんにちは、かつコーチです。filterやmapで加工したStreamを、結局どうやって最終結果として取り出せばいいのか迷った経験はありませんか。今回はStream処理の締めくくりとなる終端操作(Streamを消費して最終的な結果を返す操作...
Java

【Java】JavaのStream中間操作(filter・map・sorted)の使い方

こんにちは、かつコーチです。前回はStream APIの全体像を解説しましたが、今回は実務で最もよく使う中間操作(Streamを加工して次の処理に渡す操作)であるfilter・map・sortedを掘り下げます。中間操作とは?中間操作の役割...
Java

【Java】Java Stream APIの使い方を基本から解説

こんにちは、かつコーチです。Listをfor文でループしながらif文で絞り込んで、さらに別のListに詰め替える…という処理を書いて、コードが長くなった経験はありませんか。今回はJava 8で導入されたStream API(コレクションの要...
Java

【Java】Javaの関数型インターフェース(Function・Predicate等)の使い方

こんにちは、かつコーチです。ラムダ式を書けるようになったものの、「どの型に代入すればいいのか分からない」と迷った経験はありませんか。今回はJavaが標準で用意している関数型インターフェース(Function・Predicate・Consum...
Java

【Java】Javaのラムダ式の基本を分かりやすく解説

こんにちは、かつコーチです。匿名クラスで1行のロジックを書くためだけに何行もコードを書いて、冗長だと感じたことはありませんか。今回はJavaのラムダ式(無名の関数をその場で定義できる書き方)の基本と、匿名クラスとの違いを解説します。ラムダ式...
Java

【Java】JavaのOptionalでnullを安全に扱う方法

こんにちは、かつコーチです。「メソッドの戻り値がnullかもしれないから、呼び出し側で毎回nullチェックを書く」というのは、地味に手間がかかる作業です。今回はそんなnullチェックの負担を減らしてくれるOptionalの使い方を解説します...
Java

【Java】Javaのジェネリクス境界(extends・super)を使いこなす

こんにちは、かつコーチです。ジェネリクスの基本を押さえた上で、実務で必ずと言っていいほど遭遇するのが? extends Tと? super Tの使い分けです。今回はこの境界ワイルドカードを、PECS原則を軸に整理していきます。extends...
Java

【Java】Javaのジェネリクスの基本を初心者向けに解説

こんにちは、かつコーチです。List<String>のように山括弧を使う書き方は、Listの解説記事で何度も見てきたと思います。今回はこの山括弧の正体であるジェネリクスを、自分でクラスやメソッドを書く側の視点から解説していきます。ジェネリク...