タグ

パターンに関するt1mvverrのブックマーク (5)

  • (自分の) JavaScript のユニットテストの書き方

    (社内用ドキュメントの公開版) テストのポリシー 前提として、ユニットテストを導入するコストを、限界まで低くすることを目指す。テストが根付いていない言語環境や文化では、放っておくとテストが書かれないまま実装が進行し、結果としてテスト不可能な巨大な雪だるまが完成する。こうなるとメンテコストが高いE2Eを大量に書かないといけなくなり、テストの実行時間が膨れ上がっていく。 そうなる前に、ユニットテストを書きやすい環境を維持し、ユニットテストとして問題を切り分けられるような環境を維持する。とにかく書きやすさを重視し、一つのユニットテストを書くオーバーヘッドを限界まで下げる。 最初の一つを早い段階で書く 自分の経験的には、ユニットとテストの最初の一つを書いたらあとは自然とその周辺で増えていく。サンプルがあったら人はコピペする。逆にいうと最初の一つを書かない限り一切書かれない。まず一つ用意するのが大事

    (自分の) JavaScript のユニットテストの書き方
  • » マイクロサービスにおけるトランザクション【Saga】 TECHSCORE BLOG

    これは TECHSCORE Advent Calendar 2018 の5日目の記事です。 はじめに 世の中がマイクロサービスの話題で溢れている中で、トランザクションはどうやって実現されているのか不思議だったので調べてみました。 マイクロサービスでは複数のAPIでのやり取りとなるため、これまで使っていたデータベースのようなトランザクション(BEGIN-COMMIT)が使えません。 解決策の一つにSagaパターンがあります。 Sagaパターン Sagaパターンとは、複数のサービスにまたがるビジネストランザクションをSagaとして実装します。Sagaは一連のローカルトランザクションです。 たとえば下記の図のような構成を考えます。 このとき、Service A におけるSaga Aの成功と失敗を次のように定義します。 成功 : Transaction X、Transaction Y、Transa

    t1mvverr
    t1mvverr 2020/07/14
    このノウハウって、マイクロサービスに限らず、Rxjs等のイベント駆動プログラミングにも適応出来そう。
  • 「ビジネスロジック」とは何か、どう実装するのか - Qiita

    アプリケーション開発で、「ビジネスロジックは分離しろ」だとか「Controller にビジネスロジックを書くな」といったことをよく言われると思います。 しかし、ビジネスロジックという言葉の意味を聞いたり調べたりしてみても、「システムのコアの部分」とか「システムの目的になる処理をするところ」みたいなことを言われたりして、よく分かりませんでした。 そんな中、クリーンアーキテクチャや DDD の戦術的設計について学ぶことで、「ビジネスロジックとは何か」、「ビジネスロジックはどう実装するか」について、自分なりの考えが整理されてきたので、この記事ではそれをまとめます。 ※ 曖昧な言葉を自分としてどう使っているかという話になります。違う意味で使う方もいると思うので、ご注意ください ビジネスロジックとは何か 「システムのコアの部分」とか「システムの目的になる処理をするところ」といった説明も正しいとは思い

    「ビジネスロジック」とは何か、どう実装するのか - Qiita
    t1mvverr
    t1mvverr 2020/06/29
    教科書通りに実装しようとすると、教科書に書かれていない問題に直面しいつも破綻するので、もう雰囲気で書いている。
  • 君はWard Cunninghamを知っているか?(後篇)

    Fit for Developing Software (https://goo.gl/FqRtmo)前篇に引き続き、Ward Cunningham(Wardと略) の活動について解説します。前回は、Wikiとパターンについて触れました。今回は、CRCカード、エクストリームプログラミング(XP)、Fit、そして技術的負債について触れます。 Ward CunninghamとKent Beckとの出会い前編でも触れましたが、ソフトウェア開発の歴史の上で Ward とKent Beck の出会いは大きかったと言ってよいでしょう。 http://wiki.c2.com/?WardAndKent 複数人でカードを使って対話しながら設計する CRCカード2人は、パターンの他に、Smalltalkの分野でいくつかのライブラリ−を公開し、CRCカードを使った設計アプローチの論文について1989年に公開しま

    君はWard Cunninghamを知っているか?(後篇)
  • コンテナ・デザイン・パターンの論文要約  - Qiita

    Brendan Burns, David Oppenheimerらの論文「Design patterns for container-based distributed systems」を読んで、コンテナを活用したシステム設計や開発に、とても有用と感じたので、図を中心にした要約にしてみた。 要約内容に誤りや理解不足な部分もあると思うので、原文も参照していただきたい。また、自身の理解のために、論文中に無い図を加えた点、独自の注釈も加えている。 背景 コンテナ化されたソフトウェアコンポーネントから構築されたマイクロサービスアーキテクチャの人気が高まり、分散システム開発においても同様の革命が起っている。 コンテナの境界の壁は、分散システムの基的なオブジェクトの境界に適している。そこで、コンテナを活用して、コードの低レベルの詳細を抽象化し、アプリケーションやアルゴリズムに共通する高レベルのパター

    コンテナ・デザイン・パターンの論文要約  - Qiita
    t1mvverr
    t1mvverr 2018/03/07
    依存するコンテナを注入するDIパターンとか出そう。そしてDIを管理するツールとか出そう。
  • 1