ソフトウェア工学

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

1
Mercuryプログラミング言語は現場で使用されていますか?
私は関数型および論理型プログラミングに強い関心があり、Mercuryはこの2つをうまく融合させているようです。業界で使用されていますか?私はその楽しみのためだけに言語を学びたいと思っていますが、実用的で雇用可能な手段があればいいと思います。言語のウェブサイトでの産業での使用例についてはあまり見つけることができませんでした。

3
WCFからJava Webサービスへの相互運用には、驚くほど問題があるようです。良いリソースはありますか?
最近のプロジェクトでは、当社の.Netベースの開発チームは世界中のJavaベースのWebサービスのホスト全体と統合することを任されており、驚くべきことに(もちろん、これ以上驚くことはありません)大量の問題がありましたWCFによって生成されたXMLはJavaサービスによって受け入れられないためです。 また、我々はヤロンネーブの優れたWCFのブログから、いくつかの良いヒントを得ている多くの良い情報が被写体に見つけることが本当に存在していないようですhttp://webservices20.blogspot.com、また、MSDN WCFのフォーラムで はhttp: //social.msdn.microsoft.com/Forums/en-US/wcf/threads。 ここに本当に自分がこれを倒したと感じ、主題に関する決定的なリソースを知っている人はいますか?書籍、ブログ、またはWebサイトに関するヒントに興味があります。 編集: 2つのベストアンサーのそれぞれにいくつかの価値があるため、このスレッドで受け入れられた回答を設定するのに 困惑しています。 2.しかし、WCF Express Interop Bindings 1.0も非常に賢明なヒントでした。
13 java  wcf 

9
Webサイトへの登録ユーザー数の表示
私はマフィアウォーズのようなオンラインゲームを構築しています。登録ユーザーの数をホームページに表示することを考えていましたが、その後考えました: 「登録ユーザーの合計数が5人であることが新しいユーザーにわかったらどうなりますか?」:D それは私の成長中のゲームにとって恥ずかしいことです。それから別の考えが来ました: 「代わりに500を表示しないのはなぜですか?!」;) もちろん、実際にプレイして他のプレーヤーとやり取りを始めない限り、実際に500人のユーザーが私のWebサイトに登録されているかどうかは誰にもわかりません。 しかし、私はこれが倫理的ではないと感じています。これが私のウェブサイトに否定的な宣伝を生成する場合はどうなりますか?!! 番号を偽造する必要があると思いますか?または正直に表示する必要がありますか?または、実際のアカウントが1000になるまで待ってから番号の表示を開始する必要がありますか そして最も重要なことは、これは合法ですか?!:D

4
修正したと思うバグを処理する方法
いくつかの種類のバグがあり、それらは再現するのが非常に難しく、ごくまれに、ランダムに発生します。考えられる原因を見つけて修正し、プログラムをテストしても、バグを再現できないことがあります。ただし、バグを確実に再現することは不可能であり、まれにしか発生しなかったため、バグトラッカーでこれをどのように示すことができますか?それを行う一般的な方法は何ですか? statusを固定に設定すると、solution完全に固定されたものになりますか? 「固定」と「開く」を設定しstatusてsolution、テスターに​​「おそらく修正されているが、確認するにはもっと注意が必要」であることを示すのは一般的な習慣ですか? 編集:ほとんどの(すべてではないにしても)バグトラッカーには、バグのステータスに関する2つのプロパティがあります。名前は同じではない可能性があります。ことでstatus私が意味する、固定、割り当てられ、新しいなど、閉じられ、そしてによってsolution私が意味する、(新)オープン固定、バグ、複製、再現性のない、解けないなど、

1
GithubでフォークするときにGPLに準拠するにはどうすればよいですか?
私は最近、Githubでプロジェクトをフォークし、いくつかの変更を加え、それらをフォークされたリポジトリにプッシュし、元の開発者に変更をプルするように依頼しました。(これがGithubでの貢献の好ましい方法だと思います。)プロジェクトはGPLv3の下でライセンスされています。 私は、コードに加えた変更の著者および著作権者です。また、元の著者が設定したライセンスに準拠している限り、変更されたコード(つまり、元のコードと変更をフォークにプッシュして行った変更の組み合わせ)を公開することもできます。 今、GPLで次の要件に遭遇しました。 作品には、あなたがそれを変更したことを示す顕著な通知と、関連する日付を記載する必要があります。 変更をGithubにプッシュすることを法的に許可される前に、実際のコーディング以外の作業が必要なようです。この作業には何が伴いますか?上記の要件を遵守するにはどうすればよいですか?(変更されたソースファイルに追加の著作権表示を追加しますか?Contributorsファイルを作成して追加しますか?またはコミットが所有権を十分に示しているという事実はありますか?)
13 licensing  gpl  github 

