한국어 | English | 日本語
Webアプリケーションエンジニア (経験8.8年)
技術・開発
engineering
ウェブフロントエンドと バックエンド開発を扱います
化粧で見抜くデコレーター、変装で見抜くアダプター
構造型デザインパターンに属するデコレーター、アダプター、ファサードパターンは、いずれもクラス内部に別のオブジェクトを持つ「コンポジション」方式を採用している点で共通しています。しかし、その目的が機能追加なのか、インターフェースの適合なのか、それとも複雑な構造を単純にまとめることなのかによって、明確に区別されます。
2. ファクトリ「メソッド」パターン & 「抽象」ファクトリパターン
開発を進めていると、「状態に応じて異なるフロー」を処理しなければならない場面に遭遇することがあります。単に「はい/いいえ」のような単一の状態であれば`if`文で十分ですが、複数の状態がある場合は`if-else`または`switch`を使用するでしょう。しかし、「異なるフロー」に該当するロジックが複雑になると、`if-else`のブロックが100行を超えるコードになることも珍しくありません。これは果たして再利用性が高いと言えるでしょうか?コードが読みにくいだけでなく、その100行の中に繰り返し現れるロジックも間違いなく存在するはずです。「異なるロジック」と「共通ロジック」を分離し、「異なるロジック」の部分は状態に応じて異なる実装を返したり、実装を作成したりするパターンが必要となります。
JavaScriptエンジンの実行プロセスから理解する「ホイスティング」と「クロージャ」
JavaScriptに初めて触れると、その使いやすさに驚くことがあります。C言語やJavaでは毎回コンパイルが必要でしたが、JavaScriptは今この記事を見ているブラウザの開発者モードのコンソールで直接コーディングできるため、軽快で使いやすい言語であることがわかります。コードはJavaScriptエンジン(特にV8)内でどのように実行されるのでしょうか?これを理解することで、変数と関数の関係であるホイスティング(Hoisting)とクロージャ(Closure)の概念を、単なる暗記ではなく原理として理解できるようになります。
1. 『デザインパターン』とは?
デザインパターンは大学で簡単に習った記憶があります。大学院や入社準備の際、デザインパターンは常に試験に出るテーマでしたが、私は実際に使ってみた経験が少なかったため、なぜそれが重要なのかを実感する機会がありませんでした。ブートコードと理論よりもプロジェクトを多く行う昨今の時代では少し違うかもしれませんが、私がパターンがなぜ使われるのかを経験的に習得したのは入社してからでした。
プロフェッショナルな印象を与えるメールアドレスの作り方
幼少期に作成した、滑稽なメールアドレスは、本人だけでなく連絡を受け取る相手にも困惑を与える可能性があります。ビジネスコミュニケーションとキャリア管理は、相手が覚えやすく、専門性が感じられるメールアドレスを持つことから始まります。
토스트 예시 메세지