8

我有许多正在迁移到 .NET 的 COBOL 程序员。我发现很多人很难采用/理解 OO 编程原则。我没有任何 COBOL 经验,因此我找到很少有相似之处的能力非常有限。

我不可能说“忘记你 20 年的经验。这是全新的”,但我还没有类比和工具来做得更好。

您对我有什么建议可以帮助他们了解 .NET 世界?

4

8 回答 8

10

我之前有这个问题,因为我是团队负责人,我有五个 COBOL 开发人员;他们在一般编程方面的经验是我的 4 倍。

正如您所注意到的,您必须从 OO 编程基础开始。然后,如果可以的话,尝试结对编程(一个 .NET 开发人员 + 一个 COBOL 开发人员)。这就是我正在做的事情,而且效果很好。

这也可能有用:Microsoft .Net for COBOL 程序员

于 2009-09-20T21:51:00.783 回答
8

解决这个问题的方法是从 COBOL 程序员的角度考虑问题。这对他们来说是一段很长的路程,因此尽可能放置脚凳以帮助他们行走是最重要的。

大多数 COBOL 程序员几乎没有或没有桌面经验。将没有 OOP 经验。可能很少或根本没有网络。等等。

但是,如果他们编写了结构化的 COBOL 代码,他们将对函数是什么有一个很好的感觉。尽管 COBOL 段落与函数并不完全相同,但大多数优秀的 COBOL 程序员都会很快掌握这个概念。建立在 20 年来深入研究的结构化编程概念之上。结构导致功能,功能导致 OOP。

大多数有这么多经验的 COBOL 人应该对业务逻辑有很好的理解。用那个。尽快摆脱 OOP 的虚假“正方形和三角形是形状”示例,让他们专注于他们可能已经非常熟悉的事情 - 例如,储蓄和支票是账户,他们有这些共同点......等等.

他们肯定会理解基于文件的程序。一开始就忘记花哨的 GUI 东西。让他们编写模仿他们在 COBOL 中所做的程序,但将它们简化为 OOP 概念的程序。他们了解记录。记录与结构没有太大区别,结构与类没有太大区别。等等。

大多数 COBOL 程序员都会了解事务处理。用那个。它应该提供丰富的材料用于教授 OOP 和 .Net(或任何其他技术)的许多不同 API。

指定一位经验丰富的 .Net 开发人员作为他们的导师。让他进行代码审查,提供建议等。不要只是向 COBOL 人员扔几本书和大量新的 MS 软件,并期望他们会游泳。这是灾难的处方。他们需要一些牵手和鼓励。但是您很可能会在该组中找到一些可靠的 .Net 人员,保持您对当前系统的了解。

于 2009-09-21T00:12:33.190 回答
6

从让他们使用对象开始,而不是期望他们自己提出一个伟大的系统范围的 OO 设计。

您可以像我的 CS 教授简介所做的那样 - 设计类并为它们存根 - 只需将方法实现留给他们自己弄清楚。这样,他们将有机会习惯语法、使用对象、范围等,而无需理解良好 OO 设计的复杂性。

于 2009-09-20T21:59:29.413 回答
2

[声明 - 由 COBOL 供应商发布]

作为一个最近试图自己掌握 COBOL 和 .NET 的人(尤其是作为一个长期失职的程序员!,我发现最难的部分是理解 .NET 框架。调用方法的“单词”非常简单,难的是找到你想用的方法!VS中的智能感知很棒,但你仍然需要知道从哪里开始!

我还会向您指出这个站点,该站点有一个很好的 COBOL 与 C# 和 VB 比较图表:http: //www.codeproject.com/KB/net-languages/COBOLvsVBvsCSharp.aspx

Micro Focus 正在做一些非常有趣的事情,以使 COBOL 对 .NET 更加友好,但我最好不要在此详细介绍。查看 Micro Focus 网站了解更多信息。

于 2010-03-26T15:56:52.060 回答
1

取决于你想让他们做什么。这可能是一个陡峭的学习曲线。

你需要最小化学习曲线。

如果我没记错的话,COBAL 是一种 wordie 语法(不像 C 使用符号来包含其结构),所以 VB.Net 可能是您的团队可以最快掌握的语言。

然后看看http://www.learnvisualStudio.net <它有很多视频

你会感兴趣的主要系列是

视觉基础 101

Visual Basic 201 - 面向对象的编程和设计模式

这将向您介绍语法和面向对象编程的一些知识。

然后查看其他视频数据访问(ADO)慢慢提高技能水平。这不会是一夜之间的事情

高温高压

戴夫

于 2009-09-20T21:54:53.620 回答
1

我曾经和一位经验丰富的 COBOL 开发人员一起在一个 .Net 项目上工作,我一次又一次注意到数据类型不需要检查的假设(当您有 COBOL 经验时,这是可以理解的,所有只是一串与某种格式相关的字符):其他东西很快就学会了,但这个习惯花了很长时间才消失。

于 2009-09-24T07:59:38.057 回答
0

这不是一个真正的答案,只是一个我觉得有用的链接。大多数面向对象的教材使用相同的旧概念来教授对象和类 - 动物层次结构等......我觉得这篇文章令人耳目一新,因为它有点像真正的果汁:如何将系统分解成它的初始类和对象: http: //archive.eiffel.com/doc/manuals/technology/oosc/finding/page.html

于 2009-09-21T03:02:09.133 回答
0

最重要的是要记住 .NET 不是一种编程语言。COBOL 是一种编程语言。

如果您想让 COBOL 程序员高效地生成 .NET 应用程序,那么请他们通过用这些语言制作一些小型应用程序的原型来审查和评估 VB.NET 和 IronPython。一旦他们尝试了 VB.NET 和 IronPython,就让他们选择以后要使用的语言,并用所选语言组织一些培训。

不管你做什么,在他们证明他们可以处理 VB.NET 或 IronPython 之前,不要让他们使用 C#。如果您有一系列计算机语言,其中包含 C++、Java 和 C#,处于复杂、技术性、标点符号的末端,那么 COBOL 在另一端是简单的、面向业务的和纯文本的。VB.NET 和 IronPython 都更接近于 COBOL。

如果我经营这家商店,我会跳过评估并开始使用 IronPython 销售它们,因为我认为从长远来看这是一个更好的选择,而且 Python 技能也可以用于 Linux/UNIX 项目或 Java 项目就像在 .NET 中一样。

重要的是让这些人编写和调试一些在 .NET 上运行的实际代码,以便他们感受一下,并找出一些合理的方法来处理他们熟悉的事情,例如 MOVE CORRESPONDING 和 88 级。

于 2009-12-18T13:22:30.577 回答