問題タブ [magic-numbers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
15 に答える
330793 参照

language-agnostic - マジックナンバーとは何ですか? なぜ悪いのですか?

マジックナンバーとは?

なぜそれを避けるべきですか?

該当するケースはありますか?

0 投票する
7 に答える
2234 参照

database-design - データベース設計のルックアップ テーブル

現在、レガシーデータベースの設計を改善しようとしていますが、次のような状況があります

現在、LeadSource を格納するテーブル SalesLead があります。

リード ソースはテーブルに保存されているので便利です。

したがって、一方から他方への外部キーを作成し、正規化されていない列を削除したいだけです。

すべての標準的なもの、私は願っています。

これが私の問題です。私は書く代わりにその問題から逃れることができないようです

これは完全に明白であり、私は今書かなければなりません

また

LeadSource フィールドの内容を変更すると、これが壊れます。

私のアプリケーションでは、SalesLead の LeadSource の値を変更したいときはいつでも、1 から 2 に更新したくありません (たとえば)。開発者にこれらのマジック ナンバーを覚えさせたくないからです。ID は任意であり、そのままにしておく必要があります。

アプリのコードでそれらへの依存を削除または無効にするにはどうすればよいですか?

私のソリューションがサポートしなければならない言語を編集する

  • .NET 2.0 + 3 (価値のある asp.net、vb.net、および c#)
  • vba (アクセス)
  • デシベル (MSSQL 2000)

2.0編集結合は問題ありませんが、リクエストに応じて「foo」が「foobar」に変更される可能性があり、クエリを実行したくありません。

0 投票する
2 に答える
1777 参照

windows - Windows Perl での EWOULDBLOCK と同等の errno

G'day Stackoverflowers,

私は、Perl のautodieプラグマの作成者です。このプラグマは、Perl のビルトインが失敗時に例外をスローするように変更します。これはFatalに似ていますが、レキシカル スコープ、拡張可能な例外モデル、よりインテリジェントなリターン チェック、およびはるかに優れたエラー メッセージを備えています。これは、Perl の将来のリリース (暫定的に 5.10.1+) でモジュールを置き換える予定Fatalですが、現在、Perl 5.8.0 以降の CPAN からダウンロードできます。

の次のリリースでは、(ノンブロッキング) オプションを使用したautodieへの呼び出しの特別な処理が追加されます。呼び出しが失敗すると、通常は例外が発生しますが、 usingの呼び出しが失敗すると、返された errno( ) が.flockLOCK_NBflockautodieflockLOCK_NB$!EWOULDBLOCK

これは、人々が次のようなコードを書き続けることができるようにするためです。

上記のコードでは、他の誰かが既にファイルをロックしているために失敗したロック ( EWOULDBLOCK) は、ハード エラーとは見なされないため、autodyingflockは単に false 値を返します。ファイルロックをサポートしていないファイルシステムで作業している場合、またはネットワークファイルシステムとネットワークが停止したばかりの場合、エラー番号flockEWOULDBLOCK.

これは、Unix フレーバー システムの私の開発バージョンでは問題なく動作しますが、Windows ではひどく失敗します。Windows の Perl はこのLOCK_NBオプションをサポートしていますが、定義していないようEWOULDBLOCKです。代わりに、ブロッキングが発生した場合に返される errno は 33 (「ドメイン エラー」) です。

明らかに、これを定数として にハードコーディングできますautodieが、それはここでやりたいことではありません。私はそれを Windows の に相当するものと比較したいとPOSIX::EWOULDBLOCK思っていますが、そのようなものがどこで定義されるかを見つけることはできません。お手伝いできることがあれば、お知らせください。

特に望まない回答:

  • 定数としてハードコーディングすることを提案します (または、さらに悪いことに、マジック ナンバーを浮かび上がらせたままにします)。
  • LOCK_NBWindows では機能をまったくサポートしていません。
  • LOCK_NBへの呼び出しからの失敗は、flock単に false を返す必要があると仮定します。
  • p5p またはperlmonksで私が尋ねる提案。私はすでにそれらについて知っています。
  • flock、または例外、または機能の説明Fatal。もう知っている。親密に。
0 投票する
8 に答える
14977 参照

perl - Perl を使用してファイルのサイズをメガバイト単位で取得するにはどうすればよいですか?

ディスク上のファイルのサイズをメガバイト単位で取得したい。演算子を使用する-sとサイズがバイト単位でわかりますが、これをマジック ナンバーで割るのは悪い考えだと思います。

読み取り専用変数を使用して 1024 を定義する必要がありますか、それともキロバイト単位のバイト数をプログラムで取得する方法はありますか?

編集:誤った計算を更新しました。

0 投票する
2 に答える
636 参照

xml - XMLノード名(ハードコードされた値)をどうするか?

私は最近xmlを使っています。そして、ちょっとした現象に気づきました(世界の他の地域にとってはそれほど大きな問題ではないかもしれませんが、私にとってはそうでした)。たぶん、それは私が初心者であるということです。しかし、ほとんどのハードコーディングされた番号やマジックナンバーを構成ファイルに分割するべきではありませんか?例えば、

xmlドキュメントは次のとおりです。

「コード」または「メッセージ」をハードコーディングせずに、これをどのように解析しますか?

0 投票する
1 に答える
1669 参照

javascript - JavaScript で event.keyCode を照合するときにマジック ナンバーを回避する方法

Javascript でキープレスを照合するときにマジック ナンバーを回避できますか?

例としては、13 を使用してエンター キーに一致させます

独自の定数を指定できますが、これらの値がさまざまなプラットフォーム/ブラウザー/ロケールで十分に安定しているかどうかはわかりません。

0 投票する
1 に答える
1165 参照

blackberry - BlackBerry - GZip 解凍の問題

RIM 圧縮 APIの使用中に奇妙な問題が発生しました。ドキュメントに記載されているように機能させることができません。win gzipツール
を使用してプレーンテキストファイルをgzipし、gzをblackberryプロジェクトのリソースに追加し、アプリで解凍しようとすると、無限ループが発生し、gzis.read()が-1を返さない...

圧縮されたコンテンツの後に、gzis.read() で 65535 値の繰り返しがあります。私が見つけた唯一の回避策は愚かです

しかし、私はその理由、私が間違っていること、そしてなぜ65535なのか知りたいです。

0 投票する
7 に答える
38158 参照

magic-numbers - 23,148,855,308,184,500はマジックナンバーですか、それともまったくのチャンスですか?

このようなニュースレポートは、上記の数がプログラミングのバグとして発生した可能性があることを示しています。

米国の男性が地元のガソリンスタンドに飛び出してタバコのパックを購入しましたが、彼のカードには23,148,855,308,184,500ドルが請求されていました。

これは23兆ドル(14兆ポンド)であり、米国の国家債務の何倍にもなります。*

16進数では、$ 523DC2E199EBB4ですが、一見するとそれほど面白くはありません。

どのプログラミングエラーがこれを引き起こしたのかについて誰かが考えていますか?