タグ付けされた質問 「maintenance」

ソフトウェアシステムの展開後に発生するアクティビティ。これには、リリースされたシステムの変更、トレーニング、運用、サポート組織への移行が含まれます。

9
コーディングおよびメンテナンス中にメモ、思考、アルゴリズム、決定を書き留めることは正常ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた3年前。 言葉なしでは考えられないこの問題を抱えている人もいます。そして、彼らの考えや決定を書き留めることは、最も効果的な進め方です。 だから-コーディング中にNotepad ++ファイルに自分の考えや決定を書き留めることは正常で受け入れられますか? 技術文書を再作成したり、より複雑なアルゴリズムについて推論したりする場合など、受け入れられるべき場合もありますが、設計オプションを検討して判断しようとする場合など、奇妙な場合もあります。 このプラクティスが生産性に与える影響は不明です。片側から-内側の言葉を使った推論は、書かれた言葉を使った場合よりも速いかもしれません。反対側から-より複雑な問題は書く必要があります。それに、デザインの選択肢が増えれば、意思決定が書かれたときのフィーリングが良くなり、士気が上がります。

5
残念ながら、エンドユーザーがこの非仮説的な状況に対処する方法は?
私は中規模の会社で働いていますが、IT部門は非常に小さいです。 昨年(2011)、私はエンドユーザーの大規模なグループに非常に人気のあるアプリケーションを書きました。昨年末に締め切りを迎えましたが、最後に欲しかったアプリケーションに一部の機能(これからfuncAを呼び出します)が追加されませんでした。したがって、このアプリケーションは2011年末からライブ/プロダクションで実行されていますが、問題なく追加できます。 昨日、エンドユーザーのグループ全体が、アプリケーションに含まれていなかったfuncAが機能しなくなったと不平を言い始めました。この会社での優先事項は、アプリケーションが破損した場合、優先プロジェクトの前に最初に修正する必要があることです。 私はコードとクエリを比較しましたが、2011年以来、違いはありません。その後、エンドユーザーの1人にプルーフBが機能しなかったことを認めさせることができましたが、それ以来、そのエンドユーザーは戻って以前に機能していると言いました...エンドユーザーの大群が同化したと思います彼女。また、このプロジェクトに関する注意事項を確認しました。このプロジェクトには、「funcAは時間の制約のために達成されていません」、proofCと明記されているプロジェクトに関する要件と毎日の更新があります。 私は彼らの多くと話をしましたが、彼らはプログラミングの背景から非常に遠いのでどこで混乱するかを見ることができますが、彼らが得るためにプロジェクトの優先順位付けをバイパスするためにグループで行動するのに十分な知性があることも知っています彼らが仕事を簡単にしたい機能。 最悪の部分は、コードやクエリの変更がなくても、グループ思考が設定され、上司とIT責任者が実際にそれらを信じ始めていることです。ロジックの状態を確認する限り、1 = 1の場合、非常にカットされて乾燥しているため、funcAは機能しません。 したがって、これで私のシナリオの説明は終わりましたが、これが原因で、おそらく引き継がれる実在しない問題を修正することに本質的に移行することになるため、パフォーマンスメトリックスに何度も触れないようにしています。 1ヶ月。

13
壊れたウィンドウを修正しないことはいつ受け入れられますか?
壊れたウィンドウを参照して、将来のアクティビティのためにリファクタリングを残すのが最適な場合はありますか? たとえば、既存の内部システムにいくつかの新機能を追加するプロジェクトが、これまでシステムで動作していなかったチームに割り当てられ、動作するための短いタイムラインが与えられた場合、それを正当化することができますか?このシナリオで期限を設定するために、主要なリファクタリングを既存のコードに延期しますか?

12
メンテナンス専用のプログラマはどうやって昇給することができますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私はここ数年メンテナンスプログラマーとして働いていますが、メンテナンスプログラマーの昇進のようなものがあるかどうか疑問に思っていますか?責任は広がらず、あなたはまだほとんど同じことをしているので、時間の経過とともに少し速くなるかもしれません。それが可能な場合、それを取得するためのパスは何でしょうか?

