@lifehacker

スポンサーリンク
JavaScript

JavaScript Tips | 配列ユーティリティ:順次処理

テーマの整理:「順次処理」とは何かここでいう「順次処理」は、配列の要素を「必ず 1 件ずつ、順番に」処理していくパターンのことです。特に「処理が非同期(async)」なときに、順番をきちんと守りたい場...
JavaScript

JavaScript Tips | 配列ユーティリティ:Promise 配列制御

テーマの整理:「Promise 配列制御」とは何か「Promise 配列制御」というのは、ざっくり言うと「複数の非同期処理(Promise)を、配列としてまとめて扱い、どう待つか・どう制御するかを決め...
JavaScript

JavaScript Tips | 配列ユーティリティ:非同期 reduce

そもそも reduce と「非同期 reduce」の違いArray.prototype.reduce は、配列を 1 つの値に“畳み込む”ための関数です。合計を出したり、オブジェクトに集計したり、「最...
JavaScript

JavaScript Tips | 配列ユーティリティ:非同期 filter

何をしたいユーティリティか:「非同期 filter」「非同期 filter」は、配列の各要素に対して「async な条件チェック」を行い、条件を満たした要素だけを残すユーティリティです。普通の Arr...
JavaScript

JavaScript Tips | 配列ユーティリティ:非同期 map

何をしたいユーティリティか:「非同期 map」「非同期 map」は、配列の各要素に対して「async な処理」をして、その結果を配列として集めるユーティリティです。普通の map は同期処理専用ですが...
JavaScript

JavaScript Tips | 配列ユーティリティ:map + filter 合成

何をしたいユーティリティか:「map + filter 合成」「map + filter 合成」は、「変換(map)」と「絞り込み(filter)」を、きれいに組み合わせて使うためのパターンやユーティ...
JavaScript

JavaScript Tips | 配列ユーティリティ:reduce ヘルパー

そもそも reduce って何をする関数かArray.prototype.reduce は、「配列を 1 つの値に“畳み込む”ための関数」です。合計を出したり、オブジェクトに集計したり、別の配列に変形...
JavaScript

JavaScript Tips | 配列ユーティリティ:フィルタ合成

何をしたいユーティリティか:「フィルタ合成」「フィルタ合成」は、複数の条件(フィルタ)を組み合わせて、1つのフィルタ関数として扱えるようにするテクニックです。もう少しくだいて言うと、「小さな条件関数を...
JavaScript

JavaScript Tips | 配列ユーティリティ:AND 条件検索

何をしたいユーティリティか:「AND 条件検索」「AND 条件検索」は、配列の中から「複数の条件をすべて満たす要素」だけを探す処理です。論理式でいう「A かつ B かつ C」の“AND(かつ)”です。...
JavaScript

JavaScript Tips | 配列ユーティリティ:OR 条件検索

何をしたいユーティリティか:「OR 条件検索」「OR 条件検索」は、配列の中から「いくつかの条件のうち、どれか1つでも満たしていればOK」という要素を探す処理です。論理式でいう「A または B または...
JavaScript

JavaScript Tips | 配列ユーティリティ:複数条件検索

何をしたいユーティリティか:「複数条件検索」「複数条件検索」は、「この配列の中から、いくつかの条件をすべて満たす要素だけを探したい」ときに使うユーティリティです。例えば、次のような“複数条件”が典型で...
JavaScript

JavaScript Tips | 配列ユーティリティ:インデックス検索

何をしたいユーティリティか:「インデックス検索」「インデックス検索」は、配列の中から「条件に合う要素がどこにあるか」を調べて、その位置(インデックス)を返す処理です。「この値は何番目にある?」「id ...
JavaScript

JavaScript Tips | 配列ユーティリティ:要素置換

何をしたいユーティリティか:「要素置換」「要素置換」は、配列の中の特定の要素を“別の値に差し替える”処理です。「インデックス 2 の要素を新しい値にしたい」「id が一致する要素だけ更新したい」など、...
JavaScript

JavaScript Tips | 配列ユーティリティ:要素削除

何をしたいユーティリティか:「要素削除」「要素削除」は、配列から特定の要素を取り除く処理です。「このインデックスの要素を消したい」「この値を全部消したい」「条件に合うものだけ消したい」など、業務でめち...
JavaScript

JavaScript Tips | 配列ユーティリティ:要素挿入

何をしたいユーティリティか:「要素挿入」「要素挿入」は、配列の好きな位置に新しい要素を差し込む処理です。 の「2 と 4 の間に 3 を入れたい」みたいなやつですね。業務だと、例えばこういう場面でよく...
JavaScript

