ソフトウェア工学

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


14
「SQLサーバーをうまく機能させるために、コードで何もしないでください」-これは悪い設計のレシピですか?
それは私が聞いたアイデアのほんの一握りの場所です。SQLで純粋に問題を解決しようとすると、特定のレベルの複雑さを超えると、コードで実際に処理する必要があることを多少認めます。 このアイデアの背後にあるロジックは、ほとんどの場合、データベースエンジンが、コードで実行できるよりもタスクを完了するための最も効率的な方法を見つけるのにより良い仕事をするということです。特に、データに対して実行される操作を条件として結果を作成する場合などです。おそらく現代のエンジンでは、クエリのコンパイルされたバージョンを効果的にJITしてキャッシュし、表面上は理にかなっています。 問題は、この方法でデータベースエンジンを活用することが本質的に悪い設計慣行であるかどうか(およびその理由)です。データベース内にすべてのロジックが存在し、ORMを介して単にヒットしている場合、行はさらにぼやけます。


4
商用アプリケーションでGPLソフトウェアを使用できますか
GPLについて3つの質問があります。 アプリケーションでGPLソフトウェアを使用しているが、それを変更または配布しない場合、GPLの下でアプリケーションをリリースする必要がありますか? アプリケーションが使用するソフトウェアを変更した場合はどうなりますか。次に、GPLの下でアプリケーションをリリースする必要がありますか、またはGPLの条件の下で変更されたソフトウェアを提供するだけですか。 また、GPLソフトウェアを使用しているが、変更しない場合、アプリケーションで配布できますか? 私の例では、GeSHiライブラリを使用して出力を強調するPHPフレームワークがあります。 GeSHiはGPLであるため、フレームワークはGPLである必要がありますか? GeSHiメンテナに変更を返した場合、アプリケーションの特定のユースケースに合わせてGeSHiを変更できますか? GeSHiでフレームワークを再配布できますか?

14
Qtで記述されたデスクトップアプリが増えないのはなぜですか?[閉まっている]
Qtでの経験で私が知っている限り、また理解している限りでは、非常に優れた、簡単に学習できるライブラリです。非常にうまく設計されたAPIを持ち、クロスプラットフォームであり、これらは魅力的な多くの機能のうちの2つにすぎません。Qtを使用しないプログラマが増えている理由を知りたいです。それに反対する欠陥がありますか?Qtよりも他のライブラリの方が優れている機能はどれですか?問題はライセンスに関連していますか?
202 api  libraries  qt 

10
実際、MVCとは何ですか?
真面目なプログラマーとして、MVCとは何かという質問にどのように答えますか? 私の考えでは、MVCは一種の曖昧なトピックです。そのため、視聴者が学習者である場合は、論争の対象とはならない一般的な用語で自由に説明できます。 ただし、知識豊富な聴衆、特にインタビュアーと話している場合、「それは正しくない!...」という反応のリスクを冒さないための方向性を考えるのに苦労しています。私たちは皆、実世界での経験が異なり、同じMVCの実装パターンに2回出会ったことはありません。 具体的には、厳密性、コンポーネント定義、部品の分離(どの部品がどこに適合するか)などに関して意見の相違があるようです。 それで、MVCを正しく、簡潔で、議論の余地のない方法でどのように説明すればよいですか?

10
画像をgitリポジトリに保存する必要がありますか?
バージョン管理としてGitとGithubを使用する分散チームの場合、画像もgitリポジトリに保存する必要がありますか? ほとんどの場合、画像は変更されません。それらを含むフォルダーは、画像が追加されるとサイズが大きくなります。懸念事項は、大きな画像の組み合わせ、またはそれらの多くだけで、画像フォルダが時間とともに大きくなる可能性があることです。 これはベストプラクティスと見なされますか?分散チームが簡単にアクセスできるプロジェクトで必要なバイナリファイルを共有するために、他にどのような方法がありますか?


6
プルリクエストに対してgitコミットをスカッシュするのはなぜですか?
プルリクエストを行うすべての深刻なGithubリポジトリが、コミットを1つのコミットにまとめるように要求するのはなぜですか? gitログがあると思ったので、すべての履歴を調べて、どこでどのような変更が発生したかを正確に確認できますが、それを潰すと履歴から引き出され、すべてが1つのコミットにまとめられます。ポイントは? これは「早期にコミットし、頻繁にコミットする」というマントラにも反するようです。

