Давно хотелось рассказать о том как делать сложные проекты с проектирования до выпуска. Считается, что IDE — это довольно сложные системы. Это очень хорошо. Есть простор для проектирования, применения паттернов, построения иерархии классов.
Примеры успешных IDE:
Если мы хотим довести проект до конца — его необходимо спроектировать. Зачем?
Этапы проектирования:
Вот такой вот получился первый шаг в проектировании. Дальше будет намного более сложный этап — составление высокоуровневого проекта. В скором времени я постараюсь написать статью и по этой теме. Спасибо за внимание.
Примеры успешных IDE:
- Visual Studio
- Eclipse
- IDEA
Проектирование
Если мы хотим довести проект до конца — его необходимо спроектировать. Зачем?
- Чтобы заранее продумать проект, его структуру и не допустить критических ошибок еще на ранних стадиях.
- Чтобы видеть весь объем работы и не делать в будущем больше чем задумано (так умирают интересные проекты).
- Чтобы проект был согласованным.
Этапы проектирования:
- Определение цели
- Выработка требований
- Определение архитектуры
- Написание высокоуровневого проекта
Проектируем IDE
Цель
Научиться проектировать и разрабатывать сложные проекты.
Спроектировать и разработать IDE для вэб-разработки.
Требования
Общие
Кроссплатформенность (+ использование нативного интерфейса в каждой из выбранных операционных систем)
Мультиязычность
Расширяемость
Редактор
Подсветка синтаксиса (+ указание ошибок синтаксиса)
Всплывающие подсказки при наведении на сущности в коде
Автоматическое дополнение кода (Code Completion)
Сниппеты
Работа с несколькими документами одновременно
Поддерживаемые языки программирования/разметки
HTML
Выбор стандарта для подсказок
CSS
Использование стандартов CSS2, CSS3 (на выбор) для подсказок
JavaScript
Использование JsDoc для подсказок
Архитектура
Очень интересная часть проектирования. По ее оформлению нет четких требований. Очень часто она содержит различные диаграммы.
Язык программирования: C# (соответствует требованиям и я его знаю достаточно хорошо)
Среда исполнения: .net (Windows), mono (Mac OS X, *nix)
Целевые платформы:Распространение:
- Mac OS X (начиная с версии 10.5.0)
- *nix (следует уточнить список дистрибьютивов в будущем)
- Windows (начиная с версии 2000)
Структура проекта:
- Mac OS X — dmg
- *nix — в пакетах, специфичных для каждого дистрибьютива
- Windows — в виде инсталлятора
- Редактор
- Подсветчик синтаксиса (с легко расширяемым списком языков)
- Анализаторы структуры документа: HTML, CSS, JavaScript
- Менеджер сниппетов
- Среда
- Менеджер настроек
- Менеджер горячих клавиш
- Менеджер интерфейса
- Панели инструментов
- Области данных (файловая структура, объектная модель документа, ...)
- Расширяемость
- Расширения в виде полноценных библиотек
- Расширения в виде скриптов на JavaScript
- Интерфейс
- Реализации
- WinForms (Windows)
- Gtk# (*nix)
- Cocoa# (Mac OS X)
Вот такой вот получился первый шаг в проектировании. Дальше будет намного более сложный этап — составление высокоуровневого проекта. В скором времени я постараюсь написать статью и по этой теме. Спасибо за внимание.