ソフトウェア工学

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

5
エイダは本当になくなった?
人々はまだエイダを使用していますか?(ほとんどが国防省で使用されていました) すべてのアプリケーションはAdaの「レガシー」で作成されていますか? Adaナレッジはまだ販売していますか
17 legacy  ada 

11
会社はインタビュー中にサイトについての考えを望んでいる[非公開]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 シニアWeb開発者の役職に就くための会社への最初の電話インタビューと、サイトに関するサインアップや改善の提案を聞きたいので、サイトにサインアップして準備するように依頼するメールに記載しています。 これを行う会社の話を聞いたことがあります。彼らは10人にインタビューし、そして誰もがアドバイスを与えれば、彼らは多くの無料相談を受けます。 このようなことをするように頼まれたのはこれが初めてだと思うので、無料のコンサルティングなのか、それともただの妄想なのか、他の人の考えを聞きたかったのです。

5
SRP(単一責任原則)は客観的ですか?
「ユーザーにとって魅力的な」デザインをデザインしたい2人のUIデザイナーを考えてみましょう。「ユーザーの魅力」は、客観的ではなく、デザイナーの心の中にのみ存在する概念です。したがって、デザイナーAはたとえば赤を選択し、デザイナーBは青を選択できます。デザイナーAは、デザイナーBとはまったく異なるレイアウトを作成します。 SRP(Single Responsibility Principle)について読みましたが、私が理解したのは、OOデザイナーから別のOOデザイナーまでさまざまな主観的な分析または責任の内訳です。私は正しいですか?言い換えれば、SRPプリンシパルに基づいて1つのシステムに対して2つの異なる設計を思いつく2つの優れたオブジェクト指向アナライザーとデザイナーを使用することは可能ですか?

13
Pascalの進化に貢献した機能は何ですか?
Pascal言語の詳細な履歴を編集していますが、いくつか欠落している詳細があります。 今日、非常に多くの機能がありますが、当然のことです。Pascalの進化に大きく貢献したのはどの機能で、なぜ重要なのですか? プラットフォームやフレームワークの機能ではなく、言語の機能を探しています。そのため、演算子のオーバーロードやデフォルトのパラメーターに似ていますが、Linuxサポートや新しいリッチテキストウィジェットではありません。 Pascalにはいくつかの異なるフレーバー(Delphi、Free Pascal、Oxygene、Quick Pascal、Apple Pascalなど)があり、同じ機能を異なる時間に並行して導入したことを知っています。それは大丈夫です。Pascal言語全体と、重要なマイルストーンがいつ発生したか(日付、バージョンなど)を見ています。
17 history  delphi  pascal 

5
経験豊富なC ++エンジニアのチームにOOP / OODを「導入」する最良の方法
私は、OOPの概念を既存のチームメンバーに紹介するための、efficient辱としても抜け落ちない効率的な方法を探していますか?私のチームメイトはオブジェクト指向言語に慣れていません。私たちは長い間C ++ / C#を行ってきたので、テクノロジー自体はよく知られています。 しかし、私は周りを見回し、努力の大きな注入なしで(主にコードレビューの形で)、私たちが作り出しているのはクラス内にあるCコードです。いくつか例を挙げると、単一の責任原則、抽象化、結合を最小限に抑える試みはほとんど使用されていません。コンストラクターはないが、インスタンス化されるたびにmemsetを0にするクラスを見てきました。 しかし、私がOOPを立ち上げるたびに、誰もがうなずき、私が話していることを正確に知っているように見えます。概念を知ることは良いことですが、実際の作業の提供に関しては、私たち(他の人よりも)を適用するのは非常に困難です。 コードレビューは非常に役立ちましたが、コードレビューの問題は、事実の後にのみ発生することです。そのため、一部の人にとっては、書き直されたコード(ほとんどはリファクタリングですが、多くの時間がかかります)になります。また、コードレビューは、チーム全体ではなく、個々のエンジニアにのみフィードバックを提供します。 私は、プレゼンテーション(またはシリーズ)を行うというアイデアをいじり、OOPを、より良く記述でき、リファクタリングできる既存のコードの例とともに再び表示しようとしています。誰ももう所有していないいくつかの本当に古いプロジェクトを使うことができたので、少なくともその部分は微妙な問題ではないはずです。ただし、これは機能しますか?私が言ったように、ほとんどの人は長い間C ++をやっているので、a)彼らはそこに座って、なぜ彼らがすでに知っていることを言っているのかを考えているか、b)彼らは実際にそれをin辱として取るかもしれません数十年ではないとしても、長年やってきた仕事をどうやってやるのかわからないと伝えます。 コードレビューよりも幅広い聴衆に到達するが、同時に罰の講義のように感じない別のアプローチはありますか? 私は、完全に設計されたコードの理想的な理想を持っている大学の新鮮な子供ではありません。誰にも期待していません。私がこれを書いている理由は、紙の上にまともな高レベルのデザインを実際に持っている人のレビューをしたからです。ただし、クラスを想像する場合:A-> B-> C-> D、コードB、CおよびDはすべてほぼ同じパブリックインターフェイスを実装し、B / Cには1つのライナー関数があるため、最上位のクラスAは絶対に実行します主に4つのmongoメソッドでのすべての作業(メモリ管理、文字列解析、セットアップネゴシエーションなど)、およびすべての意図と目的のために、ほとんど直接Dを呼び出します。 更新:私は技術リーダー(この役職で6か月)であり、グループマネージャーを完全にサポートしています。私たちは非常に成熟した製品に取り組んでおり、メンテナンスコストは間違いなく知られています。

