並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 53件

新着順 人気順

Enumの検索結果1 - 40 件 / 53件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

Enumに関するエントリは53件あります。 railsprogrammingプログラミング などが関連タグです。 人気エントリには 『プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers』などがあります。
  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

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

      プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    • 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の観点で紹介します
      • 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もあるよ
            • 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が消える日が来た
                  • 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
                          • Pythonの列挙型 (enum) - け日記

                            これまで定数クラスを作ってやり過ごすことが多かったのですが、enumが比較的使いやすかったので、 enum enumはPython 3.4から標準ライブラリに追加されたモジュールで、列挙型をサポートするものです。 docs.python.org 実装 最初にenumをインポートしておきます。Python 3.7.4を使っています。 import enum BTreeなどの木構造のノードを考えてみます。各ノードは根ノード (ROOT) 、中間ノード (INTERNAL) 、葉ノード (LEAF) の3種類のいずれかに分類されるものとします。 それをTreeNodeTypeという列挙型で表現すると、以下のようになります。Enumクラスを継承することで実装します。 列挙子 (ROOTなどの識別子) はnameとvalueとプロパティを持ってます 列挙子同士は比較可能ですが、列挙子と同じEnumオ

                              Pythonの列挙型 (enum) - け日記
                            • 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
                              • 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::HE

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

                                  この記事のサンプルコードは、enumの説明に特化しています。それゆえ、一般的には良くないとされるコードも含まれています(金額の計算で BigDecimal ではなく int や double を使っているなど)。 分類などをどう表すか 例えば、架空のECサイトのシステムを考えます。このECサイトの会員にはブロンズ会員・シルバー会員・ゴールド会員の3つのランクがあり、ランクによって割引率などが異なります。これをどうやって表しましょうか? まずは良くない例です。 public class Rank { public static final int BRONZE = 1; public static final int SILVER = 2; public static final int GOLD = 3; }

                                    入門Javaのenum - Qiita
                                  • 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 2023 4日目の記事です。 はじめに こんにちは。 GMOアドマーケティングの石丸です。 昨年のアドベントカレンダーでは Rails 7 で追加された ComparisonValidator について紹介しました。 この記事は GMOアドマーケティング Advent Calendar 2022 3日目の記事です。はじめにこんにちは。GMOアドマーケティングの石丸(@thomi40)です。前回の記事では Rails 7 から実装された query_log_tags について紹介しました。今回の記事では同じく Rails 7 から追加された ComparisonValidator について紹介します。※記事内の画像は筆者が作成したアプリケーションをキャプチャーしたものです。ComparisonValidatorとはComp

                                        【Rails 7.1】ActiveRecord#Enumでメソッドの自動生成を制御する
                                      • [Typescript] 「なぜ enum の利用が推奨されないのか?」をまとめてみた - Qiita

                                        はじめに Typescript にも他の言語と同様にenumが記法として実装されているのですが、次の記事ではenumではなく、Union typeを利用しようという内容が記載してありました。 さようなら、TypeScript enum: Kabuku Developers Blog 色々関連する記事を読んだ結論として、特にこだわりがなければ「Union type」を利用する方が良いと僕も思います。 その根拠 / 背景を以降まとめたいと思います。 なお、本記事のコードの検証には、Typescript Playground を利用しています。 Typescriptのenumについて enumはある型についてとりえる値を列挙します。(他の言語と同様) Typescriptでは文字列、または数値を値としてマッピングできます。 デフォルトでは、上から0,1,2...というように数値を自動で値として設

                                          [Typescript] 「なぜ enum の利用が推奨されないのか?」をまとめてみた - Qiita
                                        • 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)
                                          • GoとEnumについて

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

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

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

                                                  列挙型(enum)の問題点と代替手段 | TypeScript入門『サバイバルTypeScript』
                                                • TypescriptのEnum型の代わりにUnion型を使用する

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

                                                    TypescriptのEnum型の代わりにUnion型を使用する
                                                  • 週刊Railsウォッチ(20200720前編)10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか|TechRacho by BPS株式会社

                                                    2020.07.20 週刊Railsウォッチ(20200720前編)10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか こんにちは、hachi8833です。情報処理技術者試験の秋の募集が始まりました。 元記事: IPA 独立行政法人 情報処理推進機構:試験実施案内:令和2年度10月試験について つっつきボイス:「そうそう、春のは中止でしたね」「受験する方はどぞよろしく〜」 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 ⚓臨時ニュース: Kaigi on RailsのCFPを7月末まで募集中 サイト: Kaigi on Rails 10/

                                                      週刊Railsウォッチ(20200720前編)10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか|TechRacho by BPS株式会社
                                                    • [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)はどちらが速いのか?
                                                      • 「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型、非同期コードを簡単に記述など新機能
                                                        • ActiveRecord::EnumのI18n

                                                          ActiveRecordのenumにI18n用の機能を提供するgemをつくった。 https://github.com/r7kamura/activerecord-enum_translation どういうものか Userがenumを利用したstatusというカラムを持っているとすると、I18n用の辞書としてこういう風なデータを用意しておけば… ja: activerecord: attributes: user: name: 名前 status: active: 利用中 inactive: 停止中 次のようにメソッドを呼び出すことで、翻訳された辞書が利用できるようになる、というやつ。 user.human_enum_name_for(:status) #=> "利用中" 技術的な難題の解決とかは全く狙っていなくて、どちらかと言うと、この手の仕組みにルールが無くてアプリ内のいろんなところに

                                                            ActiveRecord::EnumのI18n
                                                          • 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

                                                              • RailsのSTIやenumで想定外の値が入らないようにする方法 - Qiita

                                                                まとめ STIやenumに入りうる値をテーブルで持ち、外部キー制約を追加しましょう。 サンプルリポジトリ やり方 idの型とSTIのカラムやenumのカラムの型を一致させる。 外部キー制約をはる。 class CreatePosts < ActiveRecord::Migration[6.0] def change create_table :posts do |t| t.string :type t.integer :state t.string :title t.text :body t.timestamps end create_table :post_states do |t| t.string :name t.timestamps end add_foreign_key :posts, :post_states, column: :state create_table :post

                                                                  RailsのSTIやenumで想定外の値が入らないようにする方法 - Qiita
                                                                • 週刊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株式会社
                                                                  • TypeScript の Enum がどのように JavaScript で表現されているか調べてみた。 - Qiita

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

                                                                      TypeScript の Enum がどのように JavaScript で表現されているか調べてみた。 - Qiita
                                                                    • Swiftでenum, class, protocolのどれを使うかの判断材料の比較 - Qiita

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

                                                                        Swiftでenum, class, protocolのどれを使うかの判断材料の比較 - Qiita
                                                                      • なぜPHPにはEnumがないのか

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

                                                                          なぜPHPには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
                                                                          • 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株式会社

                                                                                  新着記事