ソフトウェア工学

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

7
抽象化はコードの可読性を低下させる必要がありますか?
一緒に仕事をしている優秀な開発者が、私たちが継承したコードに機能を実装するのに苦労したことを最近教えてくれました。彼は、問題はコードを追跡するのが難しいということだと言いました。そのことから、私は製品をより深く見て、コードパスを確認することがどれほど難しいかを理解しました。 非常に多くのインターフェースと抽象レイヤーを使用していたため、物事の始まりと終わりを理解しようとするのは非常に困難でした。私は過去のプロジェクト(きれいなコードの原則に気付く前に)を見ていた時間について考えさせられ、主にコードナビゲーションツールが常にインターフェイスに到達するため、プロジェクトを回避することは非常に困難であることがわかりました。具体的な実装や、プラグインタイプのアーキテクチャで何かが接続されている場所を見つけるには、さらに多くの労力が必要です。 この理由から、一部の開発者は依存性注入コンテナを厳密に拒否しています。ソフトウェアのパスを非常に混乱させるため、コードナビゲーションの難易度は指数関数的に増加します。 私の質問は次のとおりです。フレームワークまたはパターンがこのように多くのオーバーヘッドを導入する場合、それは価値がありますか?実装パターンが不十分な場合の症状ですか? 開発者は、フラストレーションを乗り越えるために、抽象化がプロジェクトにもたらすものの全体像を調べる必要があると思います。しかし、通常、彼らにその全体像を見せることは困難です。IOCとDIのニーズをTDDで販売できなかったことを知っています。これらの開発者にとって、これらのツールを使用すると、コードの可読性が非常に低下します。

6
コンピューターが非常に高価で希少で、部屋と同じくらい大きかったとき、プログラマーはどのように元に戻りましたか?
今日のように、彼らは一日中コンピューターの前に座ることができなかったと思います。それで、彼らはどのようにプログラムを書いたのですか?一枚の紙に、後でコンピューターが利用可能になったら入力しますか?彼らはどのようにテストをしましたか?
19 history 

6
基本的なデータ構造として(階層的な)ファイルシステムを使用する方法
私は独学で、CSの学位を持っていません。データ構造について学べば学ぶほど、OSの基本的なデータストレージ構造として、どのようにファイルシステム、ディレクトリ、およびファイルを抱えているのでしょうか? 私はそれがシンプルであることを理解していますが、最近ではネイティブで利用可能なオプションが増えているようです。私の知る限り、ファイルシステムの基本機能を改善する唯一のプロジェクトはReiserFSでした。ReiserFSでは、誰が、いつ、ファイルのどの行が変更されたかを知ることができました。 たとえば、ファイルにネイティブタグを付けて、画像、図、ワードプロセッシングドキュメント、コードリポジトリ全体をすべて単一のプロジェクトに属するものとしてタグ付けできるとしたら、本当に役立ちます。私はファイルシステムのパラダイムに固執しているので、それらをすべて単一のフォルダー/ディレクトリに入れることができることを知っていますが、それらがすでに異なるディレクトリに存在し、そこにとどまる必要がある場合はどうなりますか?私はそこにこれを行うことができるプログラムがあることを知っていますが、なぜそれらはファイルシステムにないのですか? RDBMSで得られるような、ファイルシステムの何らかのリレーショナル機能があれば便利です。それはVista / 7の一部であるはずだったが、それは機能リストからも外れたことを理解している。 確かに、どのプログラムでもバイナリファイルを保存でき、その中に必要なデータ構造を持つことができます。OSがファイルシステムの単純な階層を超えて、データを保存するより複雑な方法を提供できないのはなぜですか?

