.NET に移行している COBOL プログラマーが何人かいます。私は、OO プログラミングの原則を採用/理解するのに苦労していることに気づきました。私は COBOL の経験がないので、いくつかの類似点を見つける能力は非常に限られています。
「20 年の経験を忘れてください。これはすべて新しいことです」と言いたいわけではありませんが、私はまだより良いことをするための類推やツールを持っていません。
彼らが .NET の世界を理解するのを助けるために、私に何をお勧めしますか?
私は以前、チーム リーダーであり、5 人の COBOL 開発者がいたため、この問題を抱えていました。彼らは、プログラミング全般において、私の 4 倍の経験を持っていました。
お気づきのように、OO プログラミングの基礎から始める必要があります。次に、可能であれば、ペア プログラミング (1 つの .NET dev + 1 つの COBOL dev) を試してください。これは私がやっていたことで、とてもうまくいきました。
これも役に立つかもしれません: COBOL プログラマー向けの Microsoft .Net
これを実行する方法は、COBOLプログラマーの観点から物事を考えることです。これは彼らが横断するのに非常に長い距離であるため、彼らが歩くのを助けるために可能な限りフットスツールを出すことが最も重要です。
ほとんどのCOBOLプログラマーは、デスクトップの経験がほとんどないか、まったくありません。OOPの経験はありません。おそらくネットワークはほとんどまたはまったくありません。等。
ただし、構造化されたCOBOLコードを記述している場合は、関数が何であるかを非常によく理解できます。COBOL段落は関数と厳密に同じではありませんが、ほとんどの優れたCOBOLプログラマーはその概念をすばやく理解します。20年間それらに掘り下げられてきた構造化プログラミングの概念に基づいて構築します。構造はOOPにつながる機能につながります。
これほど多くの経験を持つほとんどのCOBOLの人々は、ビジネスロジックを非常によく理解している必要があります。それを使用してください。偽の「正方形と三角形は形である」OOPの例からできるだけ早く離れて、すでに非常に快適である可能性のあるものに焦点を当てるようにします。たとえば、普通預金とチェックはアカウントであり、これらの共通点があります...など。
彼らは確かにファイルベースのプログラムを理解するでしょう。最初は派手なGUIのことは忘れてください。COBOLで行っていたことを模倣するプログラムを作成させますが、OOPの概念を容易にします。彼らは記録を理解しています。レコードは、クラスとあまり変わらない構造体とそれほど変わりません。等々。
ほとんどのCOBOLプログラマーは、トランザクション処理を理解します。それを使用してください。OOPや.Net(またはその他のテクノロジー)のさまざまなAPIを教えるために使用できる豊富な資料を提供する必要があります。
経験豊富な.Net開発者をメンターとして割り当てます。彼にコードレビューをしてもらい、アドバイスを求めてもらいましょう。COBOLの人々に数冊の本とたくさんの新しいMSソフトウェアを投げて、彼らが泳ぐことを期待しないでください。それは災害の処方箋です。彼らはいくつかの手を握って励ましを必要とするでしょう。しかし、そのグループの2、3人の堅実な.Netの人々を少し先に見つけて、現在のシステムに関する知識を維持しているかもしれません。
システム全体の優れた OO 設計を独自に考え出すことを期待するのではなく、オブジェクトを使用させることから始めます。
私の CS 入門の教授が行ったように、クラスを設計してそれらをスタブ化することができます。メソッドの実装は、彼らが理解できるようにしておくだけです。そうすれば、良い OO 設計の複雑さを理解することを期待されることなく、オブジェクトやスコープなどを使用して構文に慣れる機会が得られます。
[宣言-COBOLベンダーによる投稿]
最近COBOLと.NETを自分で理解しようとしている人として(特に、長年の経験を積んだプログラマーとして!)、最も難しい部分は.NETフレームワークを理解することでした。メソッドを呼び出すための「言葉」は非常に簡単です。 、難しいのは、使用したいメソッドを見つけることです!VSのIntellisenseは素晴らしいですが、どこから始めればよいかを知る必要があります。
また、COBOLとC#およびVBの優れた比較チャートがあるこのサイトを紹介します:http://www.codeproject.com/KB/net-languages/COBOLvsVBvsCSharp.aspx
Micro Focusは、COBOLをより.NETに適したものにするために、いくつかの非常に興味深いことを行っていますが、ここではあまり詳しく説明しない方がよいでしょう。詳細については、MicroFocusのWebサイトをご覧ください。
私は経験豊富なCOBOL開発者と一緒に.Netプロジェクトに取り組んだことがありますが、何度も気付いたのは、データ型をチェックする必要がないという仮定でした(これは、すべてがCOBOLの経験を積んだときに理解できます。は、実際にはいくつかの形式に関連付けられた文字列です):他のものは非常に迅速に検出されましたが、その習慣がなくなるまでには長い時間がかかりました。
あなたが彼らに何をしてもらいたいかによって。それは急な学習曲線になる可能性があります。
学習曲線を最小限に抑える必要があります。
私の記憶が正しければ、COBAL は冗長な構文 (シンボルを使用して構造を含む C とは異なります) であるため、VB.Net はチームが最も早く習得できる言語である可能性があります。
次に、http://www.learnvisualStudio.netをご覧ください< たくさんのビデオがあります
あなたが興味を持っている主なシリーズは
ビジュアルベーシック101
Visual Basic 201 - オブジェクト指向プログラミングとデザイン パターン
これにより、構文とオブジェクト指向プログラミングについて少し紹介します。
次に、データ アクセス (ADO) の他のビデオを調べて、ゆっくりとスキル レベルを上げます。それは一夜限りのことではありません
HTH
デイブ
これは本当の答えではなく、便利だと思ったリンクです。ほとんどのオブジェクト指向の教材は、オブジェクトやクラス (動物のヒエラルキーなど) について教えるために同じ古い概念を使用しています。クラスとオブジェクト: http://archive.eiffel.com/doc/manuals/technology/oosc/finding/page.html
最も重要なことは、.NET がプログラミング言語ではないことを覚えておくことです。COBOLはプログラミング言語です。
COBOL プログラマーに .NET アプリケーションを生産的に作成してもらいたい場合は、VB.NET と IronPython のいくつかの小さなアプリケーションをこれらの言語でプロトタイピングしてレビューおよび評価するよう依頼してください。VB.NET と IronPython を試したら、次に使用する言語を選択し、選択した言語でトレーニングを計画してもらいます。
何をするにしても、VB.NET または IronPython を処理できることが実証されるまでは、C# を使用させないでください。C++、Java、および C# を含むコンピューター言語のスペクトルが、複雑で専門的で句読点がスペクトルの端にある場合、COBOL は対極にあり、単純でビジネス指向のプレーン テキストです。VB.NET と IronPython はどちらも、スペクトラムの COBOL エンドに近いものです。
私がショップを経営していた場合、評価をスキップして、IronPython を使用して販売することから始めます。長期的には、IronPython の方が良い選択であり、Python のスキルは Linux/UNIX プロジェクトや Java プロジェクトでも活用できるからです。 .NET のように。
重要なことは、彼らに .NET で実行される実際のコードを作成およびデバッグしてもらい、その感覚をつかみ、MOVE CORRESPONDING やレベル 88 などの慣れ親しんだものを処理する合理的な方法を理解できるようにすることです。