ソフトウェア工学

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

9
ソフトウェアを主な事業とする会社では、開発者はまだ「IT」と見なされていますか?
私の考えでは、主要なビジネスを行っている会社は、ネットワーキングやサポートなどを備えたウィジェットグループ開発者を作成しているのです。 あなたの主要なビジネスがソフトウェアを販売している場合、私は開発グループを「研究開発」または同様のものと呼びます。社内アプリに厳密に取り組んでいる開発者がいれば、IT /サポート/通信などに参加することになるでしょう。 Microsoft、Googleなどの企業の標準は何ですか?CIOマガジンなどにこの種の辞書がありますか?あなたの会社は何をしていますか?

6
共有ライブラリの分岐およびバージョン管理戦略
これらの 投稿は関連しているように見えますが、私の脳は溶け始めています:P 私の雇用主はソース管理の使用を開始しました。主に、彼らがより多くの開発者を雇う前に、「リポジトリ」は主に自宅で働く孤独な開発者のハードドライブだったからです。彼が書いた.NETコードはすべてまとめてチェックインされ、多くの重複した(読み取り:コピーアンドペースト)機能があります。現時点では、SCMシステムは栄光のバックアップです。 重複したコードの一部を共有ライブラリに引き込みたいです。元のリポジトリはそのままにしておき、何も壊さないようにします。必要に応じて既存のコードを移動および/またはリファクタリングできます。それで、ライブラリを含む新しいコードのためだけにリポジトリを設定しました。 私の問題は、過度のプロセスに悩まされることなくライブラリをバージョン管理することを中心にしています。ソリューションが生産性に影響を与え始めた場合、うまく落ちます。 私の強迫観念での理想的な解決策は、ライブラリを個別にビルドし、各依存プロジェクトを意図的に選択した互換性のあるバージョンに対してビルドすることです。そのようにして、どのクライアントがどのライブラリのどのバージョンを持っているか、バグをより確実に再現でき、製品とライブラリの独立したリリースブランチを維持でき、共有コードを変更するときに互いのプロジェクトを壊さないようにできます。 これにより、特に自宅で働く開発者にとっては、ライブラリの更新が面倒になります。少なくとも当初は(最終的に)共通部分をまとめると、ライブラリが急速に変化することを期待しています。私はこれを完全に考えすぎている可能性が高く、最新のライブラリコミットに対してすべてを構築するだけで構いませんが、少なくとも一部のコンポーネントを個別にバージョン管理する必要があると判断した日には備えたいと思います配布されました。一部のライブラリをGACにインストールする必要があるという事実により、バージョン管理は特に重要になります。 だから私の質問は:私は何が欠けているのですか?1つのソリューションに固執しているように感じますが、現在、変更をよりスムーズにするバリエーションを見つけようとしています。以前、この種の問題を解決するためにどのような戦略を使用しましたか?この質問はあちこちにあることを理解しています。不確実な点を整理し、明確にするために最善を尽くします。 そして、私はMercurialを使いたいと思っていますが、私たちはすでに集中型商用SCM(Vault)にお金を費やしており、切り替えはオプションではありません。また、ここでの問題は、バージョン管理ツールの選択よりも深くなると思います。

4
LLVMの低レベルはどのようになっていますか?
LLVM(低レベル仮想マシン)はどのように低レベルですか?(執筆時点では、略語 "LLVM"のこの拡張は、そのWebサイトではなく、ウィキペディアで見つかりました。) (コンパイラインフラストラクチャ)向けに設計されたもので「低レベル」と呼ばれていますか、または他のツールよりも「低レベル」で動作するためですか? これの(一種の)「図」として、LLVMはJVMやCLRよりも低レベルですか、それとも「低レベル」の用途のみに設計されていますか?

