Введение

Материал из Eludia
Перейти к: навигация, поиск

Содержание

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

Допустим, в силу ряда обстоятельств принято решение о том, что роль клиентского ПО системы будет играть WEB-браузер. Может быть, ваш заказчик читает модные глянцевые газеты или доверяет вашему другу-сейлу или действительно трезво оценил ситуацию, осознав, что обилие офисов, разбросанных по необъятной стране (или планете) и острая необходимость дорабатывать логику системы в режиме реального времени недвусмысленно подталкивают его к использованию WEB.

Ваши возможности

Поскольку работа предложена именно вам, вероятно, вы можете похвастаться портфолио из нескольких (возможно, нескольких сотен) WEB-проектов. А судя по тому, что вы взяли в руки эту книгу, практически все ваши успешные проекты были публичными (рекламными) WEB-сайтами. Возможно также, у вас имеется некоторый отрицательный опыт перехода от сайтов типа "о компании-новости-как проехать" и даже продвинутых интернет-магазинов к ERP, CRM, HRM и прочим подобным вещам.

Казалось бы, форумы и чаты со сложной логикой модерирования и онлайновые супермаркеты с разветвлёнными каталогами должны разрабатываться из тех же соображений, что учётно-аналитические информационные системы. Ан нет. Попытка даже частично переиспользовать front-office от системы электронной торговли для управления её же каталогом товаров обычно отражается на удобстве использования последней отнюдь не лучшим образом.

Ваши проблемы

Front-office и back-office противоположны по своей сути, как бы банально ни казалось это заявление. Front-office предназначен для просмотра большим множеством неавторизованных пользователей и обязательно должен быть уникальным в смысле дизайна, умело навязывая клиенту превосходство стиля данной фирмы. А back-office ориентирован на активную работу ограниченного круга лиц, имеющих допуск, и дизайн его должен быть как раз стандартным, незаметным, дабы не утомлять глаз операторов. Это, а также некоторые иные аналогичные противоречия приводят, в частности, к тому, что схема "дизайн-нарезка-вёрстка-скрипты", оптимальная для публичных сайтов, довольно плохо подходит для информационных WEB-систем. Если, скажем, вы начнёте проектирование складской системы с того, что закажете дизайнеру страницу "накладная", потом страницу "остатки" и т. п., а потом начнёте последовательно переводить .psp в .php, то с очень большой вероятностью месяца через 3 ваша команда будет в основном занята выяснением одного вопроса: кто конкретно виноват.

Да, есть идеальное представление о том, что система должна быть сначала правильно спроектирована, затем адекватно реализована и, наконец, профессионально внедрена. И множество анекдотов по поводу того, какие глупые бывают менеджеры, невменяемые заказчики и себе-на-уме программисты. А можно ведь и не принимать вышеупомянутую модель за идеал. Стоит честно признать, что на этапе постановки задачи клиент при всём желании не вспомнит всего, что ему требуется. И тем более не угадает, что ему потребуется через месяц. Ни один внедренец не вникает в бизнес клиента достаточно глубоко — иначе он меняет род занятий. Аналогично если бы кто-то из среднего звена мог изобразить структуру проекта с точностью до таблицы и подпрограммы — так и генерировал бы он программный код, а не рисовал бы стрелки карандашом на бумаге (или в Visio — суть та же).

Это не к тому, как, дескать всё безнадёжно. Просто информационная система — это не самолёт, который сначала (целиком) рассчитывают, потом (целиком) чертят, а потом (целиком) собирают. Это скорее растение, которое, находясь в благоприятных условиях, живёт само по себе. Появляются новые побеги, какие-то из старых отмирают, вода и энергия приходят и уходят, но целостность организма остаётся. И как мать не проектирует свой плод, а просто служит для него родной средой, так и интеллект программистов — всего лишь почва для произрастания ПО: благодатная или не очень. Осознание этого факта заметно упрощает разработку и поддержку.

Наше решение

Конкретизируя нашу философскую посылку, скажем, что следует приготовиться быстро модифицировать информационную систему в ответ на непредсказуемые запросы. Для этого необходимо:

  • определить простые и универсальные правила построения будущей системы;
  • установить строгую, но понятную и естественную дисциплину именования программных объектов;
  • реализовать избранные принципы в виде базового ПО.

Здесь изложен трёхлетний опыт распределённой неформальной команды разработчиков, именующей себя "Лаборатории Eludia". Придерживаясь описанного подхода, мы реализовали десятки информационных систем с WEB-интерфейсом. На момент написания этого текста количество активных пользователей данных систем измеряется тысячами, объёмы БД — гигабайтами, а учитываемые денежные суммы — триллионами рублей. В общем, не то чтобы индустриальный стандарт, но вам, вероятно, подойдёт.

Наше "базовое ПО", упомянутое выше — это комплекс программных модулей и утилит, именуемый Eludia и свободно распространяемый согласно условиям лицензии GPL. Он базируется на популярнейших открытых продуктах: WEB-серверах Apache (впрочем, есть рабочая инсталляция под MS Internet Information Server) и интерпретаторе языка Perl 5. Для хранения данных может подойти любая реляционная СУБД, доступная через интерфейс DBI. На сегодняшний день эксплуатируются Eludia-системы на базе MySQL, Oracle и MS SQL Server.

Если у вас есть возможность выбрать платформу разработки для вашего будущего проекта, мы приглашаем вас ознакомиться с Eludia при помощи настоящего руководства и использовать его на практике. Если же в вашей корпорации считается неэтичным использовать слишком свободное ПО, вас штрафуют за употребление слова "Perl" или вы просто привыкли всё делать сами, наша документация всё же может оказаться для вас небесполезной, поскольку большинство описываемых здесь идей вполне рализуемы на любой программной платформе.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты