プログラミング

スポンサーリンク
JavaScript

JavaScript | 1 日 30 分 × 7 日アプリ学習超初級編:ボタンを押すアプリ

1日目のゴール1日目のテーマは「ボタンを押した“きっかけ”で JavaScript が動くんだ、という感覚をつかむこと」 です。やることはシンプルです。ボタンを押す→ JavaScript が動く→ ...
Python

Python | 1 日 120 分 × 7 日アプリ学習:CSVファイル読み書きアプリ(中級編)

1日目のゴール1日目のテーマは「csvモジュールを使って、CSVファイルを“怖くない実務データ”として扱える感覚をつかむこと」 です。今日つかみたいのは、この2つです。CSVってそもそも何者か(ただの...
JavaScript

JavaScript Tips | 配列ユーティリティ:配列シャッフル

何をしたいユーティリティか:「配列シャッフル」ここでの「配列シャッフル」は、配列の要素の順番をランダムに並べ替える処理です。例えばこうです。[1, 2, 3, 4, 5]// ↓ シャッフル[3, 1...
JavaScript

JavaScript Tips | 配列ユーティリティ:共通要素抽出

何をしたいユーティリティか:「共通要素抽出」ここでの「共通要素抽出」は、複数の配列を比べて「両方(または全部)に含まれている要素だけ」を取り出す処理です。イメージとしては「集合の積(intersect...
JavaScript

JavaScript Tips | 配列ユーティリティ:差分抽出

何をしたいユーティリティか:「配列の差分抽出」ここでの「差分抽出」は、「ある配列 A と配列 B を比べて、“どこが違うのか”を取り出す処理」です。業務だと、例えばこんな場面で使います。画面で「変更前...
JavaScript

JavaScript Tips | 配列ユーティリティ:重複抽出

何をしたいユーティリティか:「配列の重複抽出」ここでの「重複抽出」は、配列の中で「1 回しか出てこないもの」ではなく、「2 回以上出てくるもの」を取り出す処理です。重複削除(ユニーク化)は「かぶりを消...
JavaScript

JavaScript Tips | 配列ユーティリティ:重複削除

何をしたいユーティリティか:「配列の重複削除」ここでの「重複削除」は、同じ値が何度も入っている配列から、重複を取り除いて「一意な要素だけの配列」を作る処理です。業務だと、こんな場面でよく出てきます。ユ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 文字コード判定

何をしたいユーティリティか:「文字コード判定」ここでの「文字コード判定」は、外部から受け取った「バイト列」が、UTF-8 なのか Shift_JIS なのか EUC-JP なのか、といった「エンコーデ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - BOM 除去

何をしたいユーティリティか:「BOM 除去」ここでの「BOM 除去」は、テキストの先頭にこっそり付いている「BOM(Byte Order Mark)」という特殊な目に見えない文字を取り除く処理です。C...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 改行コード統一

何をしたいユーティリティか:「改行コード統一」ここでの「改行コード統一」は、バラバラな改行コード(\n, \r\n, \r)が混ざったテキストを、指定した形式にそろえる処理です。Windows 由来の...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - パス正規化

何をしたいユーティリティか:「パス正規化」ここでの「パス正規化」は、"//api//v1/../v2//users/./123/" のような「ぐちゃっとしたパス文字列」を、"/api/v2/users...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - パンくず生成

何をしたいユーティリティか:「パンくず生成」ここでの「パンくず生成」は、「今いるページまでの階層(ホーム > マスタ > ユーザー一覧 > ユーザー詳細)」を、決まったルールで文字列や配列として作る」...
Java

Java Tips | 日付・時間:経過日数

経過日数のゴールイメージ「申込日から何日経った?」「納期まであと何日?」「プロジェクト開始からの経過日数は?」業務システムだと、“2つの日付の差”=経過日数を出す場面が本当に多いです。ここでまず押さえ...
Java

Java Tips | 日付・時間:年齢計算

年齢計算のゴールイメージ「生年月日から現在の年齢を出したい」「基準日時点での年齢を知りたい」業務システムだと、会員管理・保険・年齢制限チェックなどで“年齢”はよく出てきます。ここで一番やってはいけない...
Java

Java Tips | 日付・時間:祝日判定

祝日判定のゴールイメージ「この日付は祝日か?」「祝日は営業日から除外したい」「祝日は締切をずらしたい」業務システムでは、祝日判定はかなりの頻度で登場します。ここでまず押さえてほしい現実があります。祝日...
Java

Java Tips | 日付・時間:営業日判定

営業日判定のゴールイメージ「この日付は営業日か?」「締切日が休業日のときは翌営業日にずらしたい」業務システムでは、こういう“営業日判定”が本当に頻繁に出てきます。ここで大事なのは、営業日=「土日以外」...
Java

Java Tips | 日付・時間:曜日取得

曜日取得のゴールイメージ「2025-03-26 は何曜日?」「この日付が土日かどうか知りたい」業務システムだと、営業日判定・カレンダー表示・締切日のチェックなどで“曜日”は頻出です。ここでやってはいけ...
Java

Java Tips | 日付・時間:年末取得

「年末取得」は“その年の最後の日を意味でつかまえる”こと業務システムでは、「今年の年末」「会計年度の最終日」「前年の年末」みたいな話がよく出てきます。ここでやってはいけないのは、「12 月 31 日で...
Java

Java Tips | 日付・時間:年初取得

「年初取得」は“その年の1月1日を意味で取り出す”こと業務システムだと、「今年の年初」「会計年度の開始日」「前年の年初」みたいな話がよく出てきます。ここでやってはいけないのは、month = 1; d...
Java

Java Tips | 日付・時間:月末取得

「月末取得」は“その月の最後の日を安全につかまえる”こと業務システムでは、「今月の月末」「請求月の月末」「締め月の月末」が頻出します。ここでやってはいけないのは、「31 日で固定」「30 日で固定」「...
Java

Java Tips | 日付・時間:月初取得

「月初取得」は“その月の1日を安全に取り出す”こと業務システムでは、「今月の月初」「請求月の月初」「締め月の月初」をよく使います。ここでやってはいけないのは、day = 1; のように自分で日付をいじ...
Java

Java Tips | 日付・時間:日付減算

日付減算の本質は「過去にさかのぼるカレンダー計算を任せること」日付減算は、「今日から 7 日前」「3 ヶ月前」「1 年前の同じ日」といった“カレンダー上で過去にさかのぼる”計算です。ここでも一番やって...
C#

C# Tips | コレクション・LINQ:LINQ式キャッシュ

はじめに:「LINQ式キャッシュ」は“同じクエリを何度も組み立てないための知恵”LINQ を使っていると、こういうコードが増えがちです。var q1 = users.Where(x => x.IsAc...
C#

C# Tips | コレクション・LINQ:条件付き並び替え

はじめに:「条件付き並び替え」は“状況に応じてソートルールを切り替える”技業務システムでは、単純に「いつも同じ並び順」だけで済むことはあまりありません。画面のソート条件をユーザーが選べる検索条件によっ...
C#

C# Tips | コレクション・LINQ:並び替えキー複数

はじめに:「並び替えキー複数」は“人間の並び順ルールをそのままコードにする”技業務でデータを並び替えるとき、単純に「ID順」だけで済むことはあまりありません。部署コード昇順、その中で社員区分昇順、さら...
C#

C# Tips | コレクション・LINQ:HashSet活用

はじめに:「HashSet活用」は“とにかく速く・かんたんに重複と集合を扱う”技業務で LINQ やコレクションを使っていると、こういう処理がよく出てきます。同じ値が含まれているかを高速に判定したい重...
C#

C# Tips | コレクション・LINQ:比較用EqualityComparer

はじめに:「比較用EqualityComparer」は“何をもって同じとみなすか”をコードにする道具LINQ やコレクションを使っていると、こういう場面がよく出てきます。「ユーザーIDが同じなら同じユ...
C#

C# Tips | コレクション・LINQ:シャローコピー

はじめに:「シャローコピー」は“速いけど、油断すると元を汚すコピー”ディープコピーの逆側にあるのが シャローコピー(浅いコピー) です。一言でいうと、「入れ物は別だけど、中身(参照先)はそのまま共有す...
C#

C# Tips | コレクション・LINQ:ディープコピー

はじめに:「ディープコピー」は“元データを絶対に汚したくないときの保険”業務コードを書いていると、こういうことが起きがちです。「編集用にコピーしたつもりが、元のデータまで変わってしまった」「画面でキャ...
C#

C# Tips | コレクション・LINQ:Immutable変換

はじめに:「Immutable変換」は“絶対に書き換えられないコレクション”を手に入れる技業務システムを書いていると、こういう悩みが出てきます。「このコレクション、誰かにうっかり書き換えられてバグにな...
C#

C# Tips | コレクション・LINQ:Span対応変換

はじめに:「Span対応変換」は“速さを意識した LINQ の次の一歩”LINQ は書きやすいけれど、「配列や文字列をガッツリ触る処理」でパフォーマンスを突き詰めたいときには、メモリ確保(アロケーショ...
C#

C# Tips | コレクション・LINQ:ReadOnlyCollection化

はじめに:「ReadOnlyCollection化」は“触ってほしくないコレクションに鍵をかける”技業務コードを書いていると、こういう気持ちになる場面がよくあります。「このコレクション、外から中身をい...
C#

C# Tips | コレクション・LINQ:ObservableCollection変換

はじめに:「ObservableCollection変換」は“画面とコレクションをつなぐ橋”業務アプリ(特に WPF / MAUI / WinUI など)を書くと、List<T> や IEnumera...
C#

C# Tips | コレクション・LINQ:キャッシュ付き検索

はじめに:「キャッシュ付き検索」は“同じものを何度も探さない”ための技LINQ で検索を書くとき、最初はだいたいこうなります。var user = users.FirstOrDefault(x => ...
C#

C# Tips | コレクション・LINQ:高速検索

はじめに:「高速検索」は“探し方を変えるだけで世界が変わる”テクニックLINQ を覚えたての頃は、だいたいこう書きがちです。var user = users.FirstOrDefault(x => x...
C#

C# Tips | コレクション・LINQ:順序保持Distinct

はじめに:「順序保持 Distinct」は“最初に出てきた順だけを残す”技「重複を消したいけど、元の並び順は崩したくない」——業務でデータを扱っていると、かなり頻繁に出てきます。ログの順番はそのままに...
C#

C# Tips | コレクション・LINQ:重複カウント

はじめに:「重複カウント」は“どれがどれだけ被っているか”を一発で見抜く技業務でデータを扱っていると、こういうことを知りたくなる場面がよく出てきます。どの商品が何回注文されているかどのユーザーが何回ロ...
C#

C# Tips | コレクション・LINQ:インデックス付きSelect

はじめに:「インデックス付き Select」は“要素の値+位置情報”を同時に扱える便利ワザLINQ の Select は「値を変換する」ためのメソッドですが、実務では「値だけでなく、その要素が何番目か...
C#

C# Tips | コレクション・LINQ:Empty除外

はじめに:「Empty除外」は“中身がないものを先にどかす”テクニックnull を除外する話をしましたが、実務ではもう一つよく出てくる「やっかいな存在」がいます。それが「空文字」や「空コレクション」、...
C#

C# Tips | コレクション・LINQ:Null除外

はじめに:「Null除外」は“ゴミを先に掃き出してから考える”テクニック業務コードを書いていると、ほぼ確実にこうなります。データのどこかに null が紛れ込むnull を意識せずにプロパティにアクセ...
C#

C# Tips | コレクション・LINQ:AsParallel制御

はじめに:「AsParallel制御」は“並列の暴れ方に手綱をつける”技前回の「並列 LINQ」は、「AsParallel() を付けると並列になるよ」という話でした。でも、実務で本気で使うなら、どれ...
C#

C# Tips | コレクション・LINQ:並列LINQ

はじめに:「並列 LINQ」は“同じ処理をみんなで手分けする”仕組み同じような処理を大量のデータに対して繰り返すとき、1 件ずつ順番に処理するとどうしても時間がかかります。そこで出てくるのが「並列 L...
C#

C# Tips | コレクション・LINQ:Batch処理

はじめに:「Batch処理」は“まとめてやるけど、やり過ぎない”ための設計業務で C# を書いていると、こういう悩みがよく出てきます。一度に 10 万件 INSERT すると重いし、失敗したときの巻き...
JavaScript

JavaScript | Web API:クリップボード・共有 - UX 改善パターン

クリップボード・共有の UX は「技術」より「気づかい」で差がつくコピー・ペースト・共有って、コード的にはどれも数行で書けます。でも、「使っていて気持ちいいかどうか」 はその数行の周りにある“気づかい...
JavaScript

JavaScript | Web API:クリップボード・共有 - URL 共有

「URL 共有」は“このページを誰かに渡す”ための一番シンプルな機能URL 共有は、ざっくり言うと「今見ているページのリンクを、他の人や自分の別の端末に渡す」ための仕組みです。JavaScript で...
JavaScript

JavaScript | Web API:クリップボード・共有 - ネイティブ共有

「ネイティブ共有」は“ブラウザの外の世界”に渡すための出口Web アプリの中だけなら、URL をコピーしたり、画面に何か表示したりすれば完結します。でも実際のユーザーは、このページを LINE で送り...
JavaScript

JavaScript | Web API:クリップボード・共有 - Share API

Share API は「このページいい感じだから誰かに送ろう」をボタン一発にする仕組みスマホでブラウザを見ていると、「共有」ボタンからLINE やメール、Twitter などに URL を送れますよね...
JavaScript

JavaScript | Web API:クリップボード・共有 - セキュリティ制限

クリップボードのセキュリティ制限は「ユーザーを守るための強いガード」クリップボードには、ユーザーがコピーしたあらゆる情報が入ります。パスワード、クレカ番号、住所、仕事の文章、社外秘のコード——全部です...
JavaScript

JavaScript | Web API:クリップボード・共有 - 読み取り権限

クリップボードの「読み取り権限」は“ユーザーのプライバシーを守るための最重要ポイント”クリップボードには、ユーザーがコピーした パスワード・住所・クレカ番号・仕事の文章 など、とてもセンシティブな情報...
JavaScript

JavaScript | Web API:クリップボード・共有 - 書き込み権限

「書き込み権限」は“クリップボードを勝手にいじらないためのブレーキ”Clipboard API の「書き込み権限」は、ざっくり言うと 「このサイトに、クリップボードへ書き込ませていいか?」 をブラウザ...
JavaScript

JavaScript | Web API:クリップボード・共有 - ペースト処理

「ペースト処理」は“ユーザーのクリップボードの中身を、アプリに連れてくる”ことコピー処理が「アプリ → クリップボード」だとしたら、ペースト処理はその逆、「クリップボード → アプリ」 です。ユーザー...
JavaScript

JavaScript | Web API:クリップボード・共有 - コピー処理

「コピー処理」は“ユーザーの手を 1 回減らす”ための仕組みコピー処理は、ユーザーが本来やるはずだったテキストをドラッグで選択Ctrl+C / 右クリック → コピーという手順を、ボタン 1 回で代わ...
JavaScript

JavaScript | Web API:クリップボード・共有 - Clipboard API

Clipboard API は「コピー/ペーストをコードから扱うための正式な入口」普段、コピーやペースストはキーボードの Ctrl+C / Ctrl+V や右クリックメニューでやりますよね。Clipb...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excelテンプレ作成

Excelテンプレ作成は「毎回同じフォーマットを自動生成し、作業時間を大幅削減する」ための最強スキルExcel業務自動化の中でも、テンプレート(雛形)を自動生成する処理は特に効果が大きいです。なぜなら...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 別名保存

別名保存は「元ファイルを壊さず、安全に新しいExcelを作る」ための超重要テクニックExcel業務自動化では、別名保存(Save As) が非常に重要です。なぜなら、次のような実務ニーズがあるからです...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel保存

Excel保存は「作ったExcelを確実に残し、業務自動化を完成させる」ための最重要ステップPythonでExcelを操作する際、保存処理(save)は必ず最後に必要になります。どれだけセル操作・書式...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 行高さ変更

行高さ変更は「Excelの見た目を整え、読みやすいシートを自動生成する」ための基本テクニックExcel業務自動化では、行の高さを調整する処理がとても重要です。なぜなら、次のような問題を防げるからです。...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 列幅変更

列幅変更は「Excelの見やすさを劇的に改善し、読みやすい帳票を自動生成する」ための基本テクニックExcel業務自動化では、列幅を自動で調整する処理がとても重要です。なぜなら、次のような問題を防げるか...
Python

Python | テスト・設計・品質:Web アプリの本番運用

「本番運用」って何?一言でいうと「“たまたま動く”から“24時間ちゃんと動き続ける”にすること」ローカルで FastAPI や Django を動かして「動いた!」は、まだスタートラインです。本番運用...
Python

Python | テスト・設計・品質:API のモック

APIのモックって何?一言でいうと「本物の代わりに動く“テスト用の偽物サーバー”」API のモックは、「本物の外部APIを呼ばずに、その代わりをする“偽物”を用意してテストすること」です。本物のAPI...
Python

Python | テスト・設計・品質:環境変数管理

環境変数管理って何?一言でいうと「コードに書いちゃいけない“秘密と設定”を外に出してあげること」環境変数管理は、「本番・開発・テストで変わる値」や「絶対にコードに埋め込んではいけない秘密」を、コードの...
Python

Python | テスト・設計・品質:コンテナ構築

コンテナ構築って何?一言でいうと「動く箱を作るための“レシピづくり+焼き上げ”」ここでいう「コンテナ構築」は、ほぼ「Docker コンテナを作ること」と考えてOKです。レシピを書くフェーズ(Docke...
Python

Python | テスト・設計・品質:Docker

Dockerって何?一言でいうと「どこでも同じように動く“持ち運べる開発環境”」Docker は、ざっくり言うと「アプリとその周りの環境を、ひとまとめにして箱に入れて持ち運べるようにする仕組み」です。...
Python

Python | 1 日 120 分 × 7 日アプリ学習:クラスで作る商品管理アプリ(中級編)

1日目のゴール1日目のテーマは「class・__init__・オブジェクトを、“商品”という身近な題材で体に入れること」 です。辞書でユーザーを扱ったときと同じように、今度は「商品」をクラスで表現して...
JavaScript

JavaScript | Web API:ファイル・データ操作 - 大容量ファイルの扱い

「大容量ファイルの扱い」は“全部一気にやらない”が合言葉まず前提からいきます。数 KB〜数 MB 程度のファイルなら、FileReader.readAsText や readAsArrayBuffer...
JavaScript

JavaScript | Web API:ファイル・データ操作 - CSV / JSON ファイル処理

CSV / JSON ファイル処理は「テキストとして読み、オブジェクトとして扱い、またテキストに戻す」流れCSV も JSON も、本質はただのテキストファイルです。JavaScript から扱うとき...
JavaScript

JavaScript | Web API:ファイル・データ操作 - バイナリデータ処理

「バイナリデータ処理」は“0と1の生データ”を意識して触ることふだん JavaScript で扱っているのは、文字列・数値・オブジェクトなど「人間に優しい形」のデータです。でも、画像・音声・PDF・Z...
JavaScript

JavaScript | Web API:ファイル・データ操作 - input type=”file”

input type="file" は「ユーザーにファイルを選んでもらうための唯一の正規ルート」まず大前提として、ブラウザの JavaScript は、勝手にユーザーのパソコンの中を覗けません。「この...
JavaScript

JavaScript | Web API:ファイル・データ操作 - ドラッグ&ドロップ

ドラッグ&ドロップは「マウスでつかんで、そのままブラウザに渡す入力方法」ドラッグ&ドロップ(D&D)は、「ユーザーがファイルや要素をマウスでつかんで、別の場所に“落とす”操作をイベントとして扱う仕組み...
JavaScript

JavaScript | Web API:ファイル・データ操作 - ダウンロード処理

「ダウンロード処理」は“ブラウザの中のデータ”を“ユーザーのファイル”に変えることJavaScript でいう「ダウンロード処理」は、ブラウザの中にあるデータ(文字列・JSON・画像・Blob など)...
JavaScript

JavaScript | Web API:ファイル・データ操作 - URL.createObjectURL

URL.createObjectURL は「Blob や File に一時的な URL を貼る魔法」URL.createObjectURL は、Blob や File に「一時的にアクセスできる UR...
JavaScript

JavaScript | Web API:ファイル・データ操作 - Blob

Blob は「生データ(バイナリやテキスト)をまとめて持つ“データのかたまり”」Blob は、「ファイルっぽい“データのかたまり”をメモリ上に表現するためのオブジェクト」 です。画像・テキスト・JSO...
JavaScript

JavaScript | Web API:ファイル・データ操作 - FileReader

FileReader は「ファイルの中身を“いろんな形”で読み出すための専用リーダー」前回の File API で出てきた File は、「ユーザーが選んだファイルへのハンドル(取っ手)」でした。でも...
JavaScript

JavaScript | Web API:ファイル・データ操作 - File API

File API は「ユーザーが選んだファイルをブラウザから触るための窓口」まず一番大事なことから。JavaScript は、勝手にユーザーのパソコンの中を覗いたり、好きなファイルを読みまくったりはで...
Python

Python | 1 日 120 分 × 7 日アプリ学習:辞書型で作るユーザー管理アプリ(中級編)

1日目のゴール1日目のテーマは「辞書型 dict を使って、“ユーザー管理アプリの土台”を作れるようになること」 です。今日つかんでほしいのは、この3つです。辞書型とは何か(キーと値の関係)ユーザー1...
Python

Python | 1 日 90 分 × 7 日アプリ学習:ファイルを読み込むアプリ(初級編)

1日目のゴール1日目のテーマは「ファイルの中身を read で読み込んで、そのまま画面に表示できるようになること」 です。ここでできるようになってほしいのは、たった2つです。ファイルを開いて中身を読み...
Python

Python | 1 日 90 分 × 7 日アプリ学習:ファイルに保存するメモ帳(初級編)

1日目のゴール1日目のテーマは「テキストをファイルに保存できる“超シンプルなメモ帳”を作ること」です。今日できるようになってほしいのは、この3つです。open でファイルを開くイメージをつかむwrit...
JavaScript

JavaScript | Web API:DOM 拡張 API - shadow DOM の概要

shadow DOM は「外側から見えない、部品専用のプライベート DOM」まず一言でいうと、shadow DOM は「コンポーネントの中だけで完結する、外側から直接いじれない専用 DOM」 です。普...
JavaScript

JavaScript | Web API:DOM 拡張 API - documentFragment

documentFragment は「画面にまだ挿していない一時作業用のミニ DOM」DocumentFragment(document.createDocumentFragment() で作るやつ)...
JavaScript

JavaScript | Web API:DOM 拡張 API - NodeList 操作

NodeList は「querySelectorAll が返してくる“要素の集まり”」まず前提からいきます。document.querySelectorAll() を使うと、複数の要素が一度に取れます...
JavaScript

JavaScript | Web API:DOM 拡張 API - dataset API

dataset は「HTML に自由にメモを書いておけるポケット」dataset は、HTML 要素に “自分で決めたデータ” を安全に持たせておくための仕組み です。HTML の data-◯◯ 属...
JavaScript

JavaScript | Web API:DOM 拡張 API - classList API

classList は「要素に付いているクラス名を出し入れするための専用リモコン」HTML 要素には class 属性がありますよね。<div class="box active"></div>この ...
JavaScript

JavaScript | Web API:DOM 拡張 API - Event コンストラクタ

Event コンストラクタは「既存イベントを自分の手で発火させるための素のイベント」Event コンストラクタは、「クリックや変更など、既に名前が決まっているイベントを、自分の手で“発生させたことにす...
JavaScript

JavaScript | Web API:DOM 拡張 API - CustomEvent

CustomEvent は「自分で名前を付けられるオリジナルイベント」CustomEvent は、「クリックやスクロールみたいな“既存のイベント”ではなく、自分で名前を付けたイベントを作って、発火でき...
JavaScript

JavaScript | Web API:DOM 拡張 API - ResizeObserver

ResizeObserver は「要素の大きさが変わった瞬間を教えてくれるセンサー」ResizeObserver は、「特定の要素の幅や高さが変わったときに、それを教えてくれる仕組み」 です。ウィンド...
JavaScript

JavaScript | Web API:DOM 拡張 API - MutationObserver

MutationObserver は「DOM の変化を見張る監視カメラ」MutationObserver は、「DOM(要素の追加・削除・属性変更・テキスト変更など)が変わった瞬間を教えてくれる監視カ...
JavaScript

JavaScript | Web API:DOM 拡張 API - IntersectionObserver

IntersectionObserver は「要素が画面に入ったかどうかを見張る番人」IntersectionObserver は、「ある要素が、画面(または指定した枠)の中に入ったか・出たか」を自動...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 14日目

14日目のゴールとテーマ14日目のテーマは「2週間で身につけた“Javaでアプリを作る力”を言語化して、次の一歩につなげる」 です。今日は新しい文法を増やす日ではありません。この2週間であなたが積み上...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 13日目

13日目のゴールとテーマ13日目のテーマは「プロジェクトを“整理する力”と“ライブラリを使う力”を身につける」 です。ここまでで、あなたはクラスオブジェクトカプセル化クラス同士の関係例外処理ファイル保...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 12日目

12日目のゴールとテーマ12日目のテーマは「タスクをファイルに保存して、“終了しても消えないアプリ”にする」 です。ここまでのタスク管理アプリは、起動している間はちゃんと動きますが、アプリを終了すると...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 11日目

11日目のゴールとテーマ11日目のテーマは「例外処理で“落ちないアプリ”に近づく」 です。ここまでで、あなたはクラス・オブジェクト・カプセル化・クラス同士の関係を使って、小さなタスク管理アプリを形にし...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 10日目

10日目のゴールとテーマ10日目のテーマは「これまでの要素を全部つなげて、“小さな本格アプリ”としてまとめる」 です。ここまでであなたは、変数・配列・ArrayListif・for・whileメソッド...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 9日目

9日目のゴールとテーマ9日目のテーマは「クラス同士の“関係”を設計して、小さな本格アプリの形にする」 です。ここまでであなたは、1つのクラス(Task)を作りオブジェクトを new してArrayLi...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 8日目

8日目のゴールとテーマ8日目のテーマは「カプセル化(情報を隠す)と getter / setter で、“壊れにくいクラス”に育てる」 です。7日目で、あなたはすでに自分でクラス(Task)を作りオブ...
Python

Python | 1 日 90 分 × 7 日アプリ学習:簡単メニュー選択アプリ(初級編)

1日目のゴール1日目のテーマは「数字でメニューを選んで、その数字に応じて“違う関数”を動かせるようになること」です。今日できるようになってほしいのは、この2つです。数値メニューを表示して、ユーザーに番...
Python

Python | 1 日 90 分 × 7 日アプリ学習:関数で処理をまとめるアプリ(初級編)

1日目のゴール1日目のテーマは「def で関数を定義して、自分で呼び出せるようになること」です。今日できるようになってほしいのは、この2つだけです。def を使って「自分の命令」を作るその命令(関数)...
Python

Python | 1 日 90 分 × 7 日アプリ学習:リストに追加するアプリ(初級編)

1日目のゴール1日目のテーマは「Python の list に append で値を追加できるようになること」です。ここができると、買い物リスト、TODOリスト、メモ帳アプリなど、「何かをどんどん溜め...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:ミニ業務アプリ(総合)

1日目のゴールと作るアプリのイメージこの7日間は、「ちょっと業務っぽいミニアプリ」を題材にして、設計力・保守性・実務思考を鍛えていきます。1日目のテーマは、「いきなりコードを書かず、“設計の目”でアプ...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 7日目

7日目のゴールとテーマ7日目のテーマは「クラスとオブジェクトで“自分だけの型”を作り、アプリの世界に登場人物を生み出す」 です。ここまでで、あなたは変数・配列・ArrayListでデータを扱い、if・...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 6日目

6日目のゴールとテーマ6日目のテーマは「メソッドで“処理を分ける力”を身につけて、コードを読みやすく育てる」 です。5日目までで、あなたはすでに入力を受け取る条件分岐で動きを変えるループで繰り返すAr...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 5日目

5日目のゴールとテーマ5日目のテーマは「配列より“柔軟なリスト”を使って、追加・削除ができるアプリに近づく」 です。4日目までで、配列を使って「複数のデータをまとめて扱う」ことができるようになりました...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 4日目

4日目のゴールとテーマ4日目のテーマは「配列で“複数のデータ”をまとめて扱い、ループと組み合わせて処理する」 です。ここまでで、1つの値(int や String)を変数に入れて扱うことはできるように...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 3日目

3日目のゴールとテーマ3日目のテーマは「同じ処理を“繰り返す”力を身につけて、ちょっとしたミニアプリをループで回す」 です。1日目・2日目で、「1回だけ動くプログラム」は書けるようになりました。でも、...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 2日目

2日目のゴールとテーマ2日目のテーマは「ユーザーの入力を受け取り、条件分岐で“動きが変わるアプリ”を作る」 です。1日目は、決まった文字や数字を「表示するだけ」の世界でした。今日はそこから一歩進んで、...
Java

Java | 2週間で身につく、アプリを作りながら学ぶJavaの基本 - 1日目

1日目のゴールとテーマ1日目のテーマは「Javaの“型にはまった書き方”に慣れながら、最初の小さなアプリを動かす」 です。Pythonと違って、Javaは「決まりごと」が多い言語です。最初は少し堅苦し...
Python

Python | テスト・設計・品質:CD

CDって何?一言でいうと「テストが通ったら“そのまま本番まで運んでくれるベルトコンベア”」CD は大きく分けて2つあります。Continuous Delivery(継続的デリバリー)Continuou...
Python

Python | テスト・設計・品質:CI(GitHub Actions)

CI(GitHub Actions)って何?一言でいうと「プッシュした瞬間に“自動でテストしてくれるロボット”」CI(Continuous Integration)は、「コードを少し変更するたびに、自...
Python

Python | テスト・設計・品質:フォルダ構成標準化

フォルダ構成標準化って何?一言でいうと「どのプロジェクトでも迷子にならないための地図づくり」フォルダ構成標準化は、「Pythonプロジェクトのフォルダやファイルの置き方に、共通ルールを決めること」です...
Python

Python | テスト・設計・品質:例外階層

例外階層って何?一言でいうと「エラーを“種類ごとに整理する”ための仕組み」例外階層(Exception Hierarchy)は、「エラーを種類ごとに分類して、親子関係で整理する」ための設計です。Pyt...
Python

Python | テスト・設計・品質:ロギング設計

ロギング設計って何?一言でいうと「あとから原因を追えるように“足跡”を設計すること」ロギング設計は、「エラーが起きたとき・おかしな動きをしたときに、あとから原因を追えるように、どこで何を記録しておくか...
Python

Python | テスト・設計・品質:REST 設計

REST設計って何?一言でいうと「URLとHTTPを“きれいなルール”で使う設計」REST 設計は、Web API を作るときに、URLHTTPメソッド(GET / POST / PUT / PATC...
Python

Python | テスト・設計・品質:API 設計

API設計って何?一言でいうと「他人(未来の自分)が使いやすい“入口”を設計すること」ここでいう「API」は、Web API だけじゃなく、「関数・クラス・モジュールの“使い方の顔”」も含めた広い意味...
Python

Python | テスト・設計・品質:interface 分離

interface分離って何?一言でいうと「いらないボタンを押させないようにする設計」interface 分離(インターフェース分離の原則 / Interface Segregation Princi...
Python

Python | テスト・設計・品質:責務定義

「責務定義」って何?一言でいうと「この子は何を担当するのかを決めること」責務定義は、クラス・関数・モジュールなどに対して「あなたは何を担当するのか?」をはっきり決めることです。もっと砕くと、「このコー...
Python

Python | テスト・設計・品質:モジュール分割

モジュール分割って何?一言でいうと「ファイルごとに役割をはっきり分けること」Python でいう「モジュール分割」は、コードを複数の .py ファイルに分けて、それぞれに「はっきりした役割」を持たせる...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - ページリロード

「ページリロード」は「このURLをもう一度最初から開き直すこと」まずイメージからいきます。ブラウザの「再読み込みボタン」や F5 を押すと、今表示している URL にもう一度アクセスするHTML・CS...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - アラート(alert / confirm / prompt)

アラートは「ブラウザが出してくれる超シンプルなダイアログ」alert / confirm / prompt は、ブラウザが標準で用意してくれているダイアログ表示の仕組み です。画面の真ん中に、ブラウザ...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - タブ操作(open / close)

「タブ操作」は「新しい窓を開く権利」と「閉じていい範囲」を理解するところからJavaScript でのタブ操作は、window.open() と window.close() が中心です。ただし、ここ...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - リダイレクト

「リダイレクト」は「ユーザーを別のURLに連れて行くこと」まず言葉の整理からいきます。リダイレクト(redirect) は、ざっくり言うと「今このページを見ているユーザーを、別の URL に自動的に移...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - 画面サイズ取得

「画面サイズ取得」は「どの“枠”のサイズが欲しいか」を決めるところから始まるまず一番大事なことから。「画面サイズ」と一口に言っても、実は何種類かあります。ブラウザのウィンドウ全体のサイズウィンドウの中...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - userAgent

userAgent は「ブラウザが名乗る自己紹介テキスト」navigator.userAgent(ふつうは userAgent と呼ぶ)は、「このブラウザはこういう環境ですよ」とサーバーなどに伝えるた...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - navigator

navigator は「今使っているブラウザと環境のプロフィールカード」navigator は、「このページを開いているブラウザや環境の情報」をまとめたオブジェクト です。どんなブラウザか(Chrom...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - history API

history API は「ブラウザの戻る・進むをコードから操る仕組み」history は window.history のことで、ブラウザの「戻る」「進む」ボタンと同じようなことを、JavaScri...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - location

location は「今開いているページの住所カード」location は、「このタブで今開いているページの URL 情報をまとめたオブジェクト」 です。「今どの URL を見ているか知りたい」「別の...
JavaScript

JavaScript | Web API:ウィンドウ・ブラウザ制御 - window オブジェクト

window オブジェクトは「ブラウザタブそのもの」を表す巨大な入り口JavaScript でいう window は、「今あなたが見ているブラウザのタブ(ウィンドウ)そのものを表すオブジェクト」 です...
Python

Python | テスト・設計・品質:ドメイン駆動設計

ドメイン駆動設計って何?一言でいうと「現実のルールをコードの中心に置く考え方」ドメイン駆動設計(DDD)は、「フレームワークやDBの都合ではなく、“現実世界のルール”を中心にコードを組み立てよう」とい...
Python

Python | テスト・設計・品質:クリーンアーキテクチャ

クリーンアーキテクチャって何?一言でいうと「大事なものを真ん中に守る設計」クリーンアーキテクチャは、アプリケーションの「大事なルール(ビジネスロジック)」を、外側の技術的なもの(Web フレームワーク...
Python

Python | テスト・設計・品質:リファクタリング

リファクタリングって何?一言でいうと「動きを変えずに中身だけキレイにする」リファクタリングは、「コードの外から見た振る舞い(仕様・動き)は変えずに、中身の構造だけを良くすること」です。バグ修正でも新機...
Python

Python | テスト・設計・品質:mypy

mypyって何?一言でいうと「Pythonコードに“型のテスト”をかけるツール」mypy は、Python コードに書いた「型ヒント(type hints)」を読み取って、その使い方が矛盾していないか...
Python

Python | テスト・設計・品質:TypedDict

TypedDictって何?一言でいうと「キー付き辞書に“型の設計図”を付けるもの」TypedDict は、「この辞書は、こういうキーを持っていて、それぞれの値はこういう型です」という“設計図”を型ヒン...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - スケジューリング設計

「スケジューリング設計」は「いつ・どのくらい・どう止めるか」を決めることタイマーは「ちょっと遅らせて実行する便利関数」ではなく、「処理のタイミングを設計するための道具」 です。いつ実行するかどのくらい...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - UI 更新との関係

UI 更新とタイマーの関係は「JavaScript とブラウザの役割分担」を理解すると一気に分かりやすくなるタイマー(setTimeout / setInterval / requestAnimati...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - 無限ループ防止

「無限ループ防止」は「止まる出口を必ず用意する」という発想タイマーやループを書いているときに一番やっちゃいけないのが、「永遠に終わらない処理」=無限ループ です。ブラウザが固まるCPU が 100% ...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - タイマー精度の問題

「タイマー精度の問題」は「指定した時間どおりには動かないことがある」という話まず一番大事なことを先に言います。setTimeout(…, 1000) と書いても、きっちり 1000ms 後に実行される...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - requestIdleCallback

requestIdleCallback は「ブラウザがヒマなときにやってもらう雑用係」requestIdleCallback は、「今すぐじゃなくて、ブラウザがヒマになったタイミングでやってほしい処理...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - requestAnimationFrame

requestAnimationFrame は「ブラウザに最適なタイミングでアニメを進めてもらう仕組み」requestAnimationFrame(略して rAF)は、「アニメーションを滑らかに動かす...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - clearInterval

clearInterval は「繰り返し処理を止めるためのスイッチ」clearInterval は、setInterval で始めた“繰り返し処理”を止めるための関数 です。setInterval は...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - clearTimeout

clearTimeout は「さっき予約した“◯秒後”をなかったことにする」関数clearTimeout は、setTimeout で予約した「あとで実行する処理」をキャンセルするための関数 です。「...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - setInterval

setInterval は「◯秒ごとにこれを繰り返して」と予約する関数setTimeout が「一回だけあとで実行」だとしたら、setInterval は 「一定間隔で同じ処理を何度も繰り返す」 ため...
JavaScript

JavaScript | Web API:タイマー・スケジューリング - setTimeout

setTimeout は「◯秒後にこれやって」を予約する関数setTimeout は、「今すぐじゃなくて、少し時間が経ってから処理を実行したいとき」に使うタイマー関数 です。「3 秒後にメッセージを出...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - WebSocket の概要

WebSocket は「つなぎっぱなしでしゃべり続けられる通信」まずイメージからいきます。ふつうの HTTP(fetch など)は「用があるときだけノックして、用が済んだらすぐ帰る」通信です。リクエス...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - オフライン対応の基本

まず「オフライン対応って何を指しているのか」をはっきりさせるオフライン対応と聞くと、「ネットが切れても全部普通に動く魔法」みたいに思いがちですが、現実はもう少し地に足がついた話です。本質は、「ネットワ...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - Service Worker の概要

Service Worker は「ブラウザの中に住む、裏方の小さなサーバー」まずイメージからいきます。Service Worker は、「ブラウザの中で動く、あなたのサイト専用の“裏方サーバー”」 で...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - キャッシュ制御

「キャッシュ制御」は“いつまで古いデータを使っていいか”を決めるルールまずざっくりイメージからいきます。キャッシュは、「一度取ってきたデータを、次回以降は早く返すために手元に置いておく仕組み」 です。...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - 認証ヘッダ

認証ヘッダは「あなたが誰なのか」をサーバーに伝えるための“身分証”まずイメージからいきます。認証ヘッダ(Authentication Header)は、「このリクエストは誰として送っているのか」 をサ...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - Cookie の扱い

Cookie は「ブラウザが自動で持ち運んでくれる小さなメモ」まずイメージからいきます。Cookie は、「ブラウザがサーバーとの間で自動的に持ち運んでくれる小さなメモ」 です。サーバーが「このユーザ...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - CORS の基本

まず「なぜ CORS なんてものがあるのか」からCORS を理解する一番の近道は、「ブラウザは、もともと“よそのサイトに勝手にリクエストさせない”ように作られている」という前提をちゃんと掴むことです。...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - Headers

ヘッダーは「一緒にくっついて飛んでいくメモ書き」まずイメージからいきます。HTTP の世界では、リクエストやレスポンスは「封筒付きの手紙」みたいなものです。本文(ボディ)実際の中身。JSON や HT...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - Request / Response オブジェクト

「Request / Response」は fetch がやり取りする“手紙の入れ物”まず大きなイメージからいきます。fetch は「サーバーと会話する窓口」でしたよね。その会話の中で実際に行き来して...
JavaScript

JavaScript | Web API:通信・ネットワーク系 - fetch API

fetch は「ブラウザからサーバーにお願いしに行く関数」まずイメージからいきます。fetch は、「ブラウザからサーバーに“ちょっとデータください”とか“これ送ります”とお願いしに行くための関数」 ...
JavaScript

JavaScript | Web API:ストレージ系 API - IndexedDB の概要

IndexedDB は「ブラウザ内のちゃんとしたデータベース」localStorage / sessionStorage は「小さなメモ帳」でした。IndexedDB は一段レベルが違います。イメージ...
JavaScript

JavaScript | Web API:ストレージ系 API - セキュリティの注意点

「ストレージは安全な金庫」ではない、という前提から始めようlocalStorage / sessionStorage は便利ですが、「ここに入れておけば安全」な場所ではありません。ブラウザの中にあると...
JavaScript

JavaScript | Web API:ストレージ系 API - ストレージイベント

ストレージイベントは「別タブでの変更を教えてくれる仕組み」まず一言でいうと、ストレージイベント(storage イベント)は「他のタブで localStorage が書き換えられたことを教えてくれる通...
JavaScript

JavaScript | Web API:ストレージ系 API - 同期 API の特性

「同期 API」ってそもそも何者かまず言葉の整理からいきます。同期 API(synchronous API)というのは、呼び出した瞬間に処理が終わるまで、そのスレッドを止めてしまうタイプの API の...
JavaScript

JavaScript | Web API:ストレージ系 API - 容量制限

ストレージの「容量制限」をちゃんと意識すると設計が変わるlocalStorage / sessionStorage は便利ですが、「無限に保存できる魔法の箱」ではありません。どちらもブラウザごとに 容...
JavaScript

JavaScript | Web API:ストレージ系 API - JSON との組み合わせ

なぜ「ストレージ × JSON」がほぼセットなのかlocalStorage / sessionStorage は、とてもシンプルなストレージです。でも制約が一つあります——「保存できるのは文字列だけ」...
JavaScript

JavaScript | Web API:ストレージ系 API - removeItem / clear

removeItem / clear は「部分的に消す」と「全部消す」の違いストレージ系 API(localStorage / sessionStorage)には、データを「書く」「読む」だけでなく、...
JavaScript

JavaScript | Web API:ストレージ系 API - setItem / getItem

setItem / getItem は「ブラウザのメモ帳に書く・読む」操作まずざっくりイメージからいきます。setItem と getItem は、ブラウザの中にある小さなメモ帳に「書く」「読む」ため...
JavaScript

JavaScript | Web API:ストレージ系 API - SessionStorage の基本

SessionStorage は「タブごとの一時メモ帳」まずイメージからいきます。SessionStorage は 「ブラウザのタブごとに用意される、一時的なメモ帳」 です。LocalStorage ...
JavaScript

JavaScript | Web API:ストレージ系 API - LocalStorage の基本

LocalStorage は「ブラウザにメモ帳を置く」イメージまずざっくりイメージから。LocalStorage は、「ブラウザの中にある、キーと値を保存できる小さなメモ帳」 です。ページを閉じても、...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - プロとしての非同期設計

「プロとしての非同期設計」って何が違うのか非同期処理を「書ける」ようになるのは、正直そんなに難しくありません。async/await を覚えて、fetch を呼んで、try/catch を付ければ、と...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 非同期バグの再現

なぜ「非同期バグの再現」がこんなに難しいのか非同期バグって、ほんとイヤらしいですよね。さっきまで出ていたのに、もう一回やると出ない。本番では起きるのに、ローカルでは起きない。理由はシンプルで、非同期バ...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 例外仕様の文書化

なぜ「例外仕様の文書化」がそんなに大事なのか非同期処理は「うまくいくとき」だけ見ていると、わりと簡単そうに見えます。await fetch(...) して、res.json() して、画面に出す——こ...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - モック化戦略

「モック化戦略」ってそもそも何の話?非同期処理をテストしようとすると、必ずぶつかる壁があります。それが「外部とのやり取り」です。サーバーへのリクエストデータベースタイマー(setTimeout)ブラウ...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - テストしやすい非同期

なぜ「テストしやすい非同期」が大事なのか非同期処理って、バグが出ても再現しづらいし、「たまたま動いた」状態になりがちです。だからこそ、「テストしやすい形で非同期コードを書く」という発想がめちゃくちゃ重...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 同期 API との境界

なぜ「同期 API との境界」を意識しないといけないのか非同期処理を学び始めると、「どこまでを同期で書いて、どこからを非同期にするのか」がだんだん分からなくなってきます。全部 async にしてしまう...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 非同期 API 設計

「非同期 API 設計」って何を考えること?まず前提から整理します。ここでいう「非同期 API」は、サーバーの REST API というより、「あなたが JavaScript で提供する非同期関数の“...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 非同期関数の命名

なぜ「非同期関数の命名」がそんなに大事なのか非同期処理って、それだけで頭を使います。そこに「名前がふわっとしている関数」が混ざると、一気に読めなくなります。doSomething(), handle(...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 責務分離

「責務分離」を非同期コードで考える意味非同期処理って、それだけで頭を使いますよね。そこに「UI」「エラー処理」「キャッシュ」「ローディング表示」などを全部一緒に書き始めると、一瞬でカオスになります。だ...
JavaScript

JavaScript | 非同期処理:設計・理解の深化 - 非同期コードの可読性

なぜ「非同期コードの可読性」がそんなに大事なのか非同期処理って、動かすだけなら意外とすぐ書けます。async 付けて、await fetch(...) して、console.log して終わり——みた...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - 非同期設計レビュー

「非同期設計レビュー」って何をする時間か非同期処理のコードは、とりあえず動かすだけなら意外と簡単です。async/await を付けて、fetch を呼んで、console.log して終わり。でも「...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - UI ブロック回避

なぜ「UI ブロック回避」がそんなに大事なのかJavaScript は基本「1本のメインスレッド」で動いています。この1本の線の上で、描画・クリック処理・スクロール・あなたの書いた処理が、全部順番待ち...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - 長時間処理の分割

なぜ「長時間処理の分割」が必要になるのかJavaScript は基本的に「シングルスレッド」で動きます。つまり、1本の道に、処理が一列に並んで流れているイメージです。その道の上で、重い処理(ループ・計...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - 非同期処理の計測

なぜ「非同期処理の計測」が大事なのかパフォーマンス最適化って、つい「こうした方が速そう」と感覚でやりがちです。でも、本当にやるべきことはシンプルで、たった一つです。「遅いところをちゃんと測って、事実ベ...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - レイテンシ考慮

レイテンシってそもそも何?まず言葉からいきます。レイテンシ(latency)は「お願いしてから、最初の反応が返ってくるまでの時間」 です。ユーザーから見ると、ボタンを押してから画面が変わるまで検索ワー...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - ネットワーク最適化

ネットワーク最適化って何をすること?非同期処理のパフォーマンス最適化の中で、ネットワーク最適化は「サーバーとの通信をできるだけ速く・少なく・無駄なくする」ことです。JavaScript の世界だと、だ...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - バッチ処理

「バッチ処理」は“まとめてやるから速くて優しい”という発想バッチ処理は、「細かい処理を1個ずつやるのではなく、ある程度まとめて一気に処理する」という考え方です。非同期処理のパフォーマンス最適化では、・...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - Promise キャッシュ

Promise キャッシュって何者?Promise キャッシュは、「同じ非同期処理を何度も実行せず、“進行中 or 結果”を使い回すテクニック」 です。特に、「同じ API を短時間に何回も叩いてしま...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - 不要 await の削除

「不要な await」を消すと何が嬉しいのかawait は便利ですが、「なくてもいい場所に書いてしまうと、わざわざ処理を遅くしている」ことがあります。パフォーマンス最適化でよく効くのが、この「不要な ...
JavaScript

JavaScript | 非同期処理:パフォーマンス最適化 - 並列化の判断

「並列化の判断」は“どこを同時に走らせていいか”を見極めること非同期処理のパフォーマンス最適化で一番効くのが、「待ち時間の長い処理を、できるだけ同時に走らせる」ことです。でも、何でもかんでも並列にすれ...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:クラス設計アプリ(オブジェクト指向)

1日目のゴールと作るもののイメージ1日目のテーマは「class を使って、“それっぽいオブジェクト”を自分で設計できるようになること」です。キーワードはこの3つです。classカプセル化(中身を隠す・...
Python

Python | テスト・設計・品質:Protocol

Protocolって何?一言でいうと「“こう振る舞うもの”を型で表す」Protocol は、型ヒントの世界で「このオブジェクトは、こういうメソッドや属性を“持っているもの”として扱える」という“振る舞...
Python

Python | テスト・設計・品質:Literal

Literalって何?一言でいうと「値そのものを型にする」Literal は、型ヒントの世界で「この引数(または値)は、この“決まった値”しか受け付けません」と表現するための道具です。普通の型ヒントは...
Python

Python | テスト・設計・品質:Union

Unionって何?一言でいうと「型の“どれか”を許すための道具」Union は、型ヒントの世界で「この値は、A か B か C のどれかです」と表現するための仕組みです。形式的にはこうです。from ...
Python

Python | テスト・設計・品質:Optional

Optionalって何?一言でいうと「Noneかもしれない」を型で表す道具Optional は、型ヒントの世界で「この値は、あるときは T 型だけど、ないときは None かもしれない」という状態を表...
Python

Python | テスト・設計・品質:typing 型ヒント

型ヒントって何?まずは「コメント」だと思ってOKPython の「型ヒント(type hints)」は、「この変数や関数は、こういう型を想定しているよ」という情報を、コードの中に書き添える仕組みです。...
Java

Java Tips | 日付・時間:日付加算

「日付加算」は“カレンダーの面倒を Java に任せる”こと日付加算は、「今日から 7 日後」「月末から 1 日後」「3 ヶ月後の同じ日」といった“カレンダー計算”をコードでやることです。これを自前で...
Java

Java Tips | 日付・時間:日時→文字列

「日時→文字列」は“見せ方を決める”作業日時オブジェクト(LocalDate や LocalDateTime など)は、そのままだと「内部的に意味のある値」ですが、人間には少し分かりにくいことがありま...
Java

Java Tips | 日付・時間:文字列→日時

文字列→日時変換の全体イメージ「String で受け取った日付・時刻」を、そのまま文字列のまま扱うと、比較・加算・バリデーションがすべて自前実装になってしまいます。そこでやるべきことはシンプルで、「文...
Java

Java Tips | 日付・時間:Calendar変換

Calendar は「古い日付 API」だが、変換パターンを覚えれば怖くないjava.util.Calendar は、Date と同じく“古い日付 API”です。今の Java では LocalDat...
Java

Java Tips | 日付・時間:Date変換

古い Date と新しい java.time を「つなぐ」という発想java.util.Date は、昔からある「日時クラス」です。でも今の Java では、LocalDate / LocalTime...
Java

Java Tips | 日付・時間:Instant変換

Instant は「世界共通の“瞬間”を表すタイムスタンプ」Instant は、「UTC を基準にした、世界共通の“ある瞬間”」 を表すクラスです。「1970-01-01T00:00:00Z(UTC)...
Java

Java Tips | 日付・時間:ZonedDateTime生成

ZonedDateTime は「タイムゾーン付きの日時」ZonedDateTime は、「日付(年月日)+時刻(時分秒)+タイムゾーン」 をまとめて扱うクラスです。LocalDateTime は「どこ...
Java

Java Tips | 日付・時間:LocalDateTime生成

LocalDateTime は「日付+時刻」をまとめて扱うクラスLocalDateTime は、「年月日」と「時分秒(ナノ秒まで)」を一つにまとめて扱うクラスです。 タイムゾーンは持たないので、「ある...
Java

Java Tips | 日付・時間:LocalTime生成

LocalTime は「時刻だけ」を扱うクラスLocalTime は、「時・分・秒だけ」を扱うクラスです。日付(年月日)もタイムゾーンも持ちません。「営業開始時刻(09:00)」「締切時刻(17:30...
Java

Java Tips | 日付・時間:LocalDate生成

LocalDate は「日付だけ」を扱うクラスLocalDate は、「年月日だけ」を扱うクラスです。時刻(時分秒)もタイムゾーンも持ちません。「請求日」「締切日」「誕生日」「営業日」など、“日付だけ...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - コメント追加

コメント追加は「Excelに説明・注意書き・補足情報を埋め込み、使いやすいシートを作る」ための便利テクニックExcel業務自動化では、セルにコメント(メモ)を追加する処理がとても役立ちます。コメントを...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - データ検証設定

データ検証設定は「入力ミスを防ぎ、Excelを“壊れないシート”にする」ための最強テクニックExcel業務自動化では、データ検証(Data Validation)が非常に重要です。なぜなら、次のような...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 条件付き書式

条件付き書式は「値に応じて自動で色や書式を変え、異常値や重要データを一瞬で見分ける」ための武器条件付き書式は、「セルの値に応じて、自動で色・フォント・アイコンなどを変える仕組み」です。人間が目でチェッ...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excelフィルタ

Excelフィルタは「必要なデータだけを抽出し、業務に必要な情報を瞬時に取り出す」ための超重要スキルExcel業務自動化では、フィルタ(抽出)が非常に多く登場します。なぜなら、実務のExcelは次のよ...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excelソート

Excelソートは「表を並び替えて、欲しい順番にデータを整理する」ための超実務的テクニックExcel業務自動化で、ソート(並び替え)はかなり頻繁に出てきます。例えば次のような場面です。売上を金額の大き...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル背景色変更

セル背景色変更は「Excelの視認性を高め、重要箇所を強調する」ための必須スキルExcel業務自動化では、セルの背景色(塗りつぶし)を変更する処理が非常に多く登場します。なぜなら、業務で扱うExcel...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル書式設定

セル書式設定は「Excelの見た目を整え、読みやすく美しい帳票を自動生成する」ための必須スキルExcel業務自動化では、セルの書式設定(フォント・色・罫線・背景色・数値形式など)が欠かせません。なぜな...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル置換

セル置換は「Excel内の特定の値を一括で書き換え、データを整形・修正する」ための超重要スキルExcel業務自動化では、セルの値を検索して置換する処理が非常に多く登場します。なぜなら、次のような業務が...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル検索

セル検索は「Excelの中から必要な値を探し出し、Pythonで次の処理につなげる」ための超重要スキルExcel業務自動化では、セルを検索する処理が非常に多く登場します。なぜなら、業務で扱うExcel...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 範囲書き込み

範囲書き込みは「Excelの表にまとめてデータを流し込み、テンプレートを一気に完成させる」ための最重要スキルExcel業務自動化では、複数セルにまとめてデータを書き込む(範囲書き込み)ことが非常に多く...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - UsedRange

UsedRange は「そのシートで“何かに使われている範囲”をひとかたまりで教えてくれる」まずイメージから。UsedRange は「そのワークシートの中で、“何かしら使われているセルの最小の長方形”...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - 最終行取得

「最終行取得」は“どこまでデータが入っているか”を知るための超重要テクニックまずイメージから。「最終行取得」は「この列は、いったい何行目までデータが入っているのか?」をコードで調べることです。Exce...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - With構文

With 構文は「同じ相手に、まとめて命令を出すための“会話モード”」まずイメージからいきます。With 構文は「同じオブジェクトに対して、何回も続けて命令を出したいときに使う“まとめモード”」です。...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Select回避

「Select回避」とは何か ― “選択してから操作する”クセをやめる発想まず前提から整理します。Excel を手で操作するとき、あなたは必ず「選択してから操作」しています。A1 をクリックして選択 ...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - NumberFormat

NumberFormat は「セルの“表示のしかた”を決めるためのプロパティ」まず一番大事なイメージから。NumberFormat は「セルの中身そのもの」ではなく、「どう見せるか(表示形式)」を決め...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Borders

Borders は「セルや範囲の“罫線”をまとめて操るためのオブジェクト」まずイメージからいきましょう。Font が「文字の見た目」、Interior が「背景色」だとしたら、Borders は「セル...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Interior

Interior は「セルの“背景色”などを操るためのオブジェクト」まずイメージから。Font が「文字の見た目」を扱うのに対して、Interior は「セルの中の塗りつぶし(背景色など)」を扱うオブ...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Font

Font は「セルの文字の“見た目”をまとめて操るためのオブジェクト」まずイメージから。Font は「セル(Range)の“文字の見た目”をまとめて持っているオブジェクト」です。太字にするか文字サイズ...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Paste

Paste は「クリップボードにあるものを“今ここに貼り付ける”動き」まずイメージから。Paste は「コピーされた内容(クリップボードの中身)を、指定した場所に貼り付ける動き」です。手作業でやってい...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Copy

Copy は「セルや範囲を“そのまま別の場所へ複製する”ためのメソッド」まずイメージから。Copy は「選んだセル(Range)を、別の場所へコピーする命令」です。手作業でやっている「コピー → 貼り...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 14日目

14日目のゴールとテーマ14日目のテーマは「ここまで作ったアプリを“仕上げる”感覚を身につける」です。新しい文法をどんどん増やす日ではなく、コードを読みやすく整えるちょっとしたバグを見つけて直すテスト...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 13日目

13日目のゴールとテーマ13日目のテーマは「コードを“モジュール化”して、ちゃんとしたプロジェクト構成にする」です。ここまでで、クラスも関数も使って、タスク管理アプリをかなり育ててきました。でも、まだ...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 12日目

12日目のゴールとテーマ12日目のテーマは 「クラス同士を組み合わせて“アプリの世界観”を作る」 です。昨日は「Task という1つのクラス」を作りました。今日はそこから一歩進んで、クラスを“複数”作...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 11日目

11日目のゴールとテーマ11日目のテーマは「クラスとオブジェクトで“自分だけの型”を作る」です。ここまで、辞書とリストを組み合わせて、かなり複雑なデータも扱えるようになりました。でも、そろそろこう感じ...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 10日目

10日目のゴールとテーマ10日目のテーマは「メニュー付きの“ちゃんとしたコンソールアプリ”を組み立てる」です。ここまでで、関数・リスト・辞書・ファイル・例外・標準ライブラリと、かなりのパーツを学んでき...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 9日目

9日目のゴールとテーマ9日目のテーマは「標準ライブラリを使って“道具箱”を広げる」です。ここまでで、Pythonそのものの文法や、リスト・辞書・関数・ファイル・エラー処理といった“土台”はかなりできて...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 8日目

8日目のゴールとテーマ8日目のテーマは「エラーとちゃんと付き合える“丈夫なアプリ”にする」です。ここまでで、かなりいろいろなことができるようになりましたが、まだ弱いところがあります。それは「想定外の入...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 7日目

7日目のゴールとテーマ7日目のテーマは「アプリのデータを“ファイルに保存して残す”」です。ここまで作ってきた名簿やお会計、貯金シミュレーターは、プログラムを終了すると全部消えていました。今日はここに一...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 6日目

6日目のゴールとテーマ6日目のテーマは 「関数でコードに“名前をつけて整理する”」 です。ここまでで、if・for・while・リスト・辞書を使って、けっこう本格的な処理が書けるようになりました。でも...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 5日目

5日目のゴールとテーマ5日目のテーマは 「複数の情報を“ひとまとめ”にして扱う」 です。昨日は「複数人の名前」をリストで扱いましたよね。今日はさらに一歩進んで、1人分の情報を「セット」で扱うそのセット...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 4日目

4日目のゴールとテーマ4日目のテーマは「複数のデータを“まとめて扱う”力を手に入れる」です。ここまでで、1つの値(1人の年齢、1つの金額)を扱うことはできるようになりました。今日はそこから一歩進んで、...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 3日目

3日目のゴールとテーマ3日目のテーマは「同じことを“くり返す”力を手に入れる」です。昨日までは、「1回だけの処理」や「条件で分かれる処理」でした。今日はそこに、同じ処理を何回も自動でくり返す「何回くり...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 2日目

2日目のゴールとテーマ2日目のテーマは「条件によって“分かれ道”を作る」です。昨日までは、上から順番に“全部”実行されるだけでした。今日はそこに、「もし〜なら、こうする」「そうでなければ、こっちをする...
Python

Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 1日目

1日目のゴールとテーマ1日目のテーマは「Pythonで“コンピュータに命令する感覚”をつかむ」です。今日はまだ難しいことはやりません。Pythonを動かす環境をイメージするprint でコンピュータに...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 範囲取得

範囲取得は「Excelの表から必要な部分だけを抜き出し、Pythonで自由に加工する」ための超重要スキルExcel業務自動化では、セルの範囲を取得することが非常に多く登場します。なぜなら、業務で扱うデ...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 列削除

列削除は「不要な列を取り除き、Excelデータをスリムで扱いやすくする」ための基本操作Excel業務自動化では、列を削除する処理が非常に多く登場します。例えば次のような場面です。不要な項目(メモ欄・備...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 行削除

行削除は「不要なデータ行を自動で取り除き、Excelをクリーンで扱いやすい状態に保つ」ための基本操作Excel業務自動化では、行を削除する処理が非常に多く登場します。例えば次のような場面です。空行を削...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 列追加

列追加は「Excelの表に新しい列を自動で挿入し、計算列・フラグ列・補助列を作る」ための重要テクニックExcel業務自動化では、列を追加する処理が非常に多く登場します。例えば次のような場面です。売上デ...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - 行追加

行追加は「Excelの表に新しいデータ行を自動で追加し、ログ・明細・履歴を蓄積する」ための超重要テクニックExcel業務自動化では、行を追加する処理が非常に多く登場します。例えば次のような場面です。日...
Power Query M Formula Language

Power Query 実務テンプレ | クレンジング(前処理)系:不正文字除去

ゴールのイメージをそろえる今回のテーマは「Power Query で“データの中に紛れ込んだ不正文字・余計な文字をきれいに取り除く”実務テンプレ」を身につけることです。ここでいう「不正文字」は、制御文...
Power Query M Formula Language

Power Query 実務テンプレ | クレンジング(前処理)系:空白を NULL に統一

ゴールのイメージをそろえる今回のテーマは「Power Query で“空白("" や スペースだけの文字列)を NULL に統一する”実務テンプレ」を身につけることです。さっきの「NULL を空白に統...
Power Query M Formula Language

Power Query 実務テンプレ | クレンジング(前処理)系:NULL を空白に統一

ゴールのイメージをそろえる今回のテーマは「Power Query で NULL(空値)を空白文字に統一する 実務テンプレ」です。NULL が混ざっていると、次のようなトラブルが起きやすくなります。結合...
Power Query M Formula Language

Power Query 実務テンプレ | クレンジング(前処理)系:全角→半角変換

ゴールのイメージをそろえる今回のテーマは「Power Query で“全角の英数字・カナ・記号などを半角にそろえる”実務テンプレ」を身につけることです。目的はシンプルで、「見た目は同じなのに、全角と半...
Power Query M Formula Language

Power Query 実務テンプレ | クレンジング(前処理)系:全列トリム(前後空白除去)

ゴールのイメージをそろえる今回のテーマは「Power Query で“全ての列の前後の空白(スペース)を一括で削る”実務テンプレ」を身につけることです。目指すのは、「どの列に空白が紛れ込んでいても、と...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:SharePointフォルダ自動取込

ゴールのイメージをそろえる今回のテーマは「SharePoint 上のフォルダに置かれたファイルを、Power Query で“ローカルフォルダと同じ感覚で自動取込・更新できるようにする実務テンプレ”」...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:Web上CSV自動取込

ゴールのイメージをそろえる今回のテーマは「Web 上に公開されている CSV ファイルを、Power Query で“自動で取り込み・更新できる状態”にする実務テンプレ」です。ローカルのフォルダではな...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:取込失敗ログ作成

ゴールのイメージをそろえる今回のテーマは「Power Query でフォルダ一括取込をしたときに、“うまく読めなかったファイルだけを一覧にした『取込失敗ログ』クエリを作る実務テンプレ」を身につけること...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:ファイル名日付で抽出

ゴールのイメージをそろえる今回のテーマは「ファイル名の中に埋め込まれた日付(例:売上_2024-10-01.csv)を Power Query で読み取り、その日付を使って“欲しい期間だけ抽出する”実...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:最古ファイルのみ取得

ゴールのイメージをそろえる今回のテーマは「フォルダの中に同じ形式のファイルがたくさんあっても、“一番古いファイルだけ”を Power Query で自動的に選んで取り込む実務テンプレ」を身につけること...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:最新ファイルのみ取得

ゴールのイメージをそろえる今回のテーマは「フォルダの中に同じ形式のファイルがたくさんあっても、“一番新しいファイルだけ”を Power Query で自動的に選んで取り込む実務テンプレ」を身につけるこ...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:拡張子別に取込制御

ゴールのイメージをそろえる今回のテーマは「フォルダの中にいろんな種類のファイル(.csv, .xlsx, .txt など)が混ざっていても、“拡張子ごとに取込を制御できる実務テンプレ”を身につけること...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:読み取り専用ファイル対応

ゴールのイメージをそろえる今回のテーマは「読み取り専用になっているファイル(ロック中・共有フォルダ・OneDrive など)を、Power Query で安定して読み込む“実務テンプレ”を理解すること...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:壊れたファイルを自動スキップ

ゴールのイメージをそろえる今回のテーマは「フォルダ内の複数ファイルを一括取込するときに、“壊れているファイル”だけを自動でスキップして、クエリ全体を止めない実務テンプレ」です。壊れたファイルが1つ混ざ...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:空ファイルを自動除外

ゴールのイメージをそろえる今回のテーマは「フォルダ内の複数ファイルを一括取込するときに、“中身が空のファイル”だけを自動で除外する実務テンプレ」です。現場だと、こんなことがよく起きます。フォルダに「ま...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:更新日時を自動列追加

ゴールのイメージをそろえる今回のテーマは「Power Query でデータを取り込むたびに、“いつ更新したか”を自動で列として残す実務テンプレ」です。つまり、最終テーブルの1列として「更新日時」や「更...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:ファイル名を列として追加

ゴールのイメージを先にそろえる今回のテーマは「Power Query で取り込んだデータに、“元ファイル名”を列として追加する実務テンプレ」です。フォルダ内の複数 CSV / Excel を一括取込す...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - ClearContents

ClearContents は「セルの“中身だけ”を消すための、とても安全な消しゴム」まず一番大事なイメージから。ClearContents は「セル(Range)の“中身だけ”を消すメソッドです。中...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Clear

Clear は「セルの中身や設定を“まっさらにする”ためのメソッド」まずイメージから。Clear は「セル(Range)に対して、“いろいろ付いているもの”をまとめて消す命令」です。Range は「場...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Formula

Formula は「セルに入っている“数式そのもの”を読み書きするプロパティ」まずイメージから。Value が「セルの中身(結果の値)」だとしたら、Formula は「セルに入っている数式そのもの(=...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Value

Value は「セルや範囲の“中身そのもの”を表すプロパティ」まず一番大事なイメージから。Value は「セル(Range)の中身そのもの」 を表すプロパティです。Range は「場所」Value は...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):Excelオブジェクト基礎 - Resize

Resize は「基準のセル範囲の“縦横サイズ”だけを変えるための道具」Resize は、ある Range(セル範囲)を「基準」にして、その位置はそのままに、“高さ(行数)”と“幅(列数)”だけを変更...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 14日目

14日目のゴールとテーマ14日目のテーマは「この2週間で身につけた“武器”を言語化して、自分のものにする」です。今日は新しい大きなアプリは作りません。代わりに、自分がもうできるようになっていることを整...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 13日目

13日目のゴールとテーマ13日目のテーマは「自分で“ゼロから”ミニアプリを設計して作る」です。ここまで、名簿アプリ・タスクアプリ・名言アプリと、僕が用意した“お題”に沿って作ってきました。今日は一歩進...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 12日目

12日目のゴールとテーマ12日目のテーマは「外部データを“取ってきて使う”体験をする」です。ここまでで、ブラウザの中だけで完結するアプリ(名簿・タスク)を作ってきました。今日は一歩外に出て、外部サービ...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 11日目

11日目のゴールとテーマ11日目のテーマは「コードを“人が読める文章”にする」です。ここまでで、あなたはもう「動くアプリ」を作れるようになっています。今日からは一歩進んで、コードをファイルごとに分ける...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル値書き込み

セル値書き込みは「Excelの特定セルにPythonから値を入れ、レポートや帳票を自動生成する」ための最重要スキルExcel業務自動化の中でも セルに値を書き込むことは、ほぼすべての自動化処理の中心に...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル値取得

セル値取得は「Excelの特定セルから値を読み取り、Pythonで自由に扱える形にする」ための基本操作Excel業務自動化の中でも セルの値を取得することは最も重要な基礎です。なぜなら、どんな自動化で...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - シート名変更

シート名変更は「Excelのシートをわかりやすく整理し、業務フローに合わせた構造に整える」ための基本操作Excel業務自動化では、シート名を変更するという作業が非常に重要です。なぜなら、シート名が適切...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - シートコピー

シートコピーは「既存のシートをテンプレートとして複製し、同じ構造のシートを量産する」ための超重要テクニックExcel業務自動化では、同じレイアウトのシートを複数作りたいという場面が非常に多いです。例え...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - シート削除

シート削除は「不要なシートを自動で取り除き、Excelを整理する」ための基本操作Excel業務自動化では、不要なシートを削除してスッキリした構造に整えることがよくあります。例えば次のような場面です。テ...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 10日目

10日目のゴールとテーマ10日目のテーマは「同じことを何度も書かないための“関数化”と、コードの整理(リファクタリング)」です。ここまでで、名簿アプリ・タスクアプリを通して、かなり“動くコード”を書い...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 9日目

9日目のゴールとテーマ9日目のテーマは「タスク管理アプリを“実用レベル”に近づける」です。8日目で「追加・完了切替・削除」ができる ToDo アプリができました。今日はそこに、未完了だけ表示する完了タ...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 8日目

8日目のゴールとテーマ8日目のテーマは「タスク管理アプリ(ToDoリスト)の“ちゃんと動く形”を作る」です。これまでの名簿アプリで学んだことを、別テーマのアプリに“移植”していきます。タスクを追加する...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - シート追加

シート追加は「Excelに新しいシートを自動で作り、業務用の構造を整える」ための基本操作Excel業務自動化では、新しいシートを追加してデータを書き込むという作業が非常に多く発生します。例えば次のよう...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - シート取得

シート取得は「Excelのどのシートを扱うかを正確に指定する」ための最重要ステップExcel業務自動化では、「どのシートを読み込むか」 を正しく指定できるかどうかが、後続の処理(読み込み・書き込み・集...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel新規作成

Excel新規作成は「Pythonで空のExcelを作り、自由にデータを書き込める状態にする」ための最初のステップExcel業務自動化の入口は “Excelファイルを新しく作ること” です。ここを押さ...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel書き込み

Excel書き込みは「PythonでExcelにデータを出力し、レポートや集計結果を自動生成する」ための最重要スキルExcel業務自動化の本番は “書き込み” です。読み込みだけでは自動化は半分。書き...
Python

Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel読み込み

Excel読み込みは「ExcelデータをPythonで扱える形に変換する」ための最初の一歩Excel業務自動化の入口は ExcelファイルをPythonで読み込むこと です。読み込んでしまえば、あとは...
Java

Java Tips | コレクション:集合演算

「集合演算」は“重複なしの集まり”同士を比べる道具Java の Set は、「重複を許さない集まり」です。HashSet や LinkedHashSet、TreeSet などが代表ですね。業務では、「...
Java

Java Tips | コレクション:BiMap実装

BiMap は「キーと値の両方から引ける Map」普通の Map<K, V> は「キー → 値」の片方向だけです。でも業務では、「値からも逆引きしたい」場面がよく出てきます。HTTPステータスコード ...
Java

Java Tips | コレクション:MultiMap実装

MultiMap は「1つのキーに“複数の値”をぶら下げる Map」普通の Map<K, V> は「キー1つにつき値1つ」です。でも業務では、「キー1つに対して値が複数ある」場面がよく出てきます。部署...
Java

Java Tips | コレクション:PriorityQueue利用

PriorityQueue は「優先度の高いものから順に取り出せるキュー」PriorityQueue は、普通のキューと違って「入れた順」ではなく「優先度の高い順(または小さい順)」で取り出せるキュー...
Java

Java Tips | コレクション:Stack代替

「Stack代替」は“古い Stack を捨てて、Deque に乗り換える”という発想Java には java.util.Stack というクラスがありますが、今の実務では 「Stack は使わず、D...
Java

Java Tips | コレクション:Deque操作

Deque は「両端から出し入れできるキュー」Deque(デック)は “Double Ended Queue” の略で、「先頭」と「末尾」の両方から要素を出し入れできるコレクションです。普通のキューは...
Java

Java Tips | コレクション:CopyOnWrite利用

CopyOnWrite は「書き込みのたびに“丸ごとコピー”して安全を買う」仕組みCopyOnWrite 系コレクション(CopyOnWriteArrayList / CopyOnWriteArray...
Java

Java Tips | コレクション:同期ラッパー

同期ラッパーは「既存のコレクションを“とりあえず安全にする”ための包み紙」同期ラッパー(synchronized wrapper)は、Collections.synchronizedList や Co...
Java

Java Tips | コレクション:スレッドセーフMap

「スレッドセーフMap」は“同時に触られても壊れない辞書”業務システムでは、「ユーザーID→セッション情報」「商品コード→商品情報」「設定キー→設定値」のように、Map を共有して使う場面が本当に多い...
Java

Java Tips | コレクション:スレッドセーフList

「スレッドセーフList」は“同時に触られても壊れないリスト”業務システムでは、複数スレッドから同じ List にアクセスする場面が普通に出てきます。ログを貯める、イベントを溜める、キャッシュ的に使う...
C#

C# Tips | コレクション・LINQ:Chunk分割

はじめに:「Chunk 分割」は“データを小分けにして扱う”ための技業務でデータを扱っていると、こういう状況がよく出てきます。一度に 10 万件は処理したくないので、1000 件ずつに分けて順番に処理...
C#

C# Tips | コレクション・LINQ:All判定

はじめに:「All 判定」は“全員ちゃんと条件を満たしているか?”を見るチェックリストAny が「1人でもそういう人がいるか?」を見るメソッドだとしたら、All は「全員ちゃんとルールを守れているか?...
C#

C# Tips | コレクション・LINQ:Any判定

はじめに:「Any 判定」は“あるか・ないか”を一瞬で決めるスイッチ業務コードを書いていると、こんなことを知りたくなる場面が山ほどあります。「このリスト、1件でも入ってる?」「この条件を満たすデータっ...
C#

C# Tips | コレクション・LINQ:FirstOrDefault安全版

はじめに:「FirstOrDefault安全版」は“意図しない 0 や null を潰すための仕掛け”FirstOrDefault は LINQ の超定番メソッドですが、その「便利さ」の裏側で、初心者...
C#

C# Tips | コレクション・LINQ:ランダム抽出

はじめに:「ランダム抽出」は“偏りなく一部だけを見る”ための技ランダム抽出は、「大量のデータの中から、ランダムに一部だけ取り出す」ためのテクニックです。テストデータを適当に 100 件だけ見たいとき、...
C#

C# Tips | コレクション・LINQ:シャッフル

はじめに:「シャッフル」は“順番の意味を一度壊す”テクニックシャッフルは、「コレクションの要素の順番をランダムに並べ替える」ことです。トランプを切るイメージが一番近いです。業務でも、実はちょこちょこ出...
C#

C# Tips | コレクション・LINQ:和集合

はじめに:「和集合」は“全部まとめて、ダブりは1つにする”技業務でデータを扱っていると、こういう場面がよく出てきます。「A システムと B システムのユーザーを“全部”見たい」「複数ファイルに分かれて...
C#

C# Tips | コレクション・LINQ:積集合

はじめに:「積集合」は“共通しているものだけを抜き出すフィルター”業務でデータを扱っていると、こういう問いがよく出てきます。「A システムと B システムの両方に登録されているユーザーは?」「マスタに...
C#

C# Tips | コレクション・LINQ:差集合

はじめに:「差集合」は“どっちにだけあるか?”をはっきりさせる技業務でデータを扱っていると、こういう問いがよく出てきます。「昨日はあったけど、今日はなくなったデータはどれ?」「マスタにはあるけど、イン...
C#

C# Tips | コレクション・LINQ:マージ

はじめに:「マージ」は“バラバラの情報を一つの流れにまとめる技”業務システムでは、こういう状況がよく出てきます。「今年分のデータと昨年分のデータを一緒に扱いたい」「マスタと明細をくっつけて、見やすい形...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - HTML タイトル生成

何をしたいユーティリティか:「HTML タイトル生成」ここでの「HTML タイトル生成」は、<title>〜</title> に入れる文字列を、毎回バラバラに組み立てるのではなく、共通ルールで生成する...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - スラッグ生成

何をしたいユーティリティか:「スラッグ生成」ここでの「スラッグ生成」は、人間が読めて、URL や識別子としても扱いやすい「きれいな文字列」を作ることです。ブログ記事の URL、商品ページのパス、カテゴ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 識別子生成

何をしたいユーティリティか:「識別子生成」ここでの「識別子生成」は、「一意な ID(識別子)を文字列として作る」処理を、毎回バラバラに書かず、共通ユーティリティにまとめることです。注文番号、セッション...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 日付文字列生成

何をしたいユーティリティか:「日付文字列生成」ここで目指すのは、「Date を、業務でよく使うフォーマットの文字列に変換する処理」を関数にまとめることです。画面表示、CSV 出力、ログ、固定長ファイル...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - ログ用文字列生成

何をしたいユーティリティか:「ログ用文字列生成」ここで作りたいのは、「人間が読んで状況をすぐ理解できるログ文字列」を、毎回バラバラに書かず、共通のフォーマットで生成するユーティリティです。業務システム...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - SQL エスケープ

何をしたいユーティリティか:「SQL エスケープ」ここでの「SQL エスケープ」は、文字列を SQL の文字列リテラルとして安全な形に整える処理です。ただし、最初にめちゃくちゃ大事なことを言います。本...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - TSV 生成

何をしたいユーティリティか:「TSV 生成」ここで目指すのは、業務データ(配列や配列の配列)から「TSV 文字列」を安全に生成するユーティリティです。TSV(Tab Separated Values)...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - CSV エスケープ

何をしたいユーティリティか:「CSV エスケープ」ここで作りたいのは、「任意の値を“CSV の 1 セルとして安全な文字列”に変換する関数」です。CSV はただのカンマ区切りではなく、「カンマ」「改行...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 固定長整形

何をしたいユーティリティか:「固定長整形」ここでの「固定長整形」は、文字列を「ちょうど N 文字」にそろえる」ユーティリティです。足りなければ埋める、長ければ切る——これを毎回バラバラに書くのではなく...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 数値ゼロ埋め

何をしたいユーティリティか:「数値ゼロ埋め」ここでの「数値ゼロ埋め」は、「桁数をそろえるために、足りない分を左側に 0 を付ける」ユーティリティです。1 → "01"(2 桁)12 → "012"(3...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 7日目

7日目のゴールとテーマ7日目のテーマは「名簿アプリに“検索・絞り込み・並び替え”を足して、便利アプリに育てる」です。6日目で「登録して一覧表示する」まではできました。今日はそこに、名前で検索する年齢で...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 6日目

6日目のゴールとテーマ6日目のテーマは「ブラウザ上で動く“名簿アプリ”の最初の形を作る」です。4日目で学んだ「オブジェクト+配列」、5日目で学んだ「HTMLとJavaScriptの連携」を組み合わせて...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 5日目

5日目のゴールとテーマ5日目のテーマは「ブラウザの画面(HTML)とJavaScriptをつなげる」です。昨日まではコンソールの中だけで完結していましたが、今日はついに「画面に出す」側に踏み込みます。...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 4日目

4日目のゴールとテーマ4日目のテーマは「オブジェクトで“1人分の情報”をまとめる」です。昨日までで、配列とループを使って「複数の数字」を扱えるようになりました。今日はそこから一歩進めて、1人分(1件分...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 3日目

2日目のゴールとテーマ2日目のテーマは「条件分岐で“判断できるコード”にする」です。今日は、コンピュータに「状況を見て、自分で選ばせる」感覚を身につけます。もし〜なら、こうするそうでなければ、別のこと...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 2日目

2日目のゴールとテーマ2日目のテーマは「条件分岐で“状況に応じて動きを変える”」です。昨日は「入力して、計算して、表示する」まで行きましたが、今日はそこに「もし〜なら、こうする」という“分かれ道”を加...
JavaScript

JavaScript | 2週間で身につく、アプリを作りながら学ぶJavaScriptの基本 - 1日目

1日目のゴールとテーマ1日目のテーマは「JavaScriptで“コンピュータに命令する”感覚をつかむ」です。いきなり難しいことはやりません。今日は、JavaScriptってそもそも何者なのか最小限の環...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 作業フォルダ初期化

作業フォルダ初期化は「毎回の処理をクリーンな状態から始める」ための重要な自動化業務自動化では、処理の途中で生成される中間ファイル・ログ・一時ファイルがフォルダに残り続けると、次のような問題が起きます。...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 一時ファイル削除

一時ファイル削除は「作業後に残る不要ファイルを自動で片付け、環境を常にクリーンに保つ」ための基本自動化業務で Python を使うと、処理の途中で一時ファイル(temp ファイル)が大量に生成されるこ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル権限変更

ファイル権限変更は「誰がファイルを読める・書ける・実行できるか」を制御するための重要な操作業務自動化では、ファイルの権限(パーミッション)を正しく設定することが欠かせません。誤った権限は次のような問題...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイルダウンロード整理

ファイルダウンロード整理は「ダウンロードフォルダを自動で整頓し、必要なファイルだけを安全に扱える状態にする」ための前処理業務では、ブラウザや外部システムからファイルをダウンロードした後に、次のような作...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイルアップロード準備

ファイルアップロード準備は「アップロード前にファイルを安全・確実に扱える状態へ整える」ための重要な前処理業務システムにファイルをアップロードする前には、単にファイルを置くだけでは不十分です。多くの現場...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル変更監視

ファイル変更監視は「特定ファイルの更新をリアルタイムで検知し、自動処理を実行する」ための重要な仕組みフォルダ全体を監視するディレクトリ監視に対して、ファイル変更監視は“特定のファイルだけ”に注目して変...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ディレクトリ監視

ディレクトリ監視は「フォルダ内の変化を自動で検知し、即座に処理を実行する」ための強力な仕組み業務では、次のような「フォルダの変化をトリガーにした自動処理」が非常に多くあります。新しいファイルが届いたら...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - フォルダ同期

フォルダ同期は「2つのフォルダを同じ状態に保つ」ための業務自動化の基礎バックアップ先フォルダと作業フォルダを常に同じ状態にしたい、サーバーとローカルのフォルダを同期したい、更新されたファイルだけコピー...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ハッシュ比較

ハッシュ比較は「ファイルの中身が本当に同じか」を正確に判断するための最重要テクニックファイル名が同じでも中身が違うことはあります。サイズが同じでも中身が違うこともあります。しかし ハッシュ(SHA-2...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 重複ファイル検出

重複ファイル検出は「無駄な容量を削減し、フォルダをクリーンに保つ」ための重要な自動化業務フォルダには、コピー・バックアップ・手動作業の繰り返しによって 同じファイルが複数存在することがよくあります。重...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 古いファイル削除

古いファイル削除は「容量圧迫を防ぎ、フォルダを常にクリーンに保つ」ための基本自動化業務システムは毎日ファイルを生成し続けるため、放置するとフォルダが肥大化し、検索性が落ち、最悪ディスク容量を圧迫します...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ログファイル整理

ログファイル整理は「溜まり続けるログを自動で管理し、容量圧迫や検索性の低下を防ぐ」ための基礎スキル業務システムは毎日ログを出力し続けるため、放置するとフォルダが肥大化し、検索性が悪くなり、最悪ディスク...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 大容量ファイルコピー

大容量ファイルコピーは「安全に・確実に・途中で落ちにくく」行うことが最重要数 GB〜数十 GB のファイルを扱うとき、「普通にコピーするだけ」では、途中失敗・メモリ不足・時間が読めない、といった問題が...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル結合

ファイル結合は「分割されたデータを元の形に戻す」ための基本操作業務自動化では、巨大ファイルを分割して扱った後、最終的に元のファイルへ戻す処理(結合)が必要になる場面が多くあります。特に次のようなケース...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル分割

ファイル分割は「大きすぎるファイルを扱いやすいサイズに分ける」ための重要な自動化テクニック業務では、巨大なログファイル・CSV・テキストデータを扱うことがよくあります。しかし、ファイルが大きすぎると次...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - TAR圧縮

TAR圧縮は「大量ファイルを効率よくまとめる」ための業務向け技術ZIP と並んでよく使われる圧縮形式が TAR(タール) です。特に Linux・サーバー環境では TAR が標準的で、バックアップ・ロ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ZIP解凍

ZIP解凍は「受け取ったデータを正しく展開し、処理可能な状態に戻す」ための基本操作業務自動化では、メール添付・外部システム出力・バックアップファイルなど、ZIP形式で受け取るデータは非常に多いです。P...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ZIP圧縮

ZIP圧縮は「ファイルをまとめて軽くし、安全に保管・転送する」ための基本技術業務自動化では、ZIP圧縮は非常に重要な役割を持ちます。レポートをまとめてメール送信したり、バックアップを軽量化したり、複数...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - バックアップ世代管理

バックアップ世代管理は「古いバックアップを自動で整理し、必要な世代だけ残す」ための仕組みバックアップは作るだけでは不十分で、古いバックアップをどう扱うかが非常に重要です。バックアップが増え続けると、デ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - バックアップ作成

バックアップ作成は「データを守る」業務自動化の中心機能業務自動化の中でも、バックアップ作成は特に重要です。ファイル破損・誤削除・上書きミス・システム障害など、どんな現場でも起こり得るトラブルからデータ...
Python

Python Excel操作 逆引き集 | 書き込みでシートにテーブル形式を作る

何をしたいテクニックなのかゴールはこうです。「pandas の DataFrame を Excel に書き出すとき、ただの“罫線付きの表”ではなく、Excel の“テーブル機能(フィルタ付きのあれ)”...
Python

Python Excel操作 逆引き集 | 書き込み時に列書式を適用する

何をしたいテクニックなのかゴールはこうです。「pandas の DataFrame を Excel に書き出すとき、特定の列に“見た目の書式”をきちんと適用したい」たとえば、金額は「カンマ区切り・右寄...
Python

Python Excel操作 逆引き集 | DataFrameの列幅を自動調整して書き出す(xlsxwriter + 計算)

何をやりたいテクニックなのかゴールはこうです。「pandas の DataFrame を Excel に書き出すとき、列幅を“中身にちょうどいい幅”に自動調整したい」xlsxwriter をエンジンに...
Python

Python Excel操作 逆引き集 | 書き込み時のエンジン指定(xlsxwriter/openpyxl)

「エンジンを指定する」ってそもそも何をしているのかpandas が Excel に書き出すとき、実際に .xlsx ファイルを作っているのは「pandasそのもの」ではなく、openpyxl や Xl...
Python

Python Excel操作 逆引き集 | 書き込み開始セルを指定

何をするオプションなのかを一言でいうとstartrow= と startcol= は、「DataFrame を Excel に書き出すとき、どのセルから書き始めるか」を指定するためのオプションです。行...
Python

Python Excel操作 逆引き集 | 書き込み時にヘッダーを出力しない

まず「ヘッダーを出さない」とは何を意味するか通常 DataFrame.to_excel() を呼ぶと、1行目に「列名(カラム名)」が書き出されます。これが ヘッダー行 です。header=False ...
Python

Python Excel操作 逆引き集 | 書き込み時にインデックスを出力しない

そもそも「インデックス」って何者かpandas の DataFrame には、左端に「0, 1, 2, …」と並ぶ“行番号”のようなものがあります。これが インデックス(index) です。Pytho...
Python

Python Excel操作 逆引き集 | 既存ファイルにシート追加で書き出す

何をしたい機能なのかをまず言葉でつかむやりたいことはこうです。「すでに存在する Excel ファイル(既存ブック)に、新しいシートを“追加”して書き込みたい。既存のシートはそのまま残したい。」そのため...
Python

Python Excel操作 逆引き集 | 複数シートを書き出す

まずゴールのイメージをはっきりさせるやりたいことはシンプルです。「複数の DataFrame を、1つの Excel ファイルの別々のシートに書き出したい」。pandas では、そのためにpandas...
Python

Python Excel操作 逆引き集 | ExcelへDataFrameを書き出す

ゴールのイメージを先に共有するここまで「Excel → DataFrame」の話をしてきましたが、現場ではその逆、「DataFrame → Excel」に書き出したい場面もめちゃくちゃ多いです。Dat...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - フォルダサイズ計算

フォルダサイズ計算は「どこがどれだけ容量を食っているか」を見抜く技術業務自動化をしていると、「このフォルダ、どれくらい容量を使っているんだろう?」「バックアップ前にフォルダサイズを知りたい」「容量が大...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 空フォルダ削除

空フォルダ削除は「不要な作業ディレクトリを自動で掃除する」ための基本操作業務自動化では、処理の途中で一時フォルダを作ったり、日付ごとにフォルダを生成したりすることがよくあります。しかし、処理が終わった...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ディスク容量取得

ディスク容量取得は「容量不足による業務停止」を防ぐための重要スキル業務自動化では、ディスク容量の監視が非常に重要です。「バックアップ前に空き容量を確認したい」「ログが増えすぎてサーバーが止まるのを防ぎ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル数カウント

ファイル数カウントは「フォルダの状態を把握する」ための基本操作業務自動化では、フォルダ内のファイル数を数える場面がとても多くあります。「未処理ファイルが何件あるか知りたい」「バックアップ対象のファイル...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 特定拡張子検索

特定拡張子検索は「必要なファイルだけを正確に抽出する」ための基本スキル業務自動化では、フォルダの中から 特定の拡張子だけを探す処理が非常に多く登場します。「CSV だけ処理したい」「画像ファイルだけ集...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 再帰フォルダ検索

再帰フォルダ検索は「階層構造を丸ごと探索する」ための最重要テクニック業務自動化では、フォルダが1階層とは限りません。実際には、次のような階層構造が普通に存在します。project/ ├── data/...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル検索

ファイル検索は「必要なファイルだけを正確に見つける」ための自動化の基礎業務自動化では、フォルダの中から「条件に合うファイルだけ」を探し出す処理が非常に多く登場します。「特定の拡張子だけ探したい」「名前...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル名一括変更

ファイル名一括変更は「大量ファイルを一瞬で整理する」ための最重要スキル業務自動化では、ファイル名を一括で整える場面が非常に多くあります。「日付を付けたい」「連番にしたい」「特定の文字列を置換したい」「...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - 拡張子変更

拡張子変更は「ファイル名操作」の基本であり業務自動化の入口拡張子変更は、業務自動化の中で非常に頻繁に登場します。「.txt を .csv に変換したい」「画像ファイルの拡張子を一括変更したい」「処理済...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル作成日時取得

「ファイル作成日時取得」は“いつ生まれたか”を知るための情報業務自動化をしていると、「このファイルはいつ作られたものか?」「古いファイルだけアーカイブしたい」「一定期間より前に作られたファイルを削除し...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル更新日時取得

「ファイル更新日時取得」は“最新データを見抜く”ための武器業務自動化をしていると、「どのファイルが一番新しいか知りたい」「最近更新されたファイルだけ処理したい」「古いファイルをアーカイブしたい」といっ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイルサイズ取得

「ファイルサイズ取得」は“重さを意識した”業務自動化の入口業務自動化をしていると、「このファイル、どれくらいの容量があるんだろう?」「大きすぎるファイルはスキップしたい」「バックアップ前にサイズをログ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル存在確認

「ファイル存在確認」は業務自動化の“安全装置”業務自動化でファイルを扱うとき、最初に必ずやってほしいのが「そのファイル、本当にある?」という確認です。存在しないファイルを開こうとすると FileNot...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - フォルダ作成

Pythonで「フォルダ作成」を確実にマスターするフォルダ作成は、業務自動化の中でも最も基本でありながら、実務で非常に重要な操作です。「日付ごとのフォルダを自動生成する」「処理前に作業フォルダを作る」...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - フォルダ削除

Pythonで「フォルダ削除」を安全に扱うための完全ガイドフォルダ削除は、業務自動化の中でも特に慎重さが求められる操作です。「古いバックアップフォルダを定期的に削除する」「処理後の一時フォルダを掃除す...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル削除

Pythonで「ファイル削除」を安全に扱うための基礎と実務テンプレートファイル削除は業務自動化の中でも特に慎重さが求められる操作です。「不要ファイルの定期削除」「処理後の一時ファイルの掃除」「エラーフ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル移動

Pythonで「ファイル移動」を完全に理解するファイル移動は、業務自動化の中でも特に使用頻度が高い操作です。「処理済みフォルダへ移動する」「エラーになったファイルだけ別フォルダに隔離する」「日付ごとに...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイルコピー

Pythonで「ファイルコピー」を業務レベルで使いこなす業務自動化でファイルコピーは、ほぼ必ずと言っていいほど登場します。「毎日生成されるレポートをバックアップフォルダにコピーする」「特定の拡張子のフ...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - フォルダ一覧取得

Pythonで「フォルダ一覧取得」をマスターしようファイル一覧が取れるようになったら、次の一歩は「フォルダ(ディレクトリ)だけを一覧で取る」ことです。業務自動化では「このフォルダの直下にあるサブフォル...
Python

Python 業務自動化 | ファイル・フォルダ自動化:基本操作 - ファイル一覧取得

Pythonで「ファイル一覧取得」をマスターしようPythonで業務自動化をするとき、最初に覚えておくと圧倒的に便利なのが「フォルダの中身を一覧で取る」ことです。例えば「このフォルダにあるCSVを全部...
Python

Python | テスト・設計・品質:isort

isortって何?まずは役割を一言でつかむisort は、Python の import 文を自動で並び替えてくれるツールです。「import の順番なんてどうでもよくない?」と思うかもしれませんが、...
Python

Python | テスト・設計・品質:ruff

ruffって何?一言でいうと「超高速オールインワンLint&フォーマッタ」ruff は、Python のコードをチェックするための「超高速リンター兼フォーマッタ」です。flake8 や isort、部...
Python

Python | テスト・設計・品質:black

blackって何?一言でいうと「コード自動整形マシーン」black は、Python のコードを「自動できれいな形に整えてくれるフォーマッタ」です。flake8 が「ここおかしいよ」と指摘する先生だと...
Python

Python | テスト・設計・品質:flake8

flake8 って何?一言でいうと「コードの赤ペン先生」flake8 は、Python のコードを自動でチェックしてくれる「リンター(Linter)」です。「文法的には動くけど、読みづらい・バグの元に...
Python

Python | テスト・設計・品質:コードレビュー

コードレビューって何?まずは目的からはっきりさせるコードレビューは、「他の人(または未来の自分)が、あなたの書いたコードを読んで、気づいたことをフィードバックするプロセス」です。バグを見つけるため読み...
Python

Python自動化ライブラリ100選

Pythonの自動化で実務に使われるライブラリを、用途別に整理した一覧表としてまとめます。ファイル・システム操作Noライブラリ主な用途1osファイル・フォルダ操作2pathlibパス操作3shutil...
Java

Java Tips | コレクション:固定長キュー

固定長キューは「常に“最後のN件だけ”を覚えておく箱」固定長キューは、「新しいものをどんどん入れるけれど、サイズは最大N件まで」「あふれたら“一番古いもの”から自動的に捨てる」というルールを持ったキュ...
Java

Java Tips | コレクション:LRUキャッシュ

LRUキャッシュは「よく使うものだけを手元に置き、古いものから捨てる」箱業務システムでは、「毎回DBに取りに行くのは重いけど、全部メモリに載せるのもキツい」みたいな場面がよく出てきます。そこで出てくる...
Java

Java Tips | コレクション:Enumコード検索

Enumコード検索は「外から来たコード値を“正しいEnum”に変換する」技業務システムでは、DBやAPI、設定ファイルなどから「コード値」が文字列や数値で飛んできます。"N" なら新規、"P" なら処...
Java

Java Tips | コレクション:Enum名前一覧

Enum名前一覧は「コード上の識別子を“文字列の一覧”として取り出す」技Enum は「定数の集合」ですが、その一つ一つには「名前(識別子)」があります。Status.NEW の NEW の部分です。業...
Java

Java Tips | コレクション:Enum一覧取得

Enum一覧取得は「コードに埋めた“選択肢”を、動的に取り出す」技Enum は「定数の集合」を型として表現する仕組みです。ステータス、区分コード、画面のプルダウン候補など、業務システムで大活躍します。...
Java

Java Tips | コレクション:Stream→Optional

Stream→Optional は「“0件かもしれない結果”を安全に受け取る」技Stream は「0件以上の要素の流れ」です。でも業務では、「この条件に合うものを“1件だけ”取りたい」「見つからないか...
Java

Java Tips | コレクション:Optional→Stream

Optional→Stream は「あるかもしれない1件」を“流れ”に乗せる技Optional は「値があるかもしれない/ないかもしれない」を表す箱です。Stream は「0件以上の要素の流れ」です。...
Java

Java Tips | コレクション:nullセーフStream

「nullセーフStream」は「nullかもしれないコレクションを、そのままStreamで扱う」技業務コードでは、本当は良くないけれど、現実として「null が返ってくるコレクション」がたくさんあり...
Java

Java Tips | コレクション:distinctByKey

distinctByKey は「“このキーで一意”をコードに刻む」技Stream の distinct() は、「要素そのものが同じかどうか」で重複を消します。でも業務では、「ユーザーIDが同じなら重...
Java

Java Tips | コレクション:join処理

join処理は「バラバラの要素を“1本の文字列”にまとめる」技業務システムでは、「IDをカンマ区切りでログに出したい」「SQLの IN ('A','B','C') を組み立てたい」「画面に 山田 / ...
Python

Python | 1 日 90 分 × 7 日アプリ学習:繰り返し入力メモアプリ(初級編)

1日目のゴールと作るもののイメージ1日目のテーマは「Python の while 文で“終わりのある繰り返し”をちゃんとコントロールできるようになること」です。題材は「繰り返し入力メモアプリ」。何度も...
JavaScript

JavaScript | 1 日 120 分 × 7 日アプリ学習:SPA風タブ切り替えアプリ

1日目のゴールと今日やること1日目のテーマは「URL のハッシュ(#)を使って、SPA っぽいタブ切り替えを実現する」ことです。“SPA 風”というのは、ページ全体をリロードせずに、タブを切り替えるだ...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 14日目

14日目のゴールとテーマ14日目のテーマは「“作れる人”としての総仕上げ:パターンを言語化して、自分のアプリに応用する」です。ここまでで、名簿アプリとタスク管理アプリを作り、保存・読み込み・絞り込み・...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 13日目

13日目のゴールとテーマ13日目のテーマは「アプリ全体を“ひとまとまり”として扱う:Appクラス化と設計の整理」です。ここまでで、名簿アプリとタスク管理アプリをそれぞれ育ててきましたが、コードはまだ「...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 12日目

2週間で身につく、アプリを作りながら学ぶRubyの基本 12日目12日目のゴールとテーマ12日目のテーマは「タスク管理アプリを“使いやすくする”:絞り込み・並べ替え・完了タスクの扱い」です。11日目ま...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 11日目

11日目のゴールとテーマ11日目のテーマは「タスク管理アプリに“記憶”と“締め切り”を与える」です。10日目で、Task クラスとメニュー付きのタスク管理アプリの骨格ができました。今日はそこから一歩進...
C#

C# Tips | コレクション・LINQ:安全取得

はじめに:「安全取得」は“落ちないコード”を書くための必須スキル業務システムで一番イヤなのは、「たまたまデータがなかっただけで落ちる」パターンです。IndexOutOfRangeException、I...
C#

C# Tips | コレクション・LINQ:キー存在判定

はじめに:「キー存在判定」は“ある前提で動くか・ない前提で動くか”を決めるスイッチ業務システムで Dictionary を使い始めると、必ず出てくる問いがあります。「このキー、本当にある前提で動いてい...
C#

C# Tips | コレクション・LINQ:Dictionary→List

はじめに:Dictionary→List は“いったん平らに戻す”操作Dictionary は「キーで一発検索できる」便利な入れ物ですが、ときどき「順番に並べて処理したい」「LINQ でゴリゴリ絞り込...
C#

C# Tips | コレクション・LINQ:List→Dictionary

はじめに:「List→Dictionary」は“ただの列に索引をつける作業”業務コードを書いていると、最初はだいたい List<T> から始まります。社員一覧、商品一覧、売上明細一覧……どれもまずは「...
C#

C# Tips | コレクション・LINQ:辞書変換

はじめに:「辞書変換」は“検索しやすい形に並び替える技”業務でよくあるのが、社員番号から社員情報をすぐ取りたい商品コードから商品情報を一発で引きたい部署コードから部署名をすぐ知りたいこういう「キーから...
C#

C# Tips | コレクション・LINQ:最小値取得

はじめに:「最小値取得」は“いちばん小さい値を素早く見つける技”業務システムでは、最大値と同じくらい「最小値」もよく使います。最も安い商品価格最も古い日付(最初の処理日)最も少ない数量最も短い対応時間...
C#

C# Tips | コレクション・LINQ:最大値取得

はじめに:「最大値取得」は“いちばん大きいものを一瞬で見つける技”業務システムでは、よくこういう問いが出てきます。「今日の売上の最大金額は?」「この顧客の最新購入日は?」「この一覧の中で、いちばん大き...
C#

C# Tips | コレクション・LINQ:平均算出

はじめに:「平均算出」は“感覚をつかみやすい数字に整える技”合計は「全体の大きさ」を教えてくれますが、平均は「1件あたりどれくらいか?」という“感覚”を教えてくれます。平均単価平均購入金額平均対応時間...
C#

C# Tips | コレクション・LINQ:合計算出

はじめに:「合計算出」は“バラバラなお金や数を一つの数字にまとめる技”業務システムで「合計」は、ほぼ必ず出てきます。売上合計数量合計工数合計C# / LINQ では Sum を使うことで、for 文を...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 10日目

10日目のゴールとテーマ10日目のテーマは「別のアプリに“型”を移植する:タスク管理ミニアプリを作り始める」です。ここまでで、名簿アプリをかなり育ててきました。今日はあえてテーマを変えて、「人」ではな...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 9日目

9日目のゴールとテーマ9日目のテーマは「名簿アプリを“きれいに整える”:リファクタリングとエラー処理の強化」です。ここまでで、機能としてはかなり充実した名簿アプリができています。今日はそこから一歩進め...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 8日目

8日目のゴールとテーマ8日目のテーマは「名簿アプリに“記憶”を持たせる:ファイルへの保存と読み込み」です。ここまでの名簿アプリは、起動している間はちゃんと動きますが、終了するとデータが消えてしまいます...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 7日目

7日目のゴールとテーマ7日目のテーマは「名簿アプリを“ちょっと賢く”する:検索と並べ替え、そして入力ミスへの対応」です。6日目までで、Person クラス+配列+メニューで、かなりアプリらしい形になり...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 6日目

6日目のゴールとテーマ6日目のテーマは「Personクラスを“アプリっぽく”動かす:メニューで操作できる名簿アプリ」です。5日目で「Person という型」を作り、person.introductio...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 5日目

5日目のゴールとテーマ5日目のテーマは「ハッシュから一歩進んで、“自分の型(クラス)”を作る」です。4日目までは、1人分の情報をハッシュで表現していました。今日はそこから一歩進めて、「人」を表す Pe...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 4日目

4日目のゴールとテーマ4日目のテーマは「1人分の情報を“ひとまとまりのデータ”として扱う」です。3日目までは「自己紹介文=ただの長い文字列」として扱っていました。今日はそこから一歩進めて、1人分の情報...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:フォルダ内Excel一括取込

ゴールのイメージをそろえる今回のテーマは「フォルダの中にある複数の Excel ファイルを、Power Query で“まとめて一括取込して、1つの表に縦に並べる”実務テンプレ」を、初心者でも腹落ちす...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:フォルダ内Excel一括取込

ゴールのイメージを先にそろえる今回のテーマは「フォルダの中にある複数の Excel ブックを、Power Query で一括取込して、毎回[更新]ボタンだけで最新状態に保てる“実務テンプレ”を作ること...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:フォルダ内CSV一括取込

ゴールのイメージを先にそろえる今回のテーマは「フォルダに入っている複数の CSV を、Power Query で一括取込して、毎回[更新]ボタンだけで最新状態に保てる“実務テンプレ”を作ること」です。...
Power Query M Formula Language

Power Query 実務テンプレ | データ取込・更新系:Excel特定セル範囲取込

ゴールのイメージを先にそろえる今回のテーマは「Excelブックの中から、シート全体ではなく“特定のセル範囲だけ”を Power Query で安定して取り込む実務テンプレ」です。たとえば「B3:F20...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 3日目

3日目のゴールとテーマ3日目のテーマは「“たまるデータ”を扱う:配列でまとめて持つ」です。1〜2日目で、1人分・複数人分の自己紹介を作れるようになりました。今日はそこから一歩進めて、複数人分の自己紹介...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 2日目

2日目のゴールとテーマ2日目のテーマは「同じ処理を“部品(メソッド)”にして、何度でも使い回せるようにする」です。1日目で作った自己紹介アプリは、1人分の自己紹介を作るものでした。今日はそこから一歩進...
Ruby

Ruby | 2週間で身につく、アプリを作りながら学ぶRubyの基本 - 1日目

1日目のゴールとテーマ1日目のテーマは「Rubyで“しゃべるアプリ”を作る」です。いきなり難しいことはやりません。まずは、画面に文字を出すキーボードから入力を受け取るその入力を使って、ちょっと“会話っ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 桁数制限

何をしたいユーティリティか:「桁数制限」ここでの「桁数制限」は、数値や数値文字列の「桁数」をルール通りに制限するユーティリティです。例えば、こんな要件がよくあります。金額は「整数 9 桁まで、小数 2...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 小数丸め

何を作るのか:「小数丸め」ユーティリティここで作りたいのは、「小数点以下を指定桁数で丸める」処理を、毎回バラバラに書かず、分かりやすい関数にまとめたものです。「四捨五入」「切り上げ」「切り捨て」を、業...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 通貨変換表示

何をしたいユーティリティか:「通貨変換表示」ここで目指すのは、単に「金額にカンマを付ける」だけではなく、「通貨単位や通貨コードを付けて、人間が見て意味が分かる形で表示する」ユーティリティです。たとえば...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - カンマ付与

何をしたいユーティリティか:「カンマ付与」ここで作りたいのは、数値や数値っぽい文字列に「3 桁ごとのカンマ」を付けるユーティリティです。1000 → 1,0001234567 → 1,234,567-...
JavaScript

JavaScript Tips | 文字列ユーティリティ:業務用 - 金額フォーマット

何を作るのか:「業務で使える金額フォーマット」ここで目指すのは、「数値を“人間が業務で読みやすい金額表示”に変換するユーティリティ」です。例えば、こんな変換を安定して行いたいイメージです。format...
Java

Java Tips | コレクション:zip処理

zip処理は「2つの列を“ペアの列”にする」技zip(ジップ)処理は、「2つのコレクションを、同じ位置同士でペアにしていく」操作です。名前のリスト点数のリストこの2つを「名前+点数」のペアにしたい——...
Java

Java Tips | コレクション:インデックス付きループ

インデックス付きループは「位置情報をちゃんと意識して回す」技for (T x : list) の拡張 for 文はシンプルで読みやすいですが、「何番目か(インデックス)」が欲しくなった瞬間に、ちょっと...
Java

Java Tips | コレクション:ページング

ページングは「長い一覧を“ちょうどいい一枚”に切り分ける」技業務システムでは、「検索結果が1万件あります」とか普通に起こります。でも画面に1万件は出せませんよね。だから「1ページ20件」「3ページ目を...
Java

Java Tips | コレクション:Stream例外ラップ

「Stream例外ラップ」は「チェック例外を“Streamで扱える形”に着替えさせる」技Stream の map や forEach に渡すラムダは、基本的に「チェック例外を投げられない」制約がありま...
Java

Java Tips | コレクション:並列Stream制御

並列Stream制御は「速くしたいけど、暴れさせたくない」技Stream にはstream()(普通の順次処理)とparallelStream()(並列処理)の2つの世界があります。「CPUコアを全部...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - ファイル名取得

何をしたいユーティリティか:「ファイル名取得」ここで作りたいのは、URL やパス文字列から「ファイル名だけ」を取り出す小さな関数です。例えば、こういうイメージです。 → "logo.png"/down...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - 拡張子取得

何をしたいユーティリティか:「拡張子取得」ここで作りたいのは、URL やパス文字列から「拡張子(.png や .js など)」だけを取り出す小さな関数です。 → "png"/scripts/app.m...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - パス結合

「パス結合」で何を楽にしたいのか「パス結合」は、URL のパスを安全にくっつけるユーティリティです。"/api" と "users" を結合して "/api/users" にしたい"/api/" と ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - ハッシュ削除

「ハッシュ削除」で本当にやりたいことここでの「ハッシュ削除」は、URL の # 以降(フラグメント)をきれいに取り除いた新しい URL を作るユーティリティのことです。例えば、こんなことをしたい場面が...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - ハッシュ取得

「ハッシュ取得」で何を取りたいのかここでの「ハッシュ取得」は、URL の # 以降の部分(フラグメント)を、きれいに取り出して使いやすくするユーティリティのことです。例えば、こんな URL を考えます...
C#

日本の企業・官公庁が公開している無料API

日本では政府・自治体・企業が公開している無料APIが多数あります。実務や個人開発でよく使われるものを、カテゴリ別に整理して紹介します。官公庁・政府系API統計・経済データ1. 総務省統計局 – e-S...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - クエリ削除

「クエリ削除」で本当にやりたいこと「クエリ削除」は、URL の ? 以降に付いているパラメータのうち、いらないものだけを取り除いて、新しい URL を作り直す処理です。例えば、こんなことをやりたい場面...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - クエリ取得

「クエリ取得」で何をしたいのかをはっきりさせるここでの「クエリ取得」は、URL の ? 以降(クエリ文字列)から、パラメータを取り出して使いやすい形にすることです。/search?q=JavaScri...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - クエリ生成

まず「クエリ生成」で何を自動化したいのかここで言う「クエリ生成」は、オブジェクト(連想配列)から ?key=value&key2=value2 みたいなクエリ文字列を、安全に・楽に作るユーティリティの...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - URL エンコード

まず「URL エンコード」で何を守りたいのかURL エンコードは、「URL の中に入れてはいけない(入れると誤解される)文字を、安全な形に変換すること」です。日本語やスペース、? や & などの記号を...
C#

C# Tips | コレクション・LINQ:件数カウント

はじめに:「件数カウント」は“システムの現状を数字でつかむ道具”業務システムでは、常に「いま何件あるか?」が問われます。未処理の件数エラー件数今日登録された件数これをコードで表現するのが「件数カウント...
C#

C# Tips | コレクション・LINQ:グルーピング

はじめに:「グルーピング」は“バラバラの明細を、かたまりにまとめる技”業務システムでは、こんなことをよくやります。「部署ごとに社員をまとめたい」「顧客ごとに売上を集計したい」「日付ごとにアクセス数を集...
C#

C# Tips | コレクション・LINQ:フィルタリング

はじめに:「フィルタリング」は“欲しいデータだけをすくい取る作業”業務システムの一覧画面って、だいたいこういう条件がありますよね。「部署=営業だけ」「状態=未処理だけ」「金額が 10,000 円以上だ...
C#

C# Tips | コレクション・LINQ:ページング

はじめに:「ページング」は“データを一口サイズに切り分ける技”業務システムの一覧画面で、「1ページ 20件」「次へ」「前へ」といった UI をよく見ますよね。これが「ページング」です。データは何千件・...
C#

C# Tips | コレクション・LINQ:カスタムソート

はじめに:「カスタムソート」は“業務ルールをそのまま並び順にする技”「優先度は High → Middle → Low の順」「ステータスは 未処理 → 処理中 → 完了 の順」「部署コードは A, ...
C#

C# Tips | コレクション・LINQ:逆順ソート

はじめに:「逆順ソート」は“優先度の高いものを先頭に持ってくる技”業務システムでは「新しい順」「金額の大きい順」「重要度の高い順」のように、“大きいほう・新しいほうを先頭にしたい”場面がとても多いです...
C#

C# Tips | コレクション・LINQ:ソート

はじめに:「ソート」は“人間が読みやすい順番に並べ替える作業”業務システムでは、一覧画面・帳票・CSV 出力など、「同じデータでも、どの順番で並んでいるか」がものすごく大事になります。社員一覧なら「社...
C#

C# Tips | コレクション・LINQ:重複除去

はじめに:「重複除去」は“データをきれいに整えるフィルター”業務システムでは、同じ ID のレコードが二重に入っていたり、同じメールアドレスが何度も出てきたりと、「重複データ」がよく紛れ込みます。この...
C#

C# Tips | コレクション・LINQ:空List生成

はじめに:「空List生成」は“安全な初期値”を手に入れるテクニック業務コードでよくあるパターンとして、List<string> names = null;// ここで落ちるint count = n...
C#

C# Tips | コレクション・LINQ:null安全List

はじめに:「null安全List」は“落とし穴を先に埋めておく道具”業務コードでありがちな例として、List<string> names = null;// ここで落ちるforeach (var n ...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - SPA と MPA

SPA と MPA を一言でいうとSPA は Single Page Application(シングルページアプリケーション) の略で、「最初に 1 つのページを読み込んだあと、画面の中身だけを Ja...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - フロントエンド / バックエンド

フロントエンド / バックエンドを一言でいうとフロントエンドは「ユーザーの目に見える“表側”」。バックエンドは「見えないところで動いている“裏側の頭脳と心臓”」。あなたが Java で書くのは、基本的...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - 3 層アーキテクチャ

3 層アーキテクチャを一言でいうと3 層アーキテクチャは、「Web アプリを 3 つの役割にきれいに分けて作ろう」という設計の型 です。プレゼンテーション層(画面・API の入り口)アプリケーション層...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - 動的コンテンツ

動的コンテンツを一言でいうと動的コンテンツは、「リクエストのたびにサーバー側で中身を“その場で作って返すコンテンツ」 です。誰がアクセスしたかいつアクセスしたかどんな条件でアクセスしたかによって、返す...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - 静的コンテンツ

静的コンテンツを一言でいうと静的コンテンツは、「サーバー側で中身が変わらないファイルを、そのままブラウザに配るもの」です。HTML、CSS、画像(PNG/JPEG)、JavaScript ファイル、P...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - アプリケーションサーバー

アプリケーションサーバーを一言でいうとアプリケーションサーバーは「ビジネスロジックを本気で動かすための“Java 実行プラットフォーム”」だと思ってください。Web サーバーが「HTTP を受け取って...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - Web サーバーとは

Web サーバーを一言でいうとWeb サーバーは、「ブラウザ(クライアント)からの HTTP リクエストを受け取り、HTTP レスポンスを返す“受付兼配達係”」です。ブラウザが「このページください」「...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - ブラウザの役割

ブラウザの役割を一言でいうとブラウザは、「人間と Web の世界をつなぐ“通訳兼プレイヤー”」です。人間が URL を入力したりボタンを押したりすると、ブラウザがサーバーに HTTP リクエストを送り...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - クライアントとサーバー

クライアントとサーバーを一言でいうとクライアントとサーバーは、「お願いする側」と「応える側」です。ブラウザやスマホアプリが クライアント、そのリクエストを受け取って処理するのが サーバー。Web の世...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - Web アプリの仕組み

Web 全体像をざっくりつかむまずは「ブラウザで URL を開くと、裏で何が起きているのか」をイメージでつかみましょう。あなたがブラウザに と入力して Enter を押すと、ブラウザは「サーバー」に対...
JavaScript

JavaScript | 非同期処理:実務での非同期制御 - 排他制御の考え方

排他制御を一言でいうと排他制御(はいたせいぎょ)は、「同時に走ると困る処理を、“必ず1つずつしか動かさないようにする考え方” です。非同期処理が増えてくると、「同じデータを同時に書き換える」「同じ処理...
JavaScript

JavaScript | 非同期処理:実務での非同期制御 - 競合状態(Race Condition)

競合状態(Race Condition)を一言でいうと競合状態(Race Condition)は、「どっちの非同期処理が先に終わるかによって、結果が変わってしまう危険な状態」 です。コード上は「こう動...
JavaScript

JavaScript | 非同期処理:実務での非同期制御 - 非同期状態管理

「非同期状態管理」を一言でいうと非同期状態管理は、「今この非同期処理が、どの状態にいるのかをコードと UI で一貫して扱うこと」 です。例えば、API 呼び出しひとつ取っても、状態はざっくりこう変わり...
JavaScript

JavaScript | 非同期処理:実務での非同期制御 - WebSocket との比較

WebSocket とポーリングの違いを一言でまとめるとポーリングは 「クライアントが定期的にサーバーへ様子を見に行く」 方式。WebSocket は 「サーバーとクライアントが常時つながり、サーバー...
スポンサーリンク