スポンサーリンク
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()....
Java

Java | Java 標準ライブラリ:collect

collect の役割をざっくりイメージするStream の collect は一言でいうと、「ストリームの“流れ”を、最終的な入れ物や形(List・Set・Map・1つの値など)にまとめる操作」です...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – hasOwnProperty

hasOwnProperty とは何かhasOwnProperty は「そのオブジェクト“自身”が、指定したキー(プロパティ)を持っているか」を真偽値で返すメソッドです。ここが重要です:“継承(プロト...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – in 演算子

in 演算子とは何かin 演算子は「そのキー(プロパティ名)が、オブジェクト“自身またはプロトタイプ上”に存在するか」を真偽値で返す演算子です。ここが重要です:in は「値があるか」ではなく「キーが存...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – プロパティ削除

プロパティ削除とは何かオブジェクトから「特定のキー(プロパティ)とその値」を取り除くことです。ここが重要です:削除は“存在そのもの”を消します。値を undefined や null にするのは“値を...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – プロパティ追加

プロパティ追加とは何かオブジェクトに“新しいキー(プロパティ名)と値”を後から足すことです。ここが重要です:追加の基本は「ドット記法(静的キー)」と「ブラケット記法(動的キー)」の使い分け。さらに、オ...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – 動的キー

動的キーとは何か動的キーは「キー名をその場で計算・選択して使う」ための仕組みです。文字列を組み立てたり、変数の値をキーにしたり、日本語や記号・スペースを含むキーにアクセスしたりできます。ここが重要です...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – ブラケット記法

ブラケット記法とは何かブラケット記法は obj の形で、オブジェクトのプロパティへアクセス・追加・更新・削除する書き方です。ここが重要です:キーを“文字列として動的”に扱えるため、変数でキー名を決めた...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – ドット記法

ドット記法とは何かドット記法は、オブジェクトのプロパティ(キー)に「.」でアクセスする最も読みやすい書き方です。配列が順番で取り出すのに対し、オブジェクトは“名前で取り出す”ため、ドット記法は直感的で...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – プロパティと値

プロパティと値とは何かオブジェクトは「キー(プロパティ名)と値」のペアを集めた入れ物です。キーは通常“文字列”か“シンボル”、値は数値・文字列・真偽値・配列・別オブジェクト・関数など何でも入れられます...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – オブジェクトリテラル

オブジェクトリテラルとは何かオブジェクトリテラルは { ... } を使って「キー(名前): 値」をまとめて書く最も基本的な方法です。設定、データレコード、メッセージ、座標など“ラベル付きの情報”をひ...
JavaScript

JavaScript | 配列・オブジェクト:オブジェクト基礎 – オブジェクトとは

オブジェクトとは何かオブジェクトは「名前(キー)と値(バリュー)の組み合わせ」を入れる“入れ物”です。実世界の「人」「商品」「設定」などを、その属性として表現します。ここが重要です:キーは文字列(やシ...
Java

Java | Java 標準ライブラリ:flatMap

flatMap をざっくりイメージするまず、一番大事な感覚から。map は「1つの要素 → 1つの値」に変換する操作でした。flatMap は「1つの要素 → 0個以上の“複数要素”」に変換して、最後...
Java

Java | Java 標準ライブラリ:filter 操作

filter 操作をざっくりイメージするStream の filter は、一言でいうと「流れてくる要素の中から、条件に合うものだけを通し、合わないものを捨てる 操作」です。大事なポイントはこの 3 ...
Java

Java | Java 標準ライブラリ:map 操作

「map 操作」をざっくりイメージするStream の map は、一言でいうと「流れてくる要素を、別の値に変換して流し直す 操作」です。元の要素数は変えない1 個入ったら、必ず 1 個出てくる「中身...
Java

Java | Java 標準ライブラリ:Stream の生成

「Stream の生成」をざっくりイメージするStream API の最初の一歩は、「そもそも Stream をどうやって作るか」です。filter や map は、その前に「Stream がある」こ...
Java

Java | Java 標準ライブラリ:Stream API 概要

Stream API をざっくりイメージするまず感覚から先に。Stream API は、「配列やコレクションなど“データの列”に対して、 “何をしたいか”を宣言的に書けるパイプライン」です。for 文...
Java

Java | Java 標準ライブラリ:Collections.unmodifiableList

Collections.unmodifiableList の役割をざっくりつかむCollections.unmodifiableList は、「この List、“見たり読むのはいいけど、書き換えは禁止...
Java

Java | Java 標準ライブラリ:Collections.sort

Collections.sort の役割をざっくりつかむCollections.sort は、「List の中身を並び替えるための標準メソッド」です。配列には Arrays.sort がありましたよね...
Java

Java | Java 標準ライブラリ:Comparable

Comparable をざっくりイメージするまず一言でまとめると、Comparable は「このクラスの“標準の並び順”はこうです」と自分自身で宣言するためのインターフェースです。String なら「...
Java

Java | Java 標準ライブラリ:Comparator

Comparator の役割をざっくりイメージするComparator は一言でいうと、「オブジェクト同士を“どういう順番で並べるか”を後付けで教えるためのオブジェクト」です。int や String...
Java

Java | Java 標準ライブラリ:ConcurrentModificationException

ConcurrentModificationException をまず感覚でつかむConcurrentModificationException は、Java のコレクションを使っているときに、かなり...
Java

Java | Java 標準ライブラリ:for-each の内部動作

for-each 文をまず感覚でつかむJava の for-each(拡張 for 文)は、こういう書き方のやつです。for (String name : names) { System.out.pr...
Java

Java | Java 標準ライブラリ:イテレータ

イテレータって何者かをざっくりイメージするまず感覚からいきます。イテレータ(Iterator)は、「コレクションの中身を、順番に“たどる”ための共通ルール」です。ArrayList でも HashSe...
Java

Java | Java 標準ライブラリ:コレクションの初期容量

「コレクションの初期容量」ってそもそも何?まずことばの整理からいきます。ArrayList や HashMap などのコレクションは、内部で「ある程度まとめてメモリを確保してから」そこに要素を入れてい...
Java

Java | Java 標準ライブラリ:コレクションの null 許容

「コレクションは null を入れていいのか?」という全体像Java のコレクションで初心者が一番ハマるポイントの一つが、「null を入れていいのか・ダメなのかがバラバラ」ということです。Array...
Java

Java | Java 標準ライブラリ:TreeMap

TreeMap をざっくりイメージするまず一言でいうと、TreeMap は「キーで常にソートされた順番を保ってくれる Map」です。HashMap は「キー → 値」を高速に扱えるけれど、キーの順番は...
Java

Java | Java 標準ライブラリ:LinkedHashMap

LinkedHashMap をざっくりイメージするまず、すごくラフに言うと「順番を覚えてくれる HashMap」が LinkedHashMap です。HashMap は「キー → 値」を高速に扱える代...
Java

Java | Java 標準ライブラリ:Map / HashMap

Map / HashMap をざっくりイメージするまず「Map って何者?」からいきます。Map は「キー(key)と値(value)のペアを管理する入れ物」です。電話帳をイメージすると分かりやすいで...
Java

Java | Java 標準ライブラリ:TreeSet

TreeSet をざっくりイメージするまず全体像からいきます。TreeSet は「重複を許さない集合(Set)でありつつ、 中身を“常にソートされた順番”で持ってくれるクラス」です。前回の HashS...
Java

Java | Java 標準ライブラリ:Set / HashSet

Set / HashSet をざっくりイメージするまず感覚からいきます。List は「順番がある・重複を許す」コレクションでした。それに対して Set は、「順番は気にしない」「同じ要素を二度入れない...
Java

Java | Java 標準ライブラリ:LinkedList

LinkedList をざっくりイメージするまず感覚からいきます。ArrayList は「配列ベースで、連番の棚がズラッと並んでいるストレージ」です。それに対して LinkedList は、「前後の箱...
Java

Java | Java 標準ライブラリ:List / ArrayList

List と ArrayList をざっくりイメージするまずイメージからいきます。配列 int[] は「長さが固定の箱の列」でした。一方で List / ArrayList は「あとから増やしたり減ら...
Java

Java | Java 標準ライブラリ:Collections クラス

Collections クラスの全体像をざっくりつかむjava.util.Collections は、「List や Map など“コレクション”を扱うときの便利メソッドを集めたユーティリティクラス」...
Java

Java | Java 標準ライブラリ:Arrays.equals

Arrays.equals の役割をざっくりつかむjava.util.Arrays.equals は、「配列同士が “中身まで含めて” 同じかどうかをチェックするメソッド」です。ここでまず押さえたいの...
Java

Java | Java 標準ライブラリ:Arrays.copyOf

Arrays.copyOf の「役割」をざっくりつかむjava.util.Arrays.copyOf は、「今ある配列をもとに、“新しい配列”を作るためのコピー専用メソッド」です。ポイントは次の二つで...
Java

Java | Java 標準ライブラリ:Arrays.sort

Arrays.sort の役割をざっくりつかむArrays.sort は「配列を並び替えるための標準メソッド」です。int などの配列を、昇順(小さい順・辞書順)に一発で整列してくれます。自分でソート...
Java

Java | Java 標準ライブラリ:Arrays クラス

Arrays クラスの全体像をざっくりつかむjava.util.Arrays は、「配列を扱うときの“便利道具”をまとめたユーティリティクラス」です。配列は int などのあれです。配列を文字列として...
Java

Java | Java 標準ライブラリ:SecureRandom

SecureRandom は「セキュリティ用の本気の乱数生成器」java.security.SecureRandom は、一言でいうと「パスワード・トークン・認証コードなど、“セキュリティが絡む場面専...
Java

Java | Java 標準ライブラリ:Random

Random クラスの全体像をまずつかむjava.util.Random は、「それっぽくランダムな値をくれる“乱数生成器”のクラス」です。ゲームでダメージ値をランダムにしたいガチャの結果をランダムに...
Java

Java | Java 標準ライブラリ:BigDecimal の丸めモード

なぜ BigDecimal に「丸めモード」が必要なのか(全体像)BigDecimal は「小数を誤差なく扱う」ためのクラスですが、もう一つ大事なテーマがあります。「小数をどこかで“切り捨て・切り上げ...
Java

Java | Java 標準ライブラリ:BigDecimal の加算減算

なぜ BigDecimal の「加算・減算」が特別なのか(全体像)BigDecimal は「お金など誤差が許されない小数」を扱うためのクラスでしたね。その代わり、+ や - の演算子は使えません。+ ...
Java

Java | Java 標準ライブラリ:BigDecimal 比較(compareTo)

BigDecimal の「比較」がややこしく感じる理由BigDecimal を使い始めると、ほぼ必ずこう思います。「== じゃダメなのは分かるとして、equals と compareTo って何が違う...
Java

Java | Java 標準ライブラリ:BigDecimal の必要性

なぜ BigDecimal が「わざわざ」必要になるのか(全体像)BigDecimal は、ざっくり言うと「お金や桁数が重要な数値を、ちゃんと正確に扱うためのクラス」です。初心者が最初にハマるポイント...
Java

Java | Java 標準ライブラリ:Math クラス

Math クラスの全体像を直感でつかむjava.lang.Math は、「よく使う数学系の処理をまとめてくれている“道具箱”」です。わざわざ自分で実装しなくていいように、基本的な計算用メソッドが一式そ...
Java

Java | Java 標準ライブラリ:NumberFormatException

NumberFormatException は「数字に変換できなかったときの例外」NumberFormatException は、ざっくり言うと「文字列を数字に変換しようとしたけど、数字としておかしい...
Python

Python | Web フレームワーク:リクエストモデル

概要(リクエストモデルは「リクエストの設計図」)リクエストモデルは、「クライアントから送られてくる JSON が、どんな形・どんな型をしているべきかを表した“設計図”」です。FastAPI(+Pyda...
Python

Python | Web フレームワーク:クエリパラメータ

概要(クエリパラメータ=「URLの後ろにくっつく条件・オプション」)クエリパラメータは、/search?keyword=python&limit=10 の?keyword=python&limit=1...
Python

Python | Web フレームワーク:パスパラメータ

概要(パスパラメータ=「URLの中の変数」)パスパラメータは、/users/123 の「123」/items/abc の「abc」のように、URL の一部を「変数」として受け取る仕組みです。Web フ...
Python

Python | Web フレームワーク:ルーティング

概要(ルーティングは「URL → 関数」の地図づくり)ルーティングは、「どのURLにアクセスされたら、どの関数(処理)を動かすか」を決める仕組みです。Webフレームワーク(FastAPI / Flas...
Python

Python | Web フレームワーク:FastAPI 基本

概要(FastAPI は「型付きの超書きやすい Web API フレームワーク」)FastAPI は、「Python で Web API を作るためのフレームワーク」です。特徴を一言でまとめると、型ヒ...
Python

Python | 自動化:Python アプリ構造化

概要(「1ファイル地獄」から抜け出して、“小さな部品の集まり”にする)Python アプリ構造化というのは、「全部 main.py に書きなぐる」のをやめて、「役割ごとにファイルやフォルダを分けて、部...
Python

Python | 自動化:設定ファイル(YAML)

概要(設定ファイル=「コードの外に出したルール表」)設定ファイル(YAML)は、「スクリプトの中にベタ書きしていた値(パス・日付・URL・モードなど)を、コードの外に出しておくための“ルール表”」だと...
Python

Python | 自動化:argparse

概要(argparse は「コマンドライン引数をちゃんと扱うための道具」)argparse は、python script.py input.csv output.csv --date 2025-01...
Python

Python | 自動化:CLI ツール作成

概要(CLI ツールは「自分専用コマンドを作る」こと)CLI ツール作成は、「python script.py」を叩く世界から一歩進んで、mytool fetch --date 2025-01-01r...
Python

Python | 自動化:Teams 通知

概要(Teams 通知は「Python からチャネルにメッセージを飛ばす」技)Teams 通知は、「Python のスクリプトから、Microsoft Teams のチャンネルに自動でメッセージを送る...
Python

Python | 自動化:Slack 通知

概要(Slack 通知は「コードからチャンネルにしゃべらせる」技)Slack 通知は、「Python のスクリプトが、自動で Slack のチャンネルにメッセージを送る仕組み」です。自動化と組み合わせ...
Python

Python | 自動化:エラー通知

概要(エラー通知は「落ちたことを人間に伝える仕組み」)エラー通知は、「プログラムがコケた瞬間に、人間がちゃんと気づけるようにする仕組み」です。例外ログは「証拠を残す」もので、エラー通知は「誰かに知らせ...
Python

Python | 自動化:例外ログ

概要(例外ログは「エラーの証拠を残すブラックボックスレコーダー」)例外ログは、「エラーが起きた“瞬間の情報”を、その場で消えずに後から見返せるように残しておく仕組み」です。プログラムは、一瞬で例外を投...
Python

Python | 自動化:バルク処理

概要(バルク処理は「チマチマやらずにまとめてやる」技)バルク処理(bulk processing)は、ざっくり言うと「1件ずつチマチマ処理するのではなく、まとめてガッと処理することで速く・安定して・無...
Python

Python | 自動化:リトライ処理

概要(リトライ処理は「一度コケても、もう一歩だけ踏み込む仕組み」)リトライ処理は、「一回失敗したからといって、すぐ諦めずに“もう一度やってみる”仕組み」です。特に自動化では、ネットワークが一瞬だけ不安...
Excel VBA逆引き

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

ねらい:Excelの一覧から、Slackに「自動でメッセージ投稿」する“型”を作る毎日・毎週・毎月、同じような通知を Slack に貼っていませんか。そのたびにコピペして、チャンネルを選んで…を続ける...
Excel VBA逆引き

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

ねらい:Excelの一覧から、Teamsに「自動でメッセージ投稿」する“型”を作るメールと同じで、Teams も「毎日・毎週・毎月、同じような通知」を流すなら、自動化した方が圧倒的に楽です。Excel...
Excel VBA逆引き

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

ねらい:Excelの一覧から「宛先・件名・本文・添付」を自動でメール配信する“型”を作る毎回同じようなメールを、宛先や本文の一部だけ変えて送る――これを手作業でやるのは時間のムダです。VBA なら「一...
Excel VBA逆引き

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

ねらい:システムごとに違う「キー・コード」を、表で定義して一括変換する同じ顧客・商品・部署でも、システムAとシステムBで「ID/コード」が違うことはよくあります。手作業で「VLOOKUP」したり、毎回...
Excel VBA逆引き

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

ねらい:顧客マスタ・商品マスタなどを「正規化→名寄せ→項目追加→エクスポート」まで一括で加工するマスタは、一度“型を決めて整えておく”と、その後の全ての業務(受発注・売上・分析)が安定します。一方で、...
Java

Java | Java 標準ライブラリ:Integer キャッシュ

Integer キャッシュってそもそも何かInteger キャッシュ は、Java が「よく使われる小さい整数については、Integer オブジェクトを使い回す」という最適化の仕組みです。もっとざっく...
Java

Java | Java 標準ライブラリ:auto-unboxing

auto-unboxing は「ラッパークラスから中身を自動で取り出す仕組み」まず前提から整理します。Java には、値そのものの 基本型(プリミティブ型) とそれをオブジェクトとして包んだ ラッパー...
Java

Java | Java 標準ライブラリ:auto-boxing

auto-boxing は「基本型 ↔ ラッパー型の自動変換」まず前提として、Java には基本型(プリミティブ型)int, long, double, boolean, char などラッパークラス...
Java

Java | Java 標準ライブラリ:ラッパークラス全体像

ラッパークラスとは何かをざっくりつかむJava の「ラッパークラス」は、int や double のような プリミティブ型(基本型)を “オブジェクトとして包んだクラス” です。対応はこうなっています...
Java

Java | Java 標準ライブラリ:Optional.ifPresent

ifPresent は「値があるときだけ処理するためのスイッチ」Optional.ifPresent は、「Optional の中に値が“入っているときだけ” この処理を実行してね」と言うためのメソッ...
Java

Java | Java 標準ライブラリ:Optional.orElse / orElseGet

Optional.orElse / orElseGet は「無いときどうするかを決めるメソッド」Optional は「あるかもしれないし、ないかもしれない値」を入れる箱でした。では、その箱が「空だった...
Java

Java | Java 標準ライブラリ:Optional.of / ofNullable

Optional.of / ofNullable の役割をざっくりつかむOptional を「値を入れる箱」と考えると、Optional.of と Optional.ofNullable は「箱に値を...
Java

Java | Java 標準ライブラリ:Optional の目的

Optional は「null をそのまま渡さないための箱」java.util.Optional は、簡単に言うと「あるかもしれないし、ないかもしれない値」を入れて渡すための“箱”です。それだけ聞くと...
Java

Java | Java 標準ライブラリ:文字コード(Charset)

文字コードと Charset を直感でつかむまず前提から整理します。コンピュータの中では、文字は「バイト列(0と1の並び)」として保存・送信されます。一方、Java の String は「文字そのもの...
Java

Java | Java 標準ライブラリ:split の落とし穴

split は「正規表現で区切る」メソッドだという前提String#split は、 「文字列を区切り文字で分割する」メソッド ですが、まず一番大事なポイントは「引数は“ただの区切り文字”ではなく、“...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – ループの可読性

ループの可読性とは何か「可読性が高いループ」とは、意図が一目で分かり、バグが起きにくく、後から変更しやすい書き方です。ここが重要です:処理の目的(抽出・変換・集計・実行)に合った構文を選び、否定条件を...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – インデックス利用の注意点

インデックス利用とは何か配列やオブジェクトをループ処理するとき、インデックス(位置番号)を使って要素へアクセスすることがあります。例えば arr は先頭要素、arr は i 番目の要素です。ここが重要...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – early return 的な書き方

早期リターン(early return)とは何かearly return は「不要な処理をなるべく“前で打ち切る”書き方」です。関数の先頭でガード(不正条件ならすぐ return)し、ループ内でも“用...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – ネスト配列の処理

ネスト配列とは何かネスト配列は「配列の中にさらに配列が入っている」入れ子構造です。例えば行列(2次元)、ツリー(多次元)、グループ化されたデータなどが該当します。ここが重要です:処理の設計は“どの深さ...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – reduce での集計

reduce での集計の基本reduce は「配列の全要素を順に処理して、ひとつの値へ“畳み込む(集約する)”」ためのメソッドです。合計・平均・最大最小だけでなく、辞書(オブジェクト)や Map を作...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – map と forEach の違い

何が違うのかmap は「各要素を同じルールで変換して“新しい配列”を返す」メソッドです。一方、forEach は「各要素に対して“処理(副作用)を実行するだけ”で、配列は返しません」。ここが重要です:...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – break / continue の使えない理由(forEach)

forEach で break / continue が使えない理由forEach は「配列の各要素に対して“関数を呼び出す”」高階メソッドです。ここが重要です:forEach は“自分でループを制御...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – forEach

forEach とは何かforEach は「配列の各要素に対して、指定した関数を順番に“実行する”」ためのメソッドです。ここが重要です:forEach は“副作用(処理をすること)”が目的で、戻り値と...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – for…of

for...of とは何かfor...of は「配列など“反復可能(イテラブル)”なものを、要素の値にフォーカスしてシンプルに処理する」構文です。ここが重要です:for...of は“値”を1つずつ取...
JavaScript

JavaScript | 配列・オブジェクト:ループ処理 – for での配列処理

for とは何かfor は「カウンター(インデックス)を使って、配列を順番に処理する」ための基本的なループ構文です。ここが重要です:配列の長さと位置を明示的に扱えるので、部分処理・スキップ・早期終了・...
Python

Python | 自動化:タイムアウト処理

概要(タイムアウト処理は「いつまでも待たない」ための保険)タイムアウト処理は、「相手(外部サービス・コマンド・ファイル処理など)がいつまでたっても返事してこないときに、一定時間で“もう待つのをやめる”...
Python

Python | 自動化:コルーチン

概要(コルーチンは「途中で一旦止まって、あとで再開できる関数」)コルーチン(coroutine)は、めちゃくちゃざっくり言うと「自分の途中経過(状態)を持ったまま、一旦止まって、あとでそこから再開でき...
Python

Python | 自動化:await / async

概要(async / await は「同時進行のための文法」)async / await は、「Python に“ここは待ち時間だから、その間ほかの仕事をしていいよ”と伝えるための文法」です。asyn...
Python

Python | 自動化:aiohttp

概要(aiohttp は「非同期版 requests」だと思うと入りやすい)aiohttp は、「asyncio と一緒に使うための HTTP クライアントライブラリ」です。雑に言うと、request...
Python

Python | 自動化:非同期 asyncio

概要(asyncio は「1人で同時進行する」仕組み)マルチスレッドやマルチプロセスは「人を増やす」イメージでした。asyncio はちょっと違っていて、「1人なんだけど、待ち時間のあいだに別の作業に...
Python

Python | 自動化:concurrent.futures

概要(concurrent.futures は「並列処理をいい感じにラップしてくれる道具」)concurrent.futures は、「マルチスレッド」「マルチプロセス」を、初心者でも扱いやすい形にし...
Python

Python | 自動化:マルチプロセス

概要(マルチプロセスは「CPUを増やしてゴリゴリ計算させる」仕組み)前回のマルチスレッドは「待ち時間のあいだに別の仕事をする」話でした。マルチプロセスはもう一歩踏み込んで、「CPU のコアをフルに使っ...
Python

Python | 自動化:マルチスレッド

概要(マルチスレッドは「待ち時間のあいだに、別の仕事を回す」仕組み)Python のマルチスレッドは、「1つのプログラムの中で、複数の“流れ(スレッド)”を同時進行させる」仕組みです。自動化の世界だと...
Python

Python | 自動化:Web API 集計 BOT

概要(Web API 集計 BOT は「データを取って、すぐに意味のある形にするロボット」)Web API 集計 BOT は、単なる「データ収集 BOT」から一歩進んで、「取ってきたデータをその場で集...
Python

Python | 自動化:データ収集 BOT

概要(データ収集BOTは「決まった場所から、決まった情報を黙々と集めてくれるロボット」)データ収集 BOT は、「毎日このサイトの価格をチェック」「このAPIから定期的にデータを取得」といった“繰り返...
Python

Python | 自動化:Selenium ログイン自動化

概要(Selenium ログイン自動化は「ブラウザ操作を人間の代わりにやらせる」)Selenium は「ブラウザをコードで操作するロボット」です。URL を開く、ID・パスワードを入力する、ボタンをク...
Python

Python | 自動化:ファイル変換自動化

概要(「○○を置いたら自動で△△に変換」を型にする)ファイル変換自動化は、「特定のフォルダにファイルを置くだけで、Python が自動で別形式に変えてくれる」仕組みです。例えば、Excel → CSV...
Python

Python | 自動化:PDF 自動生成

概要(PDF自動生成は「レポートや帳票を押印前まで自動で作る」)Python で PDF 自動生成ができると、こんなことができます。日次・月次レポートを PDF で自動出力見積書・請求書・領収書などの...
Python

Python | 自動化:Excel レポート自動作成

概要(「決まった Excel レポート」を毎回ボタン一発にする)Excel レポート自動作成は、「毎月・毎週・毎日、ほぼ同じレイアウトの Excel を作る仕事」をPython に肩代わりさせることで...
Python

Python | 自動化:CSV のクリーニング

概要(CSV のクリーニングは「人力のチェックを Python に任せる」作業)CSV のクリーニングは、ざっくり言うと余計な空白や文字の揺れを揃える数値・日付をちゃんと数値・日付として扱えるように直...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – 非破壊的操作の考え方

非破壊的操作とは何か非破壊的操作は「元の配列を変更せず、新しい配列を返す」考え方とテクニックの総称です。ここが重要です:配列を“直接書き換えない”ことで、予期せぬ影響(共有参照のバグ、UI状態の崩れ)...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – sort(カスタム)

カスタム sort とは何かカスタム sort は「比較関数(compareFn)を自分で定義して、並べ替えの“ルール”をコントロールする」ことです。ここが重要です:compareFn は負・ゼロ・正...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – sort(基本)

sort とは何かArray.prototype.sort は「配列の要素を並べ替える」メソッドです。ここが重要です:sort は“破壊的(インプレース)”で、元の配列そのものを書き換えます。返り値は...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – reverse

reverse とは何かreverse は「配列の要素の並びを“逆順”に並べ替える」メソッドです。ここが重要です:reverse は“破壊的(インプレース)”に働き、元の配列そのものを逆順に書き換えま...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – join

join とは何かjoin は「配列の要素を“区切り文字”でつないで、ひとつの文字列を作る」メソッドです。元の配列は変更されない非破壊操作で、返り値は常に文字列です。ここが重要です:区切り文字(セパレ...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – flatMap

flatMap とは何かflatMap は「各要素を“変換”して、その結果を1階層だけ“平坦化(フラットに)”して新しい配列を返す」メソッドです。map と flat(1) を連続で行うのと同じ効果を...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – flat

flat とは何かflat は「“入れ子(ネスト)になった配列”を、指定した深さまで“平坦化(フラットに)して新しい配列”を返す」メソッドです。元の配列は変更しない非破壊操作です。ここが重要です:fl...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – reduce

reduce とは何かreduce は「配列のすべての要素を順に処理して、“ひとつの値”にまとめる(集約する)」メソッドです。合計、最大値、オブジェクトの構築、グルーピングなど“ひとつにまとめ上げる”...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – filter

filter とは何かfilter は「配列から、条件を満たす要素だけを“抽出して新しい配列”を返す」メソッドです。元の配列は変更しない非破壊操作で、返される配列の要素数は条件次第で増減します。ここが...
JavaScript

JavaScript | 配列・オブジェクト:配列の変換・加工 – map

map とは何かmap は「配列の各要素に同じ処理を適用して、“変換後の新しい配列”を作る」ためのメソッドです。元の配列は変更されない非破壊操作で、要素数は常に同じままです。ここが重要です:map は...
Java

Java | Java 標準ライブラリ:Matcher の使い方

Matcher は「正規表現パターンを文字列に当てていく実行役」前回の Pattern の話とつなげると、役割分担はこうです。Pattern「正規表現(パターン)そのもの」を表す。何度も使い回せる“型...
Java

Java | Java 標準ライブラリ:正規表現(Pattern)

正規表現と Pattern クラスの関係をざっくりつかむ「正規表現(regex)」は、「文字列の **“パターン” を言葉で書くための小さな言語」だと思ってください。「数字3桁‐数字4桁の電話番号」「...
Java

Java | Java 標準ライブラリ:文字列比較の正解

なぜ「文字列比較」はつまずきポイントなのかJava 初心者がほぼ確実に一度はハマるのが、文字列比較でのミスです。見た目は同じ "abc" なのに、なぜか比較結果が false になる、if が通らない...
Java

Java | Java 標準ライブラリ:文字列結合のパフォーマンス

なぜ「文字列結合のパフォーマンス」を気にする必要があるのかJava では文字列を扱う機会がとても多いです。ログ、SQL の組み立て、メッセージ生成、CSV 出力など、気づけばどこも文字列だらけになりま...
Java

Java | Java 標準ライブラリ:StringBuffer

StringBuffer はどんなクラスか(まず全体像)StringBuffer は、ざっくり言うと「中身を書き換えられる文字列バッファ」「スレッドセーフな StringBuilder」です。役割自体...
Java

Java | Java 標準ライブラリ:StringBuilder

なぜ StringBuilder が必要になるのかまず前提として、String は「イミュータブル(不変)」です。一度作られた String の中身は絶対に変わりません。その結果、こういうコードを書く...
Java

Java | Java 標準ライブラリ:String のイミュータブル性

「イミュータブル」ってそもそも何?まず言葉から整理します。「イミュータブル(immutable)」は「不変」という意味です。Java の String はイミュータブルなので、一度作られた Strin...
Java

Java | Java 標準ライブラリ:String クラスの特性

String クラスは「特別扱い」されているクラスString は、Java で文字列を扱うためのクラスです。でも、ただのクラスではなく「言語レベルで特別扱い」されている存在です。ダブルクォーテーショ...
Java

Java | Java 標準ライブラリ:clone の注意点

まず「clone は基本おすすめされない」という前提からいきなり結論から言うと、Object#clone() は「あるけど、できれば使わない方がいい API」です。理由はシンプルで、挙動が分かりにくい...
Java

Java | Java 標準ライブラリ:getClass

getClass は「そのオブジェクトの正体を教えてくれるメソッド」getClass() は、Object クラスが持っているメソッドで、「このオブジェクトは、実際にはどのクラスのインスタンスなのか」...
Java

Java | Java 標準ライブラリ:hashCode 契約

hashCode 契約って何のこと?hashCode() は「オブジェクトを、整数の“番号”に変換するメソッド」です。主に HashMap や HashSet などの「ハッシュを使うコレクション」で使...
Java

Java | Java 標準ライブラリ:equals の正しい使い方

equals は「同じインスタンスか?」ではなく「意味として同じか?」を見るequals は「この2つのオブジェクトは“意味として”同じものと言えるか?」を判定するメソッドです。ここでまず大事なのが=...
Java

Java | Java 標準ライブラリ:toString の使いどころ

toString は「中身を一瞬で覗くための窓」toString() は「このオブジェクトを、人間にとって読みやすい文字列にするとしたら、どう表現するか?」を返すメソッドです。System.out.p...
Java

Java | Java 標準ライブラリ:Object クラスの役割

Object クラスってそもそも何者かjava.lang.Object は「Java に登場するすべてのクラスの“ご先祖さま”」です。あなたがこう書いたクラスもpublic class User {}...
Java

Java | Java 標準ライブラリ:java.lang パッケージ概要

java.lang パッケージとは何かjava.lang は、「Java でプログラムを書くときに、ほぼ必ず使う“基本中の基本”がまとまったパッケージ」です。特徴としてimport を書かなくても、勝...
Python

Python | 自動化:API 定期取得

概要(API定期取得は「決まった時間にデータを取りに行くロボット」)API定期取得は、「毎朝9時にレポートAPIを叩く」「10分ごとにセンサーAPIから値を取る」といった処理を Python で自動実...
Python

Python | 自動化:Python バッチ

概要(「決まった処理をまとめてやるスクリプト」がバッチ)ここで言う「Pythonバッチ」は、「人がボタンを押さなくても、決まった処理をまとめて実行するスクリプト」のことです。例えば、毎朝こんなことを勝...
Python

Python | 自動化:cron / タスクスケジューラ

概要(「決まった時間にPythonを勝手に動かす」仕組み)cron(Linux / Mac)やタスクスケジューラ(Windows)は、「毎朝9時にこのPythonスクリプトを実行して」「1時間ごとに定...
Python

Python | 自動化:フォルダ監視

概要(フォルダ監視は「ファイルが増えた瞬間に自動で動く仕組み」)フォルダ監視は、「あるフォルダにファイルが置かれたら、自動で処理を走らせる」ための仕組みです。例としては、ダウンロードフォルダにPDFが...
Python

Python | 自動化:Excel テンプレ自動集計

概要(「決まったExcel」ならPythonで一気に集計できる)毎月・毎店舗・毎担当者から、同じ形式のExcelが集まってきて、それを手でコピペして集計していませんか。「テンプレが決まっているExce...
Java

Java | オブジェクト指向:小規模アプリの設計演習

この演習で目指すことここでは「小さいアプリ」を題材にしながら、オブジェクト指向でどう設計していくかを、最初から最後まで追体験してもらいます。難しいフレームワークは使いません。シンプルな Java のク...
Java

Java | オブジェクト指向:実務でよくある設計ミス

実務でよくある「設計ミス」とは何か実務でよく見る設計ミスは、「一発でシステムが壊れるような爆発」ではなく、最初は普通に動くけれど、時間が経つほどコードが重く・遅く・触りたくなくなっていく、そんなタイプ...
Java

Java | オブジェクト指向:オブジェクト指向的リファクタリング

オブジェクト指向的リファクタリングとは何かリファクタリング自体は「外から見た動きを変えずに、コードの中身(設計・構造)だけを良くしていく作業」です。オブジェクト指向的リファクタリングというときは、単に...
Java

Java | オブジェクト指向:パッケージ命名規則

パッケージ命名規則って何のためにあるのかパッケージ名は「このコードはどこの誰が書いた、何のグループなのか」を表すラベルです。クラス名が「1人の役者の名前」だとしたら、パッケージ名は「その人が所属してい...
Java

Java | オブジェクト指向:メソッド名の付け方

なぜメソッド名がそんなに大事なのかメソッド名は「このメソッドが何をするか」を一言で表すラベルです。ここが雑だと、コードを読むたびに「これ何してるんだっけ?」と中身を開いて確認する羽目になります。逆に、...
Java

Java | オブジェクト指向:クラス名の付け方

クラス名をつける前に知っておきたいことクラス名は、「このクラスは何者か」を一言で説明するラベルです。クラス名だけで、そのクラスの役割や意味がある程度イメージできるのが理想です。逆に言うと、クラス名があ...
Java

Java | オブジェクト指向:命名の重要性

なぜ命名がそんなに重要なのか命名は、プログラムの「言葉」です。コードは機械のためのものに見えて、実際には「人間が読む時間」の方が圧倒的に長いです。だから、変数名・メソッド名・クラス名は、そのまま「設計...
Java

Java | オブジェクト指向:モックしやすい設計

「モックしやすい設計」とは何かモックしやすい設計は「テストのときに、本物の代わりの“ニセモノ(モック)”を簡単に差し込める設計」のことです。たとえば、実際にはメールを送らずに「メール送信が呼ばれたかだ...
Java

Java | オブジェクト指向:テストしやすい設計

「テストしやすい設計」とは何かテストしやすい設計は「そのクラスやメソッドを、単体でサクッと動かして結果を確認できる設計」のことです。もっと言うと、テストを書くために余計な準備がいらないテストしたい部分...
Java

Java | オブジェクト指向:再利用しやすいクラス設計

「再利用しやすいクラス」とは何か再利用しやすいクラスは「別の場面・別のプロジェクトでも、ほとんどそのまま使えるクラス」です。もう少し噛み砕くと、特定の画面・特定の DB・特定のフレームワークにベッタリ...
Java

Java | オブジェクト指向:public フィールドの問題

public フィールドがなぜ問題になるのかpublic フィールドは「この変数は、どこからでも読み書きしていいです」と世界中に宣言しているのと同じです。一見「楽」「コードが短い」で済みますが、その代...
Java

Java | オブジェクト指向:可視性を最小にする

可視性を最小にするとは何か「可視性を最小にする」は、クラス・フィールド・メソッドのアクセス範囲(public / protected / なし / private)を「必要な場所にだけ見えるよう、でき...
Java

Java | オブジェクト指向:defensive copy

defensive copy とは何かdefensive copy(防御的コピー)は「オブジェクトの中身を、外から勝手に壊されないように、防御のためにコピーを取るテクニック」のことです。特に List...
Java

Java | オブジェクト指向:コレクションをフィールドに持つ設計

「コレクションをフィールドに持つ」とは何を意味するかコレクションをフィールドに持つ設計というのは、クラスの中に List や Set、Map などを「メンバー」として抱える設計のことです。例えば、注文...
Java

Java | オブジェクト指向:値オブジェクトの比較

値オブジェクトの「比較」とは何を意味するか値オブジェクトは「中身の値が同じなら、同じものとして扱うクラス」です。お金 1000円、メールアドレス x@example.com、日付 2025-01-01...
Java

Java | オブジェクト指向:Entity の同一性

Entity の「同一性」とは何かEntity の同一性とは「そのオブジェクトが“誰なのか”を決める軸」のことです。もっと噛み砕くと、・中身(名前や住所)が変わっても「同じ人」として扱いたいもの・「同...
Java

Java | オブジェクト指向:DTO と Entity の違い

DTO と Entity は「役割」がまったく違うDTO と Entity は、どっちも「フィールドを持ったクラス」なので見た目が似ていますが、役割がまったく違います。DTO(Data Transfe...
Java

Java | オブジェクト指向:神クラス(God Object)

神クラス(God Object)とは何か神クラス(God Object)は「システムのあらゆることを“何でも知っていて、何でもやろうとする”巨大なクラス」のことです。画面の制御もやる。ビジネスロジック...
Java

Java | オブジェクト指向:クラス肥大化の兆候

クラス肥大化って何がまずいのかクラス肥大化は「とりあえずあれこれ押し込んでいるうちに、そのクラスだけ異様に太ってしまった状態」です。1つのクラスが、画面の制御も、ビジネスロジックも、DB のやりとりも...
Java

Java | オブジェクト指向:不変条件の守り方

不変条件ってそもそも何なのか不変条件(invariant)は「このオブジェクトが“生きている間ずっと”守られていないといけない約束」のことです。例えると、ユーザーのポイントは常に 0 以上注文は明細を...
Java

Java | オブジェクト指向:不正な setter の問題

なぜ「不正な setter」が問題になるのかsetter 自体は悪ではありません。ただ「何でもかんでも public な setter を生やす」「ルールも何もなく値を変えられるようにする」と、オブジ...
Java

Java | オブジェクト指向:リッチドメインモデル

リッチドメインモデルとは何かリッチドメインモデルは「ドメイン(業務)の知識とルールを、“それっぽい名前だけの入れ物”ではなく、クラスの中身としてちゃんと持たせよう」という考え方です。もっとストレートに...
Java

Java | オブジェクト指向:貧血モデルとは

貧血モデルとは何か貧血モデル(Anemic Domain Model)は「フィールド(データ)だけ持っていて、自分の振る舞い(ビジネスロジック)をほとんど持たないオブジェクト」がシステム中にあふれてい...
Java

Java | オブジェクト指向:ドメインモデルの考え方

ドメインモデルとは何かドメインモデルは「扱っている世界(業務)の“概念”を、そのままクラスとして表現したもの」です。給料計算システムなら「社員」「勤怠」「給与」EC サイトなら「商品」「カート」「注文...
Java

Java | オブジェクト指向:switch 文のオブジェクト化

「switch 文のオブジェクト化」とは何か「switch 文のオブジェクト化」は、switch にベタっと書いている「種類ごとの違い」を、それぞれのクラス(オブジェクト)に持たせるように書き換えるこ...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – 条件検索の書き方

条件検索とは何か配列の「条件検索」は、要素の値やプロパティが“指定した条件を満たす”ものを探すことです。ここが重要です:何を返したいかで使うメソッドが変わります。要素そのものが欲しいなら find、位...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – undefined 要素の扱い

undefined 要素とは何か配列の「undefined 要素」は2種類あります。ここが重要です:値が undefined で“入っている要素”と、インデックスはあるのに“実際には値がない空スロット...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – 配列内存在チェック

配列内存在チェックとは何か「配列内存在チェック」は、ある値や条件に合う要素が配列に含まれているかどうかを判定することです。ここが重要です:何を知りたいかで使うメソッドが変わります。「あるかどうかだけ」...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – every

every とは何かevery は「配列の全ての要素が、与えた条件を満たすか」を true/false で返す判定メソッドです。1つでも条件を満たさない要素が見つかった瞬間に false を返し、探索...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – some

some とは何かsome は「配列の中に、条件を満たす要素が“少なくとも1つでもあるか”を true/false で返す」判定メソッドです。見つかった瞬間に検索を止める“短絡評価”を行います。ここが...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – findIndex

findIndex とは何かfindIndex は「配列の中から、条件に一致する“最初の1要素のインデックス(位置)”を返す」検索メソッドです。見つかれば 0 以上の番号、見つからなければ -1 を返...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – find

find とは何かfind は「配列から、条件を満たす“最初の1要素”を返す」検索メソッドです。見つかればその要素、見つからなければ null ではなく undefined を返します。ここが重要です...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – includes

includes とは何かincludes は「配列の中に、指定した値が“存在するかどうか”を true/false で返す」判定メソッドです。位置は返さず、単純に“あるかないか”だけを答えます。ここ...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – lastIndexOf

lastIndexOf とは何かlastIndexOf は「配列の中から、指定した値が“最後に現れる位置(インデックス)”を返す」検索メソッドです。見つかれば 0 以上の番号、見つからなければ -1 ...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – indexOf

indexOf とは何かindexOf は「配列の中から、指定した値が最初に現れる位置(インデックス)を返す」検索メソッドです。見つかれば 0 以上の番号、見つからなければ -1 を返します。ここが重...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – 空配列にする方法

空配列にするとは何か「空配列にする」とは、配列からすべての要素を取り除いて要素数を 0 にすることです。ここが重要です:やり方によって“参照を保つ(同じ配列オブジェクトのまま空にする)”場合と、“別の...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – スプレッド構文での追加

スプレッド構文とは何かスプレッド構文 ... は「配列の“中身”をその場で展開する」書き方です。たとえば ] は と同じ意味になり、, 3] は を作ります。ここが重要です:スプレッドは“非破壊”で新...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – 配列の結合(concat)

concat とは何かconcat は「複数の配列や値を“結合して新しい配列”を返す」非破壊メソッドです。元の配列は変更されず、つなげた結果だけが戻り値として返ります。ここが重要です:concat は...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – slice

slice とは何かslice は「配列から“指定した範囲”を切り出して、新しい配列を返す」非破壊メソッドです。元の配列は変更されず、開始位置から終了位置の“手前まで”がコピーされます。ここが重要です...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – splice(追加)

splice(追加)とは何かsplice は「配列の途中に要素を挿入(必要なら置き換えも)できる」メソッドです。書式は array.splice(start, deleteCount, ...inse...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – splice(削除)

splice(削除)とは何かsplice は「配列の途中から指定した数だけ要素を削除する」ためのメソッドです。書式は array.splice(start, deleteCount, ...inser...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – unshift

unshift とは何かunshift は「配列の先頭に要素を追加し、その結果の要素数(length)を返す」メソッドです。ここが重要です:unshift は“破壊的操作”で、元の配列を直接書き換えま...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – shift

shift とは何かshift は「配列の先頭の要素を1つ取り出して、配列から削除する」メソッドです。取り出した要素を返し、配列の長さを1つ減らします。ここが重要です:shift は“破壊的操作”で、...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – pop

pop とは何かpop は「配列の末尾から要素を1つ取り出して、配列から削除する」メソッドです。取り出した要素を返し、配列の長さを1つ減らします。ここが重要です:pop は“破壊的操作”で、元の配列を...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – push

push とは何かpush は「配列の末尾に要素を追加し、その結果の要素数を返す」メソッドです。ここが重要です:push は“破壊的操作”です。元の配列を直接書き換えるため、同じ配列を共有している変数...
Java

Java | オブジェクト指向:if 文だらけのコードの問題点

if 文だらけのコードが「なぜツラくなる」のかif 自体は悪ではありません。条件分岐はどの言語にもある基本機能だし、使う場面ももちろんあります。問題になるのは、「if 文がコードのあちこちに増えすぎて...
Java

Java | オブジェクト指向:ポリモーフィズムによる分岐削減

ポリモーフィズムで分岐を減らすとは何か「ポリモーフィズムによる分岐削減」は、if や switch でゴチャゴチャ分岐している処理を、「オブジェクトの“型ごとの振る舞いの違い”に任せてスッキリさせる」...
Java

Java | オブジェクト指向:ファクトリメソッドの概念

ファクトリメソッドとは何かファクトリメソッドは「new の代わりに“生成専用メソッド”を用意して、オブジェクトの作り方をそこに閉じ込める考え方」です。普通は new で直接コンストラクタを呼んでオブジ...
Java

Java | オブジェクト指向:セッターインジェクション

セッターインジェクションとは何かセッターインジェクションは「必要な相手(依存オブジェクト)を、コンストラクタではなく setter メソッドで後から差し込む」という DI(依存性注入)のやり方です。コ...
Java

Java | オブジェクト指向:コンストラクタインジェクション

コンストラクタインジェクションとはコンストラクタインジェクションは「そのクラスが必要とするオブジェクト(依存)を、コンストラクタの引数で受け取る」という設計のやり方です。もっと噛み砕くと、・自分の中で...
Java

Java | オブジェクト指向:DI(依存性注入)の考え方

DI(依存性注入)とは何かDI(Dependency Injection)は「必要な相手(依存先)を、自分で new しないで“外から渡してもらう”考え方」です。もっと噛み砕くと、本来一緒に仕事をする...
Java

Java | オブジェクト指向:インターフェース分離

インターフェース分離とは何かインターフェース分離(Interface Segregation Principle, ISP)は、「インターフェースは、小さくて、はっきりした役割ごとに分けなさい」という...
Java

Java | オブジェクト指向:クラス間の依存を減らす方法

なぜ「クラス間の依存を減らす」のが大事なのかクラス同士がベッタリ依存していると、どこか 1 クラスを少し変えただけで、他のクラスが次々壊れていきます。「このメソッド名を変えたいだけなのに、10 クラス...
Java

Java | オブジェクト指向:パッケージ図

パッケージ図とは何かパッケージ図は「大きな箱同士の関係」を描く図です。クラス図が「クラスとクラスの関係の地図」だとすると、パッケージ図は「パッケージとパッケージの関係の地図」です。Java の com...
Java

Java | オブジェクト指向:UML の読み方

UML とは何か(まず全体像)UML は「図でプログラムを表すための共通ルール」のようなものです。Java のコードを、箱や矢印で表現して「このシステムにはどんなモノがいて、どうつながっているか」を見...
Java

Java | オブジェクト指向:クラス図の基礎

クラス図とは何かクラス図は「オブジェクト指向の設計図」です。クラス(型)の名前、持っているデータ(フィールド)、できること(メソッド)、そしてクラス同士の関係(関連・継承・依存など)を「箱と線」で表し...
Java

Java | オブジェクト指向:関連の多重度

関連の多重度とは何か「関連の多重度」は、「あるクラスと別のクラスが、どれくらいの数で結びついているか」を表す考え方です。UML だと 1, 0..1, *, 0..*, 1..* みたいな表記を見たこ...
Java

Java | オブジェクト指向:集約と関連

集約と関連とは何かオブジェクト指向で「集約」と「関連」は、クラスとクラスの“つながり方”を表す言葉です。ざっくり言うと、関連:ただの「知り合い」関係(A が B を知っている・参照している)集約:ある...
Java

Java | オブジェクト指向:オブジェクトのライフサイクル

オブジェクトのライフサイクルとは「オブジェクトのライフサイクル」は、あるオブジェクトが生まれて(生成されて)、使われて、やがて不要になり、最後に片付けられるまでの一連の流れのことです。Java では、...
Java

Java | オブジェクト指向:単一責任の原則(SRP)

単一責任の原則(SRP)とは単一責任の原則(Single Responsibility Principle, SRP)は「クラスやモジュールは“たった1つの責任(変更理由)だけ”を持つべき」というルー...
Python

Python | データ処理:pandas のインデックス管理

概要(インデックス管理は「行ラベルを設計して、選択・結合・時系列操作を安定化」する)pandasのインデックスは“行のラベル”です。単なる番号ではなく、選択(loc)、結合(join/merge)、並...
Python

Python | データ処理:pandas の join

概要(pandas の join は「インデックスで横に結合」する最短ルート)DataFrame.join は、“インデックス”をキーにして横方向(列を増やす)へ結合します。SQL の JOIN に似...
Python

Python | データ処理:フィルタリング

概要(フィルタリングは「欲しい行だけを、短く正確に抜く」ための基本)pandasのフィルタリングは、条件式でTrue/Falseのマスクを作り、Trueの行だけを抽出するのが基本形です。重要なのは「ブ...
Python

Python | データ処理:欠損値可視化

概要(欠損値可視化は「どこで、どれだけ、どう偏っているか」を一目で掴むための入口)欠損値は“壊れたデータ”ではなく“情報が抜けている状態”です。可視化の目的は、列ごとの欠損量、行方向の偏り(特定期間・...
Python

Python | データ処理:正規化

概要(正規化は「値の範囲を揃えて比較・学習を安定化」する前処理)正規化(Normalization)は、特徴量の値を一定の範囲にスケーリングする処理です。最も基本的な手法は Min–Max 正規化で、...
Python

Python | データ処理:データの標準化

概要(標準化は「平均0・標準偏差1」に揃えて、比較と学習を安定させる)データの標準化(Standardization)は、各特徴量を平均0・標準偏差1に変換する処理です。スケールが揃うことで、距離や勾...
Python

Python | データ処理:行列計算

概要(行列計算は「配列の形をそろえて、演算子と線形代数APIに載せる」)NumPyの行列計算は、2次元配列(ndarray)を使って加算・減算・要素積・行列積・転置・逆行列・行列式・固有値・連立方程式...
Python

Python | データ処理:ベクトル演算

概要(ベクトル演算は「配列同士を一発で計算」できる最短ルート)NumPyのベクトル演算は、forループを使わずに配列(一次元配列=ベクトル)をまとめて計算します。足し算・引き算・要素ごとの掛け算、内積...
Python

Python | データ処理:配列計算の高速化

概要(配列計算の高速化は「Pythonのループを捨て、NumPyのベクトル化へ乗り換える」)配列計算の高速化の要は、NumPy配列(ndarray)に処理を寄せることです。Pythonのforループや...
Python

Python | データ処理:numpy random

概要(numpy randomは「乱数で“試す・検証する・生成する”」ための基礎道具)NumPyの乱数は、データのシミュレーション、重みの初期化、サンプリング、シャッフル、ノイズ付与などに使います。初...
Python

Python | データ処理:グラフの保存

概要(グラフの保存は「見せたい品質で出力」を実現する最後の一歩)matplotlib(pandasのplotの裏側)なら、画像形式や解像度、余白、透明背景などを細かく制御して保存できます。初心者は「f...
Python

Python | データ処理:複数グラフの描画

概要(複数グラフは「比較」と「文脈」を一枚で伝えるための基本スキル)複数グラフの描画は、指標の関係や推移を“並べて”見せることで理解を一気に深めます。pandasとmatplotlibを使えば、サブプ...
Python

Python | データ処理:ヒートマップ

概要(ヒートマップは「2次元の表を色で読み解く」最短ルート)ヒートマップは、2次元の数値テーブルを色の濃淡で表現するグラフです。相関(どの列同士が関係強い?)、クロス集計(店舗×月の売上)、時系列のパ...
Python

Python | データ処理:ヒストグラム

概要(ヒストグラムは「値の分布」を一目でつかむための入口)ヒストグラムは、数値データを区間(ビン)に分け、各区間に何件入ったかを棒で表すグラフです。平均や中央値では見えない「偏り」「裾の重さ」「外れ値...
Python

Python | データ処理:散布図

概要(散布図は「2つの変数の関係」を直感で掴むための基本グラフ)散布図は、横軸にX(説明変数)、縦軸にY(目的変数)を置き、各行を点としてプロットします。点の並びから、正の相関・負の相関・無相関、外れ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列のコピー方法

配列のコピーとは何か配列のコピーは「元の配列を壊さず、別の配列インスタンスを作る」ことです。ここが重要です:コピーには“浅いコピー”(一次元ぶんだけ独立)と“深いコピー”(入れ子の中身まで独立)があり...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列の初期化方法

配列の初期化とは何か配列の初期化は「配列を作って、最初の中身(要素)や長さを決める」ことです。ここが重要です:JavaScript では複数の初期化方法がありますが、意図と挙動が微妙に違います。最も安...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列と文字列の違い

配列と文字列とは何か配列は「値を順番に並べるための入れ物」、文字列は「文字を順番に並べたテキスト」です。どちらも“順序がある並び”ですが、決定的な違いがあります。ここが重要です:配列は変更可能(要素の...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 多次元配列

多次元配列とは何か多次元配列は「配列の中に配列を入れた構造」です。2次元は行と列、3次元はさらに“層”があるイメージになります。ここが重要です:JavaScriptには専用の多次元型はなく、配列の入れ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列の変更可能性

配列の変更可能性とは何か配列は「参照型のオブジェクト」で、デフォルトでは中身を自由に変更できます。push・pop・splice・sort などのメソッドは配列を“その場で書き換える”ため、同じ配列を...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列の参照渡し

配列の参照渡しとは何か配列は「参照型」のオブジェクトです。変数が直接値そのものを持つのではなく、“配列がある場所(参照)”を指しています。ここが重要です:代入や関数引数で配列を渡すと、“配列そのもの”...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – length プロパティ

length プロパティとは何かlength プロパティは「配列の要素数」を表す特別な値です。配列に何個の要素が入っているかを常に返してくれます。ここが重要です:length は「最後のインデックス ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – インデックスの概念

インデックスとは何かインデックスは「配列の中で、要素に付いている番号」です。JavaScript では先頭が 0、次が 1…と続きます。ここが重要です:配列の要素数(length)とインデックスの最大...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列リテラル

配列リテラルとは何か配列リテラルは、角括弧 は数値の配列、 は型が混在した配列になります。ここが重要です:JavaScript の配列はどんな型でも混ぜられ、長さは後から自由に伸び縮みします。new ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列とは何か

配列とは何か配列は「値を順番に並べて、ひとまとめに扱うための箱」です。1つの変数に複数の値を入れて、後から順番や番号(インデックス)で取り出せます。ここが重要です:JavaScript の配列は“どん...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – システム間データ変換ツール

ねらい:異なるシステムの「項目差・形式差・コード差」をマッピング定義で一括変換する販売管理→会計、EC→WMS、CRM→BIなど、システム間で項目名・コード・日付/数値/通貨/税・改行/文字コードが微...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 仕様チェックツール

ねらい:シートやテーブルの「仕様(列名・型・必須・制約・相互参照)」を一括で検査して、逸脱をすぐに見つける仕様チェックは「定義した通りにデータが作られているか」を機械的に見張る仕組みです。列名のズレ、...
Excel VBA逆引き

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

ねらい:CSVの「ヘッダ・型・必須・重複・範囲・書式」を一括検証して、エラーを“見える化”するCSV取り込み前に“壊れていないか”を機械的にチェックできると事故が激減します。VBAなら“安全読込→ルー...
Excel VBA逆引き

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

ねらい:データの「揺らぎ・欠損・重複・型違い」を一括で正すクレンジングツール実務では「顧客名の表記揺れ」「日付が文字列」「数値が文字列」「重複行」「空白セル」などが頻出します。これを手作業で直すと膨大...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 分析テンプレ(前日比など)

ねらい:売上・アクセスなどの「前日比・前週比・移動平均・異常検知」を一撃で出せる分析テンプレ毎日の数字を「昨日と比べる」「先週同曜日と比べる」「短期の傾向を見る」「急増急減を検知する」までを一括で回せ...
Excel VBA逆引き

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

ねらい:売上明細から「整形→集計→ダッシュボード→ピボット→配布」まで一括で自動化する売上レポートは「入口で正す→指標を作る→見える化→配布」を毎回同じ型で回すほど強くなります。VBAなら“配列I/O...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 受発注管理テンプレ

ねらい:受注・発注・在庫・納期・請求の「一連の流れ」を安全に自動化する受発注管理は「受注登録→在庫確保→不足分を発注→納期トラッキング→出荷・売上→請求」の流れを同じ型で回すほど強くなります。VBAな...
Excel VBA逆引き

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

ねらい:月次の「集計→締め処理→レポート→ピボット→バックアップ」を一括で自動化する月次処理は、日次の積み重ねを「月区切り」で確実に締めて出力することが命です。VBAなら“期間キーの決定→データ取り込...
Excel VBA逆引き

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

ねらい:毎朝の「取り込み→整形→集計→レポート→バックアップ」を“同じ手順”で一括自動化する日次処理は、手順がブレるとすぐに品質が落ちます。VBAなら「入口でデータを正す→集計・出力→配布物作成→バッ...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – バックアップ自動生成

ねらい:ブック・シート・CSV・版管理まで「毎回同じ手順」で自動バックアップするバックアップは「いつ」「どこに」「何を」「何世代残すか」をブレなく実行することが命です。VBAなら“時刻スタンプ付きの安...
Java

Java | オブジェクト指向:責務分離

責務分離とは責務分離は「ひとつのクラスやメソッドが、ひとつの明確な役割(Responsibility)だけを担うように分ける」設計の基本です。入力の整形、検証、計算、保存、表示などの関心事を混ぜず、境...
Java

Java | オブジェクト指向:パッケージ設計

パッケージ設計とはパッケージ設計は、クラスやインターフェースを「意味のあるまとまり」に分けて整理し、依存の向きと公開範囲をコントロールすることです。狙いは、変更の影響を局所化し、再利用とテストをしやす...
Java

Java | オブジェクト指向:継承 vs 委譲

継承と委譲の違い継承は「is-a(〜は〜の一種)」の関係で、親の振る舞いを子が受け継ぎ、必要ならオーバーライドで差分を加える仕組みです。委譲(コンポジション)は「has-a(〜は〜を持つ)」の関係で、...
Java

Java | オブジェクト指向:コンポジション(委譲)

コンポジション(委譲)とはコンポジションは「クラスが“持つ(has-a)”関係で他のオブジェクトを部品として組み合わせ、仕事をその部品へ任せる(委譲する)」設計です。継承(is-a)と違い、親の内部契...
Java

Java | オブジェクト指向:依存の方向

依存の方向とは「依存の方向」は、あるコードがどちら側(上位/下位、抽象/具体)へ向かって頼っているかを示す考え方です。呼び出し側が別のクラスやライブラリに依存するとき、その“向き”が正しいかどうかで保...
Java

Java | オブジェクト指向:依存関係とは

依存関係とは依存関係は「あるコードが、他のコードの存在や振る舞いを前提にして成り立っている状態」です。クラスが別のクラスを new したり、そのメソッドを呼んだり、型として参照したりすると、そこで依存...
Java

Java | オブジェクト指向:コンパイル時型と実行時型

コンパイル時型と実行時型とは「コンパイル時型」はコード上で宣言された“見える型”で、コンパイラが文法チェックやメソッド呼び出しの可否を判断するために使います。「実行時型」は new で実際に生成されて...
Java

Java | オブジェクト指向:動的バインディング

動的バインディングとは動的バインディングは「どのメソッド実装を呼ぶかを、実行時の“実体の型”に基づいて決める仕組み」です。参照の型が親(抽象クラスやインターフェース)でも、実際に入っているオブジェクト...
Java

Java | オブジェクト指向:instanceof

instanceof とは何かinstanceof は「ある参照が、特定の型(クラスやインターフェース)の実体かどうか」を真偽で判定する演算子です。ポリモーフィズムでは呼び出し側は共通型にそろえますが...
Java

Java | オブジェクト指向:ダウンキャスト

ダウンキャストとは何かダウンキャストは「親型(抽象クラスやインターフェース)の参照を、より具体的な子型に“下げて”扱う」ことです。たとえば Shape 型の変数を Rect 型として扱いたいときに使い...
Java

Java | オブジェクト指向:アップキャスト

アップキャストとは何かアップキャストは「子クラス(具体的な型)の参照を、親クラス(より抽象的な型)やインターフェースの参照として扱う」ことです。型を“上位”に持ち上げるイメージなのでアップ(up)キャ...
Java

Java | オブジェクト指向:ポリモーフィズム

ポリモーフィズムとはポリモーフィズムは「同じ“呼び方”で、実体に応じて振る舞いが切り替わる」仕組みです。呼び出し側は共通の型(親クラスやインターフェース)だけを意識して使い、実際に入っているオブジェク...
Java

Java | オブジェクト指向:static メソッド(interface)

interface の static メソッドとはインターフェースの static メソッドは「インターフェース名から直接呼ぶユーティリティ関数」です。インスタンスや実装クラスは不要で、契約(インター...
Java

Java | オブジェクト指向:default メソッド

default メソッドとはdefault メソッドは「インターフェースに書く“簡易の既定実装”」です。Java 8 で導入され、インターフェースにメソッド本体を持たせられるようになりました。これによ...
Java

Java | オブジェクト指向:インターフェースの多重実装

インターフェースの多重実装とはインターフェースの多重実装は「1つのクラスが複数のインターフェース契約を同時に満たす」ことです。Javaはクラスの多重継承はできませんが、インターフェースは複数まとめて ...
Python

Python | データ処理:棒+折れ線

概要(棒+折れ線は「量と推移」を一枚で伝える定番の複合グラフ)棒グラフは“量”の比較、折れ線グラフは“推移”や“傾向”の読み取りに向いています。2つを重ねることで「月別売上の量(棒)とユーザー数の推移...
Python

Python | データ処理:グラフの複合化

概要(グラフの複合化は「一枚で複数の視点」を重ねて伝える技)pandasとmatplotlibを組み合わせると、折れ線と棒グラフの重ね合わせ、二重軸、複数サブプロットなどを簡潔に作れます。複合化のポイ...
Python

Python | データ処理:時系列処理の基礎

概要(時系列の“型”を整えて、時間軸で正しく集計・解析する)時系列処理の基礎は、日付や時刻をdatetime型へ変換し、時間順に並べてから「期間集計」「移動統計」「シフトや差分」などの操作を行うことで...
Python

Python | データ処理:rolling

概要(rollingは「直近の一定区間で連続計算する」ための移動窓)pandasのrollingは、直近N件や一定時間幅(例:過去7日など)のデータを“窓”として切り出し、その窓ごとに平均・合計・標準...
Python

Python | データ処理:resample

概要(resampleは「時系列の頻度を変えて、期間ごとに集計・補間する」)pandasのresampleは、時系列データを別の時間間隔(例:日→週、分→時)へ変換するためのメソッドです。ダウンサンプ...
Python

Python | データ処理:datetime 変換

概要(datetime変換は「文字列の日付を“時系列のエンジン”に乗せる最初の一歩」)pandasで日付・時刻を扱うときは、まず文字列をdatetime型へ変換します。datetimeにしておくと、並...
Python

Python | データ処理:dtype

概要(dtypeは「列の型」。正しく揃えると計算・集計・可視化が安定する)pandasのdtype(データ型)は、各列が「数値・文字列・日時・真偽値・カテゴリなどのどれか」を表すラベルです。型がズレて...
Python

Python | データ処理:describe

概要(describeは「列ごとの要約統計を一瞬で確認する」入口)pandasのdescribeは、数値列やカテゴリ列の“基本統計”をまとめて表示するメソッドです。数値なら件数・平均・標準偏差・最小/...
Python

Python | データ処理:ソート sort_values

概要(sort_valuesは「列の値で並べ替えて“見やすく・計算しやすく”する基本操作)pandasのsort_valuesは、指定した列の値を基準にDataFrameを並べ替えるメソッドです。昇順...
Python

Python | データ処理:重複 drop_duplicates

概要(drop_duplicatesは「重複行を安全に取り除いて、件数や集計を正しくする」)pandasのdrop_duplicatesは、DataFrameやSeriesから“重複したデータ”を削除...
Python

Python | データ処理:欠損値 fillna

概要(fillnaは「欠損値を意図した値で埋めて分析を続行する」ための入口)pandasのfillnaは、DataFrameやSeriesに含まれる欠損値(NaN/None/pd.NA)を、固定値・前...
Python

Python | データ処理:lambda と組み合わせ

概要(lambdaは「その場で小さな関数」を作り、データ処理を短く書くための道具)lambda(無名関数)は、名前を付けずに1行で小さな関数を作る仕組みです。短い変換・条件分岐・並べ替えのキー指定など...
Python

Python | データ処理:pandas の apply

概要(applyは「行や列ごとに関数を適用して柔軟に加工する」)pandasのapplyは、SeriesやDataFrameに対して「各要素」「各行」「各列」へ関数を適用するための基本メソッドです。f...
Python

Python | データ処理:loc / iloc

概要(loc/ilocは「行・列の取り出し方が違う」二大基本操作)pandasのlocとilocは、DataFrameから行・列・セルを取り出すための代表的な方法です。locはラベル(行名・列名)で指...
Python

Python | データ処理:melt

概要(meltは「横持ちの列を縦に溶かして整然データへ変換する」)pandasのmeltは、ワイド形式(横持ち)をロング形式(縦持ち)へ変換するためのメソッドです。列として並んだ複数の計測値(例: M...
Python

Python | データ処理:pivot_table

概要(pivot_tableは「集計しながら縦長データを行×列へ再配置する」)pandasのpivot_tableは、Excelのピボットテーブルと同じ発想で「行(index)」「列(columns)...
Python

Python | データ処理:pivot

概要(pivotは「縦長データを横に広げて“見やすい表”に再配置する」)pandasのpivotは、行ラベル・列ラベル・値列を指定して、縦に並んだレコードを「行×列」の表へ並べ替えるメソッドです。Ex...
Python

Python | データ処理:pandas merge

概要(pandas.mergeは「共通キーで行を突き合わせる」SQLライクな結合)pandas.mergeは、2つのDataFrameを共通するキー(列やインデックス)を基準に結合します。SQLのJO...
Python

Python | データ処理:pandas concat

概要(pandas.concatは「複数の表を縦・横にまとめる」ための基本ツール)pandas.concatは、複数のDataFrameやSeriesを連結して1つのDataFrameにまとめる関数で...
Python

Python | データ処理:pandas read_json

概要(pandas.read_jsonは「JSONを表に変換する入口」)pandasのread_jsonは、JSON文字列・ファイル・URLなどを読み込み、分析しやすいDataFrameへ変換する関数...
Java

Java | オブジェクト指向:implements

implements とは何かimplements は「クラスがインターフェースの契約を実装します」という宣言です。インターフェースが定めるメソッドの“名前・引数・戻り値”を、クラス側で実体として提供...
Java

Java | オブジェクト指向:インターフェースとは

インターフェースとはインターフェースは「クラスが満たすべき契約(メソッドの型だけ)を定義するもの」です。実装は持たず、まず“名前・引数・戻り値”を決めることで、呼び出し側は契約だけに依存できます。クラ...
Java

Java | オブジェクト指向:抽象クラスの使いどころ

抽象クラスの狙いどころ抽象クラスは「共通の骨格と不変条件を親で固定し、差し替えたい部分だけ子に実装させる」ための道具です。インターフェースが“契約(メソッドの型)”だけなのに対し、抽象クラスは“状態(...
Java

Java | オブジェクト指向:抽象メソッド

抽象メソッドとは抽象メソッドは「中身(実装)がないメソッド」で、宣言だけを持ちます。abstract を付けて宣言し、具体的な処理は子クラスが必ず実装します。抽象クラスに定義して、共通の“名前・引数・...
Java

Java | オブジェクト指向:抽象クラスとは

抽象クラスとは抽象クラスは「直接はインスタンス化できない、共通の骨格と契約をまとめるためのクラス」です。abstract を付けて宣言し、抽象メソッド(中身のないメソッド)を含められます。継承した子ク...
Java

Java | オブジェクト指向:final フィールド

final フィールドとは何かfinal フィールドは「一度だけ代入でき、その後は再代入できない」フィールドです。オブジェクトの生成時に値を確定し、以降は参照を変えないことで、設計の予測可能性が上がり...
Java

Java | オブジェクト指向:final メソッド

final メソッドとは何かfinal メソッドは「子クラスからオーバーライド(上書き)できないメソッド」です。継承関係にあっても、その振る舞いを固定し、契約を壊されないようにします。親が守るべき安全...
Java

Java | オブジェクト指向:final クラス

final クラスとは何かfinal クラスは「継承を禁止したクラス」です。extends して子クラスを作ることができません。目的は、クラスの振る舞いを固定して“改変の余地”をなくし、設計の安全性・...
Java

Java | オブジェクト指向:多段継承の概念

多段継承とは何か多段継承は「親→子→孫…と継承が階層的に連なっている状態」を指します。AをBが継承し、BをCが継承する、といった“何段も連なる継承”です。Javaは「単一継承」なのでクラスを複数同時に...
Java

Java | オブジェクト指向:親クラスのコンストラクタ呼び出し

親コンストラクタ呼び出しとは何か子クラスのコンストラクタが、親クラス(スーパークラス)のコンストラクタを呼び出して「親の状態を先に正しく初期化する」仕組みです。Java では super(...) を...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – ピボット自動生成テンプレ

ねらい:明細から「ピボットを自動生成→更新→見える化」まで一括で回すピボットは「行・列・値・フィルター」を正しく指定すれば、集計や比較を数秒で作れます。VBAなら“ソース表を認識→ピボットを作成→フィ...
Excel VBA逆引き

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

ねらい:発注明細から「発注書の自動組版→数量・単価計算→PDF出力」まで一括で回す発注書は「ヘッダ(仕入先・発注番号・発注日・納期)」「明細(品目・数量・単価・金額)」「サマリ(小計・送料・値引き・税...
Excel VBA逆引き

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

ねらい:明細から「請求書の自動組版→金額計算→PDF出力」まで一括で回す請求書は「ヘッダ(請求先・請求番号・期間)」「明細(品目・数量・単価・小計)」「金額計算(小計→消費税→税込)」「体裁(罫線・書...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – シフト表自動生成

ねらい:希望・役割・公平性を満たしながら、月次シフトを一撃で自動生成するシフトは「希望(出勤可)」「役割(必要人数とスキル)」「制約(最大勤務・連続勤務・前後夜勤)」「公平性(偏り防止)」を同時に満た...
Excel VBA逆引き

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

ねらい:名寄せ(同一人物・同一企業の突合せ)を「正規化→判定→スコア→統合」の型で安全に回す名寄せは「表記ゆれ・略称・住所の揺れ」を潰し、重複候補を拾い、確信度でランク分けして、統合ルール(どの列を残...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 顧客リスト更新

ねらい:顧客リストを「正規化→重複処理→差分反映→出力整形」まで一括で安全更新する顧客リスト更新は、入力ゆれの正規化、重複の見える化と解消、既存マスタとの差分抽出と同期、最終の書式整備までを一気通貫で...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 在庫一覧更新

ねらい:入出庫を在庫マスタへ“安全に合算し、見える化まで”一括更新する在庫一覧更新は「初期在庫+入庫-出庫=現在庫」を壊れないやり方で確定し、閾値(補充点、最小在庫)で警告まで出すのが肝です。配列I/...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 出荷レポート自動作成

ねらい:出荷明細を“整形→集計→可視化→配布”まで一括で自動化する出荷レポートは「明細の型ブレ修正」「納期達成率・遅延件数の集計」「キャリア別・日別の基礎統計」「見える化(書式・条件付き書式)」「PD...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 売上集計+明細整形

ねらい:売上明細を“整形→集計→見える化”まで一括で回す売上管理の現場で本当に効くのは「明細の欠損や型ブレを直す→キーを正規化する→集計してアウトプットを整える」という一本の流れです。Excel関数の...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マスタ差分×同期一括テンプレ

ねらい:マスタの「差分抽出→安全同期」を一括で回し、常に最新状態を保つマスタ差分×同期は「旧マスタ」と「新マスタ」を比較して、追加・削除・変更を正しく見極め、旧マスタを最新に更新する定型業務です。配列...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マスタ結合×集計一括テンプレ

ねらい:明細にマスタを結合してから、即座に集計まで一括で完了させる「明細+マスタ結合→グループ集計→並べ替え→出力」をひとつのパイプラインにすると、10万行規模でも数秒で終わり、手作業や関数の脆さから...
Excel VBA逆引き

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 外部DB取り込みテンプレ

ねらい:外部DBから「安全・高速」に取り込み、毎日の更新を自動化する外部DB取り込みは「接続→SQL実行→配列に読み込み→シートへ一括書き戻し」の型にすれば、数万〜数十万行でも安定して一瞬で終わります...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォームデータ送信(FormData)

FormData とは何かFormData は、フォームの入力値を「送信用のペア(name → value)」としてまとめるための標準APIです。ファイルも含めて簡単に扱え、fetch などの非同期送...
JavaScript

JavaScript | DOM 操作:フォーム操作 – エラー表示の DOM 操作

エラー表示の DOM 操作とは何かフォームの「どこが、なぜ、どう直せばいいか」を画面に明確に示すために、DOM(HTML構造)を動的に追加・更新・削除することです。ここが重要です:ブラウザ標準のバブル...
JavaScript

JavaScript | DOM 操作:フォーム操作 – バリデーション(required, pattern など)

バリデーションとは何かバリデーションは「入力が条件を満たしているか」をチェックして、誤入力や欠落を防ぐ仕組みです。HTML とブラウザは、required・type・min/max・pattern な...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォーム送信イベント

フォーム送信イベントとは何かフォーム送信イベントは、ユーザーがフォームを送ろうとした瞬間に発火する “submit” イベントのことです。ここが重要です:submit は「実際の送信前」に発火するため...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォームの reset

フォームの reset とは何かフォームの reset は「フォーム内のすべての入力を“初期状態(HTMLで指定された値・選択)”に戻す」操作です。ここが重要です:reset は“現在値”ではなく“初...
JavaScript

JavaScript | DOM 操作:フォーム操作 – ラジオボタンの取得

ラジオボタンの取得とは何かラジオボタンは「同じ name を持つ選択肢の中から“必ず0か1つ”だけ選ぶ」入力です。JavaScript では“グループとして”扱うのがコツです。ここが重要です:同じ n...
JavaScript

JavaScript | DOM 操作:フォーム操作 – checked の操作

checked とは何かchecked は、checkbox と radio の「選択状態」を表す真偽値プロパティです。true なら選ばれている、false なら選ばれていない状態を意味します。ここ...
JavaScript

JavaScript | DOM 操作:フォーム操作 – select の取得・変更

select の取得・変更とは何かselect は「選択肢の中から値を1つ(または複数)選ぶ」ためのフォーム要素です。JavaScript では現在の選択値を読み取ったり、選択を変更したり、選択肢を動...
JavaScript

JavaScript | DOM 操作:フォーム操作 – input の value

input の value とは何かinput 要素の value は「現在の入力値」を表す文字列です。type に関わらず、基本は文字列として読み書きします。ここが重要です:type="number...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォーム要素の取得

フォーム要素の取得とは何かフォーム要素の取得は、HTML の form や input・select・textarea・button などにプログラムからアクセスして、値を読んだり書いたり、送信を制御...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – スクロール固定(overflow: hidden)

スクロール固定(overflow: hidden)とは何か「スクロール固定」は、ユーザーがスクロールできない状態にすることです。最も簡単な方法は、対象要素(よくあるのは body)に overflow...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – boundingClientRect

getBoundingClientRect とは何かgetBoundingClientRect は、要素の「画面(ビューポート)に対する位置とサイズ」を返すメソッドです。返ってくる値は小数を含む CS...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – ビューポートとは

ビューポートとは何かビューポートは「今、ユーザーに見えている画面の領域」です。ページ全体(ドキュメント)の中で、スクロールせずに表示されている矩形がビューポート。ここが重要です:JavaScriptで...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – 画面中央配置

画面中央配置とは何か「画面中央配置」は、要素をビューポート(今見えている画面)のちょうど真ん中に置くことです。モーダル、ダイアログ、ロード中インジケーターなどで頻繁に使います。ここが重要です:中央は「...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – スクロール位置の取得

スクロール位置の取得とは何かスクロール位置の取得は「今、ページや要素がどれだけスクロールされているか」を数値で読み取ることです。縦方向はどれだけ上から下へ動いたか(Top)、横方向は左から右へ動いたか...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – scrollTo / scrollBy

scrollTo / scrollBy とは何かscrollTo と scrollBy は、「スクロール位置をプログラムで動かす」ためのメソッドです。window(ページ全体)にも、スクロール可能な要...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – scrollWidth / scrollHeight

scrollWidth / scrollHeight とは何かscrollWidth と scrollHeight は、「要素のコンテンツが本来必要としている大きさ」を返すプロパティです。visibl...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – clientWidth / clientHeight

clientWidth / clientHeight とは何かclientWidth と clientHeight は、要素の「内側で実際に使える領域」のサイズを整数ピクセルで返すプロパティです。ここ...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – offsetWidth / offsetHeight

offsetWidth / offsetHeight とは何かoffsetWidth と offsetHeight は、要素の「見た目のサイズ」をピクセルで返すプロパティです。ここが重要です:bord...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – offsetTop / offsetLeft

offsetTop / offsetLeft とは何かoffsetTop と offsetLeft は、「その要素が“基準の親”(offsetParent)からどれだけ離れているか」を示すピクセル値で...
JavaScript

JavaScript | DOM 操作:イベント発展 – once: true

once: true とは何かonce: true は addEventListener のオプションで、「このリスナーは最初の一回だけ実行し、終わったら自動で取り外す」という宣言です。ここが重要です...
JavaScript

JavaScript | DOM 操作:イベント発展 – passive: true

passive: true とは何かpassive: true は、addEventListener のオプションで「このリスナーでは preventDefault を呼ばない」とブラウザに約束する設...
JavaScript

JavaScript | DOM 操作:イベント発展 – dispatchEvent

dispatchEvent とは何かdispatchEvent は「イベントを自分で発火させる」ためのメソッドです。DOM 要素や EventTarget に対して、既存のイベント(click など)...
JavaScript

JavaScript | DOM 操作:イベント発展 – カスタムイベント

カスタムイベントとは何かカスタムイベントは、あなたが「アプリ内の合図」を自由に作って通知できる仕組みです。DOM の仕組み(addEventListener / dispatchEvent)をそのまま...
JavaScript

JavaScript | DOM 操作:イベント発展 – コンテキストメニュー

コンテキストメニューとは何かコンテキストメニューは、右クリック(または長押し)した場所や対象に応じて“その場に適した操作”を提示するための UI です。ブラウザ標準のメニューを表示するイベントは co...
JavaScript

JavaScript | DOM 操作:イベント発展 – スクロールイベント

スクロールイベントとは何かスクロールイベントは、ページや特定のスクロール可能な要素のスクロール位置が変わった瞬間に発火する合図です。window(ページ全体)にも、overflow: auto などで...
JavaScript

JavaScript | DOM 操作:イベント発展 – フォーカスイベント

フォーカスイベントとは何かフォーカスイベントは「どの要素がキーボード操作の対象になったか/外れたか」を知らせる合図です。代表は focus(入る)、blur(出る)、そしてバブリングする仲間の foc...
JavaScript

JavaScript | DOM 操作:イベント発展 – イベント委譲

イベント委譲とは何かイベント委譲は、「たくさんの子要素それぞれにリスナーを付けず、親に1つだけ付けて子の操作に反応する」設計です。イベントがバブル(内側→外側)で伝わる仕組みを利用し、親のリスナー内で...
JavaScript

JavaScript | DOM 操作:イベント発展 – イベント伝播(キャプチャ / バブル)

イベント伝播とは何か(キャプチャ/バブルの全体像)イベント伝播は「ある要素で起きたイベントが、DOM ツリーの上下へ段階的に届く仕組み」です。段階は「キャプチャ(外側→内側)→ターゲット(実際の要素)...
JavaScript

JavaScript | DOM 操作:イベント発展 – stopPropagation

stopPropagation とは何かstopPropagation は「イベントが親要素へ伝わっていく流れ(伝播)を止める」ためのメソッドです。クリックなどのイベントは、最初に操作された要素から外...
JavaScript

JavaScript | DOM 操作:イベント基礎 – preventDefault

preventDefault とは何かpreventDefault は「イベントのデフォルト動作(ブラウザが標準で行う処理)」をキャンセルするためのメソッドです。例えばリンクの遷移、フォームの送信、ス...
JavaScript

JavaScript | DOM 操作:イベント基礎 – イベントのデフォルト動作

イベントのデフォルト動作とは何か「イベントのデフォルト動作」は、ブラウザが標準で行う振る舞いのことです。例として、リンクのクリックでページ遷移、フォームの submit で送信、テキスト入力で Ent...
JavaScript

JavaScript | DOM 操作:イベント基礎 – submit

submit とは何かsubmit は「フォームが送信される瞬間」に発火するイベントです。Enter キーや type="submit" のボタンで送信しようとしたとき、フォーム要素で受け取れます。こ...
JavaScript

JavaScript | DOM 操作:イベント基礎 – input / change

input と change とは何かinput と change は、フォーム要素の値が変わったときに発火するイベントです。input は「値が変わるたびに逐次発火」、change は「確定したタイ...
JavaScript

JavaScript | DOM 操作:イベント基礎 – キーボードイベント(keydown / keyup)

キーボードイベントとは何か(keydown / keyup)keydown は「キーが押された瞬間」、keyup は「キーが離された瞬間」に発火するイベントです。ショートカット、ゲームの操作、フォーム...
JavaScript

JavaScript | DOM 操作:イベント基礎 – マウスイベント(click / dblclick / mouseover)

マウスイベントの基礎(click / dblclick / mouseover)マウスイベントは「ユーザーの操作」をコードへ橋渡しする合図です。click は単押し、dblclick は素早い二連続ク...
JavaScript

JavaScript | DOM 操作:イベント基礎 – target と currentTarget

target と currentTarget とは何かイベントオブジェクトの target は「実際に操作された最も内側の要素」、currentTarget は「そのイベントリスナーが登録されている要...
JavaScript

JavaScript | DOM 操作:イベント基礎 – イベントオブジェクト

イベントオブジェクトとは何かイベントオブジェクト(一般に e と書く)は、「何が、どこで、どのように起きたか」の詳細を持つ“出来事の記録”です。addEventListener のコールバックに渡され...
JavaScript

JavaScript | DOM 操作:イベント基礎 – removeEventListener

removeEventListener とは何かremoveEventListener は、addEventListener で登録したイベントリスナーを「取り外す」ためのメソッドです。特定の要素(ま...
JavaScript

JavaScript | DOM 操作:イベント基礎 – addEventListener

addEventListener とは何かaddEventListener は「イベントが起きたときに実行する処理(リスナー)を登録する」ためのメソッドです。クリック、入力、スクロール、ロードなど、ブ...
JavaScript

JavaScript | DOM 操作:ノード操作 – prepend

prepend とは何かprepend は、親ノードの「先頭」にコンテンツを追加するメソッドです。ノード(要素やテキストノード)だけでなく、文字列も直接渡せ、さらに複数の引数を一度に追加できます。ここ...
JavaScript

JavaScript | DOM 操作:ノード操作 – append

append とは何かappend は、親ノードの「末尾」にコンテンツを追加するためのメソッドです。ノード(要素やテキストノード)だけでなく、文字列も直接渡せるのが特徴です。ここが重要です:appen...
JavaScript

JavaScript | DOM 操作:ノード操作 – remove(直接削除)

remove とは何か(直接削除のイメージ)remove は、要素自身が「自分を親から切り離して画面から消える」ためのメソッドです。document.getElementById("x").remov...
JavaScript

JavaScript | DOM 操作:ノード操作 – fragment の利用

DocumentFragment とは何かDocumentFragment(以下フラグメント)は、DOM に一時的に要素を“まとめて保持するための入れ物”です。画面(実DOM)にまだ接続されていないミ...
JavaScript

JavaScript | DOM 操作:ノード操作 – cloneNode

cloneNode とは何かcloneNode は、既存の DOM ノード(要素やテキスト)を“複製”するメソッドです。形は node.cloneNode(deep)。ここが重要です:deep が f...
JavaScript

JavaScript | DOM 操作:ノード操作 – replaceChild

replaceChild とは何かreplaceChild は「親ノードの子を別のノードに置き換える」メソッドです。形は parent.replaceChild(newChild, oldChild)...
JavaScript

JavaScript | DOM 操作:ノード操作 – removeChild

removeChild とは何かremoveChild は「親ノードから指定した子ノードを取り外す」メソッドです。形は parent.removeChild(child)。画面から消えるだけでなく、D...
JavaScript

JavaScript | DOM 操作:ノード操作 – insertBefore

insertBefore とは何かinsertBefore は「親ノードの中で、指定した子ノードの“直前”に新しいノードを挿入する」メソッドです。形は parent.insertBefore(newN...
JavaScript

JavaScript | DOM 操作:ノード操作 – appendChild

appendChild とは何かappendChild は、親ノードの「末尾」に子ノードを追加するメソッドです。DOM で新しく作った要素(createElement)や既存の要素を、指定した親の最後...
JavaScript

JavaScript | DOM 操作:ノード操作 – createElement

createElement とは何かcreateElement は、JavaScript で新しい HTML 要素を“ゼロから”作るためのメソッドです。たとえば div、button、img、li な...
JavaScript

JavaScript | DOM 操作:属性操作 – aria-* 属性

aria-* 属性とは何かARIA(Accessible Rich Internet Applications)の aria-* 属性は、UI の「意味・状態・関係」を支援技術(スクリーンリーダーなど...
JavaScript

JavaScript | DOM 操作:属性操作 – checked

checked とは何かchecked は「チェックボックスやラジオボタンの“選択状態”」を表します。ここが重要です:HTMLの checked 属性は“初期状態”を示し、JavaScript の e...
JavaScript

JavaScript | DOM 操作:属性操作 – input の value

input の value とは何かinput の value には「現在の入力値(プロパティ)」と「初期値(属性)」の2種類があります。JavaScript から扱うときは、今画面に表示されている“...
JavaScript

JavaScript | DOM 操作:属性操作 – href・src の変更

href・src とは何かhref と src は、要素が「どこを指すか・何を読み込むか」を示す属性です。href はリンク先(a、link、area)、src はリソースの場所(img、script...
JavaScript

JavaScript | DOM 操作:属性操作 – disabled 属性

disabled 属性とは何かdisabled は「フォーム要素を操作不可」にするための“boolean 属性”です。ボタン、入力欄、セレクト、テキストエリア、フィールドセットなどに付けると、フォーカ...
JavaScript

JavaScript | DOM 操作:属性操作 – data-* 属性

data-* 属性とは何かdata-* 属性は、HTML 要素に「任意のメタ情報」を文字列として安全に持たせるための仕組みです。例として data-id、data-role、data-payload ...
JavaScript

JavaScript | DOM 操作:属性操作 – hasAttribute

hasAttribute とは何かhasAttribute は、要素に指定した「属性が付いているか」を true/false で判定するメソッドです。値が空文字でも、属性が存在していれば true に...
JavaScript

JavaScript | DOM 操作:属性操作 – removeAttribute

removeAttribute とは何かremoveAttribute は、要素から指定した「属性」を完全に取り除くメソッドです。title、href、src、aria-、data-、style など...
JavaScript

JavaScript | DOM 操作:属性操作 – setAttribute

setAttribute とは何かsetAttribute は、要素の「属性(attr)」に文字列の値を設定するためのメソッドです。href、title、alt、aria-、data- など、HTML...
JavaScript

JavaScript | DOM 操作:属性操作 – getAttribute

getAttribute とは何かgetAttribute は、要素に付いている「属性の値」を文字列で取り出すためのメソッドです。返ってくるのは“常に文字列”か“存在しないときは null”。ここが重...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – getComputedStyle

getComputedStyle とは何かgetComputedStyle は、CSS の継承・外部スタイル・メディアクエリ・ユーザー設定などをすべて反映した「最終的な見え方」を取得するための関数です...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – 要素の高さ・幅の取得

要素の高さ・幅の「どれを測るか」同じ「幅・高さ」でも、境界や余白の扱いで数値が変わります。どの API を使うかで意味が違うため、まず“何を含めたいか”を決めましょう。ここが重要です:枠線(borde...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – visibility の切り替え

visibility の切り替えとは何かvisibility は「要素を見える/見えない」にするプロパティです。visibility: hidden にすると見えなくなりますが、レイアウト上の“場所”...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – display の切り替え

display の切り替えとは何か要素の「表示・非表示」を制御する最基本の方法が display の切り替えです。display: none にすると要素は完全に消え、ページのレイアウト計算からも外れ...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – スタイル変更(style)

style とは何かstyle は、要素の「インライン CSS(その要素だけに直接書くスタイル)」を JavaScript から読み書きするためのプロパティです。クラス切り替えより細かく数値や色を直接...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.contains

classList.contains とは何かclassList.contains は、要素に指定した「CSS クラスが付いているか」を真偽値で判定するメソッドです。返り値は true/false の...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.toggle

classList.toggle とは何かclassList.toggle は、要素に指定した「CSS クラス」を付けたり外したりするメソッドです。クラスが付いていなければ追加、付いていれば削除します...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.remove

classList.remove とは何かclassList.remove は、要素から指定した「CSS クラス」を安全に取り除くメソッドです。指定したクラスが付いていなければ何も起こらず、エラーにも...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.add

classList.add とは何かclassList.add は、要素に「CSS クラス」を安全に追加するためのメソッドです。すでに同じクラスが付いていても重複せず、必要なクラス名を1つ以上まとめて...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – className

className とは何かclassName は、要素の class 属性(CSS クラス名の一覧)を「文字列として」読み書きするためのプロパティです。p, div などの要素に対して、クラスをまと...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – 値の安全な出力方法

値の安全な出力方法とは何か「安全な出力」とは、外部データやユーザー入力を画面に表示・属性へ設定する際に、HTMLとして解釈・実行されないように扱うことです。ここが重要です:構造(HTML)は固定し、可...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – テキストと要素の違い

テキストと要素の違いとは何かDOM は「要素ノード」と「テキストノード」でできています。要素ノードはタグ(div、p、span など)そのもので、属性やクラス、イベントを持てます。テキストノードは純粋...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – 属性値の文字列化

属性値の文字列化とは何か「属性値の文字列化」は、DOM の属性に値を入れるとき、数値や真偽値、オブジェクトなど“文字列以外”の値を安全・意図通りの文字列に変換してから設定することです。ここが重要です:...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – 改行・スペースの扱い

改行・スペースの扱いとは何かテキストの改行やスペースは、「どのプロパティで入れるか(textContent/innerText/innerHTML)」と「CSS の white-space 設定」によ...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – insertAdjacentHTML

insertAdjacentHTML とは何かinsertAdjacentHTML は、指定した位置に「HTML文字列をそのままパースして挿入」するためのメソッドです。ターゲット要素の周囲や内側に、細...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – createTextNode

createTextNode とは何かcreateTextNode は、「テキストノード」を新しく作るためのメソッドです。HTML の中身は要素ノード(div、p、span など)とテキストノード(純...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – HTML インジェクションの危険性

HTML インジェクションとは何かHTML インジェクションは、外部から渡された文字列が「HTMLとして解釈・実行されてしまう」問題です。表示したい“文字”のはずがタグとして扱われると、画面の改ざん、...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – innerHTML

innerHTML とは何かinnerHTML は、要素の「中身(子要素やテキスト)」を、HTML文字列として読み書きするためのプロパティです。文字列を代入すると、その場でパースされて要素やテキストに...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – innerText

innerText とは何かinnerText は「画面に見えているテキスト」を読み書きするためのプロパティです。値を読むと、CSS の表示状態を考慮して“今見えている文字列”だけが返ります。値を書き...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – textContent

textContent とは何かtextContent は、要素の「テキストだけ」を安全に読み書きするためのプロパティです。値を設定すると、要素内のテキストノードが置き換わり、HTML タグは「ただの...
JavaScript

JavaScript | DOM 操作:要素の取得 – 要素の存在チェック

要素の存在チェックとは何か「要素の存在チェック」は、操作したい要素が本当に DOM にあるかを確認し、なければ安全にスキップしたり代替処理に切り替えたりすることです。ここが重要です:存在を前提に書くと...
JavaScript

JavaScript | DOM 操作:要素の取得 – matches

matches とは何かmatches は、ある要素が「指定した CSS セレクタに現在一致しているか」を真偽値で返すメソッドです。ここが重要です:取得した要素に対して直接判定できるため、「このクリッ...
JavaScript

JavaScript | DOM 操作:要素の取得 – closest

closest とは何かclosest は、ある要素から「自分自身を含めて、上方向(祖先方向)にセレクタに一致する最初の要素」を返すメソッドです。見つかればその要素、見つからなければ null。ここが...
JavaScript

JavaScript | DOM 操作:要素の取得 – 親要素・子要素の取得

親要素・子要素とは何かDOM は木構造で、要素どうしが「親子」の関係を持ちます。ある要素を内側に包む要素が親、内側に含まれている要素が子です。ここが重要です:DOM 操作では「どの範囲(親配下)を対象...
JavaScript

JavaScript | DOM 操作:要素の取得 – CSS セレクタの使い分け

CSS セレクタの使い分けとは何かCSS セレクタは、HTML の中から「どの要素を対象にするか」を表す記法で、querySelector / querySelectorAll でもそのまま使えます。...
JavaScript

JavaScript | DOM 操作:要素の取得 – querySelectorAll

querySelectorAll とは何かquerySelectorAll は、CSS セレクタを使って「一致するすべての要素」を取得するメソッドです。返り値は NodeList(静的コレクション) ...
JavaScript

JavaScript | DOM 操作:要素の取得 – querySelector

querySelector とは何かquerySelector は、CSS セレクタで「最初に一致した1つの要素」を取得するためのメソッドです。返り値は要素か、見つからなければ null。ここが重要で...
JavaScript

JavaScript | DOM 操作:要素の取得 – getElementsByTagName

getElementsByTagName とは何かgetElementsByTagName は、指定したタグ名(例: "div", "p", "a")を持つ要素をまとめて取得するメソッドです。返り値は...
JavaScript

JavaScript | DOM 操作:要素の取得 – getElementsByClassName

getElementsByClassName とは何かgetElementsByClassName は、「指定したクラス名を持つ要素をまとめて取得する」ためのメソッドです。返り値は HTMLColle...
JavaScript

JavaScript | DOM 操作:要素の取得 – getElementById

getElementById とは何かgetElementById は、document(ページ全体の入口)から「id が一致する要素を1つだけ即座に取得する」ための最短ルートです。見つかれば要素を返...
Java

Java | オブジェクト指向:super キーワード

何をするキーワードかsuper は「親クラス(スーパークラス)のメンバーを参照する」ためのキーワードです。子クラスでオーバーライドしたメソッドから、親の元の実装を呼びたいときや、親のコンストラクタを明...
Java

Java | オブジェクト指向:継承のデメリット

まず、継承のデメリットとは何か継承は便利ですが、「親と子が強く結び付く」ため、変更や保守の難易度を上げる要因になりがちです。意図しない依存が広がり、拡張やテストが難しくなる“落とし穴”が複数あります。...
Java

Java | オブジェクト指向:継承のメリット

継承のメリットを一言で継承の最大のメリットは「共通の契約を共有しながら、振る舞いだけを差し替えて再利用できる」ことです。コードの重複を減らし、拡張しやすく、呼び出し側は共通型で扱えるため、全体の設計が...
Java

Java | オブジェクト指向:継承(extends)

まず、継承(extends)とは何か継承は「既存のクラスの性質(フィールドやメソッド)を受け継ぎ、必要な部分だけを差し替えたり足したりする」仕組みです。extends で親クラスを指定すると、子クラス...
Java

Java | オブジェクト指向:@Override アノテーション

何をするアノテーションか@Override は「このメソッドは親のメソッドをオーバーライド(上書き)しています」とコンパイラに伝えるための印です。付けておくと、シグネチャの食い違いやタイプミス、オーバ...
Java

Java | オブジェクト指向:メソッドのオーバーライド

何が「オーバーライド」かメソッドのオーバーライドは、親クラスが持つメソッドの「振る舞いを、子クラスで置き換える」ことです。継承関係にあるとき、同じメソッド名・同じ引数(シグネチャ)を子クラスで再定義す...
Java

Java | オブジェクト指向:toString のオーバーライド

toString をオーバーライドする意味toString は「そのオブジェクトを人間が読める文字列にする」ためのメソッドです。デフォルトはクラス名+ハッシュ(例: com.example.User@...
Java

Java | オブジェクト指向:equals と == の違い

ざっくり結論== は「同じ実体(同じ場所)か」を比べる演算子、equals は「中身(値)が同じか」を比べるメソッドです。プリミティブでは == が値比較、参照型(オブジェクト)では == が参照比較...
Java

Java | オブジェクト指向:hashCode のオーバーライド

なぜ hashCode をオーバーライドするのかhashCode は「オブジェクトのハッシュ値」を返すメソッドで、HashMap・HashSet などのハッシュ構造が「どのバケットに入れるか」を決める...
Java

Java | オブジェクト指向:equals のオーバーライド

equals をオーバーライドする意味equals は「同じモノかどうか」を値の観点で判定するためのメソッドです。デフォルトの equals は「同じインスタンス(同一性)」しか比較しませんが、値オブ...
Java

Java | オブジェクト指向:値オブジェクトとは

値オブジェクトとは何か値オブジェクトは「値そのものを表す小さな不変の型」です。金額、メールアドレス、期間、座標、IDなど、意味とルールを持つ“ただの値”をクラス化して、検証・整合性・振る舞い(比較や計...
Java

Java | オブジェクト指向:不変オブジェクトの考え方

不変オブジェクトとは何か不変オブジェクトは「生成後に状態が一切変わらない」オブジェクトです。フィールドは初期化時に確定され、その後は再代入されません。外から見ても中から見ても、値が変化しないので、並行...
Java

Java | オブジェクト指向:getter / setter

全体像getter / setter は「フィールド(内部状態)を外から安全に読み書きするための窓口」です。直接フィールドを公開せず、メソッド経由にすることで、読み取りは意図を伝え、書き込みは検証や前...
Java

Java | オブジェクト指向:カプセル化の目的

まとめて言うと何かカプセル化は「内部の状態や仕組みを隠し、外からは安全な窓口だけを見せる」設計のことです。目的は3つに絞られます。整合性の保護(壊れない)、変更容易性(中身を差し替えても外が壊れない)...
Java

Java | オブジェクト指向:パッケージプライベート

全体像パッケージプライベート(package-private)は「アクセス修飾子を何も付けない」状態の可視性で、同一パッケージ内からだけ見える(使える)という意味です。クラス・メソッド・フィールド・コ...
Java

Java | オブジェクト指向:protected の意味

全体像protected は「同じパッケージ内から見える」ことに加えて「別パッケージでも、継承したサブクラスからは自分自身を通して見える」アクセス修飾子です。外部に完全公開する public と、クラ...
Java

Java | オブジェクト指向:private の意味

全体像private は「同じクラスの中からだけ見える」というアクセス修飾子です。外部のクラスはもちろん、継承したサブクラスからも直接は触れません。目的はカプセル化——内部の状態や実装詳細を隠し、外部...
Java

Java | オブジェクト指向:public の意味

全体像public は「どこからでも見える・使える」という意味のアクセス修飾子です。パッケージが違っても、クラス外からでも、他のモジュールからでも、public にしたメンバー(クラス・メソッド・フィ...
Java

Java | オブジェクト指向:アクセス修飾子の種類

全体像アクセス修飾子は「どこからそのクラス・フィールド・メソッドが見えるか(使えるか)」を制御するための言語機能です。公開範囲を絞ることで、意図しない使われ方や整合性の破壊を防ぎ、APIの進化に強くで...
Java

Java | オブジェクト指向:static フィールドの用途

全体像static フィールドは「クラスに属する共有の状態」を表します。インスタンス(個体)ごとに違う値ではなく、クラス全体で1つだけ存在する値です。用途は「定数」「設定」「生成数のカウンタ」「共有キ...
Java

Java | オブジェクト指向:static メソッドの制約

概要static メソッドは「クラスに属する処理」で、インスタンス(オブジェクト)に依存しない計算や共通ユーティリティを表します。インスタンスがなくても呼べる一方で、インスタンス特有の情報には触れられ...
スポンサーリンク
タイトルとURLをコピーしました