@lifehacker

スポンサーリンク
C#

C# Tips | ファイル・ディレクトリ操作:ファイル更新日時取得

はじめに なぜ「ファイル更新日時取得」が業務で重要なのか業務システムでは、「前回処理してから更新されたファイルだけを再処理したい」「一定期間更新されていないログを削除したい」「外部システムからのファイ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル作成日時取得

はじめに なぜ「ファイル作成日時取得」が業務で重要なのか業務システムでは、「一番新しいファイルだけ処理したい」「一定期間より古いファイルを削除したい」「いつ受信したファイルなのかをログに残したい」とい...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルサイズ取得

はじめに なぜ「ファイルサイズ取得」が業務で重要なのか業務システムでは、「受信したファイルが想定サイズ以上かチェックする」「空ファイル(サイズ 0)をエラーとして弾く」「バックアップやログの容量を集計...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル名一括変更

はじめに なぜ「ファイル名一括変更」が業務で効くのか業務システムや日々の運用では、「毎日出力されるファイルに連番を振りたい」「人が付けたバラバラな名前を、システムで扱いやすい規則的な名前に揃えたい」「...
Java

Java Tips | 基本ユーティリティ:パス正規化

パス正規化は「同じ場所を同じ文字列で表す」ための技ファイルパスって、同じ場所を指しているのに書き方がバラバラになりがちです。logs/app/../app/current.log と logs/app...
Java

Java Tips | 基本ユーティリティ:再帰削除

再帰削除は「作業領域を丸ごと片付ける」ための技業務システムでは、「ジョブごとに作った作業ディレクトリを最後に丸ごと消したい」「テストで作った一式を一発で片付けたい」といった、“ディレクトリ配下を全部削...
Java

Java Tips | 基本ユーティリティ:ファイル削除

ファイル削除は「後片付けをちゃんとやる」ための技業務システムは、動けば終わりではなく「後片付け」まで含めて仕事です。一時ファイル、古いバックアップ、失敗した処理の中途半端な成果物など、放っておくとディ...
Java

Java Tips | 基本ユーティリティ:ファイルコピー

ファイルコピーは「安全にデータを移動・退避させる」ための技業務システムでは、「インポート用ファイルをバックアップしてから処理したい」「出力結果を別ディレクトリに退避したい」「テンプレートを所定の場所に...
Java

Java Tips | 基本ユーティリティ:一時ファイル作成

一時ファイル作成は「一時的な作業領域を安全に借りる」技業務システムでは、「大きなデータを一度ファイルに落としてから処理したい」「ZIP を展開して中身を検査したい」「外部システムに渡す前に一時的にファ...
Java

Java Tips | 基本ユーティリティ:ディレクトリ作成

ディレクトリ作成は「ログや一時ファイルの置き場を整える」ための技業務システムでは、ログ出力先、インポートファイル置き場、エクスポート結果の出力先、一時ファイルの作業ディレクトリなど、「ディレクトリが存...
Java

Java Tips | 基本ユーティリティ:ファイル存在確認

ファイル存在確認は「前提条件をちゃんと確かめてから動く」ための技業務システムでは、「設定ファイルがある前提で起動する」「インポート用の CSV が届いている前提でバッチを回す」「テンプレートファイルが...
Java

Java Tips | 基本ユーティリティ:CPUコア数取得

CPUコア数取得は「どこまで並列化してよいか」を知るための技マルチスレッドや並列処理を書くとき、「スレッドを何本まで増やしていいのか」はとても重要です。CPU が 2 コアしかないのに 100 スレッ...
Java

Java Tips | 基本ユーティリティ:メモリ使用量取得

メモリ使用量取得は「今どれくらい余裕があるか」を知るための技業務システムが重くなったり、OutOfMemoryError で落ちたりするとき、「その瞬間にどれくらいメモリを使っていたのか」が分かるかど...
Java

Java Tips | 基本ユーティリティ:Javaバージョン判定

Javaバージョン判定は「使っていい機能の境界線を知る」ための技業務システムでは、「このコードは Java 8 でも動かしたい」「Java 11 以上なら新しい API を使いたい」「古いランタイムで...
Java

Java Tips | 基本ユーティリティ:OS判定

OS判定は「環境依存コードを一箇所に閉じ込める」技Java は基本的にマルチプラットフォームですが、実務ではどうしても OS ごとに挙動を変えたい場面が出てきます。例えば「Windows だけパスの区...
Java

Java Tips | 基本ユーティリティ:環境変数取得

環境変数取得は「インフラ側の設定をアプリから読む」技業務システムでは、「本番とステージングで接続先を変えたい」「パスワードや API キーをコードに書きたくない」「コンテナやクラウドの設定をそのまま使...
Java

Java Tips | 基本ユーティリティ:システムプロパティ取得

システムプロパティ取得は「実行環境の設定をコードから読む」技業務システムでは、「本番と検証で挙動を変えたい」「OS や Java のバージョンをログに出したい」「起動オプションで渡した値を読みたい」と...
Java

Java Tips | 基本ユーティリティ:ログフォーマット

ログフォーマットは「あとから読めるログ」を作るための設計ログは「その瞬間に何が起きていたか」を後から再現するための記録です。でも、ただ System.out.println("エラーしました") と出...
Java

Java Tips | 基本ユーティリティ:スタックトレース文字列化

スタックトレース文字列化は「エラーの足跡をテキストとして残す」技例外が起きたとき、Java は「スタックトレース」という“足跡”を持っています。これは「どのメソッドからどのメソッドへ呼ばれて、最終的に...
Java

Java Tips | 基本ユーティリティ:例外ラップ

例外ラップは「生の例外をそのまま外に漏らさない」ための技業務システムを書いていると、標準ライブラリや外部ライブラリから、いろいろな種類の例外が飛んできます。SQLException, IOExcept...
Java

Java Tips | 基本ユーティリティ:タイムアウト制御

タイムアウト制御は「いつまでも待たない」ための安全装置業務システムで一番怖いのは、「固まっているのに気づかない」状態です。外部 API が返ってこない、DB が詰まっている、重い処理が終わらない──こ...
Java

Java Tips | 基本ユーティリティ:再試行処理

再試行処理は「一時的な失敗に負けない仕組み」業務システムでは、外部 API、DB、メッセージキュー、ファイル I/O など、「たまに失敗するけれど、少し待ってもう一度やれば成功する」処理がたくさんあり...
Java

Java Tips | 基本ユーティリティ:スリープユーティリティ

スリープユーティリティは「意図的に待つ」を安全にラップする道具業務システムでも、「少し待ってから再試行したい」「ポーリング間隔を空けたい」「テストで時間経過をシミュレートしたい」といった場面で「スリー...
Java

Java Tips | 基本ユーティリティ:タイムゾーン変換

タイムゾーン変換は「同じ瞬間を別の国の時計で見る」ことタイムゾーン変換は、「ある瞬間」を、日本時間で見たり、UTC で見たり、ニューヨーク時間で見たりする作業です。同じ「瞬間」なのに、国や地域によって...
PHP

PHP Tips | 文字列処理:基本操作 – <br> を改行に戻す

「<br> を改行に戻す」とは何をしているのか前回は「改行を <br> に変換」でした。今回はその逆、つまりHTML の <br> を、テキストの「改行文字(\n など)」に戻すという処理です。例えば...
PHP

PHP Tips | 文字列処理:基本操作 – 改行を <br> に変換

