問題タブ [maintenance]
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.
c# - Java と C# での並行開発
私は 2 つの非常によく似たスケジューラーを維持しています。1 つは Java で、もう 1 つは C# です。C# バージョンは、もともと JLCA を使用して作成され、その後手動で変更されました。この Java バージョンは、この数週間で他の誰かによって大幅に変更されました (そのため、彼の変更を追跡する必要があります)。インターネットで入手できるツールのいずれかを使用して再変換するか、それとも単に試してみるかを考えています。必要が生じるたびに手作業で変更を加えます。この問題は私にとって頻繁に発生する可能性があります.ソフトウェアのバージョンを2つの異なる言語で維持し、それらをできるだけ簡単に調整する方法はありますか?! 提案をいただければ幸いです。
sql-server - すべての SQL サーバー バージョンでインデックスが自動的に再構築されますか、それとも既定の再構築基準がありますか?
すべての SQL サーバー バージョンでインデックスが自動的に再構築されますか、それとも既定の再構築基準がありますか? 統計が自動的に再構築されることは理解していますが、インデックスも同様に再構築されるかどうかはわかりません。
sql - ストアド プロシージャは保守が容易ですか?
コードをより保守しやすくする (つまり、コードを再コンパイルせずにビジネス ルールを簡単に変更できるようにする) 目的でストアド プロシージャにコードを配置することに賛成または反対する理由は何ですか?
他のすべてが等しい場合、ストアド プロシージャをメンテナンスにとってより良い/より悪いものにしているのは何ですか?
sql-server - SQL Server メンテナンスの提案?
私はオンラインの写真コミュニティを運営していますが、サイトがデータベースへのアクセスでクロールし、タイムアウトになることがあるようです。
私は自分自身が SQL クエリの作成とテーブルの設計にかなりの能力があると考えていますが、決して DBA ではありません...それが問題です。
背景:
私のサイトと SQL サーバーはリモート ホストで実行されています。Visual Studio から ASP.NET コードを更新し、SQL Server Mgmt を介して SQL を更新します。スタジオエクスプレス。サーバーに物理的にアクセスできません。
すべてのストアド プロシージャ (すべて取得したと思います) は、トランザクションでラップされています。
現時点では、メイン テーブルは 9400 レコードのみです。毎晩、このテーブルに 12 個の新しいレコードを追加します。
このメイン テーブルには、他の複数のテーブルのデータを 1 つのビューにまとめるビューがあります。
セカンダリ テーブルは小さいレコードですが、より多くのレコードです。あるものは70,000、別のものは115,000。これらは、#3 の項目に対するコメントと評価の記録です。
インデックスは、最も必要なフィールドにあります。そして、大きなテーブルで統計を自動再計算するように設定しました。
サイトが停止したときに、コードを実行してトランザクション ログをクリアし、統計を更新し、メイン ビューを再構築し、ストアド プロシージャを再構築してコメントを取得すると、速度が回復します。ただし、これを手動で行う必要があります。
悲しいことに、ユーザーはこれらの問題に不満を感じ、参加が減っていきます。
私の質問は...リモート環境で、SQLデータベースをピーク時に実行し続けるためにメンテナンス計画をセットアップしてスケジュールする最良の方法は何ですか?
本当にありがとう!KLK
c# - メンテナンス-いつ、いつ変更を加えるかという問題のバランスを取る
私は他の人のためにいくつかのライブラリを維持しています。それぞれのリリースをいくつか行った後、もう一度やり直さなければならない場合は、別の方法で行うことがいくつかあります。
質問は:私はそれらをやり直す必要がありますか?私たちは皆、そのジレンマに直面していると思います-メンテナンス活動の有用性と変化の破壊的な影響のバランスをとる方法。
明らかにバグの場合、変更は必須です。そこにはジレンマはありません。新機能の場合、それは有用性と追加された複雑さの問題です。私はその質問に安心して対処できます。
私が求めているのは、バグ修正と新機能の間のあいまいなスペースです。1つの例は、フレームワーク設計ガイドラインまたはCLS準拠に準拠するためのメンテナンスです。ある図書館では、CLSに準拠することを考えずにそれを書いたのですが、人々はそれを求めました。その結果、uintをintに交換するようにインターフェイスを変更する必要がありました。これは破壊的な変化であり、ほとんど利益はありません(ほとんどの人にとって)。
別の問題:FxCopコンプライアンス。FxCopを満足させるために、いくつかのメソッドのパラメーター名を変更する必要がありました。しかし、これらの変更は実際にはリフレクションを使用する人々にのみ影響します。タイプは変更されず、パラメーターの名前のみが変更されます。
私が今扱っている問題は、フレームワークの設計ガイドラインです。イベントに関するガイドラインでは、イベントには2つの引数を持つ署名が必要であると記載されています:(オブジェクトソース、EventArgs e)。しかし、その日はフレームワークデザインコースに欠席しました;)。私のライブラリのイベントは現在、単一のEventArgs引数のみを取ります。
現在、ライブラリに新しいイベントを追加しています。新しいイベントはフレームワークの設計ガイドラインに従う必要がありますか?またはライブラリですでに確立されているパターン?新しいイベントの設計ガイドラインを使用する場合、設計ガイドラインにも準拠するように既存のイベントを変更する必要がありますか?もしそうなら、どのように移行を行うのですか?[廃止]属性を使用する必要がありますか?リリースはいくつですか?
より一般的には、バグ修正と新機能の間のこのあいまいな領域でのメンテナンスについての考えに興味があります。
php - コードベースで未使用の PHP5 クラス/メソッドを見つける
PHP5 で未使用のコードを確認するにはどうすればよいですか? 以下のようなものですか?
- Reflectionを使用してクラスをスキャンする
- 「通常の」コードに従い
token_get_all()
、トークン T_NEW を持つ変数を見つけてから、メソッド呼び出しをスキャンします。 - 次のような出力
classname (count of new declarations) methods (count of calls)
project-management - 生産性を1人/日あたり1つのバグ修正に改善
私はシニアソフトウェアエンジニアであり、数か月前にバグ修正の調整を手伝うように頼まれました。プロジェクトマネージャー(非技術者)は、生産性を1人/日あたり1つのバグ修正に改善するという目標を私に与えました。これは本当に難しいことであり、バグ修正率を向上させるために他の開発者/管理者が何をしたのか知りたいです。
この状況で役割を果たすいくつかの要因:
- チームは地理的に分散しており(ヨーロッパ、アジア、オーストラリア)、各地域に10〜20人の開発者がいます
- 会社に9か月しかいないので、あまり馴染みのない大規模なコードベース
- 経験の浅い開発者のみがバグ修正に割り当てられ、最も有能な開発者は機能拡張に取り組んでいます
- 私たちはアジャイルに従うので、ソース管理、継続的インテグレーション、バグデータベースを使用し、プロジェクトには新しい作業のスケジュールと仕様があり、テスターがいて、ユーザビリティテストを行います
- 私たちのコードは、社内およびサードパーティのコンポーネント/ライブラリの多くに依存しています
- プログラムマネージャーにはいくつかの古いバグ修正メトリックがあり、1人/日あたり0.7のバグ修正を示しています。私の懸念は、これがプロトタイプに取り組んでいる経験豊富な開発者のチームに基づいており、彼ら自身が書いたコードのバグを修正していることです。現在、コードに精通していない開発者のチームを調整しています。バグは検証チームに起因しています。
最初のいくつかの回答を読んだ後のいくつかの詳細:
- 私はバグ修正された生産性メトリックを使用することに反対しようとしましたが、このアプローチでは行き過ぎではありませんでした
- すべてのバグに優先順位が付けられ(1-5)、重大度(1-5)が含まれ、追加情報でタグ付けされます(たとえば、別のバグによってブロックされた、クラッシュ、再現不可能など)
- ほとんどのバグには、修正時に単体テストケースが記述されています
- コードの特定の領域のバグは、可能であれば、その領域に精通している人々に割り当てられます
- バグ修正率はチームごとに追跡され、修正履歴が保持されます
- 毎日のスタンドアップでは、ブロックの問題を求めて解決することで、人々を動かそうとしています。
- すべての新しいコードは単体テストで書かれています
- はい、私はさまざまな方法で生産性メトリックを改善するために最善を尽くしています-古い無関係なバグを閉じ、バグレポートなしで解決される問題のバグを作成して修正します
バグデータベースに直接アクセスして、バグ管理のありふれた側面を自動化し、レポートを作成するPythonスクリプトを開発しました。
-
regex - よりメンテナンスしやすい正規表現を作成するにはどうすればよいですか?
正規表現を使用するとコードの保守性が低下すると感じ始めました。正規表現の簡潔さと強力さには、どこか悪いところがあります。Perl は、これにデフォルト オペレータのような副作用を加えます。
私は、基本的な意図を示す少なくとも 1 つの文と、一致するものの少なくとも 1 つの例を含む正規表現を文書化する習慣があります。
正規表現は構築されているため、式の各要素の最大のコンポーネントについてコメントすることは絶対に必要だと思います。それにもかかわらず、私自身の正規表現でさえ、クリンゴン語を読んでいるかのように頭を悩ませています。
意図的に正規表現を控えめにしていますか? おそらく短くて強力なものをより単純なステップに分解しますか? 正規表現のネストをあきらめました。保守性の問題のために避けている正規表現構造はありますか?
この例で質問を曇らせないでください。
マイケル・アッシュによる次の記事に何らかのバグがあった場合、それを完全に破棄する以外に何かをする可能性はありますか?
リクエストごとに、上記のアッシュ氏のリンクを使用して正確な目的を見つけることができます。
一致01.1.02 | 2001 年 11 月 30 日 | 2000/2/29
不一致02/29/01 | 2002/01/13 | 11/00/02
language-agnostic - 同様のコードフラグメントを見つける方法は?
他のコードに似たコードを見つける方法を知っている人はいますか?
関数やコードフラグメントを書くことがよくありますが、以前にそのようなものを書いたことがあるので、以前の実装を再利用したいと思いますが、プレーンテキスト検索を使用しても、変数名を使用しなかったため、何も表示されません。まったく同じである。
同様のコードフラグメントがあると、不要なコードの重複が発生しますが、コードベースが大きい場合、すべてのコードをメモリに保持することは不可能です。機能の点で「類似」しているコードとマークされたフラグメントまたは関数の分析を実行するツールはありますか?
次の例を検討してください。
と
私には、これはすでに何度か質問され、回答されているようです。
https://stackoverflow.com/questions/204177/what-tool-to-find-code-duplicates-in-c-projects
ここで複製として閉じることをお勧めします。
実際、これはより一般的な検索の問題だと思います。たとえば、StackOverflowで質問が既に行われている場合、どうすれば検索できますか?