Java/.NETアーキテクトを見分ける10の質問 ( by @yfakariya ) - 猫とC#について書くmatarilloの日記
おかしなところあったら誰か突っ込みお願いします。。。
1. try-catch-finally が try-catch および try-finally について不適切である理由を述べよ(try-catch-finally のほうが多くの場合適切であると思う場合はその理由を述べよ)
どれが適切かはケースバイケース。
try-catch のスコープはできるだけ狭くすることが推奨されるため、それに従うと try-catch-finally よりも、try-finally の中に try-catch がネストされることが多くなる。が、個人的にはキャッチ対象の例外が他にスローされる可能性がないのならば、スコープを広げて try-catch-finally を使用しても良いと考える。
2. Unicode で制御文字を検出する正規表現を記述せよ。
[^\d\w\s]
自信がなかったので PowerShell で検証したけど問題なさそうかな。。。
3. UTC 時刻とローカル時刻のメリットとデメリットについて説明せよ。
UTC 時刻はロケール非依存のため世界共通で使用できるが、直観的ではない。
ローカル時刻は直観的であるが、ロケール依存のため世界共通で使用できない。
4. 基底クラスとインターフェイスの使い分けについて述べよ。ただし、セマンティクスとバージョニングの観点は必ず含めること。
ユーザーが実装するべき型に対して、概念的に汎化しているのならば基底クラス。
ユーザーが実装するべき型に対して、規約を表すのならばインターフェイス。
バージョニングってのは、、、基底クラスならば型を拡張する際に仮想メソッドとすることでユーザー側の対応を必須にせずに済む、ってことかな…?使い分けの基準にはしないなぁ。。。
5. Windows NT と Linux それぞれにおいて、ファイルのアップロードプログラムのセキュリティのためのアクセス権およびユーザー権限の設定について述べよ。
次のような要件を想定。
・アプリケーション形態:Web Application (イントラネット)
・認証方式:Windows 認証
・ファイルの格納方法:ファイルシステム
・アップロード許可範囲:限られたユーザーのみ
この場合、グループを作成し、そのグループに対して Write のアクセス権を付加。アップロードを許可するユーザーはそのグループに所属させる。
Linux はさっぱり。
6. 分散環境における同期呼び出しと非同期呼び出しについて、それぞれの利点と欠点を上げ、比較せよ。
同期呼び出しはシンプルに処理できるが、処理中の空きリソースが無駄。
非同期呼び出しはリソースを有効的に使用できるが、結果を受け取る必要がある場合は処理が複雑になりがち。
7. Web AP のスケーラビリティを向上させるための方法を 3 つ以上上げよ。必要であればまだ未リリースの技術を使用しても構わない。
・ロードバランサー
・Key-Value ストア
・分散処理フレームワーク
8. TCP/IP プロトコル上で WS-Reliable Messaging を採用する意義を述べよ。
TCP/IP はプロトコルレベルでは信頼性を保証しないけれど、WS-Reliable Messaging を採用することで信頼性を保証できるようになる。
9. MVC パターンの目的、メリット、デメリットを述べよ。
テスト容易性や保守性が向上する。
MVC パターンを想定して作られていない高機能 UI コントロールとの相性が悪い場合がある。
10. レイヤーアーキテクチャの欠点と適用すべきでない事例をあげよ。
レイヤーアーキテクチャをドメインモデル主体の3層構造として。
欠点としては、仕様として扱うデータの種類が増えた場合、全レイヤーに影響が出る。
適用すべきでない事例は、ドメインロジックをほぼ持たず、画面上の項目とデータベース上の項目がほぼ一致する単純なデータ管理システム等には適用すべきではない。
トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/299-14c22bfe