-
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
) -
url_of_path (Route.Controller.Action.path ~args)
и автоматическая подстановка хоста приredirect_to
, если там хоста не было. -
Комар заблевал от кодогенерации и грозится придумать роуты с биндами.
-
Сделать так, чтобы не-блевотное легко подключалось в нужное место обработки роутов.
-
Обработка параметров запроса ("?k=v")
-
Обработка не только get-роутов
-
-
Продумать, как будут дела с окружением (dev/prod).
- Для dev-окружения -- хрень, которая будет проверять, не изменились ли исходники, при изменении запускать ребилдилку, прибивать старый процесс и запускать новый, и только потом передавать ему запрос.
- В prod-окружении не отдавать статику -- считаем, мы за nginx. (но сделать это опциональным -- вдруг наивный смелец решится выставить дрезину голой жопой в интернеты.)
-
Придумать что-нибудь революционное для работы с формами.
- Для этого, наверное, описать тут, чем плохо спиздить формы с тех же рельсов.
-
БД
- собственно соединение с БД
- почесать dbi.pg на предмет человеческого dbi-подобного интерфейса; сделать интерфейс мономорфным относительно вида БД (пусть через coercions)
- научиться применять простые миграции и следить за текущей схемой БД
- (в мечтах) Заставить PGOcaml выдавать объекты или рекорды.
-
Шаблоны html. Брать ecaml. Текущие вопросы:
- как оно будет использоваться для генерации .ml из .eml так, чтобы вписалось в общую схему
-
Кеширование на сервере.
- брать последнюю дату создания/изменения объектов, протаскивать её везде,
сделать комбинатор типа
respond_cached сущности ответ
, который по сущностям будет определять, нужно ли отдавать ответ? Тут именно с технической стороны надо сделать пиздато, так как концепции ясны.
- брать последнюю дату создания/изменения объектов, протаскивать её везде,
сделать комбинатор типа
-
Попробовать присунуть ADT в роуты и в БД. Насчёт БД будет сложно, а с роутами вроде и просто, и заебись.
-
Отдача статики: запилить фильтр, который будет проверять сегменты после их urldecode, по такому алгоритму: в начале сегмента не может быть "../", в середине -- "/../", в конце -- "/.." (так как сегменты склеиваются по "/", и нужно не допустить образования "/../" в пути).
-
Мелочёвка:
- Скопипастить себе
Buffer
и сделать там вывод содержимого буфера через lwt, чтобы не копировать изBuffer.t
в отдельную строку
- Скопипастить себе