問題タブ [change-management]
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.
deployment - Windows 環境でのプル展開
Windows での従来のプッシュ展開モデルとは対照的に、プル展開をセットアップする方法を探しています。
最適な状況は次のとおりです。
- ファイルをマスターサーバーにデプロイします
- 子サーバーは、マスターが特定の時間または時間間隔で更新されたかどうかを確認します。
- マスターサーバーに更新が含まれている場合、更新をダウンロードしたり、スクリプトを実行したりします (ナントのようなものですか?)。
ソリューションはできるだけ軽量で、Windows 環境で実行する必要があります。
ChefとSmartFrogを調べましたが、この特定の状況には適していません。
編集:複数のソフトウェアがデプロイされています。これらは、データベース スクリプト、Windows サービス、および Web サイトです。要件と認証の詳細が他の子とは異なるため、各子には固有のスクリプトがあります。
編集2: これまでのところ、人々は素晴らしい答えを思いつきましたが、最終的なソリューションは本当に安全で、内部で実行され、すべてが同時に発生する必要があります. これは、コンプライアンス、業界の規制、およびバージョンの問題 (例: データベース サーバーがサービスと同期していない) によるものです。私が念頭に置いている最終的な解決策は、マスター上の FPT サーバーと、インストール ルーチン (サービスの開始、停止、SQL スクリプトのインストール、インストールのログ記録) を実行するために子で実行されている Nant のようなものです。これは現在利用できるものに最も近いものですが、nant はプッシュ ベースで動作するため理想的ではありません (誰かまたはプログラム (cruisecontrol など) がスクリプトを実行したときにのみ実行されます)。Windows で適切な PULL 展開を行うためのソリューションが必要であると確信しています。
nhibernate - NHibernate SchemaExport メソッドはどこに置くべきですか?
NHibernate SchemaExport メソッドをどこに配置すればよいですか? また、データベースを再作成する場合はどのように呼び出す必要がありますか?
これをスタートアップ プロジェクト (asp.net mvc プロジェクト) に残す必要がありますか? スキーマをエクスポートするためだけに別のコンソール プロジェクトを作成する必要がありますか?
これらの質問はすべて、Web アプリが起動するたびにスキーマのエクスポートを実行したくないという事実から生じていると思います。
それが違いを生む場合、流暢なnhibernateを使用しています。
version-control - Recommended Development practices for working with Siebel CRM?
I may be working with Siebel CRM soon, and I'm looking for advice on using modern development practices and enterprise best practices.
Specifically I'd like advice on the following areas:
- How should we set up version control (specifically with Subversion)? What kind of structure should our repository have? How should we handle branches and tags?
- How can we do code reviews? How can we peer review configuration changes made through Siebel Tools that don't necessarily have any "code"? We want to review these changes for quality assurance and knowledge transfer, as well as compliance with change management policies.
- What sort of change management works well with Siebel? How do we verify that only things listed in our change log are actually changed when we do a new deploy?
- How can we automate testing of our application? Is unit testing even possible with Siebel? I saw another question suggesting QTP for web testing, but are there other options that work?
- Are there other things we can do to implement Continuous Integration practices with our Siebel development efforts?
- What recommendations do you have for naming conventions and other things that would traditionally fall under "coding style" guidelines?
- How should we separate development roles from Siebel Administrator roles? What should our build/test/deploy cycle look like?
It's not likely that I'll be able to obtain any new expensive tools for this, but if there's a paid tool that provides really great ROI, feel free to mention it.
If you have other recommendations along these lines, but not specifically addressed by one of my questions, feel free to add that as well.
sqlite - SQLite の変更管理ツール
SQLite で使用できる優れた変更管理アプリケーションを探しています。過去にRedgateによるSQLデータ比較を使用しましたが、SQLiteをサポートする同様のものを見つけることができませんでした.
かなり大きな暗号化されたSQLite データベース (~1,000,000 行と 74MB) を更新する必要があります。可能であれば、ユーザーにデータベースのまったく新しいコピーをダウンロードさせるのではなく、変更を更新するだけのスクリプトを生成したいと考えています。使用している SQLite のバージョンは 3.6.23.1 です。推奨事項を事前にありがとう:)
asp.net-mvc-3 - MVC ビューで一時的な変更要求を処理するためのヒント
特定の機能に一時的な変更要求が届いたアプリケーションに取り組んでいます。具体的には、ビジネスは現在、特定の顧客の物理的な住所のみを管理したいと考えており、郵送先住所を追加するオプションを削除することを望んでいます。
この機能は将来的に再導入する必要がある可能性が高いため、現時点で削除を処理する最善の方法は何かを考えています. ViewModel に追加のプロパティを設定することは必ずしも問題ではありませんが、面倒です。ビュー自体に関しては、さらに問題があります。UI 要素を削除する必要がありますが、将来それを簡単に元に戻せるようにする必要があります。
それで...不要なコードビットをコメントアウトしますか?これは最も簡単な方法ですが、面倒です。
新しい View と ViewModel を作成する必要がありますか? もしそうなら、安全に保管するために原本を保管するのに適切な場所はどこですか? 私たちのアプリケーションはソース管理 (SVN) の下にあるので、理論的にはこのリビジョンに戻すことができますが、そのような小さな変更にはやり過ぎのように思えます。
他の誰かが同様の状況に遭遇しましたか? これを最適に処理する方法に関する推奨事項はありますか?
cvs - CVS で変更セットを管理するにはどうすればよいですか?
ここ数年、分散バージョン管理システムを使用してきましたが、今では CVS を使用する必要があります。私が望むプロセスは次のようなものです:
- 各バグ/機能には、チケット システムでチケットが与えられます。
- 開発者はバグ/機能に割り当てられます (必要に応じて、開発者とチケットの関係が 1 対 1 になるように、チケットは小さなチケットに分割されます)
- 開発者は変更を行い、チケットに関連付けます
- 通常の時点で、リリース候補のチケットのセットが選択されます リリース候補はテストされます
- リリースは、候補からのチケットのサブセットを使用して構築されます
- そしてサイクルが再び始まる
私の現在の素朴な計画は、
- 各チケットをトランクから離れた独自のブランチに入れる
- リリース候補ごとにブランチを作成する
- チケットブランチをリリース候補にマージします
- リリース候補が十分に優れていると判断されたら、トランクにマージします
私は CVS について知っていたことをすべて忘れてしまいましたが、これは間違いだろうという直感があります。どのようなパフォーマンスまたはその他の問題が発生する可能性がありますか? 特定の期間に行われた作業のサブセットに基づいてビルドを選択的に作成するより良い方法はありますか?
svn - 変更管理の目的でドキュメントを保存するsvn
プロジェクト関連のドキュメントをsvnに保存するのは良い考えですか?このために推奨できるドキュメント管理アプリ(SharePoint?)はありますか?問題は、中規模のソフトウェアハウス(20人の開発者)です。
project-management - 絶えず変化する環境におけるソフトウェア プラットフォームのアップグレード
約16台のサーバーで構成されるサービス環境があります。各環境 (つまり、開発、テスト、および実稼働) には、独自の 16 台のサーバーがあります。これらのサーバーでは、各サービスの再構築と再展開が必要なプラットフォームのアップグレードを検討しています。コードの変更はありませんが、すべてのサービスを再構築する必要があります。状況は簡単に聞こえます。ただし、これらの環境全体 (dev から test、prod まで) で継続的にバグ修正と新しいリリースが行われています。このプロセスを長期間中断することはできません。つまり、「コード フリーズ」のシナリオはほぼ不可能です。したがって、dev と test がバージョン N で、Production が N-1 であるという状況が発生する可能性がありますが、これは受け入れられません。
アップグレードされたソフトウェア プラットフォームは、同じサーバー上の既存のバージョンと並行してインストールできます。では、このプラットフォームのアップグレードを実行するための代替手段は何ですか?
java - Terracottaの永続データの場合、クラスを進化させる方法は?
次のプロジェクトではテラコッタを検討しています。個別のDBMSを必要とせずにデータの永続性を提供できる可能性に興味を持っています。( 永続ソリューションとしてのTerracottaの使用についても参照してください)
ソフトウェアの進化における大きな問題の1つは、既存の本番データを新しいデータモデルに準拠させることです。RDBMSの場合、展開時にSQL変更スクリプトを使用する可能性があります。テラコッタに裏打ちされたデータの場合、重要な進化に対処する方法はすぐにはわかりません。
Terracottaのドキュメントにはクラスの進化に関する段落がいくつかありますが、それはDSOに固有のようであり、かなり表面的なままです。
- Terracottaに保存されている永続データのデータモデルの進化を処理するための可能な方法は何ですか?私は特にDSO以外のシナリオに興味があります(つまり、Terracotta Toolkit APIを使用します)。
- TerracottaDSOとToolkitAPIは、進化したクラス定義に対する反応が異なりますか?
- クラスの進化の限界を理解するには、Terracottaがオブジェクトデータをどのように表現/通信するかを知ることが役立ちます。そのための仕様はありますか?
- たぶん、テラコッタに適用できるOODBMSの世界からのスキーマ進化技術がありますか?
簡単な例として、たくさんのCar
オブジェクトが保存されていて、クラスのmodelYear
フィールドをaからに変更したとします。ドキュメントによると、これはそのままでは機能しません。アプリケーションの起動時に古いクラスローダーが別のクラスローダーによってロードされ、新しいに変換されるソリューションを想像できます。それは良いアプローチでしょうか、そしてなぜ(そうではない)ですか?Car
String
int
Car
Car
javascript - D3を使用して構成アイテムとその依存関係をグラフ化するにはどうすればよいですか?
私はD3の新規ユーザーであり、構成アイテムのマッピングを最適に実装する方法を考えようとしています。
私が探しているのは本質的にツリーマップ(私は思う)ですが、相互に関連する依存関係があります。
データ
私はITILスタイルの構成アイテムを扱っているので、お客様に提供するITサービスを構成する論理サービス、アプリケーション、マシンなどです。
私が提供するJSONデータは、私が定義しているWebAPIサービスから取得されるため、データを返すことができますが、必要です。
目標
私は渡る必要があります:
- 構成アイテムの名前(「サービスA」、「サーバー1」、「データベースXYZ」など)
- 構成アイテムのタイプ(アイコンまたは色で表されます-現時点ではそれほど重要ではありません)
- 依存関係が最も少ないものが一番上にあります
- つまり、サービスは、それを構成するすべてのもの(アプリケーション、DBなど)によって表されます。サービスから順に階層を作成したいと思います。
- 厳密には階層的ではない、すべての要素間の関係。
- 複数のサービスが1つのアプリケーションに依存する可能性があります
- 複数のアプリケーションが複数のデータベースに依存している可能性があり、複数のデータベースが1つのデータベースサーバーに依存している可能性があります。
- 可能であれば、ツリーをクリックして上から下に1つのブランチに焦点を合わせる機能(ただし、これは後で行うことができます)
頭に浮かんだら、GitHubに簡単なものを設定して、D3を使用してITサービス管理の世界に貢献できるかどうかを確認したいと思います。
質問
哲学的には、D3はこの性質の視覚化をサポートするように設計されていますか?それを達成するための私の最善のルートは何ですか?
ありがとう!