ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

1
外部ソースからのさまざまなブランチを単一のMercurialリポジトリに統合する
編集:バウンティがまもなく期限切れになるので、これをさらに明確にします。履歴を(異なるSCMからプルして)Mercurialの特定のブランチに直接インポートする方法はありますか? 私は現在、Perforceを使用している会社で働いており、Mercurialを使用した分散バージョン管理の方法を作っています。私はperfarceを使用してPerforceの履歴をインポートすることに成功しました(適切な名前です。見たり言うたびに笑ったりします)が、これは一度に1つのブランチでしか機能しません。 P4統合設定の仕組みは次のとおりです。 perforceで「クライアント」を作成します。これは、絶えず更新/チェックアウトする対象の説明の一種です。これは、一度に1つのブランチ(トランクまたはその他)しかアドレス指定できません。 これを実行したら、実行します hg clone p4://<server>/<client_name> .hg / hgrcに移動し、perforceパスの行を追加します。 perforce = p4://<server>/<client_name> Mercurialでコードを正常に処理し、hg pull perforce同期をとって、hg pushチェンジリストをエクスポートします。 私ができることは、ブランチごとにPERFORCEパスを設定し、すべてを同じリポジトリで機能させることです。現在、プッシュは問題ではありませんが、別のブランチから履歴をプルすると、デフォルトのブランチになります。 私は何かをすることができhg pull perforce-R5て、それをmercurialのR5ブランチに着陸させたいと思っています。マージの履歴がなくても、ブランチの履歴を保存できるほど十分に甘いでしょう。 Mercurialを統合できるCVCS用のプラグインは他にもありますが、サブバージョン1には同じ問題があります。 これを行うための簡単な方法はないと思いますが、1つのMercurialマシンでいくつかのフックとスクリプトを使用してプロセスを自動化できれば、それで十分です。 編集:物事を少し明確にするために: PERFORCE トランクはMercurialのデフォルトのブランチにマッピングされています PERFORCE R1ブランチはMercurialのリリース1ブランチにマップする必要があります(R2、R3などでも同じ) Mercurialにperforceからプルするように指示すると(つまりhg pull perforce、「perforce」はPerforceクライアントを指すパスの名前です)、PerforceトランクをMercurialのデフォルトにプルする必要があります。 Mercurialにperforce-R1からプルするように指示すると(つまりhg pull perforce-R1、「perforce-R1」はR1クライアントへのパスです)、Perforce R1ブランチをMercurialの「release-1」ブランチにプルする必要があります。これは私が質問している部分です。

2
Gerrit、git、ブランチ全体のレビュー
現在、Gerrit(これは私が使用する最初のコードレビューツールです)を学んでいます。Gerritは、単一のコミットで構成されるようにレビューされた変更を必要とします。私の機能ブランチには約10のコミットがあります。 メリットを優先する方法は、これらの10個のコミットを1つのコミットに押しつぶすことです。ただし、この方法でコミットがターゲットブランチにマージされる場合、その機能ブランチの内部履歴は失われます。たとえば、git-bisectこれらのコミットを二分するために使用することはできません。私は正しいですか? 私はこの状態について少し心配しています。この選択の理由は何ですか?歴史を失うことなく、Gerritでこれを行う方法はありますか?

3
3 of 9バーコードアルファベットの計算式は何ですか?
背景: 3の9バーコードアルファベット 3/9バーコードの簡単な構文 3 of 9バーコードのアルファベットと数字の背後にある公式は何ですか? たとえば、ASCIIの配置は比較的明確です。数字は33から始まり、大文字は65、小文字は97です。これらの開始点から、任意の数字または文字のASCIIコードを推測できます。各範囲の開始点も32 + 1の倍数です。 バーコードはランダムでシーケンスに欠けているようです。2番目のリンクの構文を使用する場合、これは3 of 9の最初の6文字です。 A 100-01 B 010-01 C 110-00 D 001-01 E 101-00 F 011-00 ここにはパターンはありません。それは何ですか?私はこれらの背後にあるデザイナーの意図したパターンに関心があります。それは、シーケンスに基づいて特定のキャラクターに対して上記のコードを提供できる独自のアルゴリズムを考案している誰かと同じくらいです。 私はこの質問をどこに置くか苦労しました。それは歴史、コンピューターサイエンス、情報科学ですか?StackExchange検索ではここで最も多くのバーコードヒットがあり、探している数式や説明の種類を説明するためにそれをASCIIに具体的に関連付けたかったため、プログラマを選択しました。 更新 好奇心旺盛な方のために、Code 39のすべての基本的な文字の完全なリストを以下に示します。http://jsfiddle.net/b9chris/LnX2e/2/ (ソース行は私のC#バーコードlibから取得されます) 提案されている簡略化された構文は、すべての文字がダッシュ位置のある5ビットの数値であることを暗示している可能性があるため、問題を少し混乱させる可能性があります。最後の4文字には多数のダッシュ(広いギャップ)があります。実際、これらのコードは、ほとんどのシンボルで奇数ビットのほとんどが0に設定されている9ビットの数値と考えるのが最善です。ここでは、それらは9ビットの数値です:http : //jsfiddle.net/b9chris/LnX2e/1/

