問題タブ [maintainability]
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.
jquery - コードの保守性を向上させるためのセレクターのjQueryデザインパターン?
昨日、UIをやり直すために、数週間前に作業していたページに戻らなければなりませんでした。UIは、3つのタブを持つjQueryUIタブコントロールで構成されていました。各タブには3〜5個のコントロールがあり、送信ボタンはタブ内のデータのみを送信します。いくつかのタブを再編成し、いくつかのテキストボックスを削除し、いくつかのドロップダウンリストを追加し、いくつかの動作を変更し、クライアント側の検証(jQuery検証を使用)で少し作業する必要がありました。この演習中に私が見つけたのは、jQueryセレクターのすべてに戻って再チェックする必要があるということでした。いくつかは無傷のままでしたが、それらの多くは変更されました。
jQueryを頻繁に使用するWebページのリファクタリングやリワークの影響を回避または最小化するために、人々はどのデザインパターンを使用しているのでしょうか。「検索」+「検索して置換」だけではいけないと思います。
maintainability - 大きなユーティリティですか、それとも別々の部分に分かれていますか?
数人のプログラマーが関与するアプリケーションを作成しています。ソース コードを管理するときに問題が発生します。通常、さまざまなユーザー間で共有される Utility.php があります。それで、私たちは大きな utility.php を作成し、誰もがこれを呼び出しています...
しかし、ここで問題が発生…例えば、プロジェクトを分離したい場合、CMSのフォントエンドとバックエンドがあります。既存のプロジェクトを分割したい場合は、大きな utility.php を場所ごとに分割するか、一度コピーするか、他のプロジェクトと同期する必要があります。そのため、関連するクラスでのみ使用されるさまざまな小さなユーティリティを使用することを検討しています。助言がありますか??
現在: FontEnd.php が呼び出し中 --> Utility.php BackEnd.php が呼び出し中 ---> Utility.php
考慮事項: FontEnd.php が呼び出し中 --> StyleUtility.php, ClientUtility.php, bababa BackEnd.php が呼び出し中 ---> DBUtility.php, MaintainUtility.php , ababba
ruby-on-rails - レール:ストーカー、レスキュー、またはその他
実際の問題
私は、mongoidを介してRails3.0.4とMongoDBを使用しています。
@mailgunを使用してメールを配信しています。バルク(ニュースレターなど)とトランザクション(アカウントのアクティブ化、パスワードを忘れたなど)の両方の電子メールを送信します。現在、私はこれらのメールを配信するために単一のドメイン(メールガン側の単一のキューに変換されます)を使用しています。大量のメールがすでにキューに入れられていて、誰かが新しいパスワードを登録または要求すると、問題が発生します。トランザクションメールをバルクメールの前に配信したいのですが、mailgunキューはFIFOベースで機能します。
これを軽減する方法は、バルクメールとトランザクションメールに異なるドメイン(したがって、同時に処理できる異なるキュー)を使用することです。Railsでは、SMTP設定は、リクエストレベルの設定ではなく、アプリケーションレベルの設定です。したがって、SMTP設定ごとに異なる環境を使用することにしました。
私はメール用のキューシステムも持っており、それを処理するためにdelayed_jobを使用しています。delayd_jobでバルクメールとトランザクションメールを区別する方法がわかりません。そこで、キューシステムをrescue+redisまたはbeanstalked+stalkerのいずれかに移動することにしました。この場合、キューにタグを付けて、特定のキューのみを処理するようにワーカーに要求できます。
質問
保守が簡単で、リソースをほとんど必要とせず、拡張性に優れたものが必要です。
- delayd_jobを使用すると、他のサーバーを実行して監視する必要がありません。
- delayd_jobの場合、ラックスペースで256MBのスライスを使用していましたが、redisとストーカーにはresqueまたはbeanstalkdのいずれかの別のサーバーが必要でした。
- スケーリングについてはわかりませんが、アプリがリリースされてから2か月目になり、すでに3万通以上のメールを送信しています。
delayd_jobからredisまたはstalkerに移植する代わりの方法があれば、私に知らせてください。
アップデート:
delayd_jobも名前付きキューをサポートしているようですが、まだ文書化されていません。ドキュメントを追加するためにチケットを開くと、それらの使用方法がわかれば、詳細が更新されます:)
playframework - 遊び体験!フレームワークの大きなアプリケーションの保守性
遊ぶ!フレームワークを使用すると、すぐに起動して実行できますが、アプリケーションのサイズと複雑さが増し始めたら、アプリケーションを維持するのがどれほど難しいのだろうか...
制作中の中規模から大規模のプレイアプリケーションを知っている人はいますか?それをサポート、維持、改善するのはどれほど難しいか、簡単でしたか?
java - 大規模なscalaコードベースは保守可能ですか?
私はスカラの経験があります。10人のメンバーで新しいプロジェクトに紹介したいと思います。しかし、スカラのすべての表現力にもかかわらず、コードを維持して新しいチームメンバーに転送することがどれほど簡単であるかは非常にわかりません。現時点では、scalahttp://code.google.com/p/factorie/といくつかのscalaDSL(apache camel)に関する1つの大きなプロジェクトのみを調査しました。だから私の質問は、中級レベルの開発者のチームにとって、Java、Python、Groovyと比較してどれだけのscalaを維持可能/サポート可能かということです。
performance - ゲーム開発: ゲーム開発者はどのようにして FPS に関係なくゲーム速度を維持していますか?
ゲームでキャラクターがジャンプするのに 1 秒かかったとします。FPS が 10fps、30fps、100fps などの場合、ゲーム開発者はどのようにしてそのジャンプ時間を 1 秒に抑えることができるでしょうか? - ゲームの fps が基本的にゲームプレイの速度に影響を与えるのをどのように停止しますか?
これを行う特定の方法があると思うので、正確には何なのか疑問に思っていました。
ありがとう、アレックス!
c# - 列挙型とHEX値をうまく処理する
私は次のように列挙型のリストを持っています:
各列挙型の16進値は、次のように解読されます。
enum
後で'を追加してもenum
、すべての値を再割り当てすることにはならないように、'に値を割り当てるための最良の方法は何ですか。サブシステムIDと通知タイプのみが選択されているため、通知IDが自動的に割り当てられます。
たとえば、何千ものがありenum
、手作業で番号を付けるかenum
、途中に番号を追加する場合は番号を付け直す必要があると、煩わしいかもしれません。
ありがとう。
sitemap - プログラムによるサイトマップの維持
誰かが理想的な方法論に参加できることを願っています。
サイトマップに新しいページを追加するために毎月クローラーを介してサイトを実行したくありません。手動で維持すると、人間の物忘れが非常に起こりやすいように思われるため、堅牢で体系的な方法が必要です。新しいコントローラー、コントローラーメソッド、ビューなどを特別なコントローラーに対してプログラムで検証する方法はありますか? 私が描いているのは、新しいコントローラー メソッドまたはビューを作成するたびにサイトマップの更新を強制するメカニズムです。関連する場合は、LAMP スタックで作業します。 ここにいるこの男はファイル システムを介してそれを行っていますが、それは私が公開サイトマップに求めているものではありません。
おそらく、私が提案している概念以外に、この種のメンテナンスには別のベスト プラクティスがあるでしょう。他の人がどのようにこれを行うかを聞きたいです! :)
javascript - 大規模な Web サイトでの document.ready イベントの管理
注: この問題の解決策として、jQuery プラグインを作成しました。私はそれが改善される可能性があると確信しており、おそらく多くのユースケースを見落としているので、フィードバックをしたい場合はお気軽に:-) https://github.com/WickyNilliams/ReadyBinder
私はそれ自体に問題はありませんが、これは議論の興味深いポイントになると思いました。人々がこれについていくつかの興味深いアイデアを持っていることを願っています.
基本的に、私は大規模な Web サイトで作業しており、ますます JavaScript を作成しています。これは問題ありません。私は JS のユニークなアプローチを楽しんでおり、言語のいくつかの暗い年表の風変わりさが魅力的だと感じています ;-) しかし、常に私を悩ませていることの 1 つは、ドキュメントの準備が整ったイベントがますます大きくなるにつれて、それらを管理する方法です。時間の経過とともに(結果として、提供されるページに焦点が合わなくなったり、特定されなくなったりします)
問題は、JS ファイルが 1 つしかないことです (私の質問では重要ではありませんが、マージおよび縮小されています)。ほとんどの JS は公開モジュール パターンを使用して記述されており、jQuery が選択したフレームワークです。したがって、すべての JS 機能は論理的にメソッドにグループ化され、名前空間が付けられ、スクリプト ファイルの一番下にこれがあります。
問題は、このドキュメント対応ハンドラーのすべてのコードがすべてのページに関連しているわけではないことです。たとえば、あるページでは 10% しか関連性がないかもしれませんが、別のページではおそらく 80% が関連しているかもしれません。私には、これは信じられないほど間違っているように感じます。主に効率のためだけでなく、保守性のためにも、ページごとに必要なコードのみを実行する必要があると感じています。
この問題へのアプローチをGoogleで検索しましたが、何も見つかりません。間違ったことを探しているだけかもしれません!
とにかく、私の質問は次のとおりです。
- 誰もこの問題について考えたことがありますか?
- それは実際に他の人々の意見の問題ですか?
- コード内に大規模で包括的なドキュメント対応ハンドラーがありますか?それとも、提供されるページのタイプにより焦点を合わせていますか?
- 後者の場合、これをどのように管理しますか? 複数のハンドラーが JS で切り替えられるか、サーバー側でドキュメント対応ハンドラーを動的に吐き出しますか?
この問題に関する人々の考えを楽しみにしています。
乾杯
c# - 300ケースのスイッチブロックを回避するにはどうすればよいですか?
プログラムに300のチャレンジを追加しようとしていますが、CompletionValue.IsChecked=falseの場合にのみ表示します。
このプログラムを作成していた場合。チャレンジをどのように保存しますか?私はスイッチを使用していますが、300ケースあるのはやり過ぎですが、もっと良い方法はありますか?
コードを改善するための推奨事項は大歓迎です。私はこれに少し新しいです。