5
内部および外部APIアーキテクチャ
私が働いている会社は、長年にわたって「有機的に」成長した成功したSaaS製品を維持しています。既存の製品とデータを共有する一連の新製品でラインを拡大する予定です。これをサポートするために、ビジネスロジックを1つの場所、つまりWebサービスレイヤーに統合することを検討しています。WSレイヤーは以下によって使用されます。 Webアプリケーション データをインポートするツール 他のクライアントソフトウェアと統合するためのツール(APIそのものではありません) また、それを使用して独自の統合を作成できるお客様が使用できるAPIを作成したいと考えています。次の質問に取り組んでいます: 内部API(別名WSレイヤー)と外部APIは同じものであり、セキュリティとアクセス許可の設定により、誰が何を実行できるかを制御するか、外部APIが内部APIを呼び出すだけの2つの別個のアプリケーションである必要があります他のアプリケーションのように?これまでの議論では、それらを分離する方が安全かもしれませんが、オーバーヘッドが追加されます。 同様の状況で他の人は何をしましたか?
19 api  web  web-services 

15
ビット演算子は何に適していますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 プログラミング言語には、多くの場合、さまざまなビット演算子が付属しています(ビット単位の左シフトおよび右シフト、ビット単位のAND、OR、XORなど)。これらはあまり使用されませんが、少なくとも私の経験ではそうです。これらは、プログラミングの課題やインタビューの質問で使用される場合があります。または、ソリューションで必要になる場合があります。たとえば、 等値演算子を使用せずにtrue、2つの値が等しいときに戻る関数を作成します 3番目の変数を使用せずに、2つの変数の値を交換します これらは再び、おそらく実際の使用はほとんどありません。低レベルでメモリを直接操作するため、より高速になるはずです。 なぜこれがほとんどのプログラミング言語で見つかるのですか?現実のユースケースはありますか?

6
スクラムマスターはタスクを割り当てることができますか?
私たちはプロジェクトでスクラムをフォローしています。ほとんどの場合、スクラムマスターがタスクを割り当てます。しかし、私は多くのスクラムの本を読んで、スクラムが逆に機能し(「プル」アプローチ)、チームメンバーがタスクや機能を取り上げることを読みました。スクラムマスターはタスクに正しいアプローチを割り当てていますか、それともアジャイルイデオロギーに反していますか?

3
UIテキストの「自分のもの」と「あなたのもの」
ユーザーのものを参照するときは、たとえばMyまたはYourを使用する必要があります。 マイカート| 私のアカウント| 私のウィッシュリスト または あなたのカート| あなたのアカウント| あなたのウィッシュリスト あなたの使用を主張するこの記事を見つけました。flikrはこれを行うと言っています。また、MySpaceとMyYahooは間違っていると言っています。 また、アマゾンがあなたの用語を使用していることに今日気づきました。しかし、彼らはバリエーションをテストし、最適なものを見つけることの達人であると聞いたので、彼らのサイトで見たものは最高のバリエーション、または単に彼らが現在テストしているものかもしれません。 個人的には自分の見た目が良いのが好きですが、それは私の意見です。 どう思いますか?顧客へのより良い影響は何でしょうか?それは本当に重要ですか?

8
なぜオープンソースではなくフリーウェア(クローズドソース)なのですか?
ソフトウェアをフリーウェアとしてリリースしているのに、ソースコードをリリースしない人がいるのはなぜだろうか。何故ですか?いくつかの理由を考えることができますが、それらのほとんどはあまり意味がありません。なぜソースを閉じたまま、プログラムを自由に利用できるようにしたいのですか(無料で、無料のように無料ではありません)?

9
保守性の問題があるプロジェクトで新しいチームリーダーとして何をすべきか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 保守性の問題を抱えたコードプロジェクトを担当しました。プロジェクトを安定した足場にするために何ができますか? 私は、単体テスト、IOC、MEF、静的クラス、純粋なデータセットなど、多くの重要なものが欠けている非常に大きな多層.NETシステムで作業している場所にいることに気づきました。わずか24年ですが、私はここに3年近く滞在しました(このアプリは5年間開発中です)。主に時間の制約により、他のがらくたに合うようにたわごとを追加しています。空き時間に多くのプロジェクトを行った後、これらすべての概念がどれほど重要かを理解し始めました。また、従業員の交代により、私はこのプロジェクトのチームリーダーになりました。このアプリを改善するためのスマートな方法を考え出したいと思います。経営陣に価値を説明できる方法。私は何をしたいのかというアイデアを持っていますが、それらはすべて前もって大きな利益を得ることができず、とても圧倒的です。人々がどのようにこれに対処したか、または対処したかについての物語は、非常に興味深い読み物です。ありがとう。


