-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Dmitry Grebeniuk edited this page Dec 6, 2013
·
42 revisions
Дрезина -- это такой велосипед, который ездит по рельсам. Нуфф сказал.
-
Подумать, как быть с роутами и контролерами. Что нужно:
-
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
в отдельную строку
- Скопипастить себе