Компьютерра, 2007 № 20 (688) (Журнал «Компьютерра») - страница 59

Поскольку в настоящий момент существует масса продуктов с открытым кодом, очень неплохо было бы дать о них информацию и использовать их в программе. Грядущее вступление в ВТО может сильно ударить по карману любителям проприетарного ПО. В качестве следующего инварианта я бы выделил знакомство с паттернами программирования (чтобы знать, что велосипеды изобретены и ждут седоков [Шаблоны проектирования (паттерн, pattern) – это эффективные способы решения характерных задач проектирования, в частности проектирования компьютерных программ. Паттерн не является законченным образцом проекта, который может быть прямо преобразован в код, скорее это описание или образец для того, как решить задачу, таким образом, чтобы это можно было использовать в различных ситуациях. Объектно-ориентированные паттерны зачастую показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться. Алгоритмы не рассматриваются как паттерны, так как они решают задачи вычисления, а не проектирования.]).В качестве наиболее понятного паттерна, чье влияние может быть распространено и на массу различных задач, выходящих за рамки разработки ПО, я предложил бы MVC [Шаблон MVC широко признан как один из самых хорошо разработанных и зрелых шаблонов проектирования которые используются в данное время. При использовании шаблона MVC, обработка разбивается на три различных части, а именно на Модель(Model), компоненты представления (View) и контроллер (Controller). Модель – это объект приложения. Контроллер описывает, как интерфейс реагирует на управляющие воздействия пользователя. Вид должен гарантировать, что внешнее представление отражает состояние модели. Такой подход позволяет присоединить к одной модели несколько видов, обеспечив тем самым различные представления. Более того, можно создать новый вид не переписывая модель. (Ист.: «Приемы объектно-ориентированного проектирования. Паттерны проектирования», Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес, М., 2007;«Введение в Struts», Кевин Беделл, 2002).]. Даже элементарная задача набора красивого документа должна осуществляться именно через этот паттерн. Статики давно нет, надо учиться оперативно и быстро реагировать на изменения во внешнем мире. Касательно документов – содержание и внешнее представление должны быть разделены! Тогда любые новые требования к оформлению (статья для журнала, включение части документа в объемлющий документ, изменение требований…) удовлетворяются достаточно просто. При этом исходный текст совершенно не затрагивается. Если взять за точку отсчета именно такой подход (а он идет из «программирования» – один первоисточник информации, данные и представление обособлены), то обучение системам а-ля WYSIWYG (Word, OO, FrameMaker, PageMaker, Writer…) является танцем бульдозера, вырвавшегося на городской газон. После работы с Word восприятие студента необратимо искорежено. Начинать надо с систем типа LaTeX, Docbook или обучения CSS (прелесть CSS для веб-страниц можно оценить на www csszengarden com). Только после того, как идея MVC (или стилей) будет принята, можно переходить к Word. Тогда уже можно доходчиво объяснить, ссылаясь на полученный на предыдущем шаге опыт, назначение стилей и пользу от их применения. Можно развивать идею дальше и искать аналогии для других паттернов. В частности, паттерн Facade может быть перенесен как в область построения экспериментальных установок, так и в области сложной обработки данных. Упрощение системы, локализация знаний о специфичных данных, будь то формат картинки или протокол обмена с устройством управления шаговым двигателем – суть одно и то же.