ソフトウェア工学

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

13
中かっこスープの取り扱い
私は何年もC#とVB.NETの両方でプログラミングしましたが、主にVBでプログラミングしました。私はキャリアをC#にシフトしていますが、全体的にはC#の方が好きです。 しかし、私が抱えている問題の1つは、中括弧のスープです。VBでは、各構造キーワードに一致する近いキーワードがあります。次に例を示します。 Namespace ... Class ... Function ... For ... Using ... If ... ... End If If ... ... End If End Using Next End Function End Class End Namespace C#で記述された同じコードは、非常に読みにくくなります。 namespace ... { class ... { function ... { for ... { using ... { if ... { …

2
複数の「スクリーン」を備えたWinformアプリを構築する適切な方法は何ですか
複数の「スクリーン」を持つWinformアプリを構築する適切な方法は何ですか?たとえば、小さなバックアッププログラム(主に笑い用)を作成しようとしていますが、コントロールとコンテナーをフォームにダンプしています。 パネルとグループボックスを使用して異なる画面を分離しています(例:パネルを使用して[設定]ウィンドウのすべてのコントロールを保持し、別のパネルを使用して設定済みのすべての現在のバックアップを表示しています)。まあ、私のform.csファイルは膨大な量のコードに膨れ上がり、何か間違ったことをしているように感じます。ファイルにはほとんど何も見つかりません。最初からやり直す準備ができています。このプロジェクトは、私にとってC#と.NETの知識を広げるためだけのものでした。そのため、新しいプロジェクトを開始することは大したことではありません。
11 c#  gui  winforms  gui-design 


2
JavaDocで非推奨か否か?
JavaDocには次のX509Certificate getSubjectDN()ように記載されています。 Denigrated、getSubjectX500Principal()に置き換えられました。 もう使用すべきではないがDenigratedではないメソッドのDeprecatedに慣れています。コメントで閉じられたこの特定のケースに関するバグレポートを見つけました: これはバグではありません。「非推奨」は、深刻な場合にのみ使用することを意図しています。 Deprecatedのメソッドを使用している場合、一般的に推奨されるアクションはメソッドの使用を停止することです。 メソッドがDenigratedとしてマークされている場合の推奨アクションは何ですか?

1
MITライセンスコードを変更して販売することは合法ですか?
プロジェクトがあり、MITでライセンスされている既製のスクリプトを使用したい。ただし、このスクリプトを個別に使用することは冗長です。 そこで、コードとMITライセンススクリプトを同じファイルにマージすることにしました。(新しい機能を変更、改善、および/または追加するとしましょう。) この作品を市場で販売することを計画していますが、(合法的に)公正ですか? 注:一方、最終ライセンスには既にMITライセンススクリプトの著作権を記載(参照)します。

3
ユニットテストと統合テストの間のどこに線を引くべきですか?それらは分離すべきですか?
私が取り組んできた小さなMVCフレームワークがあります。コードベースは決して大きくはありませんが、2、3のクラスではありません。私はついに思い切ってテストを書き始めることにしました(はい、私はずっとそれをやっていたはずですが、APIはこれまで非常に不安定でした) とにかく、私の計画は、統合テストなど、テストを非常に簡単にすることです。統合テストの例は、次のようなものに沿って進みます。 偽のHTTP要求オブジェクト-> MVCフレームワーク-> HTTP応答オブジェクト->応答が正しいことを確認 これは状態や特別なツール(ブラウザの自動化など)なしですべて実行できるため、実際には通常の単体テストフレームワーク(私はNUnitを使用)で簡単に実行できます。 さて、大きな質問です。ユニットテストと統合テストのどこに正確に線を引くべきですか?ユニットテストで一度に(可能な限り)1つのクラスのみをテストする必要がありますか?また、統合テストは、ユニットテストプロジェクトと同じテストプロジェクトに配置する必要がありますか?

