ソフトウェア工学

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

8
プログラマが自分のライブラリを宣伝することは倫理的ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 つい最近、私は独自のオープンソースJavaScriptライブラリの保守を開始しました。かなり特定のニーズを解決するために作成しましたが、ライブラリを使用して(全体/一部で)解決できる質問をかなり定期的に確認しています。 回答を投稿し、ライブラリを管理していることを常に含めてください。 オープンソースプロジェクトの場合、これはそれほど大したことではないかもしれませんが、どこで線引きしますか?(例:商用製品)プログラマが自分のライブラリを宣伝することは倫理的ですか?そうでないときは?

8
MSサイトで何かを見つけるのが難しいのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私はいつもこの質問を心に抱いていましたが、これについての説明をいただければ幸いです。私だけですか、それともMSサイトで何かを見つけるのが難しいのと同じように感じていますか?たとえば、.NETフレームワークをダウンロードする必要があるたびに、Googleで検索する必要があります。ダウンロードできるものがわからず、ダウンロードのカテゴリもありません。あなたは単に検索フィールドに残されています。ファイルの最新バージョンをダウンロードしたかどうかはわかりません。悲劇的なことに、競合他社のGoogleに頼ってサイトで何かを見つける必要があります。私は彼らが大企業であることを知っています。 しかし、組織化された方法で情報を公開するのは本当に難しいですか?