30
私のお父さんは、私のプログラム学習のペースに焦りを感じています。私は何をしますか?[閉まっている]
だから、お父さんは約1か月前にプログラミングに関する5冊の本(C ++、Java、PHP、Javascript、Android)を購入しました。彼は建築家であり、プログラミングについて何も知らない。プログラミングが楽しいと教えて、それを学びたいと思ったので、彼は私にそれらを買った。 ご存知かもしれませんが、子供(14歳)であり、退屈な本からプログラミングを学ぶように言われるのは簡単なことではありません。私はいつも気を散らしている..以前に本を買う必要がなく、オンラインのチュートリアルを見ることができると彼に言った。しかし、彼はとても古臭い。彼は私に本を使わせているだけです。 最近、彼は私がそれで何をしたかを尋ね始めました、そして私は彼にあなたが入力したものを取り、各文字に値を割り当てるC ++プログラムを見せました(Aはアルファベットの最初の文字なので値を取得します1)..などなど。次に、すべての値を合計して通知します。したがって、「追加」という単語の値は9になります。 ^^それは彼にとってあまり印象的ではなかった。彼は私に怒鳴りつけて、私がやってきたことのすべてがうんざりしていると言った。それは真実ではない。彼は非常に伝統的で頑固で、私が言わなければならないことは何も聞きません。彼に何を言えばいいですか? PS:本のゾーニングに関するヒントがあれば、教えてください 編集:どうもありがとう、私の状況を理解している人がいることを知っていることの意味がわかりません。私はすべてを読んだので、みんなの意見を検討します。¡グラシアス!
200 java  learning  c++ 

30
なぜプログラマーはクローズドソースのアプリケーションを書いて、それを無料にするのですか?[閉まっている]
ソフトウェアの作成と販売で生計を立てている起業家/プログラマーとして、開発者がアプリケーションを作成し、無料でインターネットに公開する理由については驚かされます。あなたは、世界で最も収益性の高い分野の1つにいることに気付きました。99%の利益率を持つビジネス。物理的な製品はありませんが、価格に名前を付けることができます。バグのある製品を出荷でき、顧客がそれを購入するビジネス。 時折、当社のソフトウェアの一部が無料の競合他社を獲得することがあります。彼はこれで良い生活を送っていたかもしれないが、代わりにそれを自由にすることを選んだ。 あなたはお金の巨大な山が好きではありませんか? あなたは人々がそれにお金を払うと確信していないのですか? サポートすることを恐れていますか? 顧客はあらゆる問題に対する無料のソリューションを見つけることができると期待しているため、プログラミングのビジネスにとっては悪いことです。(「XYZ用の優れた無料ソフトウェアはありますか?またはそのために20ドルを支払う必要があります」などのツイートが表示されます。)無料ソリューションが最終的に壊れる(新しいOSまたはユーザーがいるため)ため、顧客にとっても悪いことです。無料であるため、開発者が修正する理由はありません。顧客は、機能しなくなって更新されない無料で古いソフトウェアになります。顧客の叫び。開発者はまだ仕事場で仕事をしている。何が得られますか? PS:私はオープンソース/ソフトウェアを開始するつもりはありません。自由な議論が必要です。開発者がクローズドソースアプリケーションを作成し、それを無料にする時期について話している。
199 pricing  freeware 


16
単一責任原則を使用する場合、「責任」とは何ですか?
「単一責任の原則」が「1つのことだけを行う」ことを意味するものではないことは明らかです。それがメソッドの目的です。 public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } ボブ・マーティンは、「クラスには変更する理由が1つだけあるべきだ」と言っています。しかし、SOLIDを初めて使用するプログラマーの場合、これを考えるのは困難です。 私は別の質問への回答を書きました。そこでは、職責は役職のようなものであると提案し、レストランのメタファーを使って私の論点を説明することで主題について踊りました。しかし、それでも、クラスの責任を定義するために誰かが使用できる一連の原則は明確にされていません。 それでどうやってやるの?各クラスが持つべき責任をどのように決定し、SRPのコンテキストで責任をどのように定義しますか?

20
書いたすべてのコードのコピーを保持する必要がありますか?[閉まっている]
私はあなたが働いている会社がコードを所有していることを知っており、それを売ろうとすると明らかに逮捕されるでしょう。しかし、開発者が自分が書いたコードの個人的なコピーを保持することは珍しいことですか(将来の参照のために)? どうやらこの男はソースコードをコピーしたために刑務所に送られたようです。
197 legal 

1
ネイティブのES6がbluebirdよりも遅く、より多くのメモリを消費するのはなぜですか?
ではこのベンチマーク、スイートは、ブルーバード約束に比べES6の約束を完了するまでに4倍の時間がかかり、多くのメモリと3.6倍を使用しています。 JavaScriptライブラリは、Cで記述されたv8のネイティブ実装よりもはるかに高速で軽量になります。Bluebirdのpromiseは、ネイティブのES6のpromiseとまったく同じAPIを備えています(さらに、多数の追加のユーティリティメソッド)。 ネイティブの実装は間違って書かれているだけですか、それとも私が見逃している他の側面がありますか?

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