7
シングルトン、抽象クラス、インターフェースの役割は何ですか?
私はC ++でOOPを勉強しており、これら3つの概念の定義を知っていても、それをいつどのように使用するかを本当に理解できません。 このクラスを例に使用してみましょう。 class Person{ private: string name; int age; public: Person(string p1, int p2){this->name=p1; this->age=p2;} ~Person(){} void set_name (string parameter){this->name=parameter;} void set_age (int parameter){this->age=parameter;} string get_name (){return this->name;} int get_age (){return this->age;} }; 1. シングルトン クラスが1つのオブジェクトのみを機能させるという制限はどのように機能しますか? CANあなたは持っているだろう、クラス設計ONLY 2のインスタンスを?それとも3? WHEN /必要な推奨シングルトンを使用していますか?それは良い習慣ですか? 2. 抽象クラス 私の知る限り、純粋な仮想関数が1つしかない場合、クラスは抽象になります。だから、追加 virtual void print ()=0; しますよね? なぜあなたは、そのオブジェクト必要とされていないクラスが必要でしょうか? …

4
私の同僚は彼が働くことを理解していません。何をすべきか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私は同僚が作成したライブラリで非常に不明瞭なバグをデバッグするのに3日間費やしましたが、このバグはほとんど発生しません。結局のところ、このバグはロックなしのオブジェクトへのクロススレッドアクセスが原因で発生することがわかりました。実際、これはこの種の最初のバグではなく、以前にも同様のバグがありました。彼はユニットテストを実行するだけで、何かが失敗した場合はどこかにロックをかけます。そして、何も失敗しなければ、うーん、彼のコードは完璧です。彼はスレッド化の安全性について何も考えていないようです。まだ表面化していない類似のバグがたくさんあることは100%確信しています。PMもスレッド処理を理解していないようです。 問題は、彼が私よりもずっと会社で働いていることです。とにかく、「このエリアではこの男は無能だ」と言うことはできません。なぜなら、これは常に「悪いチームプレーヤー」などとして表示されるからです。

3
階層化アーキテクチャでの検証と承認
「検証が階層化アーキテクチャのどこに属しているのかを尋ねる別の質問ではありませんか?!?」ええ、はい、しかし、これがこの問題に対する少し異なる見解になることを願っています。 私は、検証は多くの形式を取り、コンテキストベースであり、アーキテクチャの各レベルで異なると固く信じています。これが投稿の基礎です。各レイヤーで実行される検証のタイプを識別するのに役立ちます。また、よくある質問は、承認チェックの場所です。 サンプルシナリオは、ケータリングビジネスのアプリケーションからのものです。日中定期的に、運転手は、トラックを現場から現場へ移動する間に蓄積した余分な現金をオフィスに引き入れることができます。このアプリケーションでは、ユーザーはドライバーのIDと金額を収集することにより、「キャッシュドロップ」を記録できます。関連するレイヤーを説明するスケルトンコードを次に示します。 public class CashDropApi // This is in the Service Facade Layer { [WebInvoke(Method = "POST")] public void AddCashDrop(NewCashDropContract contract) { // 1 Service.AddCashDrop(contract.Amount, contract.DriverId); } } public class CashDropService // This is the Application Service in the Domain Layer { public void AddCashDrop(Decimal amount, Int32 driverId) { …

3
1つのメソッドが他のメソッドをオーバーロードするか、両方のメソッドが「オーバーロードされる」か
このメソッドを作成する場合 public void foo() そして、私はこのようなオーバーロードされたバージョンを作成します public void foo( string bar ) 2番目の関数が最初の関数をオーバーロードすると言いますか、それとも両方のメソッドが等しく「オーバーロード」されるのでしょうか? これは、別の関数によってオーバーロードされている基本型関数があることを意味します(継承に似ていますが、実際にはそうではありません)。 あるメソッドが「別のメソッドをオーバーロードする」ことができると仮定すると、「オーバーローダー」や「オーバーロード」などの用語が含まれている場合、それがまったく単語である場合も意味します。しかし、特にいくつかのオーバーロードが発生する可能性があるため、それはまったく正しくありません。 オーバーロードされたメソッドを作成するプロセスを書き留めたいと思ったときに、この質問に答えました。 例: 私は過負荷です foo 私はオーバーロードをしていfooてfoo( string bar ) オーバーロードされたメソッドを作成しています fooをオーバーロードしています ええ、この種のことで考えさせられました。どうしたらいいのかわかりません。オンラインでの関数のオーバーロードの説明は数千ではないにしても数百ありますが、一見するとこれに対処するものが見つかりませんでした。

