среда, 7 мая 2014 г.

Как разместить исходный код в комментариях Blogger

Иногда возникает потребность разместить исходный код в комментариях Blogger. К сожалению, если ничего не предпринимать, как минимум, начальные пробелы, отражающие структуру исходного текста, будут удалены при публикации комментария, что сделает текст нечитаемым.

среда, 30 апреля 2014 г.

Интерфейсы и исключения в деструкторах

Часто можно встретить рекомендацию, что финализация должна быть всегда успешна.
Ну, в том смысле, что в процессе финализации не должно случаться исключений. А если встречаются, они там же (в процессе финализации) должны обрабатываться.
Пост о безуспешной попытке выйти за рамки ограничений...

пятница, 25 апреля 2014 г.

Мартин Фаулер. Предметно-ориентированные языки программирования

Этот пост о книге Мартина Фаулера, которую он анонсировал здесь, а знакомство с этим постом совпало по времени с моментом, когда нам пришлось разрабатывать свой DSL для описания SQL-запросов в программном коде на Delphi.

пятница, 11 октября 2013 г.

Где кончается SELECT?

Тема, которая сегодня неожиданно возникла, удивила и заставила задуматься о вещах, которые ранее воспринимались совершенно утилитарно.
Ну кто не пользовался оператором SELECT? - Все пользовались. А вот где он кончается и начинается следующий? ;-)
То, что я скажу далее — очень спорно, об этом нигде (в известных мне местах) не говорится, и далее следует исключительно мнение автора, т. е. моё личное.

воскресенье, 15 сентября 2013 г.

Предложил своим студентам попробовать FireMonkey

Программа для V-го курса предусматривает разработку интерактивного приложения с использованием Delphi. Там "многоходовая комбинация", фактически, разработка прототипа информационной системы, на примере которой иллюстрируются реальные задачи. Построение элементов управления по метаданным БД, динамическая компоновка форм из фреймов, загружаемых отдельно, стыковка окон (docking) содержащих представления таблиц на рабочем столе (вкладка, подобно вкладке браузера) и интерактивная установка отношений master-detail меду ними, сохранение и загрузка рабочих столов через фабрики...

вторник, 10 сентября 2013 г.

Куда может завести "свой DSL". Часть 3. Резюме.

Как я сказал в предыдущей части, неразрешимых проблем с языком не было. Более того, его пытались даже использовать для написания триггеров уровня приложения, целей экспорта данных из наших систем в другие.
Но шло это всё с большим "скрипом", поскольку "отчётная заточенность" языка давала о себе знать на каждом шагу.
Внимательный читатель сразу вскинется: "Позвольте! Так и должны быть проблемы! Ведь DSL в силу своей domain-specific совершенно не предназначен для решения задач из другой предметной области!" и, возможно, в запале добавит: "Для другой предметной области нужен другой DSL!"

воскресенье, 8 сентября 2013 г.

Куда может завести "свой DSL". Часть 2. Язык.

Предыдущую часть истории я закончил словами о том, что язык удовлетворяющий предъявляемым к нему требованиям был создан.
Правда, я забыл упомянуть одну существенную деталь.
Мы стремились к тому, чтобы язык был простым.
Это было действительно важно, поскольку мы и сами не хотели усложнять себе жизнь, и пользователю хотели дать инструмент и "монстра" создавать не хотели.