問題タブ [declarative]
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.
asp.net - asp:hyperlink で宣言的な値を割り当てる際の問題。エラー: これはスクリプトレットではありません。プレーンテキストとして出力されます
私はこれをやろうとしています:
しかし、エラーが発生しています:
これはスクリプトレットではありません。プレーンテキストとして出力されます。
宣言的なステートメントにマウスを合わせると。
何か案は?ありがとう。
java - XML を Java オブジェクトに解析する宣言的な方法はありますか?
XML ファイルのインポート関数を Java アプリケーションに作成しています。XOMを使用して XML ファイルを解析しています。XML を解析するためのコードは理解しにくいものであり、一部ハードコーディングされ.getChild(3)
ているなどです。宣言型の XML ドキュメントと比較して、コードをたどるのは難しいです。
XML ドキュメントを Java オブジェクトに解析するための、より保守しやすい方法はありませんか? どのタグがどのJavaクラスに対応するかを指定できる、より宣言的な方法でそれを持ちたいと思います。
c# - 属性ベースのプログラミングの利点は何ですか?
私は WCF RIA サービスを使用しており、属性を使用したサンプルに遭遇しました。
属性は WCF RIA に限定されませんが、疑問を思い出しました: 検証ルーチンを「昔ながらの方法」でコーディングするのに、宣言型または属性ベースのプログラミングが適しているのはなぜですか?
ありがとう、
スコット
python - sqlalchemy:宣言型ポリモーフィック結合をオフにしますか?
sqlalchemyに、単一のクエリで宣言型のポリモーフィック結合の読み込みをオフにする方法はありますか?ほとんどの場合それは素晴らしいですが、私は持っています:
Aが実際にBである場合はBx>10、またはAが実際にCである場合はCy =='blah'であるすべてのA.idを取得するようにクエリを作成し、すべてpで並べ替えます。
繰り返し行うために、私は最初の部分から始めます-「そのAが実際にBである場合、Bx>10であるすべてのA.idを取得します」。だから私は外部結合から始めると思いました:
...ただし、outerjoin((B、B.id == A.id))句が、副選択内のAのすべてとBのすべての完全な結合を生成することを回避する方法はないようです。BがAから継承しない場合、それは発生しないので、それを行うのは多態的な宣言型コード生成だと思います。それをオフにする方法はありますか?または、outerjoinに私が望むことを強制するのですか?
私が欲しいのはこのようなものです:
しかし、代わりに私は次のようなものを手に入れます:
...余談ですが、それが不可能な場合、後者は前者よりも効率が悪いのでしょうか。SQLエンジンは実際にその内部結合を実行しますか、それともそれを削除しますか?
python - 挿入および更新時に複合値を作成するためのSQLAlchemyコンテキスト依存関数
列のデフォルトおよびonupdate仕様からトリガーされるコンテキスト依存関数(たとえば、def get_user_full_name())を追加する方法を整理しようとしています。すべてのクエリで2つのフィールドを常に連結する必要がないように、名前と名前を1つのフルネーム値に結合する複合フィールドを設定しようとしています。
私は宣言型アプローチを使用しています。これは、同様のモデルの例です。
これは、FirstNameキーとLastNameキーのどちらも有効ではないことをスタックトレースで報告する、私が作成した関数です。
2つの列(FirstNameとLastName)の既存のデータを参照して、簡単に取得できるように格納する複合値を作成する方法がわかりません。たとえば、John Doeという名前のユーザーがいる場合、get_user_full_nameメソッドは「John」と「Doe」を取り、「JohnDoe」のフルネーム値を返す必要があります。
ドキュメントでは、context.current_parametersを参照していますが、私の場合は存在しません。宣言型のアプローチを使用しているためだと思います。それが機能した場合、私のget_user_full_name関数は次のようになります。
これはおそらく些細なことですが、この情報が保存されている場所と動的にアクセスする方法についてコードを解読することはできないようです。
少し洞察をいただければ幸いです。私もよりエレガントなアプローチを受け入れています。
前もって感謝します...
乾杯、
ポール
c# - WebControlで`<%=`を使用するのは悪い考えですか
最近<%=
、Webコントロールでより頻繁に使用するようになりました。通常、コードビハインドで文字列プロパティを設定してから、フォームに吐き出します。
これは悪い考えですか?
例えば。
コードビハインド:
プロパティ:
Page_Load:
ページ上:
function - Ada: 宣言部分、関数、およびパッケージ
宣言部分、関数、およびパッケージを含むクエリがあります。次に示すようなパッケージがあります。Compute_X1 関数は複雑なため、この関数を計算するための「分離」を作成しました。Compute_X1 から返される値は X1 で、関数 J21 で使用されます (J21 は X1 を最初の引数として受け取ります)。
パッケージ仕様:
パッケージ本体は次のとおりです。
Compute_X1 と J21 のスタブを作成しました。
パッケージ本体の Compute_Jacobian.adb をコンパイルすると、次のエラー メッセージが表示されます。
私の質問は、X1 を計算し、それを関数 J21 の計算に使用する方法です。
「メイン」コード (ここには示されていません) で X1 を直接計算して (そこから「分離」を作成)、それを J21 の計算で通常の引数として使用することができます。しかし、Compute_Jacobian パッケージの X1 の計算を使用して、上記の構造 (上記の投稿はこちら) が必要でした。
どうもありがとう...
database - 関連オブジェクト パターンからの拡張詳細の効率的なクエリ
詳細
- Aには s
Person
がたくさんありObjective
ます。 Objective
Person
には、 に関する固有の詳細がありActivity
ます。Activity
には、世界記録などの一般的な情報が含まれています。Person
を組織してEvent
を試みることができObjective
ます。- Aは他の をと一緒に を視聴するように
Person
招待します。Person
Event
Invitation
スキーマ
注: スキーマ ダイアグラムの例には、"(fk)" で示されている backref のみがリストされています。矢印は通常の関係を意味します。
イメージタグを使用するための10ポイントを取得するまでのイメージリンク
質問
受け取ったすべての のほとんどEvent
の 、Objective
、およびActivity
詳細(ステータスに関係なく、ステータスはまだ必要です) を一度に表示したいです。Invitation
Person
このような JOIN に取り組む前に、問題を表現するより良い方法はありますか? Person
-> Invitation
<-Event
はAssociation Objectパターンだと思いますが、返されたそれぞれについてクリーンで効率的な方法で and の情報をObjective
取得する方法がわかりません。Activity
Invitation
おまけ: サンプルの SQLAlchemy クエリを提供します。
programming-languages - 宣言型プログラミング言語に関するフィードバック、リソース、および情報
私は、新しい言語の根底にあるいくつかの概念について考えてきました。最初はオモチャのようなものでしたが、今は本当に意味があるのだろうかと思っています。この質問を Stack Overflow に投稿して、以前に行われたかどうか、フィードバック、アイデア、またはその他の情報を入手できるかどうかを確認します。
私がこれについて考えるようになったのは、主に宣言型プログラミングに関する Jonathan Edward のプレゼンテーションを読んだ後です。それから私はそれを私の古い考えのいくつかと私が現代言語で見たものと混ぜ合わせました.
宣言型プログラミングの背後にある主な考え方は、「何を」対「どのように」です。しかし、それは何度も聞いているので、ほとんど「面白い」という言葉のように、実際には何も語らず、もどかしいものです。
ただし、ジョナサン・エドワードのバージョンでは、最初に遅延評価を強調することから始めました。これには、関数型リアクティブ プログラミング (FRP)という興味深い結果があります。これは、アニメーション付きの FRP の例です (私が作成した構文を使用):
したがって、ここでは、入力が変更されると値が自動的に変更されます。私の好きな言語の 1 つであるDでは、「純粋な」関数と「不純な」関数が区別されていました。純粋関数は、外界との接続がなく、他の純粋関数のみを使用する関数です。そうでなければ、それは不純です。ポイントは、純粋な関数が与えられた引数に対して同じ値を返すことを常に信頼できるということでした。
ここでも同様の推移的な原則が適用されると思います。私たちの不純物はtime
です。time
、存在x
、したがってy
、およびしたがって、によって触れられるものはすべてnew Point(x, y)
不純です。しかし、通知(2 * 500)
は純粋です。ご覧のとおり、これはコンパイラにその制限がどこにあるかを伝えます。数式を変数で単純化するようなものだと思います。
何が純粋で何がそうでないかをコンパイラに伝えることで、プログラムを大幅に単純化できます。もう 1 つのポイントは、熱心なデータまたは変更可能なデータです。ジョナサン・エドワードは、入力は変更可能で積極的であるが、出力は機能的で怠惰であると認識しました。基本的に、新しい入力が与えられると、プログラムはアトミック状態の変更を定義し、出力は単に現在の状態の関数になります。これが重要な理由を知りたい場合は、プレゼンテーションを参照してください。入力が不純です。遅延評価は、原子状態の変更を定義するのに役立ちます。プログラムが手続き的にどのように書かれるかを見てみましょう。
ここでのbind
キーワードは、変更があった場合に次のコードが実行されることを示していますbegin
。このmutable
キーワードは、入力が遅延ではなく積極的であることを示しています。それでは、「原子状態の変化」がそれをどのように表すかを見てみましょう。
ここで、プログラマーにとってより簡単に、より読みやすくすることができるものを見てきました。まず第一に、醜いstep
変数と、それを毎回どのようにインクリメントしてテストする必要があるかです。以下は、新しく改善されたバージョンがどのように見えるかの例です。
その方がいいです。ただし、完璧ではありません。でも完璧な答えを知っていたら、私はここにいないでしょう?
ゲームエンジンを使用したより良い例を次に示します。
これには、コールバック、イベント、さらにはループなども必要なく、スレッドが明らかであることが気に入っています。何が起こっているのかが分かりやすくなり、Python のような構文だけではありません。言語開発者が、人々がラベルと goto を for で使用しているものは、条件付き分岐とループだけであることに気付いたときのようなものだと思います。そのため、if-then-else、while、for を言語に組み込むと、ラベルと goto は非推奨になり、コンパイラと人々は何が起こっているかを知ることができました。私たちが使用するもののほとんどは、そのプロセスから来ています。
スレッドに戻ると、これの良いところは、スレッドがはるかに柔軟であることです。私たちがやりたいことではなく、やりたいことを言うことに近づいたので、コンパイラがやりたいことを自由にできる場合。そのため、コンパイラはマルチコアおよび分散プロセッサを利用できますが、適切なスレッド サポートのないプラットフォームを補うことができます。
最後に 1 つ言いたいことがあります。そして、それがテンプレートに関する私の見解です。これは、私がプログラミングを始めたとき (実際には約 2 年前) に発達し始めた概念的な卵のようなもので、その後、割れ始めました。基本的には抽象化の原則でしたが、クラスやオブジェクトにまで及びました。
それは私が機能をどのように認識したかに関係していました。例えば:
わかりましadd
た、 が返されましたが、それはint
何でしたか? int
起こるのを待っているような気がしました。数ピースのないパズルのように。可能性は限られており、特定のピースしか適合しませんでしたが、完成したら、他の場所で使用できる完成品ができました。これは、私が言ったように、抽象化の原則です。抽象化 + 欠落部分 -> 具体的な関係と思われる例をいくつか示します。
- 関数 + 引数 -> 値
- 抽象クラス + メソッド -> クラス
- クラス + インスタンス値 -> オブジェクト
- テンプレート + 引数 -> 関数またはクラス
- プログラム + 入力 + 状態 -> 出力
それらはすべて密接に関連しています。これを活かすことができそうです。しかし、どのように?繰り返しますが、これが質問である理由です。しかし、遅延評価はここで興味深いものです。なぜなら、まだ欠落している部分を別のものに渡すことができるからです。コンパイラにとっては、ほとんどの場合、名前を不純物にまで逆参照することです。上記の私の例のように:
コンパイラに提供する部分が多ければ多いほど、コンパイラはそれを完成させ、プログラムを本質的なコアに縮小することができます。上記のadd
関数は、外部リソースに依存しないため、コンパイル時に自動的に解決されます。コンパイラがどれだけ賢いかによっては、多くのクラスやオブジェクト、そしてプログラムの大部分を解決することさえできます。
それは今のところすべてです。これらのことの例がすでに行われているのを見たことがあるなら、私はそれを見たいと思います. また、アイデア、イノベーション、リソース、またはフィードバックがあれば、それもよろしくお願いします。
java - osgiの宣言型サービスを使用するときに、同じコンポーネントでサービスを提供および参照できますか?
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="sensor_test">
<implementation class="test.sensor.version1.serviceImpl.SensorServiceImpl"/>
<service>
<provide interface="test.sensor.version1.serviceInterface.SensorServiceInterface"/>
</service>
<reference bind="setOntologyService" cardinality="0..1" interface="test.ontology.version1.serviceinterface.OntologyServiceInterface" name="OntologyServiceInterface" policy="dynamic" unbind="unsetOntologyService"/>
</scr:component>
上に示したものについては、同じコンポーネントでサービスを提供および参照しても大丈夫ですか?たとえば、2つのバンドルAとBがあります。AはBが使用するサービスを提供し、BはAが使用するサービスも提供します。この状況で私は何をすべきですか?