6
クリーンなコードが開発を改善したことを説得力をもって実証する事例研究はありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 9か月前に閉鎖されました。 私はプログラマーとしての最初の本当の仕事をしています。私が見るのは単なる「泥の大玉」コードです(有用なコメントもありません)が、きれいなコードをやりたいです。仕方。 私は、クリーンコード(クリーンコードとは何かについてのさまざまな定義がここにあります)の使用により開発と保守性が改善された研究事例を探しています。

6
有限状態マシンの故障から回復する方法は?
私の質問は非常に科学的に思えるかもしれませんが、よくある問題だと思います。経験豊富な開発者やプログラマーは、タイトルで言及した問題を回避するためのアドバイスを希望します。ところで、私が以下で説明するのは、iOSプロジェクトで積極的に解決しようとしている真の問題です。 有限状態マシンとは、これを意味します>いくつかのボタン、そのUIに関連するいくつかのセッション状態、およびこのUIが表すものがあるUIがあり、UIに値が部分的に表示されるデータがあり、いくつかの外部トリガーを受信して​​処理します(センサーからのコールバックで表されます)。状態図を作成して、そのUIとアプリケーションで望ましい、必要なシナリオをより適切にマップしました。ゆっくりとコードを実装するにつれて、アプリはより適切に動作し始めます。ただし、十分な堅牢性があるとは確信がありません。私の疑問は、自分自身の思考と実装プロセスが進行するのを見ることです。私はすべてをカバーしていると確信していましたが、UIでいくつかのブルートテストを行うだけで十分であり、動作にまだギャップがあることにすぐに気付きました..それらにパッチを適用しました。しかしながら、各コンポーネントは、他のコンポーネントからの入力、ユーザーまたは特定の外部ソースからの特定の入力に基づいて動作し、一連のイベント、状態変更などをトリガーします。複数のコンポーネントがあり、それぞれが入力で受信したトリガーのように動作します->トリガーとその送信者が分析->分析に基づいて何か(メッセージ、状態変化)を出力します 問題は、これは完全に自己完結型ではなく、私のコンポーネント(データベース項目、セッション状態、ボタンの状態)...イベントチェーンの範囲外で変更、影響、削除、またはその他の方法で変更される可能性があることです望ましいシナリオ。(電話がクラッシュし、バッテリーが突然空になります)これにより、システムが無効になり、システムが回復できなくなる可能性があります。アップルストアにある競合他社のアプリの多くで、これが見られます(これは問題だと人々は認識していませんが)、顧客は次のように書きます>「3つのドキュメントを追加しました。たとえそれらを見たとしても。」または「毎日ビデオを録画しましたが、あまりにログの多いビデオを録画した後、それらのキャプションをオフにすることはできません。キャプションのボタンはありません」 これらは単なる短縮例であり、顧客はしばしばそれをより詳細に説明します。それらに記載されている説明と動作から、特定のアプリにFSMの内訳があると思います。 究極の問題は、これをどのように回避でき、システムがそれ自体をブロックするのを防ぐ方法ですか? 編集>私は電話で1つのviewcontrollerのビューのコンテキストで話している、私はアプリケーションの一部を意味します。MVCパターンを理解し、機能ごとに個別のモジュールを用意しています。説明するものはすべて、UIの1つのキャンバスに関連しています。

9
練習しないとプログラミングの知識は減りますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私は初心者プログラマーです。C、C ++、Python、Javaなどの言語を勉強しています(主にC ++に焦点を当てています)。私はあなたが「若くて経験の浅い人」と呼んでいますが、そうでないと主張することはできないからです。 学生として、プログラミング以外にも多くの問題があります。プログラミングをできる限り頻繁に練習しています。特に、先生がクラスの他の部分よりもはるかに多くのエクササイズを提供しているため(非常に低いレベルです)、多くの場合、学校のプロジェクトやスポーツなどの他のことを何週間も費やしています。旅行、プログラミング以外のもの。 誤解しないでください、私はプログラミングが大好きです。私は、機能的なコードを作成し、ボタンを押すだけでプログラムが実行されるのを見て、できる限り多くのことを学ぶのが大好きです。事は、私はそれのための多くの時間がないだけです。 質問にまっすぐになります。あなたのプログラミングの知識は時間の経過とともに低下し、練習しませんか?「どのくらいの時間を意味しますか?」と尋ねることができます。特定の時間を意味するわけではありませんが、参考までに、例として2か月から1年かかることもあります。 知識とは、構文から言語機能までを意味します。

