ソフトウェア工学

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

3
汎用プログラミングをサポートする最初の言語
これは、ジェネリックプログラミングサポートを備えた最初の言語であり、ジェネリックサポートを備えた最初の主要な静的型付け言語(広く使用されている)です。 ジェネリックは、パラメーター化された型の概念を実装して、複数の型を許可します。総称という用語は、「クラスの大規模なグループに関係する、または適切な」ことを意味します。 「最初」の次の言及を見てきました。 一次パラメトリック多型は、静的型付けプログラミング言語の標準要素になりました。System F [20,42]および関数型プログラミング言語から始めて、構造体はJavaやC#などの主流言語への道を見つけました。これらの言語では、一次パラメトリック多型は通常ジェネリックと呼ばれます。 「Generics of a Higher Kind」、Adriaan Moors、Frank Piessens、およびMartin Oderskyから ジェネリックプログラミングは、後から指定する型に関してアルゴリズムが記述され、パラメーターとして提供される特定の型に必要なときにインスタンス化されるコンピュータープログラミングのスタイルです。1983年にAdaによって開拓されたこのアプローチ ウィキペディアからジェネリックプログラミング

18
プログラミングの発音?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 プログラミング用語をどのように正しくまたは誤って発音しますか?初期のCSカルチャーを厳密に修正したり履歴を記録したりする必要がある場合 プログラミング char =「tchar」は気にしませんか? ! =感嘆符ではありませんか? #=ポンドはハッシュしない?例外#!=シバン * =スプラットは星ではありませんか? regex =「reg ex」ではなく「rej ex」? sql= 「sequel」ではなく「sq l」(すでに回答済み、つまりただ) Unixen | =パイプは垂直バーではありませんか? bin = binではなくbinで、binではなく? lib = libはliberateではなく、libraryのようですか? etc=「et c」ではなく「ett see」(/etc「&c」ではなく) 迷惑 / =バックスラッシュではなくスラッシュ LaTeX =「laytek」ではなく「laytek」

6
講演者は技術講演の報酬を受け取りますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 講演者(ブロガー、マット・カッツのようなグーグルの従業員)が会議で講演するための報酬を得られるかどうか興味があります。もしそうなら、いくらですか?彼らが支払わない場合、または支払われないために支払われない場合は、なぜ支払われますか?開発者を人前で話すことに導くお金以外の魅力は何ですか?

9
全体として:レガシーシステムをどのように維持しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 ニューヨーク-超高層ビルを震わせた爆発により、83年前の蒸気パイプは、ニューヨークや他の米国の都市の下にある何マイルものチューブ、ワイヤー、鉄が古くなり、危険なほど不安定になる可能性があるという強力なメッセージを送りました。 マンハッタンのバースト蒸気パイプに関する2007年7月のストーリー ソフトウェアの腐敗と技術的負債について聞いたことがあります。 そして、私たちは次のような人から聞いたことがあります: 「ボブおじさん」マーティン-「混乱させることの結果」について私たちに警告した人。 Michael C. Feathers- 「レガシーコードで効果的に作業する」ためのガイダンスをくれた人。 したがって、ソフトウェアエンジニアリングコミュニティはこれらの問題を認識しています。 しかし、私たちの社会全体は、これらの問題が稼働中のシステムやアプリケーションをどのように悩ませるのか理解していないように感じます。 Steve McConnellが指摘するように: ...金銭的負債とは異なり、技術的負債ははるかに目立たないため、人々はそれを無視する方が簡単です。 もしこれが真実であり、そうだと思うなら、政府や企業は手遅れになるまでハッカーに対する定期的な保守と強化を延期するのではないかと恐れています。[NYCや蒸気パイプによく似ています。] 私の質問: NYCや蒸気パイプに相当するソフトウェアを回避する方法はありますか?

2
Scalaに関する標準的な本はありますか?[閉まっている]
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細のない回答は、編集または削除できます。 閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私はScalaの学習に興味がありますが、比較的新しいために、Scalaについての本をたくさん見つけることができないようです。 Scalaのベストプラクティス、設計方法論、その他の役立つ情報を説明するための事実上の標準である本はありますか?その本が特別な理由は何ですか?
15 books  scala 

7
プライベートコードでユニットテストを実施するにはどうすればよいですか?
私は自分のワークグループでユニットテストを提唱しようとしていますが、私がよく受ける反対意見は、外部エクスポートされたAPI(これはシステムの最小限かつ重要ではない部分のみ)にのみ使用すべきであり、内部およびプライベートでは使用しないことですコード(機能テストのみになりました)。 ユニットテストはすべてのコードに適用できるし、そうすべきだと思いますが、同僚をどのように説得できますか?

8
どのくらいのドキュメントで十分ですか?
技術的な(将来の開発者向けの)ドキュメントはどれくらいですか?適切なコーディング時間と文書化時間の比率はありますか? パパディモウリスはあなたがすべきだと主張する 最も理解しやすくするために必要な最小限のドキュメントを作成し、 それは良いガイドラインですか、それとも私が作成すべき具体的なものはありますか?

4
高度なプログラミング言語の使用が増えると、コンピューターアーキテクチャの知識を持つプログラマーが不足する可能性がありますか?
ウィキペディアの記事「高レベルプログラミング言語」の引用: 高レベルのプログラミング言語は、コンピューターの詳細から強力に抽象化されたプログラミング言語です。低レベルのプログラミング言語と比較して、自然言語要素を使用したり、使いやすくしたり、プラットフォーム間で移植性を高めたりできます。このような言語は、メモリアクセスモデルやスコープの管理などのCPU操作の詳細を隠します。 つまり、プログラミング言語のレベルが上がると、プログラマーがプログラムを実行するハードウェアから離れるほどです。 今、私はレベル全体の言語使用の統計を知りませんが、より高いレベルの言語がより低いレベルの言語に取って代わりつつあると思うでしょう。もしそうなら、これはコンピューターアーキテクチャーの知識を持つプログラマーの不足につながることがありますか?これは業界にとって問題になりますか?

