-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Дрезина -- это такой велосипед, который ездит по рельсам. Нуфф сказал.
-
Подумать, как быть с роутами и контролерами. Что нужно:
-
Более-менее декларативное описание роутов, что-то в стиле
% get /entity/id:int Entity_controller show
-
Поменьше ручной работы и минимум дублирования сущностей
-
Роуты могут определять путь, который нужно связать с контролером, и в контролере надо уметь брать этот путь, как тут:
`get 'somepath', :as => 'mycontroller'`
(тут должно быть доступно
mycontroller_path
) -
Комар заблевал от кодогенерации и грозится придумать роуты с биндами.
-
Сделать так, чтобы не-блевотное легко подключалось в нужное место обработки роутов.
-
-
Для dev-окружения -- хрень, которая будет проверять, не изменились ли исходники, при изменении запускать ребилдилку, прибивать старый процесс и запускать новый, и только потом передавать ему запрос.
-
Придумать что-нибудь революционное для работы с формами.
- Для этого, наверное, описать тут, чем плохо спиздить формы с тех же рельсов.
-
БД
- собственно соединение с БД
- почесать dbi.pg на предмет человеческого dbi-подобного интерфейса; сделать интерфейс мономорфным относительно вида БД (пусть через coercions)
- научиться применять простые миграции и следить за текущей схемой БД
- (в мечтах) Заставить PGOcaml выдавать объекты или рекорды.
-
Шаблоны html. Брать ecaml. Текущие вопросы:
- как оно будет использоваться для генерации .ml из .eml так, чтобы вписалось в общую схему
-
Кеширование на сервере.
- брать последнюю дату создания/изменения объектов, протаскивать её везде,
сделать комбинатор типа
respond_cached сущности ответ
, который по сущностям будет определять, нужно ли отдавать ответ? Тут именно с технической стороны надо сделать пиздато, так как концепции ясны.
- брать последнюю дату создания/изменения объектов, протаскивать её везде,
сделать комбинатор типа
-
Попробовать присунуть ADT в роуты и в БД. Насчёт БД будет сложно, а с роутами вроде и просто, и заебись.
-
Отдача статики: запилить фильтр, который будет проверять сегменты после их urldecode, по такому алгоритму: в начале сегмента не может быть "../", в середине -- "/../", в конце -- "/.." (так как сегменты склеиваются по "/", и нужно не допустить образования "/../" в пути).
-
Мелочёвка:
- Скопипастить себе
Buffer
и сделать там вывод содержимого буфера через lwt, чтобы не копировать изBuffer.t
в отдельную строку
- Скопипастить себе