1
オープンソースプロジェクトに寄稿されたコードを受け入れるための考慮事項
暇なときに「楽しい」プロジェクトに取り組んでいます。私はそれをオープンソースにしてしまうかもしれません、そしてこれは私が誰かがそれに貢献するのに十分気にしているかどうか私が何を考える必要があるのか​​不思議に思わせます。 「コードを提供すると、プロジェクトと同じライセンスを受け入れます」という、ある種の合法的なマンボジャンボが必要ですか(ここでの基準は何ですか?) 寄付されたコードをチェックして盗用されていないことを確認する方法はありますか、またはその責任は寄稿者にありますか? 他に注意すべきこと、私が従うべき標準的/一般的なプラクティス、推奨事項、私が考える必要があることはありますか?

4
「実施計画」とは何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 4年前休業。 私は最近、実装計画文書を作成するタスクを与えられました。見れるものの例を尋ねると、すでにベースとして利用しているプロジェクトプランを見るように言われました。私はまだ何を作成する必要があるかについて少し混乱しています。 誰かが私にそこの良い例や、これが何であるか、そしてもっと重要なことには何が含まれるべきかについての詳細を説明する何かを私に指摘できますか?

1
Microsoft Prismは有効でアクティブですか?
私はこの2日間、Microsoft Prismで多くの記事を読んでいますが、私はまだ確信が持てないのですが、将来はどうなるのでしょうか。バージョン4.1が数か月前にリリースされたばかりであることは知っていますが、Microsoft自身のドキュメント以外に、この件について昨年に書かれたブログ投稿はほとんど見つかりませんでした。そのほとんどは2009-2010です。 それは間違いなく面白そうに見えますが、学習曲線は少し急であるように思われ、近い将来陳腐化する可能性があれば私は乗り出したくありません。誰かこれについて何か洞察がありますか?

1
イベントソーシングはプライムタイムの準備ができていますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 イベントソーシングは、速度、パフォーマンスのスケーラビリティ、透過的な永続性、透過的なライブミラーリングを提供する手段としてLMAXによって普及しました。イベントソーシングと改名される前は、このタイプのアーキテクチャパターンはシステム普及率と呼ばれていましたが、LMAXチームが公開されるまでは、このパターンに慣れていませんでした。 このパターンは多数の本番システムで証明されていますか?したがって、保守的な個人でさえ、このパターンを受け入れる力があると感じる必要がありますか、それともイベントソーシング/システムの普及は、恐れを知らない人のために残されたエキゾチックなパターンですか?

5
モバイルプラットフォームでパブリックメンバー変数を使用してJavaドメインオブジェクト/データ転送オブジェクトを作成するのは慣例ですか?
最近、外部の請負業者によって開発されたモバイルアプリケーションJavaコードのコードレビューを実行しましたが、すべてのドメインオブジェクト/データ転送オブジェクトが次のスタイルで記述されていることに気付きました。 public class Category { public String name; public int id; public String description; public int parentId; } public class EmergencyContact { public long id; public RelationshipType relationshipType; public String medicalProviderType; public Contact contact; public String otherPhone; public String notes; public PersonName personName; } もちろん、これらのメンバーには、コード内のどこからでも直接アクセスできます。これについて尋ねたところ、開発者は、モバイルデバイスはリソースに制限のある環境であるため、これはモバイルプラットフォームで使用される通常のパフォーマンス強化設計パターンであると私たちに話しました。それは意味をなさないようです。パブリックゲッター/セッターを介してプライベートメンバーにアクセスすることは、多くのオーバーヘッドを追加する可能性があるようには見えません。そして、カプセル化の追加の利点は、このコーディングスタイルの利点を上回るようです。 これは一般的に本当ですか?これは、上記の理由により、モバイルプラットフォームで通常行われることですか?すべてのフィードバックを歓迎し、感謝しています-