JavaScript Tips | 配列ユーティリティ:シャローコピー

何をしたいユーティリティか:「シャローコピー」ここでの「シャローコピー」は、配列そのものだけをコピーして、“中身(要素)への参照はそのまま共有する”コピーのことです。一言でいうと、「配列の箱だけ新しく...
JavaScript

JavaScript Tips | 配列ユーティリティ:ディープコピー

ディープコピーとは何か(まずここを正しく理解する)ディープコピーは、配列やオブジェクトの“中身まで含めて完全に別物を作るコピー”のことです。浅いコピー(shallow copy)と違い、ネストされた配...
JavaScript

JavaScript Tips | 配列ユーティリティ:配列コピー

何をしたいユーティリティか:「配列コピー」「配列コピー」は、元の配列を壊さずに、同じ中身を持つ“別の配列”を作る処理です。業務ではほぼ必ずと言っていいほど使います。なぜなら、元の配列を直接いじると「い...
JavaScript

JavaScript Tips | 配列ユーティリティ:部分一致判定

何をしたいユーティリティか:「部分一致判定」「部分一致判定」は、「完全に同じかどうか」ではなく、「一部が条件を満たしているかどうか」を判定する処理です。ここでは主に、配列に対して次のような問いを投げる...
JavaScript

JavaScript Tips | 配列ユーティリティ:完全一致判定

何をしたいユーティリティか:「完全一致判定」ここでの「完全一致判定」は、「この2つの値(配列やオブジェクトを含む)が“中身まで含めてまったく同じか”を判定する処理です。単なる === ではなく、配列の...
JavaScript

JavaScript Tips | 配列ユーティリティ:配列比較

何をしたいユーティリティか:「配列比較」「配列比較」は、「この2つの配列は同じか?」を判定する処理です。ここでいう「同じか?」は、基本的に次の3つを満たすことを意味します。要素数(長さ)が同じ各インデ...
JavaScript

JavaScript Tips | 配列ユーティリティ:安定ソート

そもそも「安定ソート」とは何かまず言葉から整理します。安定ソート(stable sort)とは、「同じキー(同じ値)同士の元々の順番を壊さないソート」のことです。もう少し具体的に言うと、並び替えの基準...
JavaScript

JavaScript Tips | 配列ユーティリティ:順序反転

何をしたいユーティリティか:「順序反転」「順序反転」は、配列の要素の並びを逆向きにする処理です。 を にする、というイメージですね。業務だと、例えばこういう場面で使います。ログを「新しい順」に並べ替え...
JavaScript

JavaScript Tips | 配列ユーティリティ:Map 変換

何をしたいユーティリティか:「Map 変換」ここでの「Map 変換」は、配列から Map(キーと値のペアのコレクション)を作るユーティリティのことです。「id からユーザーを一発で引きたい」「コードか...
JavaScript

JavaScript Tips | 配列ユーティリティ:Set 変換

何をしたいユーティリティか:「Set 変換」ここでの「Set 変換」は、配列を Set に変換するユーティリティのことです。一言でいうと「重複をなくしたい」「含まれているかを高速に調べたい」ときに使う...
JavaScript

JavaScript Tips | 配列ユーティリティ:マップ生成

何をしたいユーティリティか:「マップ生成」ここでの「マップ生成」は、配列から「キー → 値」の対応表(オブジェクトや Map)を作る処理のことです。「id からユーザーを引けるようにしたい」「コードか...
JavaScript

JavaScript Tips | 配列ユーティリティ:条件変換

何をしたいユーティリティか:「条件変換」「条件変換」は、配列の中の「条件に合う要素だけ」を変換し、それ以外はそのまま残す処理です。英語で言うと mapIf、mapWhen、conditionalMap...
JavaScript

JavaScript Tips | 配列ユーティリティ:条件抽出

何をしたいユーティリティか:「条件抽出」「条件抽出」は、配列の中から「ある条件に当てはまる要素だけ」を取り出す処理です。JavaScript 標準の Array.prototype.filter を、...
JavaScript

JavaScript Tips | 配列ユーティリティ:条件削除

何をしたいユーティリティか:「条件削除」「条件削除」は、配列の中から「ある条件に当てはまる要素だけ」を取り除く処理です。英語だとイメージ的には「removeIf」「reject」「filter-out...
JavaScript

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

何をしたいユーティリティか:「undefined 削除」ここでの「undefined 削除」は、配列の中から undefined を取り除いて、扱いやすい配列に整える処理です。「null 削除」と似て...
JavaScript

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

