← kolan.mobi
     хоумпэйдж
 Главная

← ksoftware.ya.ru
     блог
 

Project Starter

Разработчик: Кирилл Бережной

Когда начинаешь новый проект нужно создать для него папку, а в ней еще папки для документов, картинок и другой всячины. Делать это каждый раз в ручную хлопотно, да и можно что-нибудь забыть. ProjectStarter позволяет создать нужную иерархию в один присест.

Загрузка

Наследуемые шаблоны

Задача: Сделать систему, создающую проект по шаблону. Шаблон должен быть легко редактируемым, не избыточным.

Решение: Шаблон (самая обычная папка) - это и есть заготовка проекта. В папке-шаблоне могут быть другие папки и файлы. Такой шаблон элементарно редактировать, дополнять, изменять. Да и программа делается за пять минут. Все что надо - скопировать шаблон куда нужно - вот и все.

Остаётся одна проблема - избыточность.

Например у нас есть два шаблона

Project
  DCU
  Binary
  Source
    1.pas
Project
  Source
    Simple.pas

Теперь мы хотим добавить папку Forms. Нам придется добавить её и во все остальные, а если их 20? Проблема в избыточности.

Решение уже давно придумано - наследование. Шаблоны надо уметь наследовать. При наличии возможности наследовать шаблоны можно построить гибкую иерархию шаблонов по образу и подобию VCL.

Синтаксис имен папок, например такой:

<Имя предка>.<Имя шаблона>

Пример:

ProjectTemplate.Separate
  DCU
  Binary
  Forms
  Source

Separate.MVC
  Source
    SystemController.pas  

Если, теперь, использовать шаблон MVC, то получим совокупность того что было в папке Separate.MVC и во всех предках, то есть в ProjectTemplate.Separate:

<Имя проекта>
  DCU
  Binary
  Forms
  Source
    SystemController.pas  

Имена проектов

При создании шаблона можно в имени файла или папки указать '{ProjectName}', например: '{ProjectName}.NewTemplate', '{ProjectName}Unit' и тогда при создании проекта программа заменит это обозначение на имя директории в которой создается проект. Пример:

Допустим у нас есть следующие шаблоны

{ProjectName}.Separate
  DCU
  Binary
  Forms
  Source

Separate.MVC
  Source
    {ProjectName}SystemController.pas  

При создании проекта {ProjectName} заменяется на имя папки в которой создается проект, то есть на имя проекта.

См. также