И. А. Семёнов

Список книг автора И. А. Семёнов



    Программирование ПРОТИВ проектирования

    И. А. Семёнов

    Уже давно известно, что разработка нового программного обеспечения (ПО) «с нуля» – далеко не всегда оправданный шаг. Были созданы различные методики, позволяющие значительно сократить или приблизиться к ожидаемым денежно-временным ресурсам, связанные с конкретным проектом. Процесс технического проектирования носит доминирующий характер над всеми другими этапами разработки ПО, в том числе и над следующим непосредственно за ним этапом физического проектирования (кодирования). Однако высококлассный специалист, имеющий определенные навыки при выполнении заданий под проект, уже на этапе своей работы может обнаруживать «неудобные» места, как в ней, так и в предшествовавшей работе команды проектировщиков. Назовём данную особенность – постпроектирование (мини-проектирование на этапе кодирования). Такой подход обусловливает двустороннюю связь этапов технического и физического проектирования.

    Динамически загружаемые библиотеки: структура, архитектура и применение (часть 1)

    И. А. Семёнов

    DLL – это сокращение от Dynamic Link Library (динамически загружаемая библиотека). Исполняемый код в DLL не предполагает автономного использования. Перед тем как можно будет приступить к использованию, необходимо загрузить DLL в область памяти вызывающего процесса (т.е. DLL не может выполняться сама по себе – ей обязательно нужен клиент). Это явление носит название «проецирование DLL на адресное пространство процесса». И это не удивительно, если вспомнить тот факт, что процессор работает не только с регистрами, но и с адресами памяти. Поэтому каждому объекту DLL требуется свое место «под солнцем», чтобы иметь возможность быть выполненным при вызове. В конечном коде exe-файла, который генерирует компилятор, не будет инструкций процессора, соответствующих коду данной функции. Вместо этого будет сгенерирована инструкция вызова соответствующей функции (call).

    Динамически загружаемые библиотеки: структура, архитектура и применение (часть 2)

    И. А. Семёнов

    С формальной точки зрения Dynamic Link Library (DLL) (динамически загружаемая библиотека) – особым образом оформленный относительно независимый блок исполняемого кода. DLL используются множеством приложений. Все приложения для ОС Windows так или иначе используют динамические библиотеки. Исполняемый код в DLL не предполагает автономного использования. Перед тем как приступить к использованию, необходимо загрузить DLL в область памяти вызывающего процесса (т.е. DLL не может выполняться сама по себе – ей обязательно нужен клиент). Это явление называется «проецирование DLL на адресное пространство процесса». Это и понятно, так как процессор работает не только с регистрами, но и с адресами памяти. Поэтому каждому объекту DLL требуется своё место «под солнцем», чтобы иметь возможность быть выполненным при вызове. В конечном коде exe-файла, который генерирует компилятор, не будет инструкций процессора, соответствующих коду данной функции. Вместо этого будет сгенерирована инструкция вызова соответствующей функции (call).

    К вопросу об эффективности поиска конкретики в Интернете

    И. А. Семёнов

    Согласно исследованиям Berkley, объём информации в Интернете по состоянию на 2003 год оценивался в 258,85 терабайта, и это только общедоступные данные. По данным Internet World Stats, рост аудитории Интернета с 2003 по 2007 год составил 117% (на декабрь 2007 года аудитория оценивалась в 1,3 млрд человек). Ввиду высокой хаотичности информации в Интернете наиболее эффективным методом поиска является полнотекстовый поиск. Имея минимальное представление об алгоритмах работы поисковых роботов, можно оптимизировать веб-страницу таким образом, что ссылка на нее будет всплывать на первых местах по запросам, к которым она не имеет никакого отношения. Кроме того, имеется ещё одна проблема: ни одна поисковая машина не обеспечивает обратной связи с пользователем. Ленивый запрос включает параметры искомой информации, а также время, в течение которого результат будет актуален (будет интересовать пользователя). При поступлении подходящей (релевантной запросу) информации пользователь уведомляется об этом удобным для него способом.

    Обучение программистов: подход на основе парадигмы специалиста

    И. А. Семёнов

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