プログラミングTips

スポンサーリンク
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業務自動化では、複数セルにまとめてデータを書き込む(範囲書き込み)ことが非常に多く...
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 を一括取込す...
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業務自動化では、不要なシートを削除してスッキリした構造に整えることがよくあります。例えば次のような場面です。テ...
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...
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 業務自動化 | ファイル・フォルダ自動化:基本操作 - フォルダサイズ計算

フォルダサイズ計算は「どこがどれだけ容量を食っているか」を見抜く技術業務自動化をしていると、「このフォルダ、どれくらい容量を使っているんだろう?」「バックアップ前にフォルダサイズを知りたい」「容量が大...
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を全部...
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') を組み立てたい」「画面に 山田 / ...
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 文を...
Power Query M Formula Language

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

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

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

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

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

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

JavaScript Tips | 文字列ユーティリティ:URL 系 - クエリ削除

「クエリ削除」で本当にやりたいこと「クエリ削除」は、URL の ? 以降に付いているパラメータのうち、いらないものだけを取り除いて、新しい URL を作り直す処理です。例えば、こんなことをやりたい場面...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - クエリ取得

「クエリ取得」で何をしたいのかをはっきりさせるここでの「クエリ取得」は、URL の ? 以降(クエリ文字列)から、パラメータを取り出して使いやすい形にすることです。/search?q=JavaScri...
JavaScript

JavaScript Tips | 文字列ユーティリティ:URL 系 - クエリ生成

まず「クエリ生成」で何を自動化したいのかここで言う「クエリ生成」は、オブジェクト(連想配列)から ?key=value&key2=value2 みたいなクエリ文字列を、安全に・楽に作るユーティリティの...
JavaScript Tips

JavaScript Tips | 文字列ユーティリティ:URL 系 - URL デコード

「URL デコード」で何を取り戻したいのかURL デコードは、URL の中で「%E3%81%82」みたいに変換されてしまった文字を、人間が読める元の文字列に戻すことです。エンコードは「安全に送るための...
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 ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - デバッグ用 var_export 文字列化

「デバッグ用 var_export 文字列化」とは何をしたいのかデバッグしているとき、「この変数の中身、今どうなってるの?」って何度も思いますよね。配列、オブジェクト、ネストしたデータ構造……目で確認...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 長文をログ向け短縮

なぜ「長文をログ向け短縮」する必要があるのか業務システムのログには、ときどき「とんでもなく長い文字列」が流れてきます。巨大な JSON、ユーザーの長文入力、外部 API のレスポンス全文などが典型です...
PHP

PHP Tips | 文字列処理:ログ・表示向け - ログ用 1 行整形

なぜ「ログ用 1 行整形」が必要なのかログって、本来は「あとから原因を追いやすくするための情報」ですよね。でも、何も考えずに文字列をそのまま error_log() に投げていると、こうなりがちです。...
PHP

PHP Tips | 文字列処理:ログ・表示向け - エラーメッセージ整形

なぜ「エラーメッセージ整形」が必要なのかエラーメッセージって、放っておくとすぐに「バラバラ」になります。同じようなエラーなのに、「必須です」「入力してください」「この項目は必須です」みたいに表現が揺れ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示安全文字列生成

「表示安全文字列生成」とは何をするものかここで言う「表示安全文字列」は、ざっくり言うとこういう文字列です。画面に出してもレイアウトが壊れない。ログに出してもビューアが変にならない。HTML やターミナ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 制御文字除去

なぜ「制御文字除去」が必要になるのか業務で外部システムやユーザー入力の文字列を扱っていると、ときどき「見えない変な文字」が紛れ込みます。コピー&ペーストしたテキスト、外部 API のレスポンス、古いシ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 伏字変換

「伏字変換」で何をしたいのか伏字変換は、「文字列の一部を別の文字(*や●など)に置き換える」ことです。目的はだいたい 2 つあります。1つ目は「見せたくない情報を隠す」こと。NG ワード、暴言、機密情...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示用マスク(名前)

「表示用マスク(名前)」で何を守りたいのか名前も、メールや電話と同じく「個人を特定しやすい情報」です。でも業務では、こういうニーズがよく出てきます。ログや通知には「誰の処理か」は分かりたい。サポート画...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示用マスク(電話)

「表示用マスク(電話)」で何を守りたいのか電話番号もメールと同じく、個人をかなり特定できる情報です。でも業務では、こういうニーズがよく出てきます。誰のレコードかは判別したい。ログや画面には「丸裸の番号...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示用マスク(メール)

「表示用マスク(メール)」で何を守りたいのかメールアドレスは、個人情報のど真ん中です。でも業務では、ログや画面に「誰のことかは分かりたい」場面も多いですよね。ログに「ユーザーのメールアドレス」をそのま...
C#

C# Tips | 日付・時間処理:月日数取得

はじめに:「月日数取得」は“カレンダー計算の出発点”「今月は何日まである?」「締め日は月末」「2月の最終営業日」こういう処理をちゃんと書こうとすると、必ず必要になるのが「その月が何日まであるか」です。...
C#

C# Tips | 日付・時間処理:閏年判定

はじめに:「閏年判定」は“2月29日があるかどうかを見抜く小さな知恵”「この年は 2月29日があるのか?」「2024年は閏年だけど、2100年は?」カレンダーや日付計算を扱うシステムでは、“閏年(うる...
C#

C# Tips | 日付・時間処理:月跨ぎ判定

はじめに:「月跨ぎ判定」は“どの月のデータとして扱うか”を決めるための鍵業務システムでは、「勤務が 1/31 22:00〜2/1 06:00 のとき、どの月の勤務として集計するか」「売上期間が 3/2...
C#

C# Tips | 日付・時間処理:年月のみ比較

はじめに:「年月のみ比較」は“日付の細かさをあえて捨てるテクニック”業務システムでは、「2026年2月の売上」「2026年2月度の勤怠」「請求月が同じかどうか」のように、“日付”ではなく“年月”だけを...
C#

C# Tips | 日付・時間処理:日付バリデーション

日付バリデーションは“入力のゆらぎを正しい日付に整えるための基盤”日付入力は業務システムで最もトラブルが起きやすい領域です。「2026/02/30」「2026-13-01」「20260218」「2/1...
C#

C# Tips | 日付・時間処理:時刻バリデーション

はじめに:「時刻バリデーション」は“バグの温床”を最初に潰す作業「09:00 と入力してほしいのに、9時 とか 9:0 とか 25:00 とかが来る」「開始時刻より終了時刻が前になっている」時刻入力ま...
C#

C# Tips | 日付・時間処理:Cron生成

はじめに:「Cron生成」は“人間の言葉をスケジュール文字列に変換する作業”「毎日3時に実行したい」「平日の9時ちょうどにだけ動かしたい」「5分ごとにポーリングしたい」人間にとっては分かりやすいこの言...
C#

C# Tips | 日付・時間処理:Cron表現解析

はじめに:なぜ「Cron表現解析」が業務で効くのか業務システムで「毎日3時に」「5分ごとに」「平日の9時だけ」といったスケジュールを柔軟に設定したいとき、文字列1本でスケジュールを表現できるのが「Cr...
C#

C# Tips | 日付・時間処理:スケジューラ

はじめに 「スケジューラ」は“時間で動くバッチのミニ版”「毎日 3:00 にバックアップしたい」「5分ごとにキューをポーリングしたい」「指定時刻になったら一度だけ処理したい」こういう“時間をトリガーに...
C#

C# Tips | 日付・時間処理:実行時間計測

はじめに 「実行時間計測」は“なんとなく”を数字に変える技術「この処理、重そうだけど本当にボトルネックなのか?」「リファクタリングしたけど、速くなったって言い切れる?」こういうときに必要なのが「実行時...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - CSV 行生成

「CSV 行生成」でやりたいことをはっきりさせるここでのゴールは、「配列やオブジェクトの値から、正しい形式の1行分の CSV 文字列を生成するユーティリティ」を作ることです。見た目はただのカンマ区切り...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - 単語数カウント

「単語数カウント」で何を数えたいのかを決めるまず、ここをはっきりさせたいです。「単語数を数える」と言っても、言語や用途で意味が変わります。英語の文章なら、スペースで区切られた「単語」を数えたい。日本語...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - 文字数カウント

「文字数カウント」で本当に数えたいものは何かまず、ここをはっきりさせたいです。「文字数を数える」と言っても、実は意味が分かれます。画面上で「何文字入力されたか」を知りたい。DBのカラム制限(バイト数)...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - 行数カウント

「行数カウント」で何をしたいのかをはっきりさせるここでの「行数カウント」は、文字列の中に「何行分のテキストがあるか」を数えるユーティリティのことです。テキストエリアに何行入力されているか知りたい。ログ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - 省略文字列

「省略文字列」で何をしたいのかをはっきりさせるここでの「省略文字列」は、長すぎる文字列を「…」などで途中カットして、画面に収まる形にするユーティリティのことです。テーブルのカラム幅に収まらないタイトル...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - 伏字変換

「伏字変換」でやりたいことを言葉にしてみるここでの「伏字変換」は、特定の単語やNGワードを、画面に出すときだけ隠す(置き換える)処理のことです。ログにはそのまま残したいけど、ユーザーには見せたくない。...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - マスク文字列

「マスク文字列」で何をしたいのかをはっきりさせるまず、「マスク文字列」でやりたいことを言葉にしてみます。画面に本物の値は出したくないけれど、「それっぽく」見せたい。例:******** や ****-...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - トークン生成

まず「トークン生成」で何を作りたいのかを決めるトークンと言っても、用途はいろいろあります。API トークンパスワードリセット用の一時 URL トークンメール認証用のワンタイムトークンCSRF トークン...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - パスワード生成

まず「パスワード生成」で絶対に外せない前提ランダム文字列と違って、パスワード生成は最初から「セキュリティ前提」で考える必要があります。ここを曖昧にすると、一見それっぽく動くけど「簡単に総当たりされるパ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:生成 - ランダム文字列

ランダム文字列ユーティリティで何をしたいか決める「ランダム文字列」と一口に言っても、目的で“正解の実装”が変わります。短い一時トークン(画面遷移の一時キー)テストデータ用の適当なIDユーザーに見せる仮...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - 絵文字検出

絵文字検出で「何をしたいか」を先に決めるまずゴールをはっきりさせましょう。ここでやりたいのは、文字列の中に「絵文字が含まれているかどうか」を判定するユーティリティを作ることです。業務だと、例えばこうい...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - カタカナ判定

「カタカナ判定」で何をチェックしたいのかまずゴールをはっきりさせます。カタカナ判定には、大きく二つのニーズがあります。「この文字列は“全部カタカナだけ”かを判定したい」「この文字列に“カタカナが1文字...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - ひらがな判定

「ひらがな判定」で何をチェックしたいのかまずゴールをはっきりさせます。ひらがな判定には、大きく二つのニーズがあります。「この文字列は“全部ひらがなだけ”かを判定したい」「この文字列に“ひらがなが1文字...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - 日本語判定

「日本語判定」で本当に知りたいことは何かまずゴールをはっきりさせましょう。ここでやりたいのは、「この文字列は“日本語を含んでいるか?”を判定するユーティリティを作ること」です。もう少し分解すると、よく...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - 数字のみ判定

「数字のみ判定」で本当に知りたいことは何かまずゴールをはっきりさせます。ここでやりたいのは、「この文字列は“数字だけ”でできているか?」を判定するユーティリティを作ることです。例えば、こんな要件が典型...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - 英数字判定

「英数字判定」で何をチェックしたいのかをはっきりさせるまず最初に決めておきたいのは、あなたがやりたいのは次のどちらかです。「文字列が“全部”英数字だけかどうかを判定したい」「文字列の中に“英数字が含ま...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - URL 判定

「URL 判定」で本当にやりたいことは何かまず、「URL 判定」と聞くと、「正規表現で http から始まるかどうかをチェックする」みたいなイメージを持ちがちですが、それだとだいたい痛い目を見ます。業...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - 郵便番号判定

郵便番号判定で「何をしたいか」を先に決めるまずゴールをはっきりさせましょう。ここでやりたいのは、「日本の郵便番号として“それっぽいか”を判定するユーティリティを作ること」です。日本の郵便番号は、基本的...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - 電話番号判定

まず「電話番号判定」でやりたいことをはっきりさせる最初に決めておきたいのは、「どこまで厳しく判定するか」です。電話番号って、現実にはいろんな形で入力されます。03-1234-5678090-1234-...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検証 - メールアドレス判定

「メールアドレス判定」はどこまでやるべきか最初に一番大事なことを言います。メールアドレス判定は「完璧」を目指さないほうがいいです。RFC に完全準拠しようとすると、正規表現が怪物みたいになりますし、現...
C#

C# Tips | 日付・時間処理:ストップウォッチ

はじめに 「ストップウォッチ」は“処理時間を見える化する道具”「この処理、どれくらい時間かかってるんだろう?」「最適化したつもりだけど、本当に速くなった?」こういう“処理時間の見える化”に使うのが、C...
C#

C# Tips | 日付・時間処理:タイマー処理

はじめに 「タイマー処理」は“時間を味方につける仕組み”「5秒ごとに処理したい」「1分後にだけ一回だけ実行したい」「一定間隔でバッチを回したい」こういう“時間をトリガーにした処理”をまとめて「タイマー...
C#

C# Tips | 日付・時間処理:深夜時間判定

はじめに 「深夜時間判定」は“割増賃金の境界線をコードにする作業”勤務時間の中でも、「22:00〜翌5:00」は“深夜労働”として割増賃金の対象になる、というルールがよくあります。この“深夜時間”を正...
C#

C# Tips | 日付・時間処理:休憩時間控除

はじめに 「休憩時間控除」は“働いた時間と、そうでない時間を分ける線引き”勤務時間の計算で一番よく出てくるのが「休憩時間を引く」という処理です。ここを雑にやると、「働いていない時間にまで給料を払ってし...
C#

C# Tips | 日付・時間処理:勤務時間計算

はじめに 「勤務時間計算」は“お金と信頼に直結するロジック”勤務時間の計算は、「出勤時刻と退勤時刻の差を取れば終わり」…では、まったく終わりません。休憩時間を引く深夜時間を分ける所定労働時間と残業時間...
C#

C# Tips | 日付・時間処理:日付差ヒューマン表示

はじめに 「日付差ヒューマン表示」は“数字を感覚に変える翻訳機”「2026/02/18 20:43:00 から 2026/02/18 21:10:00 まで 1620 秒です」よりも、「27分前」「約...
C#

C# Tips | 日付・時間処理:ファイル名用日時

はじめに 「ファイル名用日時」は“あとから探しやすく、壊れにくい名前のコア”バックアップファイル、エクスポートCSV、ログのローテーションファイル。こういう「時刻付きファイル名」を付けるとき、なんとな...
C#

C# Tips | 日付・時間処理:ログ用日時生成

はじめに 「ログ用日時」は“あとから真実を追いかけるための命綱”ログって、「とりあえず DateTime.Now 出しとけばいいでしょ?」で済ませがちなんですが、本気でトラブル調査をしようとすると、「...
C#

C# Tips | 日付・時間処理:ミリ秒切り捨て

はじめに 「ミリ秒切り捨て」は“誤差とノイズを消すための小技”API のレスポンス時刻、ログのタイムスタンプ、DB に保存する日時。こういうところで「ミリ秒までバラバラだと比較しづらい」「テストが安定...
C#

C# Tips | 日付・時間処理:時刻丸め

はじめに 「時刻丸め」は“時間の解像度を落とすテクニック”「打刻は5分単位にそろえたい」「グラフは1分刻みで表示したい」「ログを10秒単位でまとめたい」こういう“細かすぎる時刻を、キリのいい時刻にそろ...
Java

Java Tips | コレクション:Stream生成

Stream生成は「データに“流れ”をつける」入り口Stream は「コレクションや配列などの要素を、流れとして扱うためのビュー」です。filter や map、collect などの“Stream ...
Java

Java Tips | コレクション:List→配列

List→配列変換は「柔らかい入れ物を“カチッとした形”にする」技Java では、業務ロジックは List で書きたいけれど、古いライブラリやフレームワークの引数が「配列(String[] など)」を...
Java

Java Tips | コレクション:配列→List

配列→List変換は「生の配列を“扱いやすいコレクション”に変える」技Java には「配列」と「List」という、よく似ているけれど性格の違う入れ物があります。配列:String[] など。古くからあ...
Java

Java Tips | コレクション:List→Map変換

List→Map変換は「一覧を“引ける辞書”に変える」技List<T> は「順番付きのただの並び」です。Map<K, V> は「キーから値を素早く引ける辞書」です。業務では、DB から List<Us...
Java

Java Tips | コレクション:安全get

「安全get」は「落ちてもおかしくない場所に、クッションを敷いておく」技List#get や Map#get は、とてもよく使う基本メソッドですが、そのまま使うと、意外と簡単に例外や NullPoin...
Java

Java Tips | コレクション:デフォルトMap取得

「デフォルトMap取得」は「なかったとき、何を返すか」を先に決めておく技Map を使っていると、ほぼ必ずこういうコードが出てきます。Integer count = map.get(key);if (c...
Java

Java Tips | コレクション:Map反転

Map反転は「矢印の向きをひっくり返す」技Map<K, V> は「K → V」という矢印の集まりです。Map反転は、この矢印の向きを「V → K」にひっくり返して、新しい Map<V, K> を作るイ...
Java

Java Tips | コレクション:Map値抽出

「Map値抽出」は“辞書の中身だけを取り出す”イメージMap<K, V> は「キー → 値」の対応表です。業務では「ユーザーID → ユーザー情報」「商品コード → 商品情報」など、ほぼ必ず出てきます...
Java

Java Tips | コレクション:Mapキー抽出

「Mapキー抽出」は“辞書の見出しだけを取り出す”イメージMap<K, V> は「キーと値のペアの集まり」です。「商品ID → 商品名」「ユーザーID → ユーザー情報」「コード → マスタ値」など、...
Java

Java Tips | コレクション:ランダム抽出

ランダム抽出は「誰を選ぶかを“公平に”決める」技ランダム抽出は、ざっくり言うと「コレクションの中から、ランダムに要素を取り出す」処理です。テスト用にランダムなユーザーを 1 人選びたい。キャンペーン当...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 連続空白圧縮

「連続空白圧縮」とは何をするユーティリティかまずイメージからいきましょう。ユーザー入力や外部データには、よくこんな文字列が紛れ込みます。"山田 太郎"" 東京都 中央区 ""a b c"人間からすると...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 改行除去

なぜ「改行除去」ユーティリティが必要になるのか業務システムでユーザー入力を扱っていると、テキストエリアからの入力や、外部システムからのデータに「改行」が普通に混ざります。見た目としては問題なくても、次...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - HTML アンエスケープ

「HTML アンエスケープ」とは何をするものか前回の「HTML エスケープ」は、< や & などを「タグとして解釈されないように」安全な文字列に変える処理でした。"<b>太字</b>" → "<...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - HTML エスケープ

なぜ「HTML エスケープ」が必要なのかまず、これだけははっきりさせておきたいです。HTML エスケープは「見た目を整えるテクニック」ではなく、「セキュリティのための必須処理」です。ユーザー入力をその...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 正規表現置換

「正規表現置換」ができると何が嬉しいのかまずイメージからいきます。普通の置換は「この文字列を、この文字列に変える」だけです。"2026/02/19" の "/" を "-" に変える"foo foo ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 全置換

「全置換」って何をするユーティリティ?まずイメージからいきましょう。「この文字列の中にある foo を、全部 bar に変えたい」という場面、よくありますよね。"foo foo foo" → "bar...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 大文字小文字無視検索

「大文字小文字無視検索」とは何をしてくれるのかまずゴールのイメージからいきます。次の3つの文字列を見てください。"Apple""apple""APPLE"人間からすると「全部 Apple でしょ」です...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 後方一致

「後方一致」とは何をしているのか前回の「前方一致」は“先頭が合っているか”を見るものでした。「後方一致」はその逆で、文字列の“末尾”が、指定した文字列と一致しているかどうかを調べます。「report....
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 前方一致

「前方一致」とは何をしているのかまず言葉の整理からいきます。「前方一致」は、文字列の“先頭”が、指定した文字列と一致しているかどうかを調べることです。「山田太郎」が「山田」で始まっているか?「」が「h...
JavaScript

JavaScript Tips | 文字列ユーティリティ:検索・置換 - 部分一致検索

「部分一致検索」ユーティリティは何をしてくれるのか業務システムで文字列を扱うとき、「完全一致」だけで足りることはあまりありません。ユーザー一覧から「山」で始まる人を探したい、商品名に「USB」が含まれ...
C#

C# Tips | 日付・時間処理:日付丸め

はじめに 「日付丸め」は“時間をざっくり区切るための技”「集計は1時間単位で」「グラフは5分刻みで」「日付だけにそろえたい」こういう“きっちりした時刻”ではなく“区切りの時刻”が欲しいときに必要になる...
C#

C# Tips | 日付・時間処理:四半期判定

はじめに 「四半期判定」は“月をざっくり4つに区切るラベル付け”「この売上は第何四半期?」「四半期ごとの集計を出したい」「決算Q1〜Q4でグラフを描きたい」こういう“3ヶ月単位”の世界で必ず必要になる...
C#

C# Tips | 日付・時間処理:週番号取得

はじめに 「週番号取得」は“時間をざっくり区切るためのラベル付け”「この売上は何週目のデータ?」「週次レポートの第何週?」「ISO週番号でログを集計したい」こういう“週単位”の集計やレポートを作るとき...
C#

C# Tips | 日付・時間処理:年一覧生成

はじめに 「年一覧生成」は“長期スパンの集計・分析の土台”売上の年次推移、年度別の件数集計、ログの年別アーカイブ。こういう「年単位」で物事を見る処理の裏側には、たいてい「年一覧」がいます。C# では、...
C#

C# Tips | 日付・時間処理:月一覧生成

はじめに 「月一覧生成」は“月次処理の背骨”になる「指定期間の月ごとの集計」「月次レポート」「月別売上グラフ」こういう“月単位”の処理をするときに土台になるのが「月一覧生成」です。C# では、Date...
C#

C# Tips | 日付・時間処理:日付一覧生成

はじめに 「日付一覧生成」は“カレンダー系ロジックの土台”「指定期間の全日付を出したい」「1ヶ月分のカレンダーを作りたい」「営業日一覧を作りたい」こういうときに必ず必要になるのが「日付一覧生成」です。...
C#

C# Tips | 日付・時間処理:日付範囲判定

はじめに 「日付範囲判定」は“ビジネスルールの線引き”そのもの「この日付はキャンペーン期間内か?」「契約有効期間に含まれるか?」「集計対象期間か?」こういう“期間に入っているかどうか”の判定は、業務シ...
Java

Java Tips | コレクション:シャッフル

シャッフルは「順番に意味を持たせないために、あえてぐちゃっと混ぜる」技シャッフルは、ざっくり言うと「コレクションの要素の順番をランダムに入れ替える」処理です。テストデータの順番を毎回変えたい。おすすめ...
Java

Java Tips | コレクション:バッチ分割

バッチ分割は「一気にやると危ない処理を、小さな塊に分けて安全に回す」技バッチ分割は、ざっくり言うと「大量データを、バッチ(かたまり)単位に分けて処理する」ためのユーティリティです。1 万件のレコードを...
Java

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

分割処理は「大きな塊を、ちょうどいいサイズのかたまりに刻む」技分割処理は、ざっくり言うと「大きな List を、一定サイズごとの小さな List に分ける」テクニックです。一度に 1 万件のレコードを...
Java

Java Tips | コレクション:フラット化

フラット化は「入れ子の一覧を、一本の一覧に伸ばす」技フラット化は、ざっくり言うと「List<List<T>> のような“入れ子のコレクション”を、List<T> という“まっすぐなコレクション”に伸ば...
Java

Java Tips | コレクション:マッピング

マッピングは「一覧の“形”を変える」技マッピングは、ざっくり言うと「ある型の一覧を、別の型の一覧に変換する」処理です。ユーザー一覧から「名前だけの一覧」を作る。商品一覧から「価格だけの一覧」を作る。注...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - 単語分割

なぜ「単語分割」ユーティリティが必要になるのかキャメルケース化・スネークケース化・ケバブケース化・パスカルケース化。ここまでいろいろやってきましたが、実は全部の“土台”にあるのが 「単語分割」 です。...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - パスカルケース化

パスカルケースってそもそも何かまず言葉の整理からいきます。「パスカルケース(PascalCase)」は、単語の先頭をすべて大文字にして、間をつめてつなげる書き方です。"user name" → "Us...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - ケバブケース化

ケバブケースってそもそも何かまず言葉の整理からいきましょう。「ケバブケース(kebab-case)」は、単語をハイフン - でつなぎ、全部小文字で書くスタイルです。"userName" → "user...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - スネークケース化

スネークケースってそもそも何かまず言葉の整理からいきます。「スネークケース(snake_case)」は、単語をアンダースコア _ でつなぎ、全部小文字で書くスタイルです。"userName" → "u...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - キャメルケース化

キャメルケースってそもそも何かまず言葉の整理からいきます。「キャメルケース(camelCase)」は、プログラミングでよく使う“名前の付け方”のルールの一つです。先頭は小文字。単語の区切りごとに、次の...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - 小文字変換

「小文字変換」ユーティリティは何のために使うのか大文字変換と対になるのが「小文字変換」です。次のような値を考えてみてください。"ABC""Abc""abc"人間からすると「同じ abc」ですが、コンピ...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - 大文字変換

「大文字変換」ユーティリティは何のために使うのかまずイメージからいきます。次のような値があるとします。"abc""Abc""ABC"人間から見ると「だいたい同じ」ですが、コンピュータ的には全部別物です...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - 半角→全角

「半角→全角」ユーティリティは何のために使うのかさっきの「全角→半角」と逆方向の話です。業務システムでは、こんな要望がよく出ます。帳票や PDF で、桁をきれいに揃えたいから全角で出したい。画面上の見...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - 全角→半角

「全角→半角」ユーティリティは何を解決してくれるのかまず、よくある業務の“あるある”からいきます。ユーザーが「1234」と全角数字で入力してくる。「@」や「-」が全角のせいでメールアドレス判定に落ちる...
JavaScript

JavaScript Tips | 文字列ユーティリティ:整形 - trim

trim は「余計な空白をきれいに落とす」道具まずイメージからいきましょう。ユーザーがフォームにこう入力したとします。" 山田太郎 "(前後にスペース付き)見た目は同じ「山田太郎」でも、実際の文字列と...
C#

C# Tips | 日付・時間処理:日付比較

はじめに 「日付比較」は“ビジネスルールをコードに落とす入り口”「締切を過ぎているか?」「この期間内か?」「開始日より前か後か?」業務システムで“条件分岐”を書くとき、ほぼ必ず出てくるのが「日付比較」...
C#

C# Tips | 日付・時間処理:UnixTime変換

はじめに 「UnixTime変換」は“異世界の時計との変換アダプタ”API やログ、JavaScript、Linux 系ツールと連携するときに、よく出てくるのが「UnixTime(UNIX時間)」です...
C#

C# Tips | 日付・時間処理:ISO8601変換

はじめに 「ISO8601変換」は“システム同士の共通語”をしゃべるための必須スキルAPI、バッチ連携、ログ、クラウドサービス。システム同士が日時をやり取りするとき、ほぼ必ず出てくるのが「ISO860...
PHP

PHP Tips | 文字列処理:実務向け便利系 - Unicode 正規化

なぜ「Unicode 正規化」が実務で問題になるのか同じ「見た目」の文字でも、内部的には“別の文字列”として扱われてしまうことがあります。これが Unicode 正規化の話です。例えば、次の 2 つは...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 文字列中の数値を数値化

「文字列中の数値を数値化」とは何をしたいのか業務システムでは、ユーザー入力や CSV から読み込んだ値が「文字列」として渡ってくることが多いです。"123"" 1,234 ""9876"(全角)見た目...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 先頭ゼロ埋め

「先頭ゼロ埋め」で何をしたいのか先頭ゼロ埋めは、一言でいうと「数字や文字列を、決めた桁数になるように左側を 0 で埋める」ことです。社員番号を 000123 のように 6 桁でそろえたい。請求書番号を...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 配列を改行文字列に変換

なぜ「配列を改行文字列に変換」したくなるのかさっきまでやっていた「複数行テキストを配列化」の逆方向が、今回の「配列を改行文字列に変換」です。例えば、こんな場面がよくあります。画面のテキストエリアに、配...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 複数行テキストを配列化

なぜ「複数行テキストを配列化」するのか業務でよくあるのが、こんなテキストです。山田太郎佐藤花子鈴木一郎これを「1 行ずつ処理したい」「1 行ずつバリデーションしたい」「1 行ずつ DB に登録したい」...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 改行を除去した1行化

なぜ「改行を除去した1行化」が必要になるのか業務で文字列を扱っていると、「中身はそのままでいいから、とにかく“1行の文字列”にしたい」という場面がよく出てきます。ログに出すときに、改行があると見づらい...
PHP

PHP Tips | 文字列処理:実務向け便利系 - JSON デコード(例外対応)

なぜ「JSON デコード(例外対応)」が必要なのか業務で JSON を扱うとき、ほぼ必ずやるのが「文字列 → 配列(オブジェクト)」への変換、つまり JSON デコードです。ここで怖いのは、「壊れた ...
PHP

PHP Tips | 文字列処理:実務向け便利系 - JSON 安全エンコード

「JSON 安全エンコード」で何を守りたいのかJSON 自体はただのデータ形式ですが、「どこに出すか」で話が一気に“セキュリティの話”になります。特に危険なのは、JSON をそのまま HTML や J...
PHP

PHP Tips | 文字列処理:実務向け便利系 - TSV 用エスケープ

なぜ「TSV 用エスケープ」が必要になるのかTSV は「Tab Separated Values」、区切り文字がカンマではなくタブ(\t)のテキスト形式です。CSV よりシンプルに見えますが、「そのま...
PHP

PHP Tips | 文字列処理:実務向け便利系 - CSV 用エスケープ

なぜ「CSV 用エスケープ」が必要になるのか業務で CSV を扱うとき、よくあるのが「Excel で開ける CSV を出したい」「システム間連携用に CSV を吐きたい」というパターンです。ここで雑に...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 - オンライン状態判定

なぜ「オンライン状態判定」ユーティリティが業務で重要なのか業務システムでも、ユーザーは常に安定したネットワーク環境にいるとは限りません。社内 Wi-Fi が不安定、移動中のモバイル回線、一瞬だけオフラ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 - タイムゾーン取得

なぜ「タイムゾーン取得」ユーティリティが業務で重要なのか業務システムで日付や時刻を扱うとき、必ず出てくるのが「タイムゾーン」の問題です。日本のユーザーと海外のユーザーが混在していたり、サーバーは UT...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 ‐ 言語設定取得

なぜ「言語設定取得」ユーティリティが必要になるのか業務システムを作っていると、「日本語ユーザーには日本語で」「英語ユーザーには英語で」といった多言語対応の話がほぼ確実に出てきます。ここで大事なのは、「...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – 本番環境判定

「本番環境判定」は何のためにあるのか「本番環境判定」は、「今このコードは“お客さんが触っている本番”なのか、それ以外(開発・検証)なのか」を判定するためのユーティリティです。業務システムでは、同じコー...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – 開発環境判定

「開発環境判定」とは何を判定するのかまず言葉を整理します。ここでいう「開発環境判定」は、ざっくり言うと「今このコードは“本番”で動いているのか、“開発用”で動いているのか」を判定するためのユーティリテ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – Chrome 判定

なぜ「Chrome 判定」ユーティリティが欲しくなるのか業務システムを書いていると、「ほとんどのユーザーは Chrome(または Chrome 系)を使っている」という前提で設計されることが多いです。...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – Android 判定

なぜ「Android 判定」ユーティリティが必要になるのかモバイル対応をしていると、「iOS と Android で挙動が微妙に違う」という場面に必ずぶつかります。同じ“スマホ”でも、こういう差があり...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – iOS 判定

なぜ「iOS 判定」ユーティリティが必要になるのかモバイル判定より一歩踏み込んだのが「iOS 判定」です。業務システムを作っていると、こういう“iOS 特有の事情”にぶつかります。Safari(iOS...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – モバイル判定

なぜ「モバイル判定」ユーティリティが必要になるのか業務システムでも、今は「PC だけ」ではなく「スマホ・タブレット」からの利用が当たり前になっています。その結果、こういう要件がよく出てきます。PC で...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:環境 – ブラウザ判定

なぜ「ブラウザ判定」ユーティリティが業務で必要になるのか業務システムをブラウザで動かしていると、「Chrome では動くのに、IE だと落ちる」「スマホの Safari だけ挙動が違う」みたいなこと、...
C#

C# Tips | 日付・時間処理:タイムゾーン変換

はじめに 「タイムゾーン変換」は“世界とつながる日時処理の要”日本だけで完結しているうちはあまり意識しませんが、クラウド、海外拠点、スマホアプリなどが絡み始めると、「この日時はどこの国の時間なのか?」...
C#

C# Tips | 日付・時間処理:経過時間計算

はじめに 「経過時間計算」は“ビジネスのリアルタイム感”を数値にする「処理に何秒かかった?」「障害発生から何時間経過?」「滞在時間は何分?」こういう“時間の距離”は、業務・実務の世界でかなり頻繁に出て...
C#

C# Tips | 日付・時間処理:経過日数計算

はじめに 「経過日数計算」は“ビジネスの距離感”を数値にする「申込から何日経った?」「納品から何日以内?」「障害発生から何日経過?」こういう“日数の距離”は、業務システムで本当によく出てきます。C# ...
C#

C# Tips | 日付・時間処理:年齢計算

はじめに 「年齢計算」は“日付ロジックの入門にして落とし穴だらけのテーマ”「この人は今何歳か」「○日時点で何歳だったか」。業務システムでも、顧客管理・会員管理・保険・医療・学校など、年齢計算は本当によ...
C#

C# Tips | 日付・時間処理:祝日判定

はじめに 「祝日判定」は“営業日ロジックの一番やっかいな部分”土日判定はコードで簡単に書けますが、「祝日」はそうはいきません。日本の祝日は法律で決まっていて、改正されたり、オリンピックや即位などのイベ...
C#

C# Tips | 日付・時間処理:営業日加算

はじめに 「営業日加算」は“ビジネスの締切をコードに落とす技”「3営業日以内に対応」「5営業日後が締切」「翌営業日に処理」――こういう要件を“ちゃんと”満たすには、単純な「日数加算」ではなく「営業日加...
C#

C# Tips | 日付・時間処理:営業日判定

はじめに 「営業日判定」は“締切と期日のリアルさ”を決める心臓部業務システムでよく出てくる「3営業日以内に対応」「翌営業日に処理」「営業日ベースで締切計算」。ここでいう「営業日」が正しく判定できていな...
C#

C# Tips | 日付・時間処理:曜日日本語化

はじめに 「曜日日本語化」は“ユーザーに優しい日付表示”の仕上げ曜日そのものは DateTime.DayOfWeek で簡単に取れますが、そのままだと Tuesday のような英語表記です。業務システ...
C#

C# Tips | 日付・時間処理:曜日取得

はじめに 「曜日取得」は“人間に寄り添う日付表示”の入口日付そのものだけでなく、「それが何曜日か」は業務画面でかなり重要です。勤怠、シフト、予約、カレンダー、締切日…どれも「曜日」が一緒に出ていると、...
C#

C# Tips | 日付・時間処理:年末取得

はじめに 「年末取得」は“年間ロジックのゴール地点”年初が「スタートライン」だとしたら、年末は「ゴールライン」です。年間売上、年間勤怠、年間評価、年間レポート、どれも「この年はどこからどこまでか」 が...
C#

C# Tips | 日付・時間処理:年初取得

はじめに 「年初取得」は“年間ロジックのスタートライン”月初・月末が「月次処理の基準点」だとしたら、年初は「年間処理の基準点」です。例えば、「今年の売上集計」「今年の有給残高」「今年度の評価期間」こう...
C#

C# Tips | 日付・時間処理:月末取得

はじめに 「月末取得」は“締めと集計のゴール地点”月初が「スタート」だとしたら、月末は「ゴール」です。売上の締め、勤怠の締め、請求期間の終わり、サブスクの課金期間の終わり――どれも「この月の月末はどこ...
C#

C# Tips | 日付・時間処理:月初取得

はじめに 「月初取得」は“集計と締め処理のスタート地点”業務システムで「今月分の売上」「今月の勤務時間」「請求書の対象期間」などを扱うとき、必ずと言っていいほど出てくるのが「月初(その月の1日)」です...
C#

C# Tips | 日付・時間処理:日付減算

はじめに 「日付減算」は“差を測る”だけじゃなく“◯日前”も作れる道具日付の「減算」と聞くと、まず思い浮かぶのは「2つの日付の差を取る」ことだと思います。でも実務ではそれだけでなく、「◯日前に戻す」(...
C#

C# Tips | 日付・時間処理:日付加算

はじめに 「日付加算」は“締切・有効期限・リマインド”の土台になる業務システムで「◯日後」「◯ヶ月後」「◯時間後」は、締切、有効期限、リマインド日時、サブスクリプションの更新日など、あらゆるところに出...
C#

C# Tips | 日付・時間処理:日付パース

はじめに 「日付パース」は“文字列を本物の日時に戻す”作業さっきまで「日付フォーマット」でDateTime → 文字列 に変換する話をしました。今度は逆向き、「文字列 → DateTime / Dat...
C#

C# Tips | 日付・時間処理:日付フォーマット

はじめに 「日付フォーマット」は“人間に読める形に整える”最後の仕上げ業務システムでは、DBや内部処理では DateTime / DateTimeOffset のまま扱い、画面・CSV・ログ・帳票など...
C#

C# Tips | 日付・時間処理:ローカル変換

はじめに 「ローカル変換」は“人間にとっての時間に戻す”作業UTC変換が「システムにとって都合のいい時間」にそろえる作業だとしたら、ローカル変換はその逆で、「人間が暮らしているタイムゾーンの時間に戻す...
C#

C# Tips | 日付・時間処理:UTC変換

はじめに 「UTC変換」は“時間のものさしを世界共通にそろえる”作業業務システムで日時を扱うとき、「サーバーのタイムゾーンが違う」「海外リージョンにデプロイする」「他システムと連携する」こういう場面が...
C#

C# Tips | 日付・時間処理:現在日時取得

はじめに 「現在日時取得」は“すべてのログと期限の起点”になる業務システムで「今の日時」は、ほぼどこでも使います。ログのタイムスタンプ、締切チェック、バッチの実行時間、更新日時の保存など、「いつ?」を...
Java

Java Tips | コレクション:フィルタ

フィルタは「欲しいものだけを残して、あとは流す」技フィルタは、ざっくり言うと「条件に合う要素だけを残して、それ以外を捨てる」処理です。注文一覧から「未出荷のものだけ」を残す。ユーザー一覧から「有効ユー...
Java

Java Tips | コレクション:件数カウント

件数カウントは「どれくらいあるか」を正確に言葉にする技業務では「何件あるか?」を数える場面が本当に多いです。今日の注文件数、エラー件数、未処理タスク件数、特定条件を満たすユーザー数…。だからこそ、「件...
Java

Java Tips | コレクション:平均算出

「平均算出」は“バラバラな値を代表する一つの数字”を作る技平均は、たくさんの値を「代表する一つの数字」にまとめるための道具です。売上の平均金額、テストの平均点、作業時間の平均、単価の平均…。業務では「...
Java

Java Tips | コレクション:合計算出

「合計算出」は“一覧から一つの数字にギュッと圧縮する”基本テク業務コードで一番よく出てくる集計が「合計」です。売上金額の合計、ポイントの合計、在庫数の合計、工数の合計…。どれも「たくさんの値 → ひと...
Java

Java Tips | コレクション:最小値取得

「最小値取得」は“いちばん小さいものを安全に一発で取り出す”ユーティリティ業務コードでは、「最小値」が欲しい場面もかなり多いです。最小金額、最古の日付、最小スコア、最小バージョン番号…。毎回 for ...
Java

Java Tips | コレクション:最大値取得

「最大値取得」は“いちばん大きいものを安全に一発で取り出す”ユーティリティ業務コードでは、「最大値」が欲しい場面がよく出てきます。最大金額、最新日付、最大スコア、最大バージョン番号…。毎回 for 文...
Java

Java Tips | コレクション:集計

集計は「一覧から“知りたい数字”だけを取り出す」技集計は、ざっくり言うと「たくさんのデータから、意味のある数字を取り出す」ことです。売上一覧から「合計金額」「平均単価」「件数」を出す。ユーザー一覧から...
Java

Java Tips | コレクション:グルーピング

グルーピングは「バラバラの一覧を“意味のあるかたまり”に整理する」技グルーピングは、ざっくり言うと「一覧を、あるキーごとにまとめ直す」ことです。売上一覧を「店舗ごと」にまとめる。ユーザー一覧を「都道府...
Java

Java Tips | コレクション:カスタムComparator

カスタムComparatorは「業務ルールをそのまま並び順にする道具」Comparator は「どっちが先か」を決めるための“比較ルール”です。カスタムComparatorは、そのルールを自分で定義す...
Java

Java Tips | コレクション:逆順ソート

逆順ソートは「優先度の高いものを先頭に持ってくる」ための技ソートというと「小さい順・古い順」をイメージしがちですが、業務ではむしろ「新しい順」「優先度の高い順」「金額の大きい順」が圧倒的に多いです。つ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – 処理回数制限

「処理回数制限」ユーティリティは何を守るためのものか「処理回数制限」は、「この関数は最大〇回までしか動かさない」というルールをコードで表現するためのユーティリティです。例えば次のような場面を想像してみ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – 実行時間計測

なぜ「実行時間計測」ユーティリティが業務で効いてくるのか業務コードを書いていると、「この処理、なんか重くない?」「どこがボトルネックなのか分からない」という場面が必ず出てきます。ここで大事なのは、「体...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – 連番生成

「連番生成」ユーティリティは何に使うのか連番生成は、「1, 2, 3, 4, … と増えていく番号を、安全に・簡単に振るための仕組み」です。業務コードでは、次のような場面でよく使います。テーブルの行 ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – UUID 生成

UUID ってそもそも何者?まず言葉から整理します。UUID は Universally Unique Identifier(ほぼ世界中で一意な識別子) の略です。見た目はだいたいこんな感じの文字列で...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – ランダム ID 生成

なぜ「ランダム ID 生成」が業務ユーティリティになるのか業務コードでは、意外なほど頻繁に「一意な ID(かぶらない識別子)」が必要になります。一時的なデータのキーフロント側だけで使う仮 IDDOM ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – タイムアウト実行

タイムアウト実行とは何を守るための仕組みなのか「タイムアウト実行」は、“一定時間以内に終わらなかった処理を強制的に中断し、失敗として扱う”ためのユーティリティです。業務システムでは、次のような問題が頻...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – 再試行処理

なぜ「再試行処理」が業務ユーティリティとして必須になるのか業務システムで一番よくあるのが「外部としゃべる処理」です。API 呼び出し、DB アクセス、外部サービス連携、キュー処理など、どれも「たまに失...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – 遅延実行

「遅延実行」とは何をしたいテクニックか「遅延実行」は、その名の通り「今すぐではなく、少し時間をおいてから処理を実行する」ためのテクニックです。例えば、次のような場面をイメージしてください。ユーザーがボ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – 一度だけ実行

「一度だけ実行」ユーティリティが欲しくなる場面業務コードを書いていると、「この処理は絶対に一回だけ動いてほしい」という場面がよく出てきます。初期化処理(同じ初期化を二回やると壊れる)イベント登録(同じ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:汎用 – no-op 関数

no-op 関数ってそもそも何?「no-op(ノーオペ)」は no operation の略で、「何もしない関数」 のことです。JavaScript だと、いちばんシンプルな形はこれです。functi...
Java

Java Tips | コレクション:ソート

コレクションのソートは「並び順というビジネスルール」をコードにする作業ソートは単なる「小さい順・大きい順」ではありません。業務では「名前の五十音順」「日付の新しい順」「ステータス順(独自の優先度)」な...
Java

Java Tips | コレクション:重複除去

重複除去は「一意な世界にそろえてから考える」ためのユーティリティ業務コードでは、同じ値が何度も出てくることがよくあります。ユーザーIDの一覧、商品コードの一覧、タグの一覧…。そのまま処理すると、同じユ...
Java

Java Tips | コレクション:null除外

「null除外」は“混ざってしまった null を一度で掃除する”ユーティリティ業務コードを書いていると、こういうコレクションがよく生まれます。List<String> names = Arrays....
Java

Java Tips | コレクション:空Map安全取得

空Map安全取得は「null を“空の設定”にそろえる」ための小さな約束Map を返すメソッドも、業務コードに山ほど出てきます。設定値のマップ、コード→ラベルのマップ、集計結果のマップなど。そこでよく...
Java

Java Tips | コレクション:空List安全取得

空List安全取得は「null を“空”にそろえる」ための小さな約束List を返すメソッドって、業務コードに山ほど出てきますよね。検索結果、関連データ、設定値の一覧、などなど。そこでよく起きるのが、...
PHP

PHP Tips | 文字列処理:ランダム・生成 – CSRF トークン生成

まず「CSRF トークン生成」で何を守りたいのかCSRF トークンは、一言でいうと「フォーム送信が“本当にそのユーザーの意思で行われたものか”を確認するための秘密の合言葉」です。例えば、ユーザーがログ...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ハッシュ検証

「ハッシュ検証」で何を確かめたいのかまず、「ハッシュ検証」という言葉のイメージから整理します。ハッシュ検証とは、ざっくり言うと、「今手元にある“生の値”が、保存されている“ハッシュ値”と本当に対応して...
PHP

PHP Tips | 文字列処理:ランダム・生成 – パスワード用ハッシュ生成

まず、「パスワード用ハッシュ生成」で何をしたいのかパスワード用ハッシュ生成の目的は一言でいうと、「パスワードそのものは絶対に保存せず、“検証にだけ使える形”で安全に保存する」ことです。ユーザーが入力し...
PHP

PHP Tips | 文字列処理:ランダム・生成 – salt 付きハッシュ

まず「salt 付きハッシュ」で何を守りたいのかsalt(ソルト)付きハッシュは、一言でいうと、「同じ値でも、ユーザーごと・レコードごとに違うハッシュ値にする仕組み」です。例えば、パスワード "pas...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ハッシュ化(SHA-256)

そもそも「ハッシュ化(SHA-256)」って何をするもの?まず、「ハッシュ化」という言葉のイメージから整理します。ハッシュ化は、ざっくり言うとこういう変換です。入力: "hello"出力: "2cf2...
PHP

PHP Tips | 文字列処理:ランダム・生成 – 短縮 ID 生成

「短縮 ID 生成」で何をしたいのかイメージするまず、どんな場面で「短い ID」が欲しくなるかをイメージしてみましょう。URL 短縮サービスの「短いコード」人に読み上げやすい予約番号や受付番号画面上に...
PHP

PHP Tips | 文字列処理:ランダム・生成 – UUID v4 生成

UUID v4 ってそもそも何者?まずは「UUID v4」が何なのか、イメージから掴みましょう。よく見るこの形の文字列が UUID です。550e8400-e29b-41d4-a716-4466554...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ワンタイムトークン生成

そもそも「ワンタイムトークン」とは何かまず、言葉のイメージをはっきりさせます。ワンタイムトークンは、ざっくり言うとこういうものです。一度きり、または短時間だけ有効な「秘密の合言葉」URL やフォームに...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ランダム文字列生成(記号なし)

何のために「記号なしランダム文字列」を作るのかまず、どんな場面で使うかをイメージしましょう。URL パラメータに載せるトークンだけど、「+ や / などの記号は使いたくない」。ユーザーに口頭で伝えるコ...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ランダム文字列生成(英数字)

何のために「ランダム英数字文字列」を作るのかまず、どんな場面で使うかをイメージしましょう。ユーザーごとの招待コード一時的なトークン(メール認証、パスワードリセット)ファイル名やディレクトリ名の衝突回避...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – 安全な数値計算

なぜ「安全な数値計算」が業務で重要になるのか業務コードの数値計算は、単なる足し算・引き算では終わりません。外部 API のレスポンス、フォーム入力、DB の値など、「本当に数値か分からないもの」を相手...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – null 合体代入

「null 合体代入」とは何をしてくれる構文か「null 合体代入」は、「その変数が null または undefined のときだけ、デフォルト値を代入する」ということを一発で書ける構文です。Jav...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – undefined 防止代入

「undefined 防止代入」とは何を守りたいのか「undefined 防止代入」は、一言でいうと「よく分からない値を代入したせいで、ちゃんと入っていた値を undefined で上書きしてしまう事...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – 存在チェック付き実行

「存在チェック付き実行」とは何を守りたいのか存在チェック付き実行は、一言でいうと「その値が“本当に実行していい関数か”を確認してから呼ぶ」ためのパターンです。業務コードでよくあるのが、こういうやつです...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – オプショナル取得

「オプショナル取得」とは何を楽にしたいのかオプショナル取得は、一言でいうと「あるかもしれないし、ないかもしれない値を“落とさずに”扱うための取り方」です。業務コードだと、こんな状況が日常茶飯事です。u...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – 安全なプロパティ取得

なぜ「安全なプロパティ取得」が業務で必須になるのか業務コードで一番よく見るエラーの一つがこれです。Cannot read properties of undefined (reading 'xxx')...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – デフォルト値補完

なぜ「デフォルト値補完」が業務でめちゃくちゃ大事なのか業務コードでは、「外から来る値」がとにかく信用できません。API レスポンス、フォーム入力、設定ファイル、環境変数、ローカルストレージなど、どれも...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – try-catch ラッパー

なぜ「try-catch ラッパー」が業務で効いてくるのかまず前提として、JavaScript の try-catch は「例外が投げられても、アプリ全体を落とさずに処理を続けるための仕組み」です。t...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – 安全な JSON stringify

JSON.stringify の基本をまず押さえるJSON.stringify は、「JavaScript の値(オブジェクトや配列など)を JSON 文字列に変換する関数」です。const obj ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:安全処理 – 安全な JSON parse

JSON.parse が「危険」になりやすい理由まず前提として、JSON.parse は「JSON 形式の文字列を、JavaScript の値(オブジェクトや配列など)に変換する関数」です。const...
C#

C# Tips | 文字列処理:Unicode正規化

はじめに 「Unicode正規化」は“見た目は同じ文字を、本当に同じにそろえる”作業Unicode正規化は、一言でいうと「見た目は同じなのに、内部的なバイト列が違う文字列を、同じ形にそろえる」処理です...
C#

C# Tips | 文字列処理:Levenshtein距離

はじめに 「Levenshtein距離」は“どれくらい似ているか”を数字で教えてくれるものLevenshtein(レーベンシュタイン)距離は、「ある文字列を別の文字列に変えるために、何回“1文字の挿入...
C#

C# Tips | 文字列処理:曖昧検索

はじめに 「曖昧検索」は“ちょっと間違っていても拾ってあげる”検索業務システムで検索機能を作ると、こんなことが起きがちです。「ユーザーが Yamda とタイプミスしても、本当は Yamada を出した...
C#

C# Tips | 文字列処理:部分一致検索

はじめに 「部分一致検索」は“文字列の中から、手がかりを探す”作業業務システムでは、こういうことをよくやります。商品名に「りんご」が含まれているデータだけを抽出したいログの1行の中に「ERROR」とい...
C#

C# Tips | 文字列処理:文字列比較(大文字無視)

はじめに 「大文字無視の文字列比較」は“人間の感覚に合わせる”ためのテクニック業務システムでは、ユーザー名、コード値、フラグ文字列などを比較するときに、「OK と ok は同じとみなしたい」「Yes ...
C#

C# Tips | 文字列処理:XML圧縮

はじめに 「XML圧縮」は“意味はそのまま、見た目だけ最小化する”ここでいう「XML圧縮」は、GZip などのバイナリ圧縮ではなく、改行・インデント・余計な空白をできるだけ取り除いて、XML文字列を短...
C#

C# Tips | 文字列処理:XML整形

はじめに 「XML整形」は“タグの森に道をつける”作業XMLは、設定ファイル、外部システム連携、古めのWebサービスなどで今でもよく使われますが、そのまま1行でベタッと出てくると、とても読みにくいです...
C#

C# Tips | 文字列処理:JSON圧縮

はじめに 「JSON圧縮」は“意味は変えずに、できるだけ短くする”ことここでいう「JSON圧縮」は、GZipなどのバイナリ圧縮ではなく、「余計な改行・インデント・スペースを削って、JSON文字列を最小...
C#

C# Tips | 文字列処理:JSON整形

はじめに 「JSON整形」は“ぐちゃぐちゃなJSONを、人間が読める形にする”作業APIレスポンス、ログ、設定ファイル——JSONは業務システムのあちこちに出てきますが、そのままだと{"id":1,"...
C#

C# Tips | 文字列処理:URLデコード

はじめに 「URLデコード」は“URL用に変形された文字列を、人間の世界に戻す”処理URLエンコードは、「URLの中で問題になりそうな文字(日本語・スペース・記号など)を、安全な形(%xx や +)に...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – 有限数判定

有限数判定とは何を見分けたいのか有限数判定は、「その値が 無限大(Infinity / -Infinity)でもなく、NaN でもなく、ちゃんとした“有限の数値”かどうか」を見分けることです。業務では...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – 負の数判定

「負の数判定」とは何を見分けたいのか負の数判定は、「その値が“0 より小さい数値として扱ってよいか”どうか」を見分けることです。業務では、赤字金額、減算値、差分(マイナス方向)、残高の変化量など、「負...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – 正の数判定

「正の数判定」とは何を見分けたいのか正の数判定は、「その値が“0 より大きい数値として扱ってよいか”どうか」を見分けることです。業務では「数量」「個数」「ページ番号」「在庫数」「ポイント」「金額(マイ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – NaN 判定

NaN 判定とは何を見分けたいのかNaN 判定は、「その値が“数値型ではあるけれど壊れた値(NaN)かどうか”」を見分けることです。NaN は “Not a Number” の略ですが、型としては n...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – 数値判定

「数値判定」とは何を見分けたいのかここでいう「数値判定」は、その値が「本当に“数値として扱っていいものか”どうか」を見分けることです。JavaScript では、"10" のような文字列も、10 のよ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – Promise 判定

Promise 判定とは何を見分けたいのかここでいう「Promise 判定」は、その値が「非同期処理を表す Promise なのかどうか」を見分けることです。業務コードでは、async/await や...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – Date 判定

「Date 判定」とは何を見分けたいのかここでいう「Date 判定」は、その値が「本物の Date オブジェクトかどうか」を見分けることです。業務では「日付を表す値」がたくさん出てきますが、その正体は...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – 関数判定

関数判定とは何を見分けたいのか「関数判定」は、その値が「本当に関数かどうか」を見分けることです。業務コードでは、「コールバックを受け取る」「オプションでフック関数を渡せる」「イベントハンドラを登録する...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – オブジェクト判定

「オブジェクト判定」とは何を見分けたいのか「オブジェクト判定」と聞くと、「typeof value === 'object' って書けばいいんでしょ?」と思いがちですが、実務ではそれだと足りません。J...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:型チェック – 配列判定

配列判定とは何か「配列判定」は、その値が「本当に配列かどうか」を見分けることです。JavaScript では、配列もオブジェクトの一種なので、typeof だけでは配列かどうかを判定できません。con...
Java

Java Tips | コレクション:不変Map生成

不変Map生成は「絶対に変わらない対応表」をコードで保証する技術不変Map(Immutable Map)は、「一度作ったらキーと値の対応が二度と変わらないMap」です。put も remove も c...
Java

Java Tips | コレクション:不変List生成

不変List生成は「絶対に変わらない約束」をコードに刻む技術不変List(Immutable List)は、「一度作ったら中身を二度と変えられないList」です。add も remove も set ...
Java

Java Tips | コレクション:Set初期化

Set初期化は「重複を許さない集まりの“性質”を決める」作業Setは「同じ要素を二度入れない」コレクションです。だからこそ、初期化の段階で「順序は必要か」「変更できるか」「固定の集合か」を決めておくこ...
Java

Java Tips | コレクション:Map初期化

Map初期化は「キーと値の世界の“ルール決め”」から始まるMapの初期化は、単に「空のMapを作る」「最初からいくつかのキーと値を入れておく」だけの話に見えますが、その瞬間に「変更できるか」「順序を保...
Java

Java Tips | コレクション:List初期化

List初期化は「最初の一歩で“性質”を決める」作業Listの初期化は、単に「空のリストを作る」「要素入りのリストを作る」だけの話に見えますが、実はこの瞬間に「変更できるか」「スレッドセーフか」「固定...
Java

Java Tips | 文字列処理:文字列比較IgnoreNull

「文字列比較IgnoreNull」は null に振り回されないための小さなルール業務システムでは、DBの値・画面入力・外部APIのレスポンスなど、「null かもしれない String」を比較する場...
Java

Java Tips | 文字列処理:SafeSubstring

SafeSubstring は「落ちない部分文字列」を返すための小さな盾String#substring は便利ですが、そのまま使うとすぐに例外を投げます。beginIndex や endIndex ...
Java

Java Tips | 文字列処理:MessageFormat簡易化

MessageFormat簡易化は「よく使う型を“いい感じに包む”」テクニックMessageFormat は、国際化(i18n)対応も視野に入れた強力なフォーマットクラスですが、初心者からすると「書き...
Java

Java Tips | 文字列処理:i18n文字列取得

i18n文字列取得は「画面の言葉をコードから切り離す」技術i18n(internationalization)は「多言語対応」のことです。i18n文字列取得は、「日本語・英語・中国語…など、ユーザーの...
Java

Java Tips | 文字列処理:プレースホルダ置換

プレースホルダ置換は「文字列に“名前付きの穴”をあけておく」技術プレースホルダ置換は、文字列の中に {name} や ${id} のような「名前付きの穴」をあけておき、あとからそこに値を流し込んで完成...
Java

Java Tips | 文字列処理:テンプレート展開

テンプレート展開は「決まった型に値を流し込む」技術テンプレート展開は、「ひな形(テンプレート)となる文字列の中に、動的な値を埋め込んで完成形の文字列を作る」テクニックです。メール本文の定型文に名前や日...
Java

Java Tips | 文字列処理:ランダム文字挿入

ランダム文字挿入は「ちょっとした“ノイズ”や“識別子”を混ぜる」テクニックランダム文字挿入は、既存の文字列の中に「ランダムな文字」を差し込む処理です。たとえば、IDの途中にランダム文字を混ぜて一意性を...
Java

Java Tips | 文字列処理:行数カウント

行数カウントは「テキストの大きさ」を測る基本ツール行数カウントは、「この文字列は何行あるか?」を数える処理です。ログの行数、テキストエリア入力の行数、ファイル内容の行数チェックなど、業務ではかなりよく...
Java

Java Tips | 文字列処理:単語数カウント

単語数カウントは「文章を“意味のかたまり”として扱う」ための基礎技術単語数カウントは、文章を「いくつの単語で構成されているか」を調べる処理です。英語の文章解析、検索キーワードの処理、タグ入力のチェック...
Java

Java Tips | 文字列処理:文字カウント

文字カウントは「制限」と「バリデーション」の土台になる文字カウントは、その名の通り「文字列の長さを数える」処理です。一見すごく地味ですが、業務システムではかなり重要な役割を持ちます。入力フォームで「名...
C#

C# Tips | 文字列処理:URLエンコード

はじめに 「URLエンコード」は“文字列をURLの世界に適応させる変換”URLエンコードは、「URLの中でそのまま使うと問題が出る文字を、安全な形に変換する」処理です。日本語、スペース、記号類などをそ...
C#

C# Tips | 文字列処理:Base64デコード

はじめに 「Base64デコード」は“梱包されたデータを元に戻す”作業前回の「Base64エンコード」は、バイナリや文字列を「壊れにくい文字列」に梱包する話でした。Base64デコードは、その逆です。...
C#

C# Tips | 文字列処理:Base64エンコード

はじめに 「Base64エンコード」は“中身を壊さずに文字列として運ぶための梱包”Base64エンコードは、「バイナリデータ(生のバイト列)を、安全に文字列として扱える形に変換する仕組み」です。メール...
C#

C# Tips | 文字列処理:SHA256生成

はじめに 「SHA256生成」は“文字列に指紋をつける”行為SHA256 は、どんな長さのデータでも「256ビット(32バイト)の固定長のハッシュ値」に変換する仕組みです。イメージとしては、「中身は見...
C#

C# Tips | 文字列処理:文字列ハッシュ化

はじめに 「文字列ハッシュ化」は“中身を見せずに、同じかどうかだけ知る”技文字列ハッシュ化は、一言でいうと、「文字列の中身を、一定長の“指紋”に変換すること」です。元の文字列がどれだけ長くても、ハッシ...
C#

C# Tips | 文字列処理:文字頻度カウント

はじめに 「文字頻度カウント」は“テキストのクセを数字で見る”道具文字頻度カウントは、「この文字列の中で、どの文字が何回出てくるか」を数える処理です。一見お勉強っぽいテーマですが、業務でもログ解析、入...
C#

C# Tips | 文字列処理:文字列反転

はじめに 「文字列反転」は“ただのお遊び”で終わらせるには惜しいテクニック「文字列を逆順にする」——いかにも練習問題っぽいテーマですが、実務でも意外と出番があります。ログやIDの一部をマスクして見せた...
C#

C# Tips | 文字列処理:指定行取得

はじめに 「指定行取得」は“長いテキストから、ピンポイントで1行だけ抜き出す”技ログファイル、設定ファイル、外部システムからのテキスト——業務では「長いテキストの中から、n行目だけ欲しい」という場面が...
C#

C# Tips | 文字列処理:行分割

はじめに 「行分割」は“テキストを“1行ずつの粒”にする基本技”長いテキストを扱うとき、「1行ずつ処理したい」「行番号を付けたい」「空行をスキップしたい」といったニーズは、業務システムでも頻出です。そ...
C#

C# Tips | 文字列処理:改行コード統一

はじめに 「改行コード統一」は“見えない差異でバグらないための下ごしらえ”業務でテキストを扱っていると、「見た目は同じなのに、なぜか比較で不一致になる」「CSVがうまく分割できない」みたいな、地味だけ...
C#

C# Tips | 文字列処理:SQLインジェクション対策

はじめに 「SQLインジェクション対策」は“文字列をいじる話ではなく、SQLの組み立て方の話”「文字列処理のユーティリティ」と聞くと、「シングルクォートを2つに置き換えるエスケープ関数を作ればいいのか...
C#

C# Tips | 文字列処理:CSVエスケープ

はじめに 「CSVエスケープ」は“カンマや改行を、1セルの中に閉じ込める”技業務で CSV を扱うとき、いちばんよくハマるのが、「値の中にカンマや改行が入っていて、列がズレる」という問題です。例えば、...
C#

C# Tips | 文字列処理:HTMLアンエスケープ

はじめに 「HTMLアンエスケープ」は“記号に戻して、元のテキストを取り出す”技さっきの「HTMLエスケープ」は、< や > を < や > に変えて「安全な文字列」にする処理でした。HT...
C#

C# Tips | 文字列処理:HTMLエスケープ

はじめに 「HTMLエスケープ」は“文字列をHTMLとして誤解させないための防御”Web画面を作るとき、ユーザーが入力した文字列をそのままHTMLに埋め込むと、とても危険です。なぜなら、<script...
C#

C# Tips | 文字列処理:省略文字列生成

はじめに 「省略文字列生成」は“長すぎる情報を、いい感じに切る”技業務システムを作っていると、「全部は見せられないけど、雰囲気は伝えたい」という場面がよく出てきます。ログに長いメッセージを全部出すと読...
PHP

PHP Tips | 文字列処理:URL・パス系 – 日本語ファイル名安全化

「日本語ファイル名安全化」で何をしたいのかイメージするまず、ゴールのイメージからはっきりさせます。「請求書_2025年3月分(最終版).pdf」「写真 ① 家族旅行@沖縄.jpg」こういう“人間には読...
PHP

PHP Tips | 文字列処理:URL・パス系 – パス正規化(../ 除去)

「パス正規化(../ 除去)」で何をしたいのかイメージするまず、ゴールのイメージからはっきりさせます。"/var/www/html/../shared/config.php" → "/var/www/...
PHP

PHP Tips | 文字列処理:URL・パス系 – パス結合ユーティリティ

「パス結合ユーティリティ」で何を楽にしたいのかまず、やりたいことのイメージからいきます。ベース: "/var/www/html"追加: "logs/app.log"→ "/var/www/html/l...
PHP

PHP Tips | 文字列処理:URL・パス系 – 拡張子除去

「拡張子除去」で何をしたいのかイメージするまず、ゴールをはっきりさせます。"/var/www/html/report/sales.csv" → "/var/www/html/report/sales"...
PHP

PHP Tips | 文字列処理:URL・パス系 – 拡張子取得

「拡張子取得」で何をしたいのかイメージするまず、ゴールをはっきりさせます。"/var/www/html/report/sales.csv" → "csv""/var/www/html/image/ph...
PHP

PHP Tips | 文字列処理:URL・パス系 – ファイル名のみ取得

「ファイル名のみ取得」で何をしたいのかイメージするまず、ゴールのイメージからはっきりさせます。"/var/www/html/report/2025/sales.csv" → "sales.csv""/...
PHP

PHP Tips | 文字列処理:URL・パス系 – 配列をクエリ文字列化

「配列をクエリ文字列化」で何をしたいのかまず、ゴールのイメージからいきます。['q' => 'php', 'sort' => 'desc', 'page' => 2]→ "q=php&sort=des...
PHP

PHP Tips | 文字列処理:URL・パス系 – クエリ文字列を配列化

「クエリ文字列を配列化」で何をしたいのかまず、ゴールのイメージからいきます。"?q=php&sort=desc&page=2"→ ['q' => 'php', 'sort' => 'desc', 'p...
PHP

PHP Tips | 文字列処理:URL・パス系 – URL からドメイン取得

「URL からドメイン取得」で何をしたいのかまずゴールをはっきりさせます。"" → "example.com""" → "sub.example.co.jp""" → "localhost""" → ...
PHP

PHP Tips | 文字列処理:URL・パス系 – URL 正規化

まず「URL 正規化」で何をしたいのかイメージする「URL 正規化」と聞くと難しく感じますが、やりたいことは意外とシンプルです。""""""これらが「全部同じ場所を指している」のに、文字列としてはバラ...
Java

Java Tips | 文字列処理:単語分割

単語分割は「検索・集計・ハイライト」の入口になる処理単語分割は、1本の文章を「単語ごと」にバラす処理です。英語なら "I love Java programming" を のように分けるイメージです。...
Java

Java Tips | 文字列処理:行分割

行分割は「1つの長い文字列を“行ごと”に扱えるようにする」技業務システムでは、ログ、テキストファイル、メール本文、エラーメッセージなど、「複数行の文字列」を扱う場面がたくさんあります。でも、Javaの...
Java

Java Tips | 文字列処理:後方一致

後方一致は「この文字列で終わっているか」を見るシンプルな判定後方一致は、「文字列が、ある決まった文字列で“終わっているか”どうか」を調べるテクニックです。ファイル名が .csv で終わるものだけ処理し...
Java

Java Tips | 文字列処理:前方一致

前方一致は「この文字列で始まっているか」を見るシンプルな判定前方一致は、「文字列が、ある決まった文字列で“始まっているか”どうか」を調べるテクニックです。商品コードが ABC で始まるものだけ抽出した...
Java

Java Tips | 文字列処理:部分一致

部分一致は「含まれているかどうか」を調べる基本テクニック業務システムで「部分一致」はめちゃくちゃよく出てきます。商品名に「りんご」が含まれているデータだけ検索したい。エラーメッセージに特定のキーワード...
Java

Java Tips | 文字列処理:回文判定

回文判定は「左右対称かどうか」を見るシンプルなアルゴリズム回文(かいぶん)は、「前から読んでも後ろから読んでも同じ文字列」のことです。英語なら level, noon、日本語なら「たけやぶやけた」「し...
Java

Java Tips | 文字列処理:文字列反転

文字列反転は「順番をひっくり返す」だけ…だけど侮れない文字列反転は、その名の通り「文字の並び順を逆にする」処理です。"ABC" → "CBA""山田太郎" → "郎太田山"一見すると「ただの遊び」みた...
Java

Java Tips | 文字列処理:日付形式チェック

日付形式チェックは「“存在しない日付”を早めにはじく」ための技業務システムでは、日付入力は定番中の定番です。生年月日、締め日、請求日、支払日、予約日、納期…。ここで何もチェックしないと、2024-13...
Java

Java Tips | 文字列処理:数値形式チェック

数値形式チェックは「パースする前に落とすためのフィルタ」業務システムでは、画面から入力された文字列を「整数として扱いたい」「金額として扱いたい」「小数として扱いたい」という場面が山ほどあります。ここで...
Java

Java Tips | 文字列処理:URL形式チェック

URL形式チェックは「“リンクとして成立しているか”を早めにはじく」ための技ユーザーに「ホームページURL」「コーポレートサイト」「SNSのURL」などを入力してもらう場面、結構ありますよね。ここで何...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 浮動小数変換

「浮動小数変換」とは何をするものか浮動小数変換は、「文字列や整数などの値を“小数を含む数値”として安全に扱える形にする」ことです。金額(小数点以下の税率や手数料)、割合、重さ、距離、レート、単価など、...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 整数変換

「整数変換」とは何をするものか整数変換は、「文字列や小数など、いろいろな値を“業務で扱いやすい整数”にそろえる」ことです。数量、個数、ページ番号、ID、在庫数、ポイント、金額(税抜き・税込みの端数処理...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 数値変換

「数値変換」とは何をするものか数値変換は、「文字列やその他の値を、最終的に“ちゃんとした数値”として扱える形にする」ことです。業務コードでは、フォーム入力、CSV、API のレスポンスなど、ほとんどが...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 真偽値変換

「真偽値変換」とは何をするものか真偽値変換は、「どんな値でも最終的に true か false に決める」ことです。業務コードでは、「この値を条件として扱っていいか」「フラグとしてオンなのかオフなのか...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 空オブジェクト判定

空オブジェクトとは何かをまず整理するJavaScript の「オブジェクト」は、キーと値のペアを入れておくための入れ物です。その中に自分が定義したプロパティが 1 つもない {} の状態を、ここでは「...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 空配列判定

空配列とは何かをまず押さえるJavaScript の「配列」は、複数の値を順番付きで持てるオブジェクトです。その中に要素が 1 つも入っていない配列、つまり [] が「空配列」です。const a =...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – 空文字判定

空文字とは何かをまず整理するJavaScript での「空文字」は、長さ 0 の文字列、つまり "" のことです。中に何も文字が入っていないけれど、「文字列という型の値」はちゃんと存在している状態です...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – null または undefined 判定

「null または undefined 判定」とは何か業務コードでは「値が 0 かどうか」よりも、「そもそも値が“あるか・ないか”」を判定する場面がとても多いです。ここでいう「ない」は、JavaScr...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – undefined 判定

JavaScript における undefined とはundefined は「まだ値が決まっていない」「存在しないものを見に行った」ときに JavaScript が自動的に使う特別な値です。プログラ...
JavaScript

JavaScript Tips | 基本・共通ユーティリティ:基本判定・変換 – null 判定

JavaScript における「null」とはまず「null」は、「ここには“意図的に”値がない」ということを表す特別な値です。たとえば「まだデータが来ていない」「検索したけど見つからなかった」など、...
Java

Java Tips | 文字列処理:郵便番号チェック

郵便番号チェックは「“7桁の数字っぽいもの”だけを通す」ための技住所入力フォーム、配送先登録、請求書の宛先設定…。業務システムで「郵便番号」を扱う場面もかなり多いですよね。ここで何もチェックしないと、...
Java

Java Tips | 文字列処理:電話番号チェック

電話番号チェックは「“電話っぽい数字”だけを通す」ための技業務システムでは、電話番号を入力してもらう場面が本当に多いです。問い合わせフォーム、会員登録、配送先情報、緊急連絡先…。ここでチェックをしない...
Java

Java Tips | 文字列処理:メール形式チェック

メール形式チェックは「“それっぽい文字列”を早めにはじく」ための技業務システムでは、ユーザーにメールアドレスを入力してもらう場面が山ほどあります。ログインID、問い合わせフォーム、会員登録、通知先設定...
Java

Java Tips | 文字列処理:伏字処理

伏字処理は「内容は伝えつつ、直接は書かない」ための技マスク処理は「個人情報などを見せていい範囲だけ残す」テクニックでした。一方で 伏字処理 は、もう少し“表現寄り”のテクニックです。NGワードを伏せた...
Java

Java Tips | 文字列処理:マスク処理

マスク処理は「見せていいところだけ見せる」ための技業務システムでは、「全部は見せちゃダメだけど、ある程度は見せたい情報」がたくさんあります。クレジットカード番号電話番号メールアドレス会員ID、社員番号...
PHP

PHP Tips | 文字列処理:フォーマット – HTML エスケープ

「HTML エスケープ」で何を守りたいのかまず、ここをちゃんとイメージしてほしいです。ユーザー入力をそのまま画面に出すと、こういうことが起きます。$name = $_GET['name'] ?? 'ゲ...
PHP

PHP Tips | 文字列処理:フォーマット – URL デコード

「URL デコード」で何をしたいのかイメージする前回の「URL エンコード」は、「生の文字列 → URL 用に安全な文字列(%E3%81…)」への変換でした。URL デコードは、その逆です。"Hell...
PHP

PHP Tips | 文字列処理:フォーマット – URL エンコード

そもそも「URL エンコード」とは何をしているのかまず、ざっくりイメージからいきます。"こんにちは PHP & URL" → "こんにちは PHP & URL" のまま URL に入れる → 文字化け...
PHP

PHP Tips | 文字列処理:フォーマット – 数字のみ抽出

「数字のみ抽出」でやりたいことをまずイメージするここでやりたいのは、こういうことです。"合計: 1,234円(税込)" → "1234""TEL: 03-1234-5678" → "031234567...
PHP

PHP Tips | 文字列処理:フォーマット – 英数字のみ抽出

「英数字のみ抽出」でやりたいことをイメージするまず、ゴールのイメージからはっきりさせます。"ユーザーID: user-001" → "user001""商品コード ABC-123-JP" → "ABC...
PHP

PHP Tips | 文字列処理:フォーマット – 数値以外除去

「数値以外除去」でやりたいことをイメージするまず、ゴールのイメージからはっきりさせます。"1,234" → "1234""¥9,800円" → "9800""TEL: 03-1234-5678" → ...
PHP

PHP Tips | 文字列処理:フォーマット – 金額フォーマット(通貨記号付き)

「通貨記号付きの金額フォーマット」でやりたいことをイメージするまず、ゴールのイメージからいきます。1000 → "¥1,000"1234567 → "¥1,234,567"1234.5 → "¥1,2...
PHP

PHP Tips | 文字列処理:フォーマット – 金額フォーマット(カンマ)

「金額フォーマット(カンマ)」でやりたいことをイメージするまず、やりたいことはとてもシンプルです。"1000" → "1,000""1000000" → "1,000,000""0" → "0""12...
PHP

PHP Tips | 文字列処理:フォーマット – 郵便番号フォーマット

まず「郵便番号フォーマット」でやりたいことをはっきりさせる業務で郵便番号を扱うとき、だいたいこんな状況になります。ユーザー入力はバラバラです。"1234567""123-4567""123−4567"...
PHP

PHP Tips | 文字列処理:フォーマット – 電話番号フォーマット

まず「電話番号フォーマット」でやりたいことをはっきりさせる業務で電話番号を扱うとき、だいたいこんな問題が出てきます。ユーザーが「ハイフンあり」「ハイフンなし」「スペース入り」などバラバラに入力してくる...
C#

C# Tips | 文字列処理:パディング(右)

はじめに 「右パディング」は“枠を決めて、左にそろえて並べる”技左パディングが「右寄せ」だとしたら、右パディングはその逆で「左寄せ」をきれいにそろえるためのテクニックです。業務システムだと、例えばこん...
C#

C# Tips | 文字列処理:パディング(左)

はじめに 「左パディング」は“桁をそろえて、きれいに並べる”技業務システムでは、こんな表示やデータ形式がよく出てきます。1 → 001 にしたい(3桁でゼロ埋め)A → A にしたい(4文字幅で右寄せ...
C#

C# Tips | 文字列処理:ランダム文字列生成

はじめに 「ランダム文字列生成」は“それっぽいIDやトークンを安全に作る”技業務システムで「ランダム文字列」が欲しくなる場面はたくさんあります。一時パスワードメール確認用トークン招待コードファイル名の...
C#

C# Tips | 文字列処理:UUID生成

はじめに 「UUID生成」は“かぶらないIDを雑に、でも安全に作る”技業務システムを作っていると、ほぼ必ず出てくるのが「一意なIDが欲しい」という場面です。注文ID、トランザクションID、ファイル名、...
C#

C# Tips | 文字列処理:電話番号検証

はじめに 「電話番号検証」は“ぐちゃっとした入力を、安全な数字列に整える”仕事電話番号入力って、郵便番号以上に“ゆらぎ”が激しいです。03-1234-56780901234567803−1234−56...
C#

C# Tips | 文字列処理:郵便番号検証

はじめに 「郵便番号検証」は“ゆらぎを受け止めて、きっちり7桁にそろえる”仕事郵便番号入力って、一見シンプルに見えますよね。「7桁の数字でしょ?」で終わりそうですが、実務ではそうはいきません。「123...
C#

C# Tips | 文字列処理:URL検証

はじめに 「URL検証」は“危なそうな文字列を入口で止めるフィルタ”業務システムで URL を扱う場面は多いですよね。ユーザーが入力したホームページURL外部サービスのコールバックURL管理画面で設定...
C#

C# Tips | 文字列処理:メールアドレス検証

はじめに 「メールアドレス検証」は“現実と割り切りのバランスを取る技”業務システムでほぼ確実に出てくるのが「メールアドレス入力欄」です。ここで悩ましいのが、「どこまで厳密にチェックするか?」です。RF...
C#

C# Tips | 文字列処理:日本語判定

はじめに 「日本語判定」は“文字列の中身の“顔ぶれ”を見分ける技業務システムだと、こんな要件がよく出てきます。氏名は日本語で入力してほしい(漢字・ひらがな・カタカナ)ログインIDは日本語禁止(英数字の...
C#

C# Tips | 文字列処理:英字のみ抽出

はじめに 「英字のみ抽出」は“コードやIDからアルファベットの芯だけを抜き出す”技業務システムでは、こんな文字列がよく出てきます。"UserID: AB123""商品コード: JP-2025-001"...
C#

C# Tips | 文字列処理:数字のみ抽出

はじめに 「数字のみ抽出」は“文字列から数値の芯だけを取り出す”技業務システムでは、こういう文字列がよく出てきます。"ID: 12345""注文No=AB-2025-00123""TEL 03-123...
C#

C# Tips | 文字列処理:正規表現置換

はじめに 「正規表現置換」は“パターンで探して、一気に書き換える”技一致判定は「合っているかどうか」、抽出は「取り出す」でした。正規表現置換は、そのさらに一歩先——「合っているところを、別の形に書き換...
C#

C# Tips | 文字列処理:正規表現抽出

はじめに 「正規表現抽出」は“文字列の中から欲しいところだけをすくい取る”技一致判定(IsMatch)は「ルールに合っているか?」を見るだけでしたが、業務ではそれだけでは足りません。ログの 1 行から...
C#

C# Tips | 文字列処理:正規表現一致判定

はじめに 「正規表現一致判定」は“文字列ルールをコードにする道具”業務システムでは、「この文字列はメールアドレス形式か?」「このコードは英数字だけか?」「この入力は3桁の数字か?」といった“ルールチェ...
C#

C# Tips | 文字列処理:文字列結合

はじめに 「文字列結合」は“バラした情報を一つの形にまとめる”技さっきまで「文字列分割」でバラす話をしてきましたが、業務ではその逆——「バラバラの情報を 1 本の文字列にまとめる」場面も同じくらい多い...
Java

Java Tips | 文字列処理:制御文字除去

制御文字除去は「“見えないゴミ”を取り除いてトラブルを防ぐ」技業務で外部システムからファイルを受け取ったり、コピー&ペーストされたテキストを扱っていると、画面には見えないのに、処理だけおかしくなる“謎...
Java

Java Tips | 文字列処理:JSONエスケープ

JSONエスケープは「文字列を“JSONとして壊さない形”にする」技業務でAPIを作ったり、フロントとバックエンドでJSONをやり取りしていると、「文字列をJSONに埋め込んだらパースエラーになった」...
Java

Java Tips | 文字列処理:SQLエスケープ

SQLエスケープは「文字列を“SQLの一部”として安全に扱う」ための技…なんだけど最初に、いちばん大事なことから言います。業務・実務では「SQLエスケープを書けるようになる」ことよりも、「SQLエスケ...
Java

Java Tips | 文字列処理:HTMLアンエスケープ

HTMLアンエスケープは「エンコードされた文字を“元の文字”に戻す」技HTMLエスケープは、< や & を < や & に変換して「安全に表示する」ための技でした。HTMLアンエスケープ...
Java

Java Tips | 文字列処理:HTMLエスケープ

HTMLエスケープは「文字列を“ただの文字”として安全に表示する」技Web画面に文字列を表示するとき、その文字列が「HTMLとして解釈されるか」「ただの文字として扱われるか」は、とても重要です。<b>...
Java

Java Tips | 文字列処理:改行統一

改行統一は「バラバラな改行コードを“同じルール”にそろえる」技業務システムを書いていると、いろんなところからテキストが入ってきます。Windows で作られたファイル、Linux サーバ上のログ、We...
Java

Java Tips | 文字列処理:中央寄せ

中央寄せは「タイトルや見出しを“きれいに見せる”」ための技左寄せ・右寄せは「読みやすさ」「桁そろえ」のためのテクニックでしたが、中央寄せ(センタリング) はどちらかというと「見た目のバランス」を整える...
Java

Java Tips | 文字列処理:右寄せ

右寄せは「桁をそろえて“数字やコードを読みやすくする”」技左寄せが「文字を左にそろえて見やすくする」技だとしたら、右寄せは「数字や桁ものを右にそろえて、比較しやすくする」技です。固定長ファイル、帳票、...
Java

Java Tips | 文字列処理:左寄せ

左寄せは「人間が読むために“左側をそろえる”」技パディングの話で「左パディング」「右パディング」をやりましたが、その中でも 左寄せ は「人間が読むときの見やすさ」に直結するテクニックです。固定長ファイ...
Java

Java Tips | 文字列処理:パディング

パディングは「長さをそろえて“機械が扱いやすい文字列”にする」技業務システムでは、「桁数が決まっている文字列」がよく出てきます。顧客番号は10桁、請求書番号は8桁、固定長ファイルの項目は右詰め・左詰め...
C#

C# Tips | 文字列処理:文字列分割

はじめに 「文字列分割」は“バラしてから意味をつける”ための基本技業務システムでは、「1本の文字列の中に、複数の値が詰め込まれている」ことがよくあります。CSV の 1 行、区切り文字付きの設定値、ユ...
C#

C# Tips | 文字列処理:ケバブケース変換

はじめに 「ケバブケース変換」は“フロントエンド世界との共通語”C# の世界では UserName(PascalCase)や userName(camelCase)が主流ですが、フロントエンドや一部の...
C#

C# Tips | 文字列処理:スネークケース変換

はじめに 「スネークケース変換」は“別世界の命名ルールをつなぐアダプタ”C# の世界では UserName や OrderId のような PascalCase/camelCase が主流ですが、業務で...
C#

C# Tips | 文字列処理:キャメルケース変換

はじめに 「キャメルケース変換」は“名前をそろえるためのルールエンジン”業務で C# を書いていると、「名前の書き方」をそろえたくなる場面がたくさん出てきます。JSON のプロパティ名、API のパラ...
C#

C# Tips | 文字列処理:小文字変換

はじめに 「小文字変換」は“ゆるく受け入れて、きっちり比べる”ための道具大文字変換と同じくらい、業務コードでよく使うのが「小文字変換(Lower)」です。特に、こんな場面で出てきます。ユーザー入力を小...
C#

C# Tips | 文字列処理:半角→全角

はじめに 「半角→全角」は“見た目とフォーマットをそろえるための技”さっきの「全角→半角」は、検索や比較を安定させるための前処理でした。一方で「半角→全角」は、どちらかというと「見た目」と「フォーマッ...
C#

C# Tips | 文字列処理:全角→半角

はじめに なぜ「全角→半角」が業務でこんなに大事なのか日本語の業務システムでは、「見た目は同じなのに、文字コードが違うせいで一致しない」という事故が本当に多いです。「A」と「A」、「1」と「1」、「@...
C#

C# Tips | 文字列処理:空白トリム

はじめに 「空白トリム」は“バグの温床”を一気に減らすお掃除スキル業務システムで文字列を扱うとき、地味だけどめちゃくちゃ効くのが「空白トリム」です。ユーザー入力、CSV、設定ファイル、外部API――そ...
C#

C# Tips | 文字列処理:null安全文字列

はじめに 「null安全文字列」は“落ちないコード”への第一歩C# で業務コードを書いていると、かなりの頻度で出てくる例外があります。NullReferenceException――いわゆる「ヌルポ」...
PHP

PHP Tips | 文字列処理:検索・置換 – 単語境界のみ置換

「単語境界のみ置換」って何をしたいのかまず、やりたいことのイメージからいきます。「単語境界のみ置換」は、こういうニーズです。「cat という単語だけを dog に置き換えたい。でも、category ...
PHP

PHP Tips | 文字列処理:検索・置換 – 配列で一括置換

「配列で一括置換」でやりたいことをイメージするまず、やりたいことはこうです。1回の処理で、「複数の文字列」をまとめて置き換えたい。例えば、こんなケースです。元の文字列: "PHP7 と PHP8 を比...
PHP

PHP Tips | 文字列処理:検索・置換 – 大文字小文字を無視して置換

「大文字小文字を無視して置換」ってどういうこと?まず、やりたいことのイメージからいきます。元の文字列: "Hello WORLD, hello world.""hello" を "Hi" に置き換えた...
PHP

PHP Tips | 文字列処理:検索・置換 – 正規表現置換

正規表現置換って何をするもの?まずイメージからいきます。正規表現「マッチ」は、「この文字列がパターンに当てはまるか?」を調べるものでした。正規表現「置換」は、「パターンに当てはまる“部分”を、別の文字...
PHP

PHP Tips | 文字列処理:検索・置換 – 正規表現マッチ

正規表現マッチって何をするもの?まずイメージからいきます。「正規表現マッチ」は、文字列が「あるパターン」に当てはまるかどうかをチェックするための仕組みです。「パターン」というのがポイントで、単なる「部...
PHP

PHP Tips | 文字列処理:検索・置換 – すべて含むかチェック

「すべて含むかチェック」でやりたいことをイメージするここでやりたいのはこういう判定です。「この文章の中に、指定した複数キーワードが“全部”含まれているか?」例で見ると分かりやすいです。本文: "本日は...
PHP

PHP Tips | 文字列処理:検索・置換 – 複数キーワードのいずれかを含むか

「複数キーワードのいずれかを含むか」とは何をしたいのかやりたいことはこうです。「この文章の中に、NGワード一覧のどれか1つでも含まれていたらアウトにしたい」イメージしやすい例でいうと:本文: "本日は...
PHP

PHP Tips | 文字列処理:検索・置換 – 後方一致チェック

「後方一致チェック」でやりたいことをまずイメージする「後方一致」は、こういう判定のことです。文字列: "report.csv"キーワード: ".csv" → 最後が一致している(true)キーワード:...
PHP

PHP Tips | 文字列処理:検索・置換 – 前方一致チェック

「前方一致チェック」でやりたいことをまずイメージする「前方一致」は、こういう判定のことです。文字列: "ABC123"キーワード: "ABC" → 先頭が一致している(true)キーワード: "AB"...
PHP

PHP Tips | 文字列処理:検索・置換 – 部分一致チェック

「部分一致チェック」でやりたいことをまずイメージするやりたいことはシンプルです。「ある文字列の中に、探したいキーワードが含まれているかどうか」を調べたい。例えば、こういう判定です。本文: "本日は晴天...
Java

Java Tips | 文字列処理:先頭大文字化

先頭大文字化は「ちょっとだけ“きれいな名前・ラベル”にする」技キャメルケースやスネークケースほど大げさではないけれど、業務で地味によく出てくるのが 「先頭だけ大文字にしたい」 というニーズです。use...
Java

Java Tips | 文字列処理:ケバブケース変換

ケバブケース変換は「Java の名前を“URL やフロントエンドの世界”に合わせる」技ここまで出てきたキャメルケース(userName)、スネークケース(user_name)に続いて、フロントエンドや...
Java

Java Tips | 文字列処理:スネークケース変換

スネークケース変換は「Java の名前を“DB や設定ファイルの世界”に合わせる」技キャメルケース変換が「外の世界を Java っぽくする」技だとしたら、スネークケース変換はその逆で、「Java の名...
Java

Java Tips | 文字列処理:キャメルケース変換

キャメルケース変換は「バラバラな単語を“Java っぽい名前”にそろえる」技業務システムを書いていると、こんな文字列がよく出てきます。user_nameUSER_NAMEuser-nameuser n...
Java

Java Tips | 文字列処理:小文字変換

小文字変換は「表記ゆれを“ゆるく受け止める”ための技大文字変換が「全部そろえてガチっと比較する」イメージだとしたら、小文字変換は「とりあえずぜんぶ丸めて、ゆるく受け止める」イメージに近いです。GET,...
Java

Java Tips | 文字列処理:大文字変換

大文字変換は「バラバラな表記を“同じもの”として扱う」ための技業務システムでは、ユーザーや外部システムが好き勝手な表記でデータを送ってきます。abc, Abc, ABC が混ざっていたり、jp, JP...
Java

Java Tips | 文字列処理:半角→全角

半角→全角は「機械っぽい文字を“日本語の紙”に合わせる」技全角→半角は「検索や比較のために揃える」話でしたが、半角→全角はどちらかというと「見た目・帳票・印刷物の世界」に寄ったニーズが多いです。例えば...
Java

Java Tips | 文字列処理:全角→半角

全角→半角は「バラバラな入力を“同じもの”として扱う」ための技業務システムで一番よくある地味トラブルの一つが、これです。「1234」と「1234」が別物として扱われてしまう「ABC」と「ABC」で検索...
Java

Java Tips | 文字列処理:英字抽出

英字抽出は「ごちゃ混ぜ文字列から“アルファベットだけ”をすくい上げる」技業務システムでは、「商品名に英字と数字と日本語が混ざっている」「ログにIDやコードが埋まっている」「外部システムから来た文字列が...
Java

Java Tips | 文字列処理:数字抽出

数字抽出は「文章の中から“数値だけ”をすくい上げる」技業務システムでは、ログメッセージ、メール本文、外部システムからのテキスト、Excel から吐き出された中途半端な文字列など、「文字と数字がごちゃ混...
Java

Java Tips | 文字列処理:正規表現置換

正規表現置換は「パターンに合うところだけ賢く書き換える」技正規表現マッチが「パターンに合う部分を見つける」技だとしたら、正規表現置換は「パターンに合う部分だけを、狙った形に書き換える」技です。「電話番...
Java

Java Tips | 文字列処理:正規表現マッチ

正規表現マッチは「文字列の中から“パターン”を見つける」技文字列分割が「区切りで切る」技だとしたら、正規表現マッチは「ルール(パターン)に合う部分だけを見つける」技です。「メールアドレスかどうかチェッ...
Java

Java Tips | 文字列処理:文字列分割

文字列分割は「一つの塊を意味ごとに切り出す」技業務システムでは、CSVの1行、ログ1行、設定ファイルの1行、HTTPヘッダ、クエリ文字列など、「一つの長い文字列を、意味のあるピースに切り分けたい」場面...
Java

Java Tips | 文字列処理:高速StringBuilder

「高速StringBuilder」は“たくさんつなぐ”場面を丸ごと任せる道具前回の「文字列連結」で触れたとおり、+ 連結は少ない回数なら問題ありませんが、ループの中で何百回・何千回と連結するときは、S...
Java

Java Tips | 文字列処理:文字列連結

文字列連結は「小さなピースを一つのメッセージにまとめる」技業務システムでは、ログメッセージ、SQL、URL、エラーメッセージ、メール本文など、「いくつかの値を組み合わせて一つの文字列にしたい」場面がひ...
C#

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

はじめに 「ファイル復元」は“やらかした後に助けてくれる最後の味方”バックアップを取るだけでは、まだ片手落ちです。本当に大事なのは、「壊したあとに、元に戻せること」です。設定ファイルを上書きしてアプリ...
C#

C# Tips | ファイル・ディレクトリ操作:世代管理バックアップ

はじめに 「世代管理バックアップ」は“時間を巻き戻すための仕組み”バックアップを「とりあえずコピーしておく」だけで終わらせると、すぐにこうなります。バックアップフォルダがファイルだらけでカオスになる。...
C#

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

はじめに 「バックアップ作成」は“事故前提”でコードを書く技術業務システムでファイルを扱うなら、「バックアップをどう残すか」は避けて通れません。人が操作をミスることもあるし、プログラムがバグることもあ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル名重複回避

はじめに なぜ「ファイル名重複回避」が必要になるのか業務でファイルを扱っていると、かなりの頻度でこういう状況に出会います。同じフォルダに同名ファイルがすでに存在している。ユーザーが同じ名前で何度もエク...
C#

C# Tips | ファイル・ディレクトリ操作:禁則文字除去

はじめに 「禁則文字除去」は“事故る前の最後のガード”業務でファイル名やフォルダ名を「プログラム側で決める」こと、よくありますよね。ユーザーが入力したタイトルをそのままファイル名にしたい。日付やIDを...
C#

C# Tips | ファイル・ディレクトリ操作:パス安全化

はじめに 「パス安全化」は“ファイルを触る前の身だしなみ”業務でファイルを扱うコードを書くとき、本当によく出てくるのが「パス文字列」です。ユーザー入力、設定ファイル、外部システムから渡される値――それ...
C#

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

はじめに 「ZIP解凍」ができると“受け取ったファイルをさばける人”になる業務だと、相手から渡されるファイルがそのままではなく、ZIP で固められていることが本当に多いです。日次バッチの結果、帳票一式...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル圧縮(ZIP)

はじめに 「ZIP を扱える」と業務ツールの格が一段上がる業務でよくあるシーンです。複数ファイルを ZIP にまとめてメールで送りたい。バックアップを ZIP で固めて日付ごとに保存したい。外部システ...
C#

C# Tips | ファイル・ディレクトリ操作:大容量ファイル逐次読み込み

はじめに 「全部読み込む」はもう卒業しよう大きなログファイル、巨大な CSV、数 GB のテキスト。こういうファイルを相手にするときに、File.ReadAllText や File.ReadAllL...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル監視(FileSystemWatcher)

はじめに 「ファイル監視」ができると“自動処理”の世界が一気に広がる業務システムを書いていると、こんな要望がよく出てきます。フォルダにファイルが置かれたら、自動で取り込んで処理したい。設定ファイルが書...
C#

C# Tips | ファイル・ディレクトリ操作:ログローテーション

はじめに なぜ「ログローテーション」が必要になるのか業務システムを真面目に運用し始めると、必ずと言っていいほど「ログファイルがデカくなりすぎる問題」にぶつかります。1つのログファイルに延々と書き続ける...
C#

C# Tips | ファイル・ディレクトリ操作:TSV対応CSV

はじめに 「TSV対応CSV」とは“区切り文字を意識できる人”になること業務でファイル連携をしていると、こういうことが起きます。CSV ください、と言われたのに、実際に渡されるのはタブ区切り(TSV)...
C#

C# Tips | ファイル・ディレクトリ操作:CSV書き込み

はじめに 「CSV書き込み」ができると“外部連携の入口”が開くCSV 読み込みが「外部からデータをもらう入口」だとしたら、CSV 書き込みは「外部にデータを渡す出口」です。集計結果を CSV で出力し...
C#

C# Tips | ファイル・ディレクトリ操作:CSV読み込み

はじめに 「CSV読み込み」がちゃんと書けると一気に“業務っぽく”なる業務システムで一番よく出てくるファイル形式、それが CSV です。売上データ、マスタデータ、ログのエクスポート、外部システムとの連...
C#

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

はじめに 「分割したなら、いつか必ず結合する」前回は「ファイル分割」でしたね。大きすぎるファイルを扱いやすくするために分けたなら、どこかのタイミングで「元に戻したい」「まとめて扱いたい」というニーズが...
C#

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

はじめに 「ファイル分割」は“逃げ”ではなく戦略業務をやっていると、だいたい一度はこうなります。ログがバカみたいに大きくなって、テキストエディタで開けない。外部システムから「1 ファイル 10MB ま...
C#

C# Tips | ファイル・ディレクトリ操作:テキスト一括置換

はじめに 「テキスト一括置換」は業務の“地味だけど超重要”作業業務システムを書いていると、こんなことがよく起きます。古いコードや設定ファイルのパスを一気に変えたい。ログファイルや CSV の中の特定の...
C#

C# Tips | ファイル・ディレクトリ操作:BOM付きUTF-8保存

はじめに なぜ「BOM付きUTF-8保存」が業務で大事なのか業務システムだと、こんな場面がよく出てきます。外部システムから「UTF-8(BOM付き)で送ってください」と仕様で指定されている。Excel...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルエンコーディング判定

はじめに 「エンコーディング判定」が分からないとハマる世界業務でテキストファイル(CSV、ログ、設定ファイルなど)を扱うとき、ほぼ必ず出てくるのが「このファイル、何のエンコーディングで書かれているの?...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル文字数カウント

はじめに 「文字数カウント」は“なんとなく”で書くと危ない「ファイルの文字数を数える」――これも一見シンプルですが、実務では意外と奥が深いです。文字数でバリデーションしたい(例:1 万文字を超える説明...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル行数カウント

はじめに 「行数を数える」だけなのに、なぜユーティリティにするのか「ファイルの行数カウント」って、一見すごく地味ですよね。でも業務では、ログ解析、CSV のレコード数チェック、インポート前の件数確認、...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル差分検出

はじめに 「違うかどうか」から一歩進んで「どこが違うか」前回の「ファイル内容比較」は、「同じか」「違うか」を true / false で判定する話でした。でも、業務ではそれだけでは足りない場面がよく...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル内容比較

はじめに 「同じファイルか?」は業務でめちゃくちゃ重要業務システムを書いていると、こんなことを知りたくなる場面がよくあります。バックアップ前:「前回のバックアップと中身が同じなら、コピーをスキップした...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルロック判定

はじめに なぜ「ファイルロック判定」が業務で重要なのか業務システムでは、「今このファイル、誰かが開いていないかな?」を気にしなければいけない場面がよくあります。たとえば、次のような状況です。他のプロセ...
C#

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

はじめに 一時フォルダは「作業用の安全な砂場」一時ファイルと同じくらい、業務でよく使うのが「一時フォルダ」です。大きな ZIP を展開して中身を処理するとき、複数ファイルを一時的に並べてからまとめてア...
Java

Java Tips | 基本ユーティリティ:URLデコード

URLデコードは「URLの中身を人間とプログラムの世界に戻す」技URLエンコードが「暴れそうな文字を URL の中で安全な形に変える」技だとしたら、URLデコードはその逆で、「%E3%81%82 みた...
Java

Java Tips | 基本ユーティリティ:URLエンコード

URLエンコードは「URLの中で暴れる文字をおとなしくさせる」技業務システムで外部APIを叩くとき、ブラウザからのリダイレクトURLを組み立てるとき、クエリパラメータを自前で作るとき。そのたびに出てく...
Java

Java Tips | 基本ユーティリティ:Base64デコード

Base64デコードは「文字列を元の世界に連れ戻す」技Base64エンコードが「バイナリを文字列の世界に連れてくる」技だとしたら、Base64デコードはその逆で、「Base64文字列から、元のバイト列...
Java

Java Tips | 基本ユーティリティ:Base64エンコード

Base64エンコードは「バイナリを文字の世界に連れてくる」技業務システムでは、画像・PDF・バイナリデータを「そのままでは扱いにくい場所」に載せたい場面がよくあります。例えば、JSON のフィールド...
Java

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

XMLパースは「外部仕様を自分のオブジェクトに落とし込む」技XML生成が「こちらの世界のデータを外に出す」なら、XMLパースはその逆で、「外の世界から来た XML を、自分の世界(Java のオブジェ...
Java

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

XML生成は「機械にも人にも読める構造を作る」技JSON が主流になった今でも、業務の世界では XML が普通に生きています。古い外部システム連携、バッチの入出力、設定ファイル、帳票レイアウト定義など...
Java

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

JSONパースは「外の世界のデータを自分の型に落とす」技JSON文字列化が「Javaのオブジェクトを外の世界に出す」技だとしたら、JSONパースはその逆で、「外の世界から来た JSON を、自分の型に...
Java

Java Tips | 基本ユーティリティ:JSON文字列化

JSON文字列化は「データを言語の壁から解放する」技業務システムでは、フロントエンドとの通信、外部API連携、ログ出力、設定ファイルなど、あらゆるところで JSON が使われます。Java のオブジェ...
Java

Java Tips | 基本ユーティリティ:TSV対応

TSV対応は「CSVの兄弟をちゃんと扱う」技業務システムでは、CSV だけでなく TSV(Tab Separated Values)もよく出てきます。「Excel からタブ区切りで出したデータ」「ログ...
Java

Java Tips | 基本ユーティリティ:CSV分解

CSV分解は「カンマの意味をちゃんと理解する」技CSV を読むときに、line.split(",") と書きたくなる気持ちはよく分かります。でもそれをやると、名前にカンマが入っていたり、ダブルクォート...
Java

Java Tips | 基本ユーティリティ:CSV一行生成

CSV一行生成は「地味だけど壊れやすいところを固める」技業務システムで CSV を出力するとき、「とりあえずカンマでつなげばいいでしょ」と思って書き始めると、すぐにハマります。名前にカンマが入っていた...
Java

Java Tips | 基本ユーティリティ:ファイル名生成

ファイル名生成は「衝突させずに意味を持たせる」ための技業務システムでは、ログファイル、レポート出力、アップロードファイルの保存先など、「新しいファイル名を決める」場面が山ほどあります。ここで適当に "...
Java

Java Tips | 基本ユーティリティ:MIMEタイプ判定

MIMEタイプ判定は「中身の種類をちゃんと確認する」ための技拡張子はあくまで「ラベル」でしかなくて、virus.exe を virus.png にリネームすることも簡単にできます。業務システムでファイ...
Java

Java Tips | 基本ユーティリティ:拡張子取得

拡張子取得は「ファイルの中身を推測するためのラベル取り」業務システムでは、「CSV だけ受け付けたい」「画像ファイルだけ処理したい」「ログローテーションで .log だけ対象にしたい」など、「ファイル...
Java

Java Tips | 基本ユーティリティ:ファイルサイズ取得

ファイルサイズ取得は「重さを意識した設計」をするための技業務システムでは、「このファイル、本当にメモリに全部載せて大丈夫?」「アップロードされたファイルが想定より巨大じゃない?」といった“重さ”の感覚...
PHP

PHP Tips | 文字列処理:変換系 – kebab-case → camelCase

kebab-case と camelCase のイメージをそろえるまずは形の違いをはっきりさせましょう。kebab-case はこういうスタイルです。user-namecreated-atmax-re...
PHP

PHP Tips | 文字列処理:変換系 – camelCase → snake_case

camelCase と snake_case のイメージをそろえるまずは形の違いを頭の中でハッキリさせましょう。camelCase はこういうスタイルです。userNamecreatedAtmaxRe...
PHP

PHP Tips | 文字列処理:変換系 – snake_case → camelCase

まず「snake_case」と「camelCase」の違いをちゃんとイメージする最初に、形の違いをはっきりさせましょう。snake_case 例:user_namecreated_atmax_retr...
PHP

PHP Tips | 文字列処理:変換系 – 単語の先頭のみ大文字

「単語の先頭のみ大文字」にしたいって、具体的にどういうこと?まずゴールのイメージからいきます。before: hello worldafter : Hello Worldbefore: user na...
PHP

PHP Tips | 文字列処理:変換系 – 英字をすべて大文字

「英字をすべて大文字」にする目的を整理するまず、「なんでわざわざ全部大文字にするのか?」をはっきりさせておきます。よくある目的はこんな感じです。コードやIDを「大文字で統一」して見た目とルールを揃えた...
PHP

PHP Tips | 文字列処理:変換系 – 英字をすべて小文字

「英字をすべて小文字」にする目的をはっきりさせるまず、なぜ「全部小文字」にしたいのかを整理しておきます。よくある目的はこんな感じです。ユーザー名やログインIDを「大文字・小文字を区別せずに扱いたい」メ...
PHP

PHP Tips | 文字列処理:変換系 – ひらがな → カタカナ

「ひらがな → カタカナ」でやりたいことまずゴールをはっきりさせます。「ひらがなで書かれた文字列」を、「同じ読みのカタカナ」に変換したい。例えば、こんな文字列があるとします。やまだ たろうかたかなすー...
PHP

PHP Tips | 文字列処理:変換系 – カタカナ → ひらがな

「カタカナ → ひらがな」でやりたいことまずゴールをはっきりさせます。「カタカナで書かれた文字列」を、「同じ読みのひらがな」に変換したい。例えば、こんな文字列があるとします。ヤマダ タロウカタカナスー...
PHP

PHP Tips | 文字列処理:変換系 – 半角 → 全角変換

「半角 → 全角変換」でやりたいことここで目指したいのはこういう状態です。入力された「半角の英数字・記号・カナ」などを、システム内部では「全角」にそろえて扱いたい。例えば、ユーザーがこう入力してきたと...
PHP

PHP Tips | 文字列処理:変換系 – 全角 → 半角変換

「全角 → 半角変換」でやりたいことまずゴールをはっきりさせます。ユーザーが入力した「全角の英数字・記号・スペース」などを、システム内部では「半角」にそろえたい。例えば、こういう入力が来ることがありま...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 固定長になるよう左パディング

「固定長になるよう左パディング」とは何かイメージとしてはこうです。文字列を「決まった長さ」にそろえるために、足りない分を左側に 0 やスペースで埋めること。特に「数値っぽい項目」でよく使います。1 →...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 固定長になるよう右パディング

「固定長になるよう右パディング」とは何かまずイメージからいきましょう。文字列を「決まった長さ」にそろえるために、足りない分を右側にスペースや 0 などで埋めることこれが「右パディング」です。例えば、外...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 最小文字数チェック

「最小文字数チェック」がやりたいこと「最大文字数チェック」が「長すぎないか?」を見るのに対して、「最小文字数チェック」はこうです。入力された文字列が「○文字以上あるか?」をチェックして、短すぎたらエラ...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 最大文字数チェック

「最大文字数チェック」がやりたいことやりたいことはシンプルです。入力された文字列が「○文字以内かどうか」をチェックして、長すぎたらエラーにしたい。例えば、ニックネームは 30文字まで自己紹介は 200...
PHP

PHP Tips | 文字列処理:文字数・切り出し – バイト数で切り出し

「バイト数で切り出し」とは何をしているのかここまでずっと「文字数」で安全に扱う話をしてきましたが、今回のテーマはあえて逆方向——「バイト数で切り出す」です。文字数ではなく、「何バイトまで」という単位で...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 指定開始位置から安全に部分取得

このユーティリティがやりたいことの全体像「指定開始位置から安全に部分取得」というのは、ざっくり言うとこういうことです。文字列の「何文字目から」「何文字分」を取り出したい。しかも、日本語(マルチバイト)...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 単語単位で省略

「単語単位で省略」がやりたいことこれまでの「指定文字数で省略」は、「文字数」でバッサリ切るものでした。今回の「単語単位で省略」は、もう一歩だけ気を遣った省略です。文章を途中でブツッと切るのではなく、「...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 指定文字数で省略(省略記号なし)

「指定文字数で省略(省略記号なし)」がやりたいことここでやりたいのは、とてもシンプルです。文字列が長すぎるときに、「指定した文字数まで」でバッサリ切る。末尾に「…」などの省略記号は付けない。例えば、タ...
PHP

PHP Tips | 文字列処理:文字数・切り出し – 指定文字数で省略(…付き)

「指定文字数で省略(…付き)」がやりたいことやりたいことはシンプルです。文字列が長すぎるときに、「指定した文字数まで」で切り、末尾に「…(三点リーダー)」を付けて短く見せる。例えば、タイトルがこうだと...
PHP

PHP Tips | 文字列処理:文字数・切り出し – マルチバイト安全な文字数取得

「マルチバイト安全な文字数取得」とは何かまず前提として、PHP の文字列は「バイト列」です。strlen() は「文字数」ではなく「バイト数」を返します。ここが最初の落とし穴です。UTF-8 で日本語...
C#

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

はじめに 一時ファイルは「使い捨ての作業机」業務システムを書いていると、「ちょっとだけデータを置いておきたい」場面がよく出てきます。たとえば、大きなファイルを分割して処理するときの中間結果、ダウンロー...
C#

C# Tips | ファイル・ディレクトリ操作:パス正規化

はじめに 「パス正規化」って何をすること?「パス正規化」という言葉、ちょっと堅いですよね。でもやっていることはシンプルで、「バラバラな書き方のパスを、同じルールで整える」ことです。同じ場所を指している...
C#

C# Tips | ファイル・ディレクトリ操作:パス結合

はじめに なぜ「パス結合」が業務でめちゃくちゃ大事なのかファイルやディレクトリを扱うコードを書くとき、ほぼ必ず出てくるのが「パスの結合」です。たとえば「ログフォルダのパス」と「ファイル名」からフルパス...
C#

C# Tips | ファイル・ディレクトリ操作:絶対パス→相対パス

はじめに なぜ「絶対パス→相対パス」が必要になるのかさっきまでは「相対パス → 絶対パス」をやりましたが、現場ではその逆、「絶対パス → 相対パス」に変換したい場面もかなり多いです。例えばこんなケース...
C#

C# Tips | ファイル・ディレクトリ操作:相対パス→絶対パス

はじめに なぜ「相対パス→絶対パス」が業務で重要なのか業務システムでは、設定ファイルやログ出力先などを「相対パス」で書くことがよくあります。たとえば logs\app.log や ..\config\...
C#

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

はじめに なぜ「ディレクトリ一覧取得」が業務で重要なのか業務システムでは、ファイルだけでなく「フォルダ(ディレクトリ)」を扱う場面が非常に多いです。たとえば次のようなケースです。日付ごとにフォルダが作...
C#

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

はじめに なぜ「ファイル一覧取得」が業務の入り口になるのか業務システムでファイルを扱う処理は、ほぼ必ず「まず対象フォルダのファイル一覧を取る」ところから始まります。たとえば「このフォルダの CSV を...
C#

C# Tips | ファイル・ディレクトリ操作:指定拡張子検索

はじめに なぜ「指定拡張子検索」が業務で重要なのか業務システムでは、「.csv だけ集めてバッチ処理したい」「.log だけを圧縮したい」「.bak だけをバックアップフォルダに移動したい」といった、...
C#

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

はじめに なぜ「空フォルダ削除」が業務で役に立つのか業務システムでファイルを扱っていると、ログやバックアップ、インポート・エクスポート用の一時フォルダなどがどんどん増えていきます。ファイルは削除してい...
C#

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

はじめに 「ファイル属性変更」ができると何が嬉しいのか業務でファイルを扱っていると、こんなことが起きます。「ユーザーがコピーしてきたファイルが読み取り専用で、削除できない」「ログファイルを隠しファイル...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル読み取り専用判定

はじめに なぜ「読み取り専用判定」が業務で効いてくるのか業務システムでファイルを扱うとき、「このファイル、書き込んでいいのか?」「上書きしようとしたら失敗した」「削除できないと思ったら読み取り専用だっ...
C#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

「HTML タグ除去」とは何かPHP で文字列を扱っていると、<p>, <a>, <div> のような「HTML タグ」が含まれていることがあります。ブラウザで表示する分には問題ありませんが、「純粋な...
スポンサーリンク
タイトルとURLをコピーしました