5
オフィスで「自由な時間」を生産的に過ごす方法[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 リリースを出荷した後、2〜3か月に1回、10〜15日間の空き時間があります。自由時間では、仕事がない、誰もあなたが何をしているのかなど気にしませんが、オフィスに行って出かけなければなりません。 そのような自由な時間はありますか?今回はどのように活用していますか? 私は読む傾向がありますが、情報を詰め込むことはそれを使う最良の方法ではないと感じています。

6
フリーランスの仕事をすることへの恐怖をどのように取り除くことができますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は通常、ウェブデザイン会社で働いていますが、私のマネージャーは彼自身の会社も持っています。彼は基本的にデザイナーであり、クライアントとプロジェクトをキャッチし、週末や時間があるときにはいつでも仕事をしています。 彼はとても大胆です。彼はプログラミングの知識がまったくありません。しかし、私は彼が何度もプロジェクトをキャッチするのを見てきました。 昨年、彼はJoomla、Drupal、およびMicrosoft Sharepointでプロジェクトを手に入れましたが、その時点では知りませんでした。私はそれらを使用する方法がわからないことを彼に言った。彼は私に時間をかけて学び、それをやるように言った。その時、何が起こるかわからないと思っていましたが、最終的にはすべてを終えました。 彼は未完成のプロジェクトをクライアントに渡すこともありますが、それが完了していないことは知っていますが、人々はまったく気付かないので心配していません。彼らが気付いたら、彼は私にそれをするように言います。彼はどのようにこのような危険なビジネスを運営しているのだろうかと思います。 プログラミングを知っている私はプロジェクトを受け入れることを恐れていますが、何も知らない彼はプロジェクトを受け入れることをheしません。 何がうまくいかないかを考え始めるので、私はいつも個人的なプロジェクトをすることを恐れています。私が何か間違ったことをしたら、人々は私を訴えます。損害賠償の支払い方法は?この考えにより、私は既知のクライアントからプロジェクトを完了することができませんでした。 彼らが私にできるかどうかを尋ねるたびに、私はノーと言います。私はプロジェクトを受け入れるのが怖いです。私は仕事で多くのプロジェクトを行ってきましたが、それが私になると心配しています。 私は何をすべきか?

6
マイクロソフト以外の世界でのIntelliSenseの用語は何ですか?
IDEソフトウェアまたはプログラミング言語がソースレベルでできることまたはできないことについて話すとき、私はしばしばIntelliSenseという言葉を使用します。これは、Microsoftの世界では正確な意味を持ちますが、 Visual Studioに精通している必要があります。 この場合、使用する適切な用語は何ですか? 通常、「オートコンプリート」という用語を使用しますが、常に機能するとは限りません。実際、IntelliSenseには自動補完が含まれていますが、ドキュメントとヒントも提供しています。

5
チームの知識を整理するために何を使用していますか?
昨年、私と3人の古くからの友人が小さなWeb /モバイル開発チームを設立しました。物事はかなり順調に進んでいます。私たちは多くを学んでおり、新しい人々がグループに参加しています。知識を常に最新の状態に保ち、同期を保つことは私たちにとって不可欠です。長い電子メールスレッドは、単に私たちのための道ではありません。分散しすぎて混乱し、しばらくしてから取得するのが困難です。 チームは共通の知識をどのように管理し整理していますか?チーム内で有用なリソース(記事、リンク、ライブラリなど)をどのように収集して共有しますか? 更新:フィードバックをありがとう。Wikiを使用してチームの一般的な手順や情報を共有するだけでなく、外部リンク、記事、コードライブラリを共有し、チーム内で簡単にコメントできるようにします。 私は、読書リストをチームと共有する方法やウェブサービスを知っているかどうかを知ることに特に興味がありました。つまり、Readitlater / Instapaperのようなものですが、チームの場合は、「それを読んでいる同僚の数」など、いくつかの統計情報が利用できる可能性があります。

7
関数型プログラミングに関するアクセシブルブック[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 関数型プログラミングをアクセシブルな方法で説明する本を探しています。また、私はあまり退屈ではなく、難解な言語を使用しないものを好むでしょう。 理想的には、関数型プログラミングが命令型アプローチよりもエレガントでシンプルなソリューションにつながる状況を示す例を使用します。 プログラミングの経験はある程度ありますが、関数型プログラミングの知識はありません。提案をありがとう

3
要件を待機している間の、影響の少ないリファクタリングと粗雑なコードのコードクリーニング
ずさんな方法で製品の既存のコードベースを継承しました。基本的な設計は非常に不十分であり、残念ながら完全なリファクタリングなしではほとんど何もできません(高結合、低凝集、コードのof延する複製、技術設計文書なし、単体テストではなく統合テスト)。この製品には、歴史、リスクに対する許容度が最小限の重要な「現金牛」クライアントへの高い露出、ギリシャ人を赤面させる技術的負債、非常に大きなコードベースと複雑さ、そしてチームによるバグへの戦い疲れた敗北主義アプローチがあります私。 古いチームは別の部門に船をジャンプして、別のプロジェクトを台無しにする機会を得た。プロジェクト管理の失敗とは対照的に、技術的な無能なプロジェクトの失敗を経験することは非常にまれですが、これは確かにそれらのケースの1つです。 今のところ、私は一人でいますが、私には多くの時間、意思決定の自由、将来の方向性、そして私を助けるためにゼロからチームを構築する能力があります。 私の質問は、機能要件の収集段階で自由時間があるときに、このようなプロジェクトでの影響の少ないリファクタリングについて意見を集めることです。何千ものコンパイラ警告があり、それらのほとんどは未使用のインポート、未読のローカル変数、型チェックの不在、および安全でないキャストです。コードの書式設定は非常に読みにくく、ずさんなため、コーダーはパーキンソン病にかかっており、特定の行でスペースバーを押した回数を制御できませんでした。通常、さらにデータベースとファイルリソースが開かれ、安全に閉じられることはありません。無意味なメソッド引数、同じことを行う重複メソッドなど。 次の機能の要件を待っている間、私は、影響が少ない低リスクのものを掃除しながら、時間を無駄にしているのか、正しいことをしているのかと考えました。新しい機能が以前に時間を費やしたコードを削除することを意味する場合はどうなりますか?私はアジャイルのアプローチを開始するつもりであり、これがアジャイル開発中に絶えずリファクタリングするのは許容可能であり、普通であることを理解しています。 これを行うことによるプラスまたはマイナスの影響を考えてください。

1
多くのプロジェクトホスティングサイトにフォーラム機能がないのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 オープンソースプロジェクトを開始することを検討しているため、人気のあるプロジェクトホスティングサイトをいくつか調べました。 驚くべきことに、人気のあるプロジェクトホスティングサイト(GitHub、BitBucketなど)の多く(素晴らしい機能の表についてはこちらを参照)には、フォーラム機能がありません。つまり、ユーザーが開発者と会話したり、昇給のアイデアなど 私見アクティブフォーラムは、私がそのほとんどのプロジェクトの所有者は、このような機能に興味がある期待されるので、プロジェクトを中心に、ユーザーコミュニティを構築する上で重要な要因です。 また、一部のプロジェクトにはサポートフォーラム(またはメーリングリスト)が他の場所でホストされていることにも気付きました。たとえば、Ruby on RailsはGitHubでホストされますが、Googleグループサポートグループがあり、TortoiseHGはBitBucketでホストされますが、SourceForgeにメーリングリストがあります-したがって、この機能が不要なわけではありません。 では、どうして多くのプロジェクトホスティングサイトにフォーラム機能がないのでしょうか?

3
PHPファイルの終了タグ(?>)?
PHPファイルを?>で閉じることを誓う人もいれば、それを残す方がより最適化されていると言う人もいます。 そこにそれを置くことは必須ではないことを知っています、私はこれを行うことの長所と短所が何であるか、そしてベストプラクティスは何であるか疑問に思っています。

5
最小システム要件はどのように決定されますか?
次のような「最小限のシステム要件」で出荷されるソフトウェアの例は数多く見られます。 Windows XP / Vista / 7 1GB RAM 200 MBストレージ これらは一般的にどのように決定されますか?明らかに特定の制約がある場合があります(プログラムがディスク上で200 MBを使用する場合、それは厳しい要件です)。これらの状況とは別に、RAMやプロセッサなどの場合は、多くの場合、ハードな制約なしで、より高速で高速であることがわかります。これらはどのように決定されますか?開発者は、合理的と思われる数字を作成するだけですか QAは、許容可能なパフォーマンスを備えた最も低い設定を見つけるまで、さまざまな要件をテストする厳密なプロセスを実行しますか?私の本能は、後者でなければならないが、実際にはしばしば前者であると言います。


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