Помогаем облегчить программистам на COBOL .Net. Каковы ваши предложения? - PullRequest
8 голосов
/ 21 сентября 2009

У меня есть несколько программистов на COBOL, которые переходят на .NET. Я нашел много усилий, чтобы принять / понять принципы программирования ОО. У меня нет опыта работы с COBOL, поэтому моя способность находить несколько сходств очень ограничена.

Я никоим образом не хочу сказать «забудь о своем двадцатилетнем опыте. Это все новое», но у меня пока нет аналогий и инструментов, которые могли бы сделать лучше.

Что вы мне посоветуете, чтобы помочь им понять мир .NET?

Ответы [ 8 ]

10 голосов
/ 21 сентября 2009

У меня была эта проблема до того, как я был руководителем группы, и у меня было пять разработчиков COBOL; у них было в 4 раза больше опыта в программировании, чем у меня.

Как вы заметили, вы должны начать с основ программирования ОО. Затем, если можете, попробуйте парное программирование (один .NET dev + один COBOL dev). Это то, что я делал, и это работало очень хорошо.

Это также может быть полезно: Microsoft .Net для программистов на COBOL

8 голосов
/ 21 сентября 2009

Чтобы решить эту проблему, нужно думать о вещах с точки зрения программиста на языке COBOL. Это огромная дистанция, по которой они должны проходить, поэтому первостепенное значение имеет изготовление ножных табуретов, где это возможно, чтобы помочь им ходить.

Большинство программистов на COBOL практически не имеют опыта работы с компьютером. Не будет опыта ООП. Вероятно, мало или нет сети. И т.д.

Однако, если они написали структурированный код на языке COBOL, они будут очень хорошо понимать, что такое функция. Хотя абзацы COBOL не совсем совпадают с функциями, большинство хороших программистов на COBOL быстро поймут это. Развивайте концепции структурированного программирования, которые были изучены в течение 20 лет. Структура приводит к функциям, которые приводят к ООП.

Большинство людей на COBOL с таким большим опытом должны очень хорошо понимать бизнес-логику. Используйте это. Избавьтесь от поддельных «квадратов и треугольников - это формы» примеров ООП как можно скорее и заставьте их сосредоточиться на вещах, с которыми им уже может быть очень удобно - например, Сбережения и проверки - это Счета, и они имеют общие черты ... и т. д.

Они, безусловно, поймут файловые программы. Забудьте о модных графических интерфейсах в начале. Заставьте их писать программы, которые имитируют то, что они делали в COBOL, но упрощают их в концепции ООП. Они понимают записи. Записи не очень отличаются от структур, которые не очень отличаются от классов. И так далее.

Большинство программистов на COBOL понимают обработку транзакций. Используйте это. Он должен предоставить множество материалов для обучения ООП и множество различных API-интерфейсов .Net (или любой другой технологии).

Назначьте опытного разработчика .Net своим наставником. Пусть он сделает рецензии на код, будет доступен для совета и т. Д. Не просто бросьте пару книг и множество новых программ для MS на людей из COBOL и ожидайте, что они будут плавать. Это рецепт катастрофы. Им понадобятся руки и ободрение. Но вы вполне можете найти пару надежных .Net людей в этой группе немного ниже по линии и держать свои знания о текущих системах на борту.

6 голосов
/ 21 сентября 2009

Начните с того, что они используют объекты, а не ожидают, что они сами придут к великолепному общесистемному дизайну ОО.

Вы можете сделать то, что сделал мой преподаватель от введения к CS - спроектировать классы и выставить их для них - просто оставив реализации методов для них, чтобы они выяснили. Таким образом, у них будет возможность привыкнуть к синтаксису, используя объекты, область видимости и т. Д., Не ожидая, что вы поймете тонкости хорошего ОО-дизайна.

2 голосов
/ 26 марта 2010

[декларация - проводка поставщиком COBOL]

