Ruby on Rails с точки зрения PHP программиста
Изучаю RoR, в принципе нравится. Многие вещи сделаны классно но некоторые вещи вызвали у меня недоуменье:
- обязательный REST: контроллеры генерят код для HTML и для XML хотя их никто об этом не просит. Возможно это круто и обосновано, однако это приводит к избыточности в коде, и созданию функциональности, которая никогда не будет востреботвана.
- обязятельный JavaScript:удаление элементов происходим методом DELETE, хотя браузеры обычно этот метод не используют, поэтому, для вызова DELETE методов используется объект HttpRequest. Как следствие, в браузере обязательно должен быть включен JavaScript. Если JavaScript выключить стандарные методы удаления объектов перестают работать. Это - не гуд.
- избыточность в структуре проекта: методы генерации объектов создают сразу код на все случаи жизни... И что мне после этого удалять вновь созданные файлы если что то не нужно?
Обновил Synphony.ru
Обновил synphony.ru.
- создан новый внешний вид
- добавлена английская версия
Рубины на рельсах
Сел разбираться в Ruby - существо занятное, мне оно больше всего напоминает JavaScript, хотя синтаксис весьма безумен... Хотя... если разобраться так я могу и на JS написать так, что никто не поймет...
Leverage browser caching
Для того чтобы проверить есть ли у сайта узкие места можно воспользоваться мега полезной штукой Page Speed Plugin. Работает в chrome и firefox. Оказывается на большинстве сайтов по умолчанию не выводятся заголовки которые говорят браузеру как правильно кешировать ресурсы
На linode.com для решение проблемы добавил в httpd.conf следующее:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/x-icon "access plus 2 weeks"
ExpiresByType image/png "access plus 2 weeks"
ExpiresByType image/jpeg "access plus 2 weeks"
ExpiresByType image/gif "access plus 2 weeks"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType text/css "access plus 1 week"
</IfModule>
На другом сервере указанное действо оказалось недостаточным пришлось добавить:
Header unset Pragma
FileETag None
Header unset ETag
И еще включил сжатие для некоторых файлов:
AddOutputFilterByType DEFLATE text/css application/x-javascript application/javascript