Home

Приложения:

Проекты:

Документация:

Форум
/Главная/index.html

Добро пожаловать на мою домашнюю страницу!

Последнее обновление 19/2/2006.
Здесь будут собраны наиболее интересные примеры программ, над которыми я работал.

Пока выложил только один проект - Web-based application server. Говоря коротко, это приложение на C++, которое принимает HTTP-запросы, формирует SQL-запросы к базе данных (MySQL), форматирует HTML-страницу в соответствии с шаблонными файлами и посылает ее назад клиенту в браузер. В сервере реализованы следующие идеи:
  • Многопоточность: один процесс занят исключительно тем, что принимает запросы на соединения из сокета (функция accept) и помещает эти запрос в очередь; в то же время несколько процессов-обработчиков вынимают запросы из очереди и обслуживают их.
  • Скриптовый язык на стороне сервера, на котором написаны шаблоны страниц. Язык понимает декларирование простых переменных, функций и некоторых структур, операторы if и while, блочные операторы произвольной вложенности, действия над числами и строками произвольной сложности.
С практической точки зрения эта система довольно бесполезна, так как существует множество гораздо более продвинутых систем подобного назначения. Но некоторые использованные здесь приемы могут быть интересны программистам. Например:
  • Контейнерные и строковые классы реализованы в собственной библиотеке без использования STL.
  • В иерархии классов бизнес-логика отделена и не зависит от отстальных низкоуровневых классов типа классов-оболочек БД или ОС.
  • Нет глобальных переменных.
Просмотреть код можно здесь, а скачать здесь. Директории организованы следующим образом:
  • collection - постые типы данных (string, datetime, exception) и контейнерные библиотеки (массивы, векторы и бинарные деревья) далее>>
  • os - классы-оболички для доступа к ресурсам ОС (файлы, директории, сокеты, нити) далее>>
  • sql - классы для манипуляций с SQL-данными далее>>
  • dbdrivers - классы для доступа к доступа к БД далее>>
  • lang - скриптовый язык, исполняемый на сервере далее>>
  • app - классы, специфичные для конкретного приложения, а также классы обработки HTTP-запросов, управления HTTP-сессиями и процессами-обработчиками далее>>
  • db - SQL-скрипты для создания и инициализации таблиц в БД;
  • mhtml - шаблоны для форматирования страниц.


Rambler's Top100

Resources