24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
1. C чего мне начать, чтобы стать рубистом? Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и теже вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
2. Какой gem посмотреть, чтобы понять, как писать код? Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping. А еще можешь полистать на гитхабе гемы с нарастающей популярностю. https://github.com/trending?l=ruby Там еще нет тысяч строк, и тебе будет легче понять.
3. Есть ли GUI для руби? Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный). Впрочем, писать приложение с GUI на серверной технологии - плохая идея.
4. Можно ли писать на руби мобильное ПО? Да. Для iOS есть RubyMotion терпимого качества, для Android - лагающий и падающий, но всеми силами развивающийся ruboto. Для WinPhone до сих пор ничего не завезли.
7. Хорошие практики по руби и рельсам? Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes. Почитайте еще Grimm A. - Objects on Rails Еще продвинутое чтиво - http://tutorials.jumpstartlab.com/
13. Где можно задать глупые и не очень вопросы? - здесь - stackoverflow.com - тематические slack-конфы - а вообще, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.
14. Как фокнуть\сделать фичу\исправить баг, сложно ли это? Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.
15. В чём писать код? Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.
16. Можно ли писать на руби с под windows? Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac
17. Руби язык одного фреймворка? Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape, отличные штуки для DevOps - Chef, Puppet и годные генераторы для бложиков - Jekyll, Middleman, всё это активно используется в продакшене
18. Можно ли делать игры на Ruby? Можно, но не нужно. Гем Gosu.
20. Как и где искать работу? Легко и просто - http://rubyjobs.ru/ Не так просто - https://upwork.com/ Еще вконтакте есть группы по руби/рельсам, там иногда постят вакансии. Еще в русской гугл группе постят вакансии. Новичку будет сложно, но возможно.
TODO лист для ньюфагов: И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidaras Начни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь. Рекомендации: 1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии. 2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет) 3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды, можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch 4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.
Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами.
Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.
Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой. Ну, а мы открываем очередной Ruby Thread.
Рубаны, учу Руби, уже стоит переходить на рельсы, если я уже могу в алгоритмы, классы и синтаксис? Обучаюсь по шапке треда, сейчас дочитываю Ruby Way. И еще вопрос, я плохо читаю чужой код, как подтянуть такой ценный навык?
Перенес проект в виртуалке из папки с автоматической синхронизацией виртуалбокса, в папку с ручным деплоем. + 200% к скорости тестов, и порядка 300% ускорение рельсов в dev окружении.
>>714508 >The Elixir community has still not recognized Canonical Model problems as the root cause of most of their woes in Rails. Furthermore, it has not started to embrace the event-centric and event stream-centric approach to architecture that at once eliminates the possibility for Canonical Model to crop up (even unintentionally), and leverages OTP for its intended strengths. все правильно мужик сказал, поддерживаю
>>715253 Может и правильно, но на личности не надо было переходить - будто это как-то поможет. Опенсорс же, возьми и захуячь правильно, хули выебываться.
Кто имел дело с Capybara+PhantomJS (адаптер Poltergeist)? Почему она упорно 1 из 10 запросов не хочет выполнять синхронно? Логинюсь на Фейсбук, а на следующей команде оказываюсь незалогинен? Таймаут увеличивал в разы.
Проблема заключается в том, что в продакшене ответ будет чистым JSON, а в тестовом окружении это JSON, завёрнутый в Rack::MockResponse, плюс хедеры etc. Естественно, весь код любезно заточен под один тип ответа.
Никак не соображу, куда и как вставить костыль, чтобы унифицировать данные.
>>715537 >ясно, как по мне наоборот, чем меньше в элихире от рубей, тем лучше я хуй знает что тебе ясно стало, но там с точностью наоборот, он жаловался что вместо нормальной современной архитектуры хосе пилит клон рельсов на эрланге, повторяя ошибки рэилс-комьюнити
Анон, поясни за маштабирование. Вот есть amazon и beanstalk. Хочу туда залить свое приложение. Не совсем понимаю концепцию работы с ним. Посмотрим на картинку - примерно так я представляю архитектуру проекта. Вот у нас есть ngnix, который работает с http запросами, http-кеширование вот это всё. Так же есть App сервер с puma и рельсами, собственно само предложение. Amazon вежливо предлагает обернуть приложение в beanstalk - легко задеплоить, масштабирование из коробки и вот это всё. То есть как бы puma преднастроена и сама все круто сделает.
Остались web сервера, которые я не знаю, как размещать. Просто запилить обычные инстансы и настроить там кеширование и т.д.? Или их тоже можно куда-нибудь завернуть?
Олсо, я не знаю куда воткнуть сервер memcached. Где он должен быть в идеале? Также есть проблема с размещением API сервера. У него два назначения. 1. Отдавать обычным пользователям контент (как на харкаче json формат) + принимать какие-нибудь post запросы. 2. Работа с БД для внутреннего приложения, которое не доступно из-вне. В итоге я решил пользовательский функционал оставить в приложении, а для внутреннего сервиса запилить личный API сервер, который будет использоваться внутри облака 2-3 приложениями. Однако я не знаю куда его воткнуть.
Рельсовики, а вы только рельсами и занимаетесь? Никогда не возникало желания заняться серьёзным программированием, а не крудошлепствовать на рельсах, которые ближе к CMS, чем к фреймворку?
Сап аноны! В общем я нубас 22lvl, программировать вообще не умею, только хеллоу ворд на паскале в школе запускал. Решил изучать язык с нуля, не могу определится - что для меня лучше - ява или руби? Сфера применения ввиду того что всё равно стартовать с нуля - безразлична. Т.е. что мобильные платформы, что фронтэнд, что бэкэнд - без разницы. Ну разве что 3дэ-игори и драйвера точно не планируются. Основные критерии - максимально быстро вкатиться в уровень джуна, и потом максимально быстро дорасти до хорошего уровня зп. Желательно с вариантами работать по удаленке - не хиккан, но схема "утро роллтон метро офис" - вгоняет в депрессию. Руби вроде подходит под эти критерии лучше, но смущает то, что рабочих вакансий мало и так же мало обучающих материалов и проч. Ну и "это же скриптовый говноязык, то ли дело си-подобные боги" Прошу ссаными тряпками не гнать, маней не обзывать - мне главное определиться что изучать, а там понять - моё это или не моё. Готов к тяжелому труду работы над собой, осознаю что легким путь не будет. Что скажете?
>>717239 Жава и руби неудачные варианты для новичка. Языки сложные, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит жаву или раби, а потом не знает что делать с ними. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. В Sublime Text как раз есть режим для него. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
>>716977 Ну хуй знает анончик, похоже ты один среди нас такой йоба архитектор. И вопрос скорее общий чем конкретно по рельсам. Надо найти слак, гиттер где тусуются такие же. Если найдешь, кино ссылочку сюда, мне тоже интересно почитать что они пишут. Но к сожалению на твой вопрос мне ответить нечего.
вопрос, у меня есть сущность в activerecord, я вывожу все записи со всеми параметрами, получается большая таблица. Как сделать так чтобы можно было нажать кнопку фильтр на этой же странице что бы все отфильтровалось по определенным параметрам и остались только нужные записи, и без перезагрузки страницы?
Начал недавно изучать руби/рельсы - внезапно повернулся фриланс на html ccs js + пришлось накатать маленький скрипт на пхп. Вот думаю, а может и остаться? Какие перспективы у руби, он рили умирает?
>>721350 Сижу как то в /б/, проигрываю с пикч с говном. Вдруг смотрю, новый тред. В нём какой то эйчар крупной компании (не буду называть, деанон), жаловался, как мало рельсокодеров. Говорит уже зарплату в три раза поднял, согласился на дополнительные премии и удаленку, а никто не идёт, кругом одни пхпшники. Ну я ему отписал, что могу поработать, скинул почту. Он мне отписал, обещал чуть ли не отсосать и отдать мне девственность его первой дочери, если я соглашусь поработать. Я зарплату выпросил побольше. Ну он мне дал задание, сказал выбирать подход и гемы самому, лишь бы работало. В начале недели он мне присылает список заданий, в основном простые. Я их за пару дней делаю и в конце недели отправляю готовый код, а он присылает деньги. По компании - аутсорсовая компания на шведов, продажи одной узкоспециализированной дорогой хуйни.
>>721352 Пиздец, каждый раз захожу в пр, а тут такой манямирок цветет и благоухает. три года занимаюсь программированием еще ни копейки этим говном не заработал
Посоны, возьмите кто-нибудь к себе на полставочки. Я сеньор 15 лет в кодинге, 8 лет в вебе, 3 года в рельсах. Разумеется, знаю всевозможную сопроводительную парашу. Могу чатиться по-английски.
Все проекты под NDA, портфолио нет. Чтобы доказать свою состоятельность, готов поработать за еду пару недель.
БЛЯ, АНОН ПОЯСНИ ЗА МАШТАБИРОВАНИЕ Я тут сейчас уже охуею. Нет, я не пилю суппет твиттер с охуенной пропускной способностью. Пока просто интересуюсь, как реализовать все это в теории.
Вот анон, есть приложение на рельсах. В нем фрагментное кеширование - первая стратегия. Потом предположим есть memcached, который кеширует http запросы.
По логике вещей. Я делаю как?
Приходит запрос -> он идет на баланс нагрузки. Баланс нагрузки отправаяет его на один из серверов, где крутится ngnix. Он смотрит в кеше, есть ли совпадающий результат. Если нет, то отправляет запрос к серверам, на которых крутится puma + rails приложение. И оно выполняет.
>>721385 >чел на тебе зарабытывает раз в 5 больше Начальник зарабатывает на работнике в 5 раз больше, заказчик зарабатывает на начальнике в 10 раз больше, чиновник получает с заказчика в 15 раз больше, а депутат имеет их всех. Ты что, предлагаешь мне бросить работу потому, что кто-то зарабатывает больше меня? >социалки и нихуя нет Мне хватает. Социалку и подобное я могу себе позволить сам. А касательно опыта и легальности - две волшебные буквы: ИП.
>>721420 >Все проекты под NDA Двачую братиш, я тоже помогал гуглу разрабатывать поисковик, писал ядро Windows у Microsoft, а по вечерам делал социалочки Цукербергу и Дурову. Просто всё под NDA, поэтому доказать не могу.
>>721618 Во. Уже какие-то понятные вещи. На самом деле в целом я концепцию уловил. Только сейчас столкнулся с тем, что не совсем понимаю, как в инфраструктуре Amazon развернуть этот проект. Сервера приложения можно завернуть в beanstalk и там маштабирование из коробки. А вот куда запихнуть ngnix - без понятия.
>>721973 Собственно, Синатра превосходит рельсы почти по всем параметрам. Но у Синатры есть один фатальный недостаток - быдлу её выучить гораздо сложней, чем зазубрить одинаковые действия в рельсах и повторять их. Рельсы - это просто триумф манки-патча, неудивительно, что быдлу так нравится.
>>722064 нужно понимать пределы того или иного инструмента. Сейчас админку пишут на rails/pg оттуда выгружают, скажем в redis/mongo и раздают чем-то более легковесным.
Как обратиться к определённой строке в файле? Чтобы до этого не проходить все строки. Ну, допустим, я знаю номер строки, которая мне нужна. Как мне к ней обратиться?!
>>722163 Только если ты знаешь длины всех строк в файле. Тогда можно прочитать нужные байты по смещению, которое нужно рассчитать. Да, так делают. Придумай свой формат, работай с оглавлением, угорай по байтоёбству.
Файлы не хранятся на диске как массивы строк. Файлы хранятся тупо как последовательность байт.
Ну и ещё вспомним, что utf8 - ебанутая кодировка с переменным количеством байт (в общем случае) на символ.
>>722163 Штатными средствами руби этого никак не сделать, лучшее что можно предложить, это лишь читать файл (File.open и .gets/.readline; вместо File.read) до тех пор пока не будет получена нужная строка и сразу прекратить чтение.
Или пилить своё расширение на сишке для чтения нужного смещения в файле.
>>722180 Норм кодировка, не гони. Всяко лучше богомерзких cp1251, koi8-r и прочих iso. Все минусы для программистов с лихвой искупаются плюсами для всего мирового сообщества.
>>722387 Оу, буду знать. Правда тут нужно знать не номер строки, а номер символа из начала строки и номер последнего символа строки. >>722163 А какая у тебя вообще задача? )))
>>722495 на самом деле чечня[/spoier] UTF-8 круто но эта переменная длина символа в байтах в неожиданных местах вылезает боком (см. семитские языки, модификаторы слева-направо + подгон под ширину экрана)
>>722573 >но эта переменная длина символа в байтах в неожиданных местах вылезает боком В каких неожиданных местах? Если ты работаешь с текстом с известной кодировкой или технологией в которой по стандарту используется UTF-8, то неожиданных мест у тебя нет. >см. семитские языки, модификаторы слева-направо Ну вот опять жиды-рептилоиды виноваты! >подгон под ширину экрана Меняешь лоджик на работу с символами, а не байтами и всё.
>>722951 EventMachine is an event-driven I/O and lightweight concurrency library for Ruby. It provides event-driven I/O using the Reactor pattern, much like JBoss Netty, Apache MINA, Python's Twisted, Node.js, libevent and libev.
EventMachine is designed to simultaneously meet two key needs:
Extremely high scalability, performance and stability for the most demanding production environments. An API that eliminates the complexities of high-performance threaded network programming, allowing engineers to concentrate on their application logic.
>>723130 Очень классно отправлять пользователям всякие нотификации и обновления данных в реальном времени. Если же вместо вебсокетов долбить бэкэнд поллингом, сервер ляжет уже при сотне онлайна.
Если заморочиться, можно ещё и принимать с клиента данные и обрабатывать на бэке. Аутентификации из коробки нет, нихуя нет, ведь твой EM\Faye сервер - это по сути отдельный скрипт вообще, самостоятельный и без рельсоокружения. Хотя для Faye есть джем faye-rails, который предоставляет какую-то интеграцию, но я не пробовал.
А в пятых рельсах вон сделали ActionCable. Вполне себе симпатичный такой код выходит, и код выполняется в контексте рельсоприложения без танцев с бубном. Т. е. хорошо сделали, годно, можно юзать не парясь особо. Реализация использует потоки, т. е. это не самая эффективная реализация, но зато можно писать код не парясь по поводу асинхронного цирка (как если бы писать на EM\faye). И по бенчмаркам вполне сносно работает - для запредельного хайлоада не подходит, но потребности 99% сайтов вполне удовлетворит - держит порядка нескольких тысяч подключений. Есть ньюансы для задротов... https://blog.ably.io/rails-5-actioncable-the-good-and-bad-parts-1b56c3b31404
>>714587 Обычная контрактная работа. Просто обычно контрактникам не платят всякие соцпакеты и подобную поеботу, поэтому твои 120к в год резко теряют пару десятков процентов на налогах, страховках, етц. Но если ты живучий русский Иван и тебе это нахуй не нужно, можешь нихуя не платить и получать свои 500 фунтов в день.
а ещё контрактники обычно не имеют карьерного роста и контракты максимум на год, которые могут ещё и в любой момент разорвать без каких-либо обязательств, карочи такое
>>722994 >apple >bug-in-ios-notifications-handling-crashes-iphones-with-a-simple-text Ну баг и что? Все данные нужно проверять. Ты же пытаешься защититься от SQL-иньекций проверяя ввод пользователя, так и здесь. Такая же ситуация со всякими игровыми консолями, которые ломают картинками(!), потому что в bsd'шной libpng(tiff/gif) лежит древний баг, который никто не чинит.
Сделали тяп-ляп и потом исправили, дело-то житейское. Стандарт UTF-8 это благо.
>>725538 Представь, что ты CEO, а к тебе приходит обоссаный чурка и просит ЗП 100к рублей. Да, он внезапно демонстрирует навыки крепкого рельсо-миддла. Но это ЧУРКА, БЛЯДЬ. КАКИЕ 100К НАХУЙ. ПОШЁЛ ВОН, ПОШЁЛ ВОН!..
Объясните что требуется. Единственные заваленные тесты. Что есть Environment Variable? Это та, что в массиве ENV и отдельном файле? Ибо если да -- я сделал это, так как именно из этого массива скрипт берёт ссылки и ключ апи. http://pastebin.com/qBu3xWSj
Бля. Анон. Поясни за бизнес логику. Что она из себя представляет. Все время слышу, что её отделяют и обновляют и кококо. Что это из себя вообще представляет?
Вот вот есть у меня crud приложение. Добавляет записи. Например, складывает значения первой и второй колонки, затем заносит в третью. Это уже бизнес логика? А как её отделяют? Создают отдельный класс, который это делает или как?
>>727139 Да, начни тупо пилить классы на каждый экшен. В контроллере у тебя останется обработка параметров, рендеринг результата и, возможно, редиректы. Всё что между этим - бизнес-логика.
Спустя время ты войдёшь во вкус и начнёшь понимать, как это всё грамотно организовывать.
Классы "операций" получаются хорошо тестируемые, повторно используемые, а также их можно друг с другом комбинировать. Кто-то называет это "сервисы", кто-то "юзкейсы". Кто-то именует такие классы глаголами, типа CreateUser (кстати, збс идея, мне очень импонирует). У нас в проектах мы называем "операции".
>>727139 Ну, по хорошему, модели должны быть плоскими как сиськи твоей девушки, и иметь в себе лишь логику сохранения данных. Даже валидации выносят из моделей, если они сложные. Сложение выносишь в какой нибудь сервисный объект, и вызываешь оттуда model.create с уже посчитаннымии Полями. Представьте, что рельсы - это способ доставки, один из многих. Сегодня ты юзаешь rails, а завтра переедаешь другой объект с тем же интерфейс от в сервисный объект, допустим сохранение в текстовый файл. Полиморфизм жи. Попробуй gem reform для начала, поможет с формами разобраться, если сложные. Я тебе завтра кучу ссылок скину, как домой пРиду, по теме.
Да, хорошее замечание - там где раньше в тестах тебе приходилось бы стать в базу данных, ты сможешь играться с сервизными объектами. На сложных проектах ускорить можно очень сильно.
Есть одна модель, и к ней надо прикрутить две связи has_one, которые указывают на одну и ту же модель. Что-то типа: http://pastebin.com/RZaNmWj2 Как это сделать? Как написать миграцию? Я пытаюсь. В роутах невероятный ужас получается: http://pastebin.com/eiDfisVR который идет в контроллер Shoe и распидорасивает методы create и update Чую, что есть кошерный путь. Наведите на мысль. Полиморфность не подходит, там одна модель belongs_to разным. А у меня одна модель дважды belongs_to одной.
>>729394 платят за них практически одинаково, но на жсе тебе ждет куда большее количество головной боли и баттхерт. хз насчет других стран, но в сшашке начальная зарплата джуниора руби - 60-70к в год. Ниже - зашквар.
>>729526 >джуниора руби - 60-70к в год Да, а ещё отсосут на собеседовании! Это деньги миддла, и то 70 уже высоковато. Ниже 50 зашквар вот, и он предназначен для тех самых джуниоров. Но на самом деле все эти космические цифры из американского манямира не работают нигде, кроме как там. Во вне ты будешь в лучшем случае получать 40 миддлом, а 50 и выше - это уже ебать сеньор.
>>729676 Так и я тоже не о техасском ранчо говорю. Редко кто ищет джуниоров за такие деньги.
>>729681 Ещё б кто взял. Сказали: разговорный хуевый и теперь ты нинужен, хотя думали, что раз грамотно пишешь, то и говоришь так же. Другие так вообще не отвечают даже не предложения. Трустори, пойду "сосать".
Допустим, у меня есть гем (Rails Engine), где мне надо создать несколько презентеров (обычные PORO). Я вижу несколько вариантов как это организовать:
1. Как в рельсах: app/presenters/my_gem/user_presenter.rb и класс MyGem::UserPresenter 2. В гем раз: lib/my_gem/presenters/user_presenter.rb и класс MyGem::UserPresenter 3. В гем два: lib/my_gem/presenters/user.rb и класс MyGem::Presenters::User
Есть два не стула, не варианта выбора - Руби и РНР. Что их них следует выбрать, чтобы как можно быстрее вкатиться во фриланс за еду? Работа в офисе не интересует - живу в лютой мухосрани и переездов пока не планирую. Сам в программировании не полный ноль, раньше довольно много писал на питоне, ну и инглиш знаю хорошо. Не знаю, в какой тред писать, поэтому не обессудьте.
>>731690 серьезно, блять. джуниоров не хватает, спамьте на джобспоттинге, линкедине, реддите, просто ЗАГУГЛИТЕ RAILS JOBS кококо работы нету. вам бы только на пехапе, неосиляторы
>>731695 тогда чего говоришь, что работы нету? руби постоянно в десятке самых популярных языков. или тебе нужен ХАЙП? Он у рельс прошел, и слава богу. он сейчас у жаваскрипта, адок с ебаной кучей приходяще-уходящих библиотек и системами сборки
>>731720 Единственное что я отрывочно слышал, так что питоноебы говорят что у них там развитый хайлоад, дохера всяких гайдов а на рубях нельзя. Не знаю мифы это или правда, недостаточно знаний
>>731803 Я помню писал раньше не питоне. Тоже какие-то отрывочные знание. Но очень очень нехватало bundle и gem из коробки, единствено что я помню. Все это хождение по сайтом, скачивание инсталеров всяких библиотек, особенно на windows просто бесило. Там уже что нибудь удобное завезли?
>>731805 Лол нет. Ну впринципе если привыкнуть к этому говну, то довольно удобно становится. на ноль делю, да Плюс я не знаю как с рубином, но в питоне вкатываться на работу достаточно тяжело.
>>731808 Ну вот что дейсвтиетльно не завезли. Ну вот я накачал этих wishmaster.exe у меня скрипт работает. Посылаю по почте скрипт, у заказчика не работат. Мне нужно ещё интсрукцию приложить, где все эти wishmaster.exe скачать, чтобы заработало?
>>716445 >Эктиврекорд Не пользуйся. Альтернативы: ROM, паттерн репозиторий. >Убогие хелперы Не пользуйся >Отсутствие view models. Есть. Гем Draper. >>716446 >Манки патчинг. Чем плохо в контексте крупного фреймворка? >Монолитная архитектура. Создай свою архитектуру. Придётся написать много кода и надо немного знать внутренности рельс. Но в итоге кода всё равно будет меньше, чем на других фреймворках.
Как выучить английский на уровне понятия книги? Я ньюфаг, опыта программирования практически нет (только базовые знания что такое переменная, словарь, массив и т.д).
>>732266 >опыта программирования практически нет >английский не знаешь Всё очень плохо. Я например с дипломом погромиста и хуевым знанием английского. Читаю доки, но медленно. В айти так и не вошел, хотя некоторое время работал.
>>732366 Двачую, да и декораторы в логике вывода нахрен не нужны, одна путаница от них. Лучше просто тупые хелперы использовать, без побочных эффектов.
Посоны, хочу сделать полную сепарацию Rails и FrontEnd. То есть отдельный проект с RailsAPI и отдельный проект с каким нибудь хипстерским JS-фронтентдом. Делается это для того чтобы делать несколько(неопредленное количество) сайтов на разных доменах и хостингах, которые в целом имеют одинаковые функионал, но разные роут, дизайн, сео. А так же чтобы не плодить на каждом хостинге по инстансу сервера котоорая будет жрать память, деньги за хостинг, синхронизацией данных между друг другом и т.п.
В целом хочу один ёба хостинг с рельсами и куча всяких говнохостингов, которые возможно даже PHP не воспринмют, на которых лежит html+js+css, которые соеденяется по REST API с главным.
Просто опыта такого нет, фремворков JS не знаю вообще(кроме жеквери), когда смотрю на список этих фреймворков просто не понимаю что из них можно выбрать, что говно, что нет, что поддерживает, что нет.
надоел пхп, захотелось поковырять руби. Что на нем можно написать? браузерную игру можно написать или проще на жс будет? одни и те же гостевухи шлепать как-то остоебало.
>>733168 Руби придумали умные люди, которым надоело конкурировать с Рафой в пхп. Основная задача рубиста - найти лоха, который поверит в революционность и необходимость этой замечательной технологии.
>>733044 Бери любой новомодный ангуляр, а в рельсах отдавай данные json. Для четвертых рельс https://github.com/rails-api/rails-api А в пятых можно будет сгенерировать API-приложение из коробки.
Месяц-два назад в /pr появлялся рубист, который предлагал в своём треде помощь вкатывающимся. Накидал задачек, примерный план обучения и скинул его в виде gist'а. Я запомнил, что у него на гитхабе в качестве аватара джин синий. Есть у кого списочек тех заданий?
>>733273 Не знаю как в Yii, но в Rails миллион гемов из-за разбивки на эти самые миллион гемов, модульность и другая культура разработки.
Если убрать гемы и юйки, то у руби останется няшная рубимагия, а у PHP набор багов заложенных ещё на ранних стадиях разработки языка. Незакрытый тег "<?php" яркий пример.
>>733279 Не знаю что за баг, но современные бест практисы наоборот говорят, что нахрен не нужно его закрывать, настраивайте нормально конфиги. Отчего пхп конечно же не перестает быть говном
>>733371 Лол, так я говорю про незакрытость тега "<?php". Зачем открывающий тег если нет закрывающего, выкинули бы и начальный тогда уж. Бест-практисы PHP это борьба с совершенно нелепыми багами. И это не от конфигов зависит (ну может можно конфигами поправить, но это отдельный пиздец, конфиг_ини, лол)
>>732099 >Так получается, что тут один семенящий дибил форсит про работы-нет на руби? получается тут один семенящий дибил форсит про то что работа есть
>>733863 Во-первых, коллбэки говно и не нужны, во-вторых, используй правильный коллбэк before_create и возвращай в нем false, чтоб не сохранять. А если хочешь удалить всех с "неправильными" членами - просто выполни соответствующий запрос один раз. В-третьих, никогда не пиши unless-else.
>>734144 >Если ложно, что член больше 25, то Это просто unless, а не unless-else. Людям проще думать положительными условиями, потому что они без дополнительных слов работают. Если член, то 1, иначе 2, а не "Если ложно, что член". Это как негативы смотреть, вместо фотографий, вроде понятно, а всё равно какая-то хуйня. Если ложно, что член больше 25, то вырасти член, а иначе, если не-ложно, что член больше 25...[/b] Давайте так не жить, короче.
>>734144 «if !( !( penis_size > 25 ))» — это конечно дичь, но имхо unless это как-то уже слишком сахарно. Хотя может сказывается мой опыт начального знания паскаля и си.
>>734500 Нет. Мем пошёл из-за того, что среди инженеров очень мало женщин.
Anyone who still believes in the meme only has to look at a biology classroom. It smells of old unused pussy.
Math is at 50% female, so is physics, chem, etc.
The only place where there are relatively no females in engineering, where they make up a solid 10% but that has reason.
You know that thing about pulling your pants down in prison to signal that you are open to get fucked in the ass? Majoring in engineering is literally the same thing, but for college students. Women just recognize the gay men club engineering is and step aside, but of course, the really big fucking sluts can't help but include themselves in the neverending ass fucking so they make up that 10% of women hoping that one day an engineer will mistake them for a guy and fuck them too.
What is true, according to the regressive left, is that being female is no longer 'enough' minority status. I mean, you need to at least be gay.
Еще по гостевухе на питоноджанге и жавахибернете сделать и можно будет говорить, что я на все лапы вебмакака.
А вообще я вот я учу дохуя всего и делаю какие-то вещи для себя, так я когда перечисляю все это и говорю, что нет опыта коммерческой разработке, но есть какие-то мелкие поделки на перечисленных вещах, то все почему-то так удивляются и не верят. Это нормально?
>>734655 >А вообще я вот я учу дохуя всего и делаю какие-то вещи для себя, так я когда перечисляю все это и говорю, что нет опыта коммерческой разработке, но есть какие-то мелкие поделки на перечисленных вещах, то все почему-то так удивляются и не верят. Это нормально? Предложение звучит как набор оправданий для себя и для других, даже через двач видно.
Заказчику в целом все равно какие ты там переделки умеешь использовать, ему скучно это слушать в целом, ему нужно знать что ты сможешь сделать результат который принесет ему прибыль, а то что у тебя там полон гитхаб переделок законченных на 5%, но очень интересных, это хорошо, но не прибыльно. Когда спрашивают про коммерческую разраобтку, спрашивают, знаешь ли ты про сроки, планирование, поддержку, и все остальное.
>>735191 я даже не знаю, как можно сделать проект коммерческим. заделать что-то типа платной системы отзывов с базой данных на моем серваке? но это же надо дохуя за бд платить. в голове у меня только крутятся вещи, которые можно делать в рамках хобби - всякие там гостевухи и браузерки, но их на хлеб не намажешь. я не оправдываюсь, просто я наверное тупой, медленный или от жизни отстал. все-таки кодинг - это уже больше для шустрых мальчиков-хипстеров из больших городов, которые ваяют что-то свое в перерывах между игрой в дотку. я в эту картину не вписываюсь.
>>735240 Законченный проект, это коммерчески успешный проект. Посмотри на nginx например, Сысоев в опенсорсе его допилил и бесплатно выложил и ему всё равно денег предложили.
В твоём случае ты должен сделать в своей репе законченный проект, с хорошим README.md, чтобы в нём были значки о прохождении тестов и сборки и некая документация. Короче всё как в лучших домах европы.
Коммерческий человек не может посмотреть в код и разобраться какой-ты охуенный, а вот на README.md посмотрит с интересом и там должна быть конфетка.
Ну да, мне кажется 90% опенсорса никогда не дорастут до nginx, ведь нет дяди, который стоит и подгоняет сроками и quality test. Люди останавливаются, когда попенсорс не приносит удовольствия, приятные фичи закончились, осталась ебля.
>>735354 Но ведь этот законченный проект тоже не будет коммерческим. Таких высот, как написание своего сервера мне все равно не достигнуть. А очередную гостевуху или браузерку вряд ли кто-то оценит. А других идей у меня все равно нет. Да и надоело уже писать всякое говно и выкладывать на гитхаб, прям как бомж с протянутой рукой трачу свое время годами: нуууу возьмииитеее ну плиииз. Нормальные чуваки создают такие проекты, на которые быдло само тянется и умоляет взять деньги, чтобы им попользоваться. надо какую-то голден идею, хуй знает.
>>735430 Я считаю тут нужно сразу понять кому ты себя продаёшь. Крутой охуенный проект это для конечных пользователей. А тебе как начинающему разработчику, надо продавать себя работодателю, которому прежде всего нужен компетентный человек, готовый работать как профессионал.
Именно поэтому у тебя должен быть гитхаб с твоим самописным блогом, где человек работодателя сможет взглянуть на твой код, оформление и проработку ридмишки, коммиты (их атомарность и осмысленность) — тогда проверяющий скажет, этот человек начинающий, но видно что не валенок и знает как и с чем работать.
В живописи есть такая фигня, которая отличат картину от наброска. Набросок может быть нарисован красками, проработан, но с какими-то отогнутыми углами холста (или о ужас просто листа). А картина же будет на идеально ровном холсте, а лучше в рамке, как законченное произведение.
Баклана у которого в коде охуенный код, а в ридми «Readme supposed to be here...» очень часто с работой прокатят. Мир поменялся за прошедшие десять лет, у индустрии появились стандарты, стайлгайды и прочая муть, а я ведь просто хотел писать видеоигры, а не решать задачки матановые.
Парни, я тут совсем новенький. Допустим, мне надо сделать красивый сайтец, а к нему бэк на рельсах. Так вот, можно, чтобы мне фрилансер сделал сайт, а я уже к нему запилил бэк?
>>735439 Можно, в самом простом случае тебе надо будет дать деньги и получить html/css/js файлики. Можешь поискать исполнителя знакомого с рельсой, который будет верстать и собирать под всякие less/sass/haml и прочие фронт-проессоры для рельсы.
Ребята, проведем небольшой опрос? Возраст? 20 Местоположение Рашка Сколько времени знакомы с рельсами? Пошел 4й год. Сколько времени работаете, используя рельсы? (за бабло т.е.)? 3й месяц Какой часовой рейт/зарплата? 15$, 20 часов в неделю Куда планируете свалить? США, флорида/джорджия/южная калифорния.
>>735450 Мало что понял, благодарю в любом случае. >>735455 17 ДС 3 дня, а так я андроид макака(2 года) 4 месяца(опять же, андроид) 25к в месяц за 1-2 часа в сутки США, Канада, Франция
Рубиисты! Есть ли сейчас смысол заниматься конкретно рельсами? Какая сейчас востребованность этой технологии? Если, например, я хочу свалить за бугор, найду ли я там себе пристанище со своими рубями?
>>735849 Ну например, скаффолдить можно то, что подлежит редактированию пользователем. (таблицу статей, пользователей, категорий).
ВОт ещё... связную таблицу для has_many :through (что бы связать категории с материалом например) через g migration делать? Модель же не нужна под неё?
>>735455 >возраст 21 >местоположение Страна без газа, Крыма и Донбасса >сколько времени знакомы с рельсами? Немного, был раньше питон-адептом >Сколько времени работаете, используя рельсы? (за бабло т.е.)? Еще не работаю >Куда планируете свалить? Планирую выпиливаться, а не сваливать куда-то
0) Симпатичные ретро end, заместо вечно просирающихся отступов 1) Статические методы без костылей 2) @, @@ и т.д. 3) Крутые разделители в виде :: 4) Тернарий ? : , святое дерьмо иисуса, как же я люблю этот оператор!
>>736432 >0) Симпатичные ретро end, заместо вечно просирающихся отступов Хуйня. Скобки читаемее портянок из эндов. >1) Статические методы без костылей Норм. >2) @, @@ и т.д. Норм. >3) Крутые разделители в виде :: Хуйня. >4) Тернарий ? : , святое дерьмо иисуса, как же я люблю этот оператор! Нечитаемая хуйня. В своем коде нормально, чужой еод с этим говном нечитаем.
>>736249 >второй квартал 2016 года >все места заняты Лел. Кстати, за что они туда попадают-то? За написание очередной очень нужной книжки "рабе длйа детеий" и хэловорлд на гитхабе?
>>736663>>736666>>736669 А чё вам трансгендерный феминизм не нравится? Ватники дофига, флюродросите Путину В.В.????? У американцев анусы разбиты, а у вас дороги — сами подумайте кому хуже живётся.
>>736688 Всем похуй на чужие анусы, горит от ебаного форса этого мусора. Тот(та) же Коралайн – не пишет нихуя, но "кококо я погроммистКА" и работает в житхабе просто по тому, что форсила эту хуйню. В опенсорсе теперь есть два вида мудаков – самолично Торвальдс который кладёт всех хуями и всем похуй, либо феменистки/трансфеменистки, которые увидев что-то что им не нравится в твоём твиттере могут начать ебать мозги, и эта хуйня только усиляется. Скоро начнут из корпораций выгонять за их репорты, тут конечно Путины и прочие личности виноваты.
У меня тут непонятная хуйня возникла. В проекте бэктрейс ошибки перестал отображаться. Теперь просто ОШИБКА и все, хуй знает что произошло. Подробностей ни в консольке нет, ни в браузере — прост редиректит на 500.
НО. В некоторых коммитах все работает нормально. Коммиты вообще никак друг с другом не связаны. Я нашел два таких методом тыка.
Как только переключаешься с "рабочего" коммита на нерабочий — бектрейс ломается. Разница между коммитами (рабочим и нерабочим) в одном файле, который вообще к делу не относится. Этот файл можно взять с нерабочего коммита, тем самым сделав рабочий и нерабочий коммиты идентичными, но ничего не ломается. Нужно сделать именно чекаут, чтобы сломалось.
В интернетах нашел только предложение апгрейдить рельсы (не помогло) и выставить _в каждом_ .rb файле кодировку, мол, кто-то там у вас `ActionView::Template::Error` портит. У остальных кодеров в проекте такой проблемы нет. Пробовал полностью клонировать проект в новое место — там то же самое.
В итоге после установки джема `better_errors` проблема исчезла, но... Что за хуйня??
>>736694 Вспомню традиции русских форумов и скажу одно: "Телепаты в отпуске". Мы не можем посмотреть в чем там проблема без исходников, которые ты конечно же не дашь, так что вопрос закрыт.
>>736690 Лол, я думал ты оценишь мою толстоту. Так-то я тоже за Путина и сам офигеваю со всей это ЛГБТ-шумихи. Просто интересно когда они программировать-то успевают? Ещё кстати у них фишка это волосы в кричащие цвета красить.
А что там у тебя вместо веб-сервера? Поищи error.log какой-нибудь. Вдруг там что-то на уровне интерпретатора (правда у меня было такое только когда писал в cgi-стиле).
>>736694 Короче, для начала делаешь git bisect пока не находишь коммит, в котором впервые произошла эта хуита. Ну и если он прямо текущий, я бы попробовал его разрушить и заново закоммитить.
>>736708 Пацаны не поймут если я с мастером что-то делать начну, у них-то все работает.
Вот так сейчас мастер у меня работает: sdflk43 HEAD - нерабочий qweasdf - нерабочий awef3 - рабочий asdf34 - нерабочий asfe432r - не рабочий разница между этими коммитами уровня "переименовал переменную в тесте" если чекаутить файл из нерабочего коммита (а там разница только в этом файле), то все продолжает работать 32asdfwe - рабочий
На других бранчах тоже не работает (на каких-то, наверное, работает).
Пробовал создавать бранч от рабочего коммита и мержить туда остальной мастер и тогда оно ломается.
В крайнем случае, раз чекаут нормально работает, можно было бы взять рабочий коммит и отчекаутить весь вообще проект рекурсивно, но пока что и так работает, с `better_errors`.
>>736694 >Нужно сделать именно чекаут, чтобы сломалось. Не то имел ввиду. Нужно сделать чекаут "нерабочего" коммита чтобы все сломалось. Если сделать чекаут файла из нерабочего коммита (а один единственный файл это и есть разница между этими двумя коммитами) — то логи работают. Это мне так повезло и я нашел коммиты с разницой в один файл, так-то есть и коммиты с разницей в охуилион файлов.
В общем, раз в development.rb логи работают, а в контроллерах уже не работают, то остается только расставлять логи во всем порядке загрузки рельс и смотреть где они сломаются.
>>737646 Ну это ты глупость какую-то по-детсадовски в ответ кукарекнул. Что за бэк не знает ерб? И слим не хипстерское, не говно, и не для домашних проектов. Все свежие проекты деляются на слиме, погугли, блядь, тупой болван.
Есть такая проблема - в модели есть метод, который создает новый текстовый файл и записывает данные туда. Но после этого не могу удалить этот файл ни рубями, ни вручную, пока не остановлю сервер. Если создаю чистый файл, ничего не записывая туда все проходит норм. Как удалить файл? метод модели def generate_file data = [] file = File.new("#{Rails.root}/public/files/#{self.id}.txt", "w+") self.books.each do |book| data << book.author.to_s end File.open(file, "w+") do |f| f.write(data.join("\n#\n")) end end
>>737679 Хм, действительно. Добавил f.close, и вроде удалилось.Думал что если записать в файл в блоке то он автоматически закроется. >Алсо, у тебя какая-то ёбань в коде, так не делают обычно. А как? Мне нужно чтобы кнопкой генерировался файл на сервере с данными из таблицы, а потом я отправляю его через send_file.
>>737777 Какие отступы, что ты несёшь? У тебя персональный бугурт, видимо. И да, ваши фронты дно и даже глубже дна, если для них лаконичность синтаксиса шаблонов = ёбля мозгов.
>>737808 В руби есть перегрузка операторов. Например, можно объявить метод "плюс" и написать кастомную логику сложения объекта заданного класса с другим объектом. Точный список доступных для перегрузки методов где-то есть, почти все можно перегружать. Метод с названием "-@" - это метод операции "унарный минус".
Амперсанд перед объектом при вызове методов пытается конвертировать объект в Proc. Можно определить метод to_proc у класса и использовать его, типа, вот так: array.map(&my_object).
to_proc у символов определён примерно так:
def to_proc proc { |arg| arg.send(self) } end
Что мы и любим постоянно использовать в конструкциях типа User.all.map(&:full_name)
Соответственно arr.map(&:-@) эквивалентно arr.map { |x| x.send(:-@) } или arr.map { |x| -x }
Руби основы примерно освоил, иду по туториалу Хартла инб4 хуета, вроде норм, но как посмотришь на шапку треда или на пикрилейтед, то накатывает чувство пиздеца, что я никогда не смогу освоить и 20% рельс и не смогу ничего своего написать. Это нормально?
Олсо параллельно ПОДРАБАТЫВАЮ за гроши - верстаю (и бек тоже) маленького сайта одной местной фармакомпании.
>>739441 Л. О. Л. После Java (я начинающая андроид-макака на удалёнке) рельсы - это как перейти с Gta V на сапёра. ИМХО рельсы настолько легки, что мне они кажутся нереально сложными. Объявил переменную - обращаешься к ней отовсюду, нет скобок у методов, бла, бла, бла... https://www.railstutorial.org/book/ Ты же тут учишь, да? Я тоже. 9.3.3, идёт третий день обучения.
>>739800 и поймешь что принцип 80/20 очень даже правдив. дебаггинг какой-нибудь лютой хуйни, поддержка легаси, попытка вызывать какой-то кривой сервис, нужный заказчику...
>>736249 Я воспринимаю это как популяризацию руби за счёт совеременных толерастных тенденций. Вот самый влиятельный трап руби-сообщества (пикрел) придумал Code of Conduct, в котором по сути прописные истины, и теперь эта хуйня используется в кадом проекте (CoC есть в репе Go, Rust, Node.js). Зато руби пропиарился, мол, мы впереди планеты всей не только по инфраструктуре и экстремальному программированию, но и по толерастии.
>>736690 >В опенсорсе теперь есть два вида мудаков – самолично Торвальдс который кладёт всех хуями и всем похуй Торвальдс охуенен. Во многом его характеру и стилю как общения, так и управления проектом, Линукс так взлетел.
Как с помощью devise разрешить пользователю совершить действие из емейла? т.е. у меня есть documents#action (GET). Какой-нибудь токен можно сгенерировать на сервере, чтобы запрос из емейла выглядел /documents?token=blabla, и потом расшифровать, и убедиться, что он верный?
Посны я нубас, так что вот. Например у меня есть блог, есть у постов метод шоу, мне нужно что бы там была форма отправки комента, я так понимаю, что нужно в экшне написать @comment = Comment.new , во вьюхе форма заполнится, а чё дальше то делать. В случае создания поста форма заполняется в new, а пост создается в create. Как мне из show поста пойти в create коммента? В какую сторону гуглить?
>>742761 >Как с помощью devise разрешить пользователю совершить действие из емейла? Во-первых, для авторизации юзай Pundit, в Devise только аутентификация. Во-вторых, выкинь Devise на помойку, пока не поздно. Используй Authlogic или Sorcery.
>>743190 Во-первых, ты меня не понял, мне нужно было провести аутентификацию с помощью GET запроса из емейла. Pundit и так юзаю. Во-вторых, выкидывать devise мне никто не даст, хотя меня он уже заебал, ибо легаси. В третьих, проблема решается с помощью prepend_before_action :shit в нужном контроллере def shit user = ... sign_in(user, event: authentication) end
Ребят, безумная фронтенд мартышка забегает в тред. Можете пояснить за актив модел сериалайзер? Суть такова: есть пагинация через каминари и пагинируемая модель с ассоциациями. От каминари мне нужен next_page, от сериалайзера модели с ассоциациями. Вот если просто в рут запрашивать модели таким образом: [CODE] def index @examples = Example.includes(:association, :another_association) .page(params[:number]) .per(20) respond_to do |format| format.html format.json { render json: @examples } end end [/CODE] то вызывается сериалайзер, все has_many и belongs_to мапятся в готовый джсон и просто охуеть как круто.
Но если в таком виде: [CODE] def index @examples = Example.includes(:association, :another_association) .page(params[:number]) .per(20) respond_to do |format| format.html format.json { render :json => { examples: @examples, next: @examples.next_page } } end end [/CODE] то сериалайзер не вызывается, т.е. сериализируется сама модель без ассоциаций и нужный мне next_page. Подскажите пожалуйста, как можно этот вопрос разрешить правильным образом, чтобы и через актив модел сериалайзер, и некст пейдж, и ДХХ одобрил, и вообще. А то сейчас я держу стейт пагинации на клиенте, что само по себе уже неприятно и непрактично.
>>743627 Да чет куклоскрипт меня подвел с коде тегом. Я так-то что-то нашманил уже вроде. На Аппликейшн контроллере сделал метод pagination и там извлекаю next_page: object.next_page. А потом на любом контроллере format.json { render json: @collection, meta: pagination(@collection), adapter: :json }. Магия жи есть. Это конечно всё круто, когда просто работает. Особенно после нода или гоу, где простыни писать надо по малейшему поводу.
Насколько сложно перекатиться из PHP разработки (yii2) в Ruby? Насколько сложно найти удаленную/постоянную работу новичку?
В вакансиях почти всегда пишут опыт разработки Ruby 2+ года. В настоящее время пол года кодил хэлоу ворды на PHP, в т.ч. на yii2, до этого освоил верстку и делал сайты на wp, в качестве дизайнера (программирование отдавал фрилансерам). Недавно разместил резюме на hh, откликнулся на 20+ вакансий с hh и weblancer.net. Прошел два удаленных собеседования, выполнил тестовое задание, на этой недели приступаю "PHP web программистом", если все будет ок. В противном случае, буду рассылать дальше резюме. Судя по отклику работодателей, и по сравнению с рассылкой резюме дизайнера (лол), я смогу найти работу. Планирую полгода работать на данной должности, копить деньги и параллельно повышать скилл.
Поэтому выбор, либо углубиться в PHP и понаехать в ДС в поисках работы в более-менее серьезной компании, либо выучить новый язык, не меняя сферы Web. Рассматриваю Ruby(RoR)/Python(Django)/C#(ASP.NET).
Сколько часов мне потребуется, чтобы пройти все задачи и прочитать всю литературу из ОП поста, занимаясь этим в свободное от основной работы времени, с учетом того, что у меня уже базовые навыки (ООП, базы данных, MVC, DOM/HTML/CSS)?
Какие реальные задания, проекты мне нужно выполнить, чтобы получить работу? Так ли важен опыт разработки именно на Ruby, зачтется ли реальный опыт PHP разработки? Каков уровень зарплат по сравнению с другими языками, может быть тут есть тот, кто уже перекатывался, и может ответить?
>>743928 мой совет - как только получится, вали с русскоязычных бирж труда и всегда работай с зарубежными заказчиками. Для них 2k$ в месяц для программиста это пиздец как мало, столько даун в макдаке получает. Тут важнее продать себя, чем быть охуенным программистом.
Господа, ещё такой вот вопрос есть по рельсам. Мне по дестрою в респонсе контроллера нужна инстанция удалённой модели на клиенте. Но, насколько я понимаю, @model.destroy в def destroy методе дестроит модель и получить к ней доступ в respond_to do блоке не получится, т.к. она была уничтожена двумя строчками выше. Я могу очевидным образом сохранить модель в переменную до дестроя, x = @model и в respond блоке вовращать саму переменную x, несмотря на то, что модель была уничтожена. Пример: http://pastebin.com/v7q5KA7Q Насколько это практично, в плане будет ли GC освобождать память и в целом является ли такой подход анти паттерном?
>>744080 >>744078 >>744018 Везде нужны звёздные сеньоры-комбайны с 5 лет опыта и портфолио. Вакансии есть, но нигде не берут новичков.
А охуительные ебланы с ctrl+f ссылками могут соснуть. Почти все вакансии там on site. Вы понимаете, что это значит? Нет, вам не предложат релокейшен. Просто это вакансии для белых людей, пусть даже они тупые. А если ты сеньор из отсталой раисси, тебя шлют на хуй. А вакансий на удалёнку там 3.5 штуки, понимаете, да? Не надо тыкать в сотни результатов по ctrl+f, там нет сотни подходящих вакансий, там свободных вообще нет. Придурок тупой, зла не хватает блядь, умничает тут.
Новичок в рельсах - это бомба и генератор говна. На руби и рельсах говнокодить можно легче и более изощрённей, чем на пхп. Ни один здравомыслящий руководитель не станет нанимать рельсоджуниора, который не отдаёт себе отчёта в своих действиях. И учить джунов не выгодно, потому что они всегда сваливают через год, когда становятся малость полезными. И ставить джунов на проекты к сеньорам не взлетает, потому что, охуеть не встать, сеньоры от этого ДРОПАЮТСЯ из конторы.
>>744309 ты чего думаешь, тебе будет на блюде с голубой каемочкой написано junior remote rails? лол прикинь, можно попытаться с ними добазариться, показать профиль, а не ныть на дваче, и сосать рашкины зарпалаты по 40к. это вообще только 1 несчастный линк, ты другие вообще открывал?
Принимаются изменения в шапку треда в виде пулл-реквестов:
https://github.com/meoweg/2ch-pr-ruby
Как показывать код:
Быстро - https://pastebin.com
С исполнением - https://ideone.com
Требуется аккаунт GitHub - https://gist.github.com
FAQ:
1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и теже вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
Следующий уровень, продвинутые книги по руби:
Confident Ruby by Avdi Grimm
Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition
Ruby Under a Microscope для любителей залезть под капот.
Документация по стандартным библиотекам http://ruby-doc.org/
Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0
И ещё раз онлайн: http://www.codewars.com/?language=ruby
Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com
И вот еще https://rubymonk.com/ - Матц одобряет.
2. Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
А еще можешь полистать на гитхабе гемы с нарастающей популярностю.
https://github.com/trending?l=ruby
Там еще нет тысяч строк, и тебе будет легче понять.
3. Есть ли GUI для руби?
Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный). Впрочем, писать приложение с GUI на серверной технологии - плохая идея.
4. Можно ли писать на руби мобильное ПО?
Да. Для iOS есть RubyMotion терпимого качества, для Android - лагающий и падающий, но всеми силами развивающийся ruboto. Для WinPhone до сих пор ничего не завезли.
5. Как установить разные версии рубей?
Легко и просто: https://github.com/sstephenson/rbenv
И это тоже, легко и просто: https://rvm.io
6. Что почитать по рельсам?
http://guides.rubyonrails.org
http://ruby.railstutorial.org
API: http://api.rubyonrails.org
Прекрасные туториалы в стиле for dummies - http://www.theodinproject.com/ruby-on-rails , а вот тут все тоже, но на русском http://codenamecrud.ru/
Классический вводный туториал, где делается с нуля клон твиттера, для новичков в rails самое то - https://www.railstutorial.org/book
Для дотошных читателей есть The Rails 4 Way.
7. Хорошие практики по руби и рельсам?
Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.
Почитайте еще Grimm A. - Objects on Rails
Еще продвинутое чтиво - http://tutorials.jumpstartlab.com/
8. Ruby/Rails блоги, рассылки и твитторы
IRC каналы на FreeNode: #ruby, #ruby-core, #RubyOnRails, #rails (не очень активен).
Твитторы @rails, @dhh, @yukihiro_matz, @wycats, @tenderlove
Рассылки ruby-core, rails-core, rails-talk
Подкасты:
- http://rubyrogues.com
- http://ruby5.envylabs.com
Скринкасты:
- http://railscasts.com
- https://peepcode.com
- https://www.destroyallsoftware.com
- http://railsforzombies.com
Блоги:
- rubyflow.com - каждый день новости, новые библиотеки, обновления, все дела.
- rubysource.com - читаем интервью, хорошие практики, и безумные сравнения упоротого дибила-индуса на самом деле их пропускаем
- rubyinside.com - новости, туториалы.
- rubyweekly.com
- http://37signals.com/svn
- http://yehudakatz.com
- http://afreshcup.com
9. Я не могу в английский, что делать, анон?
Идти учить английский, без него тут делать нечего.
10. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - [email protected]
А еще есть русская слак конфа - https://invite-me-to-2chpr.herokuapp.com/ она общая, но есть очень активный руби канал.
Так же русская гугл группа, активная - https://groups.google.com/forum/#!forum/ror2ru
Еще вот - https://onrails.club/
11. Какие гемы стоит знать?
capybara, rack, rspec, devise, cancancan, simple_form, solr, sinatra, тысячи их.
Поиск гемов https://www.ruby-toolbox.com
12. Зачем нужны тесты и как их писать?
http://rusrails.ru/a-guide-to-testing-rails-applications
http://habrahabr.ru/post/163597/
Вместо этого можно прочитать классную книгу Everyday Rails Testing
13. Где можно задать глупые и не очень вопросы?
- здесь
- stackoverflow.com
- тематические slack-конфы
- а вообще, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.
14. Как фокнуть\сделать фичу\исправить баг, сложно ли это?
Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.
15. В чём писать код?
Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.
16. Можно ли писать на руби с под windows?
Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac
17. Руби язык одного фреймворка?
Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape, отличные штуки для DevOps - Chef, Puppet и годные генераторы для бложиков - Jekyll, Middleman, всё это активно используется в продакшене
18. Можно ли делать игры на Ruby?
Можно, но не нужно. Гем Gosu.
19. Ютуб каналы
Youtube driven development...
Вот тебе пара каналов, но никому не говори что учишься по видео.
https://www.youtube.com/channel/UCIQmhQxCvLHRr3Beku77tww/videos
https://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQ
https://www.youtube.com/channel/UCSI77lJlzlCFPLdV1RSAoYQ
https://www.youtube.com/channel/UCPIyDzf1vwWc8EQJGUX-vYw - тут на ру$$ком даже.
20. Как и где искать работу?
Легко и просто - http://rubyjobs.ru/
Не так просто - https://upwork.com/
Еще вконтакте есть группы по руби/рельсам, там иногда постят вакансии. Еще в русской гугл группе постят вакансии. Новичку будет сложно, но возможно.
TODO лист для ньюфагов:
И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidaras
Начни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь.
Рекомендации:
1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии.
2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет)
3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды, можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch
4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.
После этого тебе будут нужны паттерны, без них твой код превратится в говно. Впрочем, с ними тоже превратится. Один из часто используемых - Service Object.
https://netguru.co/blog/service-objects-in-rails-will-help - о сервисах
Еще паттернов - https://robots.thoughtbot.com/back-to-basics-solid
Но самый читаемый код, как и следовало ожидать, даёт функциональное программирование. Начни отсюда:
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-i/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-ii/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-iii/
http://www.sitepoint.com/functional-programming-pure-functions/
http://www.sitepoint.com/functional-programming-ruby-value-objects/
Только не переборщи. Руби - не функциональный язык, и иногда такой код может работать медленней.
Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами.
Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.
Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой.
Ну, а мы открываем очередной Ruby Thread.