Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (12)

Лучшие ответы пользователя

Все ответы (20)
  • Ruby or Python?

    "Лучше" зависит от ответа на вапрос "А вам для чего?", "легче" зависти от опыта и личных качеств. На обоих ЯП можно создавать всё.
    По существу: Языки сравнимой мощности. Однако Питон более распространён и применяется в более широком спектре задач, Рубин в свою очередь более силён в сфере вёба.
    Рубин тяготеет к магии (вещи просто работают, не важно как, "соглашения над конфигурацией"), Питон -- к строгости и предсказуемости.
    Мне лично больше нравится Рубин. Субъективно -- красивее, человечнее. Кроме того на РУбине написаны Рельсы )))
    Питон ничуть не хуже -- просто другой.
    Короче: если нет контекста, то кому что нравится....
    Ответ написан
    1 комментарий
  • Недостатки Ruby on Rails?

    Тоже Рельсу люблю, но:
    1. Рельса кушает много памяти. Рельса вообще избыточна для мелких проектов. Там лучше идут всякие Синатры, Падрино и т.д.
    2. Трудности долговременной поддержки больших проектов.
    3. Проблемы для хостеров. Создать и обслуживать ПХП хостинг гораздо проще. Есть, конечно locum.ru и heroku, да и всё, пожалуй.
    4. Кадровая проблема. Найти ПХПшника или явайщика проще.
    Ответ написан
    4 комментария
  • Зачем нужны puma, rack?

    Грубо говоря, в общих чертах:
    Rack это библиотека, которая предоставляет АПИ для работы с ХТТП (в основном всякие обработчики запросов и ответов, вызывальщики другого кода и пр).
    Пума -- Вёб-сервер. Пума слушает порты, обрабатывает соединения и тд. Примерно как Нгинкс или Апач.
    Но есть особенность -- получив запрос Пума применит к нему Рэк, который вызовет, в свою очередь, указанный рубиновый код, то-есть собстно приложение (обычно на каком-либо каркасе, например рельсе).
    Примерно так:
    80 порт, Пума --> Rack --> Application
    Ответ написан
    1 комментарий
  • Как работают gems в rails?

    Про Gem:
    Gem это есмъ библиотека, скомпанованная определённым образом. То есть это набор кода (модули, классы и тд), которые решают некоторую задачу.
    Утилита gem занимается тем, что управляет этими библиотеками. Например 'gem install colorize' скачает с интернета библиотеку (далее "гем") в каталог, доступный для твоих программ (конкретное место зависит от настроек и способа установки Рубина). После чего ты сможешь в своём коде написать require 'colorize' и пользоваться методами, которые данный гем предоставляет. Гем может требовать для установки другие гемы.

    Про Bandler:
    Чтобы не ставить/обновлять гемы по-одиночке каждый раз, люди написали Бандлер (который сам является гемом). Работает это так: в Gemfile ты описываешь какие гемы тебе нужны (каких версий, где взять и прочее...). После чего запускаешь bundle install Бандлер проходит по твоему Gemfile и устанавливает (с помощью утилиты gem) нужные гемы, а также создаёт файл Gemfile.lock, в котором описывает что, откуда и почему он поставил. Это важный файл! храни его в репозитории.
    Если сказать bundle update, то бандлер заглянет в файлы Gemfile и Gemfile.lock, проверит версии и установит гем последней доступной версии. Внимание! не обновит, а поставит новый! То есть старая версия останется.
    Здесь мы приходим к команде bundle exec. Эта команда означает: выполнить нечто с помощью гема из файла Gemfile.lock. Внимание! в рельсе всё (пока не взматереешь) следует запускать через bundle exec! Это исключит конфликт версий. Например: bundle exec rspec, bundle exec rails db:migrate и тд.

    Про Рельсу:
    Посмотри в каком-либо рельсовом проекте bin/rails, там обычный рубиновый код: require_relative '../config/boot'
    Смотрим в config/boot.rb: require 'bundler/setup' Вот тут подключается гем Bundler и далее (можно посмотреть по исходникам) вызывается Bundler.setup, который, в свою очередь, смотрит в файлы Gemfile и Gemfile.lock и подключает указанные библиотеки (с помощью require), после чего методы оных библиотек становятся доступны в проекте. Кстати, Рельса сама является гемом, точнее набором гемов.
    Ответ написан
    Комментировать
  • Gem install mysql error. Как же установить?

    Попробуй:
    sudo apt-get install build-essential patch
    sudo apt-get install ruby-dev zlib1g-dev liblzma-dev

    Рубин лучше ставить через rbenv или rvm
    Ответ написан
    Комментировать