Комментарии 31
нужно
нет, НУЖНО написать обширную статью об использовании HAML, так как его аналоги есть уже и для PHP и для .NET платформы и даже для Erlang
нет, НУЖНО написать обширную статью об использовании HAML, так как его аналоги есть уже и для PHP и для .NET платформы и даже для Erlang
Извините, вопрос не по теме, но:
DataMapper действительно оправдывает своё название, то есть является data mapper'ом как описывается PoEAA? Если сравнивать с python: он больше похож на django orm или на sqlalchemy? Можно ли мапить класс не на одну таблицу а на селект например?
DataMapper действительно оправдывает своё название, то есть является data mapper'ом как описывается PoEAA? Если сравнивать с python: он больше похож на django orm или на sqlalchemy? Можно ли мапить класс не на одну таблицу а на селект например?
Очень поверхностно знаком с django orm и sqlalchemy, но в рамках того что я знаю datamapper ближе к django orm, а аналогом sqlalchemy в руби будет скорее sequel.
Он соответствуем этому патерну в том, что выполнет мэпинг, но он также включает и сами модели, а также, в ближайшим планах, мапинг на yaml, xml, веб сервисы и т.д., т.е. в общем независимость от реляционной БД
Он соответствуем этому патерну в том, что выполнет мэпинг, но он также включает и сами модели, а также, в ближайшим планах, мапинг на yaml, xml, веб сервисы и т.д., т.е. в общем независимость от реляционной БД
Не знаком с django orm и sqlalchemy вообще, но класс можно мапить только на таблицу (возможно и на представление, но сталкиваться с таким не приходилось).
На бис еще статейку можно? А лучше не одну! =) Спасибо.
А на какую тему? :)
например об возможностях DataMapper. в частности об IdentityMap.
Лично мне интересно программирование на Руби для веб «на низком уровне», то есть без фреймворков вообще, или как совсем крайность и без использования библиотек входящих в дистрибутив. «Легковесные фреймворки» пример с Синатрой был хорош, но можно еще Кампин к примеру. Из под кнута шедевр не выдашь, так что пишите на тему в первую очередь интересную вам. Если это будет не очередной блог на рельсах, и не описание синтаксиса Руби с неизменным «там даже число — объект, вах», лично для меня это будет уже однозначно интересно.
Без фреймворков вообще? Это примерно то же самое, что писать веб-приложения на C++ — а кто должен заниматься взаимодействием с веб-сервером (Rack — это тоже фреймворк) и выполнять рутинные задачи (отсылка HTTP-заголовков и всё в таком духе). Можно, конечно, писать CGI-приложения в стиле классических perl-скриптов середины 90-х, но неужели это действительно практично? А Camping уже погиб, как я недавно узнал — так что о нем писать тоже бессмысленно.
Не обязательно подробно, можно поверхностно. Но чтобы было понимание как это устроено и функционирует. К примеру тот же Rack, в чем его отличительная особенность в связи с чем он ста столь популярен. Библиотеки CGI или CGI-lib которые входят в стандартную дистрибьюцию языка. О том как в самом Ruby устроен механизм взаимодействия с переменными окружения. И на счет без фреймворков, я писал что как крайность (намеренно утрировал, дабы более нагляден был смысл). Вобщем хочется в том же стиле, побольше маргинального и пауз на разъяснение. Касательно кампина раз погиб, значит того не стоил.
Спасибо, было интересно читать этот цикл :)
Для решения проблемы с одноименными файлами, я бы предложил подмешивать в дайджест размер файла и проверять по базе, возможно данный файл уже выкладывался, тогда просто отдавать на него линк. Конечно бывают ситуации когда имена и размеры совпадают, это можно избежать делая дайджест по самому файлу.
Отличный цикл статей!
Отличный цикл статей!
Вариантом, действительно свободным от коллизий, будет именно дайджест по всему файлу, но полагаю, что это довольно неэффективно с точки зрения ресурсов сервера.
если взять в расчет то что нахождение дайджеста происходит при добавлении нового файла, а это не самая частая операция, то можно пожертвовать ресурсами и добавить новую фишку, показ дайджеста для проверки на целостность скаченного файла
Банально добавлять к названию, сразу после дайджеста, время создания файла типо ГодМесяцДеньМинутаСекунда. Нагрузка минимальна и задачу выполняет на все 99,9.
Алексей, не подскажите, как с помощью RSpec тестировать post/delete/put запросы?
Боюсь, что не подскажу, к сожалению — не сталкивался. Гугл пишет что-то более-менее вменяемое…
Никогда не сталкивался с тестирование до этого, поэтому быть может глупый вопрос…
Когда я запускаю тест как-то так «spec test/data_spec.rb», то шаблоны вида ищутся не в views а в test/views. Подозреваю что я как-тоне так запускаю тесты. Не подскажите, в чём дело?
Когда я запускаю тест как-то так «spec test/data_spec.rb», то шаблоны вида ищутся не в views а в test/views. Подозреваю что я как-тоне так запускаю тесты. Не подскажите, в чём дело?
Думаю, пригодится совет по работе с большими файлами в Sinatra.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Домашний файлообменник на базе Sinatra и DataMapper. Часть 3 — Very Advanced features