4
プロのプログラマーではない、または決してプロではない人が、より読みやすく使いやすいコードを書くのを支援する[クローズ]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私はエルビスであり、アインシュタインになることを一生懸命学ぼうとしています。私はモートで働いています。 このクレイジーなバカは何を言っているんだ!?!?(最初の数段落だけを読む必要があります) あなたがそのリンクを読む気にならないなら、基本的に、私はプロのプログラマーであり、私のボスはそうです(これは恐ろしく正確です): コンピューターサイエンスの学位はないが、OfficeとVBAに精通しており、通常は同僚の間で共有される生産性アプリケーションを記述するプロの基幹業務プログラマー とは言うものの、私の仕事の大部分は、彼の丸石で結ばれたコードを取得し、生産準備を整えることです。しかし、非常に貧弱なスタイルとカーゴカルティズムがこれを難しくしています。これは、彼がプログラミングの本を読むことを嫌がり、コードをリファクタリングするのを手伝ってくれるという事実によってさらに悪化します。 プロのプログラマーではない人を助けるための戦略は他にもありますか?プロのプログラマーが私にとって使いやすく解釈しやすいコードを今後書くことはありませんか?

7
「バックポート」という用語の反対はありますか?
私が理解しているように、「バックポート」という用語は、前のバージョンにも移植される将来のバージョンに適用される修正を説明するために使用されます。ウィキペディアの定義は次のとおりです。 バックポートとは、特定のソフトウェアの変更(パッチ)を取得し、それが最初に作成されたソフトウェアの古いバージョンに適用するアクションです。ソフトウェア開発プロセスの保守ステップの一部を形成します... 例えば: V2.0で問題が発見され、修正されました。同じ修正が移植され、V1.5に適用されます。 これが反対方向に行われるときの用語は何ですか? この問題はV1.5で発見され、修正されました。同じ修正が移植され、V2.0に適用されます。 「バックポート」という用語は引き続き適用されますか?または、「Forwardporting」(面白いことに「Port Forwarding」とよく似ています)などの用語はありますか?

6
レガシーコードを扱うことは、プログラマーとして進化するのに役立ちますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私はJava開発者であり、1年以上の経験があり、中級以上の開発者ではありませんが、ジュニアのどこかにいるようです。最近、私は既存の銀行業務アプリケーションコードを4か月間研究し、必要に応じて変更を導入するという長期プロジェクトを提供されました。あまり経験のないプログラマーとして、私は開発する方法を探していて、そのようなプロジェクトが何をもたらすのだろうかと思っています。 大きくておそらくあまり良くない書かれたアプリケーションを扱うことは初心者にとって良い習慣だと思いますか?

7
保守性に関する学生のトレーニングを改善する方法は?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 保守性は、専門的なソフトウェア開発の主要な問題です。実際、メンテナンスは、プロジェクトのリリースから基本的に終わりまで続くため、ほとんどの場合、ソフトウェアライフサイクルの最も長い部分です。 さらに、メンテナンス中のプロジェクトは、プロジェクトの総数の大部分を占めています。http://www.vlegaci.com/298/interesting-statistics-%E2%80%93-numbers-of-programmers-in-maintenance-vs-development/によると、メンテナンス中のプロジェクトの割合は約2です/ 3。 私は最近この質問に出くわしました。彼の仕事は主にメンテナンスに関するものであることに気付いた男はかなり驚いているようです。それから、フランスのソフトウェア開発専門家コミュニティ(http://www.developpez.com/)のメインサイトでディスカッション(フランス語)を開くことにしました。ディスカッションのタイトルは、「学生はプロのソフトウェア開発の現実に十分に訓練されていますか?」そして、主に保守性についてです。少なくともフランスでは、人々はその両方の面でメンテナンスに直面する準備が十分に整っていないことが指摘されました。 既存のコードを維持する 保守可能なコードを作成する ここでの私の質問は、この議論と同じであり、保守性を教える良い方法を見つけることを目指しています。 保守性をどのように教えることができますか? どのような運動を提案しますか? 保守性に関して十分な訓練を受けている場合、どのような種類のコースを受講しましたか? [編集]いくつかの誤解の後、私の質問を明確にしなければならないと思います。プロジェクトリーダーおよびソフトウェア開発者として、私はしばしば研修生または卒業したばかりの学生と仕事をしています。私はかつて自分自身を卒業したばかりでした。問題は、通常、プロジェクトの保守性を高めるSOLIDなどの原則に学生が慣れていないことです。私たちはしばしばプロジェクトを発展させる重要な困難を抱えることになります(保守性が低い)。私がここで探しているのは、保守性の重要性と、この特定の点に関してより良いコードを作成する方法に関する成功した教育の具体的な学術的な例です。または生徒の訓練方法を改善するための提案。

