Я инженер на языке Eiffel и специализируюсь на задачах, где правильность программы важнее скорости её написания. Обычный ООП-код опирается на тесты и удачу — я опираюсь на контракты. В моём коде каждый класс явно описывает свои условия: что обязан обеспечить вызывающий (предусловия), что гарантирует сам метод (постусловия) и какие инварианты сохраняются на всём протяжении существования объекта. Эти утверждения — не комментарии, а исполняемая спецификация: во время разработки они проверяются на лету, а после остаются точным описанием поведения. При нарушении контракта проверка срабатывает прямо на границе ошибки, поэтому дефект виден в момент возникновения, а не превращается в загадочно испорченное состояние где-то далеко по коду.
В основе моей работы — строгая статическая типизация, гарантия отсутствия пустых ссылок (void-безопасность) и та дисциплина, которую задаёт сам язык: чистое наследование с переименованием, разделение команд и запросов, единообразный доступ к данным. Кластеры классов я держу компактными, связными и предсказуемо собираемыми, а контракты не дают им деградировать по мере роста проекта. Уверенно пользуюсь средой EiffelStudio с её инкрементальной компиляцией, применяю модель SCOOP для многопоточности без состояний гонки и связываю Eiffel с кодом на C и внешними библиотеками, когда того требует задача. Скорость и надёжность не противопоставляю: узкие места ищу профилированием на реальных данных.
Готов вести проект с чистого листа и вытаскивать проблемное наследованное ПО, которому нужно снова стать предсказуемым. Внедряю контракты в слабо специфицированный код поэтапно, усиливаю самые опасные участки и оставляю за собой набор проверок и тестов, объясняющих замысел следующему разработчику. Если вы делаете то, что просто обязано работать верно — финансовые расчёты, управляющие модули, инструменты для других команд, — я привношу принцип «верификация прежде всего», при котором дефекты находятся раньше, чем до них доберётся пользователь.
— Разработка приложений и библиотек на Eiffel под ключ
— Контракты: пред- и постусловия, инварианты классов, варианты циклов
— Void-безопасная архитектура классов и кластеров со строгой типизацией
— Оздоровление легаси и поэтапное внедрение контрактов
— Многопоточность SCOOP и интеграция с C и сторонними библиотеками
— Настройка EiffelStudio, сборка, профилирование и тестовые наборы
В основе моей работы — строгая статическая типизация, гарантия отсутствия пустых ссылок (void-безопасность) и та дисциплина, которую задаёт сам язык: чистое наследование с переименованием, разделение команд и запросов, единообразный доступ к данным. Кластеры классов я держу компактными, связными и предсказуемо собираемыми, а контракты не дают им деградировать по мере роста проекта. Уверенно пользуюсь средой EiffelStudio с её инкрементальной компиляцией, применяю модель SCOOP для многопоточности без состояний гонки и связываю Eiffel с кодом на C и внешними библиотеками, когда того требует задача. Скорость и надёжность не противопоставляю: узкие места ищу профилированием на реальных данных.
Готов вести проект с чистого листа и вытаскивать проблемное наследованное ПО, которому нужно снова стать предсказуемым. Внедряю контракты в слабо специфицированный код поэтапно, усиливаю самые опасные участки и оставляю за собой набор проверок и тестов, объясняющих замысел следующему разработчику. Если вы делаете то, что просто обязано работать верно — финансовые расчёты, управляющие модули, инструменты для других команд, — я привношу принцип «верификация прежде всего», при котором дефекты находятся раньше, чем до них доберётся пользователь.
— Разработка приложений и библиотек на Eiffel под ключ
— Контракты: пред- и постусловия, инварианты классов, варианты циклов
— Void-безопасная архитектура классов и кластеров со строгой типизацией
— Оздоровление легаси и поэтапное внедрение контрактов
— Многопоточность SCOOP и интеграция с C и сторонними библиотеками
— Настройка EiffelStudio, сборка, профилирование и тестовые наборы