10
自明なソフトウェアと自明でないソフトウェアを区別する方法 [閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 それでは、プログラムを本当に簡単にするものは何でしょうか? 「些細なソフトウェア」がプログラミングの議論で頻繁に使用されていない限り。「何かが重要なソフトウェアであるために重要なのか」または「何かが非常に重要になったために重要なソフトウェアであるのか」を本当に理解できないという意味で、私はそれを非常にあいまいにしています。 たとえば、ユニットテストの問題については、「ユニットテストが必要な場合を除いて」とよく耳にします。
11 complexity 

8
どのオンライン/ホスト型バグ追跡ツールを自分の仕事やプロジェクトに使用していますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私は長年にわたって多くのサイドプロジェクトを蓄積してきましたが、時間をかけて徐々に改善しています。1つに戻るたびに、デザイン、最近のバグ、次の機能などを含むテキストファイルを読むのに時間がかかります。 もっと正式なものに切り替えたいと思っています。理想的には、これはフル機能のオンラインのバグ追跡システムであり、これにより、自分のプロジェクトの無料またはほぼ無料のバグ追跡が可能になります。また、理想的には、これはプライベートな方法で実行可能です-私の側のプロジェクトと私がそれらのいくつかで作った混乱を誰も見てほしくありません。

7
Cプログラマは何を知っているべきですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 すべてのまともなCプログラマーが知っておくべき/知っておくべき概念/技術/言語機能は何ですか(一般的なソフトウェアエンジニアリングなどを除き、C固有のもののみに焦点を合わせます)。私のC知識の可能性のあるギャップを埋めることができるように知りたいです。

4
ルールエンジンの使用は、アプリケーションの設計、実装、およびパフォーマンスにどのように影響しますか?
ルールエンジンの機能に興味があります。 ビジネス駆動型ロジックの起動と反復 開発者ではなく、これらのルールの実際の変更を「ビジネスユーザー」に実行させる 一般的なビジネスルールを理解する また、ルールエンジンの使用はアプリケーションの品質に影響しますか? 1台のマシンのセットアップ、アーキテクチャ、数千台のマシンを使用する多層クラウドベースの分散アーキテクチャに展開する場合、ルールエンジンの使用は変わりますか?どう違いますか?

7
実際に構築しているものよりも、何かの構築方法に関心があることを心配することはありますか?
プログラマーとして、私は自分のツール、他の人々のコード、私のコード、一般的な世界に固有の厄介な迷惑を持っています。常に改善したいです。だから私はリファクタリングし、最新のテクニックを常に把握しています。私はパターンを学ぼうとしますが、車輪を再発明しないようにフレームワークを使用しようとします。絞り込めるパターンの量で靴下を吹き飛ばす技術仕様を書くことができます。 しかし、最近は、成功するソフトウェアを実際に実装する方法よりも、使用しているツールについて実際によく知っていると感じています。 ヒューマンファクターのスキルが不足しているように感じます。成功するソフトウェアエンジニアになるには、最もクールなフレームワークを知る以上のことが必要だと思います。次のスキルセットも必要だと思います。 インタラクションデザイン ユーザー体験 マーケティング 一緒に仕事をしたことのある人々や、これまでに取り組んだ素晴らしいプロジェクトから学んだことは少しありますが、これらのスキルを「所有」しているとは感じません。 私は正しいですか?これらのスキルをさらに発展させようとするべきですか、それともキャリアのためにこれらを行う人々に任せるべきですか? あなたが何かをしている方法に縛られすぎないようにし、「ユーザーを素晴らしいものにする」ようにするにはどうすればいいですか? プログラミングの観点からこれらのスキルを学ぶための優れたリソースを知っている人はいますか?

7
非技術管理者がソフトウェア開発を理解するのに役立つ良い本は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 ソフトウェア開発チームを管理する非技術者がいる場合、プロセスをよりよく理解するために読んでもらいたい本はありますか? たとえば、ほとんどの作業では、タスクにかかる時間をかなりよく見積もることができます。しかし、開発では、全体のポイントは、未知の時間がかかる問題を把握する必要があるということです。これを伝えるのは難しいです。 あなたが知っていることはこれをよく説明していますか?

5
オープンクローズド原則の利点を活用していますか?
Open-Closed Principle(OCP)は、オブジェクトは拡張のために開かれ、修正のために閉じられるべきであると述べています。私はそれを理解し、SRPと組み合わせて使用​​して、たった1つのことを行うクラスを作成すると信じています。そして、すべての動作コントロールをサブクラスで拡張またはオーバーライドできるメソッドに抽出できるようにする多くの小さなメソッドを作成しようとしています。したがって、依存関係の注入と構成、イベント、委任など、多くの拡張ポイントを持つクラスになります。 次の単純で拡張可能なクラスを考えてください。 class PaycheckCalculator { // ... protected decimal GetOvertimeFactor() { return 2.0M; } } たとえば、OvertimeFactor1.5に変更するとします。上記のクラスは拡張するように設計されているため、簡単にサブクラス化して別のを返すことができますOvertimeFactor。 しかし ... ...クラスは拡張用に設計され、OCPに準拠していますが、問題のメソッドをサブクラス化およびオーバーライドしてからIoCコンテナー内のオブジェクトを再配線するのではなく、問題のメソッドを変更します。 その結果、OCPが達成しようとしていることの一部に違反しました。上記の方法は少し簡単なので、怠けているように感じます。OCPを誤解していますか?私は本当に何か違うことをするべきですか?OCPのメリットをさまざまに活用していますか? 更新:回答に基づいて、この人為的な例は、いくつかの異なる理由で貧弱な例のように見えます。この例の主な目的は、オーバーライドされると、内部コードまたはプライベートコードを変更せずにパブリックメソッドの動作を変更するメソッドを提供することにより、クラスが拡張されるように設計されたことを示すことでした。それでも、私は間違いなくOCPを誤解していました。

9
コード文書の生産性の向上/損失に関する研究
多くの検索を行った後、ソフトウェア開発の世界で知られていると思われるものに関する基本的な質問に答えることができませんでした。 知られていること: 適切なコードドキュメント(Doxygenタグ、Javadoc、または単なるコメントの豊富さ)に厳格なポリシーを適用すると、コードの開発に必要な時間がオーバーヘッドになります。 だが: 徹底的なドキュメント(またはAPI)を持っていると、新しい開発者やベテランの開発者が機能を追加したり、バグを修正したりするときに生産性が向上(想定)します。 質問: そのようなドキュメントを保証するために必要な追加の開発時間は、将来の生産性の向上によって相殺されますか(厳密に経済的な意味で)? ケーススタディ、または導き出される結論を裏付ける客観的な証拠をもたらすことができる答えを探しています。 前もって感謝します!

4
文書化されていない機能はどのように発見されますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 文書化されていない/プライベート APIを どのように見つけるのでしょうか? 例Appleが文書化されていない/プライベートAPIを、駅再生、Windowsの電話7、Win32のカーネル、WindowsのAPI、隠されたコールバックなど、... ハッカーは、プライベートおよびドキュメント化されていない機能について調べるためにどのツールを使用しますか? APIドキュメントで通常説明されている秘密を明らかにするプライベートAPIとリバースエンジニアリング技術を掘り下げた人々の経験についてどこで読むことができますか? ありがとう、 A

4
ストアドプロシージャの命名規則 [閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 シニア開発者の一人は、「verbObject」タイプの命名(「GetMemberByID」)ではなく、「objectVerb」スタイルの命名(「MemberGetById」)などのストアドプロシージャの命名規則を使用する必要があると述べています。この標準の理由は、関連するすべてのストアドプロシージャがアクションではなくオブジェクトごとにグループ化されることです。 このように名前を付ける方法のロジックはわかりますが、この方法で名前が付けられたストアドプロシージャを見たのは初めてです。命名規則についての私の意見は、名前は自然に読むことができず、単語が何を言っているのか、手順が何をするのかを判断するのに時間がかかるというものです。 これについてどう思いますか?ストアドプロシージャに名前を付けるより一般的な方法はどれですか?また、どのタイプのストアドプロシージャの命名規則を使用しましたか?

2
ソフトウェアを販売/配布する方法は?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 私は個人プロジェクト(Windowsデスクトップアプリケーション)に取り組んでおり、アプリケーション(ソースではなく)からお金を稼ぐことを考え始めました。私は10億ドルを稼ぐことを期待していませんが、誰が正しいことを知っていますか?私が見る最も簡単な方法は、無料でそれを配って人々が寄付できるようにすることですが、それがどの程度うまく機能するのか、どの支払いシステムが最も簡単/ベストなのかわかりません(Paypal)?もし私がそれを売るなら、どうやってそれをするでしょうか?サードパーティの配布?Paypalを使用して自分のWebサイトから販売し、領収書を確認しますか?アプリケーション用に独自の「ストア」を構築しますか? 基本的に、個人的なプロジェクト(寄付、販売、その他)からお金を稼ぐためにどのような方法を使用しましたか?チップ? お返事をありがとうございます。

4
Win32 APIの進化[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 Windows 32 APIは時間の経過とともに大きく変化しましたか?1998年のCharles Petzoldの著書「Programming Windows、5th Edition」には、関連する情報がまだ含まれていますか、それともほとんどが時代遅れ/古くなっていますか? Windows 32 APIに最近追加された顕著な例(ある場合)は何ですか?
11 books  c  windows  api 

3
ハイブリッドVB6 / .Netアプリケーションは、実世界でどのように機能していますか?
私はVB6アプリケーションを保守しており、.Netへの移行方法を検討しています。COMに表示される.Netクラスに新しい機能を実装し、既存の機能をゆっくり移行することにより、これを徐々に行うことを検討しています。これを行う方法について、いくつかの有益な「Hello World」の例を見つけました。これはアプリで正常に機能します。しかし、これらのハイブリッドアプリケーションの実際の動作はどうですか?それらは安定していて、保守可能ですか?私たちのプログラムの特徴は、同じコンピューター上のより多くのユーザーがユーザーアカウントを切り替えることでそれを使用することです。 編集:VB6アプリは、USB接続からデータを読み取り、Accessデータベースに保存します。ユーザーは、データのさまざまなビューを呼び出すことができます。データはハードウェアデバイスにキャッシュされるため、データの読み取り中の中断は致命的ではありません。 編集2015年10月4日:フォローアップの時間:既存のVB6コードを段階的に.Netに置き換えるプロセスが進行中です。最初にデータアクセスルーチンを使用し、次にビジネスロジックを使用し、現在は次々とフォームをWPFに変換します。実際、変換したすべてのコードを(VB.Netで)書き直しましたが、ゆっくりと同時に機能を改善できました。ハイブリッドアプリケーションは、Windows 8、8.1、および10への移行を生き延びました。 2018年3月9日編集:完全に変換されたコードを来月リリースします。ハイブリッドアプリケーションは、少なくとも1年間はサポートされます。主に高解像度の画面で問題を示していますが、それ以外は正常に動作しています。正直に言うと、VB6コードベースとの互換性の問題よりも、.Net Frameworkのインストールの破損や依存関係(SQL Server LocalDbなど)の破損によるサポートの頭痛の種が増えています...

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