1. 言語はツール。大事なのは「どう設計するか」
- どの言語でも根本にあるのは「データの流れ」「責務の分離」「状態管理」「拡張性と保守性」。
- 言語の文法よりも、「どう分けて・どう繋げるか」 が開発の本質。
- 私はそこに注力して設計し、常に再利用性・可読性を意識している。
🗣️例:
Goで開発するときも、TypeScriptやJavaと同様に、ドメインロジックとインフラ層をしっかり分けて設計しています。設計の原則を押さえていれば、言語の違いは吸収できます。
2. マルチ言語対応のベースは「抽象化力」
- OOP(Java)でもFP的な考え(TypeScript)でも、「モデルをどう抽象化するか」 がカギ。
- それぞれの言語に得意分野があるので、使い分けつつも、共通する抽象的な考え方は変わらない。
🗣️例:
Javaでは継承やインターフェース、TypeScriptでは型ガードやユニオン型で同じような抽象を実現できます。どの言語でも「柔軟かつ型安全な設計」を目指す、という姿勢は変わりません。
3. 言語習得は“運転免許”と同じ
- 開発言語は車種の違い。免許(=原理理解)があれば、どんな車(言語)も運転できる。
- 自分は、運転技術=開発原理をしっかり理解しているので、TypeScriptやJavaにもすぐ適応可能。
🗣️例:
GoでもTypeScriptでも、サービスの安定稼働・メンテナンス性の高い設計を実現してきました。言語が変わっても対応できるのは、「何を作りたいか」を常に意識して開発しているからです。
例えば、Goで作ったAPIのアーキテクチャをTypeScriptやJavaに落とし込む際も、インターフェースの分離、依存関係の整理、テスト可能性の担保など、言語共通の設計原則に基づいて実装するのは大事です。