2
人々はテストスイートをどのように維持しますか?
特に、私は次の側面に興味があります。 テストケースが間違っている(または古くなっている)ため、修復(または破棄)する必要があることをどのようにして知るのですか?つまり、テストケースが無効になった場合でも、テストケースが合格し、サイレントのままになる可能性があります。これにより、ソフトウェアが正常に動作していると誤って信じることができます。それでは、テストスイートのこのような問題をどのように実現しますか? テストスイートがもはや十分ではなく、新しいテストケースを追加する必要があることをどのように知っていますか?これは要件の変更と関係があると思いますが、テストスイートの妥当性をチェックするための体系的なアプローチはありますか?

7
イベント駆動型コードのメンテナンスを容易にする方法は?
イベントベースのコンポーネントを使用するとき、メンテナンス段階で苦痛を感じることがよくあります。 実行されたコードはすべて分割されているため、実行時に関与するすべてのコード部分を把握するのは非常に困難です。 これにより、誰かがいくつかの新しいイベントハンドラを追加したときに、微妙で困難なデバッグの問題が発生する可能性があります。 コメントから編集する:アプリケーション全体のイベントバスやハンドラーがアプリの他の部分にビジネスを委任するなど、オンボードのいくつかの優れたプラクティスを使用しても、多くのコードがあるためにコードが読みにくくなり始める瞬間があります多くの異なる場所から登録されたハンドラー(特にバスがある場合に当てはまります)。 その後、シーケンス図が複雑になり始め、何が起こっているのかを把握するのに時間がかかり、デバッグセッションが煩雑になります(ハンドラーの反復中のハンドラーマネージャーのブレークポイント、特に非同期ハンドラーとその上でのいくつかのフィルター処理で楽しい)。 /////////////// 例 サーバー上のデータを取得するサービスがあります。クライアントには、コールバックを使用してこのサービスを呼び出す基本コンポーネントがあります。コンポーネントのユーザーに拡張ポイントを提供し、異なるコンポーネント間のカップリングを回避するために、いくつかのイベントを発生させています。1つはクエリが送信される前、1つは回答が返されるとき、もう1つは失敗の場合です。コンポーネントのデフォルトの動作を提供する事前登録された基本的なハンドラーセットがあります。 コンポーネントのユーザー(および私たちもコンポーネントのユーザー)は、いくつかのハンドラーを追加して、動作に何らかの変更を加えることができます(クエリ、ログ、データ分析、データフィルタリング、データマッサージ、UIファンシーアニメーション、チェーン複数の順次クエリの変更) 、 なんでも)。そのため、一部のハンドラーは他のハンドラーの前後に実行する必要があり、それらはアプリケーションのさまざまなエントリポイントから登録されます。 しばらくすると、十数人以上のハンドラーが登録されることがあり、それを操作するのは退屈で危険です。 この設計は、継承の使用が完全に混乱し始めたために生まれました。イベントシステムは、コンポジットの種類がまだわからないような構成で使用されます。 例の終わり /////////////// だから私は他の人々がこの種のコードにどのように取り組んでいるのだろうと思っています。書き込み時と読み取り時の両方。 そのようなコードを苦労せずに記述および保守できる方法やツールはありますか?

6
プロジェクトが特に複雑なのか、それとも取り上げるのが遅いのかを判断するにはどうすればよいですか?
私は主要なプロジェクトでほとんど進歩を遂げていません。ソースは巨大で、オブジェクトの多くのレイヤー、マカロニコード、多重継承のダブルダイヤモンドグラフ、元の作家が去ったときに中途半端な機能が凍結されており、その多くの部分がそのように設計された理由は誰にもわかりません。 有能なプログラマーなら、バグを修正し、中途半端なものを完成させ、新しい機能を追加するのに十分なほどうまくそれを理解するのに苦労すると思う。しかし、私は典型的なプログラマーよりも遅くなると思う。 ソースが異常に悪く、私ができることは誰でもできるかどうかを判断するにはどうすればよいのでしょうか?ソースはこのようなプロジェクトでは典型的であり、私はただの機知に欠けているか、未熟です?

