ソフトウェア工学

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

8
正規表現のコメント
正規表現にコメントするための一般的な慣行はありますか:正規表現の別の部分を参照するインラインコメントまたはすべての表現に対する一般的なコメントですか?

3
Clojureでネストされた速記関数を記述できないのはなぜですか?
今日、ネストされた速記関数を使用してClojure式を評価しようとしましたが、私はそれを許可しませんでした。 式は次のとおりです。 (#(+ % (#(+ % (* % %)) %)) 5) ; sorry for the eye bleed 出力は次のとおりです。 IllegalStateException Nested #()s are not allowed clojure.lang.LispReader$FnReader.invoke (LispReader.java:630) ...and a bunch of other garbage

4
なぜWARはセッション情報を共有できないのですか?
複数の開発者がこの問題の解決策を探しているのを見てきました:異なるWARからのセッション情報へのアクセス(同じEAR内であっても)-ここにいくつかのサンプルがあります:Tomcatの異なるアプリケーション間でセッション状態を共有する方法はありますか?、別のWebアプリケーションのアクセスセッション、異なるWARファイル、共有リソース、Tomcat:2つのアプリケーション間でデータを共有する方法 、TomcatでcrossContext属性は何をしますか?セッション共有を有効にしますか?等々... 私が検索したすべてから、コンテナに応じていくつかの特定の解決策がありますが、それはどういうわけか「仕様に反しています」。また、答えを見つけることができずにJava EE仕様を調べました。 一部の開発者はWebアプリケーション間のカップリングについて話しますが、私は反対する傾向があります。カップリングしない場合、同じEAR内にWARを保持する理由は何ですか?たとえば、EJBはローカルにアクセスできます(同じEAR内の別のEJB JAR内にある場合でも)。 より具体的には、私のWARの1つが認証と許可を処理し、この情報を(同じEAR内の)他のWARと共有したいと思います。以前、WARをJARとしてパッケージ化し、それらを単一のWARプロジェクト(WEB-INF / lib)に入れることで、同様の問題を回避することができました。しかし、私はこのソリューションが好きではありません(サーブレットの命名などに多大な労力が必要です)。 そして、最初の(そして最も重要な)質問に答えるソリューションはありません:なぜWARはセッション情報を共有できないのですか?

2
機械学習を学習するには、どのような数学スキルが必要ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 機械学習に関するこのオンラインコースに興味があります。現状では私の数学は非常に初歩的であり、基本的にカーンアカデミーで数学をゼロから学んでいます。プログラミングに関しては、かなりの量の経験があり、全体的な理解は良好です。私の質問は、機械学習を効果的に理解して活用するには、どの数学スキルが必要ですか?

5
css-ユニバーサル「*」セレクター対htmlまたはbodyセレクターを使用しますか?
bodyタグへのスタイルの適用はページ全体に適用されるため、 body { font-family: Verdana } ページ全体に適用されます。これは次の方法でも実行できます * {font-family: Verdana} これはすべての要素に適用されるため、同じ効果があるようです。 最初の例ではスタイルがページ全体の1つのタグに適用され、2番目の例では各HTML要素にフォントが適用されるという原則を理解しています。私が求めているのは、それを行う際の実際的な違いは何か、意味するものは何か、そして他のものを使用することにつながる理由、状況、またはベストプラクティスは何かということです。 副作用の1つは確かに速度(+1ロブ)です。機能の面でどちらかを選択する実際の理由に最も興味があります。

2
ResharperはVisual Studio 2012の重要な改善点です[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 現在、VS 2008 ProでResharperを使用しています。VSの基本的なリファクタリング/ショートカットの一部が不足しているため、生産性を高めることがほぼ必要であると感じています。 しかし、VS 2008以来、Resharperとほぼ同じくらい良い改善がなされているかどうか疑問に思っていましたか?

6
if / elseまたはブール式によるブール代入のどちらがより保守性が高いですか?
どちらがより保守性が高いと考えられますか? if (a == b) c = true; else c = false; または c = (a == b); Code Completeで調べてみましたが、答えが見つかりません。 最初のほうが読みやすいと思います(文字通り大声で読むことができます)。2番目の方法は確かに理にかなっており、コードを削減しますが、C#開発者にとってそれが保守可能であるかどうかはわかりません(たとえば、このイディオムはPythonでもっと見られると思います)。

4
列挙型とテーブルの同期を保つ
データベースにデータを投稿するプログラムを作成していますが、よく知っているパターンに出くわしました。最も可能性の高い(非常に可能性の高い)固定値の列挙型の短いテーブル。次のテーブルが呼び出されたとしますStatus: 状態 ID説明 -------------- 0未処理 1保留中 2処理済み 3エラー 私のプログラムでは、別のテーブルのステータスIDを決定するか、新しいステータスIDでレコードを更新する必要があります。 ステータスIDを列挙型でハードコードでき、誰もデータベースを変更しないことを願っています。または、説明に基づいて値をプリフェッチすることもできます(したがって、代わりにハードコーディングします)。 これら2つの列挙型とテーブルの同期を維持するための正しいアプローチは何でしょうか?
11 database  enum 

2
拡張スクリプトはサンドボックスで実行する必要がありますか?
特に、これはlua(luajit-2.0)で記述されたゲーム拡張機能に関するものです。これらのスクリプトで実行できることを制限する必要があるかどうかを検討していましたが、おそらくすべきではないという結論に達しました。 正しくするのは難しいです。馬鹿げているように聞こえますが、私のサンドボックスがとにかく漏れやすくなる可能性があります。 私が考えることができる唯一の利点は、サードパーティのスクリプトを実行するときにユーザーにある程度の安心感を与えることです。 欠点は、拡張機能の作成者にとって非常に迷惑なことです。つまり、今のところ、私自身です(ゲームコンテンツはほとんどスクリプト化されます)。 実際にプレゼンテーションを行う前にこれを尋ねる理由は、サンドボックスを早期に追加するのは簡単ですが、自分自身にも前述の迷惑な制限を課すからです。ただし、最初にそれを続行し、後でサンドボックスが必要になったと判断した場合、問題が発生します(既に存在するスクリプトを書き直すか、何らかの信頼管理システムを導入する必要がありますそれは価値があるよりも多くのトラブルのようです)。

3
モックコンクリートクラス-非推奨
私は、「Growing Object-Oriented Software」の本の抜粋を読んだところです。これは、具象クラスのモックが推奨されない理由を説明しています。 以下に、MusicCentreクラスの単体テストのサンプルコードを示します。 public class MusicCentreTest { @Test public void startsCdPlayerAtTimeRequested() { final MutableTime scheduledTime = new MutableTime(); CdPlayer player = new CdPlayer() { @Override public void scheduleToStartAt(Time startTime) { scheduledTime.set(startTime); } } MusicCentre centre = new MusicCentre(player); centre.startMediaAt(LATER); assertEquals(LATER, scheduledTime.get()); } } そして彼の最初の説明: このアプローチの問題は、オブジェクト間の関係が暗黙的に残されることです。モックオブジェクトを使用したテスト駆動開発の目的は、オブジェクト間の関係を発見することであることを明確にしたことを願っています。サブクラスを作成する場合、ドメインコードにはそのような関係を表示するものはなく、オブジェクトのメソッドだけです。これにより、この関係をサポートするサービスが他の場所に関連しているかどうかを確認するのが難しくなり、次回クラスで作業するときに分析をやり直す必要があります。 彼が言うとき、彼が何を意味するのか正確に理解することはできません。 これにより、この関係をサポートするサービスが他の場所に関連しているかどうかを確認するのが難しくなり、次回クラスで作業するときに分析をやり直す必要があります。 サービスはMusicCentreのメソッドに対応することを理解していますstartMediaAt。 「他の場所」とはどういう意味ですか? …

5
関数が純粋かどうかを計算する
ウィキペディアによると: コンピュータープログラミングでは、関数に関するこれらのステートメントの両方が成立する場合、関数は純粋であると説明できます。関数は、同じ引数値が与えられると常に同じ結果値を評価します。関数の結果値は、プログラムの実行が進むにつれて、またはプログラムの異なる実行間で変化する可能性のある隠された情報や状態に依存することも、I / Oデバイスからの外部入力に依存することもできません。結果を評価しても、可変オブジェクトの変更やI / Oデバイスへの出力など、意味的に観察可能な副作用や出力は発生しません。 関数が純粋であるかどうかを計算する関数を書くことができるかどうか疑問に思っています。JavaScriptのコード例: function sum(a,b) { return a+b; } function say(x){ console.log(x); } isPure(sum) // True isPure(say) // False

5
オープンソースソフトウェアプロジェクトで要件はどのように決定されますか?
企業の社内ソフトウェア開発では、一般的な要件を正式なプロセスで決定し、多くの要件ドキュメントを作成します。オープンソースソフトウェア開発では、これはしばしば存在しないようです。したがって、私の質問は次のとおりです。オープンソースソフトウェアプロジェクトで要件はどのように決定されますか 「要件の決定」とは、単に「特定のソフトウェアの一部としてどの機能などを開発する必要があるかを特定する」ことを意味します。

8
JavaはC / C ++と比較してパフォーマンスを「微調整」するのがはるかに難しいですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 JVMの「魔法」は、プログラマーがJavaのマイクロ最適化に与える影響を妨げますか?私は最近C ++で読んだことがありますが、データメンバーの順序が最適化を提供できる場合があります(マイクロ秒環境で許可されます)。 まともなアルゴリズムがより大きな速度向上を提供することを感謝しますが、正しいアルゴリズムを取得すると、JVM制御のためにJavaを微調整するのが難しくなりますか? そうでない場合は、Javaで使用できるトリックの例を(単純なコンパイラフラグのほかに)挙げてください。

4
議会地区を決定するためのAPIはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 ユーザーが提供している住所に基づいて議会地区を決定したいと考えています。これにより、ユーザーが自分で検索する必要がなくなります。 この種のAPIは存在しますか? 注意 見つけようとする試みを通して、私はこれらに出会っただけです: http://www.govtrack.us/developers/api (ただし、住所または郵便番号の送信方法がわからない) 次のリソースがAPIで利用可能です ... 1973年以降の米国議会(第93回議会)での法案と決議。 ...参加と撤回の日付を含む、共催を示す(請求書、個人)ペア。 ...建国以来の議員と米国大統領。 ...議会の議員と米国大統領が任期を務める。各任期は選挙に対応します。つまり、下院の各任期は2年(1回の「議会」)、大統領として4年、上院では6年(3回の「議会」)をカバーします。 ... 1789年以来、米国議会での投票の投票。人々の投票方法は、Vote_voter APIからアクセスできます。 ... 1789年以来、米国議会でのロールコール投票での投票方法。投票APIを参照してください。投票フィールドでフィルタリングして、特定の投票の結果を取得します... http://www.opencongress.org/api (地区ではなく議会情報を検索する方法のようです) このAPIは、OpenCongressのすべてのデータへの構造化されたアクセス、公式請求書情報からニュースやブログの報道、請求書に対するユーザー生成の票など、プログラマーに構造化されたアクセスを提供します。 このAPIはデフォルトでXMLを返します。すべてのクエリはJSONも返すことができます... https://groups.google.com/forum/?fromgroups=#!topic/opendems-discuss/CeKyi_aANaE (同様の質問、解決策なし) 私はOpen Demsに目を通し、この時点で何が公開され、何が公開されていないかを見てきました。私は海外の民主党員と仕事をしており、彼らのサイトに研究室の資料を使用することに興味があります。 私はすぐにPrecinct APIに目を通しました。これは、必要なものよりも多くの機能を備えています。理想的なリソースは、住所を少なくともCDに変換する方法です(州の地区データを取得することも良いでしょう)。これにより、先月のNY26レースのようなレースでDAのメンバーシップが違いを生みやすくなります。 。 更新 私はgovtrack.usウェブサイトのソースを見ていますが、「doGeoCode」機能が役に立つかもしれません。 view-source:http://www.govtrack.us/congress/members 誰も提案がなければ、私は彼らがしていることをやめようとします。
11 api 

3
小規模チーム向けのGitワークフロー
私は、小さなチームで実装するgitワークフローに取り組んでいます。ワークフローのコアアイデア: すべてのチームメンバーが書き込み可能な共有プロジェクトマスターがあります すべての開発は機能ブランチでのみ行われます 機能ブランチは、ブランチ作成者以外のチームメンバーによってコードレビューされます 機能ブランチは最終的に共有マスターにマージされ、サイクルが再び開始されます この記事では、このサイクルの手順について詳しく説明します。 https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md これは理にかなっていますか、何か不足していますか?

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