私は他の2人の開発者と一緒にグリーンフィールドプロジェクトに取り組んでいます。私たちはすべて請負業者であり、元のプロジェクトが基本的なフレームワークコーディングのほとんどを行っている間に、私と他の1人がプロジェクトに取り組み始めました。先月、私の仲間のプログラマーと私は、同僚による設計の決定に不満を感じていました。
ここに少し背景情報があります:
額面価格のアプリケーションは、3.5フレームワークでC#を使用する標準のn層Webアプリケーションのように見えました。データレイヤー、ビジネスレイヤー、ウェブインターフェースがあります。しかし、プロジェクトを深く掘り下げていくと、非常に興味深いことがいくつか見つかり、問題が発生しました。ディクショナリキー/値エントリのみを受け入れ、データテーブルのみを返すカスタムデータアクセスsqlHelperタイプベースがあります。エンティティオブジェクトはありませんが、すべてを実行し、永続性のためにセッションに投入される大規模なオブジェクトがいくつかあります。
一般的な考え方は、ページ(.aspx)は何もしないが、コントロール(.ascx)はすべてを行うというものです。一般的なフローは、クライアントがボタンをクリックすることです。ボタンはユーザーコントロールベースに移動し、プロセス要求を「BLL」クラスに渡します。BLLクラスはページプロセッサに移動し、次にgetControlProcessorに移動し、最後に実際に処理します。リクエスト。リクエスト自体は、文字列値のメソッド名、ストアドプロシージャ名、コントロール名、場合によっては値を渡すディクショナリで構成されています。処理のすべての切り替えは、コントロール名とメソッド名の文字列値を比較することによって行われます。
ページは、JavaScriptとテーブルの組み合わせを使用してハイパーリンク効果を作成する共通のヘッダーコントロールを介してリンクされます。また、昨日わかったように、ページに表示するコントロールを決定するためにセッション中にかなりの情報が必要なため、あるページと別のページの間の単純なハイパーリンクは機能しません。
私の仲間のプログラマーと私は両方とも、これがWebアプリケーション開発への奇妙で珍しいアプローチであると信じています。私たち二人はこのビジネスに5年以上携わっており、どちらもこのアプローチを見たことがありません。
私の質問はこれです、私たちは同僚にどのようにアプローチし、懸念を表明し、彼が批評家を受け入れたくない場合はどうすればよいですか?私たち二人は、これまでの仕事を侮辱したくはありませんが、今後は開発の悪夢になると感じています。
コメントしてくれてありがとう。
私は仕事をした人々としばらく時間を過ごし、その理由を理解するのに十分な質問をしました。
最初に理解し、次に理解するように努めます。
あなたが彼らの事柄にあまりにも早く入ると、彼らは攻撃されたと感じ、彼らは彼ら自身と彼らの快適な現状を守ろうとします。
十分な非積極的な質問をすることで、あなたは彼らの仕事に興味を示し、良い協力の基盤を確立する全体を改善するでしょう。本能的な保護のブロックを解除するには、ほとんどの人が理解されている必要があります。
それらの質問をすることはまたあなたが彼らが何をしたかを理解するのを助け、そして多分あなたは物事をする新しい方法に抵抗しているでしょう。
コラボレーションが不可能な場合もあります。これは、チームから自分自身を削除する必要があることを示すかなり良い兆候です。
私自身は気分を害することを恐れていませんが、簡単な質問をすることが役立つ場合があります。
この特定のケースでは、「ユーザーが右クリックして[新しいタブで開く]を選択した場合はどうなりますか?」効果的かもしれません、そして「ユーザーが戻るボタンが好きならどうしますか?」間違いなくなります。