タグ

ブックマーク / qiita.com/suzuki-hoge (3)

  • 副作用と参照透過性と冪等性を理解して、テストでドメインを磨く - Qiita

    朝でも夜でも mac でも windows でも商用環境でも日でもアメリカでも、add(2, 3)は5 透過的 ( transparency ) とは「存在するものを存在しないように見せる」感じらしい 透過の反対は仮想らしい 透過 → あるけど見えないガラス 仮想 → ないけど見えるホログラム つまり「参照透過性」は「参照があるけどないように見せる」ということ 変数の再代入やグローバル変数の参照が処理内になければ、処理内では変数の参照について心配する必要がないので、参照が透過的と言える 冪等性 処理を何回実行しても同じ結果になること 現状を気にせず叩けば良いので、chef やマイクロサービス等のたくさんの状態を更新する処理と相性が良い (一部が失敗しても全てが成功するまで叩き直せば良いから) 身近な例だと「オン | オフ」みたいなトグルボタンは冪等性がないけど「オフにする」ボタンは冪等性

    副作用と参照透過性と冪等性を理解して、テストでドメインを磨く - Qiita
  • DDDをHaskellで考える 業務ロジックとシステムロジック - Qiita

    DDD初心者が拙いHaskellを使って色々考える試みです。 はじめに DDDは会社で見よう見まねで1年実践したけど、DDDの勉強はほぼ一切していないくらい。 Haskellは入門書をなんとか通読できたくらい、けど普段書いてないので全然馴染んでないくらい。 それくらいの奴が1年経ってやっと「ちょっとまじめに考えてみるかぁ」って思って考えたことをまとめる記事です。 記事の主軸はDDDなので、Haskellは読めなくても雰囲気だけ察してもらえると良いな、と思います。 また、Haskellを選んだ理由はこの記事を通して伝えたいと思います。 Haskellについて この記事を読むに当たり最低限必要なHaskellの文法を記載します。 僕がDDDを捉えるに当たり用いた考え方が一番含まれる点なので、まとめてみたいと思います。 参照透過性と副作用 Haskellには「参照透過性が常に保たれる処理」と「副

    DDDをHaskellで考える 業務ロジックとシステムロジック - Qiita
  • 副作用ってなんだ? 〜楽に小さく単体テストをしよう〜 - Qiita

    プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、 それ以降で得られる結果に影響を与えることをいう。代表的な例は変数への値の代入である。 wikipedia より つまり? (ざっくり言うと)同じ様に呼び出しても同じ結果が返ってくるとは限らない処理のことです 何が悪いの? 単体テストがしづらい!! (以後、この記事ではJUnitの様なテストフレームワークによるソースコードの自動テストを単体テストと言います) 他にも色々面倒を引き起こします テスト環境で評価するのが面倒だったり出来なかったりすることが多い 開発コストがかさむ 改修範囲の特定が難しかったり、切り分けが出来なかったりする サンプル見せてよ このクラスを単体テストしたいと思ったけど無理っぽいぞどうしよう、という想定です @AllArgsConstructor public clas

    副作用ってなんだ? 〜楽に小さく単体テストをしよう〜 - Qiita
  • 1