Читаем Дефрагментация мозга. Софтостроение изнутри полностью

От автора: Я снова столкнулся с Novell в 2010 году в рамках небольшого проекта для французской национальной сети телевещания. Корпоративная система безопасности для тысяч компьютеров на разных территориальных площадках была по-прежнему построена на службе каталогов NetWare, хотя и в тесной интеграции с аналогичной службой Microsoft. Новые компьютеры с Windows Vista/7 включались в общую систему. Сама Novell в конце того же 2010 года была куплена малоизвестной компанией Attachmate за целых 2,2 миллиарда долларов и формально прекратила существование. По некоторым сведениям, за Attachmate стояла Microsoft, незадолго до того выложившая 450 миллионов на приобретение у Novell технологий.

#ifdef Windows

ДЦ: Между тем мы стали переходить под Windows. Как уже говорилось, для кода бизнес-логики, написанной на NDL, переделок не потребовалось вовсе. Клиентское приложение было переделано, но понимало описания форм, сделанных ещё под DOS. Конечно, под Windows моноширинные шрифты и формы выглядели довольно уродливо, но тем же страдал и SAP R/3.

Пришлось нам переделывать и систему печати документов под лазерные принтеры, но это отдельная маленькая история. А вот что сильно портило настроение, это старая DOS-подсистема для Btrieve. Стоило программе обратиться с запросом на сервер, и она уходила в себя. Ещё один камень в огород Novell. Поэтому вскоре у нас появился последний в развитии второй версии #ifdef.

СБ: Когда в Seller 2 появился небольшой модуль кадрового учёта, то при запуске система стала поздравлять пользователя с днём рождения. На 8 марта мы рисовали стартовый экран с поздравлениями в стихах. Один год на первое апреля мы перевернули драйвер мыши: двинешь мышь влево – курсор идёт вправо, мышь от себя – курсор вниз. В другой раз перевернули экран вверх ногами. Сейчас мне трудно представить, чтобы с утра у всех в конторе, включая директоров, появились перевёрнутые экраны и программистам за это ничего не было.

Также существовал файл настроек, управлявший цветовой гаммой интерфейса. Кто-то из нас проговорился, и пользователи про него узнали. Такой вакханалии цветов, как в отделе оптовых продаж, я не видел нигде…

#ifdef MSSQL

ДЦ:

Система стала полностью 32-разрядной, перепрыгнула на полноценную СУБД. Интересно, что в коде можно было по-прежнему встретить #ifdef VAXVMS… [105]

NDL переводил наиболее частые сообщения SQL на русский, чтобы пользователи не пугались. Приложение выдавало «табличку» – окно с сообщением на английском.

СБ: «Табличка» – термин одной из работниц склада. – Валя, почему это табличка? Это же окно сообщения… – Оно же в рамочке! ДЦ: До боли знакомое всем работающим с SQL Server сообщение « your process has been chosen as deadlock victim

» было переведено как «Вам дорогу перебежала черная кошка».

СБ: Сервер блокировок перестал использоваться после перехода на SQL Server 6.5 и отказа «Ниеншанца» от использования Novell в качестве файлового сервера. Помню, как одна из девочек-продавцов с удивлением узнала, что теперь удалённый файл нельзя восстановить, в корзине сервера его не было. Серверу блокировок стало негде работать, он был реализован в виде NLM, и его заменили на использование функции app_lock. И снова абсолютно прозрачно для бизнес-приложений – просто заменили в NDL реализацию соответствующей мета-команды.

Постскриптум

Если вы дочитали предысторию до конца, вдумайтесь в цифры. КИС, реализующая основные функции автоматизации деятельности торгово-производственной фирмы среднего размера: от бухгалтерии и складов до сборочного производства и сбыта – была разработана командой из 4–5 человек примерно за полтора года, включая миграцию с предыдущей версии. Система критичная, даже короткий простой оборачивается параличом деятельности фирмы.

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

Последние годы в ходе аудита баз данных я не раз наблюдал, как современные команды в 2–3 раза большей численности, вооружённые умопомрачительными средствами рефакторинга и организованными процедурами гибкой разработки, за год не могли родить работоспособный заказной проект, решающий несколько специфичных для предприятия задач. Сотни тысяч строк кода уходили в мусорную корзину или продолжали поддерживаться с большими трудозатратами, сравнимыми с переделкой.

В другом случае четыре с половиной программиста сумели в короткие сроки создать и в течение многих лет сопровождать КИС для французского туроператора национального (один из крупнейших) и европейского уровня. Это уже потом к ней приделали веб-интерфейс для заказов клиентов и B2B [106] -шлюз с партнёрами.

Есть о чём призадуматься, особенно желающим начать новый проект.

Ultima-S – КИС из коробки

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже