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文字列を短...
スポンサーリンク