5
コードレビューでコメントする最良の方法は何ですか?
私のチームは、誰かが何かをチェックインするたびに、コードレビューを開始するためにるつぼ/魚眼レンズを使用し始めました。私たちは3人しかいません。 私の質問は、問題が発生したコード行にコメントを残すにはどうすればよいですか?研磨剤のように見えることなく、自分の主張を伝えたい。 私は高い馬に乗っているように見えて、「私はこのようにやっている...」と言い たくありません。また、私は権威を持って、 「これはこの方法で行うべきです...」 明確にする: これは本当に優れたリソースである何、私は上のコメントに見てすべきこと:コードレビューの主観的または客観的(定量化)ですか?、しかし、私はそれにコメントする方法を探しています。

4
ラテンアルファベットの視覚的および聴覚的に明確なサブセット?
コード「5SBDO0」が記載されたカードを誰かに渡すと想像してください。 一部のフォントでは、文字「S」を数字の5や数字の0や文字「O」と視覚的に区別するのが困難です。 コードを大声で読むと、「B」を「D」と区別するのが難しい場合があります。「Bは男の子のように」、「Dは犬のように」と言うか、代わりに「表音アルファベット」を使用します。 ほとんどの場合、視覚的に曖昧に見えず、読み上げられたときに曖昧に聞こえない文字と数字の最大のサブセットは何ですか? バックグラウンド: できるだけ簡単に通信しながら、できるだけ多くの値をエンコードできる短い文字列を生成する必要があります。 6文字の文字列「123456」があるとします。10進数では、10 ^ 6値をエンコードできます。 16進数の「1B23DF」では、16個の ^ 6値を同じ文字数でエンコードできますが、読み上げたときにあいまいに聞こえることがあります。(「B」と「D」) 同様に、N文字の文字列の場合、(アルファベットのサイズ)^ Nの値を取得します。 文字列の長さは約6文字に制限されています。これは、人間の作業メモリ容量の容量内に簡単に収まるようにするためです。 したがって、エンコード可能な値の最大数を見つけるには、文字/数字の最大の明確なセットを見つける必要があります。GZの文字や一般的な句読点を考慮できない理由はありませんが、「GはAのように聞こえますか?」、「GはBのように聞こえますか?」、「 GはC "のように聞こえます。私たちが知っているように、これはO(n ^ 2)行うべき言語作業=)...
13 design 

1
PHPに静的プロパティをオーバーロードする機能がないのはなぜですか?
イントロ PHPでは、クラスでマジックメソッドを宣言することにより、メソッド呼び出しとプロパティアクセスをオーバーロードできます。これにより、次のようなコードが有効になります。 class Foo { public function __get($name) { return 42; } } $foo = new Foo; echo $foo->missingProperty; // prints "42" インスタンスのプロパティとメソッドのオーバーロードとは別に、PHP 5.3.0以降でstaticは、マジックメソッドをオーバーライドすることでメソッド呼び出しをオーバーロードすることもできます__callStatic。 何かが足りない 利用可能な機能から目立って欠けているのは、静的プロパティをオーバーロードする機能です。たとえば: echo Foo::$missingProperty; // fatal error: access to undeclared static property この制限は明確に文書化されています。 プロパティのオーバーロードは、オブジェクトコンテキストでのみ機能します。これらのマジックメソッドは、静的コンテキストではトリガーされません。したがって、これらのメソッドは宣言しないでくださいstatic。PHP 5.3.0以降、マジックオーバーロードメソッドの1つが宣言されている場合、警告が発行されstaticます。 しかし、なぜ? 私の質問は: この機能が現在サポートされていないという技術的な理由はありますか?それとも、(震え)政治的な理由ですか? 過去にこの機能を追加する試みが中止されたことはありますか? 最も重要なことは、質問は「ユーザーランドPHPで動的な静的プロパティをどのように設定できますか?」ではありません。とはいえ__callStatic、共有したいことに基づいて特にかわいい実装を知っている場合は、ぜひ共有してください。

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