LINUX.ORG.RU
ФорумJob

Разовая работа для ruby-программера.


0

1

Чуть больше полутора лет использую Rails, немного знаком с jQuery, MongoBD, успел перепробовать кучу гемов.

Из интересного в портфолио есть небольшая CRM и довольно крупный инет-магазин. Из скучного: куча мелких приложений и типичных сайтов.


Похвастаешься магазином? Я не работодатель, мне просто любопытно. Какие особенные сложности были при его создании? Какой сейчас трафик? Есть ли кэширование? Как он внутри устроен? (технически и UI).

UnSavant
()
Ответ на: комментарий от UnSavant

Проблемой было в корне меняющееся ТЗ. Все 4 месяца мы его меняли и было сложно держать себя в руках)

200 000 страниц в сутки.

Есть кэширование, это assets pipeline и встроенное в nginx. Работает как часы. В том числе и потому, что большая часть страниц меняется всего раз в сутки.

Архитектура?.. Старался отделять сущности друг от друга, при постоянных правках это единственная возможность сохранять работоспособность. И в итоге это вышло даже красиво. Хотя изначально упор делался на то, чтобы быстро отдавать страницы для каталога и описаний товаров, всё остальное - подстройка под это.

Гуй... я хреновый дизайнер и поначалу денег не было вообще, потому всё выполнено минималистично и с упором на самодостаточность страниц: каждая страница служит конкретной цели и выполняет как можно более узкий круг целей. Вышло просто, понятно, даже по-спартански. Мне нравится, а если сильно нравится хоть кому-то, значит найдётся ещё пол процента людей, которым тоже нравится :)

А подработка нужна чтобы купить девчонке кольцо :) Баксов 300-400 мне хватит. Сайт ещё ничего не принёс - работает банально две недели.

daris
() автор топика
Ответ на: комментарий от daris

А подработка нужна чтобы купить девчонке кольцо

Извини за оффтоп, но не будь банальным, сплети кольцо из витой пары или выкуй из металла сам.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Я неплохо умею писать код. Этим и нужно добыть деньги) Будет символично.

daris
() автор топика
Ответ на: комментарий от ATverdikov

Спасибо, но

Работаем только со студиями и командами.

Я только один.

daris
() автор топика
Ответ на: комментарий от daris

>подработка нужна чтобы купить девчонке кольцо
Если замуж предлагать, то можно и без него. А если просто так - то нафиг таких девчонок.

kernelpanic ★★★★★
()
Ответ на: комментарий от kernelpanic

> Если замуж предлагать, то можно и без него. А если просто так - то нафиг таких девчонок.

Очевидно, что это лично его инициатива.

Есть кэширование, это assets pipeline и встроенное в nginx.

Я вот разбираюсь с ними точнее более-менее, расскажи позязя, как nginx'у скормить manifest.yml?

tensai_cirno ★★★★★
()
Ответ на: комментарий от tensai_cirno

>Я вот разбираюсь с ними точнее более-менее, расскажи позязя, как nginx'у скормить manifest.yml?

А nginx вообще жрёт yml? У меня используется только proxy_cache, большего не пробовал.

daris
() автор топика
Ответ на: комментарий от daris

Хм, я тут наглупил видимо. Те что не резолвятся (вызываются не как /assets/file-md5.ext, а просто file.ext) можно же просто кидать в /public.

tensai_cirno ★★★★★
()
Ответ на: комментарий от tensai_cirno

Ага. но тут nginx не при чём :)

В новых рельсах файл assets/images/1.png будет доступен по адресу http://<сайт>/assets/1.png, что можно писать и в css/html.

Пихать все файлы в public не стоит, это противоречит основной идее). В офф. гайдах есть кое-какое описание, оно немного противоречиво и местами расходится с практикой, но это лучшее что есть.

Так, после того как всё настроено, ресурсы собираются в несколько файлов, на них натравливается uglifyer чтобы ужать, а затем они очень быстро отдаются клиенту. Занятно то, что X-Accel-Redirect от nginx почти не влияет на скорость отдачи. Но при этом скорость загрузки подскочила с равнении с rails 3.0 в разы (на глаз) :)

daris
() автор топика
Ответ на: комментарий от daris

Что-то я нафлудил слишком. Тема не для этого :)

tensai_cirno, могу подкинуть рабочий конфиг, обращайся в жаббер: wyldrodney@headcounter.org

daris
() автор топика
Ответ на: комментарий от daris

Если дёргать по http://<сайт>/assets/1.png, то будет дёргаться рельсосервер, и это проблема.

tensai_cirno ★★★★★
()
Ответ на: комментарий от daris

Мне кажется, что Вы забыли про суффиксы. Файлы в asstes/images/1.png должен после компиляции ассетов на продакшене отдаваться только нгинксом как /images/1-sdfskdfjsklfjlkjf.png

Если у вас ссылки без подобных суффиксов - ассеты работают неправильно.

Alve ★★★★★
()
Ответ на: комментарий от Alve

Ну нет. Я использую стандартную схему, в ней ассеты отдаются именно так. И именно такие пути используются во всех встречавшихся мне туториалах. Но главное - это работает и я это не трогаю.

daris
() автор топика
Ответ на: комментарий от daris

/images/1.png будет отдан клиенту рельсами.

/images/1-sdgfjhsgfhgsdf.png будет отдан nginx'ом. Быстрее во много раз.

чтобы получить из файлов-ассетов файлы с суффиксами, которые может отдавать сам нгинкс нужно на проде делать rake assets:compile перед стартом юникорна.

Вот собственно я об этом говорю :)

Alve ★★★★★
()
Ответ на: комментарий от Alve

Разница между этими двумя в использовании config.assets.digest. И в статическом html указываются пути «без циферок», по-другому не заработает. Определяет же то, будет ли файл отдавать nginx, на деле директива config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect', но не уникальный номер файлика.

Дискас?

daris
() автор топика
29 декабря 2011 г.
Ответ на: комментарий от daris

Спасибо за ответ! Кэширование на стороне вебсервера... хм, мне кажется, не самое лучшее решение. Но аргументов нет пока, помолчу, обдумаю :-)

UnSavant
()
Ответ на: комментарий от UnSavant

Кэширование на стороне вебсервера... хм, мне кажется, не самое лучшее решение.

А на какой еще стороне можно кешировать?

power
()
Ответ на: комментарий от power

Можно средствами языка создавать статичные страницы.

UnSavant
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.