問題タブ [codebase]
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++ - 既存のコードを壊さずに構造体にフィールドを追加する
私はこの膨大なコードのリポジトリを扱っていて、構造体の 1 つに重要なフィールドが欠けていることに気付きました。コード (構造体を使用する) をできる限り詳しく調べたところ、余分なフィールドを追加してもコードが壊れることはないと結論付けました。
私が台無しにした可能性がある場所についてのアイデアはありますか?
また、設計に関するアドバイスを歓迎します - これを達成するための最良の方法は何ですか?
例(私が明確でない場合):
今は次のとおりです。
uml - コードをよりよく読む方法を学ぶためのリソース
私は最近、大きなコードベースを継承し、それを読まなければなりません。問題は、私は通常、プロジェクトを開始する開発者でした。その結果、私はコードを読んだ経験があまりありません。
たくさんのコードを読まなければならないことに対する私の反応は、まあ、それを書き直すことです。しかし、私は自分自身を迅速にスピードアップし、既存のシステムの上に構築する必要があります。
他の人は、コードベースを吸収するために学んだテクニックを持っていますか?この時点で、私はコードを読んでいます。UModelを使用してUML図を生成してみました。それらは非常に大きいのできれいに印刷されません。ズームインすると、すべての関係を見ることができなくなります。
他の人はこの問題にどのように対処しましたか?
version-control - 歴史的な目的でコメントアウトされたコードの代替
見つけやすさの理由でリポジトリにチェックインされたコメントアウトされたコードを使用するための有効な代替手段はありますか?
私が質問する理由は、コメント アウトされたコードのチェックインについて、最近仲間の開発者と話し合ったからです。私のスタンスは、コメント アウトされたコードは、技術的にはコードベースの一部ではないため、VCS にチェックインするべきではないということです。
彼の反論は、彼がチェックインしたコメントアウトされたコードのいくつかは、彼が将来修正したいいくつかの作業をまだ示しているというものでした (この特定のポイントでは、コメントアウトは 2 年前に発生しましたが、それは重要ではありません)。彼はそれをコードベースに保持して簡単に見つけられるようにしたいと考えていました。現在はコンパイルされていませんが、グローバル行で正しい解決方法を示していました。
最終的に、彼は、コメントアウトされたコードが属していないことに同意しました。しかし、彼に代わる可能性のあるものを考えていたとき、私たちはかなり不足していました.
私が考えることができる唯一のオプションは次のとおりです。
- Wiki : Wiki のどこかに貼り付けるだけです。これの欠点は、コードに関係のない他の wiki コンテンツと混ざってしまい、検索が難しくなる可能性があることです。
- すべての VCS リビジョンにインデックスを付ける: これは主に理論上の話ですが、コードベースとその履歴全体を検索可能にするシステムはありますか?
誰かが代替案を知っている/使用していますか? どちらのオプションも実際の価値よりも多くの作業のように聞こえますが、コメントアウトされたコードはとにかく価値がないという私の推論によって歪められている可能性があります。「ちょっと、修正する時間がないのなら、とにかくコードベースにとどまるほど重要ではない」というルートに行かなければならないのは嫌です(ただし、実行可能な代替手段がない場合は修正します)。
ひどいタイトルで申し訳ありません。これ以上のタイトルが思いつきませんでした。
language-agnostic - 実際のコードベースをゼロから構築するには、どこから始めればよいでしょうか?
現在、私は多かれ少なかれ組織化された一連のプロジェクトを持っています。リファクタリングされ、文書化され、単体テストされているものもあれば、そうでないものもあります。
以前に書いたコードを再利用したいときは、このコードを書いたプロジェクトを探すのに数分かかります。このコードをコピーして新しいコードに貼り付け、必要に応じてリファクタリング、文書化、単体テストを行います。 .
余分な作業をしなければならず、何がどこで書かれたかを覚えておく必要があり、(おそらく最も醜いもの) プロジェクト間でコードを複製する必要があるため、醜いです。共通のコードベースを持たずに他の開発者と作業することも問題です。
今、コードベースを作成したいのですが、それについて何も知りませんし、どの会社でも深刻なものを見たことがありません。
では、どこから始めますか?そのようなコードベースの作成方法を説明したり、既存または架空のコードベースを説明したり、どのように機能するか、どのように維持されるかなどを説明する本やオンライン ドキュメントはありますか?
version-control - それほど賢くないプログラマー向けのソース管理システム
問題:
数百万の SLoC にまたがる巨大なコード ベースは、大群の二流/三流プログラマー (彼らのほとんどはあまり気にしない) によって維持 (サポート/積極的な拡張など) されています。何十年も前に、CVS を基盤として使用するラッパーを導入した賢い人はほとんどいませんでした。このシステムは現在の世代の開発者によって使用されています (開発者の 90% は CVS を直接使用したことがないか、別のコマンド ライン ソース管理システムについて聞いたり使用したりしたことがありません)。 .
効果:
CVS の使用と、複数のモジュールにまたがって作業する複数のチーム。必然的に => CVS ブランチがトランクにマージされます。これは、最も宗教的かつ儀式的に可能な方法で実践される活動です。[=>力ずく。数週間前に計画され、2/4日間12人の男が参加しました。数百 (場合によっては数千) のソースが手動で処理されます。 おもしろいことに、関係者は修正の元の所有者ではなく、差分をチェックするだけです。本当に、冗談ではありません!] これにより、ライブラリ/モジュール/機能の健全性に多くの矛盾が生じ、これらのマージ中の回帰による欠陥を修正するために多大な労力が費やされます。
そして今、質問:
いくつかの前向きな変化をもたらし、プログラマー/マネージャー、および環境内の他のすべての人の生活を改善できる代替ソース管理システムは何ですか?
周りの誰もが代替品を見つけることを考えずにクールエイドを飲んだ(そして「これがどのように物事が行われるか」を歌っている)ように見えるので、誰かがそれをする時が来ました. ただし、システムを使用する人々の種類を考慮すると、次の点に留意する必要があります。
- 使いやすく、理解しやすく、Joe Coder でさえ大騒ぎせずに使用できるはずです。(とにかく、これは必要ありません。ラッパーは実際のボンネットの下のものを人々から隠してしまうからです)
- いつでも複数 (約 30) のアクティブなブランチを持つ巨大なコードベース (複数の言語にわたるソースで構成される)。
- さまざまなブランチへの簡単なマージ。(変更の量が非常に大きいことを考慮すると)
- 利用可能であれば、システムの商用サポートは素晴らしいでしょう。
- 開発は UNIX サーバー上で行われます (少なくとも HP-UX/Solaris 上で実行する必要があります)。
- 適切にスケーリングする必要があります (数千のユーザー/数十万のソース)
- 良いドキュメンテーション
- 変更/コピーを比較/表示するためのシンプルで明快なブラウザベースのインターフェース。
- リポジトリにはバイナリ ファイルはありませんので、気にする必要はありません。
- 現在のリポジトリの内容を新しいシステムにインポートするためのプロビジョニング。
だから、提案してください。希望 && 方法はありますか? :) gitのようなものは完全に拒否されると確信しています(彼らは「gitは賢い人のためだけのものである」と信じています)
編集: 私も Mercurial と BitKeeper を念頭に置いており、チェーンの上流の人々に言及しました。最善の結果を期待!ありがとう!:)
android - Eclipse でのバージョニングと共通コードベース
近い将来、Android アプリをリリースしたいので、J2ME と iPhone の開発中に使用したいくつかの機能をどのようにサポートするかを考えていました。
- 最初にバージョン管理。J2ME (NetBeans を IDE として使用) では、コンパイルするたびにソフトウェア バージョンを自動インクリメントするオプションがありました。このようなものが Eclipse で利用できるかどうか疑問に思っていました。
- 第二に、共通のコード ベースです。複数のプロジェクトで共通のコード ベースを使用することは可能ですか? たとえば、実際には同じコードを使用しているが、異なるグラフィック リソースを必要とするゲームがあるとします。ゲーム/アプリごとに異なるプロジェクトを作成し、新しいコード変更を送信するたびにすべてのプロジェクトのソースを手動で編集する必要はありません。これに対する解決策はありますか?
あらゆる種類のヘルプ/ヒント/ヒントを事前にありがとう!
java - Javaセキュリティポリシーのリモートコードベースの指定
クライアント側のセキュリティポリシーがあり、アクセス許可を付与するステートメントがあります。RMIサーバーに対してのみ一連のアクセス許可を付与するように指定できるようにしたいと思います。たとえば、これは機能します。
しかし、アクセス許可のセットをリンクして、サーバー上のコードベースに適用する方法がわかりません。サーバーに関連付けられている限り、実際には何でも問題ありません。私が試してみました:
ホスト名はマシンの名前またはIPであり、ポート番号がある場合とない場合の両方です。しかし、これは機能せず、ファイルの代わりにhttpを使用することもできません。これまでに読んだ内容を正しく理解していれば、最後のハイフンでサーバー上にあるものすべてにアクセス許可を適用する必要があります。これを機能させるために私が何をする必要があるか知っている人はいますか?
ありがとう。
サーバーの実行時に指定されたコードベースは次のとおりです。
linux - 2 つの別々の - まだ似ている - コードベースを 1 つの SVN 担当者にマージする方法は?
私は持っている
www.example.com の /var/www/cool_codebase であり、
www.example.net の /var/www/cool_codebase
コードベースは、異なるサーバーで実行されている同じ Web アプリ用です。コードベース (クライアント固有のビットとボブなど) の間にはいくつかの特殊化がありますが、それほど多くはありません。1 つのコードベースには、もう 1 つのコードベースにないファイルがあり、その逆もあります。プログラミングのいくつかのビットも異なります。
各コードベースをローカルホストにダウンロードしましたが、質問は次のとおりです。
これらの 2 つのフォルダーを 1 つのフォルダーにマージし、それを 1 つの「大規模な統合コードベース」として SVN にコミットするにはどうすればよいですか?
各コードベースを独自の SVN リポジトリに配置してから、これらの個別のリポジトリをマージする必要がありますか? または、SVN の前にコードベースをマージできますか?たとえば、Linux コマンドを使用して、SVNにコミットできますか?
どんなアイデアや助けも大歓迎です。
最終結果は、www.example.com と www.example.net の両方に問題なく展開できる 1 つの「大規模な統合コードベース」になることを付け加えておきます。
(追伸。はい、何をするにしても、いくつかのファイルを編集し、プログラミングを「汎用」にする必要があることを認識しています。これは気にしません。単に自動化または半自動化する方法を探しているだけです。 -全体を自動化します。)
c# - Assembly.CodeBase を C# のファイルシステム パスに変換するにはどうすればよいですか?
\Templates
DLL と EXE の隣のフォルダーにテンプレートを格納するプロジェクトがあります。
実行時にこのファイル パスを決定したいのですが、単体テスト内でも運用環境でも機能する手法を使用します (NUnit でシャドウ コピーを無効にしたくありません!)。
Assembly.Location
NUnit で実行すると、シャドウ コピーされたアセンブリのパスが返されるため、適切ではありません。
Environment.CommandLine
NUnitなどでは、プロジェクトではなくNUnitへのパスを返すため、使用も制限されています。
Assembly.CodeBase
有望に見えますが、これは UNC パスです:
これで、文字列操作を使用してこれをローカル ファイル システム パスに変換できましたが、.NET フレームワークのどこかに埋もれているよりクリーンな方法があるのではないかと思います。これを行うための推奨される方法を知っている人はいますか?
(このコンテキストでは、UNC パスがfile:///
URL でない場合に例外をスローしてもまったく問題ありません)
java - Java ポリシー ファイルはコードベース jar に権限を割り当てることができません
「xyz.jar」と言うjarにallPermissionを与えるJavaポリシーファイルを作成しました
しかし、プログラムの実行中に、プロパティのアクセス権に対して AccessControlException が発生します。このプロパティは、jar 内のクラスによって設定されます。
ポリシーのデバッグ中のエントリは次のとおりです。
と
どこが間違っていますか?