何をしたいユーティリティか:「null 削除」ここでの「null 削除」は、配列の中から null(と必要なら undefined)を取り除いて、扱いやすい配列に整える処理です。さっきの「空要素削除」...
JavaScript

JavaScript Tips | 配列ユーティリティ:空要素削除

何をしたいユーティリティか:「空要素削除」ここでの「空要素削除」は、配列の中から「いらない空っぽの値」を取り除いて、きれいな配列にする処理です。英語だと compact や clean などと呼ばれま...
JavaScript

JavaScript Tips | 配列ユーティリティ:末尾取得

何をしたいユーティリティか:「末尾取得」ここでの「末尾取得」は、配列の「一番最後の要素」や「末尾から数件」を取り出す処理のことです。英語だと last や takeRight などと呼ばれます。業務で...
JavaScript

JavaScript Tips | 配列ユーティリティ:先頭取得

何をしたいユーティリティか:「先頭取得」ここでの「先頭取得」は、配列の「一番最初の要素」や「先頭から数件」を取り出す処理のことです。英語だと head や first、take などと呼ばれます。業務...
JavaScript

JavaScript Tips | 配列ユーティリティ:件数制限

何をしたいユーティリティか:「件数制限」ここでの「件数制限」は、配列の要素数を「最大 N 件まで」に制御する処理のことです。イメージとしては「取りすぎない」「持ちすぎない」ためのブレーキです。業務では...
JavaScript

JavaScript Tips | 配列ユーティリティ:採番

何をしたいユーティリティか:「採番」ここでの「採番」は、配列の要素に「業務で使う番号(連番・管理番号)」を振る処理のことです。さっきやった「インデックス付与」とよく似ていますが、目的が少し違います。イ...
JavaScript

JavaScript Tips | 配列ユーティリティ:インデックス付与

何をしたいユーティリティか:「インデックス付与」「インデックス付与」は、配列の各要素に「何番目か」という情報をくっつける処理です。JavaScript の配列はもともと 0, 1, 2…というインデッ...
JavaScript

JavaScript Tips | 配列ユーティリティ:ネスト化

何をしたいユーティリティか:「配列のネスト化」ここでの「ネスト化」は、平らな配列を「階層構造(入れ子)」に組み立て直す処理のことです。フラット化の逆方向だと思ってください。例えば、次のようなことをした...
JavaScript

JavaScript Tips | 配列ユーティリティ:フラット化

何をしたいユーティリティか:「配列のフラット化」ここでの「フラット化」は、ネスト(入れ子)になっている配列を、浅い配列に“平らにする”処理のことです。英語だと flatten、flat と呼ばれます。...
JavaScript

JavaScript Tips | 配列ユーティリティ:結合

何をしたいユーティリティか:「配列の結合」ここでの「結合」は、複数の配列を 1 つの配列にまとめる処理のことです。英語だと「merge」「concat」と呼ばれます。例えば、こんな場面で使います。月ご...
Java

Java | 1 日 120 分 × 7 日アプリ学習 中級編:オブジェクト指向(OOP) - クラス責務分離アプリ