3
クライアントとサーバーに同じ言語を使用することはどれほど重要ですか?
私は、ネイティブアプリに加えてWebサービス/アプリを持つモバイルプロジェクトのアーキテクチャソリューションを評価し、さまざまなライブラリ、フレームワーク、Meteorなどのスタックを見てきました。これは一種の「オープンスタックパッケージフレームワーク」です、Node.jsと緊密にバインドされています。 クライアント側とサーバー側の両方で同じ言語を使用する利点については多くの話がありますが、私はそれを理解していません。クライアントとサーバーの両方でWebアプリケーションの状態全体をミラーリングしたいが、他の利点を見つけるのに苦労している場合、ワークフローの効率性を理解できます。 クライアント/サーバー言語の同等性が聖杯と見なされる理由を理解しようとしています。ソフトウェア開発でクライアント/サーバー言語のパリティが重要なのはなぜですか?

3
プロセスからメモリを読み取るにはどうすればよいですか?OSによって違いますか?
経験豊富なウェブ開発者であるが、初心者の「低レベル」プログラマーである私にとって、このようなことはまだ一種のブードゥー教です。 メモリブロックを見つけて、それを読み取ること(たとえば、鉱山のゲームでタイマーを読み取ること)を開始する方法に興味がありますか?これはOS / OSバージョンによって異なりますか?

12
Fortran 77のみでコーディングされている人にオブジェクト指向プログラミングを説明するにはどうすればよいですか?
私の母はFortranで大学の論文を書いており、現在(10年以上後)流体シミュレーションのためにc ++を学ぶ必要があります。彼女はすべての手続き型プログラミングを理解できますが、オブジェクトを説明しようとしても、それは固執しません。(私はJavaで多くの仕事をしているので、オブジェクトがどのように機能するかを知っています)私はそれをあまりにも高レベルの方法で説明しているかもしれないと思うので、まったく一緒に仕事をしたことがなく、成長した人には本当に意味がありません純粋に手続き型プログラミングの時代に。 彼女が理解するのに役立つ簡単な方法を彼女に説明できますか?

1
アトリビューションはGPL互換である必要がありますか?
次のような条項の下でライセンスされたコードを作成できます: Redistribution of this work, with or without modification, is permitted if Bob Joe is attributed as the original author or licensor of this work, but not in any way that suggests that Bob Joe endorses you or your use of the work. GPLを使用するプロジェクトで使用されるか、またはこれによりGPLとの互換性がなくなりますか?
11 licensing  gpl 

1
Scalaで関数が明示的な戻り値の型を持つ必要があるのはなぜですか?
私は最近Scalaでプログラムすることを学び始めましたが、これまでのところ楽しかったです。私は、別の関数内で関数を宣言する機能が本当に好きです。 私がScalaについて抱えている問題の1つは、Scalaがその関数に明示的な戻り値の型を必要とするという事実です。そして、これは言語の表現力を妨げると感じています。また、その要件でプログラミングするのは難しいだけです。たぶん、私はJavascriptとRubyのコンフォートゾーンから来たからでしょう。しかし、Scalaのようにアプリケーションに大量の関数が接続されている言語の場合、自分が書いている特定の関数が再帰後に再帰で返されるタイプを正確に頭の中にブレーンストーミングする方法を考えることはできません。 関数の明示的な戻り値型宣言のこの要件は、JavaやC ++などの言語では気になりません。JavaとC ++の再帰は、実際に発生したときに、多くの場合2〜3個の関数で処理されていました。Scalaのように、いくつかの機能が連鎖することはありません。 だから私は、Scalaが明示的な戻り値の型を持つ関数の要件を持たなければならない正当な理由があるのだろうかと思いますか?

4
Google、Apple、IBMなどの企業はどのIDEまたはエディターを使用していますか?[閉まっている]
ここで何が尋ねられているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 7年前に閉鎖されました。 さまざまなツールを使用した経験はかなりありますが、IDEを使用するか、コード編集用の単純なエディターを使用するかを決めることはできません。 私が経験したほとんどのIDEはJava(Eclipseなど)で記述されているため、遅くてかさばります。それらの利点は、多くのツールを提供することです。 一方、エディターは通常非常に高速です。また、IDEにより類似するように拡張することもできますが、通常はそうしません。ただし、いくつかの基本的なコード補完が組み込まれたSublime Text 2があります。 私の質問は、Google、Apple、IBMなどのほとんどの企業(MS開発者が使用していると思われるAMIDEのIDEがあるためMicrosoftを除く)が、労働者にIDEの使用を強制するかどうか、外部ツールでプレーンエディターを使用するかどうかです専門家ではないとみなされた? PS IDEなしで作業することがほとんど不可能なAndroid開発のようなケースについては話していない。