「改行を <br> に変換」とは何をしているのかテキストエリアなどから受け取った文字列には、ユーザーが入力した「改行」が含まれています。でも、そのまま HTML に出力すると、ブラウザは改行文字(\n...
PHP

PHP Tips | 文字列処理:基本操作 – 指定タグのみ許可して HTML サニタイズ

このユーティリティがやりたいことの全体像「指定タグのみ許可して HTML サニタイズ」というのは、ざっくり言うとこういうことです。ユーザー入力などの HTML をそのまま表示すると危ないので、危険なタ...
PHP

PHP Tips | 文字列処理:基本操作 – HTML タグ除去

「HTML タグ除去」とは何かPHP で文字列を扱っていると、<p>, <a>, <div> のような「HTML タグ」が含まれていることがあります。ブラウザで表示する分には問題ありませんが、「純粋な...
PHP

PHP Tips | 文字列処理:基本操作 – 改行コードを CRLF に統一

「改行コードを CRLF に統一」とは何かPHP で複数行の文字列やテキストファイルを扱うとき、「改行」が入りますが、その改行の実体は環境によって違います。代表的な改行コードは次の3種類です。LF :...
PHP

PHP Tips | 文字列処理:基本操作 – 改行コードを LF に統一

「改行コードを LF に統一」とは何かPHP で文字列やファイルを扱うとき、「改行」が入っていることはよくあります。でも、実は「改行」と一口に言っても、環境によって使われる「改行コード」が違います。代...
PHP

PHP Tips | 文字列処理:基本操作 – 連続スペースを1つにまとめる

「連続スペースを1つにまとめる」とは何かPHP で文字列を扱っていると、ユーザー入力や外部データの中に「スペースが連続している」状態がよく紛れ込みます。例えば、次のような文字列です。$text = "...
PHP

PHP Tips | 文字列処理:基本操作 – 前後の全角・半角スペース除去

「前後の全角・半角スペース除去」とは何かPHP で文字列を扱うとき、ユーザー入力や外部データには「余計なスペース」がくっついていることがよくあります。しかも、日本語環境だと「半角スペース」だけでなく「...
PHP

PHP Tips | 文字列処理:基本操作 – 空文字を null に変換

空文字を null に変換するってどういうこと?PHP で文字列を扱うときに出てくる代表的な2つの状態が「空文字 ""」と「null」です。前回は「null を空文字に変換」でしたが、今回は逆方向――...
PHP

PHP Tips | 文字列処理:基本操作 – null を空文字に変換

文字列処理の「null を空文字に変換」とは何かPHP で文字列を扱うとき、「null」と「空文字("")」はよく似て見えますが、まったく別物です。初心者のうちは、この違いが原因でバグが出たり、「なん...
C#

C# Tips | ファイル・ディレクトリ操作:拡張子変更

はじめに なぜ「拡張子変更」が業務で役に立つのか業務システムでは、「処理前は .tmp として保存しておき、処理が成功したら .csv にリネームする」「受信したファイルを .dat から .bak ...
C#

C# Tips | ファイル・ディレクトリ操作:再帰的フォルダ削除

はじめに なぜ「再帰的フォルダ削除」は危険で、だからこそ重要なのか業務システムでは、「一時作業フォルダを丸ごと消す」「古いバックアップフォルダをまとめて削除する」「処理失敗時に作業領域をクリーンアップ...
C#

C# Tips | ファイル・ディレクトリ操作:再帰的フォルダコピー

はじめに なぜ「再帰的フォルダコピー」が業務で重要なのか業務システムでは、「あるフォルダ一式を丸ごとバックアップしたい」「テンプレートフォルダをそっくり複製して新しい案件用フォルダを作りたい」「旧サー...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ削除

はじめに なぜ「ディレクトリ削除」は特に慎重さが必要なのか業務システムでは、古いバックアップフォルダを消す、一時作業用フォルダを片付ける、処理に失敗した作業領域をクリーンアップするなど、「フォルダごと...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ作成

はじめに なぜ「ディレクトリ作成」が業務で重要なのか業務システムでは、ログ出力フォルダ、バックアップフォルダ、インポート用フォルダ、エクスポート用フォルダなど、「フォルダが存在していること」を前提にし...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル削除

はじめに なぜ「ファイル削除」は慎重さが必要なのか業務システムでは、古いログを消す、一時ファイルを片付ける、処理に失敗した中間ファイルを削除するなど、「ファイルを消す」処理が必ず出てきます。ただし、コ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル移動

はじめに なぜ「ファイル移動」が業務で重要なのか業務システムでは、「処理前フォルダから処理済みフォルダへ移動する」「受信フォルダからアーカイブフォルダへ退避する」「一時フォルダから本番フォルダへ本番反...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルコピー

はじめに なぜ「ファイルコピー」が業務で重要なのか業務システムでは、バックアップを取る、別フォルダにエクスポートする、他システム連携用の受け渡しフォルダにコピーする、といった「ファイルを別の場所に複製...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ存在チェック

はじめに なぜ「ディレクトリ存在チェック」が重要なのか業務システムでは、ログ出力フォルダ、バックアップフォルダ、インポート用フォルダ、エクスポート用フォルダなど、「フォルダが存在すること」を前提にした...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル存在チェック

はじめに ファイル「存在チェック」はなぜ大事か業務システムでは、「このファイルがある前提」で処理を書いてしまうと、現場で簡単に事故が起きます。たとえば「毎朝、前日の売上 CSV を読み込むバッチ」が、...
Python

Python | DB・SQL:DB 設計

DB 設計って何?まずはゴールのイメージからDB 設計は、「アプリで扱う情報を、テーブル・カラム・関係に分解して、矛盾なく・拡張しやすく・速く扱える形にする作業」です。言い換えると、「現実の世界(ユー...
Python

Python | DB・SQL:接続プール

接続プールって何?まずはイメージから接続プール(コネクションプール)は、「データベースへの接続を、使い回すための“待機列(プール)”」です。DB への接続は、実はかなり重い処理です。毎回「接続を開く ...
Python

Python | DB・SQL:N+1 問題

N+1 問題って何?まずはざっくりイメージN+1 問題は、「本当は少ない回数のクエリで済むのに、気づかないうちに大量のクエリを投げてしまっている状態」のことです。特に多いのが、1 回目のクエリで「親デ...
Python

Python | DB・SQL:パフォーマンス

「パフォーマンス」って何?まずは感覚からDB・SQL の「パフォーマンス」は、ざっくり言うと「どれくらい速く・無駄なく・安定して動くか」です。同じ結果を出すクエリでも、1 秒で終わる書き方1 分かかる...
Python

Python | DB・SQL:バルク処理

バルク処理って何?まずはイメージからバルク処理(バルク INSERT / バルク UPDATE など)は、「大量のデータをまとめて一気に処理する」やり方のことです。1 行ずつチマチマ INSERT す...
Python

Python | DB・SQL:migration

migration って何?まずはイメージからmigration(マイグレーション)は、「データベースの“形”(テーブルやカラムの構造)を、コードでバージョン管理して、少しずつ進化させていく仕組み」で...
Python

Python | DB・SQL:relationship

relationship って何?まずはイメージからSQLAlchemy の relationship は、「テーブル同士のつながり(リレーション)を、Python のオブジェクト同士のつながりとして...
Python

Python | DB・SQL:join

join って何?まずはイメージからJOIN は、「別々のテーブルに分かれている情報を、くっつけて一つの表として見る」ための仕組みです。現実のアプリでは、ユーザー情報と注文情報、商品情報とカテゴリ情報...
Python

Python | DB・SQL:CRUD

CRUD って何?まずは全体像からCRUD(クラッド)は、データベース操作の基本 4 セットの頭文字です。Create(作る)、Read(読む)、Update(更新する)、Delete(削除する)。ア...
Python

Python | DB・SQL:セッション

セッションって何?まずはざっくりイメージ「セッション」は、データベースとやり取りするときの「ひとまとまりの会話」のようなものです。Python から見ると、あるタイミングで DB との“窓口”を開くそ...
Python

Python | DB・SQL:ORM モデル

ORM モデルって何?まずはイメージから「ORM モデル」は、データベースのテーブルを「Python のクラスとして表現したもの」です。ORM は Object Relational Mapping(...
Python

Python | DB・SQL:SQLAlchemy 基本

SQLAlchemy って何者?ざっくりイメージSQLAlchemy は、「Python からデータベースを触るための超定番ライブラリ」です。一言でいうと、SQL を直接書く代わりに、Python の...
Python

Python | DB・SQL:SQLite

SQLite ってそもそも何者?SQLite(エスキューライト)は、「組み込み型」のリレーショナルデータベースです。PostgreSQL や MySQL みたいに「サーバーを立てて接続するタイプ」では...
Python

Python | DB・SQL:PostgreSQL

PostgreSQL ってそもそも何者?PostgreSQL(ポストグレスキューエル)は、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。「無料で使えるのに、企業の本番システ...
Python

Python | DB・SQL:ACID

概要(ACID は「ちゃんとしたトランザクション」の 4 つの約束)ACID は、データベースのトランザクションが「ちゃんとしている」ことを表す 4 つの性質の頭文字です。Atomicity(原子性)...
Python

Python | DB・SQL:トランザクション

概要(トランザクションは「一連の処理を、成功か失敗かで丸ごと扱う仕組み」)トランザクションは、データベースに対して行う「一連の処理」を、「全部まとめて成功」か「全部なかったことにする(失敗)」かのどち...
Python

Python | DB・SQL:インデックス

概要(インデックスは「データベースの辞書の“索引”」)インデックス(index)は、データベースにとっての「本の索引」です。本の後ろにある五十音順の索引があると、目的の用語のページを一瞬で開けますよね...
Python

Python | DB・SQL:サブクエリ

概要(サブクエリ=「SQL の中にもう一個 SQL を入れる」)サブクエリは、「SQL 文の中に、さらに別の SQL 文(小さな SELECT)を入れるテクニック」です。イメージとしては、一回クエリを...
Python

Python | DB・SQL:JOIN

概要(JOIN は「バラバラの表をつないで、1 枚の結果にする」)JOIN は、SQL の中でも「一段レベルが上がった感じ」がするところですが、本質はとてもシンプルで、「関連する 2 つ以上のテーブル...
Python

Python | DB・SQL:HAVING

概要(HAVING は「集計結果に対する WHERE」だと思うと分かりやすい)HAVING は、SQL の中でも「ちょっとだけ上級者向け」に見える句ですが、本質はシンプルで、「GROUP BY でグル...
Python

Python | DB・SQL:GROUP BY

概要(GROUP BY は「グループごとにまとめて計算する」ためのスイッチ)GROUP BY は、SQL で「グループごとに集計する」ための仕組みです。「ユーザーごとの合計金額」「日付ごとの件数」「科...
Python

Python | DB・SQL:ORDER

概要(ORDER BY は「結果の並び順を決めるスイッチ」)SQL の ORDER BY 句は、SELECT で取り出した結果を「どんな順番で並べるか」を指定するための仕組みです。「年齢の若い順に」「...
Python

Python | DB・SQL:WHERE

概要(WHERE は「どの行だけを相手にするか」を決めるフィルター)SQL の WHERE 句は、テーブルの中から「どの行だけを対象にするか」を決めるフィルターです。SELECT だけでなく、UPDA...
Python

Python | DB・SQL:SELECT

概要(SELECT は「欲しいデータだけを取り出すコマンド」)SQL の SELECT 文は、データベースから「欲しいデータだけ」を取り出すためのコマンドです。Excel の表から「この列だけ見たい」...
Python

Python | DB・SQL:SQL 基本

概要(SQL は「データベースに話しかける言語」)SQL(エスキューエル)は、データベースに対して「これして」「あれして」と命令を出すための言語です。Excel の表をもっと厳密にしたものが「テーブル...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:タイマー & ストップウォッチ

1日目のゴールと今日やること中級編の 1 日目は「タイマー & ストップウォッチの基礎ロジックを完全に理解する」ことがテーマです。今日扱うキーワードは次の 6 つ。setTimeoutsetInter...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 処理時間計測テンプレ

ねらい:どのマクロも「どこに何秒かかっているか」を一発で見える化する「このマクロ、なんか遅いんだけど、どこが重いのか分からない」「改善したつもりだけど、本当に速くなったのか数字で確認できない」ここを感...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – バッチ処理テンプレ

ねらい:複数の処理を「一括で・安全に・同じ型で」流すバッチ処理テンプレ「このマクロを実行して、そのあとにあのマクロを実行して…」「毎朝、同じ順番で“取り込み→変換→JOIN→集計→出力”をやっている」...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 処理ログ自動生成

ねらい:どのマクロにも「同じ形の処理ログ」を自動で残す「このマクロ、ちゃんと最後まで動いたのか?」「どのシートを何件処理したのか?」「エラーが出たのは何時何分で、どの処理中だったのか?」こういう“あと...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 設定シート方式テンプレ

ねらい:「設定シート方式」という“考え方そのもの”をテンプレ化するここまで、JOIN・集計・差分・変換…と、いろんな「ノーコード系ツール」を見てきましたよね。実は全部、同じ“型”でできています。共通し...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – ノーコード変換ツール

ねらい:「置換・整形・コード変換」を“設定だけ”で回すノーコード変換エンジン「この列の全角を半角にしたい」「このコードを名称に変えたい」「この文字列の一部を置き換えたい」「日付の書式を統一したい」こう...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – ノーコード差分ツール

ねらい:設定シートを書くだけで「差分チェック」が回る世界にする「旧データと新データの差分を取りたい」「マスタの更新内容を確認したい」「システムAの出力とシステムBの出力が本当に同じか確かめたい」こうい...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – ノーコード集計ツール

ねらい:集計ロジックは「設定シート」に閉じ込めて、コードは一切いじらない毎回「この列でグループ化して、この列を合計して…」という集計マクロを書き換えていくと、集計パターンが増えるたびにコードが増え、誰...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 完全ノーコードのJOINツール

ねらい:VBAコードは一切触らず「設定だけ」でJOINできるようにする「明細にマスタをくっつけたい」「別システムのコードを名称に変えたい」こういう“JOIN作業”を、毎回 VLOOKUP や XLOO...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マッピング設定だけで動く高速ツール

ねらい:コードをいじらず「マッピング表」だけで動く汎用高速ツール毎回「この列をあっちの列に」「この値はこう変換して」と、VBAの中身を書き換えていませんか。それをやっている限り、ツールは作る人にしか触...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 拡張JOIN(1対多)

ねらい:VLOOKUPではできない「1対多JOIN」をVBAで“型”にするふつうのJOIN(VLOOKUP的なもの)は「1対1」です。顧客コード → 顧客名、商品コード → 商品名、のように「1つのキ...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 3段JOINテンプレ

ねらい:明細に「3つのマスタ」を段階的にくっつける“3段JOIN”の型2段JOINまではよくやっていると思いますが、実務だとこういうケースが出てきます。売上明細に「商品名」を付けたい。商品から「カテゴ...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 2段JOINテンプレ

ねらい:明細に「マスタA→マスタB」を段階的にくっつける“2段JOIN”の型を作る「明細に部門名を付けて、さらにその部門から所属長名を付けたい」「売上明細に商品マスタをJOINして、さらにカテゴリマス...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 一括変換ツール

一括変換ツールのねらい:大量データを「一気に整形・変換」する“作業自動化の核”一括変換ツールは、実務で最も“時短効果が高い”テンプレのひとつです。現場では、こんな作業が毎日のように発生します。全角 →...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マスタ更新ツール

ねらい:マスタを「手入力」から「差分反映の型」に変えるマスタ更新って、本当は一番慎重にやりたいところなのに、現場ではこうなりがちです。新しいCSVを開く古いマスタを開くVLOOKUPやフィルタで差分を...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – CSV差分ツール

ねらい:2つのCSVの「追加・削除・変更」を一瞬で洗い出すCSV差分ツールのゴールは、「前回のCSV」と「今回のCSV」を比べて、どの行が追加され、どの行が削除され、どの行の中身が変わったかを機械的に...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 名寄せ高速ツール

ねらい:ぐちゃぐちゃな「同じ顧客」を、機械的に“同一人物グループ”にまとめる名寄せは、「同じ人・同じ会社なのに、表記ゆれや入力ゆれでバラバラに登録されているレコードをまとめる」作業です。顧客マスタ、取...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 重複検査ツール

ねらい:人の目では見落とす「重複」を、VBAで一網打尽にする重複検査は、地味だけど実務ではかなり重要な仕事です。顧客マスタの二重登録、案件IDの重複、メールアドレスの重複、請求書番号の重複…。どれも「...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 採番自動ツール

ねらい:番号ルールを「人の勘」から「VBAの型」に変える現場で一番モメやすいのが「番号」です。伝票番号案件番号申請番号問い合わせIDこれを人が手入力で振っていると、同じ番号を二重に使ってしまう飛び番・...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 監査ログツール

ねらい:Excelマクロの「誰が・いつ・何をしたか」を残す“監査ログ”の型を作るマクロが便利になればなるほど、あとからこういうことを聞かれる場面が増えます。誰がこのファイルをいつ更新したのか。このボタ...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – エクセル方眼自動整形

ねらい:どんなシートでも一発で「方眼紙レイアウト」にそろえる「エクセル方眼」は好き嫌いが分かれますが、社内の帳票や申請書が全部エクセル方眼で作られている現場も多いですよね。問題は、毎回「列幅を 1.2...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:ミニ総合アプリ(初級編)

1日目のゴールと今日やること1日目のテーマは「入力 → 一覧表示 → 削除 → 条件分岐までを一つのミニアプリでつなげる」ことです。今日やるのは、超シンプルだけど“アプリっぽさ”がちゃんとあるもの:テ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 関数を引数に取る設計

「関数を引数に取る」とは、責任を“相手に渡す”設計まずイメージからいきます。function doTwice(fn: () => void) { fn(); fn();}doTwice(() => {...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 関数型interfaceの書き方

前提:関数にも「interface で形を決める」という発想があるまず押さえたいのは、「関数の型は type だけじゃなく、interface でも書ける」ということです。type FnByType ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 関数型エイリアス設計

まず「関数型エイリアス」とは何かをはっきりさせる関数型エイリアスは、かんたんに言うと「よく使う関数の“形”に名前をつけること」です。type StringToNumber = (value: stri...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – map / filter / reduce 用関数型

ゴール:map / filter / reduce の「関数型」を言葉で説明できるようになるまず目標からはっきりさせます。map / filter / reduce は、「配列に対して“どう変換するか...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 高階関数の型付け

まず「高階関数」をちゃんと定義しておく高階関数(higher-order function)は、ざっくり言うと「関数を受け取る」か「関数を返す」か、あるいはその両方をする関数のことです。functio...
Python

Python | Web フレームワーク:バックエンド設計

概要(バックエンド設計=「見えないところの“筋肉と血管”を設計すること」)バックエンド設計は、「画面に見えないところで、アプリをちゃんと動かすための仕組みをどう組み立てるか」を考える作業です。どんなデ...
Python

Python | Web フレームワーク:API 実践

概要(API 実践=「画面なしでデータをやり取りする Web アプリ」)API 実践は、「ブラウザに HTML を返す」のではなく、「プログラム同士がデータをやり取りする窓口」を作る練習です。Djan...
Python

Python | Web フレームワーク:Web アプリ実践

概要(「Web アプリ実践」は“全部をつなげて動かす”フェーズ)ここまでで、Django のモデル・ビュー・URL・テンプレート・認証・セッション・設定・分割構造など、部品ごとの話をかなり見てきました...
Python

Python | Web フレームワーク:Django の分割構造

概要(Django の分割構造=「大きな家を部屋ごとに区切る設計」)Django の「分割構造」は、一言でいうと「プロジェクト全体を、役割ごと・機能ごとにきれいに分ける仕組み」です。一番大きな単位が「...
Python

Python | Web フレームワーク:Django 設定

概要(Django 設定=「プロジェクト全体のルールブック」)Django の設定(settings.py)は、「このプロジェクトは、どんなルールで動くのか」を一箇所にまとめたファイルです。どのアプリ...
Python

Python | Web フレームワーク:Django セッション

概要(Django セッション=「ブラウザごとの“一時的な記憶領域”」)Django のセッションは、「このブラウザは、前回どんな状態だったか」をサーバー側に覚えておくための仕組みです。ログイン状態カ...
Python

Python | Web フレームワーク:Django 認証

概要(Django 認証=「ユーザーを識別して、ログイン状態を管理する仕組み」)Django 認証は、「このリクエストを送ってきたのは誰か」「その人はログイン済みか」「その人にこの操作をさせてよいか」...
Python

Python | Web フレームワーク:Django migration

概要(Django migration=「モデルの変更履歴を DB に安全に反映する仕組み」)Django の migration(マイグレーション)は、一言でいうと、「models.py の変更を、...
Python

Python | Web フレームワーク:Django ORM

概要(Django ORM=「SQL を書かずに DB を触るための翻訳レイヤー」)Django ORM は、「データベース(SQL の世界)」と「Python オブジェクト(クラスとインスタンスの世...
Python

Python | Web フレームワーク:URLconf

概要(URLconf=「URL とビューを結びつける交通整理係」)Django の URLconf(URL configuration)は、「どの URL にアクセスされたときに、どのビューを呼ぶか」...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – マルチ catch

マルチ catch を一言でいうとマルチ catch は、「複数の例外型を、同じ 1 つの catch ブロックでまとめて処理できる構文」です。catch (IOException | SQLExce...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – ntry-with-resources 拡張

まず「元祖」try-with-resources をおさらいするtry-with-resources は、「使い終わったら必ず close() しなきゃいけないリソース(ファイル、ソケット、DB 接続...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – null 許容と switch

なぜ「null と switch」をちゃんと考えないといけないのかswitch は「値に応じて分岐する」構文ですが、その値が null になりうるかどうかを意識していないと、実行時にいきなり Null...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – instanceof の進化

instanceof の「進化」をざっくり俯瞰するinstanceof は、もともと「あるオブジェクトが、ある型のインスタンスかどうかを調べるための演算子」としてスタートしました。昔は「型チェック」と...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – パターンマッチング(instanceof)

パターンマッチング付き instanceof を一言でいうと「instanceof で型を調べたあと、すぐ下でキャストして変数に代入する」――この“二度書き”をまとめて一発で書けるようにした構文が、パ...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – sealed class

sealed class を一言でいうとsealed クラスは「このクラスを継承してよい“サブクラスの種類”を、あらかじめ限定する仕組み」です。継承を完全に禁止する final と違って、「継承は許す...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – レコード(record)

record を一言でいうとrecord は「フィールドを持つだけの“データ用クラス”を、最小限のコードで定義するための仕組み」です。equals / hashCode / toString / コン...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – テキストブロック

テキストブロックを一言でいうとテキストブロックは、"""(ダブルクォート3つ)で囲んで「複数行の文字列を、そのままの見た目で書ける」新しい文字列リテラルです(Java 15 以降で正式導入)。今までの...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – yield

yield を一言でいうとyield は、switch「式」の中で「この case ブロックから“この値を返す”」とコンパイラに伝えるためのキーワードです。return が「メソッドから値を返す」のに...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – switch 式(Java 14+)

switch 式とは何か(Java 14 以降の新しい switch)Java 14 以降では、switch が「文(statement)」だけでなく「式(expression)」としても使えるように...
Java

Java | Java 詳細・モダン文法:言語仕様詳細 – var(ローカル変数型推論)

var を一言でいうとvar は「型を書かなくても、右辺からコンパイラが型を推論してくれるローカル変数宣言」のためのキーワードです。「型がなくなる」のではなく、「型を書く手間を省く」だけで、コンパイル...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – ES 仕様の更新追跡方法

何を追えばいいのか(ゴールのイメージ)まず、「ES 仕様の更新を追う」と聞くと、毎年の ECMAScript 版(ES2020, ES2021…)その中に入る新機能(Optional chaining...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Intl API

Intl API とは何か(まずイメージから)Intl(Internationalization)は、「言語や国ごとのルールに合わせて、数値・通貨・日付・文字列などをキレイに表示するための標準 API...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Reflect

Reflect とは何か(まずイメージから)Reflect は ES6 で追加された、「オブジェクトに対する基本操作を、“関数の形”でまとめて持っている道具箱」 です。これまでバラバラに存在していたプ...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Proxy

Proxy とは何か(まずイメージから)Proxy は、「あるオブジェクトの前に立って、そのオブジェクトへの操作を横取り・監視・カスタマイズできる“番人”」のような仕組みです。普通はこうです。cons...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – for…of の内部

for...of の「見た目」と「中身」は別物だと思ってみるfor...of は、表面上はとてもシンプルです。const arr = [10, 20, 30];for (const value of ...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Generator

Generator とは何か(まずイメージから)Generator(ジェネレータ)は、「少しずつ値を返しながら、一時停止・再開できる特別な関数」 です。普通の関数は、一気に最後まで実行されて「結果はこ...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Iterator

Iterator とは何か(まずイメージから)Iterator(イテレータ)は、「次の値をください」「もう終わりです」を順番に教えてくれる“値の自動販売機”のような仕組み です。自販機にコインを入れる...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Symbol

Symbol とは何か(まずイメージから)Symbol は、ES6 で追加された 「絶対にかぶらない“名前札”のような値」 です。string や number と同じ「プリミティブ型」の一種ですが、...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Nullish coalescing

Nullish coalescing とは何か(まずイメージから)Nullish coalescing(ヌリッシュ・コアレスシング)は?? という演算子で書く、「値が null または undefin...
JavaScript

JavaScript | ES6+ 文法:その他の ES6+ 機能 – Optional chaining

Optional chaining とは何か(まずイメージから)Optional chaining(オプショナルチェイニング)は?. という記号で書く、「存在しないかもしれないプロパティに安全にアクセ...
Next.js

Next.jsで学ぶReact講座 | Reactの基本操作 – 入力した文字をそのまま画面にリアルタイム表示するフォーム

このテーマのゴールここで目指すのは、「入力欄に打ち込んだ文字が、そのままリアルタイムで画面に表示されるコンポーネント」を自分で作れるようになることです。これは一見シンプルですが、React でフォーム...
Next.js

Next.jsで学ぶReact講座 | Reactの基本操作 – ボタンを押すと「表示/非表示」が切り替わるテキスト

このテーマのゴールここで身につけたいのは、「ボタンを押すとテキストが表示されたり消えたりする」コンポーネントを自分で作れるようになることです。この小さな動きの中に、React の重要ポイントがぎゅっと...
Next.js

Next.jsで学ぶReact講座 | Reactの基本操作 – ボタンを押すと増えるカウンター

このテーマのゴールここでやりたいのは、「ボタンを押すと数字が増える」カウンターコンポーネントを通して、React の state とイベント処理の超基本を体で覚えることです。画面に数字が表示されていて...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – 日付計算の注意点

日付計算が「思ったより難しい」理由日付計算は、一見「足し算・引き算だけ」に見えますが、実際には月末の長さの違い、うるう年、タイムゾーン、夏時間(DST)、日付の境界の扱いなど、落とし穴だらけです。ja...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – Clock

Clock を一言でいうとClock は「“今”をどう決めるかをカプセル化するためのオブジェクト」です。Instant.now() や LocalDateTime.now() が、裏側で「どの時計を使...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – Instant

Instant を一言でいうとInstant は「世界共通の“ある一瞬”を、UTC 基準で表したもの」です。人間が「2025年1月18日 10時(日本時間)」と考えるのに対して、Instant は「1...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – OffsetDateTime

OffsetDateTime を一言でいうとOffsetDateTime は「日付+時刻 + UTC からのズレ量(オフセット)」をセットで表すクラスです。ZonedDateTime が「タイムゾーン...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – TimeZone の扱い

まず「タイムゾーンって何者か」を整理するタイムゾーンは、ざっくり言うと「その場所の“ローカルな時刻”と、世界共通の時刻(UTC)をどう対応づけるかのルール」です。日本(Asia/Tokyo)は「UTC...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – 不変オブジェクトとしての日時

「不変な日時」ってどういうことかまず言葉からいきます。LocalDate や LocalDateTime、ZonedDateTime など java.time のクラスは「不変(immutable)」...
Java

Java | Java 詳細・モダン文法:日付・時刻 API – DateTime API 設計思想

なぜ新しい DateTime API が必要だったのかまず一番大事な背景からいきます。Java 8 で導入された java.time(DateTime API)は、「古い日付 API(java.uti...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:フォーム送信シミュレーター(初級編)

1日目のゴールと今日やること1日目のテーマは「フォーム送信の仕組みを“JavaScript で自由にコントロールできるようになる”」ことです。フォーム送信シミュレーターは、「入力 → 確認画面 → 擬...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – 実務利用判断

まずゴールをはっきりさせる:何を判断したいのかES6 の「新データ構造」と言われると、Map / SetWeakMap / WeakSetが一気に出てきて、「全部使えたほうがいいのかな?」と身構えがち...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – GC と Weak 構造

まず「GC」とは何か(やさしくイメージから)JavaScript の世界では、「もう使われなくなったデータを、自動で片付けてくれる仕組み」 が動いています。これを GC(Garbage Collect...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – size プロパティ

size プロパティとは何か(まずイメージから)size プロパティは、「そのコレクションの中に、今いくつ要素が入っているか」を教えてくれる数字 です。ES6 の新しいデータ構造では、MapSetに ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – 反復処理

ES6 の反復処理とは何か(まずイメージから)ES6 以降の「新データ構造」(Map, Set, WeakMap, WeakSet)には、「反復処理しやすいように統一された仕組み」 が用意されています...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Set による重複排除

Set で重複排除とは何か(まずイメージから)Set は「同じ値を 2 回入れようとしても、1 回分しか持たないコレクション」でしたね。この「同じ値は 1 つだけ」という性質を利用すると、配列に同じ値...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Map vs Object

まずざっくりイメージ:Map と Object は「役割」が違う同じように「キーと値」を扱えるので、最初は「Map でも Object でもできるじゃん。どっち使えばいいの?」と感じると思います。ざっ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – WeakSet

WeakSet とは何か(まずイメージから)WeakSet は、「オブジェクトだけを入れられる、弱い参照を持つ Set」 です。普通の Set と似ていますが、決定的に違う点がいくつかあります。1つ目...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – WeakMap

WeakMap とは何か(まずイメージから)WeakMap は、「キーをオブジェクトに限定した、”弱い紐づけ” をするための特別な Map」 です。普通の Map と似ていますが、決定的に違うのはここ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Set

Set とは何か(まずイメージから)Set は、ES6 で追加された「重複を許さない値の集まり(コレクション)」 です。配列:同じ値を何回入れてもいいSet:同じ値は 1 回しか入らないというイメージ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Map

Map とは何か(まずイメージから)Map は、ES6 で追加された「キーと値のペアを柔軟に保存できる専用のコレクション」 です。似たものに「オブジェクト {}」がありますが、Map には大きな違いが...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:Excel特定シート名指定取込

ゴールのイメージを先にそろえる今回のテーマは「Excelブックの中から、特定のシート名だけを Power Query で安定して取り込む実務テンプレ」です。たとえば「毎月『集計』シートだけを読みたい」...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:Excelファイル1枚目固定取込

ゴールのイメージを先にそろえる今回のテーマは「毎回レイアウトは同じだけど、ブック名や中身だけ変わるExcelファイルから、“必ず1枚目のシートだけ”をPower Queryで取り込む実務テンプレ」です...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:毎月届くCSVを同一形式で更新

まず「理想の運用イメージ」をはっきりさせる目指すゴールはとてもシンプルです。毎月届くCSVファイルを、あるフォルダにポンと入れるだけ。Excel側では、Power Queryの[更新]ボタンを押すだけ...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:CSVのヘッダー行が途中にあるデータ取込

ゴールのイメージを先にそろえる今回のテーマは「CSVのヘッダー行が途中にある(しかも場合によっては何回も出てくる)データを、Power Queryでキレイに取り込む実務テンプレ」です。よくあるパターン...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:CSVファイルを自動取込(文字コード自動判定)

まずゴールのイメージをそろえましょうあなたがやりたいことは、ざっくり言うとこうです。「フォルダに CSV を置くだけで、Power Query がいい感じに文字コードを判定して取り込み、あとは[更新]...
Power Query M Formula Language

Power Query | パワークエリ失敗しない設計ルール集

失敗しない設計ルール集(完全実務版)① 全体設計ルール(最重要)1. 目的を「出力テーブル」で定義する理由途中処理を考え始めると破綻するルール最終的に出したい「列名・型・粒度」を先に決めるNG取込 →...
Power Query M Formula Language

Power Query | パワークエリについて

パワークエリ(Power Query)について、まず全体像を段階的に整理します。① パワークエリとは何かExcel / Power BI に標準搭載されているデータ取得・加工・変換専用ツール大量データ...
Next.js

Next.jsで学ぶReact講座 | Reactの基本操作 – 金額と税率を受け取って税込み価格を出すコンポーネント

このテーマのゴールここでやりたいのは、「金額」と「税率」を props で受け取り、コンポーネントの中で計算して「税込み価格」を表示することです。つまり、「見た目+計算ロジック」をひとつの部品としてま...
Next.js

Next.jsで学ぶReact講座 | Reactの基本操作 – 名前だけを変えて挨拶するコンポーネント

このテーマのゴールここでやりたいのは、「カード」という“部品”を1つ作って、タイトルと本文だけ差し替えて何度も使えるようにすることです。前の「名前だけ変えて挨拶」と同じ発想ですが、もう少し“実際のアプ...
Next.js

Next.jsで学ぶReact講座 | Reactの基本操作 – 名前だけを変えて挨拶するコンポーネント

このテーマのゴール「名前だけを変えて挨拶するコンポーネント」は、React の いちばん基本的な“部品の考え方” をつかむための題材です。同じ「挨拶」という見た目・構造を使い回しつつ、「名前だけを変え...
Java

Java | Java 詳細・モダン文法:Optional – フィールドに Optional を持たない理由

そもそも Optional は「フィールド用」に設計されていないまず大前提として押さえておきたいのは、Optional は「戻り値用のコンテナ」として設計されている、ということです。「値があるかもしれ...
Java

Java | Java 詳細・モダン文法:Optional – Optional の誤用例

なぜ「Optional の誤用」を意識する必要があるのかOptional は「null を安全に扱うための道具」ですが、使い方を間違えると、むしろコードが読みにくくなったり、バグの温床になったりします...
Java

Java | Java 詳細・モダン文法:Optional – Optional.orElseThrow

Optional.orElseThrow を一言でいうとOptional.orElseThrow は「中身があればその値を返し、なければ“ここで失敗だ”と明示的に例外を投げる」ためのメソッドです。「こ...
Java

Java | Java 詳細・モダン文法:Optional – Optional.filter

Optional.filter を一言でいうとOptional.filter は「中身が“あるときだけ”条件をチェックし、条件を満たさなければ空にしてしまう」ためのメソッドです。Stream の fi...
Java

Java | Java 詳細・モダン文法:Optional – Optional.flatMap

Optional.flatMap を一言でいうとOptional.flatMap は「中身が“あるときだけ”、Optional を返す関数を適用し、その二重になった Optional を平らにして返す...
Java

Java | Java 詳細・モダン文法:Optional – Optional.map

Optional.map を一言でいうとOptional.map は「中身が“あるときだけ”変換し、なければ何もしないで空のまま返す」ためのメソッドです。null チェックしてからメソッドを呼ぶ、とい...
Java

Java | Java 詳細・モダン文法:Optional – null 排除設計

「null 排除設計」を一言でいうと「null 排除設計」は、“アプリケーションの中を null が自由に歩き回らないようにする設計”です。完全に null をゼロにするのは現実的ではありませんが、「...
Java

Java | Java 詳細・モダン文法:Optional – Optional 設計思想

Optional が生まれた一番大きな理由Optional が Java に入ってきた一番の理由は、「null による事故を減らしたい」これに尽きます。Java の世界では長いあいだ、「値がないこと」...
JavaScript

JavaScript | ES6+ 文法:モジュール – バンドラとの関係

そもそも「バンドラ」とは何か(まずイメージから)バンドラ(bundler)は、「たくさんの JS ファイル(モジュール)を、ブラウザが読みやすい形にまとめてくれる道具」 です。ES6 の import...
JavaScript

JavaScript | ES6+ 文法:モジュール – モジュール分割設計

モジュール分割設計とは何か(まずイメージから)モジュール分割設計は、「アプリ全体を、意味のある小さな“部品(ファイル)”に分けて、その関係をきれいに整理すること」 です。1ファイル = 1モジュール、...
JavaScript

JavaScript | ES6+ 文法:モジュール – 循環参照の注意

循環参照とは何か(まずイメージから)モジュールの「循環参照(循環依存)」は、モジュール A がモジュール B を import し、同時にモジュール B もモジュール A を import している状...
JavaScript

JavaScript | ES6+ 文法:モジュール – モジュールスコープ

モジュールスコープとは何か(まずイメージから)モジュールスコープは、「そのモジュール(=1ファイル)の中だけで有効な“自分専用の世界”」 のことです。ES6 モジュール(import / export...
JavaScript

JavaScript | ES6+ 文法:モジュール – 動的 import

動的 import とは何か(まずイメージから)ES6 以降のモジュールの import には、「ファイルの先頭で書く静的な import」と「コードの中で呼び出せる動的 import」の2種類があり...
JavaScript

JavaScript | ES6+ 文法:モジュール – import の別名

「import の別名」とは何か(まずイメージから)import の別名 は、「他のファイルから持ってきた名前に、今のファイルで使いやすい別の名前を付け直す」 仕組みです。同じ名前が他でも使われていて...
JavaScript

JavaScript | ES6+ 文法:モジュール – 再エクスポート

再エクスポートとは何か(まずイメージから)再エクスポート(re-export)は、「他のモジュールから import したものを、そのまま(または名前を変えて)もう一度 export し直すこと」 で...
JavaScript

JavaScript | ES6+ 文法:モジュール – default export

default export とは何か(まずイメージから)default export は、「このモジュール(ファイル)の“看板商品”を 1 つだけ外に出す」ための仕組みです。名前付き export:...
JavaScript

JavaScript | ES6+ 文法:モジュール – 名前付き export

名前付き export とは何か(まずイメージから)名前付き export は、「このファイルから、名前を付けて外に公開するものを選ぶ仕組み」です。// math.jsexport const PI ...
JavaScript

JavaScript | ES6+ 文法:モジュール – import / export 基本

モジュールの考え方(まず全体像から)モジュールは、「ファイルごとに役割を分けて、必要なものだけをやり取りする仕組み」です。1ファイル = 1モジュール、と考えておけばOKです。「このファイルから外に出...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – コールバック関数の型指定

まず「コールバック関数」をちゃんとイメージするコールバック関数は、ざっくり言うと「関数に“あとで呼んでね”と渡される関数」です。function doTwice(callback: () => voi...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 可変長引数の型安全化

「可変長引数」は型の世界だとどう見えるのかまず、可変長引数は JavaScript 的にはこうです。function sum(...numbers: number[]) { return number...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – rest引数の型指定

rest引数ってそもそも何をしているのかまずは「rest引数」の正体からいきます。function sum(...numbers: number[]) { // numbers は「配列」として受け取...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – デフォルト引数と型

「デフォルト引数」と「型」はセットで考えるものまず前提から整理します。TypeScript の「デフォルト引数」は、「引数が渡されなかったときに使う値を、関数の宣言側で決めておく仕組み」です。func...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 関数のオプション引数設計

まず「オプション引数って何者か」を整理するTypeScript で「オプション引数」と言うとき、だいたい次の2つの書き方を指します。function greet(name: string, title...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 戻り値型を省略すべき場面

前提:「全部書く」か「全部省略」か、の二択ではないまず大事なのは、戻り値型は「常に書くべき」でも「常に省略すべき」でもない、ということです。すでに話してきたように、外部公開の関数・複雑な処理・ジェネリ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 戻り値型を明示すべき場面

まず前提:「いつも書け」ではなく「ここぞで書く」TypeScript は戻り値型をかなりうまく推論してくれます。だから「全部に : 型 を書け」という話ではありません。大事なのは、「推論に任せると“危...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 引数と戻り値の型関係

「引数の型」と「戻り値の型」はセットで設計するものまず一番大事な前提から。関数の型は、「何を受け取って(引数)、何を返すか(戻り値)」この2つの組み合わせで決まります。function add(a: ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – アロー関数の型推論

まず「アロー関数の型推論」で何が起きているかアロー関数はこういう形の関数です。const add = (a, b) => a + b;const add = (a, b) => a + b;TypeS...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:関数設計の深化 – 関数宣言と関数式の違い

まず「関数宣言」と「関数式」をざっくり区別する最初に形だけ見て違いを押さえましょう。関数宣言(function declaration)function add(a: number, b: numbe...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:タブ切り替えアプリ(初級編)

1日目のゴールと今日やること1日目のテーマは「タブ切り替えアプリの“いちばん小さな仕組み”を理解する」ことです。タブ切り替えアプリとは、「ボタン(タブ)を押すと、対応する画面だけが表示される」という、...
Python

Python | 1 日 90 分 × 7 日アプリ学習:数当てゲーム(初級編)

1日目のゴールと今日やること1日目のテーマは「数当てゲームの“いちばん小さい芯”を作る」 ことです。いきなり完成版は作りません。今日はまず、プレイヤーから数字を入力してもらうその数字を「大きい」「小さ...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – imperative vs declarative

「命令的」と「宣言的」をざっくり一言でいうと命令的(imperative)は、「どうやってやるか」を一歩一歩、自分で指示していく書き方です。宣言的(declarative)は、「何をしたいか」だけを宣...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – forEach の落とし穴

forEach を一言でいうとforEach は「Stream の最後に、要素 1 つずつに対して“なにかする”ための終端操作」です。System.out.println したり、外部のリストに追加し...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – 例外処理と Stream

なぜ「例外処理と Stream」が難しく感じるのかStream は「関数型っぽく、処理の流れを宣言的に書く」ための仕組みです。一方で Java の例外は「throw して try-catch で受ける...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – Optional と Stream 設計

Optional と Stream を一緒に考える理由Java でモダンなコードを書くとき、Optional と Stream はセットで設計を考えると一気にきれいになります。どちらも「要素があるかも...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – downstream collector

downstream collector ってそもそも何?downstream collector は、日本語にすると「下流の Collector」です。でも名前よりもイメージが大事で、ざっくり言うと...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – partitioningBy

partitioningBy を一言でいうとCollectors.partitioningBy は、Stream の要素を「ある条件を満たすかどうか(true / false)」で きっちり 2 つの...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – groupingBy 複数キー

「groupingBy 複数キー」でやりたいことのイメージCollectors.groupingBy の「複数キー」は、ざっくり言うと「1 つの条件じゃなくて、2 個以上の条件の組み合わせでグループ分...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – Collector の自作

Collector 自作のゴールをまずイメージするCollector を自作する、というのは「Stream の要素を、標準の toList や groupingBy では表現しづらい“自分専用の集め方...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – collect の仕組み

collect を一言でいうとcollect は、「Stream に流れてきた要素たちを、“コンテナ(List / Set / Map など)や集計結果”にまとめ上げるための終端操作」です。reduc...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – reduce

reduce を一言でいうとStream#reduce は、「ストリームに流れてくる複数の要素を、“1 つの値”に畳み込むための終端操作」です。全部を 1 つに“まとめる”イメージです。合計を出す、最...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – allMatch / anyMatch

allMatch / anyMatch を一言でいうとallMatch と anyMatch は、「Stream の要素が“条件を満たしているかどうか”を、真偽値で答える終端操作」です。allMatc...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – findFirst / findAny

findFirst / findAny を一言でいうとfindFirst と findAny は、「Stream の中から“1 件だけ”要素を取り出すための終端操作」です。どちらも戻り値は Optio...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – limit / skip

limit / skip を一言でいうとlimit と skip は、どちらも 「ストリームから流れてくる要素の“範囲”を切り取るための中間操作」 です。ざっくり言うと、limit(n) は「先頭から...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – sorted

sorted を一言でいうとStream#sorted は、ストリームに流れてくる要素を「並べ替えた新しいストリーム」を返す中間操作です。「順番を整える係」が sorted だと思ってください。sor...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – distinct

distinct を一言でいうとStream#distinct() は、「ストリームの中から“重複している要素”を取り除き、“一意な要素だけ”を残す中間操作」 です。イメージとしては、「同じ値が何回も...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – flatMap の用途

flatMap を一言でいうとStream#flatMap は、「1 つの要素から“0 個以上の要素の流れ(Stream)”を作り、それらを 1 本のストリームに“平らに”つなげる中間操作」です。ma...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – map の設計

map を一言でいうとStream#map は、「ストリームの各要素に“変換処理”を 1 回ずつ適用し、その結果から“新しいストリーム”を作る中間操作」 です。元の要素を別の形にしたいとき――文字列を...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – filter の設計

filter を一言でいうとStream#filter は、「流れてくる要素のうち、“条件を満たすものだけ”を次のステップに通す中間操作」 です。SQL でいう WHERE 句に近いイメージで、tru...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – 中間操作と終端操作

中間操作と終端操作を一言でいうとStream API の「中間操作」と「終端操作」は、“流れをつくる操作(中間)” と “流れを終わらせて結果を取り出す操作(終端)”という役割分担になっています。この...
Java

Java | Java 詳細・モダン文法:Stream API 深掘り – Stream パイプライン

Stream パイプラインを一言でいうとStream パイプラインは、「データの流れを、生成 → 中間操作 → 終端操作 という“流れ(パイプライン)”としてつなげて書くスタイル」です。for 文でゴ...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – クラス設計の考え方

クラス設計の考え方とは何かクラス設計は、「コードをどう書くか」より先に、「このクラスは何者で、何ができて、どこまで面倒を見るのか」を決める作業です。JavaScript の class は、単に「便利...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – getter / setter

getter / setter とは何か(まずイメージから)getter / setter は、「プロパティに見える“入り口・出口”の裏に、処理を仕込むための仕組み」 です。普通のプロパティはこうです...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – プライベートフィールド(#)

プライベートフィールド(#)とは何かプライベートフィールドは、class の中で「クラスの外から絶対に直接触られたくない値」を隠すための仕組みです。書き方は、名前の前に # をつけます。class U...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – 静的メソッド

静的メソッドとは何か(まずイメージから)静的メソッド(static メソッド)は、「インスタンスではなく“クラスそのもの”に属するメソッド」 です。普通のメソッドはこう呼びます。const user ...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – super

super とは何か(まずイメージから)super は、クラスの継承で使う「親クラスへの入り口」です。具体的には次の2つの役割があります。親クラスの constructor を呼ぶ親クラスのメソッドを...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – 継承(extends)

継承(extends)とは何か(まずイメージから)継承(extends)は、「あるクラスをベースにして、それを少しだけ“追加・変更”したクラスを作る仕組み」 です。「動物」という共通部分を持つクラスが...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – メソッド定義

クラスの「メソッド定義」とは何かクラスのメソッドは、「そのクラスから作ったインスタンスができる“動き(振る舞い)”を表す関数」です。class の中に書く関数が、インスタンスから user.greet...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – インスタンス生成

「インスタンス生成」とは何か(まずイメージを掴む)クラスは「設計図」、インスタンスは「その設計図から作られた実物」です。class User { ... } は「ユーザーとはこういう性質・機能を持つ」...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – constructor

constructor とは何か(まずはイメージから)constructor は、class から new したときに「最初に一回だけ」呼ばれる特別なメソッドです。役割はシンプルで、インスタンスが生ま...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – class 構文

class 構文とは何か(まずイメージを掴む)class 構文は、「同じような性質と振る舞いをもつオブジェクトを量産するための設計図を書くための文法」です。「ユーザー」「商品」「敵キャラ」みたいな“種...
Java

Java Tips | 基本ユーティリティ:日付差分計算

日付差分計算は「どれくらい時間が経ったか」を正しく言語化する作業業務システムでは、「締切まであと何日か」「利用期間は何ヶ月か」「滞在時間は何時間か」といった「差分」を扱う場面が本当に多いです。このとき...
Java

Java Tips | 基本ユーティリティ:現在日時取得

現在日時取得は「システムの“今”を正しくつかむ」ための基本技術業務システムでは、ログ記録、更新日時の保存、期限チェック、バッチ処理の実行タイミングなど、あらゆる場面で「現在日時」が必要になります。ただ...
Java

Java Tips | 基本ユーティリティ:日付パース

日付パースは「文字列をちゃんとした日付オブジェクトにする」作業業務システムでは、画面入力、CSV、外部 API などから、日付はまず「文字列」として届きます。"2025/01/14" や "2025-...
Java

Java Tips | 基本ユーティリティ:日付フォーマット

日付フォーマットは「人間とシステムの橋渡し」業務システムでは、日付や日時を「システムが扱いやすい形」と「人間が読みやすい形」の間で何度も行き来します。DB では DATE や TIMESTAMP、Ja...
Java

Java Tips | 基本ユーティリティ:ランダム文字列生成

ランダム文字列生成は「安全なカギ札を作る作業」業務システムでは、一時パスワード、認証コード、トークン、セッションID、テストデータ用のダミー値など、「誰ともかぶらず、予測されにくい文字列」が欲しくなる...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:タイマーアプリ(初級編)

1日目のゴールと今日やることこの「JavaScript タイマーアプリ(基礎) 初級編」では、最終的に「スタート」「ストップ」「リセット」ができる、シンプルなタイマーアプリを作ることを目指します。でも...
Java

Java Tips | 基本ユーティリティ:UUID生成

UUID は「ほぼかぶらない ID を即席で作る道具」業務システムでは、「世界中どこで作っても、まずかぶらない ID」が欲しくなる場面がよくあります。注文番号、トランザクション ID、一時ファイル名、...
Java

Java Tips | 基本ユーティリティ:toString生成

toString は「オブジェクトの名刺」を作るメソッドtoString() は、オブジェクトを人間が読める文字列に変換するためのメソッドです。業務システムでは、ログ出力、デバッグ、エラー調査、監視な...
Java

Java Tips | 基本ユーティリティ:hashCode生成

hashCode ってそもそも何をしているのかhashCode() は、オブジェクトから「ハッシュ値」と呼ばれる整数を計算するためのメソッドです。この整数は、そのオブジェクトの「ざっくりした特徴」を表...
Java

Java Tips | 基本ユーティリティ:安全なequals

「安全な equals」とは何かをまず整理するJava 初心者が最初につまずきやすいポイントのひとつが「equals の安全な使い方」です。特にやらかしがちなのが、null かもしれない変数に対して、...
Java

Java Tips | 基本ユーティリティ:型変換

型変換は「データを正しい器に入れ直す」作業業務システムでは、同じ「値」でも、場面によって求められる型が変わります。画面からは文字列で届く、計算には数値が必要、DB には文字列で保存する──この「型の行...
Java

Java Tips | 基本ユーティリティ:数値パース

数値パースは「文字列をちゃんとした数字にする」作業業務システムでは、画面入力や CSV、外部 API から「文字列として届いた数字」を、本物の int や long、BigDecimal に変換する場...
Java

Java Tips | 基本ユーティリティ:空文字判定

空文字判定は「入力の本当の中身を見る」作業業務システムでは、ユーザー入力や外部システムから受け取る文字列が「本当に何か入っているか」を判定する場面が大量に出てきます。ここでちゃんと判定できないと、必須...
Java

Java Tips | 基本ユーティリティ:文字列トリム

文字列トリムは「入力をきれいにするフィルター」業務システムでは、ユーザー入力や外部システムからの文字列に「余計な空白」が混ざるのは日常茶飯事です。例えば「 山田太郎 」のように前後にスペースが入ってい...
Java

Java Tips | 基本ユーティリティ:Optionalラッパー

Optional ラッパーってそもそも何者かJava の Optional<T> は、「値があるかもしれないし、ないかもしれない」を安全に表現するためのコンテナ型です。null をそのまま返したり受け...
Java

Java Tips | 基本ユーティリティ:Nullチェック

業務で必須になる「nullチェック」とは何かJava で業務システムを書くとき、「nullチェック」は避けて通れません。null は「まだ何も入っていない参照」を表す特別な値で、オブジェクト型の変数な...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第5章:仕上げ – 振り返り

この課題のねらいここは「学びをちゃんと自分のものにする」ための仕上げです。コードを書くことでもう一段うまくなりますが、振り返って言葉にすることでしか伸びない力もあります。自分が「何ができるようになった...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第5章:仕上げ – 最終アプリ実装

この課題のねらいここはいよいよ「全部つなげて、自分のアプリを最後まで作り切る」フェーズです。やることはシンプルで強いです。実装を最後までやり切る出てきたバグを自分で直す余力で UI を少しだけ“気持ち...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第5章:仕上げ – 最終アプリ設計

この課題のねらいここはいよいよ「自分のアプリをちゃんと設計する」フェーズです。コードを書く前に、仕様・ページ構成・ワイヤーフレームを言葉と簡単な図でまとめられるようになると、実装が一気にスムーズになり...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第5章:仕上げ – 設計練習

この課題のねらいここはいよいよ「コードを書く前に、頭と手で設計する」練習です。いきなりエディタを開かずに、紙とペンで画面構成・コンポーネント・state を考えられるようになると、バグも迷いも一気に減...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第5章:仕上げ – TypeScript

この課題のねらいここは「なんとなく動く React」から「型で守られた React」にステップアップするところです。TypeScript をちゃんと使えるようになると、props の渡し間違いstat...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第5章:仕上げ – デバッグ

この課題のねらいここは「React を書ける人」から「バグを直せる人」に変わる仕上げのステップです。どんなに上手いエンジニアでも、バグゼロで書くことはほぼありません。大事なのは「バグを出さないこと」で...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第4章:実用的React – ミニアプリ③

この課題のねらいここはいよいよ「実用的 React」の集大成です。テーマはミニ TODO アプリ──追加・削除・完了状態管理までを、自分の手で通しで作ること。state 設計親子コンポーネントと pr...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第4章:実用的React – 状態設計

この課題のねらいここは「React を“なんとなく書ける”から、“設計して書ける”に変わる」ポイントです。テーマは 状態設計(state をどこに持つか)。コンポーネントを増やしていくと必ずぶつかるの...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第4章:実用的React – フォーム

この課題のねらいここでは「フォーム入力をちゃんと React で扱う」ことがテーマです。キーワードは、state・onChange・onSubmit・バリデーション(入力チェック)。最終的に、「ユーザ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第4章:実用的React – UX対応

この課題のねらいここは「ただ動くアプリ」から「ちゃんと気配りされたアプリ」に一段上げるところです。テーマは UX(ユーザー体験)対応──つまり、ローディング中に何も出さない“無言の時間”をなくすエラー...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第4章:実用的React – データ取得

この課題のねらいここはいよいよ「実用的 React」のど真ん中です。テーマは「API からデータを取ってきて、画面に表示する」という超・現場的な流れ。fetch でデータを取得する取得したデータを s...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第4章:実用的React – useEffect

この課題のねらいここからが「実用的な React」に一気に近づくところです。テーマは useEffect──「画面に表示する以外の処理(=副作用)」を、いつ・どのタイミングで実行するかをコントロールす...
Python

Python | 1 日 90 分 × 7 日アプリ学習:繰り返しカウントアプリ(初級編)

1日目のゴールと今日やることこの「繰り返しカウントアプリ 初級編」は、最終的に「1回、2回、3回…」のように、回数を数え上げる小さなアプリを作ることがゴールです。でも、1日目のゴールはもっとシンプルで...
Python

Python | Web フレームワーク:Django REST Framework

概要(Django REST Framework=「Django で API を作るためのフル装備セット」)Django REST Framework(DRF)は、「Django を使って、ブラウザで...
Python

Python | Web フレームワーク:Django 管理画面

概要(Django 管理画面=「DB をブラウザからいじれる最強の裏口」)Django 管理画面(Django admin)は、「自分で管理用の画面を作らなくても、モデルを登録するだけでブラウザからデ...
Python

Python | Web フレームワーク:Django のフォーム

概要(Django のフォーム=「入力フォームとバリデーションをまとめて面倒見てくれる仕組み」)Django のフォームは、「HTML フォームの入力項目」と「その値のチェック(バリデーション)」と「...
Python

Python | Web フレームワーク:Django のテンプレート

概要(Django のテンプレート=「HTML にデータを流し込む仕組み」)Django のテンプレートは、「HTML のひな型(型)をあらかじめ用意しておいて、ビューから渡されたデータをそこに流し込...
Python

Python | Web フレームワーク:Django のビュー

概要(Django のビュー=「URL ごとに何を返すかを決める場所」)Django の「ビュー」は、「この URL にアクセスされたら、どんな処理をして、どんなレスポンスを返すか」を決める場所です。...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – オブジェクト操作設計

オブジェクト操作設計とは何か「オブジェクト操作設計」というのは、単に user.name = "Alice" といった「その場しのぎの代入」を書くのではなく、どんな形のオブジェクトにするか(構造・型)...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.getPrototypeOf

Object.getPrototypeOf とは何かObject.getPrototypeOf は、あるオブジェクトの「プロトタイプ(親オブジェクト)」を取り出すためのメソッドです。プロトタイプとは、...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.getOwnPropertyNames

Object.getOwnPropertyNames とは何かObject.getOwnPropertyNames は、オブジェクトが「自分で持っている」すべてのプロパティ名を配列で返すメソッドです。...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.fromEntries

Object.fromEntries とは何かObject.fromEntries は、「配列(や Map)の一覧」からオブジェクトを作り直すためのメソッドです。一言でいうと、Object.entri...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.entries

Object.entries とは何かObject.entries は、オブジェクトの中身を「配列の配列」に変換する ES2017(ES8)のメソッドです。「キーと値のペア」を という2要素配列にし、...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.assign

Object.assign とは何かObject.assign は、複数のオブジェクトを「左から右へ」順番にコピーして、1つのオブジェクトにまとめるための ES6 のメソッドです。一言でいうと、「プロ...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.is

Object.is とは何かObject.is は、「2つの値が“本当に”同じ値かどうか」を判定するための ES6 の比較関数です。見た目は ===(厳密等価演算子)に似ていますが、NaN と +0 ...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – メソッド定義省略

メソッド定義省略とは何かオブジェクトの「メソッド定義省略」は、ES6 から入った“関数っぽいプロパティ”を短く書くための記法です。従来はこう書いていました。const user = { name: "...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – 計算されたプロパティ名

計算されたプロパティ名とは何か「計算されたプロパティ名(computed property name)」は、オブジェクトリテラルのキーを、文字列リテラルではなく「式の結果」から動的に決める書き方です。...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – プロパティ短縮記法

プロパティ短縮記法とは何かオブジェクトの「プロパティ短縮記法」は、変数名とプロパティ名が同じときに、キー: 値 の 値 を省略できる ES6 の書き方です。ふつうはこう書きます。const name ...
Python

Python | 1 日 60 分 × 7 日アプリ学習:超初級編

1日目のゴールと今日やること1日目のゴールは、たったこれだけです。自分で書いた Python のコードを実行して、画面に文字を出せるようになる。そのために今日は、この3つに集中します。プログラムって何...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:ランダム表示アプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「ランダムに1つ選んで表示する感覚をつかむ」 ことです。目指すのは、とてもシンプルなランダム表示アプリ。ボタンを押すと「今日の運勢」や「おみくじ結果」がラン...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – ラムダのスコープ

ラムダのスコープを一言でいうとラムダ式の「スコープ」は、「ラムダ式の“中から”“外のどこまで”見えるのか・アクセスできるのか」という話です。ここをちゃんと理解していないと、「ローカル変数をラムダの中で...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – コンストラクタ参照

コンストラクタ参照を一言でいうとコンストラクタ参照(ClassName::new)は、「new クラス名(...) を、そのまま“関数”として渡すための短い書き方」です。ラムダ式で書くと() -> n...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – メソッド参照

メソッド参照を一言でいうとメソッド参照(::)は、「すでに存在するメソッドやコンストラクタを、“ラムダ式の代わりに”そのまま関数として渡すための短い書き方」です。例えば、names.forEach(s...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Supplier

Supplier を一言でいうとjava.util.function.Supplier<T> は、「引数は何も受け取らずに、T 型の値を 1 つ“供給する(用意してくれる)”関数」を表す関数型インター...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Consumer

Consumer を一言でいうとjava.util.function.Consumer<T> は、「T 型の値を 1 つ受け取って“何かする”けれど、結果(戻り値)は返さない関数」 を表す関数型インタ...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Function

Function を一言でいうとjava.util.function.Function<T, R> は、「T 型の値を 1 つ受け取って、R 型の値を 1 つ返す“変換処理”を表す関数型インターフェー...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Predicate

Predicate を一言でいうとjava.util.function.Predicate<T> は、「T 型の値を 1 つ受け取って、true / false を返す“条件判定関数”を表す関数型イン...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – @FunctionalInterface

@FunctionalInterface を一言でいうと@FunctionalInterface は、「このインターフェースは“関数型インターフェース”として使うつもりですよ」とコンパイラに宣言するた...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – 関数型インターフェース

関数型インターフェースを一言でいうと関数型インターフェースは、「たった1つだけ“抽象メソッド”を持つインターフェースで、その1つのメソッドを“関数”として扱うための入れ物」です。ラムダ式は「単体では宙...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – ラムダ式の構文

ラムダ式とは何か(まずイメージから)ラムダ式は、Java 8 から入った「小さな“処理そのもの”を値として書くための記法」です。「このタイミングで、こういう処理を実行してほしい」という“やりたいこと”...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 旧構文との比較

スプレッド構文と「旧構文」をざっくり比較するとES6 のスプレッド構文 ... は、「配列やオブジェクトの中身をその場でバラして並べる」ための新しい書き方です。旧構文(ES5 まで)は、concat ...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 不変データ作成

「不変データ」とは何か(まずここを押さえる)不変データ(immutable data)とは、「一度作ったデータを書き換えず、変更したいときは新しいデータを作る」という考え方です。ここが重要です:配列....
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 浅いコピーの理解

「浅いコピー」とは何か(まずイメージを掴む)スプレッド構文のコピー( や { ...obj })は「浅いコピー(shallow copy)」です。ここが最重要ポイントです:外側の「箱」(配列そのもの・...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 上書き順序

スプレッド構文の「上書き順序」とは何かスプレッド構文では、... を使って配列・オブジェクトの中身を「左から右へ」順番に展開していきます。ここが最重要ポイントです:オブジェクトの { ...a, .....
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 結合処理

スプレッド構文による「結合処理」とは何かスプレッド構文での結合処理は、... を使って「配列やオブジェクトの中身をバラして並べ直し、新しい配列/オブジェクトを作る」書き方です。ここが重要です:配列なら...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 関数引数展開

関数引数展開とは何かスプレッド構文の「関数引数展開」は、fn(...array) のように書いて「配列(や配列っぽいもの)をバラして、関数の複数の引数として渡す」書き方です。ここが重要です:... が...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – オブジェクトコピー

オブジェクトコピーとスプレッド構文の関係オブジェクトのスプレッド構文は、{ ...obj } のように書いて「オブジェクトの中身(プロパティ)を展開して、新しいオブジェクトを作る」書き方です。ここが重...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 配列コピー

スプレッド構文で「配列コピー」とは何かスプレッド構文を使うと、 のように書いて「配列の中身だけを取り出して、新しい配列を作る」ことができます。ここが重要です:const copy = arr; は“同...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – オブジェクト展開

オブジェクトのスプレッド構文とは何かオブジェクトのスプレッド構文は、{ ...obj } のように書いて「オブジェクトの中身(プロパティ)をその場に展開する」書き方です。イメージとしては、「そのオブジ...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 配列展開

スプレッド構文の「配列展開」とは何かスプレッド構文の配列展開は、...array の形で「配列をバラして、その場に1個ずつ並べる」書き方です。ここが重要です: と書くと「arr の中身だけ」が新しい配...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第3章:Next.jsらしさ – ミニアプリ②

この課題のねらいここまで学んできた内容をぜんぶつないで「小さな Next.js アプリ」を完成させるステップです。特に意識してほしいのは次の2点です。複数ページ(URL)があるアプリを、自分で構成でき...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第3章:Next.jsらしさ – Metadata

この課題のねらいこの演習は、「Next.jsらしいメタデータの設定」に慣れることが目的です。特に、title(ブラウザタブや検索結果のタイトル)description(検索結果の説明文)を、Next....
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第3章:Next.jsらしさ – 画像

この課題のねらいこの演習は、「Next.js らしい画像の扱い方=Imageコンポーネント」を体験するのがテーマです。ふつうの <img> ではなく next/image を使うことで、高速表示(自動...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第3章:Next.jsらしさ – CSS

この課題のねらいこの演習のテーマは「Next.js での CSS Modules の基本を、自分の手でちゃんと通すこと」です。ポイントは次の3つです。CSS Modules用のファイルを作るclass...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第3章:Next.jsらしさ – レイアウト

この課題のねらいこの演習は「Next.js らしいレイアウト」の感覚をつかむことが目的です。特に大事なのは、ページごとに毎回ヘッダーを書くのではなく、共通ヘッダーを layout.tsx にまとめるど...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第3章:Next.jsらしさ – ページ遷移

この課題のねらいこの演習は「Next.jsならではのページ遷移の感覚」をつかむのがテーマです。やることはシンプルですが、アプリっぽさが一気に増えるポイントでもあります。2つのページを作るLink コン...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:簡単 ToDo アプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「配列でタスクを管理して、画面を“描き直しながら”ToDoリストを動かす感覚をつかむこと」です。作るのは、ほんとにシンプルな ToDo アプリです。テキスト...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – ミニアプリ①

この課題のねらいここまでの「useState」「props」「コンポーネント分割」をぜんぶまとめて、小さな「カウンターアプリ」を完成させます。単なる練習問題ではなく、state で「今の値」を持つpr...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – コンポーネント分割

この課題のねらいこの演習のテーマは「コンポーネント分割」と「props を使った汎用化」です。つまり、こういう流れを体で覚えてもらうことが目的です。最初は 1 つのコンポーネントにベタ書きリスト表示部...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – 配列とmap

この課題のねらいこの演習は「配列 × map × React の描画」に慣れるためのものです。ここがわかると、「APIから取ってきた配列を一覧表示する」といった“実務のド真ん中”が一気にイメージしやす...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – 条件分岐

この課題のねらいこの演習は「React で条件分岐して表示を切り替える」感覚をつかむのがテーマです。やることはシンプルですが、実務でめちゃくちゃ使う考え方です。true / false で表示を切り替...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – イベント処理

この課題のねらいこの演習は「イベント処理 × useState」のセットに慣れることがテーマです。つまり、ボタンを押したら何かが変わる入力欄に文字を打ったら state に反映されるその state ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – useState

この課題のねらいこの演習は「useState を使って、画面が“動く”体験を自分の手で作る」のがテーマです。やることはシンプルですが、React の本質がギュッと詰まっています。useState で ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第2章:Reactの基本 – props

この課題のねらいこの演習は、「props の感覚を体に入れる」ためのものです。親コンポーネントから子コンポーネントへ値を渡す子コンポーネントでその値を使って表示する必要なら console.log で...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第1章:準備と超基礎 – コンポーネント

この課題のねらいこの演習のテーマは「コンポーネントに慣れること」です。やることはシンプルで、関数コンポーネントを自分で作るそれを画面に表示する慣れてきたら、コンポーネントを別ファイルに分けて再利用する...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第1章:準備と超基礎 – JSX基礎

この課題のねらいこの演習は、React の「見た目を書く言語」である JSX に慣れるためのものです。難しいことは一切いりません。JSXでただ文字を出すJSXの中でちょっとした計算をするJSXの中で変...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第1章:準備と超基礎 – フォルダ構造

この課題のねらいこの演習は「Next.js のフォルダ構造が頭の中でつながっているか」を確認するためのものです。特に大事なのは、app/page.tsx を触って「ここがトップページなんだ」と実感する...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第1章:準備と超基礎 – 開発環境構築

開発環境構築の演習のねらいこの課題は「Next.js を使えるようになる」ための一番最初の関門です。コードを書く前に、まずは1つ目に、Next.js プロジェクトを自分の PC 上に作る2つ目に、開発...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日)演習問題・課題 | 第1章:準備と超基礎 – React / Next.jsの理解

React / Next.js の理解を深める演習問題学習の最後に、あなた自身の言葉で理解を整理するための課題です。ここでは、ただ答えを書くのではなく、「なぜそう言えるのか」までかみ砕いて説明します。...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第5章:仕上げと次の一歩 – 振り返りと次の学習

ここまでで「できるようになったこと」この講座、かなりのボリュームを一気に駆け抜けました。まずは、あなたが今もう「できるようになっていること」を、あえて言語化しておきます。Reactまわりでできることコ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第5章:仕上げと次の一歩 – 最終アプリ実装

この章でやることの全体像ここまで「最終アプリ設計」までやってきたので、いよいよそれを実装 → デザイン調整 → 動作確認 → 修正の流れで形にしていきます。ここでは、前章の「講座管理ミニアプリ」(講座...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第5章:仕上げと次の一歩 – 最終アプリ設計

「最終アプリ設計」でやることの全体像ここまでで、単発の画面やミニアプリは作れるところまで来ています。ここから一歩進めて、複数画面があるデータを共通の前提で扱う実装の順番まで見通すという「小さいけれど一...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第5章:仕上げと次の一歩 – 簡単な設計練習

設計練習って何をやる時間かここまで、コードの書き方そのものはかなり身についてきています。でも実務に近づくと、いきなり「この画面作って」と言われます。つまり、「何をどう書くか」の前に、「どう分解して考え...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:入力チェックアプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「“入力された文字がOKかどうか”をプログラムに判断させる感覚をつかむこと」です。ただ文字を受け取るだけじゃなくて、未入力(空)のときに警告を出す。文字が長...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:強化版カウンターアプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「シンプルだけど“設計の考え方”が入ったカウンターアプリを作ること」です。ただの「+1ボタン」ではなく、複数ボタンを持つ。ボタンごとに役割を分ける(イベント...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – 「TypeScriptらしい書き方」の理解

「TypeScriptらしい書き方」って何を指しているのかまず前提をはっきりさせます。「TypeScriptらしい書き方」というのは、単に「: string とか : number をつけること」では...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – 基礎段階での型設計ルール

「型設計ルール」を決めておく意味最初に、なぜ「ルール」を意識した方がいいかから話します。TypeScript は、とりあえず書いてもそれなりに動いてくれる言語です。でも「何となく型を付ける」だけだと、...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – エラーにならないunion設計

なぜ「union型なのにすぐエラーになる」のかまず、よくあるつまずきから整理します。function printId(id: string | number) { console.log(id.toU...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – Discriminated Unionの考え方

まず「Discriminated Union」をざっくり日本語にすると難しいカタカナですが、意味はシンプルです。Discriminated Union(判別可能ユニオン)=「ある1つのプロパティの値に...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – 型の絞り込み(narrowing)

「型の絞り込み」とは何かを一言でつかむ型の絞り込み(narrowing)は、「最初はざっくりした型だったものを、条件分岐などを通して“より具体的な型”に狭めていくこと」です。TypeScript では...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – unionとintersectionの違い

まずイメージでつかむ:unionとintersectionは「または」と「かつ」最初に一番大事なことだけ頭に入れてください。A | B(union型)→ 「A または B」。どちらか一方ならOK。A ...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – intersection型の基本

intersection型は「AもBも両方持つ」型まず一言でいうと、intersection型(インターセクション型、&)は 「AかつB」=「Aの性質もBの性質も同時に持つ型」 です。対比でいうとこう...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – union型の共通プロパティ

「union型の共通プロパティ」とは何かまず前提から整理します。union型は「A か B かどちらか」の型でした。type User = { id: number; name: string;};t...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – union型とif分岐

union型とif分岐の関係をまずイメージでつかむunion型は「A か B かどちらか」という“選択肢のある型”でした。そして if 分岐は、「今この瞬間は A なのか B なのかを確かめるための問...
TypeScript

TypeScript | 基礎文法:Union・基本型操作 – union型の基本

union型は「AかBかどちらか」の型まずイメージからいきます。union型(ユニオン型)は、「この値は“これか、あれか”のどれかです」という“選択肢のある型」です。書き方はとてもシンプルで、型と型の...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 関数でよく出る型エラー

はじめに:型エラーは「怒られている」のではなく「守られている」関数まわりで出る型エラーは、最初かなりストレスになりますよね。でも本質的には、「その書き方だと、実行時にバグる可能性が高いよ」と Type...
TypeScript

TypeScript | 基礎文法:関数の基礎 – nullチェックの重要性

そもそも「nullチェック」って何のためにやるのかまず一番大事なところから。nullチェックは「そこに“あるはずのもの”が、本当にあるかを確認する行為」です。プログラムを書いていると、ついこう思いがち...
TypeScript

TypeScript | 基礎文法:関数の基礎 – in演算子による型ガード

「in演算子による型ガード」は何をしてくれるのかin 演算子による型ガードは、「このオブジェクトは、このプロパティを持っているか?」を調べることで、型を絞り込む仕組みです。人間の感覚だと、こうです。「...
TypeScript

TypeScript | 基礎文法:関数の基礎 – typeofによる型ガード

typeofによる型ガードとは何かtypeof による型ガードは、「値の実行時の型をチェックして、その結果をもとに TypeScript が変数の型を“狭くする”仕組みです。人間の感覚としてはこうです...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 型ガードの基礎

「型ガード」とは何かを一言でつかむまずイメージからいきます。型ガードは、「この if を通ったなら、この変数は“この型”だと安全に言えるよ」ということを、TypeScript にちゃんと分かってもらう...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 条件分岐と型推論

「条件分岐すると型も変わる」という感覚から始めるTypeScript のおいしいところは、if や switch で条件分岐すると、「そのブロックの中だけ型が狭くなる」 ことです。「条件でチェックした...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 戻り値で型が決まるケース

「戻り値で型が決まる」ってどういうことかふつうは「引数の型 → 戻り値の型」という流れで関数を考えますが、TypeScript では 「戻り値の書き方や宣言のしかたが、逆に“型”を決める・変化させる」...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 関数型エイリアス

関数型エイリアスってそもそも何?まず一言でいうと、関数型エイリアスは「関数の“形”に名前をつける仕組み」です。「この関数は、こういう引数を受け取って、こういう型を返す」という“関数の型”に、わかりやす...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 関数を変数に代入する型

「関数を変数に代入する」ときに型で何を約束しているかまず前提をそろえます。TypeScript では、「関数そのもの」も値として扱えて、変数に代入できます。function add(a: number...
TypeScript

TypeScript | 基礎文法:関数の基礎 – コールバック関数の型

「コールバック関数の型」とは何かまず、「コールバック関数」という言葉をちゃんと掴みましょう。コールバック関数は、「関数に“引数として渡される関数”」のことです。function doTwice(fn:...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 関数式の型

「関数式の型」とは何かまず言葉の整理からいきます。TypeScript で「関数式の型」といったとき、だいたい次のようなものを指します。const add = function (a: number,...
TypeScript

TypeScript | 基礎文法:関数の基礎 – アロー関数の型

アロー関数でも「型の考え方」は普通の関数と同じまず一番大事なところから。アロー関数でも、「引数の型」と「戻り値の型」を決める考え方は、普通の function とまったく同じです。// 通常の関数fu...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 可変長引数(rest)

可変長引数(rest)は「いくつ来るか分からない引数」を受け取る仕組みまずイメージから。可変長引数(rest 引数)は、「この関数、引数が 1 個かもしれないし、10 個かもしれない。数が決まっていな...
TypeScript

TypeScript | 基礎文法:関数の基礎 – デフォルト引数

デフォルト引数は「来なかったときの標準値」デフォルト引数は、「この引数が渡されなかったときは、代わりにこれを使ってね」という“標準値”をあらかじめ決めておく仕組みです。書き方はシンプルで、引数に = ...
TypeScript

TypeScript | 基礎文法:関数の基礎 – オプション引数

オプション引数は「渡してもいいし、渡さなくてもいい」引数まずイメージからいきます。オプション引数は、「この引数は“あってもなくてもいい”よ」ということを型で表すための仕組みです。書き方はとてもシンプル...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第5章:仕上げと次の一歩 – TypeScript超入門(必要最低限)

この章でやる「TypeScript超入門」のゴールここでは、Next.js × React を「実務に耐えるレベル」にぐっと近づけるために、TypeScript の必要最低限だけを押さえます。やること...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第5章:仕上げと次の一歩 – エラーメッセージの読み方

エラーは「敵」じゃなくて「ヒント」ここまで来ると、もうあなたは「Next.js × React でアプリを作れる人」です。ここから先で一番“差”がつくのは、エラーが出たときにどう向き合うかです。エラー...
TypeScript

TypeScript | 基礎文法:関数の基礎 – never型の基礎

never型は「絶対に起こらない」を表す型まず一番大事なイメージからいきます。never 型は、「ここには“値が存在しないはずだ”」「ここには“絶対に到達しないはずだ”」という場所を型で表すための特別...
TypeScript

TypeScript | 基礎文法:関数の基礎 – void型

void型は「値を返さないつもり」を表す型void 型は、「この関数は“意味のある値”を返さない」という意図を型で表すための特別な型です。function print(message: string)...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 戻り値型の省略

「戻り値型の省略」って、していいの?ダメなの?まず結論から言うと、TypeScript では 「戻り値型は省略しても動く」 し、「でも省略しない方がいい場面もたくさんある」 です。function a...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 戻り値型

戻り値型って何を約束しているのか関数の「戻り値型」は、「この関数は、呼び出されたときに“最終的にどんな型の値を返すか”の約束を書く場所です。function greet(name: string): ...
TypeScript

TypeScript | 基礎文法:関数の基礎 – 関数の引数型

関数の引数型って何をしているのかまず一番シンプルに言うと、「この関数は、どんな“形”の値を受け取るのかを約束する」のが引数型です。function add(a: number, b: number):...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – 実務でのオブジェクト設計感覚

実務でのオブジェクト設計は「現実世界のモデル化」から始まるまず大前提として、実務でのオブジェクト設計は、「TypeScript の文法をどう書くか」より前に、「現実の世界をどう切り取るか」から始まりま...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – オブジェクト型エラーの読み方

「オブジェクト型エラーの読み方」のゴールを決めるTypeScript のエラーメッセージは、最初は「英語の塊」にしか見えないと思います。でも、よく出るパターンは決まっていて、「どこを見れば“何がズレて...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – keyof typeof の組み合わせ

「keyof typeof」は値から「キーの型」を取り出す最強コンボまず結論からいきます。keyof typeof は、「実際のオブジェクト(値)から、そのプロパティ名の“型”を自動で作る」ための組み...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – typeof の基本

TypeScript の typeof は「値から型を取り出す道具」まず一番大事なポイントからいきます。TypeScript の typeof は、「ある値(変数・オブジェクトなど)から、その“型”を...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – keyof の基本

keyof は「プロパティ名だけを取り出すための型演算子」keyof は、「オブジェクト型から“プロパティ名”だけを取り出して、新しい型を作る」ための演算子です。まずは一番シンプルな例から見てみましょ...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – オブジェクトの分割代入

オブジェクトの分割代入って何をしているのかまずイメージからいきましょう。オブジェクトの分割代入は、「オブジェクトの中から、欲しいプロパティだけを“取り出して”変数にする書き方」です。const use...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – スプレッド構文と型

スプレッド構文ってそもそも何をしているのかスプレッド構文(...)は、「あるオブジェクト(や配列)の中身を“広げて”新しいオブジェクト(や配列)を作る記法」です。const user = { name...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – 型安全なオブジェクト更新

「型安全なオブジェクト更新」とは何を守ることかまずゴールをはっきりさせます。型安全なオブジェクト更新とは、「オブジェクトを書き換えるときに、存在しないプロパティ名を書いたり、間違った型の値を入れたりし...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – 部分一致が通らない理由

「部分一致が通らない」ってどういうことかまず、ここでいう「部分一致」はだいたいこんな状況を指しています。type User = { name: string; age: number;};const ...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – excess property check

excess property check とは何か(ざっくりイメージ)excess property check(余剰プロパティチェック)は、「その型に存在しないプロパティを、オブジェクトリテラルに...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:超初級編

1日目のゴールと全体の流れ1日目のテーマは「JavaScriptに触ってみて、“動いた!”を体で感じること」です。理解度は50%で十分。それよりも「自分の手で打ったコードが反応した」という経験を作りた...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – オブジェクトの再代入

「オブジェクトの再代入」とは何を指しているのかまず言葉の整理からいきます。ここでいう「オブジェクトの再代入」は、変数に入っているオブジェクトそのものを、別のオブジェクトに入れ替えることを指します。ty...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – ネストしたオブジェクト型

ネストしたオブジェクト型とは何か(まずはイメージから)ネストしたオブジェクト型は、「オブジェクトの中に、さらにオブジェクトが入っている形を、そのまま型で表現したもの」です。現実のデータって、ユーザーの...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – readonlyプロパティ

readonlyプロパティとは何か(「一度決めたら変えない」約束)readonly プロパティは、「このプロパティは一度値を入れたら、あとから書き換えてはいけない」という約束を型レベルで表す仕組みです...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – optionalプロパティ

optionalプロパティとは何か(「あってもなくてもいい」項目)オブジェクトのプロパティには、「必ず必要なもの」と「なくてもよいもの」があります。TypeScriptでは、「なくてもよいプロパティ」...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – type と interface の違い

まずざっくり:「どっちも“型を定義する道具”」type も interface も、「型に名前をつける」ための仕組みです。どちらもオブジェクトの形を表現できます。interface User { id...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – interface の基本

interface は「オブジェクトの設計図」interface は、オブジェクトの「形(どんなプロパティを持つか)」を表す設計図です。「このオブジェクトは、こういうプロパティを持っていて、その型はこ...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – 型エイリアスの作成

型エイリアスとは何か(ざっくり言うと「型にあだ名をつける」)型エイリアスは、既にある型に「別名(あだ名)」をつける仕組みです。type キーワードを使って、「この型をこれからはこの名前で呼ぶね」と宣言...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – オブジェクトリテラルの型推論

「オブジェクトリテラルの型推論」とは何をしてくれているのかオブジェクトリテラルとは、{ ... } で直接書いたオブジェクトのことです。const user = { name: "Taro", age...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – プロパティに型を付ける

「プロパティに型を付ける」とは何をしているのかオブジェクトは「名前付きの値の集まり」です。TypeScriptでは、その「名前付きの値」1つ1つに対して、「ここにはこういう型の値だけ入ってほしい」とい...
TypeScript

TypeScript | 基礎文法:オブジェクト基礎 – オブジェクト型の基本

オブジェクト型とは何か(まずはざっくりイメージ)オブジェクト型は、「関連する複数の値を、1つのまとまりとして扱うための型」です。name や age のような「項目(プロパティ)」と、その型をセットで...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 安全な分割

安全な分割とは何か分割代入は「欲しい値だけ」を短く取り出せますが、未定義(undefined)や欠落、深いネスト、null、宣言順の問題で簡単にエラーになります。ここが重要です:安全な分割の基本は「外...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 値の入れ替え

値の入れ替え(スワップ)とは何か分割代入を使うと、2つ以上の変数の値を“一時変数なし”で入れ替えられます。ここが重要です:左側のパターンに「新しい並び」を書き、右側に「古い並び」を配列で渡すだけ。読み...
JavaScript

JavaScript | ES6+ 文法:分割代入 – rest 要素

rest 要素とは何かrest 要素(残余要素)は、分割代入の左側で ...rest のように書き、“取りきれなかった残り全部”を配列やオブジェクトとしてまとめて受ける記法です。ここが重要です:配列な...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 一部要素のスキップ

一部要素のスキップとは何か配列の分割代入では、左側のパターンにカンマだけを書いて「その位置の要素を受け取らない」ことができます。ここが重要です:スキップは“要素の位置”で意味を表すので、読み手が「どこ...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 関数引数での使用

関数引数での分割代入とは何か関数のパラメータ部分で分割代入を使うと、渡された配列・オブジェクトから「必要な値だけ」を直接取り出して、引数の宣言に“意図(何を使うのか、欠けたらどうするのか)”を明示でき...
JavaScript

JavaScript | ES6+ 文法:分割代入 – ネスト分割

ネスト分割とは何かネスト分割(ネストした分割代入)は、オブジェクトや配列の“入れ子構造”から、必要な値だけを階層に沿って取り出す書き方です。ここが重要です:左側のパターン(構造の形)に合わせて、右側の...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 変数名変更

変数名変更(エイリアス)とは何か分割代入の「変数名変更」は、オブジェクトのプロパティ名を“別名の変数”へ取り出す書き方です。ここが重要です:{ prop: alias } の形で「右側のオブジェクトの...
JavaScript

JavaScript | ES6+ 文法:分割代入 – デフォルト値

デフォルト値(既定値)とは何か分割代入のデフォルト値は、「取り出そうとした場所に値が無い(undefined)」とき、代わりに使われる“埋め草”です。ここが重要です:デフォルト値は undefined...
JavaScript

JavaScript | ES6+ 文法:分割代入 – オブジェクトの分割代入

オブジェクトの分割代入とは何かオブジェクトの分割代入は、オブジェクトから「欲しいプロパティだけ」を取り出し、同名の変数に一気に割り当てる ES6 の書き方です。ここが重要です:左側のパターン { id...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 配列の分割代入

配列の分割代入とは何か配列の分割代入は、配列の「位置」に合わせて、複数の変数へ一気に値を取り出す書き方です。ここが重要です:左側のパターン に、右側の配列の先頭から順に対応します。足りない要素は un...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第4章:実用的React – ミニアプリ③

ここで作るTODOアプリのゴールここまでで、state・props・イベント・フォーム・配列表示・状態設計など、React / Next.js の「部品」は一通り触ってきました。ここではそれを全部まと...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第4章:実用的React – 状態設計の考え方

状態設計の全体イメージReact / Next.js を「とりあえず動かす」ところから一歩進むと、必ずぶつかるのが「状態(state)をどこに持つか問題」です。コンポーネントを分割すればするほど、どこ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第4章:実用的React – フォーム処理

フォーム処理の全体イメージReact / Next.js で「実用的なアプリ」を作ろうとすると、必ず出てくるのがフォームです。ログインフォーム、問い合わせフォーム、検索フォーム、プロフィール編集画面…...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第4章:実用的React – ローディング・エラー処理

ローディング・エラー処理がなぜ「実務で必須」なのかアプリが「ちゃんと動く」ことと、「ちゃんと使える」ことは別物です。API からデータを取ってくるような画面では、必ずこういう瞬間が生まれます。データを...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:フォームバリデーションアプリ

この7日間のゴールと全体像この 7 日間は「ログインフォーム風のミニアプリ」を題材に、メールアドレスとパスワードの入力チェックを通して、正規表現での形式チェックエラー表示と submit 制御ユーザー...
TypeScript

TypeScript | 基礎文法:配列・タプル – 配列操作時の型エラー対処

よくある「配列操作の型エラー」はどこから来るのかTypeScriptで配列を触り始めると、かなりの確率で型エラーにぶつかります。でも、その多くは「TypeScriptが何を守ろうとしているか」が分かる...
TypeScript

TypeScript | 基礎文法:配列・タプル – forEachと型

forEachは「配列をなめるだけ」のメソッドforEach は、配列の各要素に対して順番に処理を実行するだけのメソッドです。map や filter と違って、戻り値を使って新しい配列を作ったりはし...
TypeScript

TypeScript | 基礎文法:配列・タプル – reduceの型指定

reduceの「型指定」とは何を決めるものかreduce は、配列を「1つの値」に畳み込むメソッドです。TypeScript的に一番大事なのは、「途中経過(累積値:acc)の型をどう扱うか」です。この...
TypeScript

TypeScript | 基礎文法:配列・タプル – findの戻り値型

findの基本的な動きと戻り値のイメージfind は、配列の中から「条件を満たす最初の要素」を1つだけ返すメソッドです。もし条件を満たす要素が1つも見つからなかった場合は、undefined を返しま...
TypeScript

TypeScript | 基礎文法:配列・タプル – filterの型推論

filterの型推論は「何が残る配列か」を推理してくれる仕組みfilter は、「条件を満たす要素だけを残して新しい配列を作る」メソッドです。TypeScript はここで、「元の配列の要素の型」と「...
TypeScript

TypeScript | 基礎文法:配列・タプル – 配列mapの型推論

「配列mapの型推論」とは何をしてくれているのかmap は、「配列の各要素を変換して、新しい配列を作る」メソッドです。TypeScriptは、このときに「元の配列の要素の型」と「変換関数の戻り値の型」...
TypeScript

TypeScript | 基礎文法:配列・タプル – スプレッド構文と型

スプレッド構文とは何か(型の世界でどう見えるか)スプレッド構文 ... は、配列やオブジェクトの「中身を展開する」ための記法です。配列なら「要素をバラして別の配列に入れ直す」、オブジェクトなら「プロパ...
TypeScript

TypeScript | 基礎文法:配列・タプル – 可変長タプル

可変長タプルとは何か(「一部だけ長さが伸びるタプル」)タプルは本来「要素数が固定」の型ですが、「ここまでは固定、それ以降は同じ型がいくつでも続いていい」という形を表現できるのが「可変長タプル(可変長タ...
TypeScript

TypeScript | 基礎文法:配列・タプル – タプルとreadonly

タプルとreadonlyの関係をざっくりイメージするタプルは「要素の数・順番・型が決まっている小さなセット」でした。ここに readonly を組み合わせると、「形も中身も変えない前提のタプル」を作れ...
TypeScript

TypeScript | 基礎文法:配列・タプル – タプルの要素アクセス

タプルの要素アクセスは「位置ごとに型が決まっている」のがキモタプルは、「何番目に何の型が入るか」まで型で決まっている配列でした。だからこそ、要素にアクセスしたときも「どの位置を取るか」で型が変わります...
TypeScript

TypeScript | 基礎文法:配列・タプル – タプルと配列の違い

まずざっくりしたイメージの違い同じ「[]」を使うのでややこしいんですが、役割はけっこう違います。配列:「同じ型の値が、いくつ並ぶか分からない入れ物」タプル:「要素の数・順番・型が決まっている、小さな“...
TypeScript

TypeScript | 基礎文法:配列・タプル – タプルの型固定

「タプルの型固定」とは何かタプルの一番大きな特徴は、「要素の数・順番・型がすべて固定される」ことです。普通の配列は「number が何個でも」「string が何個でも」という“長さフリー”な構造です...
TypeScript

TypeScript | 基礎文法:配列・タプル – タプルの基本構文

タプルの基本構文の全体像タプルは、「要素の数・順番・型が決まっている配列」を表すための構文です。基本形はとてもシンプルで、「配列リテラルの [] の中に、位置ごとの型をカンマ区切りで並べる」だけです。...
TypeScript

TypeScript | 基礎文法:配列・タプル – タプルとは何か

タプルとは何か(「位置に意味がある配列」)タプルは、ざっくり言うと「要素の数と順番と型が決まっている配列」です。普通の配列は「同じ型の値がズラッと並ぶもの」ですが、タプルは「1番目はこれ、2番目はこれ...
TypeScript

TypeScript | 基礎文法:配列・タプル – readonly配列

readonly配列とは何か(「中身を書き換えられない配列」)readonly配列は、一言でいうと「中身を変更できない配列」です。「参照はするけど、追加・削除・書き換えはさせたくない」というときに使い...
TypeScript

TypeScript | 基礎文法:配列・タプル – union型配列

union型配列とは何か(まずイメージから)union型配列は、「この配列には“いくつかの型のどれか”が入る」ということを型で表現したものです。たとえば「number か string のどちらかが入...
TypeScript

TypeScript | 基礎文法:配列・タプル – 配列に異なる型を入れた場合

「配列に異なる型を入れる」と TypeScript はどう解釈するかまず前提として、TypeScript は「配列の中身(要素)を見て、その配列の型を決める」言語です。なので、配列に異なる型を混ぜると...
TypeScript

TypeScript | 基礎文法:配列・タプル – 配列の型推論

配列の型推論とは何かTypeScriptは、わざわざ「: string[]」のように型を書かなくても、初期値から配列の型を自動で推論してくれます。つまり、次のように書いた瞬間に、コンパイラは「これは ...
TypeScript

TypeScript | 基礎文法:配列・タプル – string[] と Array<string>

string[] と Array<string> は「意味は同じ」最初に結論から言うと、string[] と Array<string> は意味はまったく同じです。どちらも「string 型の要素だけ...
TypeScript

TypeScript | 基礎文法:配列・タプル – 配列型の書き方

配列型とは何かをまずイメージする配列は「同じ種類の値を、順番付きで並べたもの」です。TypeScriptでは、「この配列には何の型の要素が入るのか」を型として表現できます。const numbers ...
TypeScript

TypeScript | 基礎文法:変数・基本型 – unknown型との違い

any型とunknown型は「似て非なるもの」どちらも「どんな値でも代入できる型」ですが、性格は真逆です。ざっくり言うと、any型:型チェックをほぼ無効化する「なんでもアリモード」unknown型:何...
TypeScript

TypeScript | 基礎文法:変数・基本型 – any型の危険性

any型が「一番危険な型」と言われる理由any 型は、「何でも入るし、どこにでも代入できる」特別扱いの型です。一見すると「エラーが消えて便利」に見えますが、その代わりにTypeScriptの一番大事な...
TypeScript

TypeScript | 基礎文法:変数・基本型 – any型とは何か

any型とは何か(TypeScriptの「なんでもアリ」モード)any 型は、一言でいうと「TypeScriptの型チェックをほぼ無効化するための型」です。number や string のように「こ...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 型エラーの典型パターン

型エラーの「典型パターン」を知っておく意味型エラーは無限にあるように見えて、実はよく出るパターンはかなり限られています。この「典型パターン」を押さえておくと、エラーを見た瞬間に「ああ、これはあのパター...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 型エラーの読み方

型エラーは「TypeScriptからの手紙」だと思って読むまず前提として、型エラーは「お前のコードがダメ」と責めてくるものじゃなくて、「ここがこうズレてるよ」と教えてくれるかなり親切な手紙です。だから...
TypeScript

TypeScript | 基礎文法:変数・基本型 – as const の意味

as const は「この値をそのままの形で固定して」と伝えるスイッチas const は、TypeScript に対してこう宣言するためのものです。「この値は“変わらない前提”だから、できるだけその...
TypeScript

TypeScript | 基礎文法:変数・基本型 – booleanリテラル型

booleanリテラル型とは何かbooleanリテラル型は、「true だけ」「false だけ」といった、特定の真偽値だけを許可する型です。普通の boolean 型は「true か false の...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 数値リテラル型

数値リテラル型とは何か数値リテラル型は、「特定の数値だけを許可する型」です。普通の number 型は「どんな数値でもOK」ですが、数値リテラル型は「この変数には 1 しか入れてはいけない」「0 か ...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 文字列リテラル型

文字列リテラル型とは何か文字列リテラル型は、「特定の文字列だけを許可する型」です。普通の string 型は「どんな文字列でもOK」ですが、文字列リテラル型は「この文字列“だけ”OK」という、もっと狭...
TypeScript

TypeScript | 基礎文法:変数・基本型 – リテラル型とは

リテラル型とは何か(ざっくりイメージ)リテラル型は、「特定の値そのものを型として扱う」ための仕組みです。普通の string 型は「どんな文字列でもOK」、number 型は「どんな数値でもOK」です...
TypeScript

TypeScript | 基礎文法:変数・基本型 – const時の型の固定

const は「値」と「型」をその場で固定する宣言const は「再代入できない変数」を宣言するキーワードですが、TypeScriptでは型の固定のされ方にも特徴があります。const で宣言した瞬間...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 再代入時の型チェック

「再代入時の型チェック」とは何をしているのかTypeScriptは「一度決めた型に対して、その後もずっと一貫しているか」をコンパイル時にチェックします。変数に最初に値を入れた瞬間、あるいは型注釈を書い...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 明示型と推論型の使い分け

「明示型」と「推論型」とは何かTypeScriptには、型を扱う2つのスタイルがあります。ひとつは「明示型」——自分で : string や : number のように型を書いて宣言するやり方。もうひ...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 型推論の仕組み

型推論とは何か型推論(type inference)は、「あなたが書いたコードから、TypeScriptが自動的に型を推測してくれる仕組み」です。毎回すべての変数や関数に型注釈を書かなくても、初期値や...
TypeScript

TypeScript | 基礎文法:変数・基本型 – 型注釈の書き方

型注釈とは何か型注釈(type annotation)は、「この変数・この引数・この戻り値には、こういう型の値しか入れません」とコードの中で宣言するための書き方です。TypeScriptでは、変数名や...
TypeScript

TypeScript | 基礎文法:変数・基本型 – null / undefined

null / undefined は「値がない」を表す特別な2人まず大枠からいきます。null と undefined は、どちらも「値がない状態」を表すための特別な値です。ただし、まったく同じ意味で...
TypeScript

TypeScript | 基礎文法:変数・基本型 – boolean型

boolean型とは何かboolean型は、「真か偽か」を表すための型です。取れる値はたった2つ、true(真)か false(偽)だけ。「ログインしているか?」「在庫はあるか?」「エラーが起きたか?...
TypeScript

TypeScript | 基礎文法:変数・基本型 – number型

number型とは何かTypeScriptのnumber型は、「数値」を表すための基本型です。整数も小数も、正の数も負の数も、すべてまとめてnumberとして扱います。JavaScript/TypeS...
TypeScript

TypeScript | 基礎文法:変数・基本型 – string型

string型とは何かTypeScriptのstring型は、「文字列」を表すための基本型です。人の名前、メッセージ、住所、IDなど、「文字の並び」で表現されるものはすべてstringで扱います。Ty...
TypeScript

TypeScript | 基礎文法:変数・基本型 – let / const の違い

let と const は「変えられるかどうか」を表すスイッチまず大事な前提として、TypeScript(というかモダンなJavaScript)では、変数宣言に var ではなく let と cons...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – VSCodeでのTypeScript補完確認

VSCodeはTypeScriptと相性がいい「賢いノート」VSCodeは、TypeScriptを使うときにほぼ標準と言っていいエディタです。理由はシンプルで、「TypeScriptの型情報を理解して...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – コンパイルの流れ(ts → js)

TypeScriptコードはそのままでは動かないまず大前提として、ブラウザも Node.js も TypeScript を「そのまま」実行することはできません。理解できるのはあくまで JavaScri...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – strict モードの意味

strict モードとは何かTypeScript の strict モードは、一言でいうと「型チェックを最大限きびしくするスイッチ」です。tsconfig.json の compilerOptions...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – tsconfig.json の役割

tsconfig.jsonとは何かtsconfig.json は、TypeScript プロジェクトの「設定ファイル」です。TypeScript コンパイラ(tsc)が「どのファイルを、どんなルールで...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – TypeScriptのインストール

TypeScriptをインストールする前に知っておく前提TypeScriptは単体で動くわけではなく、「Node.js」と「npm」が前提になります。npmはNode.jsに付属しているパッケージ管理...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – npm / npx の違い

npmとnpxは「似てるけど役割が違う道具」npmとnpxは、どちらもNode.jsをインストールすると一緒についてくるコマンドです。名前が似ているのでややこしいですが、役割はけっこう違います。ざっく...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – Node.jsの役割

Node.jsとは何かと、TypeScriptとの関係Node.jsは「ブラウザの外でJavaScriptを動かすための実行環境」です。中身では、もともとChromeなどのブラウザで使われている高速な...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – TypeScriptが解決する問題

TypeScriptが解決しようとしている世界の悩みTypeScriptは「かっこいい新しい言語を作りたかったから」生まれたわけではなく、「JavaScriptで本気の開発をするときに、みんながハマっ...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – JavaScriptとの違い

TypeScriptとJavaScriptの関係と前提理解TypeScriptは「JavaScriptを拡張した言語」で、よく「JavaScriptのスーパーセット」と呼ばれます。つまり、JavaSc...
TypeScript

TypeScript | 基礎文法:環境・前提理解 – TypeScriptとは何か

TypeScriptとは何かTypeScriptは「JavaScriptをもっと書きやすく、安全にしたバージョン」と考えるとイメージしやすいです。技術的には「JavaScriptのスーパーセット(上位...
Python

Python | Web フレームワーク:Django のモデル

概要(Django のモデル=「DBテーブルを Python クラスとして扱う仕組み」)Django の「モデル」は一言でいうと、「データベースのテーブルを、Python のクラスとして表現したもの」...
Python

Python | Web フレームワーク:テンプレート(Jinja2)

概要(テンプレート=「HTML の型にデータを流し込む仕組み」)テンプレート(Jinja2)は一言でいうと、「HTML のひな型(型)をあらかじめ用意しておいて、Python のデータをそこに流し込ん...
Python

Python | Web フレームワーク:ドキュメント UI

概要(ドキュメント UI=「API 仕様書をブラウザで触れる画面」にしたもの)ドキュメント UI は、「API の仕様を、人間がブラウザ上で見たり、その場で試したりできる画面」のことです。FastAP...
Python

Python | Web フレームワーク:OpenAPI

概要(OpenAPI=「API の設計図を機械と人間で共有するためのフォーマット」)OpenAPI は、「この Web API は、どんな URL があって、どんな入力を受け取り、どんなレスポンスを返...
Python

Python | Web フレームワーク:静的ファイル

概要(静的ファイル=「ただ置いておくだけで中身が変わらないファイル」)静的ファイルは、「サーバー側で中身を計算したり書き換えたりせず、そのままブラウザに渡すだけのファイル」のことです。具体的には、よく...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – 従来文字列との比較

何が違うのか(テンプレート文字列 vs 従来の文字列)テンプレート文字列はバッククォートで囲み、${...} に式をそのまま埋め込めて、複数行も“書いたとおり”に保持します。従来の文字列(' や ")...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – 可読性向上パターン

可読性向上パターンの考え方テンプレート文字列は“見た目をコードにそのまま表せる”のが強みです。ここが重要です:見た目(レイアウト)とロジック(計算・整形)を分離し、式の埋め込みは短く保つことで、初心者...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – XSS 対策の注意点

テンプレート文字列と XSS の基本認識テンプレート文字列はバッククォートで囲み、${...} に式を埋め込める便利な仕組みですが、ここが重要です:テンプレート文字列自体には自動エスケープ機能がありま...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – タグ付きテンプレート

タグ付きテンプレートとは何かタグ付きテンプレートは、テンプレート文字列の先頭に“関数名”を置き、文字列と式の分解結果をその関数で“加工してから”最終文字列を得る仕組みです。ここが重要です:通常のテンプ...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – HTML 生成用途

テンプレート文字列で HTML を作る意味テンプレート文字列はバッククォートで囲み、${...} に式を埋め込めるため、“見た目どおり”に HTML 断片を組み立てられます。ここが重要です:複数行とイ...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – 関数呼び出し埋め込み

関数呼び出し埋め込みとは何かテンプレート文字列はバッククォートで囲み、${ ... } の中に“任意の式”を置けます。その式に関数呼び出しを書けば、戻り値が文字列の中にそのまま埋め込まれます。ここが重...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – 条件式埋め込み

条件式埋め込みとは何かテンプレート文字列はバッククォートで囲み、${...}の中に“式”を書いて評価結果を挿入できます。ここが重要です:if/else をそのまま書くのではなく、三項演算子や論理演算子...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – 改行保持

改行保持とは何かテンプレート文字列はバッククォートで囲むだけで、書いた改行や空白をそのまま保持します。ここが重要です:'\n' を手書きしなくても、テンプレート内の改行が実際の文字列に含まれるため、H...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – 式の埋め込み

式の埋め込みとは何かテンプレート文字列はバッククォートで囲み、${ ... } に“式”を入れて、その評価結果を文字列内に埋め込めます。ここが重要です:式は変数だけでなく、計算、関数呼び出し、条件(三...
JavaScript

JavaScript | ES6+ 文法:テンプレート文字列 – バッククォート

テンプレート文字列とは何かテンプレート文字列は、バッククォート()で囲む新しい文字列リテラルです。ここが重要です:式の埋め込み(${...})、複数行の文字列、可読性の高い整形が“素の文法”で書けます...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:ローカル保存対応メモ帳

この7日間のゴールと全体像この 7 日間は「ローカル保存対応メモ帳」を題材に、ブラウザだけで完結する“ちゃんとした”アプリを作りながら、次の3つを体に入れることがゴールです。localStorage ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第4章:実用的React – データ取得(fetch)

APIとは何か「データください」をお願いするための窓口React / Next.js で「データを画面に表示したい」とき、どこかからデータを「取ってくる」必要があります。そのときに話に出てくるのが A...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第4章:実用的React – useEffect入門

useEffectとは「画面の変化に合わせて“副作用”を実行する仕組み」ここまで扱ってきた useState は、「値(状態)を覚えておく仕組み」でした。useEffect は、それとは別の役割を持っ...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – 高階関数との相性

高階関数とは何か高階関数は「関数を“引数として受け取る”、または“関数を返す”関数」のことです。関数を値として扱えることで、ロジックの差し替え・再利用・合成が簡単になります。ここが重要です:ES6+ ...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – パラメータ分解

パラメータ分解(分割代入)とは何かパラメータ分解は、関数の引数に「オブジェクトや配列をその場で分解して、必要な部分だけ取り出す」ES6の構文です。ここが重要です:関数シグネチャ(引数の書き方)に“必要...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – 残余引数(…args)

残余引数(...args)とは何か残余引数(rest parameters)は、関数の仮引数に ...args のように書くと、渡された引数を“配列としてまとめて”受け取る仕組みです。ここが重要です:...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – デフォルト引数

デフォルト引数とは何かデフォルト引数は、関数のパラメータに「未指定(または undefined)のときに使われる初期値」を直接書ける仕組みです。ここが重要です:未指定・undefined のときだけ既...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – メソッド短縮記法

メソッド短縮記法とは何かメソッド短縮記法は、オブジェクトやクラスの「関数プロパティ」を function キーワードなしで、name() { ... } の形で簡潔に定義できる ES6 の構文です。こ...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – コールバックでの利点

コールバックとは何かコールバックは「関数に“後で呼んでね”と渡しておく関数」です。ES6+ では、アロー関数・レキシカル this・Promise/async との相乗効果で、コールバックが短く安全に...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – 暗黙の return

暗黙の return とは何か暗黙の return は、アロー関数で本体が“1つの式”だけのときに、return キーワードを書かなくてもその式の評価結果が返る仕組みです。ここが重要です:波括弧 {}...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – arguments 非対応

arguments 非対応とは何かアロー関数は「自分専用の arguments(可変長引数の擬似配列)」を持ちません。ここが重要です:従来の function なら arguments で渡された全引...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – this の束縛差

this の束縛差とは何かthis は「関数が“どのオブジェクトを対象に動くか”を指す特別な値」です。ここが重要です:従来の function は“呼び出し方”で this が決まり、アロー関数は“定...
JavaScript

JavaScript | ES6+ 文法:関数の進化 – アロー関数構文

アロー関数とは何かアロー関数(arrow function)は、ES6 で導入された“短く書けて、this が静的(レキシカル)に決まる”新しい関数記法です。ここが重要です:function キーワー...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスの制約

「ジェネリクスの制約」を一言でいうとJava のジェネリクスには、「こう書けたら便利そうだけど、仕様上あえて禁止されていること」 がいくつもあります。new T() が書けないT[](ジェネリック配列...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスメソッド

ジェネリクスメソッドを一言でいうとジェネリクスメソッドは、「メソッドの“中だけ”で使える型パラメータを宣言して、そのメソッドを型安全に汎用化する仕組み」です。public static <T> T f...
Java

Java | Java 詳細・モダン文法:ジェネリクス – PECS 原則

PECS 原則を一言でいうとPECS 原則は、ジェネリクスのワイルドカードを使うときの合言葉です。Producer Extends, Consumer Super「値を“生産する(取り出す)側”には ...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 下限境界(super)

下限境界(super)を一言でいうとジェネリクスの下限境界 ? super T は、「このコレクションは T か、その“親クラスたち”のどれかを要素型として持つ。だから、T を入れるのは安全だよ」と宣...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 上限境界(extends)

上限境界(extends)を一言でいうとジェネリクスの上限境界(extends)は、「この型パラメータには、あるクラス T か、そのサブクラスだけを許可します」と制限をかけるための仕組みです。<T e...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:ToDoアプリ(設計力強化編)

この7日間のゴールと全体像この 7 日間は「ToDoアプリ」を題材に、ただ動くものではなく「設計できる人」になることを狙います。テーマは次の 3 つです。状態管理(state):アプリの「今の状態」を...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ワイルドカード(?)

ワイルドカード(?)を一言でいうとジェネリクスのワイルドカード ? は、「ここには“何らかの型”が入るけど、具体的な型は気にしない・決めたくない」というときの “あいまいな型パラメータ”です。List...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスと配列の違い

テーマの全体像を先にまとめるジェネリクス(List<String> など)と配列(String[])は、どちらも「同じ型の要素をたくさん持つ」ために使いますが、中身のルールやチェックのタイミングがかな...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 型消去の概念

型消去を一言でいうと型消去(type erasure)は、「ジェネリクスの <T> みたいな型情報は“コンパイル時だけ”に使われて、コンパイル後のクラスファイル(実行時)からは消えてしまう」という仕組...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 型パラメータの宣言

「型パラメータの宣言」を一言でいうと型パラメータの宣言は、「クラスやメソッドの“名前の横に” <T> などを書いて、ここには後で具体的な型をはめ込みますよ、と宣言すること」です。class Box<T...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスとは

ジェネリクスを一言でいうとジェネリクス(generics)は、「クラスやメソッドの中に “型の穴” を開けておいて、使うときにその穴に好きな型をはめられる仕組み」です。List<String> や M...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第3章:Next.jsらしさ – 簡単なミニアプリ②

ここで作る「Next.jsらしい」ミニアプリの全体像ここまでで、React の基本(コンポーネント・state・props・イベント)Next.js の基本(ページ分割・Link・layout・Met...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第3章:Next.jsらしさ – Metadata(SEO基礎)

Metadataとは何か(Next.jsでの位置づけ)まず「Metadata(メタデータ)」という言葉から整理します。これは、ページの「裏側の情報」です。HTML でいうと <head> の中に書く情...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第3章:Next.jsらしさ – 画像表示(Image)

Next.jsの画像表示の全体イメージ画像を出したいとき、ふつうのHTMLなら <img src="..."> を使いますよね。Next.js でも <img> は使えますが、「Next.jsらしさ」...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第3章:Next.jsらしさ – CSSの当て方

Next.jsでCSSをどう当てるかの全体像React / Next.js は「JSXで見た目を書く」ので、最初は「CSSはどこに書けばいいの?」となりがちです。Next.js ではいくつか方法があり...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第3章:Next.jsらしさ – レイアウト(layout.tsx)

Next.js のレイアウトの全体像React 単体だと、ページごとにヘッダーやフッターを書きがちです。でも実際のサイトを想像すると、ほとんどのページで「共通の部分」があります。画面の一番上にあるヘッ...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第3章:Next.jsらしさ – ページ遷移(Link)

「Next.jsらしさ」とページ遷移ここまでで「1ページの中で動く React」はかなりイメージできてきたと思います。ここからは「Next.js らしさ」がグッと出てくるところ――ページ遷移と複数ペー...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – グローバル汚染回避

グローバル汚染とは何かグローバル汚染は「意図せずグローバルスコープ(window/globalThis)に変数や関数が増えてしまい、別コードと衝突や上書きが起きる」状態です。衝突は“同じ名前”が複数フ...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – for 文での let

for 文での let とは何かfor 文での let は「ループの各反復ごとに“新しい束縛”を作る」宣言です。ここが重要です:i のようなインデックスを let で宣言すると、反復ごとに独立した値が...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – 定数オブジェクトの注意点

定数オブジェクトとは何かconst で宣言したオブジェクトは「変数がどのオブジェクトを指すか」が固定されます。ここが重要です:const は参照を固定するだけで、中身(プロパティや配列要素)は変更可能...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – 再宣言エラー

再宣言エラーとは何か再宣言エラーは「同じスコープ内で、同じ名前の変数をもう一度宣言しようとすると起きるエラー」です。ES6 以降、let と const は“同スコープの再宣言”を禁止します。ここが重...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – var との挙動差

var と ES6(let/const)の根本的な違いvar は“関数スコープ+巻き上げ(hoisting)あり、再宣言可能”という古い挙動、let/const は“ブロックスコープ+TDZ(宣言前ア...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – TDZ(Temporal Dead Zone)

TDZ(Temporal Dead Zone)とは何かTDZ は「let/const で宣言される変数が、宣言位置まで“存在しない扱い”になるゾーン」のことです。ここが重要です:TDZ 中にその変数へ...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – ブロックスコープ

ブロックスコープとは何かブロックスコープは「波括弧 { } で囲まれた“その範囲内だけ”有効な変数の生存範囲」です。ES6 以降、let と const はブロックスコープを持ち、宣言されたブロックの...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – 再代入不可の意味

再代入不可とは何か「再代入不可」は、同じ変数名に“別の値(参照)をもう一度割り当てることができない”という意味です。ES6 の const はブロックスコープで、宣言した後にその変数へ新しい値を入れ直...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – const の仕様

const とは何かconst は ES6 で導入された“ブロックスコープの再代入不可な変数宣言”です。ここが重要です:const は「宣言したブロック内でのみ有効」「同じスコープで再宣言できない」「...
JavaScript

JavaScript | ES6+ 文法:変数・宣言の進化 – let の仕様

let とは何かlet は ES6 で導入された“ブロックスコープの再代入可能な変数宣言”です。ここが重要です:let は「宣言されたブロック内でのみ有効」「同じスコープで再宣言できない」「宣言前に使...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – 簡単なミニアプリ①

簡単なミニアプリを作る理由ここまで、React の「部品」を一通り見てきました。JSXコンポーネントpropsuseState(状態管理)イベント処理条件分岐配列と mapコンポーネント分割いよいよ、...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – コンポーネント分割

コンポーネント分割とはコンポーネント分割は、ざっくり言うと「画面を小さな部品に分解して、意味のある単位ごとに整理すること」です。ひとつのコンポーネントの中に、ヘッダーも、メインも、フッターも、ボタンも...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – 配列の表示(map)

配列の表示(map)とはReact では、「同じ形のデータがたくさんある」ときに、それをまとめて画面に並べることがとても多いです。例えば、Todoリスト・商品一覧・コメント一覧などは、まさに「配列を画...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – 条件分岐表示

条件分岐表示とは「状況に応じて表示内容を変える」ための仕組みReact では、画面に表示する内容を 状態(state) に応じて切り替えることがよくあります。例えば、ログインしているときだけユーザー名...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – イベント処理

イベント処理とはイベント処理は、「ユーザーの操作に反応して、何かを実行するしくみ」です。ボタンをクリックしたり、入力フォームに文字を打ったり、Enterキーを押したり――これらはすべて「イベント」です...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – useState(状態管理)

stateとは「時間とともに変わる値」を扱うための仕組みReact でいう state(ステート)は、ひと言でいうと「画面の中で変わる値」です。逆に言うと、「一度決めたら変わらないもの」は state...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第2章:Reactの基本操作 – props(データの受け渡し)

propsとは何か「コンポーネントに渡す“引数”のようなもの」props(プロップス)は、React コンポーネントに渡す「データの入れ物」です。少しプログラミング寄りに言うと、「コンポーネント版の関...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第1章:準備と超基礎 – Reactコンポーネントの基本

コンポーネントとは「画面を小さな部品に分けて再利用する考え方」コンポーネントは、ひと言でいうと「画面の部品」です。もっと言うと、「ある見た目と振る舞いをひとつのまとまりとして名前をつけたもの」です。例...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第1章:準備と超基礎 – JSXとは何か

JSXとは何か「JavaScriptの中でHTMLっぽく書ける特別な文法」JSX は、React で画面を作るときに使う「JavaScript拡張文法」です。ぱっと見は HTML にそっくりですが、正...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第1章:準備と超基礎 – Next.jsのフォルダ構造

Next.js のフォルダ構造の全体イメージNext.js は「フォルダの構造 = URL の構造」という、かなり直感的な仕組みを持っています。特に新しい App Router(app ディレクトリ)...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第1章:準備と超基礎 – 開発環境の準備

Node.jsとは「ブラウザの外で動くJavaScriptエンジン」JavaScript はもともと「ブラウザの中で動く言語」でした。Node.js は、その JavaScript を「パソコンの中(...
Next.js

Next.jsで学ぶReact講座(完全初心者向け・30日) | 第1章:準備と超基礎 – React / Next.js とは何か

プログラミング初心者向けに、できるだけ専門用語をかみ砕いて、「React」と「Next.js」の世界をゆっくり案内していきます。ただ知識として覚えるだけでなく、「自分なら何を作れるかな?」と想像しなが...
Java

Java | 1 日 120 分 × 7 日アプリ学習:初級編

この初級編7日間プランの全体像この「1 日 120 分 × 7 日・初級編」は、あなたがすでにmain メソッド変数・if・forメソッド配列など「超初級」で触った前提で、そこから一段階レベルを上げる...
Java

Java | 1 日 60 分 × 7 日アプリ学習:超初級編

この7日間プランの全体像このプランは「Java はまったく初めて」「プログラミングもほぼ初めて」という人を想定しています。毎日 60 分 × 7 日で、コンソール(黒い画面)で動く小さなアプリを作れる...
Java

Java | Java 標準ライブラリ:CompletableFuture 基礎

CompletableFuture を一言でいうとCompletableFuture は、「将来終わる“非同期の計算結果”を表す箱(Future)に対して、『終わったらこれをして、その後これをして…』...
Java

Java | Java 標準ライブラリ:Future

Future を一言でいうとjava.util.concurrent.Future は、「別スレッドで走っている“将来の計算結果”を受け取るための“約束の箱”」です。時間のかかる処理を Executo...
Java

Java | Java 標準ライブラリ:ExecutorService 概要

ExecutorService を一言でいうとExecutorService は、「スレッドを自分で new せずに、”仕事(タスク)だけ” を投げれば、いい感じに別スレッドで実行してくれる仕組み」で...
Java

Java | Java 標準ライブラリ:Timer / TimerTask

Timer / TimerTask を一言でいうとTimer と TimerTask は、「指定した時間後に、あるいは一定間隔で、“別スレッドで” 処理を実行してくれるシンプルなタイマー機能」です。「...
Java

Java | Java 標準ライブラリ:Base64

Base64 を一言でいうとjava.util.Base64 は、「バイナリデータ(画像・PDF・任意のバイト列)を、テキスト(英数字+記号)だけで安全にやり取りできるように変換するためのクラス」です...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – 実務でのベストプラクティス

実務でのベストプラクティスとは何か「ベストプラクティス」とは、現場で繰り返し使われてきた“安全で効率的なやり方”のことです。JavaScript の配列・オブジェクト操作では、可読性・性能・安全性のバ...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – データ構造選択

データ構造選択とは何かデータ構造選択は「どの形(配列、オブジェクト、Map、Set、派生構造)でデータを持つか」を決めることです。ここが重要です:用途に合った構造を選ぶと、計算量が下がり、コードが短く...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – 関数分割

関数分割とは何か関数分割は「大きな処理を、明確な役割ごとの“小さな関数”に切り出して組み合わせる」設計です。ここが重要です:1つの関数は1つの責務(Single Responsibility)。入力と...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – 可読性優先 vs 速度優先

可読性優先 vs 速度優先とは何かコードには「誰が読んでも意図が分かる」「実行が速い」という2つの価値があります。ここが重要です:大半の業務コードでは“まず可読性”を優先し、速さは“必要な箇所だけ”最...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – 大量データ処理の考え方

大量データ処理とは何か大量データ処理は「配列やオブジェクトが数万〜数百万件規模になっても、時間とメモリを破綻させずに目的を果たす」ための考え方です。ここが重要です:やみくもに map や filter...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – メモリ参照の注意点

メモリ参照とは何かJavaScript の配列・オブジェクトは「参照型」です。ここが重要です:変数には“値そのもの”ではなく“値への参照(ポインタのようなもの)”が入ります。参照が同じだと、片方を変更...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – 破壊的 / 非破壊的操作

破壊的 / 非破壊的操作とは何か破壊的操作は「元の配列・オブジェクトを直接書き換える」こと、非破壊的操作は「元を保ったまま、新しい配列・オブジェクトを返す」ことです。ここが重要です:共有されているデー...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – reduce の使いどころ

reduce とは何かreduce は「配列を1回なめて、“累積器(accumulator)”に結果を積み上げ、最後に1つの値(数値・文字列・配列・オブジェクト)にまとめる」ための関数です。ここが重要...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – map / filter のコスト

map / filter のコストとは何かmap / filter は「要素ごとにコールバックを呼び、結果配列を新しく作る」処理です。ここが重要です:計算量は基本的に (O(n)) ですが、時間とメモ...
JavaScript

JavaScript | 配列・オブジェクト:パフォーマンス・設計 – 配列操作の計算量

配列操作の計算量とは何か「計算量」は、要素数を (n) としたとき操作に必要なステップ数の目安です。ここが重要です:操作ごとに増え方が違います。例えば末尾に追加(push)はほぼ一定時間ですが、先頭に...
Python

Python | Web フレームワーク:背景タスク

概要(背景タスク=「レスポンスの後で、裏でこっそり動く仕事」)背景タスクは、「HTTP レスポンスはすぐ返したいけど、そのあとにやりたい処理がまだ残っている」ときに使う仕組みです。例えば、ログを外部サ...
Python

Python | Web フレームワーク:CORS

概要(CORS は「別ドメインからの JS リクエストを許可するルール」)CORS(Cross-Origin Resource Sharing)は、「ブラウザ上の JavaScript が、別のドメイ...
Python

Python | Web フレームワーク:Cookie

概要(Cookie=「ブラウザ側にそっと置くメモ」)Cookie は一言でいうと、「サーバーがブラウザにそっと渡して、ブラウザ側に保存してもらう小さなメモ」です。ブラウザは、そのメモ(Cookie)を...
Python

Python | Web フレームワーク:認証(Bearer)

概要(Bearer 認証=「トークンを見せて通る入館証チェック」)Bearer 認証は、「HTTP ヘッダに“トークン”を入れて送り、サーバー側がそのトークンを確認して OK なら処理を続行する」とい...
Python

Python | Web フレームワーク:ミドルウェア

概要(ミドルウェア=「リクエストが通る廊下に置く共通処理」)ミドルウェアは一言でいうと、「すべてのリクエスト/レスポンスが必ず通る“共通の廊下”に共通処理を差し込むための仕組み」です。各エンドポイント...
Python

Python | Web フレームワーク:例外ハンドラ

概要(例外ハンドラは「エラーを受け止めて整える役」)例外ハンドラは、「アプリの中で投げられた例外をキャッチして、クライアントに返す“きれいなエラーレスポンス”に変換する仕組み」です。Python で普...
Python

Python | Web フレームワーク:エラー処理

概要(Web のエラー処理は「こけ方」をデザインすること)Web フレームワークのエラー処理は、「何かがおかしくなったときに、アプリがどう“こけるか”をきちんと決めておくこと」です。エラーは必ず起きま...
Python

Python | Web フレームワーク:レスポンスモデル

概要(レスポンスモデルは「返していい形の“ふるい”」)レスポンスモデルは、「この API は、こういう形・こういう型の JSON を“返す”はずだ」という“約束(スキーマ)”をコードで表現したものです...
Python

Python | Web フレームワーク:バリデーション

概要(バリデーション=「変な値は中に入れない門番」)バリデーションは、「外から送られてきた値が、想定どおりかチェックして、おかしければ入口で止める」仕組みです。Web フレームワーク(FastAPI ...
Python

Python | Web フレームワーク:Pydantic モデル

概要(Pydantic モデル=「型付きのデータの入れ物+自動チェックマン」)Pydantic モデルは一言でいうと、「型ヒントをちゃんと書くだけで、その形どおりにデータをチェックしてくれる“賢いデー...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – レイアウト修正テンプレ

ねらい:もらったExcelを「一発で“見れる形”に直す」レイアウト修正テンプレ他部署や取引先からもらった Excel、こんな状態で届きませんか。列幅バラバラ・行高バラバラ罫線が中途半端/二重線/色がバ...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 帳票生成ツール

ねらい:請求書・納品書・見積書などの「帳票」をテンプレ+一覧から量産する帳票は「毎回ほぼ同じ形で、差し込む中身だけ違うもの」です。だからこそ、人がコピペで作るとミスりやすく、時間もかかります。帳票生成...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – DB → Excel同期

ねらい:DB の「正本データ」を、安全に・何度でも・同じ形で Excel に同期する前の「Excel → DB 同期」は、“編集した結果を DB に反映する話”でした。今回はその逆、DB にある正本デ...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – Excel → DB同期

ねらい:Excel の一覧を「DB の正本」と自動で同期させる“型”を作るExcel でマスタや明細を管理しつつ、最終的には SQL Server/Access/MySQL などの DB を正本にした...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 一括レポート自動作成

ねらい:複数の相手(顧客・部署・担当者)向けレポートを「テンプレ+一覧」から一括自動作成する毎月、顧客ごと・部署ごと・担当者ごとに「ほぼ同じ形のレポート」を量産していませんか。1件なら手作業でも我慢で...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – API レスポンス加工

API レスポンス加工とは何かAPI レスポンス加工は「外部サービスから受け取ったJSON(欠損・余分・型揺れが混在しがち)を、アプリで使いやすい“整った配列・オブジェクト”に変換する」ことです。ここ...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – フォームデータ整形

フォームデータ整形とは何かフォームデータ整形は「UIから入力された生の値(文字列中心・未入力混在・チェックボックスの揺れなど)を、バックエンドが扱いやすい“型の揃ったオブジェクト”に変換する」作業です...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – ページング用データ加工

ページング用データ加工とは何かページングは「長い配列をページ単位に切り分けて、必要な部分だけ表示・送信する」処理です。ここが重要です:順序(ソート)→フィルタ→ページ分割の“処理順”を守り、メタ情報(...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – フィルタ条件切替

フィルタ条件切替とは何かフィルタ条件切替は「現在の条件(カテゴリ、価格帯、検索語、ステータスなど)をON/OFFや値変更で切り替え、その都度配列を絞り込む」実務パターンです。ここが重要です:条件を“関...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – フラグ更新

フラグ更新とは何かフラグ更新は「オブジェクトや配列の中で、真偽値(true/false)や状態を表す小さな印(flag)を安全に切り替える」操作です。ここが重要です:配列やネスト構造では“直接書き換え...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – 並び替え

並び替えとは何か並び替え(ソート)は「配列の要素を一定の順序で並べ直す」処理です。ここが重要です:JavaScript の Array.prototype.sort は“文字列として比較する”のが既定...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – グループ化

グループ化とは何かグループ化は「配列の要素を“共通のキー”でまとめ、キーごとに要素の集合を作る」処理です。ここが重要です:グループの“鍵(キー)”をどう決めるかで実務の使いやすさが決まります。単純なキ...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – 重複削除

重複削除とは何か重複削除は「同じ値や同じレコードが複数含まれる配列から、重複を取り除き“1回だけ”にする」処理です。ここが重要です:何を“同じ”とみなすかで手法が変わります。プリミティブ(数値・文字列...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – 一意データの抽出

一意データの抽出とは何か一意データの抽出は「重複している要素を取り除き、同じものが1回だけ現れる集合にする」処理です。ここが重要です:何を“同じ”とみなすかで手法が変わります。プリミティブ(数値・文字...
JavaScript

JavaScript | 配列・オブジェクト:実務パターン – ID で検索

ID で検索とは何か「ID で検索」は、配列やオブジェクトの中から“特定の一件”を高速・安全に取り出す実務の基本パターンです。ここが重要です:配列から毎回探すのは線形検索で遅くなりがち。頻繁に検索する...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – 再帰処理の基礎

再帰処理とは何か再帰は「関数が自分自身を呼び出して、問題を“同じ形のより小さな問題”に分解して解く」テクニックです。ここが重要です:必ず“止まる条件(ベースケース)”を先に書き、次に“1歩進める処理(...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – 深いコピーの注意点

深いコピーとは何か深いコピーは「オブジェクトや配列の入れ子を“最深部まで”複製し、元データと完全に独立させる」操作です。ここが重要です:浅いコピー(スプレッドや Object.assign)は外側だけ...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – データ正規化

データ正規化とは何かデータ正規化は「ネストの深い配列・オブジェクトを、“重複なく参照しやすい形”に整理すること」です。ここが重要です:同じエンティティ(ユーザー、商品、コメントなど)を“1か所だけ”に...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – 不変性(イミュータブル)

不変性(イミュータブル)とは何か不変性(イミュータブル)とは「既存のオブジェクトや配列を直接書き換えず、“新しいインスタンス”を作って変更を表現する」考え方です。ここが重要です:直接代入は一見手軽でも...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – 深い階層の更新

深い階層の更新とは何か深い階層の更新は「入れ子(ネスト)になったオブジェクトや配列の、何層も奥にある値を安全に書き換えること」です。ここが重要です:共有状態(UIやストア)では“非破壊更新(新しいオブ...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – nullish coalescing

nullish coalescing(??)とは何かnullish coalescing(??)は「左側が undefined または null のときだけ、右側の“デフォルト値”を使う」演算子です。...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – オプショナルチェーン

オプショナルチェーンとは何かオプショナルチェーン(?.)は「途中のオブジェクトや配列が null/undefined でも、エラーにせず安全に次へ進む(または止まる)」ための記法です。ここが重要です:...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – 安全なアクセス(&&)

安全なアクセス(&&)とは何か「安全なアクセス」とは、ネストされたオブジェクトや配列を辿るときに、中間が欠損(null/undefined)でもエラーにせず安全に値を取り出す書き方です。ここが重要です...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – ネスト配列

ネスト配列とは何かネスト配列は「配列の中にさらに配列が入っている構造」です。2次元(行・列の表)、階層(ツリーの子配列)、グループ化(カテゴリごとの要素)など、現実のデータを自然に表現できます。ここが...
JavaScript

JavaScript | 配列・オブジェクト:ネスト構造の扱い – ネストオブジェクト

ネストオブジェクトとは何かネストオブジェクトは「オブジェクトや配列の中に、さらにオブジェクトや配列が入っている構造」です。現実世界のデータ(ユーザー→住所→郵便番号、注文→明細の配列→各行のSKUなど...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:中級編

この中級編7日間で目指すことこの「1日 120 分 × 7 日・中級編」は、あなたがすでに「変数・if・for・関数・配列・DOM操作・イベント」あたりを触った前提で、「なんとなく動いてる」を卒業して...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:家計簿編

この7日間プランで作る家計簿アプリのゴールこの 7 日間では、ブラウザ上で動く「シンプル家計簿アプリ」を作ります。機能は次のようなイメージです。日付・内容・金額・種別(収入 / 支出)を入力して追加で...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:タイマー・ストップウォッチ編

この7日間で作るもののゴールこの 7 日間では、ブラウザで動く「ストップウォッチ+簡単なタイマー」を作ります。ボタンを押すと時間が進んだり止まったりする、“時間を扱うアプリ” なので、以下のような力が...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:TODOアプリ編

この7日間 TODOアプリ学習のゴールこの 7 日間では、「ブラウザ上で動くシンプルな TODO アプリ」を完成させます。機能は次の 4 つに絞ります。テキスト入力欄にやることを書く追加ボタンでリスト...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:電卓アプリ編

この7日間で作る電卓アプリのゴールこの 7 日間では、「ブラウザで動く電卓アプリ」を完成させながら、JavaScript の超基礎と、画面とプログラムをつなぐ考え方(DOM 操作)を身につけます。電卓...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:初級編

この 7 日・60 分でどこまで行くかこの「初級編・60 分 × 7 日」は、すでにconsole.log変数・if・関数・配列簡単なおみくじやボタン付きアプリあたりを「なんとなく触ったことがある」前...
Python

Python | 1 日 60 分 × 7 日アプリ学習:初級編

Day 1 Pythonの全体像と「Hello, World」Pythonとは何か・何ができるのかPythonは、AI・機械学習、Web開発、データ分析、自動化スクリプトなど、かなり広い分野で使われて...
Python

Python | 1 日 60 分 × 7 日アプリ学習:超初級編

最初の7日間で「Pythonで小さなアプリを自力で書ける」状態までを目標にします。毎日「読む→真似して打つ→自分で少し変えてみる」の流れで、だいたい60分を想定しています。1日目:Pythonって何?...
Java

Java | Java 標準ライブラリ:UUID

UUID を一言でいうとjava.util.UUID は、「ほぼ絶対に重ならない“ランダムな ID” を簡単に作るためのクラス」です。データベースの主キー、ファイル名、トークン、セッションID など、...
Java

Java | Java 標準ライブラリ:Locale

Locale を一言でいうとjava.util.Locale は「このユーザー(or この処理)は、どの言語・どの国・どの地域のルールで動けばいいのか」を表すための“タグ”です。英語なら en、日本語...
Java

Java | Java 標準ライブラリ:ResourceBundle

ResourceBundle を一言でいうとjava.util.ResourceBundle は、「画面メッセージや文言を、言語ごと・国ごとに切り替えるための仕組み」です。アプリのソースコードに日本語...
Java

Java | Java 標準ライブラリ:Properties クラス

Properties クラスを一言でいうとjava.util.Properties は、「文字列のキーと文字列の値を、設定ファイル的に管理するためのクラス」です。ざっくり言うと、Map<String,...
Java

Java | Java 標準ライブラリ:StackTrace の読み方

StackTrace を一言でいうとStackTrace(スタックトレース)は、「例外が発生したときに、そのときの『呼び出し履歴』を上から順に全部並べたもの」です。どのクラスの、どのメソッドの、どの行...
Java

Java | Java 標準ライブラリ:RuntimeException を使う判断

RuntimeException を一言でいうとRuntimeException は、「“呼び出し側に明示的な例外処理を強制したくはないが、異常はちゃんと知らせたい” ときに使う例外の親クラス」です。...
Java

Java | Java 標準ライブラリ:カスタム例外

カスタム例外を一言でいうと「カスタム例外」は、自分のアプリやライブラリ専用の例外クラスを新しく定義して、エラーの意味を分かりやすく、扱いやすくするためのものです。NullPointerExceptio...
Java

Java | Java 標準ライブラリ:非チェック例外

非チェック例外を一言でいうと「非チェック例外(unchecked exception)」は、“コンパイラが try-catch や throws 宣言を強制してこない例外”かつ“たいていはプログラマー...
Java

Java | Java 標準ライブラリ:チェック例外

チェック例外を一言でいうと「チェック例外(checked exception)」は、“この失敗は普通に起こりうるから、呼び出し側でちゃんと対処を考えろ” とコンパイラが迫ってくる例外です。ファイルがな...
Java

Java | Java 標準ライブラリ:例外階層構造

例外階層構造を一言でいうとJava の「例外階層構造」は、「エラーの種類を、親子関係(クラスの継承)で整理した“族譜”」です。この“族譜”を理解しておくと、どの例外をキャッチすべきかどこで throw...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – デフォルト値の設定

デフォルト値の設定とは何かデフォルト値は「値が未指定(または欠損)のときに使う“代替値”」です。ここが重要です:何を“未指定”とみなすかで手段が変わります。undefined/null だけを未指定と...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – 構造の分解(分割代入)

分割代入(構造の分解)とは何か分割代入は、オブジェクトや配列から「必要な部分だけ」を抜き出して、変数に一気に割り当てる書き方です。ここが重要です:オブジェクトは“キー名で取り出す”、配列は“位置で取り...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – JSON.parse / stringify

JSON とは何かJSON は「データを文字列で表すための軽量フォーマット」です。JavaScript のオブジェクトに“似ている”けれど、JSON はあくまで文字列。送受信・保存に向いており、プログ...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – 浅いコピーと深いコピー

浅いコピーと深いコピーとは何か浅いコピーは「外側のプロパティだけ新しいオブジェクトに複製し、入れ子(オブジェクトや配列)の“参照”はそのまま共有する」コピーです。深いコピーは「入れ子の内部まで再帰的に...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – スプレッド構文によるコピー

スプレッド構文によるコピーとは何かスプレッド構文 { ...obj } は「オブジェクトの“自分が持つ列挙可能なプロパティ”を、浅く(シャロー)コピーして新しいオブジェクトを作る」ための書き方です。こ...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – Object.assign

Object.assign とは何かObject.assign は「右側のオブジェクトの“自前の列挙可能なプロパティ”を左側(ターゲット)へコピーして上書きする」関数です。ここが重要です:コピーされる...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – for…in

for...in とは何かfor...in は「オブジェクトの“列挙可能なキー(プロパティ名)”を1つずつ取り出して処理する」ためのループ構文です。ここが重要です:for...in は“自分のキーだけ...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – Object.entries

Object.entries とは何かObject.entries は「オブジェクトが“自分で持つ”列挙可能な文字列キーとその値の組()」を、配列として返す関数です。ここが重要です:返るのは“自前の・...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – Object.values

Object.values とは何かObject.values は「オブジェクトが“自分で持つ”列挙可能なプロパティの値だけを、配列で返す」関数です。ここが重要です:返るのは“自前の”かつ“enume...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト操作 – Object.keys

Object.keys とは何かObject.keys は「オブジェクトが“自分で持つ”列挙可能なキー(プロパティ名)を、文字列の配列で返す」関数です。ここが重要です:継承(プロトタイプ)上のキーは含...
JavaScript

JavaScript | 1 日 30 分 × 7 日アプリ学習:初級編

この 7 日間・初級編で目指すゴールこの「初級編」では、すでに「超初級」でコンソールでコードを動かす変数、if、関数、配列、ランダム簡単なおみくじアプリあたりを触った人を想定して、もう一歩「アプリ寄り...
Java

Java | Java 標準ライブラリ:NIO と IO の違い

「IO」と「NIO」をざっくり一言でいうとまず一番上のイメージだけ先に置きます。従来の java.io は、「ストリームを通して、データを順番に流す I/O(線でつながったイメージ)」java.nio...
Java

Java | Java 標準ライブラリ:BufferedWriter

BufferedWriter を一言でいうとBufferedWriter は、「文字をいったんバッファ(メモリ)に貯めてから、まとめて出力ストリームに書き込むことで、高速にテキストを書き込むためのクラ...
Java

Java | Java 標準ライブラリ:BufferedReader

BufferedReader を一言でいうとBufferedReader は、「文字をまとめて内部バッファに貯めながら、“行単位で”効率よく読み取るための Reader」です。ファイルやネットワークか...
Java

Java | Java 標準ライブラリ:try-with-resources

try-with-resources を一言でいうとtry-with-resources は、「使い終わったら必ず close() しなきゃいけないものを、自動で確実に閉じてくれる try 文の書き方...
Java

Java | Java 標準ライブラリ:Files.copy

Files.copy を一言でいうとFiles.copy は、「ファイル(またはディレクトリ)の中身を、別の場所にコピーするためのメソッド」です。「あるパスのものを、別のパスへコピーしたい」「入力スト...
Java

Java | Java 標準ライブラリ:Files.lines

Files.lines を一言でいうとFiles.lines は、「テキストファイルを 1 行ずつ“ストリームとして”読み出すためのメソッド」です。Files.readAllLines が「全部いっぺ...
Java

Java | Java 標準ライブラリ:Files.readAllLines

Files.readAllLines を一言でいうとFiles.readAllLines は、「テキストファイルを“まるごと読み込んで”、1行ずつ List<String> にして返してくれるメソッド...
Java

Java | Java 標準ライブラリ:Path / Paths

Path / Paths をざっくり一言でいうとPath は、「ファイルやディレクトリまでの“道順(パス)”を表すオブジェクト」です。Paths は、「Path を作るための “工場(ファクトリ)クラ...
Java

Java | Java 標準ライブラリ:File クラス

File クラスをざっくり一言でいうとjava.io.File は、「ディスク上の “ファイル or ディレクトリ” を指し示すための “住所カード”」です。ここがとても大事で、File 自体は「中身...
Java

Java | Java 標準ライブラリ:ファイル入出力概要

Java のファイル入出力をざっくり一言でいうとJava の「ファイル入出力(I/O)」は、「ディスク上のファイルに、プログラムから文字やバイトを読み書きするための仕組み」です。初心者のうちに、まず次...
Java

Java | Java 標準ライブラリ:Period と Duration

Period と Duration をざっくり一言でいうとPeriod と Duration は、どちらも「時間の長さ」を表すクラスですが、何を基準にしているかがまったく違います。Period … 年...
Java

Java | Java 標準ライブラリ:DateTimeFormatter

DateTimeFormatter をざっくり一言でいうとDateTimeFormatter は、「LocalDate / LocalTime / LocalDateTime / ZonedDateT...
Java

Java | Java 標準ライブラリ:ZonedDateTime

ZonedDateTime をざっくり一言でいうとZonedDateTime は、「日付(年・月・日)+時刻(時・分・秒)+タイムゾーン」をまとめて表現するクラスです。LocalDateTime が「...
Java

Java | Java 標準ライブラリ:LocalDateTime

LocalDateTime をざっくり一言でいうとLocalDateTime は、「日付(年・月・日)+時刻(時・分・秒)」を、タイムゾーンなしで表すクラスです。LocalDate が「日付だけ」Lo...
Java

Java | Java 標準ライブラリ:LocalTime

LocalTime をざっくり一言でいうとLocalTime は、「日付もタイムゾーンもいらない、“純粋な時刻(時・分・秒だけ)”」を表すクラスです。朝 9 時に開店、12 時に休憩開始、18 時に閉...
JavaScript

JavaScript | 1 日 30 分 × 7 日アプリ学習:超初級編

この 7 日間で目指すゴールこの「超初級編」では、たった 7 日 × 1 日 30 分で「自分の手で動くミニアプリ」を作れるところまで行きます。難しい理論は一旦置いておき、次の三つだけを大事にします。...
Java

Java | Java 標準ライブラリ:LocalDate

LocalDate をざっくり一言でいうとLocalDate は、「タイムゾーンも時刻も持たない、“純粋な日付(年・月・日だけ)”」をあつかうためのクラスです。誕生日、締切日、営業日、請求日など、「そ...
Java

Java | Java 標準ライブラリ:Date の問題点

なぜ「Date の問題点」を知っておくべきかJava の古い日付・時刻 API(java.util.Date / java.util.Calendar)は、長年「バグを生みやすい」「直感とズレている」...
Java

Java | Java 標準ライブラリ:parallelStream の注意点

parallelStream を一言でいうと何かparallelStream() は、「Stream の処理を、CPU の複数コアを使って“自動で並列実行してくれるモード”」です。list.strea...
Java

Java | Java 標準ライブラリ:Stream の再利用不可性

Stream が「再利用できない」ってどういうことかまず結論から言うと、Java の Stream は「一度“流して”終端操作を呼んだら、そのストリームは二度と使えない(使い捨て)」という性質を持って...
Java

Java | Java 標準ライブラリ:Stream の遅延評価

「遅延評価」をざっくりイメージするまず感覚から固めます。Stream の「遅延評価(lazy evaluation)」とは、「stream().filter().map() と“パイプラインを組み立て...
Java

Java | Java 標準ライブラリ:Optional と Stream の併用

なぜ「Optional と Stream の併用」が話題になるのかOptional と Stream、どちらも「null を避けつつ、宣言的に書く」ための道具です。でも実務でコードを書き始めると、こう...
Java

Java | Java 標準ライブラリ:joining

joining をざっくり一言でいうとCollectors.joining は、「Stream の中の文字列たちを、1 本の文字列に“つなげて”まとめるための Collector」です。collect...
Java

Java | Java 標準ライブラリ:groupingBy

groupingBy をざっくり一言でいうとCollectors.groupingBy は、「Stream の要素を、ある“キー”ごとにグループ分けして Map にまとめる ための仕組み」です。イメー...
Java

Java | Java 標準ライブラリ:Collectors.toList

Collectors.toList をざっくり一言でいうとCollectors.toList() は、「Stream の結果を List に集め直すための“まとめ方テンプレ”」です。stream()....
スポンサーリンク
タイトルとURLをコピーしました