ソフトウェア工学

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

8
変数名を短縮する方法[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 私は常に変数名の省略に苦労しています。変数名を短縮するための標準はありますか?

6
コンピュータサイエンスの研究とソフトウェアエンジニアリングのギャップを埋める[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 コンピュータサイエンスの研究とソフトウェアエンジニアリングの問題の間にギャップがあると思いますか?たとえば、ソフトウェアエンジニアは、「ファクタリングとグラフの同型」や、複雑なコンピュータサイエンスの問題について心配する必要がありますか。おそらく違います。 また、コンピュータサイエンスとアプリケーションを構築するエンジニアとの間に隔たりがある場合はどうでしょうか。それは工学と科学が存在すべき方法ですか?エンジニアは、何年にもわたる研究論文に潜り込み、特定の問題を解決しますか? 編集-1:それについて考えた後、一般科学はおそらく同じ問題を抱えています。マクドナルドやタコベルのような会社で働いているトップの化学者が、ハンバーガーをより良く、より簡単に製造することを任されていると確信しています。

3
CSSクラスをデコレーターとして使用する-良いパターン?
私はかなり複雑なGUIを備えたWebアプリを構築してきました-多くの小さな要素を並べて、さまざまな動作(ドラッグ、クリック、ただし状況依存)を必要とする他の要素内に。 私のコードは次のように機能する傾向があります: コントロールはhtmlタグとして始まります <li> 次に、クラスをタグに追加します <li class = 'static passive included'> 一部のクラスは、CSSスタイリングが外観に影響を与えるためのものである可能性があります .static {background: blue; float: left;} 他の人は、jQueryに基づいて、関連するDOMイベントの動作を提供します $("#container").delegate(".passive", function {onclick : //do-stuff}) そして、他のものは、ドキュメントをスキャンするとき、通常のJavaScriptによって拾われるかもしれません 'included'クラスを持つすべてのノードのテキスト値を収集します。したがって、特定のDOM要素は、cssとjQueryの組み合わせによって定義されたクラスを実装するGUIオブジェクトです。 私の質問は、これは良い方法ですか?そして、これらは本当に「装飾者」でもあります-彼らは確かに「動的にオブジェクトに追加の責任を追加します」が、私はその用語についてはわかりません。最後に、このパターンを自分のサイトで使用していますか?

1
新しいプログラミングプロジェクトの準備[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 私は自分が初心者プログラマだと思います-初心者はあなたが好きです。そのため、これまでにないことを行うプロジェクトでプロジェクトを開始する方法がまだわかりません。 たとえば、YouTubeから動画をダウンロードして、ユーザーが指定した形式に変換できるプログラムを書きたいと思います。私はこれまでこのようなことをしたことがなく、どこから始めればいいのか本当にわかりません。むしろ、何を検索すればよいかわかりません。 「YouTubeダウンローダー」を検索すると、既存のYouTubeダウンローダーサイトへの無用なリンクが大量に表示されますが、そのほとんどは機能しません。 私が知りたいのは、私が何も知らないプロジェクトを始める方法です。このプロジェクトに必要なものを見つけるにはどうすればよいですか?これに最適な言語を見つけるにはどうすればよいですか?特に役立つAPIがあるかどうかを確認するにはどうすればよいですか?また、新しいプロジェクトに取り組む準備をするときに、他にどのような質問をする必要がありますか?

3
なぜPerlコミュニティはそんなに悪い評判を持っているのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私はまだプログラミングにかなり慣れていません。私はほとんどの時間をRubyで過ごしており、正規表現で遊ぶのが好きだということを発見しています。そうは言っても、趣味としてPerlを検討することを検討しています。ただし、Perlコミュニティについてはよく耳にしましたが、どれも良いことではありませんでした。コミュニティは非常にエリート主義で、経験の浅いプログラマには抵抗力があると言われていると聞いています。 これは本当ですか?もしそうなら、なぜそうなのですか?
8 community  perl 

7
不変を暗示するために過去形(受動音声)を使用しますか?(例:Array.TransposedとArray.Transpose)
[注:以下は、FxCopルールの引用など、構文と規則が少しC#で重いです。これは私の背景ですが、この説明の意図は言語に依存せず、使用されるコード例は一般に疑似コード。—マイク] クラスは一般に、オブジェクトインスタンスが実際的な場所では不変であり、クラスメンバーの呼び出し結果にはできる限り副作用がないように設計する必要があることに、私たちは全員同意するでしょう。 ただし、歴史的な命名規則では、「GetSomething」、「DoSomehing」などのアクティブな音声を使用する傾向があり、クラスメンバーが実行するアクションが明確に示されているため、これは適切です。 ただし、メンバーが過去形で名前が付けられると、参照されるオブジェクトに影響を与えることなく値が返されることを暗示することで、時々(または場合によっては)メリットが得られると考え始めています。 たとえば、配列を転置するメソッドの場合、現在の命名スタイルではおそらく 'Array.Transpose'と呼ばれますが、このメンバーが参照されたオブジェクトを転置せずに新しい配列を返す場合、それを 'Array.Transposed'と呼ぶと思います'はより正確になり、プログラマにわかりやすくなります。 'Array.Transpose()'メソッドを使用する場合、誤って次のようなコードを使用しようとする可能性があります。 Array myArray = new Array(); myArray.Transpose(); ただし、「Transpose」メソッドが参照オブジェクトに影響を与えずに新しい配列を返す場合、このコードは何もしません。つまり、「myArray」は静かに転置されません。(「転置」がプロパティである場合、コンパイラは上記が正当ではないことをキャッチするでしょうが、FxCopガイドラインでは、変換を実行するメンバーはメソッドである必要があると述べています。) しかし、メソッドが過去形で 'Array.Transposed'と名付けられている場合、次の構文が必要であることはユーザーには明らかでしょう。 Array myArray = new Array(); Array transposedArray = myArray.Transposed(); このカテゴリに当てはまると思う他の名前は、「サイズ変更」対「サイズ変更」、「シフト」対「シフト」などの名前のメンバーです。現在の時制は、参照オブジェクトに影響を与えるメンバーに使用されますが、過去形は、参照されるオブジェクトに影響を与えずに新しい値を返すメンバーに使用されます。 現在より一般的な別のアプローチは、各名前の前に「Get」または「To」を付けることですが、過去形に変更すると意味が効果的に伝わり、不要な重みが追加されると思います。 これはここの他のプログラマにとって意味がありますか、それともこの過去形のアイデアは、それを読むときにあまりにぎこちないように聞こえますか? 編集: 以下の素晴らしい議論、私は皆に感謝します。以下に、あなたのコメントとこれに対する私自身の修正された考え方に基づいて要約したいいくつかのポイントを以下に示します。 「流暢な」構文を連鎖させるメソッド 以下の説明に基づいて、参照されるオブジェクトの内部状態に影響を与えるメンバーまたは影響を与えないメンバーを明確にするために、可変クラスで使用する場合、過去形の使用はおそらく価値があります。 ただし、不変クラスの場合、これはケースの大部分になるはずです(希望するでしょう)、過去形を使用すると、構文が不必要に扱いにくくなる可能性があると思います。 たとえば、メソッドチェーンによって作成されるような「流暢な構文」では、過去形を使用するとコードが読みにくくなります。たとえば、C#を介してLINQを使用する場合、一般的なメソッドチェーンは次のようになります。 dataSource.Sort().Take(10).Select(x => x.ToString); 過去形に変更すると、これは扱いにくくなります。 dataSource.Sorted().Taken(10).Selected(x => x.ToString); ちなみに、LINQ式は常にソースに影響を与えずに新しい列挙を作成するため、dataSource.Sorted()は実際にはdataSource.Sort()よりも意味が明確です。ただし、このパラダイムを使用するときはこれを十分に認識しているため、過去形の使用は冗長であり、それを読み取る「流暢さ」が本当の意味で不便になります。 プロパティとメソッドの使用 以下で取り上げられた重要な問題は、「取得」メソッドと読み取り専用プロパティの使用に関するFxCopガイドラインに関係しています。例:FxCopルールCA1024。 そのFxCopルールでは明示的に言及されていませんが、ToXXXXXX()メソッドは変換メソッドであるため、「To」メソッドの使用はこの根拠にも適用されるようです。また、ToArray()の場合、メソッドは変換メソッドであり、配列を返すメソッドでもあります。 ブールプロパティの過去形の使用 一部の人は、過去形がブール値を暗示する可能性があることを示唆しました。たとえば、「成功」または「接続」プロパティ。ブールのプロパティとフィールドに「Is」、「Has」、または「Are」の使用を強調する以下のレトルトは正しいと思います。過去形もこの点で役立ちますが、「Is」接頭辞を使用する場合ほどではありません。ブール値のプロパティとフィールドに過去形を使用してもかまいませんが、役立ちますが、名前の前に「Is」、「Has」、または「Are」を付けることがさらに重要だと思います。 全体的な結論は? Tranpose()とTransposed()の問題については、 …
8 naming 

7
OOPをMATLABプログラマーに説明する方法は?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 私には、電気工学、物理工学、機械工学のバックグラウンドを持ち、「OOP」とは何なのかについて知りたい友達がたくさんいます。彼らはすべてMatlabをよく知っているので、基本的なプログラミングの背景があります。しかし、OOPが導入する概念の恩恵を受けることができる複雑な型システムを把握するのは非常に困難です。 誰かが私にそれを説明しようと試みることができる方法を提案できますか?私自身はMatlabに慣れていないので、類似点を見つけるのに苦労しています。形や動物のような単純な例を使用するのは、それらのエンジニアにとって少し抽象的すぎると思います。これまでに、Matrixインターフェイスと配列ベースの/スパース/あらゆる実装を使用してみましたが、それはうまく機能しませんでした。おそらく、Matlabでさまざまなマトリックスタイプがすでに十分にサポートされているためです。

7
オープンソースライセンスの使用方法と推奨されるもの
共有したいコードがありますが、オープンソースライセンスを使用して公開したいのですが。しかし、そのライセンスをどのように使用する必要があるのか​​はわかりません。 オープンソースライセンスをアクティブ化するにはどうすればよいですか?すべてのファイルにライセンスのテキストを含めるだけですか?他に何をしなければなりませんか?権利を購入する必要がありますか?すべてのディレクトリにreadme.txtを含めますか?つまり、ライセンスの法的テストによってコードを保護したい場合はどうすればよいですか? 2番目の質問は、この条件に適したライセンスは何ですか。 私は、人々が私のコードで何をしているか、教育の目的でお金を稼ぐことを気にしていません。 しかし、私は人々がコードから私の名前を削除しないようにしてください、そして彼らが私のコードを使用する場合、彼らに私に言及することを強制します。彼らが私のコードを変更し、誰かがそれらの変更を要求した場合、彼らはコードに変更を与えます。 しかし、たとえ彼らが私のコードを使用しているとしても、人々に彼らのアプリケーションのコードを公開することを強制したくありません。 その目的に最適なライセンスは何ですか?

8
C ++フレンドクラスを使用するユースケースは何ですか?
C ++の友達を理解しようとしています。友だちを使う良いユースケースはいつですか?別のクラスが別のクラスの属性にアクセスできるようにしたいのであれば、それを単にパブリックとして作成するか、代わりにそのクラスから継承しないのですか? ご協力ありがとうございました。
8 c++ 

4
スプラッシュ画面またはボックスの周りに開発者のフルネームをリストすることは、まだ広く普及していて望ましい習慣ですか?
映画の締めくくりと同じように、一部のソフトウェアベンダーは、使用しているソフトウェアに取り組んだチームのフルネームをリストしています。 通常、スプラッシュスクリーン(Photoshop)に表示されます。 ...またはアバウトボックス(Traktor)。 でデモシーン、それは映画産業のように、必須の練習です。 自分のソフトウェアでそれをどのように見ますか?それをしない理由はありますか?企業にそれを奨励する理由はありますか?

1
ERPに正規のリソースはありますか?[閉まっている]
この投稿を改善したいですか?この質問に対する詳細な回答を提供してください。これには、引用や、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 4年前休業。 しばらくの間、ERPについて学びたいと思っていました。私がやりたいのは、システムをセットアップしてから、請求書の生成、注文書の発行、毎月の口座の作成、固定資産の追跡などの業務を実践することです。次に、カスタムコードを追加してシステムをさらに拡張する方法を見てください。 ベストプラクティス、設計方法、およびERPに関するその他の役立つ情報を説明するための事実上の標準である本はありますか?その本はどうですか?

5
Web上のアイデアの所有者は誰ですか?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 4年前休業。 人物「A」がWeb上のソフトウェアプロジェクト(つまり、フォーラム)のアイデアについて言及したとしましょう。人「B」はこのアイデアを見て、それを実行します。人「A」はアイデアの所有権を主張できますか?人「B」は、人「A」が投稿したアイデアを実行することによって違法なことをしましたか?

11
コード標準を無視できるとしたら、いつですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 私の会社では、データベースを処理するすべてにストアドプロシージャを使用することを決めました(生のSQL以外に他の方法を知らなかったため)。最近、データベースの値を取得する必要があるハック修正を追加する必要がありました。これは単一のテーブルからの単一の値なので、インラインSQL(もちろんパラメーター化)として記述しました。アプリケーションの単一の部分でkludgeとして使用されている1行のコードのストアドプロシージャ。 もちろん、私は今それを修正するように言われました、そして、データベースに関連する何かのために保存されたProcを使用するだけです。これは、常識を使うのではなく、盲目的にドグマをたどるように少しだけ感じすぎます。誤解しないでください。私はコーディング標準の目的を理解していますが、意味がないときに標準を無視することの賛成者でもあります。単なる盲目的にゴスペルであるかのようにフォローするだけではありません。

10
リリースから機能を除外するための土壇場の要求がある場合はどうしますか?
社内でも顧客でも既に受け入れテストに合格した機能があります。これは完全に機能する機能です。ただし、現在、この機能を次のリリースから除外するように要求されています。顧客によると、ユーザーはこの機能の使い方についてトレーニングを受けていないため、この機能は削除する必要があります。 この状況に対処するための最善の行動方針は何ですか?構成設定を使用して、機能がギリギリに除外される可能性があることを予測してソフトウェアを設計する必要がありますか?状況によっては他の状況よりも正しいコンテキスト依存のソリューションはありますか?

7
特定のプログラミング言語の使用をどのように選択しますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 プロジェクトで使用するプログラミング言語をどのように選択するかについてチームメイトの間で少し話していたので、プロジェクトの最初に選択する基準はたくさんありますが、実際の標準はないと思いました。 構文とセマンティクスにプログラミング言語を選択しましたか?それとも特定のことをするのに最高のサポートがあるので、あなたはどちらを選びますか?または、より良いライブラリがあるからですか?それとも、パラダイムにそれを選びますか? プロジェクトを行うときに、1つの言語を選択するためにどのような基準を使用しますか?

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