[フレーム]
はてなブックマークアプリ

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

アプリで開く

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

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

エントリーの編集

loading...

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

タイトルガイドライン

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

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

ブックマークしました

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

Twitterで共有

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

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

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

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

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

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

よく使うタグ

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

122 users kosui.me

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

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

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

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

よく使うタグ

はてなブックマーク

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

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

ユーザー登録

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

記事へのコメント8

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

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

その他
jay-es
クラスベースがダメなのではなく、ひとつのクラスに状態を持たせているのがダメなわけで、クラスを分けてイミュータブルにすれば同じことはできそう(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日 リンク

その他

注目コメント算出アルゴリズムの一部に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パターンをクラスによって実現する方法を追記しています。 背景 サーバサイド実装での状態管理の重要性 サーバサイドのビジネスロジックでは、エンティティ(注文、決済、在庫、タクシー配車リクエストなど)が複数の状態を行き来しながら進行します。 たとえば、タクシー配

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

  • karur4n2025年08月04日 karur4n
  • omr142025年07月28日 omr14
  • techtech05212025年07月26日 techtech0521
  • niwatori7202025年03月22日 niwatori720
  • heatman2025年03月22日 heatman
  • knj29182025年03月21日 knj2918
  • phoope2025年03月04日 phoope
  • mas-higa2025年02月26日 mas-higa
  • tmg19982025年02月25日 tmg1998
  • hush_in2025年02月24日 hush_in
  • ngepippi2025年02月22日 ngepippi
  • fushimatsu2025年02月22日 fushimatsu
  • cuttoff192025年02月22日 cuttoff19
  • tfujimo12025年02月22日 tfujimo1
  • peltier2025年02月22日 peltier
  • ss499192012025年02月22日 ss49919201
  • tsumuchan2025年02月22日 tsumuchan
  • naosim2025年02月22日 naosim
すべてのユーザーの
詳細を表示します

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

同じサイトの新着

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

いま人気の記事

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

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

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

新着記事 - テクノロジー

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

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

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

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

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /