プログラミング

プロおよび熱狂的プログラマーのためのQ&A

5
配列がIterableに割り当てられないのはなぜですか?
Java5では、次のように記述できます。 Foo[] foos = ... for (Foo foo : foos) またはforループでIterableを使用するだけです。これはとても便利です。 ただし、次のようにイテラブルのジェネリックメソッドを作成することはできません。 public void bar(Iterable<Foo> foos) { .. } Iterableではないため、配列で呼び出します。 Foo[] foos = { .. }; bar(foos); // compile time error このデザイン決定の背後にある理由について疑問に思っています。

5
backbone.jsに基づく多くのフレームワークの実際の長所と短所は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する 誰かが最新のbackbone.js亜種のいくつかで経験を共有できることを願っています。いくつかのプロジェクトでbackbone / underscore / requireの使用経験があり、複雑なアプリケーション構造のより高度なソリューションに向けて次のステップに進みたいと思います。 次のフレームワークが利用可能であることを知っています。 マリオネット ジェペット(マリオネットベース) チャップリン、チャップリン-チャップリンボイラープレート 椎骨 LayoutManager 胸郭 オーラ ルカ シングル バックスタック バックボーンUI ハルク BTW-大規模プロジェクトの優れた出発点 そしておそらく私はいくつかを逃した。 ここに違いについての短い紹介があります: スピーカーデッキトークリンク しかし、それは非常に一般的です。誰かがこれらのフレームワークを使用して実際のアプリケーションと経験を共有できるかどうか疑問に思っていました。 どちらかを選択する利点は何ですか?マリオネットがチャップリンよりも優れたソリューションになるのはいつですか? もちろん、明確な答えは「ニーズに最適なものを使用する」ですが、私はこれらのフレームワークで、その強さ/目的/利点または好ましいシナリオを知るための経験が不足しています。 ありがとう! 編集1: この投稿を見つけました: Backbone.Marionette vs Backbone-Boilerplate 編集2: Mathias schafer(Chaplin)によるメールでの回答: 要するに、現在の構造はすでに本番環境で使用されているため、バージョン1.0に近いものです。1.0までは、大きな新機能を追加したり、APIの変更を壊したりする予定はありません。 マリオネットは確かに世の中で最も包括的で安定したライブラリです。バックボーンを使用したJSアプリ開発のいくつかの側面に対処します。たとえば、バックボーン自体が完全に空白のままにする強力なビューレイヤーがあります。もちろん、いくつかの側面があなたの要求を満たさないことに気付くでしょう、そしてあなたはマリオネットの周りに構造をセットアップする必要性を感じるかもしれません。 対照的に、チャップリンは、バックボーンアプリのかなり小さいが非常に重要な側面、つまりアプリの全体的な構造とモジュールのライフサイクルに焦点を当てています。これに関して、チャップリンは非常に好意的であり、ライブラリよりもフレームワークに似ています(「コードがライブラリを呼び出す、フレームワークがコードを呼び出す」など)。Chaplinは、個々のアプリケーションモジュールの上に位置し、アプリ全体の状態を制御するいくつかの中央クラスを提供します。これにより、たとえばRuby on Railsが行うような従来の構造がアプリに与えられます。 チャップリンでは、コントローラーにマップするいくつかのルートを宣言し、ルートが一致するとチャップリンはコントローラーを起動します。また、古いコントローラーの破棄、およびコントローラーが作成することになっているメインビューの表示と非表示も処理します。これは基本的な考え方ですが、チャップリンは醜い細部を処理して、スムーズに実行できるようにします。 この構造には2つのプリンシパルがあります。-モジュール化、デカップリング、サンドボックス-パブリッシュ/サブスクライブとメディエーターを使用したモジュール間の通信 もちろん、これらのパターンはソフトウェア開発の世界では新しいものではなく、ChaplinはそれらをBackbone.jsアプリに適用する唯一のライブラリではありません。 Chaplinはまた、非常に洗練されたCollectionViewなどのビューレイヤーの拡張機能も提供しますが、リージョンとレイアウトを備えたマリオネットほどではありません。しかし、チャップリンビューが提供する手段を使用して、このようなメタクラスを記述することは比較的簡単です。

13
「MVC」の「コントローラー」には何が入りますか?
MVCの基本的な概念は理解していると思います。モデルにはアプリケーションのデータと動作が含まれ、ビューはユーザーに表示し、コントローラーはユーザー入力を処理します。私が不確かなのは、まさにコントローラーに何が入るかです。 たとえば、私がかなり単純なアプリケーションを持っているとしましょう(私は特にJavaを考えていますが、同じ原則が他の場所にも当てはまると思います)。私はと呼ばれる3つのパッケージの中に私のコードを整理しapp.model、app.viewそしてapp.controller。 app.modelパッケージ内には、アプリケーションの実際の動作を反映するクラスがいくつかあります。これらextends Observableを使用setChanged()しnotifyObservers()て、ビューをトリガーし、適切なときに更新します。 app.viewパッケージには、使用するクラス(またはディスプレイの異なるタイプのためのいくつかのクラス)を持つjavax.swingディスプレイを処理するためのコンポーネントを。これらのコンポーネントの一部は、モデルにフィードバックする必要があります。私が正しく理解していれば、ビューはフィードバックとは何の関係もないはずです。フィードバックはコントローラーが処理する必要があります。 それで、私は実際にコントローラーに何を入れますか?私は入れてくださいpublic void actionPerformed(ActionEvent e)コントローラのメソッドを呼び出すだけでビューに?その場合、コントローラーで検証などを行う必要がありますか?もしそうなら、どのようにエラーメッセージをビューにフィードバックするのですか-それは再びモデルを通過する必要がありますか、それともコントローラはそれをビューに直接送信するだけですか? 検証がビューで行われた場合、コントローラーには何を入れますか? 長い質問でごめんなさい、私はプロセスの私の理解を文書化したかったのですが、うまくいけば誰かがこの問題を私のために明確にしてくれるでしょう!

7
Ruby On Railsで前のページにリダイレクトする方法は?
並べ替え可能なヘッダーとページネーションがあるすべてのプロジェクトを一覧表示するページがあります。 path: /projects?order=asc&page=3&sort=code プロジェクトの1つを編集することを選択します path: projects/436/edit そのページで[保存]をクリックすると、プロジェクトのコントローラー/更新メソッドが呼び出されます。コードを更新した後、特定のプロジェクトをクリックして編集する前にいたパスにリダイレクトします。つまり、同じ並べ替えで同じページを表示したいのです。 link_to(:back)を見て、:backがredirect_to(:back)で機能するかもしれないと思っていましたが、それは大丈夫です。 puts YAML::dump(:back) yields the following: :back これを機能させる方法に関するアイデア。簡単に解決できる問題のようですが、RoRは初めてです。

12
C#バイナリリテラル
16進数の前に0xを付けるなど、C#でバイナリリテラルを書き込む方法はありますか?0bは機能しません。 そうでない場合、それを行う簡単な方法は何ですか?ある種の文字列変換?
186 c#  syntax  binary 

5
Rails has_many with alias name
私のユーザーモデルでは、次のことが可能です。 has_many :tasks そして私のタスクモデルでは: belongs_to :user 次に、外部キー「user_id」がタスクテーブルに格納されているとすると、次のように使用できます。 @user.tasks 私の質問は、ユーザーのタスクを次のように参照できるように、has_many関係をどのように宣言するかです。 @user.jobs ...または... @user.foobars ヒープに感謝します。

10
C#で文字列に文字のみが含まれていることを確認する
入力文字列があり、それが含まれていることを確認したい: 文字のみまたは 文字と数字のみまたは 文字、数字、またはアンダースコアのみ 明確にするために、コードには3つの異なるケースがあり、それぞれ異なる検証が必要です。これをC#で実現する最も簡単な方法は何ですか?
186 c#  string 