11
開発者として、組織内の他の誰も気にかけない場合に問題を報告するのは私たちの仕事ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 編集: 指摘する必要があります。私の個人的な見解は、私は積極的に取り組むべきだということでした。私は時々自分の舌を噛まなければならないことを知っています、そして私はコミュニティのインプットを得たいと思っていました(これは当時のことでした)。 SOファミリーのサイトで、これを尋ねるのに適切な場所を見つけることができませんでした。 ここにシナリオがあります- 小さな組織<70人の従業員 ノーQA部門 毎日数千人が閲覧するウェブサイト。 私は唯一のウェブサイト開発者です IE6でサイトが壊れているという苦情は一度もありません。 私たちのサイトは何年もIE6で機能していませんでした。私が置き換えた人は、それを作成した人がIE7でのみ「テスト」していたに違いありません。私はVirtual PCをIE6で起動しましたが、私たちのサイトは完全に混乱しています。それらが非常に文字化けしている一部のメニュー項目は選択できません。それはひどく見えます。 繰り返しになりますが、バグを積極的に探し出すのは私たちの仕事ですか、それともお客様の要望を修正するだけですか? 個人的には、この機会を組織で活用して、IE6のサポートまたは互換性に対する期待を下げたいと考えています。

1
ライセンスの保証免責条項セクションが通常(常に?)叫ばれるのはなぜですか?
たとえば、オープンソースイニシアチブの3条項BSDライセンスおよびMITライセンスのテンプレートには、全額保証免責事項が含まれていますが、ライセンスの残りの部分は通常の大文字で書かれています。 これには本当の理由がありますか?または、保証の免責事項を読みにくくするのは単なる伝統ですか?
19 licensing 

5
標準コードレビューには何が含まれていますか?
私の会社では、どの機能が実装され、どのようなバグが修正されるかについて、コードを書いた人によって送信されたメールでの議論です。そして、メールを受け取ったレビュアーは、コードをレビューし、自分の意見でコードの品質と編集方法を議論します。標準コードレビューには何が含まれていますか?

11
.NET Reflectorはもはや無料ではありません-誰もがこれについてどう感じていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 3月にリリースされる.NET Reflectorの次期バージョンには、無料バージョンがなくなります。 .NET Reflectorは、プログラマーのLutz Roederによって書かれた無料のユーティリティとして始まり、すぐに多くのプログラマーにとってかなり不可欠なものになりました。約4年後、彼はそれをRedGateソフトウェアに販売しました。RedGateソフトウェアはそれ以来無料バージョンを維持し、約1年前に機能を追加して99ドルから開始する「Pro」バージョンを維持しました。 新しいバージョンには無料版がなくなり、非Proバージョンでは35ドルになり、既存の無料版は5月末まで引き続き機能します。 一方で、既存の無料版が消滅するのは面倒ですし、明らかに無料版の方が望ましいと思います。一方、私はRedGateがどこから来ているかを尊重し、ライセンスのコストは法外に高くはありません。さらに、より頻繁な更新が推奨される場合があります。 編集:私はもともと誰にとっても35ドルだと言っていましたが、このFAQによると、まだProバージョンがあります。
19 reflector 

2
RAIIとは?例?
RAIIという用語が使用されるときは常に、人々は実際には初期化の代わりに脱構築について話しています。私はそれが何を意味するのかを基本的に理解していると思いますが、よくわかりません。また、C ++は唯一のRAII言語ですか?JavaまたはC#/。NETはどうですか?
19 c++ 

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