5
古いコードを更新して新しい言語構成を使用する必要がありますか、それとも古い構成を使用する必要がありますか?
プログラミング言語が機能で成長する前に、ずっと前に書かれたまだ機能しているコードでいくつかの拡張を行いたいです。理論的には、プロジェクト全体が最新バージョンの言語を使用しています。ただし、この特定のモジュール(および実際には他の多くのモジュール)は、まだ古い方言で書かれています。 したほうがいい: 触れる必要のないコードの部分には触れませんが、パッチの記述を容易にするが、モジュール内の他の場所の類似の状況では使用されない新しい言語機能を使用してパッチを記述しますか?(これは私が直感的に選択するソリューションです。) 数年が経過したという事実を無視し、パッチの作成中にコードの残りの部分で使用されるスタイルを反映して、何年も前に同じタスクを実行しているかのように効果的に動作しますか?(このソリューションは直感的にばかげていると思いますが、「良いコード」について話す誰もが大騒ぎするので、すべてのコストで一貫性を保つことになります。おそらくこれが私がすべきことです。) モジュール全体を更新して、新しい言語構成と規則を使用しますか?(おそらくこれが最善の解決策ですが、別のタスクに費やすことができる多くの時間とエネルギーが必要になる場合があります。)

3
長時間実行される未リリースコードのGit分岐戦略
私たちのチームでは、個々の作業単位(ストーリー)に加えて、より長時間実行される作業テーマ(叙事詩)があります。複数のストーリーが壮大です。 従来、各ストーリーに機能ブランチがあり、それらがQAに合格したときにそれらを直接マスターにマージしました。ただし、Epicが「機能完了」と見なされるまで、Epicで完了したストーリーのリリースを控えたいと思います。これらの機能は、Epic全体が閉じられたときにのみ本番環境にリリースされます。さらに、ナイトリービルドサーバーがあります-すべての閉じられたストーリー(不完全なEpicsの一部を含む)がこのナイトリーサーバーに自動的にデプロイされるようにします。 これを達成するためのレポの管理方法に関する提案はありますか?「エピックブランチ」を導入することを検討しました。ここでは、クローズドストーリーをマスターに直接ではなく、関連するエピックブランチにマージしますが、私の懸念は次のとおりです。 壮大なブランチを長時間開いたままにしておくと、マージの競合が心配です ナイトリービルドでは、すべてのエピックブランチを「ナイトリービルド」ブランチにマージする必要があります。繰り返しますが、マージの競合が発生する可能性があり、これは自動的に行われます

6
定数としてゼロ?
最近、このプログラミングのイディオムに出会いました。 const float Zero = 0.0; これは比較で使用されます: if (x > Zero) {..} これが実際よりも効率的であるか、読み取り可能または保守可能であるかを誰でも説明できますか? if (x > 0.0) {..} 注:この定数を定義する他の理由を考えることができますが、このコンテキストでの使用について疑問に思っています。

11
他の作業中に既存の欠陥を修正する必要がありますか?
難問:新機能の作業中または欠陥の修正中に、コードに古い問題が見つかります。あなたは何をするべきか?それを修正し、コードの動作を変更する危険を冒してください。それは、これまでに何らかの欠陥によってうまく機能しているか、あるいは欠陥が検出されていないか、報告する時間がないかのどちらかです。そのままにして、問題が原因でコードを後で操作しにくくする必要がありますか?問題を修正すると、元のタスクの時間が増えるだけで、強制的に回帰テストが行​​われます。仕事に感謝する人はほとんどいません。しかし、それを修正することは、どういうわけか正しいようです。問題の少ないコードは、リファクタリングやビルドが簡単です。 Webアプリケーションの近代化に取り組んでいるとき、私はこの状況に何度も気づきました。これらの古いバグに取り組んでいるとき、自分が強迫観念を持っているのか、それとも名誉あるのかはわかりません。これらの状況をどのように処理しますか? ありがとう、コーリー

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