13
VimでPythonコードのブロックをコメント化する方法
Vimに特定のコード行をインデントできるようにするキーマッピングがあるかどうか疑問に思っていました(これらの行がビジュアルモードで選択されているか、現在のカーソル位置の上下にn行あるか)。 だから基本的には次のものを変換するもの def my_fun(x, y): return x + y に #def my_fun(x, y): # return x + y 私はどちらか使用して大丈夫だ#か、"""関連する行をコメントアウトするために。理想的には、特定の行がコメント化されている場合は、同じキーマッピングで行のコメントを解除することもできます。
186 python  vim  editor 

13
forループを逆順で迅速に反復する方法は?
Playgroundでforループを使用すると、forループの最初のパラメーターを最高値に変更するまで、すべてが正常に機能しました。(降順で反復) これはバグですか?他に誰か持っていましたか? for index in 510..509 { var a = 10 } 実行される反復の数を表示するカウンターは、刻々と過ぎます...


10
jquery-ui-dialog-ダイアログを閉じるイベントにフックする方法
jquery-ui-dialogプラグインを使用しています ダイアログが閉じている状況でページを更新する方法を探しています。 ダイアログからcloseイベントをキャプチャする方法はありますか? 閉じるボタンがクリックされたときにコードを実行できることはわかっていますが、ユーザーがエスケープで閉じることや右上隅のxをカバーしていません。


17
$(window).width()はメディアクエリと同じではありません
プロジェクトでTwitter Bootstrapを使用しています。デフォルトのブートストラップスタイルだけでなく、独自のスタイルもいくつか追加しました //My styles @media (max-width: 767px) { //CSS here } また、ビューポートの幅が767px未満の場合、jQueryを使用してページ上の特定の要素の順序を変更しています。 $(document).load($(window).bind("resize", checkPosition)); function checkPosition() { if($(window).width() < 767) { $("#body-container .main-content").remove().insertBefore($("#body-container .left-sidebar")); } else { $("#body-container .main-content").remove().insertAfter($("#body-container .left-sidebar")); } } 私が抱えている問題は$(window).width()、CSSによって計算された幅とCSSによって計算された幅が同じではないように見えることです。とき$(window).width()、751のようにビューポートの幅がそれほどに16pxの異なるがあるように思わ戻っ767 CSSの計算。 これを引き起こしている原因と、私が問題を解決する方法を誰かが知っていますか?人々は、スクロールバーの幅は考慮に入れられておらず、使用$(window).innerWidth() < 751する方法が進むべき道であると示唆しています。ただし、理想的には、スクロールバーの幅を計算し、メディアクエリと一致するソリューション(たとえば、両方の条件が値767をチェックしている場合)を見つけたいと思います。確かに、すべてのブラウザのスクロールバーの幅が16pxになるわけではないのですか?

9
jQuery Validate-非表示フィールドの検証を有効にします
jQuery検証プラグイン1.9の新しいバージョンでは、デフォルトで非表示フィールドの検証は無視されます。textarea入力フィールドにCKEditorを使用していますが、フィールドを非表示にしてiframeに置き換えます。フィールドはありますが、非表示フィールドの検証は無効になっています。検証プラグインバージョン1.8.1では、すべてが期待どおりに動作します。 だから私の質問は、v1.9検証プラグインで非表示フィールドの検証を有効にする方法です。 この設定は機能しません: $.validator.setDefaults({ ignore: '' });

9
Mac OS Xの環境変数
更新:以下のリンクには完全な回答がありません。パスまたは変数を2か所(1つはGUI用、もう1つはシェル用)に設定する必要があるのは不自然です。 重複しない:OS Xで環境変数を設定しますか? 環境変数を設定および変更するのが非常に簡単なWindowsの背景(システムプロパティ>詳細設定>環境変数に移動するだけ)から来ているため、Mac OS 10.5ではそれほど簡単ではないようです。ほとんどのリファレンスでは、/ etc / profileまたは〜/ .profileを更新する必要があると述べています。それらはシステム変数およびユーザー変数に相当しますか?たとえば、JAVA_HOME変数をどこに設定すればよいですか? 編集: ターミナルやEclipseなどのアプリから変数にアクセスできるようにしたいのですが。また、これを有効にするために再起動/ログアウトする必要がないことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.