1日目のゴール中級編の1日目は「オブジェクト指向の本質=1クラス1役割」を“体で理解する”こと。今日のテーマは 責務(Responsibility)・分離(Separation)・保守性(Mainta...
Java

Java | 1 日 90 分 × 7 日アプリ学習 初級編:ファイル保存アプリ

1日目のゴール1日目のテーマは「ファイルに“文字”を書いて、“あとから読み返せる”感覚をつかむこと」 です。今日はまだ「完璧な設計」は目指しません。まずはこう思えたら勝ちです。「メモをファイルに保存し...
Java

Java | 1 日 90 分 × 7 日アプリ学習 初級編:例外処理アプリ

1日目のゴール1日目のテーマは「例外ってそもそも何?」「try / catch って何をしているの?」を、感覚でつかむこと です。今日は、こんな流れで進めます。例外とは何かなぜ try / catch...
C#

C# Tips | ログ・例外・診断:GC情報取得

はじめに:GC情報取得は「.NET がどれくらい“片付け仕事”をしているか」を数字で見ることC# の世界では、メモリの解放はガベージコレクタ(GC)が自動でやってくれます。これはとても便利ですが、その...
C#

C# Tips | ログ・例外・診断:メモリ使用量取得

はじめに:メモリ使用量取得は「どれくらい“盛っている”かを数字で知るためのもの」パフォーマンスの話をしていると、必ず出てくるのが「メモリ食いすぎてない?」という心配です。でも、感覚だけで「重そう」と言...
C#

C# Tips | ログ・例外・診断:パフォーマンス計測

はじめに:パフォーマンス計測は「コードの速さを“感覚”ではなく“数字”で語るための道具」業務システムを書いていると、必ずこういう会話が出てきます。「この処理、なんか遅くない?」「どれくらい遅いんだっけ...
C#

C# Tips | ログ・例外・診断:トレース出力

はじめに:トレース出力は「本番も視野に入れた“軽量ログ”」「デバッグ出力」は開発中にとても便利ですが、多くはデバッグビルド専用で、本番では消えてしまいます。一方、業務システムでは「本番環境でも、ある程...
C#

C# Tips | ログ・例外・診断:デバッグ出力

はじめに:デバッグ出力は「本番にはいらないけど、開発中はめちゃくちゃ役に立つメモ」コードを書いているとき、「ここまで処理が来ているか確認したい」「この変数の中身を一瞬だけ見たい」という場面が必ず出てき...
C#

C# Tips | ログ・例外・診断:タイムアウト制御

はじめに:タイムアウト制御は「いつまでも待たない」ための安全装置業務システムで一番イヤなのは、「固まっているのか、まだ処理中なのか分からない状態」です。外部 API、DB、ファイルアクセス、重い計算処...
C#

C# Tips | ログ・例外・診断:指数バックオフ

はじめに:指数バックオフは「だんだん距離を取りながら、もう一度だけ試す」リトライ戦略外部 API、クラウドサービス、DB、メッセージキューなどにアクセスするとき、一時的なエラー(ネットワークの瞬断、サ...
C#

C# Tips | ログ・例外・診断:リトライ処理

はじめに:リトライ処理は「一度コケても、あきらめずにもう一歩踏み込む」仕組み業務システムでは、外部サービスや DB、ファイルアクセスなど「環境に左右される処理」がたくさんあります。ネットワークが一瞬不...
C#

C# Tips | ログ・例外・診断:エラーコード管理

はじめに:エラーコード管理は「エラーに“番号付きの名前”を与えること」業務システムで本気で運用を考え始めると、「エラーが起きました」だけでは足りなくなります。どの画面でどの種類のエラーがどれくらいの頻...
C#

C# Tips | ログ・例外・診断:非同期例外処理

はじめに:非同期例外処理は「時間差で起きる失敗を、ちゃんと捕まえる技術」async/await を使い始めると、最初に戸惑うのが「例外がどこに飛んでいくのか分からない」という感覚です。同期コードなら、...
Python

Python | DevOps・運用:Docker network

Docker networkって何?一言でいうと「コンテナ同士をつなぐ“専用LAN”」Docker network は、コンテナ同士をつなぐための「仮想ネットワーク」です。同じネットワークに属するコン...
Python

Python | DevOps・運用:Docker volume

Docker volumeって何?一言でいうと「コンテナが消えても残る“外付けハードディスク”」Docker volume は、コンテナの外側にある「永続ストレージ」です。コンテナの中のファイルは、コ...
Python

Python | DevOps・運用:docker-compose

docker-composeって何?一言でいうと「複数コンテナを“1つのアプリ”としてまとめて起動・停止するリモコン」Docker は「1コンテナ=1プロセス」をきれいに動かすのが得意です。でも、現実...
Python

Python | DevOps・運用:Dockerfile ベストプラクティス

まずゴールを決めよう:「本番でそのまま動かせる、軽くて、安全で、再現性の高いイメージ」Dockerfile のベストプラクティスは、一言でいうと「どこでビルドしても、同じように動く、無駄が少なくて、安...
Python

Python | DevOps・運用:CD 自動デプロイ

CD 自動デプロイって何?一言でいうと「テストに通ったコードを、人の手を介さず“同じ手順で”本番に届ける仕組み」CI が「自動テスト」だとしたら、CD(Continuous Delivery / De...
Java

Java | Web 基礎・HTTP・REST:HTTP 詳細 - セッション

セッションを一言でいうとセッションは「同じユーザーからの一連のリクエストを“ひとまとまり”として扱うためのサーバー側の仕組み」です。HTTP は本来「1 回 1 回がバラバラで、前後のつながりを覚えな...
Java

Java | Web 基礎・HTTP・REST:HTTP 詳細 - Cookie

Cookie を一言でいうとCookie は「ブラウザの中に一時的にメモしておける“名札・メモ用紙”」です。HTTP は本来「1 回 1 回のリクエストがバラバラで、前後のつながりを覚えていない」仕組...
スポンサーリンク