以前、読書灯として金属製のスタイリッシュな「 wasser 29 led デスクライト 」をご紹介しました。見た目はとても気に入っていたのですが、少し重さがあることと、充電式ゆえに「使いたい!」と思った瞬間にバッテリーが切れていることがあり、地味にストレスを感じていたのであります。 そんなときに見つけたのが、「 無印良品の隠れた逸品が、夜のリラックスタイムを快適にしてくれる理由はね… 」で紹介されていた無印良品の「 LEDモバイルライト 」でした。 無印良品らしい無駄のないシンプルなデザインで、プラスチック製のため軽量かつコンパクト。そして何よりの魅力は、災害時などの「もしものあかり」を想定して作られている点です。AC電源だけでなく電池でも動くため、悩めるエンジニアが感じていた「使おうと思った瞬間の充電切れ」というプチストレスが見事に解消されました! さっそくベッドサイドや手元に置いて使用していますが、購入して大正解でした。デスクライトのバッテリー切れや重さに悩んでいる方は、ぜひチェックしてみてください。
複雑なシステム開発やビジネス設計において、よく耳にする「抽象化」と「メタ化」という言葉。皆さんは、この2つの違いをクリアに説明できますか? 変化の激しい今の時代、小手先のスキルだけでなく、こうした「本質的な思考力」が改めて求められています。今回は、SNSでも「分かりやすい!」と話題になっていた素敵な記事「 ソフトウェア設計における抽象とメタの違い 」のエッセンスを、実務への活かし方も交えてご紹介します。 抽象化とメタ化は何が違うのか? 元記事では、この2つを以下のように明快に整理しています。 抽象化 : 現実の複雑なものから、目的に合わせて「必要な要素だけを取り出す」こと。 メタ化 : 取り出した要素を、「データについての記述(ルールや型)」として書き出すこと。 元記事で挙げられている「駅の路線図」の例がとても腑に落ちます。 実際の線路のカーブや距離を無視して、乗客の目的に必要な「駅の繋がり」だけを抜き出すのが抽象化。それを「路線名」「駅名」という枠組み(データ構造)として定義するのがメタ化です。 ソフトウェアの世界では、頭の中で「抽象化」した瞬間に、それをコードの型やスキーマとして「メタ化」して記述することが多いため、この2つは混同されがちです。しかし、思考のステップとしては全く別物なのです。 私たちが陥りがちな「間違った抽象化」 特にグサッときたのが、記事の中にあった次の言葉です。 「抽象化が足りない」とは、選択がないという意味ではない。選択が、目的ではなく実装や画面都合によって決まっているという意味である。 私たちも仕事の中で、「とりあえず今の画面で見栄えが良いから」「今のツールで実装しやすいから」という理由でルールを決めてしまうことはないでしょうか。それは「本質的な抽象化」ではなく、単なる「都合に合わせた妥協」になってしまっているかもしれません。 明日からの仕事の質を上げるために この学びを日々の実務に活かすために、これからは以下のステップを意識していきたいと感じました。 まず「目的」に立ち返る : 画面の都合やツールの制限を一度忘れ、「この仕組みの本質的な目的は何か」を突き詰めて抽象化する。 その後に「型」を作る : 抽象化した本質を、ブレないデータやルール(メタ)に落とし込む。 表面的な都合に振り回されず、この「抽象」と「メタ」のサイクルを意識することで...