タグ

enumに関するatsushifxのブックマーク (5)

  • システムで扱うステータスの分解と変換

    初めに レバテック開発部の今井です。 ソフトウェア開発において、データの状態管理は非常に重要です。注文の状態、ユーザーの認証状態、プロジェクトの進行状態など、多岐にわたる状況で、適切な状態管理が求められます。しかし、ビジネス要件の変化や新機能の追加に伴い、状態管理が複雑化し、保守が難しくなることがあります。 この記事では、データの状態管理を簡単にするためにMECEを初めとした方法で分析を提案します。これによって、柔軟で効率的なシステム設計が可能になることを目指します。 TL;DR MECEの原則を使ってenum型ステータスを分解する方法を解説する MECEによる分解から一次情報と二次情報という区分を提案し、分析の高度化を目指す 一次情報と二次情報の区分とシステム間のデータ連係の関係性について考察する 対象読者 システムの保守性・拡張性に興味関心のあるエンジニア enumをMECEに分解する

    システムで扱うステータスの分解と変換
    atsushifx
    atsushifx 2024/06/28
    enumなどで扱うステータスは、MECEで分割することで見通しが良くなったり、抜け、漏れが発見できるという話。ステータスを考えるときには、漏れなくダブりなく状態を数え上げることが大事ということ
  • Java の enum を使いこなせるあなたに sealed interface

    はじめに Java の enum は大変便利で非常多くのシーンで活用されています。例えば区分を表すようなオブジェクトを表現したい際にもよく使われていますね。 Java 14 で正式機能となった switch式にて網羅性検査が行えるようになり、それまで以前ではどうしても抽象メソッド等を活用する必要があった処理についても、switch式を利用する事で簡潔に表現することができるようになりました。 また、Java 17 で正式機能となった sealed classes/interfaces と Java 21 で正式機能になった Record Patterns によって、これまで必要だった区分値のような enum を必ずしも定義しなくて良い場合も出てきました。 この記事では、今まで enum を使っていたコードがこれらの機能によってどのように変わるのかを紹介し、盲目的に enum を定義するのでは

    Java の enum を使いこなせるあなたに sealed interface
    atsushifx
    atsushifx 2024/02/18
    UserとPermissionを例にした、プログラミングと型の使い方。考え方はJavaに限らない
  • Enumとてもつらい、でも負けない - エムスリーテックブログ

    列挙型、JavaでいうならEnum型、使っていますか。使わないわけにいきませんよね。 でも、Enumを使っていたせいで辛い目にあったことありませんか。ないですか。それならきっともうすぐに辛い目にあうと思います。 Enumはすべてのプログラマに等しく辛みを与えてくれるからです。そんな辛みについて、ちょっと一緒に直視してみましょう。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@[email protected]) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の6日目です。 アプリケーションプログラミング上の辛み 1. 既存のif文が偶発的に意図しない方に倒れる 2. switch文に至っては「どちらでもない」で処理不発に アプリケーションプログラミング上の対策 1. 分岐条件をEnumに持たせる 2. swi

    Enumとてもつらい、でも負けない - エムスリーテックブログ
    atsushifx
    atsushifx 2023/12/06
    そもそもデータ構造がかわってくるわけで・・・。とてもつらい
  • Railsでの区分値の扱いについて考える | Webシステム開発/教育ソリューションのタイムインターメディア

    Railsでの区分値の扱い、皆様どのようにしておられるでしょうか? 区分値とは、例えば性別情報(1: MALE, 2: FEMALE)とか、服を扱っているシステムの場合は商品種別(1: LADIES, 2: MENS, 3: KIDS)の事を指します。 私は区分値情報をDBに保存しておこうか、アプリ側でのみもっておこうか、毎回悩まされます。 区分値をDBに保存しておくと、外部キー制約もつけられるしActiveRecordでも扱いやすいといったメリットがあります。 しかし、アプリとDB両方に区分値情報を持っているとデータの二重管理になってしまいます。 DB側の区分値とアプリ側の区分値がい違ってる! なんていう事態も発生します。 ならば、いっその事DBに保存するのはやめて、区分値情報をアプリ側にのみ持っていた方がよいのでは、というのが最近の私の考えです。 今回はRailsで区分値を扱う方法に

    Railsでの区分値の扱いについて考える | Webシステム開発/教育ソリューションのタイムインターメディア
    atsushifx
    atsushifx 2014/01/06
    いわゆるデータベースでのコード化した属性の扱いについて。記事ではRailsだけど他の言語やフレームワークでもデータベースとアプリでの二重化は発生しうるリスク
  • enumってベンリかな

    みなさま、こんにちは。 なかなかブログの更新速度があがらないnouzui2007です。 すっかりごぶさたしておりますが、平常運転すぎてあまり気になりませんねw さて、今回のお題ですが、enumいってみたいと思います。 enumって、列挙型なんて日語があてられてます。 列挙型 なんか、わかったような気がしてきませんか? よく知っている表現というのは大切ですねw これ、なんのために使うかっていうとですねぇ カレンダーの1月から12月を定数にして、まとめておく トランプスーツ(スペードとかハートとかのあれです)を定数にしておく コーラの種類を定数化したい とか、みたいな場合に使います。 なんとなくわかったかもしれませんが、 あらかじめ要素数がわかっている定数たちを、まとめておける のがenumです。 単純なenumは、書き方がCやC++とそっくりです。 enum CocaCola { NOR

    atsushifx
    atsushifx 2011/12/17
    enum,列挙型の一番いいところはあらかじめ定義した値以外を取りようがないこと。不正な値について考える必要がない
  • 1