問題タブ [eiffel]

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 投票する
1 に答える
155 参照

c++ - 大量のネイティブ コードをスケーラブルなサービスに変えるにはどうすればよいですか?

こんにちは、私は Eiffel で開発された大きなソフトウェアを持っています。このコードを C++ から使用することは可能ですが、Eiffel ランタイムが読み込まれます。C++ から複数のスレッドによってアクセスされた場合、Eiffel コードとランタイムがスレッド セーフであるとは言えません。

このネイティブ コードをサービス化する必要がありますが、負荷が高い場合は複数のサーバーにスケーリングしたいと考えています。スケーリングの側面を Eiffel コードとランタイムに委任したくないので、このコードを既存のスケーラビリティ オプションでラップすることを検討しています。

このコードのチャンクにスレッドセーフなアクセスを提供できるようにするものは、Apache Web サーバーの下にありますか? Eiffel コード インスタンスのプールはどうですか? 私が念頭に置いているのは、次のようなものです。

[ネットワークを介した多数のクライアント リクエスト] ---> [スケーラブルなフレームワーク] --> [Eiffel コードの作成に費用がかかる 1 つ以上のインスタンス]

フレームワークで高価なコードのチャンクの複数のインスタンスをラップできるようにしたいと考えており、さらにマシンを追加して、これを Web ファームのようにスケールアップしたいと考えています。

よろしくお願いします

セレフ

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

regex - Eiffel 正規表現の検証

特定の文字列の正規表現をどのように作成しますか? また、アサーション (コードの前提条件部分) でそれを実行できますか?

私はグーグルで検索してきましたが、説得力のあるものは何も得られませんでした。

質問は次のようなものです。

DEPARTMENT (現在取り組んでいるクラス) の作成手順に、電話番号が有効であることを保証する前提条件を追加します。有効な電話番号の形式は 3 つあります。有効な電話番号は、次のいずれかで構成されます。

  • 最初の数字がゼロ以外の 8 桁
  • 先頭のゼロ、ゼロ以外の 1 桁の市外局番、および 8 桁の数字 (最初の数字はゼロ以外)
  • 先頭の「+」、2 桁の国コード、ゼロ以外の 1 桁の市外局番、8 桁の数字 (最初の数字はゼロ以外)

電話番号を検証する際、埋め込まれたスペースは無視されます。

この問題を解決する一環として、システムに PHONE_NUMBER クラスを追加することは許容されますが、必須ではありません。

0 投票する
3 に答える
1483 参照

scheme - How does Racket Scheme's "design by contract" features different from Eiffel?

I know that both Eiffel (the progenitor) and Racket both to implement "Design by Contract" features. Sadly, I am not sure how one would different from the other. Eiffel's DBC is reliant on the OOP paradigm and inheritance, but how would Racket, a very different language account for such a disparity?

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

eiffel - Eiffelでオブジェクトの配列を初期化する方法は?

私はEiffelを使用して生産者/消費者問題の解決策を実装しようとしています。クラスPRODUCERの配列pとクラスCONSUMERの配列cが次のように宣言され、初期化されています。

しかし、配列のコンポーネントの1つ(p.at(i).somefeature()など)の機能にアクセスしようとすると、「voidターゲットでの機能呼び出し」という実行時例外が発生します。

これを解決する方法について何かアイデアはありますか?配列の個々のコンポーネントの作成プロシージャを呼び出していないためですか?または、アレイを作成するアプローチに基本的な欠陥がありますか?ありがとう。

参照型である配列の個々のコンポーネント(この場合はプロデューサーまたはコンシューマー)がvoidに初期化されるため、問題が発生することがわかりました。提案された解決策は、make_filled(default_value:T; low、high:INTEGER;)を使用することです。ここで、Tは複合型です。文字列配列の例をstring_list:ARRAY [STRING] string_list.make_filled( ""、low、high)として示し、string_listの各要素を空白の文字列に初期化します。クラスPRODUCERにデフォルト値を与える方法について何か助けはありますか?ありがとう

私はその問題の解決策を見つけたと思います。PRODUCERとCONSUMERのインスタンスを作成し、それらをmake_filledのデフォルト値で使用する必要がありました。次に、p[i]とc[i]を操作できます。

これは非常に効率的な方法ではないため、より良い解決策がある場合は、それを共有してください。ありがとう。

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

c# - Eiffel の Clone と equal メソッド

cloneEiffel でorメソッドを定義するequalと、C# で同様のものと比較して、型の問題に関してより強力な保護が得られるのはなぜですか?

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

assertions - エッフェル再定義関数は独自のアサーションを定義できますか?

Eiffel で再定義された関数が独自のアサーションを定義できるかどうかを知る必要があります。

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

.net - ルーチンを呼び出す前後の不変条件をどこで評価しますか?

コントラクトによる設計では、クラス不変条件は、オブジェクトの作成後とルーチンの呼び出し後の2つの場合に満たされる必要があります。ルーチンを呼び出す前に評価を行わなければならない例や条件はありますか?

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

import - エッフェルテキストの「使用」または「インポート」句

他のクラスを含める/使用する/インポートするための条項はありますか、それとも EiffelStudio のライブラリの追加部分ですか? もしそうなら、テキストエディタベースの環境でどのようにしますか?

0 投票する
8 に答える
6922 参照

java - Java メソッドで前提条件をアサートする美しい方法はありますか?

私の関数の多くには、宣言のすぐ下に検証コードが大量に含まれています。

特定の入力の有効な範囲を正確に指定したい - たとえば、a > B、C => 1 または str_d.length() > 0。

一部の関数には検証が必要な引数が非常に多いため、前提条件を検証するためだけに多くのボイラープレートを作成することになります。私は、主に技術者以外の開発者が使用するライブラリを作成しています。関数入力を検証することが、ユーザーが API を正しく操作できるようにするための最良の方法であることがわかりました。エラーが発生するのが早ければ早いほど、お客様がしなければならない作業は少なくなります。

私の方法で事前条件、事後条件(およびおそらく不変条件)を指定するためのよりエレガントな方法はありますか?

同僚が Eiffel プログラミング言語の機能について教えてくれました。これにより、多くのボイラープレート コードを繰り返さずに、前/後/不変の条件を非常に自然な方法で記述できます。この魔法の一部を使用できる Java 言語へのアドオンはありますか?

0 投票する
3 に答える
1504 参照

variables - Eiffelでの宣言でローカル変数を初期化する方法は?

私はこれをやろうとしました:

そして、このようなもの:

明らかにどちらも機能しませんが、再試行命令が実行された場合に変数を再初期化したくないため、宣言内で変数を初期化する必要があります。私は Eiffel の公式ドキュメントとチュートリアルを見ましたが、操作の本体で常に変数を初期化します。