6
エゴセントリックなプログラマーをどう扱うか?
これについて少し説明しましょう。 以前の仕事では、経営陣に評判の良い同僚がいました。彼はいつも時間通りに終わった。そして、ボスは彼の進歩に満足していたので、特定の特権を得ました。 問題は、他のプログラマーが彼の秘密を知っていたことです。彼は80/20ルールを最適化したため、コードの80%を完了するために20%の時間を費やしました。他の(ハード)20%はメンテナンスプログラマーに任されていました。誰も(驚くことではないが)進歩がないためにペナルティを受けた。しかし、このプログラマーは経営陣との評判が良かったため、責任を彼に移すことはほとんど不可能でした。(幸い彼は会社を辞めた)。 私の質問は、チーム内にそのようなプログラマーがいる場合、プログラミングチームとして何をすべきかということです。あなたは自分のチャンスを台無しにするリスクで経営陣に警告しようとしていますか?事実を受け入れますか?または、他のオプションがあります。
15 behavior 

7
リモート/自宅からの作業の長所と短所[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 特定の日に自宅で仕事をする機会は一度もありませんでしたが、できればぜひやってみたいと思います。長所と短所は何ですか? 私が考えることができるいくつかをリストします。 長所: 何もする必要はありません。(冗談です) より生産的になります。通勤、リラックス、会議、中断なし 短所: チームの労力の軽減。 他のチームメンバーは、オフサイトメンバーの情報を待たなければならないため、立ち往生する可能性があります。 これが以前に尋ねられた場合、おologiesびします-私は検索を行いましたが、賛否両論の議論を見つけることができませんでした。 編集:オートミールはすでにこれをカバーしているようです!:-)

8
組織をJavaからScalaに移行することをどのように奨励しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 誰かの組織がJavaからScalaへの移行を始めましたか?はいの場合、どのようにそれを行いますか?同僚に同じことを勧めるにはどうすればよいですか?
15 java  scala  migration 

8
管理されたOSは良いアイデアだと思いますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 Microsoft SingularityやJNodeなどの管理対象OS は、非常に興味深い概念です。基本的に、OSは低レベル言語(C / C ++ / Assembly)で記述されたコードでブートストラップされ、仮想マシンを本質的に実装します。残りのOS(およびすべてのユーザーランドアプリ)は仮想マシンで実行されます。これにはいくつか素晴らしい点があります。たとえば、突然任意のポインターを廃止します。そして、うまく書けば、ほとんどの最新のOSが現在持っている大量のレガシークラッドを取り除きます。 ただし、デメリットとして、ハードウェアからはるかに離れているため、開発者は抽象レベルを下げて手を汚すことができなくなります。 これについてのあなたの意見は何ですか?

30
言語ごとの最も人気のあるIDEは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 これは、お気に入りのエディターやそれに類するものとは関係ありません。言語ごとに、最も人気のある統合開発環境は何だと思いましたか?競合がある場合は、トップ2〜3です。(認知されている人気で十分です) これまで: C# -Visual Studio、SharpDevelop Java -Eclipse、NetBeans、IDEA Objective-C -Xcode Delphi -RAD Studio Object Pascal -Delphi、ラザロ C、C ++ -Visual Studio、Vim PL / SQL -RapidSQL、Oracle SQLDeveloper PHP -Eclipse、NetBeans、Nusphere PHPed Actionscript(AS2、AS3) -FlashDevelop フレックス -Flash Builder 4 Python -Eclipse、IDLE Perl-パドレ Common Lisp -Lispworks、Emacs ルビー -TextMate Haskell -Vim Fortran -Vim Visual Basic …

16
生産的なプログラミング環境に最も役立つものは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 2年前に閉店。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私たちの多くは、長年にわたって複数の環境で働いており、一部の人は他の人よりも生産的であることがわかっています。多くの場合、開発者の能力に直接関係するのではなく、環境に関係します。私自身もこれを経験しており、より速く、より良く発達したと思われる場所にいます。そしてまだ他の場所では、時間を引きずっていて、あまり考えずに開発しているようです。 生産的な開発環境をどのように作成すると思いますか?

2
Pythonのフロー制御のベストプラクティスの例外はありますか?
私は「Learning Python」を読んでいて、次のことに出くわしました。 ユーザー定義の例外は、エラー以外の条件を通知することもできます。たとえば、呼び出しルーチンが解釈するためのステータスフラグを返す代わりに、一致が見つかったときに例外を発生させるように検索ルーチンをコーディングできます。以下では、try / except / else例外ハンドラーがif / else戻り値テスターの作業を行います。 class Found(Exception): pass def searcher(): if ...success...: raise Found() # Raise exceptions instead of returning flags else: return Pythonは動的に型付けされ、コアに対してポリモーフィックであるため、このような状態を通知するには、センチネルの戻り値ではなく例外が一般的に推奨される方法です。 この種のことはさまざまなフォーラムで何度も議論され、StopIterationを使用してループを終了するPythonへの参照は何度も見ましたが、公式のスタイルガイドにはあまり見当たりません(PEP 8にはフロー制御の例外への参照があります)または開発者からの声明。これがPythonのベストプラクティスであると述べる公式なものはありますか? これ(制御フローとしての例外は深刻なアンチパターンと見なされますか?その場合、なぜ?)には、このスタイルがPythonicであるとコメントするコメントもあります。これは何に基づいていますか? TIA

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