並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 50件

新着順 人気順

enumの検索結果1 - 40 件 / 50件

  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる』でした! 世の中には再現が難しく一見してバグがありそうに思えないコードもありますが、一方でプロダクションコードの中にはひと目見てバグが有りそうなコードもまた多いものです。いくつかの特定のパターンをとる文字列(環境名など)やenum(以下どちらもenumと表現します)に関する条件分岐もその一つです。プルリクを見てこのようなパターンがあれば、バグの疑いが強くなります。周囲を見渡すと、大抵すでにバグっているか潜在バグを含むコードが見つかります。すべてバグというのは言い過ぎにせよ、わかりやすさと変

      プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    • Enumとてもつらい、でも負けない - エムスリーテックブログ

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

        Enumとてもつらい、でも負けない - エムスリーテックブログ
      • C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?

        回答 (9件中の1件目) > C++のenumという型の使い方がよくわかりません。 C++に限りませんが、Enumは基本的にはカテゴリ変数を表すために使用します。例えば曜日には月曜日から日曜日の7通りまでしかなく、曜日を表す変数を整数(0-6)や文字列(mon, tue, …, sun)で扱おうとすると関数の引数で与えられたときにその範囲外の値が入ってきたかどうかをいちいちチェックしないといけません。しかし、事前にEnumでMonからSunまでの7つの値しかないDayOfWeekという型を定義しておくと、一度DayOfWeekに変換しておけば以降はもうチェックをする必要が無いことが型レ...

          C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?
        • TypeScriptで「選択肢」の定義をEnum的な定数にまとめる――satisfiesとSSoTもあるよ

          ソート順の選択プルダウンがある一覧系ページを実装するとき、選択肢たちの管理方法に頭を悩ませることが多いと思います。 商品一覧ページの概要 ソート順プルダウンの選択肢たち 上の画像に示したような場合だと、 《クエリパラメータ》と《選択肢》の間の相互変換 ?sort=price&order=desc <--> 「価格が高い順」 《select の状態に使うための文字列》と《選択肢》の間の相互変換 <option value={id}>{label}</option> クエリパラメータが sort order の2つあり、それらをそのまま流用できないので 最低限でも、これらの変換ロジックを用意しておく必要がありますね。 この記事では、このような「選択肢と、それにまつわる変換ロジック群」を整理する方法を、高凝集・SSoT (Single Source of Truth; 信頼できる唯一の情報源)

            TypeScriptで「選択肢」の定義をEnum的な定数にまとめる――satisfiesとSSoTもあるよ
          • 【TypeScript】enumを使ったっていいじゃないか

            TypeScriptで定数をどのように表現するか、というのは意外に意見が分かれるテーマです。本稿では、enumの特徴とその代替手段を整理し、何を採用すべきかを考えてみます。 enumを推奨しないという意見が多いのは知っていても、何故そう言われているのか、を理解していますか? 「使ってはダメ」と思考停止するのではなく、この記事を読むことでメリット・デメリットを理解して自分で選択できるようになる、かもしれません! 列挙型(enum)とは enumはJavaScriptにはないTypeScript独自の構文で、定数を集合としてまとめて扱うことができます。 enum Mode { Auto = 'Auto', UDP = 'UDP', TCP = 'TCP', } const mode: Mode = Mode.Auto

              【TypeScript】enumを使ったっていいじゃないか
            • 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
              • ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる

                この記事は、静的解析とビルドサイズ面で興味深いテーマでした。記事として自分の考えを書きます。 注意。あくまでビルドパフォーマンス視点での最適化です。強い意図があって、自分のドメインモデリングの方法論ではこれが最適なんだ、というなら元コードの方法論を止めるつもりはありません。 元記事のコードを minify するとどうなるか 元コードを参考に、それにアクセスするサンプルコードを書いてみます。 const sortingOptions = { priceDesc: { id: "priceDesc", sort: "price", order: "desc", label: "価格が高い順", }, priceAsc: { id: "priceAsc", sort: "price", order: "asc", label: "価格が安い順", }, ratingDesc: { id: "ra

                  ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる
                • TypeScript 5.8のerasableSyntaxOnlyフラグ。enumやnamespaceが消える日が来た

                  TypeScript 5.8で導入されるerasableSyntaxOnlyフラグを使うと、enumやnamespace、クラスのパラメータプロパティ、moduleキーワードなどの構文をエラーとして検出できます。これらの構文はNode.jsでTypeScriptを実行する際に非互換な構文であり、本フラグの導入によりNode.jsとTypeScriptの互換性が高まります。 本記事では、erasableSyntaxOnlyフラグの挙動と、なぜこのフラグが導入されたのかを解説します。 erasableSyntaxOnlyフラグの挙動 erasableSyntaxOnly とは、「削除可能な構文のみ」という意味です。削除可能な構文とは、Node.jsでTypeScriptを実行される際に削除される構文のことです。後ほど詳しく解説します。 erasableSyntaxOnlyフラグは、tsconf

                    TypeScript 5.8のerasableSyntaxOnlyフラグ。enumやnamespaceが消える日が来た
                  • 転生したらTypeScriptのEnumだった件~型安全性とエコシステムの変化で挫けそうになっているんだが~

                    転生したら​TypeScriptの​Enumだった​件 ~型​安全性と​エコシステムの​変化で​挫けそうになっているんだが​~ 発表概要 「…ここは、一体?」 気づけば俺は、TypeScriptのEnumとして異世界転生していた。与えられたのは名前付き定数を表現する力「列挙型」。 しかし型安全性を重視する世界において、Union型とconst assertionsたちが我が物顔で闊歩し、俺の居場所を奪っていくのであった。 可読性と保守性を高めるために生まれたはずの俺が、今や時代遅れの遺物扱い。 さらに追い打ちをかけるように、Node.jsの「--experimental-strip-types」とTypeScriptの「--erasableSyntaxOnly」のオプションたちが、存在そのものを消し去ろうとする。 「このままでは…このままでは俺は消えてしまうのか…?」 それでも俺は諦めない

                    • enumはクローズド直和、traitはオープン直和

                      本稿では直和による多態性を実現する2つの機能、enumとtraitを拡張性の観点から比較します。 → Expression problem ※enumとtraitを使い分けるにあたってはパフォーマンス要件など他の条件も考慮するべきですが、本記事は多態性の観点のみ説明します。 数式 — enumによる例 本稿では数式をあらわすデータ型を例として扱います。enumではこのように定義されます。 #[derive(Debug)] pub enum Expr { Var(String), Add(Box<Expr>, Box<Expr>), Sub(Box<Expr>, Box<Expr>), Mul(Box<Expr>, Box<Expr>), Div(Box<Expr>, Box<Expr>), } impl Expr { pub fn eval(&self, vars: &HashMap<St

                        enumはクローズド直和、traitはオープン直和
                      • Rails7.1からcolumn,enum名に使えない名前が増える可能性が高いので注意 - カレーの恩返し

                        3行まとめ Rails 7.1 から dup, freeze, hash, object_id, class, clone, frozen は column 名や enum の種類として使えなくなる可能性が高い 該当 column を持つ Model の initialize で ActiveRecord::DangerousAttributeError が発生する 各位そういった名前を使わない、rename するなど身構えておきましょう 起きていた問題 会社の Rails アプリケーションに対して rails/rails の main branch を使ってテストを走らせていたら以下のようなエラーを数多く見かけるようになった。 ActiveRecord::DangerousAttributeError: object_id is defined by Active Record. Che

                          Rails7.1からcolumn,enum名に使えない名前が増える可能性が高いので注意 - カレーの恩返し
                        • Rails: aasm gemは今すぐRailsの新しいenumに置き換えよう(翻訳)|TechRacho by BPS株式会社

                          概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Replace aasm with Rails Enum today | Arkency Blog 原文公開日: 2024/03/29 原著者: Szymon Fiedler 日本語タイトルは内容に即したものにしました。 参考: ステート・マシン - IBM Documentation Railsアプリには、いわゆるステートマシン実装を提供するgemが含まれていることがよくあります。それがaasmというgem(旧名acts_as_state_machine)である可能性はさらに高いでしょう(ところでacts_as_hasselhoffというジョークgemがあったのを覚えている人っていますか?)。 それはともかく、このaasm gemをActiveRecordモデルにincludeすると、かなりいろいろなことができるようになります

                            Rails: aasm gemは今すぐRailsの新しいenumに置き換えよう(翻訳)|TechRacho by BPS株式会社
                          • enumの使い方のおさらいと高機能enumとしてのSealedクラス - きしだのHatena

                            Javaでは複数の定数をまとめて扱う型としてenum(列挙型)が用意されています。 これはこれで便利なのですが物足りないところもあって、それがSealedクラスなどを使うことで解決できるようになるので、解説します。 enum型 enumは状態やデータ区分を表すのによく使われます。 構文は次のようになります。 enum 型名 { 列挙1, 列挙2, ... } 例えば次のような状態を表すとします。 この状態を表すenumは次のようになります。それぞれの値は大文字で書くようにします。 enum State { READY, RUNNING, SUSPENDED, TERMINATED } enumではそれぞれの値ごとに処理を行うということがよくあります。そこでswitchと相性がいいです。 State s = State.READY; switch (s) { case READY -> Sy

                              enumの使い方のおさらいと高機能enumとしてのSealedクラス - きしだのHatena
                            • Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita

                              メモっとかないとよく忘れるんですよ…… (おい) 基本 Clone, Copy Default Debug, Display 比較 PartialEq, Eq PartialOrd, Ord 変換 Deref, DerefMut AsRef, AsMut Borrow, BorrowMut From, TryFrom FromStr ToOwned 出力 Binary Octal LowerHex, UpperHex LowerExp, UpperExp Pointer 特定用途向け エラー用 Error ハッシュテーブルの要素用 Hash コンテナー用 Extend FromIterator IntoIterator 演算子 Sum, Product Add, AddAssign, Sub, SubAssign, Mul, MulAssign, Div, DivAssign, Rem,

                                Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita
                              • 入門Javaのenum - Qiita

                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                  入門Javaのenum - Qiita
                                • PHP8.1が出たのでmyclabs/php-enumから列挙型(Enum)に置き換えが出来るか試してみた

                                  環境 PHP 8.1.0 myclabs/php-enum 1.8.3 myclabs/php-enumを使って作った下記のサンプルコードを列挙型(Enum)に置き換えられるか試してみたいと思います。 declare(strict_types=1); use MyCLabs\Enum\Enum; class Cardsuit extends Enum { public const CLUBS = 1; public const DIAMONDS = 2; public const HEARTS = 3; public const SPADES = 4; public function label(): string { return match($this->value) { self::CLUBS => 'クラブ', self::DIAMONDS => 'ダイヤモンド', self::H

                                    PHP8.1が出たのでmyclabs/php-enumから列挙型(Enum)に置き換えが出来るか試してみた
                                  • Kotlinのsealed型を使って高機能なenum型を実装する - ドワンゴ教育サービス開発者ブログ

                                    はじめに シンプルな実装例 sealed型による実装のメリット enumに階層関係を持たせることができる 個々の値を型として扱える sealed型による実装のデメリット 言語仕様が提供する便利機能を利用できない まとめ We are hiring! はじめに blog.nnn.dev Kotlinのsealed型の使い方を考える記事の第2弾です。 前回の記事では、sealed型を使って論理和型を実装しましたが、今回は通常の enum class よりも機能を拡張したenum型を実装したいと思います。 シンプルな実装例 通常、Kotlinでenum型を使いたい場合は、enum class を使って、次のように実装します。 /** * 学校で教える教科 (抜粋) */ enum class SchoolSubjectEnum { /** 日本史 */ JAPANESE_HISTORY, /**

                                      Kotlinのsealed型を使って高機能なenum型を実装する - ドワンゴ教育サービス開発者ブログ
                                    • 【Rails 7.1】ActiveRecord#Enumでメソッドの自動生成を制御する

                                      この記事は GMOアドマーケティング Advent Calendar 2022 3日目の記事です。はじめにこんにちは。GMOアドマーケティングの石丸(@thomi40)です。前回の記事では Rails 7 から実装された query_log_tags について紹介しました。今回の記事では同じく Rails 7 から追加された ComparisonValidator について紹介します。※記事内の画像は筆者が作成したアプリケーションをキャプチャーしたものです。ComparisonValidatorとはComparisonValidator は任意のオブジェクトの比較を行うバリデーターです。数値の比較には NumericalityV... 2023年10月に Rails 7.1 がリリースされたため、今回の記事では Rails 7.1 から新たに追加された ActiveRecord#Enum

                                        【Rails 7.1】ActiveRecord#Enumでメソッドの自動生成を制御する
                                      • 2024-08-25のJS: WebdriverIO v9、Node v22.7.0(TS `enum`と`namespace`の対応)、Deno 1.46(Last 1.x)

                                        JSer.info #704 - WebdriverIO v9がリリースされました。 WebdriverIO v9 Released | WebdriverIO 新しい機能として、WebDriver BiDiのサポート、urlコマンドの追加、addInitScriptコマンドの追加、setViewportコマンドの追加、ShadowRootのサポートなどがあります。 また、emulateコマンドでClockのエミュレーションサポートや、要素がinteractiveになるまで自動的に待機する変更も含まれています。 Node.js v22.7.0がリリースされました。 Node.js — Node v22.7.0 (Current) 新しい機能として、--experimental-transform-typesフラグによるTypeScriptのenumとnamespaceの変換をサポートしまし

                                          2024-08-25のJS: WebdriverIO v9、Node v22.7.0(TS `enum`と`namespace`の対応)、Deno 1.46(Last 1.x)
                                        • 列挙型(enum)の問題点と代替手段 | TypeScript入門『サバイバルTypeScript』

                                          TypeScriptの列挙型(enum)にはいくつか問題点が指摘されていてます。ここでは、その問題点と代替手段を説明します。 列挙型の問題点​列挙型はTypeScript独自すぎる​TypeScriptは、JavaScriptを拡張した言語です。拡張といっても、むやみに機能を足すのではなく、追加するのは型の世界に限ってです。こういった思想がTypeScriptにはあるため、型に関する部分を除けば、JavaScriptの文法から離れすぎない言語になっています。 JavaScriptの文法からドラスティックに離れたAltJSもあります。その中で、TypeScriptが多くの開発者に支持されているのは、JavaScriptから離れすぎないところに魅力があるからというのもひとつの要因です。 TypeScriptの列挙型に目を向けると、構文もJavaScriptに無いものであるだけでなく、コンパイル

                                            列挙型(enum)の問題点と代替手段 | TypeScript入門『サバイバルTypeScript』
                                          • GoとEnumについて

                                            これはGo Advent Calendar 2022の21日目の記事です。 たびたび「Enumイディオム」がGoに欲しいという要望が話題になるのでその話をまとめてみる。 議論の中心はここが詳しい。 「Enumイディオム」が解決する課題 文字列表現がつく 反復処理ができる 偽の列挙値を導入することを防ぐ 名前空間を分離する などがあるらしい。上にあげた課題がGo標準では解決しにくいという理由がよく上がるのですが、Enumイディオムの追加方法は何パターンかあります。 Enum型プリミティブを言語仕様に加える ライブラリとしてEnumオブジェクト実装を提供する 現状の推奨「iotaによる手法+go-generate」による方法 「Enum型プリミティブを言語仕様に加える」について 言語実装のアップデートが必要 reflectパッケージのアップデートが必要 後方互換のためiota式とEnum式の2

                                              GoとEnumについて
                                            • TypescriptのEnum型の代わりにUnion型を使用する

                                              この投稿は、弊社が提供するWESEEK TECH通信の一環です。 WESEEK TECH通信とは、WESEEKのエンジニアがキャッチアップした技術に関する情報を、techブログを通じて定期的に発信していくものです。 はじめに こんにちは、システムエンジニアの かおり です。この記事では、TypeScriptで用いられる Enum型 とUnion型の基本的な使い方から、Enumを避けるべきと言われている理由、Union型を用いてEnumのように書く方法などを説明しています。 Enum (列挙型) とは? そもそも Enum とは何か、なんのために使うものなのでしょうか。 ここで説明している Enum とは総称であり、列挙型とも呼ばれます。以下の例は TypeScript のコードですが、他の言語でも存在する概念・実装であり、複数の定数を一つにまとめて定義したり管理したりすることができます。

                                                TypescriptのEnum型の代わりにUnion型を使用する
                                              • 「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能

                                                「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能 Webアプリケーションの開発言語として知られるPHP言語の開発チームは、PHP 8.1の正式リリースを発表しました。 PHP's website has a nice overview of the new features too:https://t.co/pU0bPeiyjd — php.net (@official_php) November 25, 2021 PHP 8.1ではSymfonyのデモアプリケーションで23%の高速化、Wordpressで3.5%の高性能化を実現したと説明されています。 言語仕様としては、Enum型の追加、Readonly Propertiesの追加、変数の初期化でNewキーワードの利用が可能に、返値を返さない関数を記述するNeverキーワード

                                                  「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能
                                                • Rails 7のenumに新しい構文が導入(翻訳)|TechRacho by BPS株式会社

                                                  概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rails introduces new syntax for enum | Saeloun Blog 原文公開日: 2021-02-26 著者: Deepak Mahakale サイト: Saeloun Blog | Ruby on Rails Consulting Company based in San Francisco and Boston Rails 7の最新の変更で、enum定義に新しい構文が導入されました(#41328)。 変更前 従来の構文では、以下のように「enumの名前」「enumの値」「enumのオプション」を渡せます。 class Post < ActiveRecord::Base enum status: [ :draft, :published, :archived ], _prefix: true,

                                                    Rails 7のenumに新しい構文が導入(翻訳)|TechRacho by BPS株式会社
                                                  • Enum の代わりに使う union 型 | CYOKODOG

                                                    Enum の代わりに union 型を使おうという風潮があるらしい TypeScript v3.4 から使えるconst assertionを用いると、使い勝手を損なわず Enum の代わりに union 型が使えるらしい Enum とは 列挙型とも呼ばれる TS にはあって JS には無いもの、他の言語(C、C#、Java とか)にもある 定数をひとまとめに定義できる enum Card { Clubs, // 0 Diamonds, // 1 Hearts, // 2 Spades, // 3 } const card: Card = Card.Hearts; console.log(card); // 2 上記のように値には連番が振られる 意味のある分かりやすい値をもたせたい場合は、文字列や任意の数値を設定することもできる enum Card { Clubs = "clubs", D

                                                    • [Rust] 静的ディスパッチ(Enum)と動的ディスパッチ(dyn Trait)はどちらが速いのか?

                                                      ある時、 Rust で動的ポリモーフィズムを実現するには、 Enum は dyn Trait より遅いという主張を見ました。 dyn Trait は仮想関数テーブルのルックアップがある分、遅いはずだと思っていたので、これは確かめてみようと思いました。 [2024/5/24追記]: 少し後で考えると、ここで静的ディスパッチという言葉を使うのは語弊があるような気がしたので補足します。静的ディスパッチとは、 dyn Trait に対する impl Trait のことを呼ぶことが多く、ここで Enum で実現しているのは「一つのコンテナに異なる型や挙動を示すオブジェクトを含める」という意味では動的ディスパッチです。正確に言うならば、この記事で示しているのは、同じ動的ディスパッチでも、 Enum を使った場合分けか、 dyn Trait を使った仮想関数テーブルを使ったポリモーフィズムかという違いで

                                                        [Rust] 静的ディスパッチ(Enum)と動的ディスパッチ(dyn Trait)はどちらが速いのか?
                                                      • 週刊Railsウォッチ(20210315前編)Active Recordのenum関連改修、Active SupportのEnumerableでpluckが使えるほか|TechRacho by BPS株式会社

                                                        週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) 以下のコミットリストのChangelogを中心に見繕いました。 コミットリスト: Comparin

                                                          週刊Railsウォッチ(20210315前編)Active Recordのenum関連改修、Active SupportのEnumerableでpluckが使えるほか|TechRacho by BPS株式会社
                                                        • Enum、お前は一体何者だ? | ドクセル

                                                          スライド概要 BuriKaigi 2026 登壇資料 『Enum、お前は一体何者だ?複数言語で見る「列挙型」の多様な進化と使い方』

                                                            Enum、お前は一体何者だ? | ドクセル
                                                          • Railsのenumを使いこなす方法(翻訳)|TechRacho by BPS株式会社

                                                            概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: How to Use Enums in Rails | Saeloun Blog 原文公開日: 2022/01/14 原著者: Alkesh Ghorpade サイト: blog.saeloun.com Railsのenumについて enum(enumeration: 列挙)は、名前を整数の定数に割り当てるのに使われるデータ型です。名前は言語の定数として振る舞う識別子なので、整数を直に扱う場合よりもプログラムの読みやすさとメンテナンス性が向上します。 ActiveRecord::EnumはRails 4.1で導入されました。enumの属性値はデータベース内の整数に対応付けられますが、クエリでは名前で参照できます。enumを使うと、データのステートを非常に高速に変更できるようになります。enumはRailsで手軽に利用可能で、en

                                                              Railsのenumを使いこなす方法(翻訳)|TechRacho by BPS株式会社
                                                            • なぜPHPにはEnumがないのか

                                                              レガシーなアプリケーションにこそTypeScriptを採用するべきではないかと思ったのでちょっとまとめてみたよっていう話をするスライドです / Legacy code needs TypeScript

                                                                なぜPHPにはEnumがないのか
                                                              • SQLアンチパターン感想その二ーENUM型を扱う

                                                                今回はSQLアンチパターンの感想その二です。 以前のプロジェクトで何回か出会ったことがあり、一つのカラムに対して、いくつかの選択肢がある、という場合、ENUMタイプを安易に使ってしまいましたが、この本を読んだら改めて反省しました。 解決したい問題とは 例えばブログポストのステータスというフィールドがあるとして、そのステータスには、DRAFT, PUBLISHEDといった値があります。ただ、ここはstatusフィールドに対して、DRAFTとPUBLISHEDのみに限定したいです。draftでも、newでも、挿入・更新できないように制限をかけたいところです。 アンチパターン:CHECKもしくはENUMを用いる CREATE TABLE Post ( -- ... status VARCHAR(20) CHECK (status IN ('DRAFT', 'PUBLISHED')) ); var

                                                                  SQLアンチパターン感想その二ーENUM型を扱う
                                                                • State Machines II: an enum-based design

                                                                  State Machines II: an enum-based design — 2022-08-23 the case for state machines representing state machines in rust in the future ergonomics: overview ergonomics: merging self-types ergonomics: merging return types tying it together conclusion In the past I've written about state machines in Rust. And more recently I've also written about anonymous enums 1 in Rust. I've been wondering what would

                                                                    State Machines II: an enum-based design
                                                                  • SQLアンチパターン:ENUMは使わない方がいいよ - Shiro's secret base

                                                                    どうも、シローです。 今回は、特定の文字列に限定した列を定義する方法について、アンチパターン「サーティワンフレーバー」も一緒に紹介します。 特定の値を持ちうる列とは 例えばユーザ(Users)の権限(管理者かメンバーか)を表したい場合、Usersテーブルにメンバーの権限を表すuser_roleという列を定義するとします。 このuser_roleには管理者の場合はadmin、メンバーの場合はmemberという値を持ちそれ以外の値は格納しない(できない)ようにするにはどうすれば良いのか アンチパターン「サーティワンフレーバー」について 先にアンチパターンについて紹介します。 サーティワンフレーバーと呼ばれる設計方法では特定の値を入れるために 列にCHECK制約を入れる(MySQL8.0以降) 列をENUM型にする という手法を取りうることです。 僕の環境はMySQL5.7なのでENUM型のカラ

                                                                      SQLアンチパターン:ENUMは使わない方がいいよ - Shiro's secret base
                                                                    • Rails: PORO の attribute に対して ActiveRecord::Enum 風の実装をする|TechRacho by BPS株式会社

                                                                      2024.12.24 Rails: PORO の attribute に対して ActiveRecord::Enum 風の実装をする 先日業務中に遭遇したちょっとした疑問から ActiveRecord::Enum っぽい実装を POROで再現するアレコレを試してみたくなったのでこの記事を書き起こしてみました。 enum についてはそもそも ActiveRecord::Enum の宣言の仕方からして色々なパターンがあったり、PostgreSQL での enum 型の存在もあったりで Enum 全般での解説、深掘り記事もいつか書いてみたい気持ちもあるのですが、今回は思い立ったが吉日と言うことで、あえて何故かいきなり王道の話題から外れたところに話を絞っていきたいと思います。 (ところで校正してる時に気付きましたが ActiveModel::Enum を導入してみようとする試みとそれを拒否した議論

                                                                        Rails: PORO の attribute に対して ActiveRecord::Enum 風の実装をする|TechRacho by BPS株式会社
                                                                      • ken\d|\x on Twitter: "よく出回らないAWS攻撃テク #転記 # initial access - コミュニティリソースのバックドア化 # recon - リソース名先取り - unauthenticated aws role enum (pacu) #… https://t.co/wvE7LD3l0u"

                                                                        よく出回らないAWS攻撃テク #転記 # initial access - コミュニティリソースのバックドア化 # recon - リソース名先取り - unauthenticated aws role enum (pacu) #… https://t.co/wvE7LD3l0u

                                                                          ken\d|\x on Twitter: "よく出回らないAWS攻撃テク #転記 # initial access - コミュニティリソースのバックドア化 # recon - リソース名先取り - unauthenticated aws role enum (pacu) #… https://t.co/wvE7LD3l0u"
                                                                        • TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します

                                                                          LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog こんにちは。LINE Growth Technology UITチームの慶島(@pittanko_pta)です。 この記事では、TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します。 検証環境 TypeScriptからJavaScriptへのトランスパイルは https://www.typescriptlang.org/play (TypeScript 3.9.2 / targetはESNext) で行いました。 Tree-shaking の挙動については https://rollupjs.org/repl/ にトランスパイルしたJavaScriptコードを貼り付けて検証しました

                                                                            TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します
                                                                          • 週刊Railsウォッチ(20210125前編)Railsリポジトリのデフォルトブランチがmainに変更、Rails 6.1はMySQLのENUM型に対応済みほか|TechRacho by BPS株式会社

                                                                            2021.01.25 週刊Railsウォッチ(20210125前編)Railsリポジトリのデフォルトブランチがmainに変更、Rails 6.1はMySQLのENUM型に対応済みほか こんにちは、hachi8833です。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例

                                                                              週刊Railsウォッチ(20210125前編)Railsリポジトリのデフォルトブランチがmainに変更、Rails 6.1はMySQLのENUM型に対応済みほか|TechRacho by BPS株式会社
                                                                            • Rails 7: PostgreSQLのカスタムenum型が使いやすくなった(翻訳)|TechRacho by BPS株式会社

                                                                              概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rails 7 adds better support for custom enum types in PostgreSQL | Saeloun Blog 原文公開日: 2022/01/12 原著者: Swaathi Kakarla サイト: blog.saeloun.com 日本語タイトルは内容に即したものにしました。 なお、その後drop_enumがmainブランチにマージされました。 参考: Add drop_enum command for Postgres by ghiculescu · Pull Request #45735 · rails/rails 参考: 週刊Railsウォッチ20220822: マイグレーションにdrop_enumコマンドが追加(PostgreSQLのみ) PostgreSQLに組み込まれてい

                                                                                Rails 7: PostgreSQLのカスタムenum型が使いやすくなった(翻訳)|TechRacho by BPS株式会社
                                                                              • Rails 6.1 allows configuring default value of enum attributes

                                                                                Rails 6.1 makes it easier to configure a default value for Active Record enumattributes. Let's take an example of blog posts with status and category columns. class Post < ApplicationRecord enum status: %i[draft reviewed published] enum category: { rails: "Rails", react: "React" }endBefore Rails 6.1, defaults for enum attributes can be configured by applyingdefault on the database level. class Add

                                                                                  Rails 6.1 allows configuring default value of enum attributes
                                                                                • [C++]enumを文字列に変換する汎用的な方法。 - 賢朽脳瘏

                                                                                  2021年9月28日追記。どういうわけかアクセス数が増えているので、訪問者を混乱させないよういい加減だったサンプルを作り直した。 enumは単なる整数値に名前を付与する手段の一つだ。パラメータの意味がわかりやすくなる上、処理コストの大きな文字列を使わなくても良い便利な機能である。最近ではenum classの形で使われることが推奨されている。 enum DoW { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, }; DoW dow = Sunday; int i = (int)dow;//i == 0 ただ例えば標準出力などにその名前の方を出力したいと思っても、ちょっと手間がかかる。enumは本質的にはただの整数値なので、例えばprintfの%sに直接enumを渡すことは出来ない。ネット上に溢れかえっている方

                                                                                    [C++]enumを文字列に変換する汎用的な方法。 - 賢朽脳瘏