ソフトウェア工学

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

8
try ...最終的にcatch節なしで使用するのはなぜですか?
プログラムの古典的な方法はtry ... catchです。tryなしで使用するのが適切なのはいつcatchですか? Pythonでは、以下は正当であると思われ、意味をなします。 try: #do work finally: #do something unconditional ただし、コードはcatch何もしませんでした。同様に、Javaでは次のように考えることができます。 try { //for example try to get a database connection } finally { //closeConnection(connection) } 見た目が良く、突然例外の種類などを心配する必要はありません。これが良い習慣である場合、いつ良い習慣ですか?あるいは、これが良い習慣ではない、または合法でない理由は何ですか?(ソースをコンパイルしませんでした。Javaの構文エラーの可能性があるため、質問しています。Pythonが確実にコンパイルされることを確認しました。) 私が遭遇した関連する問題はこれです:私は関数/メソッドを書き続け、最後に何かを返さなければなりません。ただし、到達してはならない場所にある可能性があり、戻りポイントである必要があります。したがって、上記の例外を処理したとしてもNULL、コード内の到達すべきでないポイント(多くの場合はメソッド/関数の終わり)で、空の文字列を返すか、空のままにします。私は常にコードを再構築し、そうする必要がないようにしていますreturn NULL。なぜなら、それは絶対に良い習慣ではないように見えるからです。

12
労働時間を学習に費やしていますか?[閉まっている]
新しいことを学んだり、テクノロジーのブログを読んだり、プログラミングに関する本を読んだりして、仕事に時間を費やしていますか?それについてあなたはどう思いますか?雇用主は、開発者が学習に1日約1〜1.5時間を費やすことができるという利点を得ることができますか。将来的に返済されますか(生産性の向上など)?

15
JavaがC ++よりも高速になるのはなぜですか?
ベンチマークでJavaがC ++よりも優れている場合があります。もちろん、C ++のパフォーマンスが優れている場合もあります。 次のリンクを参照してください。 http://keithlea.com/javabench/ http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ http://blog.cfelde.com/2010/06/c-vs-java-performance/ しかし、これはどのように可能ですか?解釈されたバイトコードは、コンパイルされた言語よりも高速である可能性があるということを、私の心を揺さぶります。 誰か説明してもらえますか?ありがとう!
79 java  c++  performance 

25
三項演算子は有害と考えられますか?[閉まっている]
たとえば、このワンライナーを好むだろうか int median(int a, int b, int c) { return (a<b) ? (b<c) ? b : (a<c) ? c : a : (a<c) ? a : (b<c) ? c : b; } または複数のreturnステートメントを含むif / elseソリューションですか? ?:適切な場合と適切でない場合 初心者に教えたり隠したりするべきですか?


6
データがスカラーの場合はどういう意味ですか?
スカラーの正確な意味はわかりませんが、スカラーについて正しく考えているかどうかを確認しようとしています。スカラーは、データのタイプが任意のタイプである可能性がある、またはシステムがデータが何であるかを事前に知ることができないwhere意性に関連していますか。

5
CおよびC ++用のパッケージ管理システムがないのはなぜですか?[閉まっている]
パッケージ管理システムが存在するプログラミング言語がいくつかあります。 TeXのCTAN PerlのCPAN Python用のPip&Eggs Maven for Java ハスケルのカバル Rubyの宝石 NodeJSのnpm フロントエンドJavascriptおよびCSSのバウアー C#のnuget PHPの作曲家 そのようなシステムには他の言語がありますか?CとC ++はどうですか?(それが主な質問です!)なぜそのようなシステムがないのですか?yum、apt-getまたはその他の一般的なパッケージ管理システム用のパッケージの作成は改善されていませんか?
78 c++  c  builds  packages 

15
セキュリティで保護されたデータベースに保存されているパスワードを暗号化する必要があるのはなぜですか?
Webサービスがあります。現在、サーバー上のMySQLテーブルにプレーンテキストでパスワードを保存しています。私はこれがベストプラクティスではないことを知っています。それが私がそれに取り組んでいる理由です。 セキュリティで保護されたデータベースに保存されているパスワードを暗号化する必要があるのはなぜですか?誰かが私のデータベースにハッキングすると、全員のパスワードを取得することに気付きます。しかし、誰かが私のデータベースに入った場合、たとえばデータの削除など、他の問題があります。 私が考えることができるシナリオは、あなたがハッキングされているということです。数時間前からデータベースを復元すると、すべてが順調です。ただし、パスワードがプレーンテキストの場合...泥棒はすべてのパスワードを持っているため、すべてリセットする必要があります。ユーザーの面倒。 パスワードが暗号化されている場合は、以前のデータベースに復元するだけで済みます。これは正しい考えですか?

5
ソースコードにどのように価格を付けますか?[閉まっている]
私は数年前に作成した小さなユーティリティアプリのソースコードを(既存のユーザーと一緒に)販売するように求められました。ソースコードに価格を設定する方法を調査しましたが、これまでのところ、良い解決策を思いつきませんでした。 ネットを検索しましたが、有用なものは見つかりませんでした。それから、ソースコードをユーザーと一緒に販売している他の人に出くわしましたが、その価格は非現実的に高いようです。たとえば、1人のユーザーが約200ドルで価格を計算したとします。彼には80人のユーザーがいましたが、最終的に3万ドルでソースを販売しました。彼はどのようにしてこの価格を思いついたのですか? この式で良い価格を見つけることができます: (ユーザー数xアプリ価格)+(アプリ価格x 1年間の新規ユーザー数) ? これが適切な公式である場合、ユーザーがまだいないソースの価格をどのように決めますか?

