Скачать книги автора «И. А. Семенов»

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

И. А. Семенов

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

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

И. А. Семенов

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

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

Кроме того, имеется ещё одна проблема: ни одна поисковая машина не обеспечивает обратной связи с пользователем.

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

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

И. А. Семенов

С формальной точки зрения Dynamic Link Library (DLL) (динамически загружаемая библиотека) – особым образом оформленный относительно независимый блок исполняемого кода. DLL используются множеством приложений. Все приложения для ОС Windows так или иначе используют динамические библиотеки.

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

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

И. А. Семенов

DLL – это сокращение от Dynamic Link Library (динамически загружаемая библиотека).

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

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

И. А. Семенов

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

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

Назовём данную особенность – постпроектирование (мини-проектирование на этапе кодирования). Такой подход обусловливает двустороннюю связь этапов технического и физического проектирования.