4
C ++の識別子での汎用文字名の使用とは
C ++標準では(私は新しいもので、それに気づいたが、それはすでにC ++ 03には存在しなかった)のように書かユニバーサル文字名を指定\uNNNNし、\UNNNNNNNNおよびUnicodeのコードポイントで文字を表しますNNNN/ NNNNNNNN。これは、特に明示的にUTF-8、UTF-16、およびUCS-4文字列リテラルも定義されているため、文字列リテラルで役立ちます。ただし、識別子には汎用文字リテラルも使用できます。その背後にある動機は何ですか? 構文は明らかに完全に判読不能で、識別子はリンカ用にマングルされている可能性があり、とにかくシンボルを名前で取得する標準関数があったようではありません。それでは、なぜ誰もが実際にユニバーサル文字リテラルを含む識別子を使用するのでしょうか? 編集:実際にはすでにC ++ 03に存在していたので、追加の質問は、それを使用したコードを実際に見たかどうかです。
11 c++  c++11 

8
変数はどのように状態を導入しますか?
「C ++ Coding Standards」を読んでいて、この行がありました: 変数は状態を導入するため、可能な限り短いライフタイムで、できるだけ少ない状態を処理する必要があります。 変異するものは最終的に状態を操作しませんか?できるだけ少ない状態に対処する必要があるとはどういう意味ですか? C ++などの不純な言語では、状態管理は本当にあなたがしていることではありませんか?そして、変数の寿命を制限する以外に、できるだけ少ない状態に対処する他の方法は何ですか?

5
他の開発者は、良くなるにつれて仕事を得ることが難しくなると感じていますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 7年前に閉鎖されました。 私が始めたとき、インタビューを受けて合格するのはずっと楽だったようです。しかし今、私はより経験を積んでいるので、仕事を見つけるのがますます難しくなっていることに気づきました。他の開発者も同じように感じていますか? 例を挙げましょう。先週の水曜日にインタビューをしました。他のエンジニアとCEOが1人だけの小さな新興企業でした。彼らは私をオハイオ州から連れてきた(彼らはSFに基づいている)。私がそこに着いたとき、彼らは私に彼らにリンク短縮サービスを書いてもらいました。私はこれに取り組んで一日中そこにいるはずだった。早く終わったとき、インタビュアーはちょっとショックを受けたように見えました。その後、私たちは話していたので、データを保存するために何を使っているのかを尋ねました。彼は私にモンゴに言った。彼がmongoを使うことにした理由を尋ねます。その後、彼は答えを口ごもり、つぶやきました。これは基本的に、「Mongoはトレンディなデータベーステクノロジーであり、除外されたくないため、これを使用しています」と要約されました。最近、人々はNoSQLを使用しています。インタビュアーはすぐにインタビューを終了し、私を戸惑わせました。私はCEOと昼食をとるはずでしたが、チャンスが来る前に彼は私を追い出しました。介入者は意地悪でも無礼でもありませんでした(私もそうではありませんでした)。 オハイオに戻った後、彼らから「私は適合していなかった」というメールを受け取りました。このことは私にいつも起こります。「適合しない」とは、「自分のスキルレベルが高すぎる」ことを意味する場合があると考え始めています。これはすべて私の頭の中にありますか、または他の経験豊富な開発者は同じことが起こっていることに気づいていますか?コーディングの問題に苦労していたとき、私はインタビュアーと一緒に仕事をしていましたが、それは前向きなことだったので、採用されました。しかし、今では私は通常コーディングの部分を吹き飛ばしており、インタビュアーが言葉を失ってしまったことは私に反対している。コーディングの問題と格闘する必要がありますか?
11 interview 

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