13
方法や内容ではなく、理由を説明するコメントの例は何ですか?[閉まっている]
まず、この質問では、ソースコードのコメントが良いか悪いかという論争から離れたいと思います。なぜ、何を、どのようにあなたに伝えるコメントについて話すとき、人々が何を意味するのかをより明確に理解しようとしています。 多くの場合、「コメントは理由を説明する必要があり、コード自体は方法を説明する必要があります」などのガイドラインがあります。抽象レベルで声明に同意するのは簡単です。しかし、人々は通常これを教義のように落とし、それ以上説明することなく部屋を出ます。私はこれが非常に多くの異なる場所や文脈で使用されているのを見て、人々がキャッチフレーズに同意できるように見えますが、彼らは完全に異なることについて話しているようです。 それでは、質問に戻ってください:もしコメントがあなたになぜ言うべきなら、私たちが話しているこの理由は何ですか?これが、そのコードがそもそも存在する理由ですか?これは、そのピースのコードがやるべきことですか?誰かが明確な説明をして、良い例を追加できれば本当にありがたいです(悪い例は実際には必要ありませんが、対比のために自由に追加してください)。 コメントが良いか悪いかについては多くの質問がありますが、なぜあなたに伝えるコメントの良い例が何であるかの特定の質問に対処する人はいません。

11
Javaで文字列が不変なのはなぜですか?
その理由を理解できませんでした。私は常に他の開発者のようにStringクラスを使用しますが、その値を変更すると、Stringの新しいインスタンスが作成されます。 JavaのStringクラスの不変性の理由は何ですか? StringBufferやStringBuilderのような代替手段があることを知っています。それは単なる好奇心です。


12
XMLをJSONで完全に置き換えることはできますか?[閉まっている]
多くの開発者がXMLとJSONに精通していると確信しており、彼らは両方を使用しています。したがって、彼らが何であり、彼らの目的が何であるかを簡単に説明しても意味がありません。 それらの概念をマップしようとすると、言うことができます(私が間違っている場合は修正してください): XMLタグはJSONと同等です {} XML属性はJSONプロパティと同等です XMLタグコレクションはJSONと同等です [] 私が考えることができる唯一のものは、JSONには存在しませんが、XML Namespacesです。 問題は、このマッピングを考慮し、JSONがこのマッピングで非常に軽いことを考えると、XMLなしで将来(または少なくとも理論的には世界を考える)の世界を見ることができますが、JSONでXMLのすべてを実行できますか?XMLが使用されるすべての場所でJSONを使用できますか? PS:この質問を見たことがあることに注意してください。これは私がここで尋ねているものとはまったく異なるものです。したがって、重複を言及しないでください。
78 xml  json 

22
ソースコードのコミットにコメントを追加するように、仲間の開発者にWANTを説得するにはどうすればよいですか?
Subversion(私たちが仕事で使用しているもの)は、コミットに関するコメントを要求するように設定できることを知っていますが、これを単純にオンにする力はありません。私はことを知っている私の唯一のメモリジョガーとして、急速にコミットの背後にある理由を理解するならば、それは、便利ですので、私のコミットをコメントした理由があります。ただし、これは私が常に受け取る2つの応答に対抗するには十分ではないようです。 時間がかかりすぎて、変更をレポに入れたいだけです。 差分を見るだけで十分です。 単にJIRA課題IDを入力することの価値と、それがどのように自動的に課題に結び付けられるかを示していますが、まだサイコロはありません。 最悪なのは、電話をかけることができる人が同じキャンプにいることです。気にする必要はなく、差分を見ることに問題ありません。 私はそれが正しいことだと知っていますが、どうすれば彼らに光を見せることができますか?仲間の開発者を納得させることができなくても、ビジネスのためにそれが正しいことだと経営者に納得させるにはどうすればよいですか?

20
最適化されたコードを読み取り可能なコードに置き換えても大丈夫ですか?
既存のコードを拡張/改善する必要がある状況に陥ることがあります。古いコードは非常にスリムですが、拡張するのも難しく、読むのに時間がかかります。 それを最新のコードに置き換えるのは良い考えですか? 少し前に私は無駄のないアプローチが好きでしたが、今では、より高い抽象化、より良いインターフェース、より読みやすく拡張可能なコードのために多くの最適化を犠牲にするほうが良いように思えます。 コンパイラも同様に良くなっているように見えるので、何も言わずstruct abc = {}にmemsetsに変わり、shared_ptrsは生のポインタをいじるのとほぼ同じコードを生成します。 それでも、スタックベースの配列や、いくつかのあいまいなロジックを持つ古いC関数が表示されることがありますが、通常はクリティカルパスにありません。 どちらかの方法でコードの一部に触れる必要がある場合、そのようなコードを変更することは良い考えですか?

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