10 октября 2007 г.

О пользе тренингов

Некоторое время назад мне казалось, что различные IT-семинары — пустая трата времени для опытного разработчика. Я имею в виду не конфереции, где народ общается между собой, а именно профильные семинары, где читают лекции по конкретной узкоспециализированной тематике. Мне казалось, что такую информацию можно получить самостоятельно, главное — уметь читать документацию, умные книжки... Ну, и форумы, конечно. Куда ж без них? :)

Сейчас, по долгу службы, посещая различные семинары и тренинги, понимаю, как я ошибался. Толково построенный двухчасовой тренинг может дать гораздо больше, чем самостоятельное изучение какой-нибудь книги в течение недели.

Совсем недавно я испытал легкий шок — после тренинга "Введение в UML". Надо сказать, что я относил себя к категории знающих UML "выше среднего". Поэтому шел на тренинг с мыслью о том, что я просто потеряю время — что может дать мне "введение" в область, которую я уже знаю? Вот если б что посложнее... Эх...

Я забыл о своей досаде минут через десять после начала семинара. Странно, лектор рассказывал уже давно известный мне материал, но выбирал при этом такие яркие и понятные примеры, что некоторые возможности UML вставали передо мной в новом свете.

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

Сразу вспомнилось, как два года назад мы пытались создать на UML описание предметной области проекта, но по уши увязли с ассоциациях многие-ко-многим. В результате модель мы, конечно, получили, но, честно признаюсь, она была довольно корявой. Сейчас, анализируя полученную информацию, думаю, что квалификаторы нам здорово бы тогда помогли.

Также я открыл для себя еще неизведанную мной область под названием OCL (Object Constraint Language). Раньше использовал этот язык только для описания простеньких условий и ограничений в UML-модели. Как оказалось, OCL имеет в своем арсенале довольно удобные средства, которые позволяют не изобретать велосипеды при построении модели предметной области.

Например, в OCL существуют предопределенные свойства для ассоциаций — xor и ordered. Свойство {xor}, соединенное с двумя (и более) ассоциациями, указывает на то, что в любой момент времени жизни модели существует только одна из указанных ассоциаций. А {ordered} позволяет указать для ассоциаций один-ко-многим, что множественность объектов является упорядоченной.

Я привел в качестве примера эти свойства потому, что именно их наша маленькая команда пыталась в свое время "изобрести", несмотря на прочитанную спецификацию UML 2.0. А ведь достаточно бы было пары простых семинаров "Introduction to UML", чтобы в наших головах все стало на свои места.

В общем, я теперь думаю, тренинги по специальности нужно проходить регулярно. Как по новым темам, так и по уже давно знакомым — это полезно :)

1 комментарий:

  1. Я прошёл через функциональное, модульное, объектное программирование. Теперь ещё UML.
    Кажется этому нет конца.

    ОтветитьУдалить