6
プロジェクトを切り替える/プロジェクトに頻繁に戻る場合のベストプラクティスは何ですか?
私の仕事の本質は、数週間ごとにプロジェクトを切り替えなければならないことです。私の生産性に対する最大の障害の1つは、関連するすべてのコードを一定期間表示しなかった後、再び「頭の中で」元に戻すための立ち上げ時間であることがわかりました。これは、より短い休憩/より長い休憩では、より小さな範囲で発生します。 明らかに、優れた設計、ドキュメント、コメント、および物理構造がすべてこれに役立ちます(プロジェクトの切り替えをできるだけ頻繁に行うことは言うまでもありません)。しかし、私が見逃している可能性のあるプラクティス/ツールがあるかどうか疑問に思っています。これを改善するための具体的な方法は何ですか?

2
より大きなデータセットの感情分析アルゴリズムを最適化する方法
私は感情分析の初心者で、ベイジアンオピニオンマイニングのための優れたリソースと、それを自己改善させる方法を見つけました。しかし、最適な分析が提供されたデータセットに依存しているかどうか、そして自己改善は既知のパターンをデータセットに追加することになるので(私の理解)、アプリケーションがやがて巨大なデータセットで過負荷にならないのではないかと思っていました。より多くのパターンが毎日データセットに追加される時間ですか?アプリケーションをスケーラブルにするための適切なアプローチは何ですか(適切な場所で適切な用語を使用している場合)。

6
専門家ではない、または失礼なことなく、パスワードへのアクセスを顧客に与えることを拒否する方法は?
あなたが顧客のためのウェブサイトを作成しているとしましょう。このWebサイトには独自の登録があります(OpenIDと組み合わせるかどうか)。ユーザーは、ユーザーがおそらくすべてのWebサイトで同じパスワードを使用していることを前提として、ユーザーが選択しているパスワードを確認できるようにするように求めています。 一般的に言って、 パスワードはプレーンテキストではなくハッシュ化されているため、パスワードを取得することは不可能です。 または、私がそれを行う権利がないこと、または管理者が追加の詳細情報を提供せずにユーザーのパスワードを表示できないようにする必要があること。 最初のものは誤りです:パスワードがハッシュされていても、ログオンごとにパスワードをキャッチして保存することが可能です(たとえば、ログオンに成功または失敗したユーザーだけでなく、パスワード)。二つ目は失礼です。 専門家でも失礼でもないで、この要求を拒否する方法は?


5
ユーザーが作成したドキュメントをバージョン管理する方法
本質的にXML文字列としてデータベースに保存されるオンラインドキュメントがあります。 ユーザーのためにドキュメントのバージョン管理を実装する方法を考えています。そのユーザーはドキュメントの以前のバージョンに戻ることができます。 更新私の場合、何十万ものユーザーがいるWebアプリケーションです。ユーザーは無制限のドキュメントを保存できます。ドキュメントのXMLは、MySQLのBlobフィールドに格納されるため、小さくはありません。結局、私はどういうわけか限界を制限する必要がありますが、それはすべて一緒に異なるトピックです。 これにアプローチする標準的な方法はありますか?バージョン間の違いのみを保存する必要がありますか?他に考慮すべきことは何ですか?

6
外部構成ファイルはアンチパターンと見なされますか?
多くの場合、私はアプリケーションが明らかに破損している状況にありましたが、外部構成ファイルに欠陥があることがわかりました。通常、これは間違ったファイルが存在するか、不正なデータが含まれていることが原因です。 外部ユーザー/プロセスがアプリケーションのランタイム特性を変更できるようにするより良い方法はありますか、またはこれが問題の最もよく知られている解決策ですか? Unix /etc やJavaのJNDIなどに焦点を当てるのではなく、一般的なケースについての議論が欲しいです。

6
C ++の優れた知識[終了]
ここで何が質問されているのかを理解することは困難です。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 8年前に閉鎖。 私は最近、「C ++に関する優れた知識」が要件の1つであるソフトウェア会社の求人ページを見ました。 今、私はこれがC ++の専門知識として何となく意味することを知っていますが、専門知識はどこに正確に適合するのでしょうか。特定のドメインの内外を把握している、言語での8年間のプログラミング(たとえば、)の知識と経験ですか。または、1つ以上のドメインへのよりブラッシュアップされた表面的なアプローチであり、同時に言語全体のより詳細な理解ですか? たとえば、システムドライバーとゲームエンジンを同時に作成する専門家になることはできません。では、この優れた知識や専門知識はどこに当てはまるのでしょうか?
8 c++  experience 

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