5
Grailsフレームワークの落とし穴[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 Grailsフレームワークの使用に関する最大の問題/落とし穴は何ですか?私は今フレームワークを学んでおり、本当に気に入っていますが、それを使用するときに遭遇する可能性のある主要な問題とそれらを回避する方法を知る必要があります。

9
「不正なコード」のインタビューを処理する方法 [閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 「不正なコード」のインタビューとは、インタビュー対象者に「不正なコード」のスニペットが表示され、それを修正するか、間違っていることを指摘することを要求するものです。コードを読み、その実行内容を把握し、欠陥を指摘するのに時間がかかるため、これらのインタビューに苦労しています。時間的なプレッシャーがある状況では、フリーズする傾向があり、コードが機能しなくても機能するはずです。 この種のインタビューを処理するための良い方法は何ですか?より一般的には、コードをすばやく読んで理解するための良いテクニックは何ですか?

4
大規模な金融/保険会社がgitやgithubを使用する理由
私は、金融/保険業界の大企業(従業員3万人)で働いています。「IT」は主な焦点ではありませんが、正直に言って、これらは情報主導型の産業であり、技術的優位性のある企業はより早く前進しているようです。 私の会社には多くのソフトウェア開発チームがいます。言語やフレームワークはもちろん、バージョン管理機能を備えたマップ上にあります。何も使用しない(知っている)、PVCSを使用するもの、VSSを使用するもの、SVNを使用するものがあります。 gitを企業に持ち込みたい。具体的には、GitHub(プライベートリポジトリ)を持ち込みます。これについて話すのにふさわしい人は知っていますが、正直言って、このような抜本的な動きは、あいまいなセキュリティの懸念や競合他社がそれを使用していないという事実のために、大企業の環境で通常撃ち落とされます参照としてjQuery、Ruby on Rails、Facebookなどのみを引用してください)。 私の質問はこれです。大企業がPVCS / VSS / SVNからGitHub(プライベートリポジトリ)などのホストされたgitソリューションにゆっくりと慎重に切り替える必要がある理由の最も説得力のある理由は何ですか。もちろん、私の計画の一部には、必須ではない開発プロジェクトのPOCが含まれます。

9
水平にスクロールする必要があると、コードが読みにくくなりますか?
まあ、それは?それは悪い習慣と考えられていますか? IMO、読みにくい。私は右にスクロールし、左、右、左などにスクロールするのが嫌いです。それはコーディングをより苦しくし、時々私を混乱させます。 たとえば、長い文字列をコーディングするときはいつでも、次のことを行います... bigLongSqlStatement = "select * from sometable st inner join anothertable at" + "on st.id = at.id" + "and so on..." + "and so on..." + "and so on..."

11
マイクロ最適化-BAD対ゲーム開発
ゲーム開発では、ビジネスアプリケーションC#に多くのC / C ++があります。C / C ++開発者は、1行のコードがアセンブリにどのように変換されるかについて懸念を表明するのを見てきました。.NETでは、まれにILに入る人もいます。 C#では、「マイクロ最適化」は眉をひそめ、まれであり、通常は時間の無駄です。これは、ゲーム開発では当てはまらないようです。 この矛盾を具体的に引き起こすのは何ですか?ゲームは常にハードウェアの限界を押し上げていますか?はいの場合、ハードウェアが向上するにつれて、より高いレベルの言語がゲーム業界を引き継ぐことを期待する必要がありますか? ゲーム開発言語としてのC#の実現可能性に関する議論を探しているのではありません。私はそれがある程度行われたことを知っています。マイクロ最適化に焦点を当てます。具体的には、ゲーム開発とアプリケーション開発の違い。 ゲームによる更新私は、近代的で大規模な開発を意味します。EG MMORPG、Xbox、PS3、Wii ...

4
作品を共有するのが難しいのはなぜですか?
私はそこにいくつかのアプリケーションを実行しましたが、コーディングは問題ではありません。しかし、同僚や友人との展開/通信/共有に関しては、行き詰まっています。バグがあり、人々がそれを使用しないので、私は屈辱を感じるだろう... 私はこのような状況で私だけではないと確信しています。私はそれをうまく説明することはできませんが...ここに例があります。 TodoリストマネージャーWebアプリケーションを作成しましたが、しばらく使用します。あなたはそれがいいと思う、それは仕事をする-あなたのために、しかしあなたはあなたの友人やあなたの仕事仲間にメールを送る強さを持っていない。とても良いアプリケーション」...

8
プログラマーはクライアントを「考え」るべきですか?
要件の収集が嫌いになるまでになりました。顧客は自分の利益のために曖昧すぎる。クライアントに完了までの作業を示すことができるアジャイル環境では、機能に対する定期的な小さな修正/更新を行うことができるため、それほど悪くはありません。 環境内の「ウォーターフォール」タイプ(最初に要件、次にほぼ完全な製品)では、状況がくなる可能性があります。この種の環境により、私は常に要件に疑問を抱くようになりました。EG顧客は、「入力を自動的に数値1に変換する」ことを望んでいます(注文の数量を参照)。しかし、彼らが考えていないのは、「入力」は単純なタイプOである可能性があるということです。テキストボックス内の「x」は「woops」になる可能性がありますが、これらの「歯磨き粉」製品の1つは必要ありません。しかし、必要なものがたくさんあるので、私は何時間も耐えて修正し、彼らが望むものを壊すことができます。これは単に健康的ではありません。 企業で働いていて、私たちを助けるアジャイルモデルに合うように文化を調整しようとすることができました(私の仕事のグレード以上の小さな仕事はありません)。または、敷物の下にい詳細を一掃し、最高のものを望みます。私の顧客はコードに近づきすぎているのでしょうか? あまりにも多くの質問に悩まされることなく、「クライアントのために考える」という問題をどのように扱うのでしょうか?

5
LINQPadはまだ多く使用されていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 今日のLINQPadの人気と使用方法を推測しようとしています。VSや他のツールが良くなったので、それがまだ有用なツールかどうか疑問に思っています。 さらに、LINQ to SQLを使用してLLBGenをコーディングしています。LLBGenとLINQPadのプラグインがあるようです。それでも、LINQPadが本当に価値があるのか​​、それが私にどのような利益をもたらすのか、それともORMなどに強く提案されているのか、と思っています。
12 linq 

9
就職が実際に重要だと両親に伝えるにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 一方では、3.0 GPAの学位を取得したいだけです。反対に、両親は3つ以上のものを望んでいます。 さあ、ここにあります。私は情熱を持ってプログラムしています。私は昼と夜のプログラミングを費やしています。そして、私はすべてのプログラミングコースをエースします。しかし、筆記、歴史、その他すべての選択科目コースでひどいことをしているため、3.1〜3.2 GPAしか残されていません。そして私の両親はもっと欲しい。 彼らは、大学は高校のようなもので、次のレベルに到達するためには最高の成績が必要だと考えています。しかし、彼らは十分に良い成績が私に仕事を与えることを認識していません。 そして彼らは、プログラマーがプログラミングを上手にするために練習する必要があること、そして優れたスキルを持つことが素晴らしいソフトウェア開発会社に就職することを理解していません。 ありがたいことに、彼らは野球のバットなどで私を打つと脅してはいません。彼らはたまに小さな「tsk-tsk」をくれました。しかし、その小さな「tsk-tsk」でさえ、IDEを開いたことに対して罪悪感を覚えます。それに加えて、私はその罪悪感のために先延ばしにしています。 だから今、私は彼らと一緒にきれいになりたいです。私はそれを行うための良い方法を知りたいです。 [編集] OK、だから今、私は、以下でいくつかが示唆しているように、より高いグレードを目指すべきだと気づきました。

5
ASP.Net MVCからASP.Net Webformsに戻ります。パターン/アーキテクチャを推奨しますか?
多くの人にとって、これはばかげた質問のように聞こえますが、ASP.Net Webformsの経験がほとんどないため、私は尋ねています。ASP.NetMVCに直行しました。 現在、.Net 2.0とVisual Studio 2005に限定されたプロジェクトに取り組んでいます。 ASP.Net MVCを使用する際の懸念の明確な分離が好きで、Webフォームを耐え難くするものを探しています。asp.net MVCを好むが、.net 2.0とvisual studio 2005にこだわっている人に推奨されるパターンやプラクティスはありますか?

1
REST Webサービスの認証/アクセス制御のためのソフトウェアアーキテクチャ
新しいRESTful Webサービスを設定していますが、役割ベースのアクセス制御モデルを提供する必要があります。ユーザーがユーザー名とパスワードを入力してサービスにアクセスできるようにするアーキテクチャを作成し、役割に基づいてサービスの使用方法(使用できるサービス、読み取りvs読み取り/書き込みなど)を制限する必要がありますそのユーザーに割り当てられます。 私は他の質問を見て回り、欲しいものを見つけました。たとえば、資格情報をRESTサービスのrestful-authenticationに渡す方法、ベストプラクティスを扱う方法については、いくつかの素晴らしい議論があります。また、プログラマーがWebサイトを作成するときに知っておくべきこと(すべての開発者が公開Webサイトを構築する前に知っておくべきこと)についての優れた指針もあります。 しかし、これらのソリューションを実装するソフトウェアアーキテクチャのベストプラクティスとパターンに関する優れた投稿、記事、書籍を見つけることができませんでした。 具体的には: ユーザーの詳細とアクセス権はどのように保存する必要がありますか?(データモデル、場所、形式) サーバーでこれらを表現および追跡するための優れた設計パターンは何ですか?(メモリ内のセッション、毎回のデータベース検索など) コードベースでこれらの権利を安全な方法でサービスにマッピングするための良いパターンは何ですか? システムをより安全で信頼性の高いものに保つのに役立つアーキテクチャの選択肢は何ですか? トレンチから学んだことは何ですか? 特定の技術以外のソフトウェアアーキテクチャの設計パターンと推奨事項を探しています。 (テクノロジーが重要な場合は、python、twisted、およびpostgresqlデータベースを使用してこれを実装する予定です)

11
バージョン管理コメント-過去または現在時制[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 バージョン管理のコメントについて、他のユーザーは何をしますか/推奨します-過去形または現在形? すなわち xをyに変更しました。 または xをyに変更します。

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