入門

スポンサーリンク
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):VBA基礎環境 – 標準モジュール追加

Excel VBAと標準モジュールの関係をイメージするExcel VBA は「Excelを自動で動かすための言語」です。その“命令文”を書いて保存しておく箱が「標準モジュール」です。超ざっくり言うと、こういう役割分担になります。Excel本...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):VBA基礎環境 – VBE起動

Excel VBAとVBEの関係をイメージするExcel VBA は「Excelに対して出す命令の言語」です。その命令を書くための“ノート”が必要ですよね。そのノートが、Visual Basic Editor、略して VBE(ブイ・ビー・イ...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):VBA基礎環境 – 開発タブ表示

Excel VBAって何者かをまずイメージしようExcel VBA は「Excelに命令を出すための言語」です。正式名称は Visual Basic for Applications。難しそうに聞こえますが、やっていることは「Excelでい...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):VBA基礎環境 – マクロの保存形式(xlsm)

Excel VBAって何?超初心者向けのイメージづくりExcel VBA は「Excelを自動で動かすための言語」です。正式名称は Visual Basic for Applications。難しく聞こえますが、やっていることは「Excel...
VBA

Excel VBA | 超初心者(Excel操作+マクロ体験):VBA基礎環境 – マクロ有効ブックを理解

Excel VBAってそもそも何者?Excel VBA は「Excelに入っている小さなプログラミング言語」です。正式名称は Visual Basic for Applications。あなたが普段マウスでやっている操作(コピー、貼り付け、...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – 実務でのクラス設計判断

ゴール:「この処理、本当にクラスにすべき?」を自分で判断できるようになる実務で一番大事なのは、「クラスの書き方」よりも、「そもそも、ここはクラスにすべきか?」を判断できることです。TypeScript は関数・オブジェクト・クラス・ジェネリ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – ConstructorParameters の利用

ゴール:「コンストラクタの引数の型を“そのまま再利用する”感覚をつかむConstructorParameters<T> は一言でいうと、「コンストラクタ型 T から、引数の型だけをタプルとして抜き出すユーティリティ型」です。これが分かると、...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – InstanceType の利用

ゴール:「クラス“側”だけ知っていても、インスタンスの型を安全に扱える」ようになるInstanceType<T> は一言でいうと、「コンストラクタ型 T から、new したときの“インスタンスの型”だけを取り出すユーティリティ型」です。これ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – インスタンス型の取得

ゴール:「“クラスそのもの”から“インスタンスの型”だけをきれいに取り出す」感覚をつかむここでのテーマは、「クラス(コンストラクタ)から、そのインスタンスの型だけを取り出す」です。TypeScript には、まさにそのためのユーティリティ型...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – typeof Class の意味

ゴール:「typeof Class は“クラスそのものの型”を取る」と腑に落とすまず一番大事な一文からいきます。typeof クラス名 は、「インスタンスの型」ではなく「クラスそのもの(コンストラクタ+static)の型」を表すこれが分かる...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – クラスの型としての扱い

ゴール:「クラスには“2つの顔(値としての顔/型としての顔)”がある」と腑に落とすTypeScript のクラスで一番つまずきやすいポイントは、「クラスは“値”でもあり、“型”でもある」という二重の顔を持っていることです。ここをちゃんと分け...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – クラスを返す関数

ゴール:「クラスも“値”として扱えて、関数から返せる」と腑に落とすまず一番大事なポイントはこれです。クラスは「型」でもあり、「値」でもあるということです。「型」としては User 型などに使い、「値」としては User という“コンストラク...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – Factoryパターン

ゴール:「new の場所を“工場”に集めて、作り方のルールを1カ所に閉じ込める感覚をつかむ」Factory(ファクトリ)パターンは一言でいうと、「オブジェクトの new をあちこちで書かず、“作る専門のクラス/関数”にまとめる設計」です。も...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – Singletonパターン

ゴール:「アプリ全体で“そのクラスは1個だけ”をコードで保証する感覚をつかむ」Singleton(シングルトン)パターンは一言でいうと、「このクラスのインスタンスは、アプリ全体で“必ず1つだけ”にする設計パターン」です。「設定」「ログ」「接...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – private constructorの用途

ゴール:「new させないクラス」に意味を持たせる感覚をつかむprivate constructor は一言でいうと、「このクラスは、外から new してほしくない」と宣言するための仕組みです。「え、クラスって new して使うものでしょ?...
Python

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

mock って何?まずはイメージからmock(モック)は、テストのときだけ「本物の代わりに振る舞うニセモノのオブジェクト」です。本物をそのまま使うと困る場面を想像してみてください。外部 API を叩く(お金がかかる・遅い・回数制限がある)メ...
Python

Python | テスト・設計・品質:パラメタライズ

パラメタライズって何?まずはイメージからpytest の「パラメタライズ(parametrize)」は、「同じテストの形で、入力と期待値だけを変えて、何パターンも一気にテストする仕組み」です。同じ関数に対して、1 + 2 は 30 + 5 ...
Python

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

fixture って何?まずはイメージからpytest の fixture(フィクスチャ)は、「テストのたびに必要になる“準備”を、共通化して再利用する仕組み」です。毎回のテストで同じようなことをしていませんか?テスト用のデータを用意する一...
Python

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

assert って何?まずは一言でいうとassert は、「この条件が成り立っているはずだ」とコードに書いておくための仕組みです。成り立っていれば何も起きない。成り立っていなければ AssertionError を起こして、「ここで想定外の...
Python

Python | テスト・設計・品質:pytest 基本

pytest って何?まずはゴールのイメージからpytest は、Python のテストを書くための「超定番ツール」です。一言でいうと、テスト用のファイルと関数を書いておくpytest コマンドを叩く勝手に全部探して実行してくれるという「テ...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – クラスの再利用設計

ゴール:「このクラス、別の場面でもそのまま使えるな」と思える設計感覚を身につけるクラスの再利用設計は、一言でいうと、「今この機能だけ動けばいい」ではなく、「あとで別の場所でも気持ちよく使える形」にしておくことです。ここを意識し始めると、「と...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – クラス間の責務分離

ゴール:「このクラスは“何だけ”をやるのか?」と説明できるようになるクラス間の責務分離は、一言でいうと、「1つのクラスに“何でもかんでも”やらせず、“役割ごと”にクラスを分けること」です。ここができていないと、どこを直せばいいか分からない1...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – 多重interface実装

ゴール:「1つのクラスに“複数の役割”を約束させる感覚をつかむ」多重 interface 実装は一言でいうと、「このクラスは A という顔も B という顔も、両方ちゃんと持ちますよ」と約束させる仕組みです。implements の右側に i...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – implementsの役割

ゴール:「implements は“この約束は必ず守ります”という宣言」だと理解するimplements は一言でいうと、「このクラスは、この interface が決めた“形(契約)”を必ず守ります」と宣言するためのキーワードです。継承(...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – interfaceでクラスを縛る

ゴール:「interface は“クラスに守らせる約束”」だと理解するここでのテーマは、「interface を使って、クラスに“こういう形であれ”と約束させる」という感覚をつかむことです。クラスの継承(extends)は「中身も含めて引き...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – 抽象メソッドの定義

ゴール:「抽象メソッド=“ここは必ず子クラスが実装して”という穴あきメソッド」と理解する抽象メソッドは一言でいうと、「このメソッドは“存在すること”だけ決めておいて、中身は子クラスに必ず書かせる仕組み」です。「共通のルールは決めたい。でも具...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – 抽象クラスの設計

ゴール:「抽象クラスは“共通の型と骨組みだけを持つ設計図”」だと理解する抽象クラスは一言でいうと、「new できないけれど、“こういうクラスであってほしい”という共通ルールを決めるクラス」です。共通のプロパティ・メソッドは持つでも「ここは必...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – メソッドオーバーライド

ゴール:「同じメソッド名でも“クラスごとに振る舞いを変える”感覚をつかむ」メソッドオーバーライドは一言でいうと、「親クラスと同じ名前・同じ型のメソッドを、子クラス側で“書き直す”こと」です。これができると、「move() と書いているのに、...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – superの役割

ゴール:「super は“親クラス側の自分”を呼び出すキーワードだ」と腹で理解するsuper は、継承しているときだけ出てくる特別なキーワードです。一言でいうと、「親クラス側の自分を呼び出すためのスイッチ」です。コンストラクタでの supe...
TypeScript

TypeScript | 関数・クラス・ジェネリクス:クラス設計 – 継承の基本(extends)

ゴール:extends で「共通部分をまとめる」感覚をつかむ継承(extends)は、「似たようなクラス同士で、共通部分を親クラスにまとめる」ための仕組みです。ここでは、「書き方」だけでなく「どういうときに使うと気持ちいいか」まで含めて、初...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – モダン Java 総復習

モダン Java 総復習のゴールここまで「設計・実務視点」でいろいろ見てきましたが、モダン Java を一言でまとめると、こういう世界観になります。「Java 8 以降の機能(ラムダ、Stream、Optional、record、switc...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 実務でよくある罠

「実務でよくある罠」とは何かここでいう「罠」は、コンパイルは通るし一見正しく動いているように見えるのに、本番や長期運用の中でじわじわ効いてきて、バグ・障害・保守地獄につながるポイントのことです。初心者のうちは「文法的に正しいか」「動くか」に...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – モダン構文の使い過ぎ問題

「モダン構文の使い過ぎ問題」とは何かJava には、ラムダ式、Stream API、Optional、record、switch 式、パターンマッチングなど、「モダンでカッコいい構文」がたくさんあります。これ自体は素晴らしい進化ですが、問題...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 公開 API の互換性

公開 API の互換性とは何か公開 API の互換性とは、「一度公開した API を、後から変更しても利用者のコードが壊れないようにすること」です。ここでいう「利用者」は、あなたのクラスを呼び出す別のクラスかもしれないし、別チームのモジュー...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – API 設計観点

API 設計観点とは何かAPI 設計観点とは、「他の人(他のクラス・他の開発者・他のシステム)が使いやすく、安全で、誤解されないインターフェースをどう作るか」という視点のことです。Java の API 設計は、単にメソッドを作るだけではあり...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – ライブラリ選定基準

ライブラリ選定基準とは何かライブラリ選定基準とは、「このプロジェクトでどの外部ライブラリを使うかを判断するためのルール」 のことです。Java の世界には膨大なライブラリがあります。便利なものもあれば、更新が止まっているもの、バグが多いもの...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – チーム内 Java 方針

チーム内 Java 方針とは何かチーム内 Java 方針とは、「このチームでは Java をこう使う」という“共通ルール・共通思想”のことです。コーディング規約が「書き方のルール」だとすれば、チーム内 Java 方針は「設計・技術選定・バー...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – コーディング規約統一

コーディング規約統一とは何かコーディング規約統一とは、「プロジェクト全員が同じ“書き方のルール”でコードを書くようにすること」です。これは単なる“見た目の統一”ではありません。読みやすさ、保守性、レビュー効率、バグの減少、チーム開発のスピー...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – LTS バージョン

LTS バージョンを一言でいうとJava の LTS(Long-Term Support)バージョンは、「長期間サポートされる“安定版”の Java」です。実務で言うと、「会社やプロジェクトが“これを基準に使おう”と決めやすいバージョン」「...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – バージョンアップ対応

バージョンアップ対応を一言でいうとJava のバージョンアップ対応は、「今ちゃんと動いているシステムを壊さずに、新しい Java(JDK/JRE)に乗り換えるための一連の作業」です。単に「JDK を入れ替える」だけではなく、ビルド設定、ライ...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 非推奨 API の扱い

「非推奨 API」とは何か非推奨 API(deprecated API)は、「今はまだ使えるけれど、将来は消えるかもしれない/使ってほしくない」と宣言された API のことです。Java では @Deprecated アノテーションや Ja...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – レガシーコード対応

レガシーコード対応を一言でいうとレガシーコード対応は、「よく分からないけど本番で動いている古いコード」を、壊さずに理解し、少しずつ安全にマシな状態へ近づけていく作業です。「全部書き直したい」という気持ちをぐっとこらえて、「どこから触るべきか...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 古い Java との互換性

「古い Java との互換性」とは何を指しているか「古い Java との互換性」というとき、実は複数のレイヤーの話が混ざっています。コンパイルしたクラスファイルが、どのバージョンの JVM で動くかという「バイナリ互換性」。ソースコードが、...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – モダン Java の書き方

「モダン Java の書き方」とは何かここでいう「モダン Java」は、Java 8 以降で手に入った機能や考え方を前提にした書き方のことだと思ってください。昔ながらの「for 文だらけ・null だらけ・setter だらけ」の Java...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 可読性とパフォーマンスのバランス

「速いコード」より「分かるコード」が先まず大前提として、実務では「とにかく速いコード」より「読んで分かるコード」の方が価値が高いです。なぜかというと、ほとんどのコードは「読む時間>書く時間>実行時間」だからです。あなたやチームメンバーが何度...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – defensive programming

defensive programming を一言でいうとdefensive programming(防御的プログラミング)は、「相手(呼び出し側や外部システム)が“ちゃんとしている”と期待しすぎないで、最悪のケースを想定しながらコードを書...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – イミュータブル設計

イミュータブル設計を一言でいうとイミュータブル(immutable)は、「一度作ったら中身が変わらないオブジェクト」のことです。Java で一番有名なのは String です。String は replace や substring を呼ん...
JavaScript

JavaScript | 非同期処理:Promise 応用 – Promise の落とし穴

まず「Promise の落とし穴」をざっくり整理するPromise 自体は仕組みとしてはそんなに難しくないのに、実際に書き始めると「なんか思った通りに動かない」「エラーが消える」「順番がおかしい」みたいな、モヤっとする挙動にハマりがちです。...
JavaScript

JavaScript | 非同期処理:Promise 応用 – 非同期関数の再利用

「非同期関数の再利用」を一言でいうと非同期関数の再利用は、「一度作った Promise ベースの処理を、“場面だけ変えて何度も使い回せる形” に設計すること」です。言い換えると、同じような API 呼び出しや、同じようなエラーハンドリングを...
JavaScript

JavaScript | 非同期処理:Promise 応用 – Promise のラップ

まず「Promise のラップ」を一言でいうとPromise の「ラップ」とは、「既存の処理(コールバック形式や Promise など)を “Promise を返す関数” という形に包み直して、扱いやすくすること」だと思ってください。たとえ...
JavaScript

JavaScript | 非同期処理:Promise 応用 – 条件付き非同期処理

「条件付き非同期処理」って何かをまずイメージするPromise を使っていると、だんだんこういう場面が出てきます。「A の結果しだいで、B を呼ぶか呼ばないか決めたい」「ログイン済みなら API を叩く、未ログインならローカルのデータを使い...
JavaScript

JavaScript | 非同期処理:Promise 応用 – 逐次処理の書き方

まず「逐次処理」とは何かをはっきりさせるPromise で言う「逐次処理(ちくじ処理)」は、「非同期処理を A → B → C… のように“順番に”実行する書き方」 のことです。具体的には、A が終わってからでないと B を始められないB ...
JavaScript

JavaScript | 非同期処理:Promise 応用 – 並列処理の考え方

まず「並列処理」をざっくりイメージでつかむJavaScript の Promise でいう「並列処理」は、「待ち時間がある処理を “同時にスタート” させて、全部終わる(またはどれかが終わる)のを待つやり方」だと思ってください。よくある勘違...
JavaScript

JavaScript | 非同期処理:Promise 応用 – Promise.any

Promise.any を一言でいうとPromise.any は、「複数の Promise のうち、“最初に成功したもの 1 つ” だけの結果を採用する関数」 です。race が「一番早く 成功でも失敗でも 決着したやつの結果」を採用するの...
JavaScript

JavaScript | 非同期処理:Promise 応用 – Promise.race

Promise.race を一言でいうとPromise.race は、「複数の Promise のうち、“一番早く決着したやつだけ” の結果を採用する関数」 です。race(レース)という名前の通り、ゴールに一番最初に到着した Promis...
JavaScript

JavaScript | 非同期処理:Promise 応用 – Promise.allSettled

Promise.allSettled を一言でいうとPromise.allSettled は、「複数の Promise が “成功しても失敗しても、とにかく全部終わるまで待ち、結果をぜんぶレポートしてくれる関数」 です。Promise.al...
JavaScript

JavaScript | 非同期処理:Promise 応用 – Promise.all

Promise.all を一言でいうとPromise.all は、「複数の Promise を“同時に走らせて”、全部そろったら結果をまとめて受け取るための関数」です。たとえば、ユーザー情報を取得する投稿一覧を取得する通知一覧を取得するこの...
JavaScript

JavaScript | 非同期処理:Promise 基礎 - エラー伝播

まず「エラー伝播」を一言でいうとPromise のエラー伝播は、「どこかの then で失敗しても、その“失敗情報”がチェーンを下へ流れていき、最後の catch まで届く仕組み」のことです。コールバック地獄のときは、毎回 if (err)...
JavaScript

JavaScript | 非同期処理:Promise 基礎 – 値の受け渡し

まず「値の受け渡し」を一言でいうとPromise の「値の受け渡し」は、「前の then(または resolve/reject)で決まった値が、次の then / catch にバトンのように渡っていく仕組み」です。then の中で ret...
JavaScript

JavaScript | 非同期処理:Promise 基礎 – チェーン処理

まず「チェーン処理」を一言でいうとPromise のチェーン処理は、「非同期のステップを、then を使って“上から順番に”つなげていく書き方」 です。コールバック地獄だと、A の中で B を呼んでB の中で C を呼んでC の中で D を...
スポンサーリンク