Как человек, который недавно пытался разобраться с COBOL и .NET сам (особенно как давний программист!), Я обнаружил, что самое сложное - это понимание структуры .NET. «Слова» для вызова метода довольно просты, трудно найти метод, который вы хотите использовать! Intellisense в VS великолепен, но вам все равно нужно знать, с чего начать!

Я бы также указал вам на этот сайт, где есть отличная сравнительная таблица для COBOL и C # и VB: http://www.codeproject.com/KB/net-languages/COBOLvsVBvsCSharp.aspx

Micro Focus делает некоторые действительно интересные вещи, чтобы сделать COBOL намного более дружественным к .NET, но я бы не стал вдаваться в подробности. Для получения дополнительной информации посетите веб-сайт Micro Focus.

1 голос
/ 24 сентября 2009

Однажды я работал над проектом .Net с опытным разработчиком на языке COBOL, и снова и снова замечал, что типы данных проверять не нужно (что понятно, если у вас есть опыт работы с COBOL). где все на самом деле просто строка символов, привязанных к какому-либо формату): другие вещи были подобраны довольно быстро, но эта привычка заняла много времени, чтобы умереть.

1 голос
/ 21 сентября 2009

В зависимости от того, что вы хотите, чтобы они сделали. это может быть крутая кривая обучения.

вам нужно минимизировать кривую обучения.

если я правильно помню, COBAL - это словесный синтаксис (не такой как C, который использует символы, чтобы содержать его структуру), поэтому VB.Net может быть языком, который ваша команда может выбрать быстрее всего.

тогда взгляните на http://www.learnvisualStudio.net <там много видео </p>

основные серии, которые вас заинтересуют:

Visual Basic 101

Visual Basic 201 - Объектно-ориентированные шаблоны программирования и проектирования

это познакомит вас с синтаксисом и немного с объектно-ориентированным программированием.

затем посмотрите другие видео, чтобы получить доступ к данным (ADO), медленно повышая уровень навыка. Это не будет ночной вещью

НТН

Дэйв

0 голосов
/ 18 декабря 2009

Самое главное - помнить, что .NET не является языком программирования. COBOL - это язык программирования.

Если вы хотите, чтобы программисты на COBOL продуктивно создавали приложения .NET, попросите их проанализировать и оценить VB.NET и IronPython, создав прототип некоторых небольших приложений на этих языках. После того, как они попробуют VB.NET и IronPython, позвольте им выбрать, какой язык использовать в будущем, и организовать обучение на выбранном языке.

Что бы вы ни делали, не позволяйте им использовать C #, пока они не продемонстрируют, что они могут работать с VB.NET или IronPython. Если у вас есть спектр компьютерных языков с C ++, Java и C # на сложном, техническом, знаке препинания в конце спектра, то на другом конце COBOL будет простым, ориентированным на бизнес и простым текстом. И VB.NET, и IronPython находятся ближе к концу спектра COBOL.

Если бы я работал в магазине, я бы пропустил eval и начал с продажи их с использованием IronPython, потому что я считаю, что это лучший выбор в долгосрочной перспективе, а навыки Python можно использовать в проектах Linux / UNIX или проектах Java , а также в .NET.

Важно, чтобы эти парни написали и отладили некоторый реальный код, который работает в .NET, чтобы они почувствовали его и смогли найти некоторые разумные способы обработки вещей, с которыми они знакомы, такие как MOVE CORRESPONDING и Уровень 88.

0 голосов
/ 21 сентября 2009

Это не настоящий ответ, просто ссылка, которая мне показалась полезной. В большинстве объектно-ориентированных учебных материалов используются те же самые старые концепции для преподавания об объектах и ​​классах - иерархии животных и т. Д. Я нахожу эту статью освежающей в том смысле, что она как бы начинается с реального сока: как разложить систему на начальную классы и объекты: http://archive.eiffel.com/doc/manuals/technology/oosc/finding/page.html

...