Вы видите копию треда, сохраненную 7 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Arhivach: https://arhivach.net/thread/663733/
Ruby thread
ИЗУЧЕНИЕ ЯЗЫКА
Q: C чего мне начать, чтобы стать рубистом?
A: Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и те же вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby.
А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
Q: Следующий уровень, продвинутые книги по руби:
A: Confident Ruby by Avdi Grimm | Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition | Ruby Under a Microscope
Q: Онлайн курсы чтобы попробовать/вкатиться:
A: https://ruby.github.io/TryRuby/ | https://rubymonk.com/
https://www.codewars.com/?language=ruby | http://rubykoans.com
Q: Какой gem посмотреть, чтобы понять, как писать код?
A: Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
Еще можешь полистать на гитхабе гемы с нарастающей популярностью (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=ruby
Q: Хорошие практики по руби и рельсам?
A: Обязательно стайлгайды (как оформлять код):
https://github.com/rubocop-hq/ruby-style-guide
https://github.com/JuanitoFatas/fast-ruby
https://github.com/rubocop-hq/rails-style-guide
Руководства "для чайников":
https://www.railstutorial.org/book [en]
https://www.theodinproject.com/tracks/1 [en] | http://codenamecrud.ru/ [ru]
Еженедельная рассылка с новостями из руби мирка:
https://rubyweekly.com
Прочая годнота:
https://github.com/markets/awesome-ruby
Q: Документация по стандартным библиотекам руби и рельс:
A: https://ruby-doc.org/ | https://api.rubyonrails.org
https://guides.rubyonrails.org
Q: Можно ли на руби писать нативные GUI, мобильные приложения, игры?
A: Да, но не стоит.
Q: Что ещё изучить?
A: Английский, git, linux. Паттерны. Один из часто используемых – Service Object.
https://www.sitepoint.com/7-design-patterns-to-refactor-mvc-components-in-rails
СРЕДА РАЗРАБОТКИ
Q: Как установить разные версии рубей?
A: https://rvm.io | https://github.com/rbenv/rbenv | https://github.com/asdf-vm/asdf
Q: Есть ли чат в Telegram?
A: @rubylang | @rubyschool | @rubyrush | @ruby_talks | @ruby_wdh
РАБОТА
https://hh.ru/search/vacancy?text=ruby
https://t.me/rubyjob
https://rubyjobs.dev/
https://www.upwork.com/
)))
И по зп +- напиши
6 лет работал джава макакой в тырпрайзе. Надоело...
>>145120
Начал курсы от thinknetica, забросил (времени пиздец было мало), в итоге очень медленным темпом учил руби (ну и по фану читал всякое про программирование в целом). Потихонечку проникся линуксом но как основную систему ставить всё равно не собираюсь, очень заебно
Знаю объектную модель руби, понимаю, что лежит под синтаксическим сахаром (кроме некоторых мест в контроллерах и вьюхах в рельсах, там чорная магия какая-то). Люблю ООП, постоянно что-то инкапсулирую и абстрагирую, даже одноразовые скрипты делаю так, чтобы получится класс с точкой входа, который можно подключить к чему угодно. Английский на хорошем уровне. Умею читать SQL (писать не особо), быстрорешительно открывать доки и гайды. +- умею понимать назначение сущностей без гайдов, при помощи исходного кода, IRB и #public_methods
HTML понимаю на уровне веб1.0, CSS не трогал от слова совсем, JS стараюсь всячески избегать (но сейчас всё равно рельса больше для апишек, а не фуллстак).
Много писал скриптов для себя, всяких ботов, парсеры, обращения к АПИхам и прочее.
Собеседования как такового не было, просто на первой же вакансии дали репозиторий и сказали прикрутить фичу в качестве тестового. За пять дней часа по четыре в день сделал основную часть - сказали зоебись и взяли на удаленку, сейчас сижу и потихоньку полирую, в спешном порядке вник в ActiveJob (Sidekiq, Redis) и Docker-compose было сложно. Денег обещали 30К + до 20 бонусом но ещё ничего не платили
Про штат ещё хз, надо бы почитать и поспрашивать: как вообще устраиваться? Самозанятым?
>Про штат ещё хз, надо бы почитать и поспрашивать: как вообще устраиваться?
>Самозанятым?
This. Выгодно и тебе (ты же не надеешься на пенсию, лол?) и работодателю (не переплачивать налоги, социальные взносы, вот это все).
Только что-то совсем мало предлагают, да.
>>145665
Ну, это моя первая работа в ИТ, плюс занятость частичная (часов 20-25 в неделю выходит пока), график свободный, мне прямо в самый раз. 40-часовую неделю я не вытянул бы, я не люблю по 10 часов в день листать двач и делать вид, что работаю. Плюс на следующих проектах может быть больше.
Если уж совсем честно, я бы это задание и бесплатно сделал, в качестве самообучения.
>>145478
Да я не пиарю, там слишком уж интенсивно для моего тогдашнего графика было. А код ревью там не особо полезный, ты либо знаешь тему и пишешь более-менее нормально, или не знаешь и вдуплить не можешь, что тебе объясняют. По рельсам много подобных гайдов, главное - мозг настроить и вникнуть в суть™, а детали по очереди осваивать.
Но, я думаю, если кто-то вкатывается с другого языка, то норм вариант.
DHH в последнем видео сказал что webpacker будет выпилен, жду когда 7.0 выйдет
Вот думаю, джуном на удалёнку реально или нет?
Одно дело продать себя-найти работу. И совсем другое - ее выполнять-закрепиться на месте.
Так что уточняйте)
Не смотри, что люди дурачки пишут, что 50к это мало. Я с 25к в 2019-2020 начинал.
Сейчас 150 удаленка. полет нормальный.
Что не так?
Что мешает MySQL прикрутить?
Хранить его надо либо в отдельном файле, который не коммитится в репозиторий и существует только локально, либо в ENV. Либо и то, и другое через figaro.
Ещё должно переваривать строку вида 'postgres://user:password@host/dbname'
Можешь её держать в окружении
figaro, dotenv, но в rails есть credentials ещё, там ничего сложного. Но обычно всё через ENV выставляют
>чтобы получится класс с точкой входа, который можно подключить к чему угодно.
Что за точка входа?
И что за подключения, где об этом почитать?
Пожалуйста
Это когда у тебя не просто файл с перечислением действий, а класс StuffDoer, внутри которого описаны методы, совершающие эти действия.
И когда тебе надо использовать логику из этого скрипта в контексте приложения, ты просто require_relative 'path/to/stuff_doer.rb' (можно в IRB) и вызываешь StuffDoer.new.do_stuff
Если никакого большого приложения нет, и у тебя проект из одного файла, то это не обязательно.
В пайтоне принято в таких случаях городить конструкцию if __name__ == "__main__", чтобы связывать разные файлы.
> В пайтоне принято в таких случаях городить конструкцию if __name__ == "__main__", чтобы связывать разные файлы.
Хуйню написал. Не в этих случаях. Извините, пьяный.
Он описал Service Object. В целом, общепринятая практика, если проект разрастается.
>класс StuffDoer, внутри которого
>описаны методы
>совершающие эти действия.
А так же, возможно, он имел ввиду что там много методов и он может делать
StuffDoer.new.do
StuffDoer.new.stuff
А SO должен выполнять только одну задачу 1 методом
Но, узнав все это из данного поста, он может сказать что все именно так чтобы не упасть в глазах профессионалов данного треда.
class StuffDoer
def self.do_stuff(args)
new.do_stuff(args)
end
def do_stuff(*args)
do_some_stuff
do_some_more_stuff
finish_doing_stuff
end
private
def do_some_stuff
end
def do_some_more_stuff
end
def finish_doing_stuff
end
end
Скорее как-то так
>А SO должен выполнять только одну задачу 1 методом
Это ты так решил или тебе кто-то умный подсказал?
Додик, спок
Можно так ещё, вместо определения self.do_stuff в каждом классе
class ApplicationService
def self.method_missing(method, args, kwargs, &block)
new.public_send(method, args, kwargs, &block)
end
end
class StuffDoer < ApplicationService
Со звездочками перед args и kwargs, конечно ебаная макака запили разметку для кода
Не совсем понятно нахрена method_missing оверрайдить. Есть же initialize для таких вещей, не?
Типа ты при вызове метода класса создаешь экземпляр и передаешь вызов ему? Зачем тебе вообще создавать экземпляр класса если ты его никак не используешь после вызова?
Какой-то странный костыль непонятно ради чего.
Еще один говномакакен, начитавшийся книжек, нотак и не понявший как и где применять
>Зачем тебе вообще создавать экземпляр класса если ты его никак не используешь после вызова?
>никак не используешь
>вызываешь метод
>никак не используешь
>>150692
Да не бугурти, почитай metaprogramming ruby, там всё на пальцах поясняют что к чему и зачем.
Мертвый или нет? Есть такой чел Роман Пушкин. Топит за руби, говорит что вкатиться не сложно на доллары, мол по этой дорожке прошло уже много людей и все збс. Это наеб?
Наёб, язык мертвый, платят копейки
тока почему-то он сам давно пишет на жс и го
Ракторы как-то попроще выглядят, ты создаешь - и он сразу в бэкграунде чего-то бурчит, автоматически передаётся исполнение из одного в другой и обратно в мэйн, но немного заебно эти сообщения им отправлять. И в глобальные переменные и их аналоги не попишешь.
Смотря с какой целью использовать, если нужны параллельные вычисления на нескольких ядрах то треды тут не помогут, раньше приходилось форкать процесс, теперь можно использовать ракторы, но там какой-то мутный уровень изоляции, в существующее приложение их просто так не встроишь, кодовую базу не переиспользуешь, придется придерживаться специфичной архитектуры и ограничений. Если нужна асинхронность или ожидание io-bound операций то треды вполне подойдут, заворачивать в треды обработку данных и тяжелые вычисления смысла особо нет.
У меня план такой:
1. Телеграм-бот сидит в одном процессе на одном подключении к АПИ телеги.
2. На каждое новое сообщение создаётся объект класса MyBot
3. На определённую команду открывается рактор, который ждёт сообщение вида "да/нет", чтобы стартануть левый сервис или тихо умереть. Параллельно идёт обработка следующих сообщений, мэйн рактор крутится, объекты мутятся
4. Какое-то из последующих сообщений передает этот самый ответ "да/нет", тогда обьект MyBot находит этот рактор из пункта 3 (вписан в псевдоглобальную переменную типа RactorTrackerModule.current_ractor, это уже детали) и передаёт ему это сообщение.
Так-то работает, но я хуй пойму, как в это всё впихнуть автоматическое "нет", если ответа не получено, скажем, за 15 секунд. У меня почти-почти получилось, но одновременно ощущение и что вот-вот придумаю, и что я квадратный кубик в треугольную дырку пытаюсь запихнуть. Может, как будет время это пет-проект, не работа, прозрею.
Главная загвоздка в том, что как только пытается открыть второе подключение к телеграму, он кидает исключение и всё падает.
>У вас что нес async await?
>Async Python is slower than "sync" Python under a realistic benchmark.
Ясно-понятно.
Хочу чтобы по ctrl+F5 мой код запускался и какал в консоль.
Помогити
Нахуя? Пишешь ruby file.rb или там rails task:do
Почитай, как WSL под VS Code протянуть, - и готово, дальше уже разберёшься.
в textmate можно просто делать cmd-r
https://books.goalkicker.com/RubyOnRailsBook/RubyOnRailsNotesForProfessionals.pdf
Никогда не понимал нахуй эти ваши руби вообще существуют и на них кто-то пишет.
Я конечно не спец вообще в вебе, я по с++. Но есть же всякие питухоны, джавы, сисярпы и прочее. Тем более сейчас эликсир появился вроде как подразумевающий замену руби.
Но сколько лет я уже работаю прогером, для меня всегда было загадкой, кто эти люди пишущие на руби. У меня всегда было такое ощущение что руби это какой-то не настоящий малопопулярный язык.
Это такой красивый пхп который поднялся потому что на rails можно было очень приятно и быстро однотипно клепать приложения в стартупах или в заказной разработке, был бум скриптового говна и руби/питон/пхп примерно одинаково популярны были и все позволяли быстро калякать. Рейлс самый старый из крупных фреймворков пыхоплеяды, джанго и симфони попозже появились
А что на счет элексира? говорят сейяач многие рубисты перешли на него
Я сам только вкатываюсь, мне нравится синтаксис.
Плюс во многих версиях RPG Maker этот язык встроенный для скриптов, а мне интересен геймдев.
>А что на счет элексира?
Эликсир штука интересная, рубистов подкупал синтаксис и в целом схожая мотивация сообщества, но это только верхушка айсберга, потому что erlang и otp всё-таки совершенно другой стек и у него другие цели - в основном это телеком и распределенные системы, показательно что в создании дискорда смогли реализовать его сильные стороны.
Начинать знакомство с программированием через эликсир я бы точно не советовал.
Вкатился джуном на удаленку, 95к (компания в мск). Без всякой чуши с курсами, это мое первое место работы так что считаю отличным результатом, испыталку прошёл в сентябре.
Советую книжку для будущих джунов: Well grounded rubyist, Agile web deployment with Ruby on Rails 6. Начиная со второй книге уже начинайте делать банальные проекты по типу бложиков. Не стоит себе забивать голову слишком низкими вещами (по типу как челик с метапрограммированием, во первых вам никто не даст писать такой код в команде на позиции джуна, во вторых это только больше отодвинет вас от поиска работы, у вас и так будет время всему этому научиться уже на практике)
Похрюкал с челика который вкатился на 30к в рельсы где голодовка кадров из-за удаленки.
Также ещё раз про всякие курсы, во первых многие тимлиды хрюкает с таких резюме когда открываешь гитхаб а там только проекты с этих курсов, во вторых ребят вы же вкатывается не в самый популярный язык, тут намного меньше курсов и вы реально на одно лицо с этими одинаковыми проектами
Блэт, получается, я чуть занизил. Хотя в другом месте, назвал еще ниже и мне не перезвонили)
Как часто у тебя возникают вещи вроде забыл что-то добавил или сделал не так?
Выдали ли ноут?
Грац!
Расскажи долго учился, долго искал, скок собесов было, что спрашивали? Как тебе на удаленке РАБотается?
Shrine > ActiveStorage
А какие у тебя скилы, что умеешь, что понимаешь и тд. Какое было тестовое задание. Сколько учился, что делал. Расскажи подробно плиз.
>Никогда не понимал нахуй эти ваши руби вообще существуют и на них кто-то пишет.
Бэкенд в основном используются рельсы, сейчас еще помимо сайтов микросервисы много кто на них пилит
>Но есть же всякие питухоны,
В целом да, джанго слегка отличается, как и синтаксис питона, но в целом если знаешь что-то одно, то без проблем можно писать на другом, разница уже кроется в деталях, тут скорее дело привычки на чем писать.
>джавы, сисярпы и прочее.
Это фабрики по созданию фабрик, пока джавист пишет имплементацию интерфейсов которые он насоздавал чтобы запилить простой круд, рубист уже запилит весь проект. Ничего общего между языками, а уж тем более рельсами со спрингом нет, это абсолютно разные сферы применения.
> эликсир появился вроде как подразумевающий замену руби
Он только визуально похож и то из далека, всей няшности ООП из руби в нем нет и плюс это совершенно другая тема, там все крутиться вокруг эрланга и нацелено на отказоустойчивость. Абсолютно разные ниши.
>Но сколько лет я уже работаю прогером
А по тебе заметно
Короче ты хотел сказать, что руби это грубо говоря пыха, а все рубисты это тупые обезьяны без образования в CS? Ок понял.
В смысле лучше/хуже? Я вроде не просил совета, ни в плане куда мне идти, ни в плане каких-то божественных откровений от чела который "не шарит в вебе" касательно вебовой хуйни. Я сам тоже не по вебу, поэтому охуительных мнений касательно веба не имею.
ага мимо строк прочитал) устроили прямо в штат по трудовому, уже юзаю плюшки в виде ДМС и оплаты обучения
>>163619
возникают но не часто, у нас кодревью да и если фича не работает то явно ты что-то сделал не так и сразу поправишь) а так по ощущением словно за 1 месяц проходит год учебы (утрирую конечно, но оглядываясь назад уже вижу как можно было код намного более понятным и читаемым написать)
выдали MacBook Air m1 16gb 512gb ^_^, руби 3 на проекте так что все отлично работаете
>>163691
>>164179
спасибо, на удаленке работается отлично, за временем никто не следит, единственное что на синке в 4 дня всегда надо быть и рассказать как успехи по задачкам)
Собеседований было ровно два, прошел оба.
Расскажу тогда про собес именно туда куда устроился:
первый собес был с hr (тупо проверили что я адекватный),после него дали тестовое задание - написать магазин носков (лол), никаких наворотов не нужно, можно без регистрации, оценок и т.п., максимально простой. В другой компании тестовое делал это создание блога и что интересно тоже не нужна была регистрация / авторизация
второй с техническим лидом + разраб, спрашивали в основном на общее понимание компухтера (что такое http, почему один язык быстрый а другой медленный, что происходит после ввода адреса в браузере), по руби были такие: напиши хеш и достань значение, что может быть ключом в хеше, что такое extend и include и в чем их разница, по рельсам спросили вроде что вернет .find и .where и что отдается в action index у контроллера (коллекция или единичный), какие пет-проекты делал и немного поболтали про жизнь, что интересно и т.п.
Искал работу неделю, а вот учил руби + рельсы чуть меньше чем 3 месяца (фул-тайм, т.е. я вообще все время этому уделил), высшего образования у меня нет, опыта работы тоже (первое место), из смежного опыта это только игрался с php и сделал парочку личных кабинетов для Minecraft серверов (лол) и то друзьям за бесплатно))
Впервые столько текста пишу... Короче никаких рокет-сайнс вопросов не будет и никто не будет ебать по рубям и особенно по рельсам, вас чисто смотрят что вы не залетный и можете обучаться ибо один хуй у вас в голове хуйня и на настоящих проектах уже надо вас обучать. И не забывайте про софт-скиллы, если с вами не приятно общаться то и смысла брать нет т.к. с вами постоянно нужно будет общаться, мы же джуны) сори за ошибки и все такое, писал как мысли шли
ага мимо строк прочитал) устроили прямо в штат по трудовому, уже юзаю плюшки в виде ДМС и оплаты обучения
>>163619
возникают но не часто, у нас кодревью да и если фича не работает то явно ты что-то сделал не так и сразу поправишь) а так по ощущением словно за 1 месяц проходит год учебы (утрирую конечно, но оглядываясь назад уже вижу как можно было код намного более понятным и читаемым написать)
выдали MacBook Air m1 16gb 512gb ^_^, руби 3 на проекте так что все отлично работаете
>>163691
>>164179
спасибо, на удаленке работается отлично, за временем никто не следит, единственное что на синке в 4 дня всегда надо быть и рассказать как успехи по задачкам)
Собеседований было ровно два, прошел оба.
Расскажу тогда про собес именно туда куда устроился:
первый собес был с hr (тупо проверили что я адекватный),после него дали тестовое задание - написать магазин носков (лол), никаких наворотов не нужно, можно без регистрации, оценок и т.п., максимально простой. В другой компании тестовое делал это создание блога и что интересно тоже не нужна была регистрация / авторизация
второй с техническим лидом + разраб, спрашивали в основном на общее понимание компухтера (что такое http, почему один язык быстрый а другой медленный, что происходит после ввода адреса в браузере), по руби были такие: напиши хеш и достань значение, что может быть ключом в хеше, что такое extend и include и в чем их разница, по рельсам спросили вроде что вернет .find и .where и что отдается в action index у контроллера (коллекция или единичный), какие пет-проекты делал и немного поболтали про жизнь, что интересно и т.п.
Искал работу неделю, а вот учил руби + рельсы чуть меньше чем 3 месяца (фул-тайм, т.е. я вообще все время этому уделил), высшего образования у меня нет, опыта работы тоже (первое место), из смежного опыта это только игрался с php и сделал парочку личных кабинетов для Minecraft серверов (лол) и то друзьям за бесплатно))
Впервые столько текста пишу... Короче никаких рокет-сайнс вопросов не будет и никто не будет ебать по рубям и особенно по рельсам, вас чисто смотрят что вы не залетный и можете обучаться ибо один хуй у вас в голове хуйня и на настоящих проектах уже надо вас обучать. И не забывайте про софт-скиллы, если с вами не приятно общаться то и смысла брать нет т.к. с вами постоянно нужно будет общаться, мы же джуны) сори за ошибки и все такое, писал как мысли шли
не поверишь НО
1) бложик, чисто CRUD
2) микро-магазинчик + тесты! (хоть чуть-чуть тестов)
3) хочешь бота для телеги напиши (можешь даже без рельсы на Sinatra)
все что тебе надо показать это что умеешь делать CRUD апишки и понимаешь что в рельсе MVC (вот тут у меня моделька, а тут вьюха, а тут контроллер пук-пук)
только обойдись без гема devise и без заигрываний с method_missing и т.п. (показать что понимаешь что это такое норм но пихать везде это будет выглядеть как пиздец, вот на такое прям смотрят, я просто вместе с тех. лидом сидел в дискорде пока он разгребал новые резюме на джунов, так что инфа из первых уст) Очень много ребят с thinknetica со своими проектами с поиском шашлыков шли нахуй и из таких выбирались опять же те у кого блядь хоть что-то есть на гитхабе помимо этого однотипного говна с курсов. Логика тут такая: если ты ничего не захотел сам сделать и делаешь только по курсам то и заинтересованности у тебя нет и на начальном этапе ты даже не смог сам что-то сделать. Поэтому в очередной раз похрюкаю с thinknetica с их "выпускаем сильных джунов" которые сами ничего не делали))
ЕЩЕ РАЗ: Well grounded rubyist, Agile web development with Ruby on Rails 6. Читаешь первую, пытаешься понять, не получилось понять и по хуй, едешь дальше, читаешь вторую, тут как раз магазинчик делаешь, потом кряхтишь и делаешь небольшие проектики реально не большие не надо растягивать на НЕДЕЛИ, после устраиваешься на работу и там уже тебя направят, может опять первую книжку скажут почитать (ее все очень любят, даже в других команда поспрашивал). ТЫКАЕМСЯ по вакансиям с "стажер" и "junior", забивай хуй если кажется что не подходишь под второе и просто шли резюме и проси тестовое
Почему именно Well grounded rubyist?
Она старенькая да и на английском, не у всех такой уровень чтобы книги читать в оригинале, ладно там статью в сети
2019 год
Она нудная, как и все книги этой конторы. Но есть и годные моменты.
По большому счету, там просто идет разбор языка, дефолтных методов. Не обязательно ее читать. В любой книге по rails, вначале, есть инфа чисто про ruby. Этого более чем достаточно.
Другой анон
Это ру организация? Проекты для рфии? Меня напрягает что везде нужно делать локализацию, куда я попал.
А кто просил тебя высирать хуиту, за которую я тебя отчитал?
0, но в этом плане свободно (если хочешь можно vue или react взять и попилить в соседних командах)
>>164628
да, отправили доставкой
>>164640
потому что вопросы на собесах из этой книги, и ничего она не старая)) дохрена проектов еще на Ruby 2.7
в чем разница между книгой и статьей? если у тебя такой уровень англ то ты все будешь переводить по словарю, магической таблетки нет - "прочитать статью и войти вайти"
>>164703
пара вечеров и все, дольше ныть что нудная книга особенно когда работы нет)) вот сейчас я спокойно ною что нудно и мне похуй
>>164726
организация ру, проект не для ру) локализации не нужны
просто забей, такой херней страдают ребята которые прыгают с языка на язык
Сбер?
УЖЕ ЗАВТРА конференция RubyRussia 2021 online
Расписание
24 сентября 18:00–23:00
25 сентября 12:00–18:00
https://rubyrussia.club/schedule
Официально разрешаю вам зарегистрироваться с вашей фейко-почты-на-protonmail, номер телефона любой (подтверждать не нужно). Ближе к делу постараюсь вкинуть вам ссылочку непосредственно на платформу, где будет стрим и вопросы
https://railsclub.timepad.ru/event/1657498/
Есть Crystal, у которого синтаксис, как я понимаю, очень близок к Ruby но который только появился. Для Windows ещё нету его.
НУ ЧТО ПОГНАЛИ
Официально разрешаю вам заходить через фейко-мыло:
https://tulu.la/chat/ruby-russia-00000p/auth/signup
И где была ссыл очка?
Бля.
I made it
На выходных нормальные люди отдыхают.
Это слабенькие. Сильные ушли в Эликсир.
вобще конфа охуенно организована, смотреть кайф
другое дело что вокруг реально бегают джависты с 1кк рпс, а тут на конфе чувак про 55к рассказывает, сразу всем все понятно
>джависты с 1кк рпс
>реально бегают
>1-byte response body, no HTTP pipelining, no special request headers
ruby warrior
Анончик, быстрогугл ничем особо не помог, если мне не в этот тред то извиняй. Пилю на галере сайт на рельсах, причём вкатиться пришлось с полгода назад и довольно экстренно, поэтому до сих пор могу не знать некоторые простые вещи.
Сейчас вот такая задача: есть набор сущностей с названиями вида Хуй 1, Хуй 2, [...], Хуй 12. Если написать модель.order :name, то они выдадутся в порядке Хуй 1, Хуй 10, [...], Хуй 12, Хуй 2, [...]. Как мне их выдать в нормальном порядке (Хуй 1,2,3,...,12)? Пердолить коллации для постгреса?
Что правильно было бы хранить длину хуя отдельно знаю, но это только вариант именования, а вообще может быть по разному, в том числе необязательно с цифрами. По той же причине не могу сортировать кастом к числу, нужно именно отсортировать строки с правильной сортировкой по содержащимся в них числам в случае наличия таковых.
А на время испытательного как тебя оформляли? У тебя вообще были на руках доки подписанные с 2х сторон?
Блядь, ну я же написал, что нельзя переделать в две колонки, потому что нечего переделывать. Оно задумано как название без всяких цифр, просто цифры могут быть тоже, и тогда с ними должно сортироваться правильно.
Не знаю насколько быстр сплит_парт, скорее всего такой запрос подвесит базу на большой выборке.
Самый оптимальный вариант - новая колонка, в миграции пробежаться по всей базе и вытащить цифры из названия, так же повесить коллбэк before_save на модель, в случае изменения имени обновлять поле, в запросе просто ордер по двум полям. Тебе же не нужно менять само название, просто появится служебный столбец с цифрой, да и всё.
Интересные доклады уровня
> Привет, я тимлидесса. У меня 10 лет опыта, я умею гуглить на so. У меня не завелся девайся, я загуглила на so как поченить.
>загуглела как поченить
>непонятно((((
>ну попробовали там поковыряться
>не смогли(((((((
>забили, работаем дальше
>сделаю об этом доклад
https://github.com/sferik/rails_admin/blob/master/lib/rails_admin/abstract_model.rb вот тут что-то похожее есть, но ничего не пойму, как оно работает
Я сегодня смотрел чувака с гитлаба, который рассказывал как они на 3 версию преходили, короче хотели прикрутить типизаци rbs охуенно, 3.0 производительная и пиздатая, короче боялись что гемы не будут иметь поддержку 3 версии, но там все охуенно и все нужные гемы перевели, но мы так и не переехали за 9 месяцев обосрались с собственным кодом. Остальное уже буду в пятницу с полторашкой пива или бутылкой вина смотреть, трезвому тяжело.
Это ощущение сильно выматывает
Писать тесты? Делать ревью?
А, понял, метод #constantize возвращает константу из строки подходящего формата.
"user_role".camelize.constantize == User
Перезапусти базу и попробуй сам в консоли. Возвращает только те модели, к которым ты уже обращался в этой сессии (или хуй знает точно, по какому принципу).
У меня всё работает, возможно какой-то хитрый гем за это отвечает, хз. Не ApplicationRecord, а ActiveRecord::Base, возможно поэтому.
>Не ApplicationRecord, а ActiveRecord::Base, возможно поэтому
Не, один и тот же эффект
Вообще уже не сильно надо, я просто по файлам в app/models прохожусь
Но если кто знает элегантнее, делитесь
>Возвращает только те модели, к которым ты уже обращался в этой сессии
Какая версия Rails? До 6 нужно было прописывать require_dependency и autoload_paths.
Ебать, так ты лигатуродебил. А я ещё время тратил.
А лучше вечером в пятницу, ага.
почему это не работает? что не так с оператором умножения * ?
вроде бы элементарный пример, а не работает
лал, кажись сам понял, я написал что c=x*c
невнимательность
https://ideone.com/RIqm3Y всё заработало
Ты придумал зло, не делай так
> хочешь бота для телеги напиши (можешь даже без рельсы на Sinatra)
А зачем боту для телеги веб-приложение?
>после нескольких лет разработки рубисты перекатываются на NodeJS.
Ты вообще бэк на ноде видел хоть один? Это полный пиздец, после рельс этот зоопарк из рандомных говнолиб, самописного говна и с нулевой культурой тестирования даже палкой трогать должно быть противно.
Да, на Ruby пишут умные люди с хорошим вкусом.
На Java и C# пишут отличники без своего мнения.
На JavaScript и Python пишет быдло.
От галеры зависит, наверное, но мне рельсы нравятся. Хоть я ничего больше и не знаю...
https://guides.rubyonrails.org/getting_started.html
Вот этот туториал пройди (можно во views сильно не вникать, если ты планируешь просто жсоны отдавать)
Попросили попроще. За метасплойтом на github можно сходить, не вижу проблемы
Вот этого двачую. Перекатился на Дно.жс Нод.жс с Рельс году в 2016-м. С тех пор честно говоря жалею, иногда даже думаю вернуться лел. Но суть Ноды именно такая. Зоопарк библиотек, ебля с Тайпскриптом чтобы подружить его с Эксперсс миддлварями от Васянов, вечные муки выбора. Выбрал ОРМу, через год протухла. Выбрал роутер, через год ищут мэйнтейнера. Выбрал новый успешный фреймворк Nest.js, получили ебучий ангуляр на бэкенде. И так всё время. Много сил уходит на борьбу с инструментом. Но нет спасения даже если проект уже зрелый. Там совсем пиздец. Попробуй разобраться. Последнее время стараюсь брать проекты где надо начинать с нуля. Потому как бы ты там не старался, жс код выйдет write only, и даже ты сам уже через год будешь тупить и не понимать как до такого докатилась кодовая база. А если попадается проект без тестов и какой-нибудь серверлесс, то лучши сразу делать вдоль.
Пацаны засмеют и скажут, что руби медленный и с endами.
> А зачем боту для телеги веб-приложение?
Разные боты могут быть, можно удобно инстанцирование процессов запускать, например. Масштабирование так сказать.
А можно хранить логику в стейт машине, например. Если это некие шаги по форме с йоба-гуардом.
Если у тебя 100 и 1 кнопка в боте, то колбеки телеграма можно обернуть как url пути и матчить это все в роде или синатре. В не в бесконечном case statement или on matching'е.
Так же можно подвязать ORM.
Но, да, можно без и фреймворков конечно, но дольше.
Какая то экзотика
Так бот это процесс, который слушает сокет и имеет какой-то постоянный стейт, а веб-фреймворки - стейтлесс приложения, как ты собрался коммуницировать из рельсы с ботом?
Ты не совсем понял. Имеется в виду, что код на Руби в веб-фреймворке стейтлесс. Он то общается с базой, но подразумевается, что он стейтлесс, когда его рассматриваешь отдельно от базы. Например, если у тебя есть один инстанс(виртуалка или контейнер) с базой, то инстансы с РоР ты можешь добавлять и убирать. И ничего в принципе не должно ломаться, ибо РоР у себя ничего не хранит, а только делает вызовы к базе, возвращает ответ и всё. Хотя бот тоже может быть стейллесс в общем-то, но дело в том, что это не http и процесс один должен висеть бесконечно. Но веб-фреймворки всё равно некоторые могут помогать в этом.
>но дело в том, что это не http и процесс один должен висеть бесконечно
Ты охуеешь, но чтобы сервер принимал и обрабатывал http-запросы, там так же должен висеть бесконечный процесс с листенером.
Так РАБотаю на дядю же. Как будто у меня есть какой-то выбор в большинстве случаев. Сидишь ты такой жуниор-недо-мидл. Заходит ЦТО и лид ладно, я гребец на галере, что с меня взять. И с вертухи СОСНИЦКИЙ ЗАКАПЫВАЙ СВОИ РУБИНЫ БУДЕМ ТЕПЕРЬ НА НОДЕ КОДЕНЬКАТЬ. Ну хули делать. Сначала один сервис, потом другой. А потом уже прошло лет пять, руби забылись, да и ты уже недосеньор, получаешь гроши, но всё равно больше чем если снова идти на Рельсах верстать круды недо-мидлом сенькой-то не хотят брать. Отака хуйня.
Алсо после этих постов таки сел и начал пилить на новых рельсах пет проект. Госпади, какая же годнота анон. Я рили начал загоняться, что мол а нужны мне эти деньги, если каждый день тошнит уже от жс.
Что-то на всех вакансиях пишут, что главное - опыт веб-разработки на любом языке. Я бы на твоём месте ну как минимум почитал вакансии и поспрашивал.
Js то все ровно ruby разрабу знать надо на уровне фреймворка, который будет на проекте. Это не мобилки, где kotlin или swift(хотя там тоже знать надо, но на уровне addEventListener).
Имхо, преувеличиваешь, прямые конкуренты это скорее эликсир и го.
В петухоне они охуенные. Все понятно, просто приписываешь типы к аргументам у функций и не паришься. В руби же какой-то пиздец. Один RBS чего стоит https://github.com/ruby/rbs Отдельный файл со своим синтаксисом нахуй.
Остается только громоздить код с документацией через YARD?
>На руби есть нормальные тайп-хинтинги?
Но нахуя? Нужны типы - бери типизированный язык. Нужна уверенность в коде - пиши тесты, типы тебя не спасут. Динамические языки не для того динамическими сделаны, чтобы потом к ним костыльные типы сбоку прикручивать.
Питухон динамический. Но там типы(они не ебут тебя если передал не то, они больше документируют что приходит, что выходит) спасают кучу времени при написании кода, или при изучении чужого кода. Это действительно бро.
Не всегда. У нас фронт пилит отдельная команда, все тасочки разбиваются на фронтовую и апишную часть.
Я не знаю, мне заебись. Если команда из двух человек и более - то уже не нужно; если ты один на фуллстаке с ROR+JS, то нахуй тут работать
> они больше документируют что приходит, что выходит
> спасают кучу времени
Ну, для конкретно рельсовой разработки, например, куча этого времени уже спасена большим количеством стандартных решений в коде. В большинстве случаев ты там особо ничего никуда и не передаёшь, всё само под капотом гуляет. Это грубо говоря, конечно.
Наоборот в Ruby это изящнее реализовано
Аналогия с HTML и CSS стилями вынесеными в отдельный файл
RBS можно генерировать и просто дописывать нужное. Ещё не до конца все инструменты допилены, Matz об этом говорил в последнем видео с конференции
https://youtu.be/0kyy_zKO86U?t=106
Вон смотри как все круто. Без лишней ебалы и ОТДЕЛЬНЫХ ФАЙЛОВ
Можно ПОЧИТАТЬ немного руби-кода
https://www.videogameschronicle.com/news/the-entirety-of-twitch-has-reportedly-been-leaked/
https://vc.ru/services/302164-haker-opublikoval-na-4chan-ishodnyy-kod-twitch-i-dannye-o-zarabotke-strimerov-s-2019-goda
Torrent (128GB): magnet:?xt=urn:btih:N5BLZ6XECNEHHARHJOVQAS4W7TWRXCSI&dn=twitch-leaks-part-one&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce
>Без лишней ебалы и ОТДЕЛЬНЫХ ФАЙЛОВ
Так это и есть лишняя ебала - лезть в рабочий код чтобы прикрутить тайпчекинг, когда можно просто прогнать генератором и внести уточнения в самостоятельном файле.
Я бы подтянулся в Ruby/RoR. Много хорошего слышал про этот ЯП, но при этом говорят, что перспектив особых у него нет. Так ли это?
Сейчас вкатываюсь в React, как устроюсь на работу, буду изучать на досуге Ruby и пилить бэк на RoR.
Тебе в пхп, там они уже в одном шаге от джавы
А вообще часто сочетание React и RoR встречается? Не вообще, а внутри Ruby-мира.
Если не уверен что учить учи Node.js он будет популярнее и востребованней RoR точно
Кто-нибудь уже исправил Gemfile для локального запуска проекта web? Поделитесь.
Да сплошь и рядом.
Ну смотри: если тебе нужен не сложный бэк, а обёртка вокруг базы данных, то, наверное, стоит сесть и почитать.
Написать render json: @user в контроллере много ума не надо, а строчечка в резюме и плюсик на проектах, где руби на бэке.
1. Где-нибудь уже идет нормальный разбор тамошнего кода? Сам рельсовик, интересно бля
2. Последний коммит в web 3 года назад, разве это то что нужно?
Требы хотя бы про это были в /b но сейчас уже нет ничего, куда вся тусовка перекатилась?
>2. Последний коммит в web 3 года назад, разве это то что нужно?
Это рейлс-монолит который они перекатывали на го-микросервисы и реакт, в любом случае там очень много интересных вещей в коде.
По поводу интересных вещей есть где-нибудь разбор или хотя бы обсуждение? Сам поглядел, не сказал бы что очень интересно, рельсы они и в африке рельсы, но мб долблюсь в глаза
Беседа создателем Ruby on Rails о русских программистах и Достоевском.
https://www.youtube.com/watch?v=3ilndqrXsbk
Чтобы не слушать этот ебейший пиздец с интонациями а-ля Кураж-Бамбей озвучивает Теорию Большого Взрыва. Я и так пойму всё о чём они говорят.
Там контент изначально предполагался для русскоязычной аудитории. Пилить отдельную версию для таких, как ты никто, не будет, это невыгодно с точки зрения развития канала.
Некоторые считают знание английского каким-то сверхсложным навыком, из-за чего у них возникает маниакальное желание его практиковать и ВСЕ смотреть по англицки. Эта претенциозность смешит.
Я считаю способность воспринимать говноозвучки хуёвого перевода сверхсложным навыком. Понятия не имею, как (и зачем) вы это делаете.
какая нахуй претенциозность, международный язык который понимают большинство программистов
Он топил за то что textmate - топ и больше нИнужнА, но реалии таковы, что это работает только на маленьких проектах. Его мнение потеряло ценностьhttps://2ch.hk/pr/src/2144637/16335201716670.png (М)
>типа может есть еще медики которые латынь не понимают?
Не поверишь, но да. Большинству медиков латынь вообще не нужна, они сдают соответствующий экзамен в универе и забывают про нее. Латынь это скорее инструмент для коннекта медиков из разных стран, так как части тела, болезни и лекарства могут называться там по-разному.
>это требование профессии
Твоей, может быть, да. Но в программировании как таковом нет никакого имплицитного требования знать английский. Как и в большинстве IT-вакансий в РФ.
>Но в программировании как таковом нет никакого имплицитного требования знать английский.
Охуенные истории, учитывая что вся актуальная дока и рассылки на английском, все дискуссии, публикации и продвинутые материалы на английском, да и сам Дэвид Хайнемайер в интервью повыше абсолютно однозначно высказался на этот счет - существует международный язык, либо ты его знаешь и пользуешься благами цивилизации, либо не знаешь и гниешь в своей СНГ-параше с 1С и прочей экзотикой.
Осталось только выяснить, зачем ты обсуждаешь программирование на русскоязычной имиджборде (как ты выразился "СНГ-параше"), а не идешь на форчан или реддит. Уровень языка не позволяет?
Не знаю, я люблю русский язык и русскоязычное коммьюнити, поэтому IT обсуждаю преимущественно с русскоязычными, в телеге или тут. Поэтому не вижу проблемы в том, что интервью с крутыми разрабами выходят на русском.
А ты то что забыл в месте, характеризуемом тобой как "параша"?
>А разве там есть такой раздел?
>)
Братан, такое ощущение, будто ты только-только курсы англюсика закончил
>Додик
Ждем, когда знаток английского перейдет на блатную лексику. На курсах сейчас видимо такому учат.
Быдло, спок.
> нормальными ресурсами
> реддит с анальной мочерацией, шадоубанами и кармочкой
А чо не в инстаграме или не на пикабу?
Можно начинать прямо сейчас? Хорошо. Извините, что я белый и мешаю женщинам работать в индустрии айти.
У меня получается?
Видел какую-то сторонний гем, который позиционировал себя как асинхронный веб фреймворк на тредах
Чего вы так дрочите на асинхронность? Это же костыль ебаный, от которого проблем больше чем пользы, тем более в вебе, где эта асинхронность вообще не вперлась никуда.
Потому что не нужно.
Переключение между тредами гораздо более затратно, чем между задачами в эвентлупе.
>в вебе не нужно
В вебе дохуя блокирующих io, даже если не считать опасных операций с изменением стейта
В рельсах искаропки можно асинхронно создавать ActiveJob, если надо.
>В вебе дохуя блокирующих io
Каких? Соединение обслуживается веб-севрером, запрос к базе\кэшу можно подождать асинхронно, но толку от этого, если для следующей операции уже нужны данные, а где там еще io?
>Каких? Соединение обслуживается веб-севрером, запрос к базе\кэшу можно подождать асинхронно, но толку от этого, если для следующей операции уже нужны данные, а где там еще io?
Что бы ты мог делать 200 таких операций одновременно, а не плодил на 200 реквестов 200 тредов
Кстати это уже есть в 7 рельсе, довольно интересная фича с учетом того, что теперь можно использовать разные базы данных для моделей, возможно и не пришлось бы твичу распиливаться на микросервисы, если бы это всё существовало на тот момент.
https://blog.kiprosh.com/rails-7-activerecord-relation-load_async/
https://edgeapi.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-load_async
>А SO должен выполнять только одну задачу 1 методом
Почему?
А если мне нужно сделать доступ к какому-то АПИ (платёжному там или хуй его), у которого, скажем, четыре метода? Мне делать ServiceObject::GetInfo.call, ServiceObject::PostUpdates.call и так далее, что ли? И нахуя?
В исходниках твича в app/interactors целая куча сервис объектов, у всех один public метод - call, остальное за private.
Нечто схожее с твоей задачей у них лежит в папке app/repositories, там уже открыто больше методов.
Могу предположить что если задачу не получается уместить в один вызов то она уже по другому оформляется.
>magnet:?xt=urn:btih:N5BLZ6XECNEHHARHJOVQAS4W7TWRXCSI&dn=twitch-leaks-part-one&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce
Не работает чот.
А, всё, я тупой. Сто лет магнет-ссылки не открывал.
https://gitlab.com/gitlab-gold/gitlab/-/blob/master/app/services/todo_service.rb
А вот на гитлабе не заморачиваются.
Забавная штука так-то, не понимаю почему изоморфные фреймворки на опале не взлетели.
Забавную штуку до продакшена довести очень сложно.
Даже если у вас в компашке решат выучить, скажем, Crystal+Amber вместо рельс. Это нужно до всех работников донести (а зачем им это делать, если дальнейшей применимости этих знаний нет?). Потом нужно где-то искать новых погромистов, которые это знают или не против выучить. А даже если вы сможете, то и будете особенными мальчиками, и никто за вами не последует.
Так што за пределы пет-проектов или фриланса забавные штуки редко выходят. Скажи спасибо, что вообще рельсы есть, иначе сидел бы сейчас и писал на пыхе.
Что-то в голосяндру угнетнулся с этой хуйни.
продолжаю использовать master вместо main
Хуемразь в треде, кидаем репорты!
Не задумывался об этом. Возможно если хорошо знаешь проект, то и ок.
textmat'om кто-то пользуется в треде?
Начинал с него, потом atom и сейчас vscode.
Textmate не пробовал - говорить не буду.
Сам проходил путь atom -> vscode -> sublimetext -> rubymine.
Атом был хорош, но уж очень медленный.
VSC - это такой Atom получше в плане производительности, но со своей спецификой. А именно: телеметрия майков, зачастую кривые плагины (со своей дополнительной телеметрией), ужасная реализация vim-like работы с текстом. Тупо неудобно пользоваться (лично мне).
SublimeText - очень шустрый, но закрытый код, неудобная система плагинов, стагнация проекта (с моей т.з., могу ошибаться).
Rubymine - идеален для кодинга на RoR, все что надо - есть, плюс отличная реализация vim-like (для меня это важно, да). Минус - прожорлив, ибо Java. С другой стороны, на одной из моих машин (некроноут), внезапно, работает шустрее VSC.
А так - все хочу полностью пересесть на vim/neovim, обвешенный нужными плагинами, но когда шарю скрин в зуме, коллегам НЕПОНЯТНО, приходится открывать проект в том же Rubymine, т.к. они в нем работают.
Вообще, очень много вижу ruby-разрабов в ютубчике и ирл, которые юзают только vim и довольны. Как ни странно, чаще всего они при этом на маках. Парадокс?
Из плагинов на руби я в VS code использую базовое расширение для руби (синтаксис, интеллисенс в нём же, кажется), endwise (авторасстановка end, работает хорошо), и erb и html-сниппеты, когда вьюхи пишу (работают не идеально, но без них вообще невозможно). Ну и рубокоп ещё. Ещё тыкал несколько (понравилась задумка подсветки блоков с end разными цветами, но она хуёво работает и триггерится на ключевые слова без end; например, if-modifier, из-за этого всё ползёт)
А всякие идешные штуки типа посмотреть определение метода не очень-то и нужны, особенно когда пишешь по соглашениям.
Скорость? Горизонтально масштабировать проще? Отсутствие ACID? Какие-то ещё причины? А то спрашивали на собесе, я не знал что ответить.
Естественно. А проверка времени не требует?
На руби же вообще почти как нигде принято покрывать код тестами. Если бы я увидел, что ты запушил руби код без тестов, то я бы начал читать тебя пидором, пидорасом и пидорком незамедлительно.
мимо-эликсирщик
Тесты пишутся при необходимости после выката.
Есть даже правила где необходимо/на усмотрение/ненужно
деплоим
@
юзеры жалуются на нерабочий функционал
@
деплоим
@
юзеры жалуются на нерабочий функционал
@
ладно, уговорил, покроем тестами
Заебись будет. Можно покрывать тесты тестами, чтобы покрытие стало выше 100%.
двачую, эти черти потом еще сто раз спеку поменяют
Короче, двач, я тебе консерн для кэширования запросов в БД написал и в благородство играть не буду. Скажешь, что не так с кодом и не изобретаю ли я велосипед - и мы в расчёте.
В консольке потыкал - вроде работает (только надо прогнать rails dev:cache или запускать в production).
Выкинул протаскивание аргумента `many`, сделал `contents = contents.to_a if contents.is_a? Enumerable`
> However, it's important to note that query caches are created at the start of an action and destroyed at the end of that action and thus persist only for the duration of the action. If you'd like to store query results in a more persistent fashion, you can with low level caching.
Я основывался на пункте 1.7, который чуть выше.
Ни разу не видел монгу с рельсами. Что за контора?
Если бы меня спросили, я бы сказал, что вместо использовать ненормально, а вместе ок. В монгу можно писать объёмные данные, по которым нужен поиск, в которых нет связей и которые не жалко проебать.
Тоже писал похожий костыль для кэширования, это сильно ускоряет рельсу, но всё таки программа становится сложнее с введением еще одного слоя данных. Еще недавно наткнулся на https://github.com/khiav223577/active_model_cachers но пока не юзал.
Ну это не совсем костыль, он особо нового функционала не представляет. Это всё те же Rails.cache.write и Rails.cache.fetch, просто без дублирования кода и с автогенерацией методов.
Нужно предьявить кабанчику и да, другие варианты он не рассматривает
На вскидку - в npm чуть ли не ежемесячно находят десятки и сотни малварных библиотек с миллионами установок.
У руби, конечно, такое тоже бывает, но в разы реже и не в таких масштабах.
Как вообще работать в Виме на Маке?
Год так сидел, блевался от необходимости использования Cmd и Ctrl в зависимости от контекста. Правда в основном использовал обычную не епловскую клавиатуру, может на Макбуках реально удобней.
А так рекомендую дропнуть ИДЕ, пересесть на Вим и вообще забыть о проблемах. и удобном рефакторинге
>npm чуть ли не ежемесячно находят десятки и сотни малварных библиотек с миллионами установок.
Они там долбоебы в жсе, на каждую хуйню библиотека в стиле is-odd, которая тянет зависимостей так что придётся пару гигов качать в node_modules. В итоге даже в маленьком лендосе дохуя библиотек, в лапше которых хуй кто разберётся и потенциально можно засунуть всё что угодно. Это вместо того чтобы один раз запилить большую стандартную библиотеку, которая покрывала бы основные потребности как во всех других языках.
>Они там долбоебы в жсе, на каждую хуйню библиотека в стиле is-odd, которая тянет зависимостей так что придётся пару гигов качать в node_modules. В итоге даже в маленьком лендосе дохуя библиотек, в лапше которых хуй кто разберётся и потенциально можно засунуть всё что угодно.
Вот, вроде, все хорошо начиналось...
>Это вместо того чтобы один раз запилить большую стандартную библиотеку, которая покрывала бы основные потребности как во всех других языках.
... а закончилось как всегда.
Вообще изи, только нас и ждут
Чтобы понять сколько в треде вкатилось за последний год.
Олеся, ты? Или это тимлид ОлеГсандр?
Если рубист, то сам должен соображать на какой.
На Elixir поглядываю, но там один Phoenix и всё.
Go в этом плане лучше смотрится, но он мне не нравится
+ Elixir функциональный
На го пишут одни Гоферасты, нирикамендую.
Пробовал эликсир, но мне он как-то не зашел, go поприкольнее будет и показался проще в написании, 3 строчки и микросервис готов, плюс там вакнсий больше. правда есть свои особенности в виде отсутсвия исключений и дженериков из-за этого постоянно приходится писать повторяющийся код Еще как говорили знающие люди, что в работе с эликсиром потихоньку помимо самого эликсира нужно будет вникать в erlang и особенности работы виртуальной машины, деплоя и прочей хуйни аналогично как котлинисту или скалисту нужно вникать в жабу
Я вообще на rust поглядываю, выглядит интереснее, по началу когда компилятор постоянно мозги ебет как-то хочется забить на это все, но потом понимаешь что в том же go ты бы скомпилировал говно и оно работало бы, а тут нихуя, давай делай нормально и ошибки в проде уже будут только связанные с логикой. Плюс куча синтаксических фишек, местами руби напоминает.
Чем тебя руби не устраивает? Нах на другие поглядывать
отчитываюсь за 10 месяц:
15 сообщений от HR с хабр.карьеры;
пятеро писали в телегу;
* еще с десяток - в линкед-ине.
Профили пустые, 3 строчки столичного опыта.
Гребу на галере. 250кк/сек /3 года.
Язык мертвый.
А шо вы тут сидите пацаны? Какая-то красная залупа в оп посте и вы сюда пришли, ебанутые?
Зачем писать так?
user_obj && user_obj == current_user
Если можно просто писать
user_obj == current_user
Это из книги Хартла
Самый немертвый это JS, питон в вебе не ьо что мертв но и не то что блестит жизнью, пхп жив но плюсов в нем мало
а, тут в другом вопрос.. ок
не
Сам ошибку найдешь?
Кто шарит, напишите списком
1. родится в Дании
2. быть нордическим чедом >190см с квадратным подбородком
3. вождение спортивных болидов
Он не похож на чеда. Чеды не могут в код, тут какое-то противоречие. Код снижает примативность
Болиды потом, сначала код
Примативность определяется социальным статусом. Ландау не мог 10 кг поднять из-за слабости мышц, а студенток ебал и заставлял жену им постель стелить.
А, вон оно как
Давайте по теме, ребята. Инцелы и прочие в других разделах)
мне надо к собесу подготовиться, а я блядь никогда толком тестов не писал.
ухх сука,как же бесят такие хуесосы
я надеялся найти анона который избавит меня от этого тернистого пути, где нужно отфильтровать миллионы мусорных ссылок о том как протестировать функцию сложения 2х чисел с помощью рспек, анона который уже прошел этот путь и может по доброте своей душевной предоставить самую выжимку действительно полезного материала по этому вопросу.
Если бы гугл не выдавал мусор, мб я бы и не писал бы сюда
как думаешь, хуесосина?
>>207734
к чему вопрос? не задрачивал. не готовился
мне надо просто подтянуть знания по тестироваю, остальное ок
Токсичный додик-подпивас, о чем речь, если даже не можешь пользоваться гуглом...
.
Rakefile
bin
hola
hola.gemspec
lib
hola
translator.rb
hola.rb
test
Не работает пример отсюда, пишут что "require 'hola'" в bin/hola должно работать, но пишет "cannot load such file".
Где собака зарыта? Или это только для собранного в пакет gema? А как люди, тогда свои поделия тестируют, каждый раз гем что ли собирают?
Пютаюсь набить руку, пописав всякие нужные утилиты себе, вот пытаюсь в правильный project structure и сразу член в лицо.
ебучая борда, удалила все красивые стрелочки
https://guides.rubygems.org/patterns/
% tree
.
--Rakefile
--bin
----hola
--hola.gemspec
--lib
----hola
------ translator.rb
----hola.rb
>>209152
Так это только для упакованного гема, в том примере что я скинул или нет? Ваши ответы - нихуя не ответы.
Или давайте так, real world example.
Вот есть проект https://github.com/castwide/solargraph
вот у него bin файл https://github.com/castwide/solargraph/blob/master/bin/solargraph
и в bin файле, только "require 'solargraph'", который подтягивает из lib/solargraph.rb. Без каких-либо relative или самописных класс-лоадеров. Так вот разработчики, кто пилят этот проект, как сами-то "bin/solargraph" юзают? Каждый раз гем, что ли хурят?
Видимо в bin подключают гем из бандла, уже после сборки, а не из папки проекта, чтобы доставать из папки надо прописывать require_relative.
Норм ты так пришел в тред и начал всем рассказывать как себя вести и что тебе говорить/не говорить.
> всем
кому всем? только тебе и твоей подружке.
> и начал всем рассказывать
я пришел в тред, спросил что хотел.
ты ничем помочь не можешь, но все равно начал дерзить.
Google. а такую баянскую ссылку http://pogugli.com/?367527 поленился сделать? во ржаку ты упустил конечно, очень остроумно бы вышло.
>миллионы мусорных ссылок о том как протестировать функцию сложения 2х чисел
Ну да, а что ты хотел? Тестирование в теории - дело не сложное, вызвать функцию и сравнить результат работы с эталоном, всё тестирование крутится вокруг этого простого концепта.
>Тебе ответили, иди нахуй гугли, ты думал тебе разжуют и в ротик положат?
ты ответил идти гуглить, ты думал что тебе спасибо скажут?
>>210327
> а что ты хотел?
> годных статей по тестированию, не имеею ввиду документацию, а бест практис, как организавывать тесты, какие нужны сколько и т.д.
унать что покрывать тестами, а что не надо,
в каких случаях мокать, в каких не мокать. и стоит ли вообще мокать
сколько нужно юнит тестов, сколько интеграционных и т.д.
ответы на общие вопросы по тестированию, по организации тестов, а не рспек. они даже с руби не связаны
Токсичный чмохен, если ты куда-то и попадешь, то долго там не продержишься.
>>202549
Го в ту же степь, везде писать if err != nill, крыша поедет
>>209338
Это работает потому что в solargraph.gemspec первая строчка
$LOAD_PATH.unshift File.dirname(__FILE__) + '/lib'
require по очереди обходит все директории из $LOAD_PATH пока не найдет там файл hui.rb (require 'hui'). Но такое используют в основном для папки lib, во всех остальных случаях - require_relative, так как он быстрее только одну директорию надо проверить и с переопределением путей всегда есть шанс(особенно в крупных проектах) что кто-то создаст какой-нибудь файл http.rb и вместо внешней библиотеки будет реквайрится этот файл и ты долго будешь ломать голову почему твой http.get работает не так как в документации лол.
В gemspec только бандлер смотрит, программа туда не лезет, в bin как раз нет relative чтобы можно было закинуть этот файл куда-нибудь в /usr/bin и он бы запускал программу.
Что значит не взлетел, что мешает использовать то, что нравится? А рыночек подождёт)
> но там один Phoenix и всё.
Что за херню ты несешь. Это у вас руби рельсами единый. А Elixir тебе предоставляет всю экосистему эрланга и OTP, а бОльшего и не надо. А феникс он только для формошлепства годится, на серьезных проектах обходятся без него, для HTTP API вполне хватает плага, для вебсокета чистого ковбоя.
Мимо 6 лет в эликсире/эрланге, перекатился после 5 лет на руби
>на серьезных проектах обходятся без него
Что за серьезные проекты на эликсире, если не секрет? Вряд ли это веб, если даже от фреймворка удается отказаться, да еще и с довольно интересным LiveView.
На каких конкретно ты работал? Про дискорд хорошая статья, думаю она многих вдохновила на эксперименты.
Я делал процессинг и биллинг на Эрланге в телекоме. И вот последние 5 лет делаю бекенд на Эликсире, но если назову, то это мгновенный деанон компании, так как проект уникальный для нашей страны, а по опыту и стеку, и тому, что сижу на двачах, сразу поймут, кто из команды. Могу только сказать, что там куча распределенных систем и сервисов, реалтайма и сильный упор на безопасность и защиту данных. И в заказчиках у нас в основном крупные госконторы. Еще часто пишут с вакансиями, в основном из США. Из того, что вспомнил за последнее время, это какой-то фармтех, финтех связанный с трейдингом, сбор и анализ данных в сфере IoT, сервер для мобильной дрочильни и какая-то аналитическая платформа. Еще много криптостартапов пишет, но я их, естественно, даже не рассматриваю. Короче с Elixir, если тебе каким-то чудом, удалось получить хотя бы 2-3 года коммерческого опыта, ты становишься очень желанным единорогом, которого хотят даже из США с зп от 5к$ за опыт в 3 года и 8к$ если уже лид. Причем не нужно знать зоопарк технологий, Elixir + Erlang OTP, это все что нужно из языка. Остальное уже всякие sql/nosql базы, брокеры, терраформы, aws, docker, ну в общем что и так каждый должен знать.
Кстати хотел я тут выучить Go, в качестве этакого запасного аэродрома, но после эликсира вообще не могу на нем писать, уж слишком хороша в эрланге акторная система, параллелизм, мультикор, отказоустойчивость и мастштабируемость распределенных систем из коробки.
>Elixir + Erlang OTP
Приходится ли писать эрланге? Сам-то эрланга не создает впечатления дружелюбной технологии, в отличии от руби.
В плане синтаксиса нет, из эликсира можно напрямую использовать эрланг и весь эликсир код компилируется под Erlang VM, поэтому нету нужды чисто на эрланге писать. но сам OTP, как фреймворк, нужно знать. И приходится иногда копаться в кишках всяких ранчей, ковбоев и использовать стандартную библиотеку эрланга, но как я уже сказал, функции из нее вызываются элементарно из эликсир кода, как обычная функция.
Еще хочу упомянуть об одной киллерфиче, которой реально не хватает в других языках. Это подключиться к консоли работающей системы и получать полную интроспекцию, т.е. можно узнать стейт любого процесса, выполнить любой код, например запустить трейсинг и самое классное, хотлоаднуть код без перезапуска сервиса, например добавить резко фикс, не дожидаясь деплоя или добавить где-то лог.
Бывает ли такое, что нужно подключить библиотеку, а её просто нет или там 10 коммитов без необходимого функционала, и приходится велосипедить?
Постоянно. Либо вообще нету нужного функционала, либо он недостаточно протестирован и не production-ready. К, сожалению, комьюнити Эликсира и Эрланга плохо развито и в основном там обитают всякие формошлепы, рубисты и хайперы, я уже 6 лет в теме и до сих в еженедельной подписке всякие посты про хелловорлды и "Как сделать простейшую вещь на Эликсир". Это кстати еще одна из причин, почему я не люблю феникс, он притягивает в комьюнити вот таких вот типов.
Зато это дает возможность тебе самому стать очень крутым и известным в опен сорсе, делая не самые сложные библиотеки.
Но справедливости ради скажу, что минимальный набор все равно есть, ORM для работы с PG/MySQL, Redis коннектор, Kafka/RabbitMQ коннекторы, процессинг бекграунд джобов. Но если что-то специфичное, то скорее всего самому придется делать.
P.S. Но все необходимое для создания качественного велосипеда у тебя будет. Еще не было ниразу такого, чтобы мы не смогли что-то с нуля написать.
> хотлоаднуть код без перезапуска сервиса, например добавить резко фикс, не дожидаясь деплоя или добавить где-то лог
надо же, совсем как в пыхе
знали бы наши госконторы за что платят, давно бы без работы остались
Если не знаешь о чем говоришь, то лучше промолчать. Сможешь на пыхе обновить код, который обрабатывает аудио-видео конференции, без отключения текущих конференций? То-то же. А эрланг может.
И да, они знают, без сертификации кода и его глубокой проверки ничего ты в гос конторы не внедришь, так что ПНХ.
>>213011
При всем при этом он остается компилируемым языком и работает значительно быстрее, чем всякие интепретируемые, вроде пыхи.
Да и причем тут вообще ПХП? Сравнил, блин, тоже. В моем посте я скорее сравнивал с более менее конкурентными языками, вроде Java/Scala, Go или C++. Там, насколько я знаю, нету такой возможности или если и есть, то не так просто, как в Эрланге.
Ну, непосредственно микшированием, обработкой потоков занимается софт на Сишке, это да. Но обработка и проброс событий/запросов до сервера звонков и от него до клиентов, управление сессиями и прочая транспортная фигня делается на эрланге и намного-намного проще, чем на чем либо. Погугли для чего вообще Эрланг создавался, как раз для телекома.
• Inertia on Rails: Backend-driven frontend Марсель Мустафин, Ruby engineer, Uscreen
• Modern Make for Modern developers Иван Немытченко, Head of Development, Urban Connect
• Windows 11 для Ruby разработчика Никита Ратников, Ruby backend developer, Evrone
УЖЕ ЗАВТРА 16 ноября в 19:00 (время Московское)
Регистрация какая регистрация? это же анонимная борда:
https://railsclub.timepad.ru/event/1701167/
https://meetups.evrone.com/ruby-meetup-no16-online
Ближе к делу постараюсь кинуть ссылку непосредственно на стрим
Ты HR? Вакансию свою покажешь?
чо думаете по этому сайту? можно на него ориентироваться если вкатываешься?
Спятил? Что тут думать, официальный сайт, просто главная на русском. https://ruby-doc.org -- core / stdlib
>2021
> StimulusReflex exists
> Hotwire exists
А давайте поговорим о никому неизвестной пыхапешной библиотеке для SSR!
/o
>А давайте поговорим о никому неизвестной пыхапешной библиотеке для SSR!
> Интегрируют её в рельсы
А хотвайр и рефлекс блин зачем существуют???
Я под впечатлением от этих залетных пыхарей.
Это не для SSR а для пердоления SPA на популярных js фреймфорках но с использование turbolink эффекта как в stimulus. В стимулусе ты фронт пердолишь на беке. Любой нормальный фронтендер тебя с твоим стимулусом нахер пошлет.
мимо шел
разница с обычным спа в том что ты не делаешь монолитный супер фронтенд на жиэсе и грузишь его жсонами, а делаешь приложениие исходя из концепции одна страница - одна модель.
Я сам несколько лет назад шутил над стимулусом.
А сейчас уже два проекта на нем в прод сдал.
Stimulus 3 - уже практически идеален.
И это всё пока ваши фронтендеры MVP еще не доделали.
За плечами уже 6 лет работы с Реактом, знаю какие там "нормальные фронтендеры" и производительность разработки.
Нормальную апликуху сделать, это вам не редюсером сёрануть в бесконечность.
Тащемта уже переписал один средний проект с Реакта на Hotwire и счастлив.
Вебмастер. Декаю приложухи "под ключ".
А нахер нам сдались оверпраснутые смузихлебы?
Я помню еще те времена, когда даже профессии не было такой, "фронтендер", были только верстальщики.
Давай я тебе на живом примере объясню:
Делали с ребятами фуллстеками сайт. Когда пришел черед делать лендинг, сделали его вместе с приложухой на рельсах. На всё про все на условных 20 страниц(с мобайлом) ушло месяц времени на трёх фуллстеков. Писали на чистом HAML.
И всё было отлично.
Год спустя сделали новый дизайн для всех этих страниц - цвета поменяли, новые картинки, иконки, текст. Но ничего кардинально не поменялось.
Фронтендер решил переделать всё на реакте. И вот уже год эти 20 страниц доделать не может. И то что сделанное - кривое.
А ведь по идее этот человек должен делать качественнее и быстрее, чем всякие фуллстеки.
И вот таких примеров я тебе могу дать вагон.
Фронтендеры это уже рудимент середины 10-тых. Очнись.
Извини, но кулстори какая-то. В одно харю писал crm на вуе и php. Что-то сложное на беке рендерить бекенд фремфворками это то еще мозгоебство. Только не надо тут магического мышления, что рельсы со стимулусом не такие как все остальные бекенд фреймворки и позволяют сложные фронтенды пилить. Мне нравится например стимулус + симфони 5, но для чего-то сложного это не годится. Преимущества фронтендеров начинаются когда надо делать много кастомных компонентов и уже из них конструировать фронтенд.
> В одно харю писал crm на вуе и php
> . Что-то сложное на беке рендерить бекенд фремфворками это то еще мозгоебство. Только не надо тут магического мышления
То есть ты пыхарь залетный и даже понятия не имеешь что из себя представляет разработка на Рельсах с хорошим инструментарием в 2021, но при этом ты утверждаешь, что фронтенд рендеринг продуктивней чем фуллстек разработка на рельсах?
Нет смысла продолжать дискуссию, ты не рельсовик.
Ну вот у тебя опять магическое мышление фанбоя вместо конкретики. Ты даже не представляешь какой силой я обладаю, смертный!
Дополню
Я согласен что бекенд рендеринг продуктивнее когда у тебя есть ТЗ с перечислением страниц, форм на этих страница и другой доп функциональности. Типа магазина.
Когда надо сделать большую систему, с учетом того что ты ее будешь расширять не один год, плюс не заботится о том то у твоего бека будут разные клиенты мобильные, десктопные. То проще архитектуру касающуюся например отделов компании, отображения бизнес процессов сделать на фронтенде, а на бекенде реализовать только бизнес логику и управление правами доступа.
Так у тебя тоже никакой конкретики, распилить приложение надвое и повесить часть работы на js, ну этот подход не новый, все в курсе как это происходит и какие сложности за собой несет. Рейлс сейчас предлагает снизить архитектурную сложность, сохранить целостность приложения, отказаться от монструозного фронта и просто реплейсить innerHTML по селектору, а в качестве канала связи использовать вебсокет и бродкасты, по крайней мере в тех местах, где в реальности логики и стейта на клиенте не требуется (почти нигде не требуется).
Нет не стоит. Лучше сразу выкатываться.
Такое сейчас и пхп могет. В laravel есть инертия и лайввире, в симфони стимулус с хотвире. Только каким образом у тебя передача хтмл вместо жсонов упрощает архитектуру?
Когда у тебя отдельный фронтенд то ты можешь один и тот же бекенд для разных клиентов использовать. Максимум профита от graphql например
Когда у тебя отдельный фронтенд общающийся с беком через узкое горлышко REST API его проще тестировать и мокать, чем монолитную лапшу со стимулусом, которую только энд ту энд тестами протестировать.
Когда у тебя несколько малых частей взаимодействующих через узкий интерфейс, у тебя зацепление модулей ниже и разделение функциональности выше
При развитии монолитов их обычно распиливают на части для упрощения разработки.
>В laravel есть инертия и лайввире, в симфони стимулус с хотвире. Только каким образом у тебя передача хтмл вместо жсонов упрощает архитектуру?
У меня есть реальный кейс когда писал довольно сложный сайт 3 года на реакте, а потом менее чем за пару месяцев переписал всё на Hotwire. И всё отлично. Переиспользование кода и скорость разработки просто космические.
можно
Стимулус - микрофреймворк, ориентированный на ванильный жс. В отличие от реатов с вуями что он совместим с турбо. Но без турбо в нем смысла нет. Турбо перехватывает клики, аяксом скачивает страницу и деает documen.open Это в грубом приближении. Есть возможность кусок, например формы, заменить без перезагрузки страницы. Приложение начинает работать как SPA, но хтмл ты продолжаешь генерировать своим бекенд фреймворком, а не жсом как в SPA.
Кто это и почему и нам должно быть не похуй?
DHH со своим тоталитаризмом уже все? Сопереживаю угнетенным.
Паймон один, они вместе с https://twitter.com/sstephenson долбилась в жопы прямо на рабочем месте.
Потом пришёл DHH и сказал не делать этого на работе. Это им не понравилось, в результате DHH выпер их с Basecamp.
Это уже старая история
Название компании начинает на P и заканчивается на o, я угадал?
хускарл
Автор_ка. Везде с этим Twitter носятся, мол переписали / перешли. Делай как по кайфу, а рыночек с барином пускай подождут
>Везде с этим Twitter носятся, мол переписали
При том, что это было лет 12 назад, и переписывали они с рейлс 2 и руби 1.8.
>Везде с этим Twitter носятся, мол переписали / перешли
Только еще забывают о том, что "переписать уже устоявшийся на рынке и приносящий миллионы хайлоад-проект на более производительный стек" и "написать с нуля приносящий миллионы проект, который только-только входит на рынок" это несколько разные вещи, и во втором случае гораздо больше ценится удобство и скорость разработки, а для оптимизации пары сотен тысяч запросов можно и копеечный сервер докупить, а не ебать мозги. И сравнивать удобство разработки на руби с разработкой на любом низкоуровневом языке - это конечно смешно.
При этом Shopify выкатил YJIT, Async библиотека будет добавлена в стандартную библиотеку, скорость подрастёт
ЗАВТРА!!! 25 ноября 2021 в 18:00 (время Московское)
«Все дороги ведут к Ruby: как мы переучиваем разработчиков с других языков»
Александр Бунтов, Бэкенд-разработчик СберМаркет
«Компьютер за семь строк кода»
Арсен Шамхалов, Senior Software Engineer в Toptal
«SmartCore (smart-rb) в сравнении с dry-rb»
Рустам Ибрагимов, Team/Tech Lead в компании Umbrellio
AMA-сессия
со Stella Miranda, Senior Software Developer Shopify и организатором RubyConfCo и сообщества Rails Girls Vancouver
Регистрация: https://sbermarket.timepad.ru/event/1779911/
Ближе к делу постараюсь скинуть ссылку на стрим
Так Ruby же умер, Лидия сказала. Кого вы там переучиваете, с каких стеков?
С Кобола.
ипотека сама себя не выплатит, ruby жiве
ССЫЛКА НА СТРИМ
https://www.youtube.com/watch?v=1XB9u4jxSvY
>>221501
Зайди на стрим и спроси в чате
Ну кстати дело говорит. Полтора рубиста на вакансию, поэтому постоянно личка трещит от вакансий у меня, по крайней мере
классика
У меня тоже, съебал со старой работы, зашел на hh, заполнил резюме за 10 минут, откликнулся на две интересные вакансии, а потом всю неделю разгребал хрюш и тех интервью. И через неделю уже принял оффер х2 по зарплате с прошлого места, а через два дня на работу вышел. Мертвый язык, хули. Но кстати сберговно можете сразу в игнор отправлять, это просто ебаные спаммеры и госконтора по сути со всеми вытекающими.
Лидия - уважаемая тетка в руби сообществе можно сказать правая рука юкихиро
а стелла - не знаю, местная поехвшая поидее
да вон пол треда таких уважаемых
Расскажи за сбер. Подумываю идти к ним из за зп
Это бот какой-то пишет? Когда в поисковике вбиваешь сравнение двух чегоугодно (видеокарт, например), иногда появляются такие сгенерированные статьи, набитые говном и раздутые на несколько тысяч символов.
https://medium.com/geekculture/️language-wars-02-c-vs-java-dd3eb7dfdeae
> Like the Java language, C# is an object-oriented programming language (otherwise known as OOP)
Или рерайтеры со скиллами десятиклассников на медиум подтянулись?
Зачем это? Кстати буквально вчера рельсы накатил, увидел эту заветную надпись и уже очередное никому не нужное круд приложение пишу.
А нахуя тебе шило на мыло менять? Принцип работы с тем и другим примерно одинаковый, просто чуть разные походы хотя после рельс Джанго выглядит говняво с языками примерно также, в питухоне разве что больше библиотек и движухи.
Сам язык понравился больше пистона, хочется просто во что-то новое для себя вкатиться, да и как бонус зп рубистов, одни из самых высоких на рынке.
>>224088
Ну так и вкатывайся, очевидно же.
Найди где-нибудь бесплатный курс по Ruby с упоминанием ООП и метапрограммирования, потом иди на https://guides.rubyonrails.org/
Обычно после джавы из айти навсегда укатываются
>руби мертвый яп
Зато низкая конкуренция судя по хх, там на 1 вакансию 1.5 человека, с джавой ситуация 10 человек на вакансию.
Ну тогда бери гайд по рельсам и погнали, там ничего сложного нет, после питона разберешься, поначалу некоторые синтаксические конструкции могут мозг выносить, но потом быстро привыкнешь. Можешь еще поюзать популярные гемы rspec (для тестирования), puma (сервер), httparty, spyke (чтобы стучатся в сторонние апишки) и можно еще interactor (удобная фича для работы с бизнес логикой).
А я наоборот разочаровался в некоторых моментах, где-то год уже отхуячил и розовые очки начинают сниматься. Помимо того что руби позволяет писать код как-будто бы пишешь на английском он еще в рукожопых руках дает возможность срать говнищем и писать запутанную трудночитаемую хуйню, а пытаться найти где используется класс который хочешь отрефакторить, то еще занятие, например тут привет фабрики из жабы
def interactor
"Zalupa#{context.device_type.capitalize}".constantize
end
И узнаешь об этом уже на проде через неделю. А уже какая нибудь хуйня из регулярок в method_missing без комментариев которую ты пытаешься прочитать целую минуту, вместо того чтобы глянуть на несколько секунд в нормальный метод, встречается повсеместно. И по классике жанра тот кто работал до тебя долбоеб еще тот, который упражнялся в метапрограммировании и написанию паттернов.
В плане написания кода все охуенно и легко и просто, но вот поддерживать иной раз больно, особенно легаси. Отдельный пиздец когда остается нерабочий легаси код рядом с новым рабочим, в каком нибудь ебучем php ide подсветит серым неиспользуемые методы и их можно удалить, но вот тут сука хуй, угадывай что нужно, а что нет.
Еще бывает встречаются библиотеки на которых положили хуй лет 7 назад и ответы на stackowerflow давностью лет 5-7, которые уже не подходят. И скорость работы как-то не особо радует. ActiveRecord это отдельная история постоянный срач в моделях, ладно хоть в новых сервисах интеракторы воткнули и всю логику туда, а старое говно это жуткий пиздец, который еще и тормознутый.
Это да, но если хватит ума такое написать, то и возможность переписать найдётся.
Просто если Twitter свалил, то всё
А Github, Shopify и другие? Нормально себя чувствуют
Опять же, это в ебучем СНГ PHP, в других регионах другой расклад
Я когда дорос до такого уровня, что можно нормально/комфортно вкатиться в злых марсиан, уже зарабатывал в долларах и это сразу стало не актуальным. Я не одной из конф спрашивал у марсиан вилки в личной беседе, у меня в долларах выходит больше, чем они могли бы мне предложить.
Я починил уже. Там в дефолтном конфиге сваггера стоит dry run
Видимо, логично прогонять тесты командой rspec, а rails rswag (или как там правильно, не помню, я себе алиас поставил) - уже чисто чтобы сгенерить доку
Старая вакансия на какой-то там проект марсиан: https://omsk.hh.ru/vacancy/43496164
Как видишь, даже по меркам российского рыночка, мидлам платят мало.
Вот это срыватель покровов, снимаю шляпу.
150-220 в Омске, полагаю, неплохо.
Миддл с опытом работы от года? Ну такое.
К слову, у Evrone сейчас получше вилки. Они периодически делают персонализированные рассылки зарегавшимся на их митапы - сейчас миддл до 350к + бонус в виде месячной зп при устройстве сразу.
Я отказался, ибо меня и на текущем месте неплохо кормят (инхауз, прям начиная с джуна), но м.б. кому пригодится такая инфа.
>Два чаю, подписался
Если ты имеешь ввиду подписался на их митапы и т.п. - то не факт что они именно исходя из этого рассылают приглаешния на вакансию. Я пришел к этому выводу, т.к. больше нигде не отсвечивал свои контакты, а они мне написали дважды за последние полгода.
Де-факто, это полугалера такая, как и марсиане. Тебя привяжут к конкретному заказчику из клиентов конторы и, вроде как, обещают что ты не будешь рваться между проектами и будешь работать только с одним. Хотелось бы верить, конечно.
Плюс у них, вроде, есть программа по допоплате если ты контрибутишь в опенсорс проектах вне рабочего времени (полагаю, список проектов ограничен, что логично).
>>226089
Вакансии висят по полгода потому что они набирают пул разрабов на перепродажу, а не закрывают конкретную вакансию.
вот я скачал руби и интерактив руби, ая хочу в среде разработки писать рубимайн но я чет не понимаю как их связать или че надо сделать чтобы код работал?
не гоните ссанными тряпками пожалуйста
На винде? Либо никак, либо заебешься. Если рубимайн лицензионный, то попробуй в саппорт им написать, авось подскажут.
Самый простой вариант на винде - VS Code + WSL (если хочешь устроиться в айти, то без базового знания линуксов никуда, даже уборщицей не примут). Я пытался триальную версию рубимайна через WSL пустить, так и не осилил (а Code работает по гайду за пять минут).
В каком другом? Во фронте? Если не брать в расчет фронтенд-фреймворки с типичной проблемой оверинжиниригна то фронт оказывается простой и понятной штукой, нет никакой проблемы быть фуллстеком в экосистеме рейлс без учета стороннего js-зоопарка.
Читаешь описание и там сплошные реакты, до его появления фронт был простым и быстрым, даже с лапшой на жикваери.
Вот и начинается эта ебля с фронтом, запускаешь npm i и скачиваешь пол интернета, просто так на реакте писать не прикольно, давай ещё какой-нибудь редакс туда, хуй пойми как оно работает, несколько минут стартует, жесть. Хорошо что мы просто json выплевываем и на фронте сами ебутся
Ну типа я могу шлепать простенькие вьюхи с крудами, но лучше уже взять какую-нибудь FOSS CMSку для рельс. Мне лучше туда не соваться?
Да и под full stack в вакансиях все подразумевают кому что нравится, иногда оказывается, что хотят разраба для бэка, но на full-stack rails приложухе, а иногда - надо, чтобы ты сам себе жсоны передавал и сам их в реакте обрабатывал
Штатный Rails JS использовать? Сейчас это Hotwire, ещё не освоили как следует
Пишут с вакансией, обещают в основном бэк и изредка ковырять фронт, JS не обязателен. Стоит лезть, или оно меня сожрёт? (джуниор-хуюниор, несколько месяцев опыта)
Вьюхи - это просто. Если понадобится по вакансии периодически в них ковыряться, то быстро освоишься. Особенно если там будет не erb, а haml или slim там.
Лезь. Опыт всегда пригодится, а джуну он жизненно необходим. Если норм тимлид попадется, даст тебе материалы подходящие под текщий стэк поизучать + сам что-то объяснит на пальцах.
40К - самый минимум. Если 40 часов в неделю, то минимум 60 должно быть, иначе это уже стажёр какой-то.
В TeamIdea?
в винде
Нужна помощь за деньги в создании микро-магазина на Ruby on Rails. Требования: главная страница, каталог товаров, страничка с описанием и атрибутами для каждого товара, корзина или еще более простой аналог, страница с заполнением имени и номера телефона для передачи заявки менеджеру для перезвона клиенту. Это задача по учебе в шараге, поэтому всех штук типа тестов и прочих сложностей не нужно, главное сделать минимальный рабочий функционал, который можно будет показать на локалхосте. Если верно понимаю, то на рельсах это можно более менее быстро поднять.
Телега @sportturnik
https://github.com/bulgakke/rails_simple_caching
Поправил, выкинул ненужное, упаковал в гем. Пользуйтесь.
Нормально, в продакшене 3.0 ещё лет двадцать ни у кого не будет, 2.5 для основ достаточно.
У меня да, все на рубимайне сидят. Ну цена божеская же все равно, разве жалко?
Да ну, на руби 3 вообще без проблем всё перекатывается, с позиционированием аргуменов и двойной звездочкой что-то было и всё, вот с рейлс 5 на 6 было посложнее, zeitwerk ругался если require_dependency в моделях было прописано, но это тоже ерунда.
>>235421
Так я не знаю, поэтому и спрашиваю.
На счёт коммитов хз, мб в языке с усиленной тенденцией к использованию магии мета-программирования это больше ведёт к проблемам.
Я вот про что конкретно:
> Помимо того что руби позволяет писать код как-будто бы пишешь на английском он еще в рукожопых руках дает возможность срать говнищем и писать запутанную трудночитаемую хуйню, а пытаться найти где используется класс который хочешь отрефакторить, то еще занятие
> А уже какая нибудь хуйня из регулярок в method_missing без комментариев которую ты пытаешься прочитать целую минуту, вместо того чтобы глянуть на несколько секунд в нормальный метод, встречается повсеместно.
> И по классике жанра тот кто работал до тебя долбоеб еще тот, который упражнялся в метапрограммировании и написанию паттернов.
> В плане написания кода все охуенно и легко и просто, но вот поддерживать иной раз больно, особенно легаси.
Вот это вот так же в джанге или нет?
> На счёт коммитов хз, мб в языке с усиленной тенденцией к использованию магии мета-программирования это больше ведёт к проблемам.
Вот тут мысль до конца не довёл, имеется в виду, что мб они с таким колличеством кода просто в 2 раза больше магии написали, что больше к проблемам привело, которые в свою очередь пришлось решать ещё большим колличеством кода -> вот и коммиты. Это всё ИМХО, мб в реальности всё наоборот, я только предполагаю.
Ну если тебе норм парсить регулярочки в первом же файле, который будет читать новый разработчик, например - конечно же бери джангу, нахуй это метапрограммирование.
Это хорошо когда есть мало роутов, когда дохуя и еще разбиты на разные версии апи v1, v2, v3 и появляются эндпоинты отличные от CRUD то в рельсах начинается легкий адок на 500 строк из
member do
put :zalupa
get :govno
patch :hui
end
put :zalupa, on: :member
get :govno, on: :member
patch :hui, on: :member
get '/govno', to: 'zalups#govno'
post '/govno/zalupa', to: 'zalups#zalupa'
patch '/govno/hui', to: 'zalups#hui'
И если тимлиду похуй или ревью нет, то каждый лепит как хочет без однобразного вида, в джанге хоть по папочкам раскидано
Сейчас такая наркомания повсеместно увы
Если ты не джун - да.
Ну плюс и тебе, и работодателю удобно, что у каждого рубиста стэк плюс-минус одинаковый, и не надо вола ебать разбираться, какие там библиотеки на питоне ты использовал, а какие нет. А ещё, если проект не сильно жирный, можно спокойненько быть фуллстеком, почти не зная жабаскрипт.
шардов дофига почти на все но какая-то часть dead outdated, параллелизм уже года два как в превью есть
Типа
class Array
def to_s
puts "Inside new to_s, calling old to_s"
old_to_s # што делац туть?
end
end
> Если ты не джун - да.
Так и что, если ты новичок то лучше в пистон, джс катиться? Оссобенно если метишь на апворк или удалёнку нерусскую?
Не ебу, я распространенное мнение озвучил. Сам я первую работу моментально получил, вторую - тоже после одного собеса. Вкатился в руби в 2021.
https://ruby-doc.org/core-3.0.1/Module.html#method-i-instance_methods
https://ruby-doc.org/core-3.0.1/UnboundMethod.html
Я решил, держи. Наверное, можно как-то оптимальнее сделать.
Только в продакшн коде такого не городи
> Не ебу, я распространенное мнение озвучил.
Так а смысл это писать, если ты сам являешься примером обратного.
> Сам я первую работу моментально получил, вторую - тоже после одного собеса. Вкатился в руби в 2021.
Или это имеется в виду, перекат с другого языка aka уже был коммерческий опыт?
Не тестовое.
Роботаю на scala/c++/haskell(на нем пару тыщ строк удалось, включая кодоген и всякие утилит), хочу дропнуться на удаленку на Ruby позже. Идея такая. Я указываю класс и методы. Генерится код который логгирует вызовы этих методов, то есть подменяет методы на методы с таким же именем и сигнатурой но 1) логгирует их аргументы и потом 2) вызывает оригинальную реализацию, которая отдает результат коллеру.
Книги по руби не читал, надо посмотреть metaprogramming ruby будет.
Спасибо, я написал такой же код, но не знал про instance_method и у меня не работало
>если ты сам являешься примером обратного
Потому что все ноют, что не берут, а вакансии без опыта либо совсем позорные, либо требуют знать всё на свете. Может, мне одному так повезло.
>перекат с другого языка aka уже был коммерческий опыт
Не-а.
Ок, спасибо тебе за честность.
Я просто полистываю upwork, и как-то создаётся впечатление, что там только "экспертов" ищут, а если вбить тот же джанго, то появляются достаточно простые вакансии, даже блять парсеро-скраперо писание...
Это в купе с тем, что тут пишут, нагнало на меня сомнения. Ну и + то, что для своих личных нужд я питон использую, так как он реально кросс-платформенен и всякую прикладную фигню писать удобно из-за того, что есть либы на всё
Ты какие-то конкретно методы в конкретном классе хочешь логировать? Просто на keyword arguments оно у тебя сломается.
Если будет так:
def new_meth(args)
||puts args
||old_meth(args)
end
То у тебя старый метод может неправильно распарсить, если в аргументах kwargs или блок (не уверен насчет блока).
А если так:
def new_meth(...)
||old_meth(...)
end
То работать будет (... хитро пакует разные аргументы), но вывести ты никуда не сможешь ( puts ... - синтаксическая ошибка)
А, нет, надо написать puts(...) просто. Но блок оно в лог не выведет.
>> какие-то конкретно методы в конкретном классе
Нет, это просто упражнение. Ограничимся обычными аргументами типа def kek(lol, wtf) и примитивными типами.
>> (...)
>> puts(...)
Прикольно, я думал нужно будет количество аргументов вычислять и потом писать вывод для каждого, типа
number_of_args = SomeClass.method(:some_methd).arity
['arg'].cycle(number_of_args).zip(0..number_of_args).map(&:join).each { | arg_name | blah blah }
А так получается надо открыть класс(class eval?), в нем сгенерить private class variable с уникальным именем и в ней хранить старый инстанс метод. Затем определить метод с таким же именем(define_method), напечатать все что надо, забайндить старый метод к текущему объекту и вызвать.
Найс, еще нашел alias_method :_____kek, :kek
https://2ch.hk/pr/res/2238694.html (М)
https://2ch.hk/pr/res/2238694.html (М)
https://2ch.hk/pr/res/2238694.html (М)
ВНИМАНИЕ! ОСУЩЕСТВЛЯЕТСЯ ПИРИКОТ! ВСЕМ ПОСЕТИТЕЛЯМ ВЫЙТИ ИЗ ТРЕДА!
Тебе обязательно одновременно тут и в реквотреде /tes/ в него мутировать? В одном месте никак?
Вы видите копию треда, сохраненную 7 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.