タグ

2023年6月21日のブックマーク (3件)

  • TypeScript の DI 手法あれこれ - Object.create(null)

    TypeScript で DI (依存性注入) するためのライブラリを作ったんですが, それを紹介する前に既存手法をまとめておいた方が説明が楽だなと思ったのでまとめておきます. そもそも DI の目的とは, みたいなところは詳しく説明しないのであしからず. 手法の比較 DI なし Service Locator エフェクト Constructor Injection Setter Injection デコレータ typed-inject 次回予告 手法の比較 DI なし まずは DI を使わない場合を見ていきましょう. ここでは例として, 以下のような時刻と乱数を必要とするコンポーネント MyService が, 時刻と乱数を扱う機能をそれぞれ提供するコンポーネント Clock と Random に依存するような場合を考えます. type Clock = { getTime: () =>

    TypeScript の DI 手法あれこれ - Object.create(null)
  • 【TypeScript/JavaScript】配列操作reduce()を救いたい。 - Qiita

    Array.prototypeのreduce()メソッド。 苦手な方や、ややこしいから使わないようにしているという方もいるかな、と。 確かに、他のmap()やfilter()、sort()などと比べるとちょっと難解な感じありますよね。 また、一方では、reduceマジ最強と思ってる方もいると思います。 確かに、集計することも新たな配列を作ることも何でもできますもんね。 そんな避けられたり奉られたりなreduce()について、当はどんなメソッドなのか自分なりの解釈を書きたいと思います。 (追記:ありがたいことに色々と有益なコメントを頂いているのでそちらも是非ご参照ください。) reduce()とは reduce() メソッドは、配列のそれぞれの要素に対して、ユーザーが提供した「縮小」コールバック関数を呼び出します。その際、直前の要素における計算結果の返値を渡します。配列のすべての要素に対し

    【TypeScript/JavaScript】配列操作reduce()を救いたい。 - Qiita
  • プロダクトが大きくなると、なぜ生産性は下がるのか? 『Team Topologies』から読み解く、「認知負荷」という考え方

    株式会社overflowによって開催された、開発組織のあり方について考える1ヶ月「CTOWeek 2023 by Offers」。Week2に登壇したのは、株式会社LayerX 執行役員の名村卓氏。開発スピードを落とさないために必要な、イネーブルメント組織について話しました。全3回。1回目は、開発の生産性に大きく影響する、「チームの認知負荷(Team Cognitive Load)」について。 名村卓氏のキャリア変遷 大谷旅人氏(以下、大谷):それでは日のメインの名村さんのお話に入りたいと思います。LayerX 名村さん、ご登壇よろしくお願いします。 名村卓氏(以下、名村):はい、よろしくお願いします。LayerXの名村と申します。今、LayerXでEnabling Teamという、Enablementをやっている組織にいるのですが、今日はそこでの経験と諸々含めてお話できればと思っていま

    プロダクトが大きくなると、なぜ生産性は下がるのか? 『Team Topologies』から読み解く、「認知負荷」という考え方