Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマーク
  • テクノロジー
  • 複雑な状態遷移😭: クラスではなく関数とDiscriminated Unionで状態の定義と遷移を表現する - kosui
  • Twitterでシェア
  • Facebookでシェア

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできますコメント表示の設定

ブックマークしました

ここにツイート内容が記載されますhttps://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

118usersがブックマークコメント8

    ガイドラインをご確認の上、良識あるコメントにご協力ください

    0/0
    入力したタグを追加

    現在プライベートモードです設定を変更する

    おすすめタグタグについて

      よく使うタグ

        複雑な状態遷移😭: クラスではなく関数とDiscriminated Unionで状態の定義と遷移を表現する - kosui

        118 userskosui.me

        ガイドラインをご確認の上、良識あるコメントにご協力ください

        0/0
        入力したタグを追加

        現在プライベートモードです設定を変更する

        おすすめタグタグについて

          よく使うタグ

            はてなブックマーク

            はてなブックマークで
            関心をシェアしよう

            みんなの興味と感想が集まることで
            新しい発見や、深堀りがもっと楽しく

            ユーザー登録

            アカウントをお持ちの方はログインページ

            記事へのコメント8

            • 注目コメント
            • 新着コメント
            turanukimaru
            これは「状態を表す変数による状態管理=クラスベースの状態遷移」と呼んで、「ステートパターンを Union と関数で実装」してるのではなかろうか?やってることは間違ってないがクラスより優れてると言うのはちょっと

              その他
              yojik
              この記事の「クラスベースの状態遷移」は、いわゆるステートパターンでは無い点には注意。手法自体は納得だけど。

                その他
                jay-es
                クラスベースがダメなのではなく、ひとつのクラスに状態を持たせているのがダメなわけで、クラスを分けてイミュータブルにすれば同じことはできそう(TypeScript だとわざわざクラスを使う必要はないが)

                  その他
                  fivestech
                  関数型ドメインモデリングのTypeScript版って感じ。自分もよくやってる手法だけどクラスより状態を追いやすいと感じる

                  その他
                  cbkf
                  そもそもの理解が浅いなと思ってスルーしかけたのだけど、経歴見たら情報系の博士前期まで行ってる。まあ情報系は実装技術を学ぶ場ではないのだけど、それでもここまでの経歴でこんな雑記事、ちょっとイカンですね。

                    その他
                    hachibeechan
                    Option<T>でよさそう

                      その他
                      hecaton55
                      複雑な状態遷移をどうコードに落とし込むのか?という手法。ステートパターンはあるけど別の方法でも問題は無い派なので、色々な方法が出てくるのは良いと思う

                      その他
                      fuji_haruka
                      これはよくやる

                        その他
                        turanukimaru
                        turanukimaruこれは「状態を表す変数による状態管理=クラスベースの状態遷移」と呼んで、「ステートパターンを Union と関数で実装」してるのではなかろうか?やってることは間違ってないがクラスより優れてると言うのはちょっと

                          2025/02/21リンク

                          その他
                          yojik
                          yojikこの記事の「クラスベースの状態遷移」は、いわゆるステートパターンでは無い点には注意。手法自体は納得だけど。

                            2025/02/21リンク

                            その他
                            jay-es
                            jay-esクラスベースがダメなのではなく、ひとつのクラスに状態を持たせているのがダメなわけで、クラスを分けてイミュータブルにすれば同じことはできそう(TypeScript だとわざわざクラスを使う必要はないが)

                              2025/02/20リンク

                              その他
                              fivestech
                              fivestech関数型ドメインモデリングのTypeScript版って感じ。自分もよくやってる手法だけどクラスより状態を追いやすいと感じる

                              2025/02/20リンク

                              その他

                              注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

                              リンクを埋め込む

                              以下のコードをコピーしてサイトに埋め込むことができます

                              プレビュー
                              アプリのスクリーンショット
                              いまの話題をアプリでチェック!
                              • バナー広告なし
                              • ミュート機能あり
                              • ダークモード搭載
                              アプリをダウンロード

                              関連記事

                                usersに達しました!

                                さんが1番目にブックマークした記事「複雑な状態遷移😭:...」が注目されています。

                                気持ちをシェアしよう

                                ツイートする

                                複雑な状態遷移😭: クラスではなく関数とDiscriminated Unionで状態の定義と遷移を表現する - kosui

                                補足: 2025/02/25記事でほとんど紹介されなかった「Stateパターン」を含めて再構成した記事を公開し...補足: 2025/02/25記事でほとんど紹介されなかった「Stateパターン」を含めて再構成した記事を公開しましたので、今後は下記の記事をご覧ください。 kosui.me 補足: 2025/02/21 クラスベースでも、Stateパターンを適用し、StateをDiscriminated Unionとして表現することで今回の問題を解決できます。つまり、クラスを利用することに問題があるわけではありません。この記事では、TypeScriptではあえてクラスを利用しなくても状態遷移を表現できることを紹介します。記事を一部修正し、Stateパターンをクラスによって実現する方法を追記しています。 背景 サーバサイド実装での状態管理の重要性 サーバサイドのビジネスロジックでは、エンティティ(注文、決済、在庫、タクシー配車リクエストなど)が複数の状態を行き来しながら進行します。 たとえば、タクシー配

                                ブックマークしたユーザー

                                • niwatori7202025/03/22niwatori720
                                • heatman2025/03/22heatman
                                • knj29182025/03/21knj2918
                                • phoope2025/03/04phoope
                                • mas-higa2025/02/26mas-higa
                                • tmg19982025/02/25tmg1998
                                • hush_in2025/02/24hush_in
                                • ngepippi2025/02/22ngepippi
                                • fushimatsu2025/02/22fushimatsu
                                • cuttoff192025/02/22cuttoff19
                                • tfujimo12025/02/22tfujimo1
                                • peltier2025/02/22peltier
                                • ss499192012025/02/22ss49919201
                                • tsumuchan2025/02/22tsumuchan
                                • naosim2025/02/22naosim
                                • masayuki-as2025/02/22masayuki-as
                                • mkusaka2025/02/22mkusaka
                                • keita17142025/02/22keita1714
                                すべてのユーザーの
                                詳細を表示します

                                ブックマークしたすべてのユーザー

                                同じサイトの新着

                                同じサイトの新着をもっと読む

                                いま人気の記事

                                いま人気の記事をもっと読む

                                いま人気の記事 - テクノロジー

                                いま人気の記事 - テクノロジーをもっと読む

                                新着記事 - テクノロジー

                                新着記事 - テクノロジーをもっと読む

                                同時期にブックマークされた記事

                                いま人気の記事 - 企業メディア

                                企業メディアをもっと読む

                                はてなブックマーク

                                公式Twitter

                                はてなのサービス

                                • App Storeからダウンロード
                                • Google Playで手に入れよう
                                Copyright © 2005-2025Hatena. All Rights Reserved.
                                設定を変更しましたx

                                [8]ページ先頭

                                ©2009-2025 Movatter.jp