Это копия, сохраненная 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Что нового:
https://rubyonrails.org/2022/1/6/Rails-7-0-1-has-been-released
https://www.ruby-lang.org/en/news/2021/12/25/ruby-3-1-0-released/
ИЗУЧЕНИЕ ЯЗЫКА
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/
> Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire
Ога, бумеры изобрели next.js
> Q: C чего мне начать, чтобы стать рубистом?
Похоронить руби
Что ты и о том, и о том слышал только краем уха и из смищных мемесов с одним и тем же панчлайном?
Roar!
https://www.youtube.com/watch?v=Sge_hycXb6E
Все спикеры во всех ремеслах (а я занимаюсь достаточным кол-вом) говорят одно и тоже, одну и ту же тему.
Чет мнения абсолютно неоднозначные. Но как по мне высокий уровень абстракции - это же ахуенно. Кто-то поел говна уже с этой либой? Пилите кул-стори. Хули тред мертвый, не делайте вид шо работаете.
У как тебя зацепило то, все продолжаешь набрасывать?)
>>2284115 →
> Там можно навести курсор на вызов метода, определённого в другом файле или в геме, и почитать, что он делает?
Да умеет, go to method по опыту лучше работает чем в vscode/vim, но если упарываешся всякими define_method это нигде нормально работать не будет.
> Немножко доебало в таких случаях вручную копаться, даже немного завидую статикопидорам.
Ну и кстати в последних версиях завезли поддержку для rbs определений
А на чём у тебя рубимайн? Линупс, мак? Я под винду как-то пытался его накатить через WSL, не получилось.
Надо бы на линух переходить, но у меня ноутпук с карточкой от нвидии, тяжело...
В бивасе отруби. Если нельзя, то просто поставь блоатваре от невидии и выруби ее через nvidia-config. Пользуйся встройкой от интел, батарейка будет целее.
Ноут на макос, пека на линуксе, ни там ни там с установкой/обновлением никогда проблем не было.
> Надо бы на линух переходить, но у меня ноутпук с карточкой от нвидии, тяжело...
Так накати проприетарный зонддрайвер он стабильный.
Кстати не ставь ubuntu, там сейчас gnome из коробки устанавливается, крайне кривая хуйня, скачай лучше kubuntu/kde neon
> Так накати проприетарный зонддрайвер он стабильный.
Я скачал 500 мегабайт какой-то хуйни от нвидии (указав на сайте свою модель карты и ОС), запустил - оно мне сказало, что не поддерживает.
Я на нетбуке и виртуалках кубунту гонял, мне понравилась, в целом. Убунту под гномом даже и не трогал, кажется.
На встройку где-то в системе пробовал переключать - не включалась, результат один - дергающееся туда-сюда изображение.
Почему хуево-то? По мне высокий уровень абстракции - это же ахуенно. Мне больше нравится решать задачи бизнеса, а не с байтами ебаться. Тут уже вопрос может рельсы не твое.
Мастхев там только монады и валидация. Монады дают тебе контрол флоу, и с ними ты можешь нормально писать что-то вроде "если не можешь создавать заказы, то иди нахуй", а не через рельсовые костыли. Валидация же просто нормальный способ делать валидацию юзер инпута, а не засирать этим модели, делая их неюзабельными и привязанными к бизнес-логике. Остальной dry-rb стэк на 90% состоит либо из антипаттернов, либо из того, что ты можешь сам сделать за 5 минут под нужды своего приложения.
> Валидация же просто нормальный способ делать валидацию юзер инпута, а не засирать этим модели
А как там это реализовано и почему в Rails это делать плохо?
Hanami кто пробовал, лучше чем Rails?
Какие фреймы хороши, ведь Ruby не едиными Рельсами жив
>А как там это реализовано
Как и должно быть - создаешь отдельный класс и прописываешь в нем свои валидации, потом используешь где хочешь
> почему в Rails это делать плохо?
Потому что это попытка запихнуть сами данные и бизнес-логику для валидации этих данных в одно место. Ломается и превращается в костыли в тот же момент, когда тебе нужно добавить две разных точки редактирования/создания этих данных с чуть отличающейся логикой. Например регистрация и редактирование профиля.
Ну а ты что тут забыл тогда, гробокопатель?
Вам же объяснили -- Ruby не умер, а стал вампиром)
археологический интерес
>Например регистрация и редактирование профиля.
А что там ломается-то? Вроде только upsert и update_all скипает валидации, потому что моделей как таковых не создается и об этом написано в документации.
Операцию сохранения данных в базу не должно ебать, кто эти данные сохраняет и как их провалидировать или нужна ли валидация вообще, это целиком и полностью отдельная задача бизнес-логики.
Тоже не совсем понял. Как чинить тогда, если ломается?
Так она и находится на стороне логики - внутри модели, в самой операции сохранения только констрейнты на таблице могут что-то возразить относительно сохраняемых данных.
С точки зрения приложения, методы User::create или User#update - это исключительно операции над данными, не сырым же sql оно будет эти данные вставлять. Но если в твоей модели лежат еще и бизнес-правила вроде "какие данные нужно предоставить при регистрации", то эти методы превращаются не в "сохранить/обновить", а в "зарегистрироваться/обновить регистрацию", и чем дальше в лес, тем костыльнее.
Ну вот я на транзакции присматриваюсь. Выглядит приятно. Типа открываешь файл, в первых строчках расписан весь флоу, а дальше уже ковыряй конкретные шаги, если надо.
Я не об этом. Язык прекрасный со всех сторон, но довольно обскурный и непопулярный, в продакшене почти отсутствует. Захочешь за программизм денег получать, придётся страдать от низкоуровневой хуеты, что после няшного комфортного руби полный пиздец.
Транзакции это полное говно, типичный исход попытки в руби сделать DSL-месиво вместо прямолинейного API, и даже сами разработчики это признают и гем больше мейнтейнить не собираются. Если ты хочешь, чтобы у тебя сверху файла был написан весь флоу, то просто вынеси эти шаги в приватные методы и вызывай их из основного, пиздец сложно, да? Явно без DSL не обойтись для такой невероятной задачи.
Ты забайтился на троля. Поздравляю.
Где взлетел-то отдельно от рельсов? Ну нет блядь вакансий приходи пили софт на чистом рубине.
> низкоуровневой хуеты
Ну, за реально низкоуровневую хуету получают вон сотыгу, если ты не коробочки для автотрейдинга на бирже прошиваешь.
Разбивки по грейдам нет. В питоне очередь вкатунцов на позицию джуна, в эликсире 2.5 разработчика, которым скучно стало после 6 лет коммерческого опыта. Так миддлы и помидоры на всех стеках получают +- одну вилку.
Питон сейчас в каждой шараге преподают, вместо дельфи.
> мечта же просто не?
А ты что-нибудь когда-нибудь компилировал? Хотя, у них режим интерпретации в стадии тестирования, обещает быть вкусным.
Рельсы ботай, вполне востребовано, ну и сам рубин в любом случае приятнее жс и пхп. Голый жс тоже нахуй никому не нужен, только в приложении к фреймворкам, хтмл и цсс.
Хотя так везде, хоть кресты, хоть сисярп, хоть жава. Переносимая голая сишечка востребована только в микроконтроллерах и драйверах. Всё остальное - надо знать конкретный фреймворк, конкретный компилятор и конкретную ОС
Да про фреймворки понятно, только вот на рельсах 218 вакансий в дс по одноименному запросу, а по react developer 2649 на хх(типа а где еще искать? линкедин знаю, в чатах тг, ну там тож не густо на самом деле)
>хтмл и цсс
База в вебе, знать надо. Хотя мастерство в верстке дело тоже нелегкое.
Вакансий более чем достаточно, а в реакте будет безумная конкуренция - что тебе не так-то? Я бы понял бугурт, если бы на рельсы было 1,5 вакансии на весь город на уникального гения с опытом работы в 20+ лет. Это же не так.
Больше вакансий больше шансов вкатиться. Конкуренция одинаковая у вкатунов +-
Вот из 218 рельсовых вакансий, если убрать те, где требуются опытные, то еще меньше останется.
Никакого бугурта, просто прагматизм.
С чего ты взял, что конпелятор - это плюс, а не минус? Бум интерпретируемых языков произошел не просто так.
> С чего ты взял, что конпелятор - это плюс, а не минус?
Скорость.
> Бум интерпретируемых языков произошел не просто так.
Потому что компы стали настолько мощными и дешёвыми, что даже интерпретируемое говно крутится с сорт оф приемлемой скоростью и не надо вообще писать сложный компилятор. Электрон возьми - оно вообще з собой хромиум таскает и в нём крутит интерфейс приложеньки. Похуй, современные пекарни прожуют как-нибудь и такую нагрузку. То, что это мудизм и пидорство само по себе, всем похуй.
ок
Ты на одном руби писать собрался? А как же бд, очереди, блокировки транзакций? Дроч на скорость - признак школоты.
Я от безысходности когда контора полезла в телефонию ,а ебучий UTM5 её не умел считать так, как требовалось, написал на чистом рубине биллинг за 2 недели. Вообще без фреймворков. Приходит запрос, дёргается mySQL, выплёвывается HTML. Эта хуета реально считала деньги, которые потом выставлялись клиентам. Потом на зеленоградскую "гидру" заменили этот колхоз.
БД уже есть написанные на сях и вылизанные вдоль и поперёк, зачем мне велосипеды изобретать?
А без "дроча на скорость" у нас скоро каждая приложенька будет с собой экземпляр ОС таскать для виртуалки. Ну удобно же, и под жс выросло дохуя обезьян умеющих в вёрстку.
Хочу уже блядь, чтобы полупроводниковые пидоры упёрлись в какую-то физику и дальше ускорять классические CPU стало бы тупо невозможно. Может тогда к нормальному кодингу люди вернутся.
Иииии.... а что плохого в компиляторе, если он будет нормально написан? Твой любимый язык останется, скорость вырастет. Где-то это даст реальные преимущества. Зачем гордо отказываться от новых возможностей?
Взрослые дяди дрочат только на скорость компиляции...
>Может тогда к нормальному кодингу люди вернутся.
К какому это - нормальному? Программирование всегда было пляской костылями на граблях, руби в этом плане первый по-человечески спроектированный язык, спасибо за это товарищу Мацумото.
И что? Тебе нужна 1, а не 2649
А на чём сейчас чистом пишут, тем более в вебе?
Зачем тогда фреймворки пилили?
Да и не сможешь ты на чистом -- в два задания уподливят)
Конкретно напишите что мне пилить, пусть и денег будет меньше. Кабан подождёт
Да нахуй этот React, костьми там лечь?
У нас есть Hotwire, будем делать как по кайфу, а рыночек и кабан подождут
Руби охуенен да. Самый няшный синтаксис без скобачек, отсутствие мусорного кода (aka c++-style, когда объявления и инициализации занимают больше места, чем алгоритм), ООП каким он должен быть.
> руби в этом плане первый по-человечески спроектированный язык,
сдетектили долбаеба
> Программирование
ты свои круды программированием называешь?
мимо другой анон
> отсутствие мусорного кода (aka c++-style, когда объявления и инициализации занимают больше места, чем алгоритм)
в замен на слоупочность, и лютый жор памяти
щас бы скриптовые недоязыки сравнивать с системными япами
кароче еще одного додика сдетектил
Мне мусорный код глаза режет и морально мерзко расписывать кококонпелятору очевидные вещи. Не, если за зарплату можно понять, но для себя - защеканство и куколдизм.
>То, что это мудизм и пидорство само по себе, всем похуй.
Каким образом? Интерпретируемые языки убирают из процесса работы бессмысленное ублажение конпелятора и позволяют сфокусироваться на написании бизнес-логики, ради которой и пишется любая программа, этим их популярность и обусловлена прежде всего.
Это понятно, но не до такой же степени, чтобы чмониум таскать за каждой формочкой. Тем более жээс далеко не самый комфортный и "человеческий" ЯП. Уровень всяких луа, но далеко не пиздона и руби.
> бессмысленное ублажение конпелятора
в вебе да - бессмысленное
> любая программа
проекты на рельсах - не любая программа
> этим их популярность и обусловлена прежде всего.
поплярность обусловлена тем что спрос на написание веб приложений куда выше, чем написание софта где необходимо использовать компилируемые языки. базы данных, http-сервера, криптография и т.д. уже давно написаны. нет потребности переписывать все снова и снова. А вот проекты для какого-нибудь буржуйского бизнеса надо всегда писать с нуля.
хватит сравнивать жопу с пальцем.
> А вот проекты для какого-нибудь буржуйского бизнеса надо всегда писать с нуля.
Но пишутся они почему-то на жабе.
Кресты остались для виндовых игр, по сути. Классическая гуйня вся на сисярп уехала (странно, что не VB.NET - внутри абсолютно то же самое, а синтаксис куда проще), линуксовые консоль-пердоль на чистой сишечке пишется.
жаба - высокоуровневый язык, ранается на виртуальной машине - считай интерпретатор. Там ГЦ - не надо думать о выделении/освобождении памяти.
Кстати никогда не понимал, какого хуя в крестах нельзя сделать, чтобы при завершении функции автоматом убивались и освобождались любые переменные и память, которые в ней же и выделялись. Просто не могу представить ситуацию, где имеет смысл всё это НЕ подчищать.
>в вебе да - бессмысленное
Везде бессмысленное, компилятор не предотвращает ошибки, их предотвращают тесты бизнес-логики, которые делают любые проверки компилятора полностью вторичными и ненужными.
>проекты на рельсах - не любая программа
Назови-ка одну программу в мире, которая писалась не для удовлетворения нужд конечного пользователя, а для хуй знает чего. Хеллоу-ворлд кстати не подойдет, потому что даже он пишется для нужд конечного пользователя, ака для обучающегося программированию вкатуна.
все что выделено на стеке так и очищается.
все что выделено на хипе - как ты поймешь что надо убивать? только считая указатели на выделеную память, если ни что не указывает на эту память - то эту память надо чистить. Так в целом и работает ГЦ. Можно реализовать ГЦ в ++, но это уже дополнительный рантайм. зачем его в ++ делать?
>>294006
> Везде бессмысленное, компилятор не предотвращает ошибки,
> Назови-ка одну программу в мире, которая писалась не для удовлетворения нужд конечного пользователя
это понятно, но нужды бывают разные.
есть веб-приложение смысл которого распарсить хттп запрос, вызвать нужный контроллер который обработает данные запроса, постучит в бд там что-то поделает, отдаст респонз. Тут какбы и нахер не всралось байтоебство, ручная работа с памятью и т. д. У тебя основное время обработки хттп запроса приходится на запросы в бд.
А есть допустим та же бд, там нужды - быстрые операции с большим объемом данных, работа с дисками, кешами, ручное выделение/освобождение памяти. Оверхед от динамической типизации, GC, GIL не нужен, потому что работать все медленно будет.
компилятор и не предотвращает ошибки, никто тебе это и не доказывает. Он просто транслирует твою программу в инструкции которые понимает процессор. программы на компилируемых языках работают быстрее потому что нет промежуточного слоя абстрации. Да там все равно есть какой-то рантайм. В си например он минимальный.
Если твой товарищ выглядит как женщина, говорит как женщина, имеет жопу как у женщины, то он - (трансгендерная) женщина, которую можно ебать.
>Назови-ка одну программу в мире, которая писалась не для удовлетворения нужд конечного пользователя
Вирусы?
Конечный пользователь вируса - его создатель. А юзер, который заразился лишь звено для получения итогового профита.
>У нас есть Hotwire, будем делать как по кайфу, а рыночек и кабан подождут
Аминь, а во время отличное от написания кода можно будет пойти в яндекс еду, надо же как-то на еду зарабатывать.
Пример: https://play.crystal-lang.org/#/r/cqry
Ну это смотря как имплементировать. Но вообще, если по солиду и инкапсулированно, то так и будет, твой товарищ объявляет метод ебать() и никому не рассказывает, что там.
Ну типа да, всё правильно работает.
https://crystal-lang.org/reference/1.3/syntax_and_semantics/enum.html
Смотри, у тебя есть класс User, у него есть гендер:
enum Gender
Male
Female
Other
end
В этом случае Gender::Male будет вполне себе толстый объект, а не примитивное значение вроде числа.
А в таком юзкейсе, как у тебя, просто действительно использовать константы, enum немного не для такого.
Нахуй тебе этот язык нужен. Это даже хуже эликсира
Для простых сайтов есть PHP, а любые сложные проекты строятся на микросервисах, для которых Rails полностью бесполезен.
A: Они оба давно мертвы, но их фанаты упорно отрицают это.
Для эстетов как минимум, а для простых сайтов есть Jekyll, Middleman, Nanoc, Bridgetown
У нас Citadel Architecture
Уёбывай в PHP тред, почемучка)
Сейчас о ней ничё не слышно - всё сдохло?
> а любые сложные проекты строятся на микросервисах
Только если ты не могущий в архитектурные решения дебил. 90% проектов, использующих микросервисы, эта архитектура не нужна абсолютно и только вредит, а взята была потому что на старте проекта маняархитектору стукнули в голову расхайпленные микросервисы и он не пошевелил даже одной извилиной, чтобы попытаться подумать, а подойдут ли они тут, и не лучше ли сделать стандартный монолит, с которым в миллион раз проще работать.
Да кому ты пиздишь, фанбой ебаный.
Твои рельсы нужны только лишь для одного, чтоб за неделю захуячили продукт и отбили очередной раунд инвестиций, когда уже продукт станет продуктом, тогда уже и будут думать над архитектурой, скоростью и остальной залупой.
>просто берёшь гем и....
Как же это заебало, куча гемов разной степени всратости, как ЖС, на половину их них положили 5 лет назад, на другую 8 и тупая привычка на каждую хуйню делать гем. Нужен пагинатор вместо того чтобы писать в lib класс на 30 строк ставишь хуимари. Нужно логирование изменений ставишь очередное хуйгидзе, вместо того чтобы добавить одну колонку и пару строк в модели. И так на каждую хуйню, а потом не знаешь как до 3 обновить чтобы всё работало. Две недели назад обновлялся
>Как же это заебало, куча гемов разной степени всратости
Парк самописных велосипедов по-твоему проще перенести чем популярный гем? Представь что что-то из твоей папки lib отъебнуло, адекватных тестов нет а разраб свалил в неизвестном направлении еще пару лет назад, вот это охуенное интересное занятие, не то что свежую версию гема накатить.
ну да, конечно же именно так все и есть, а не наоборот. держи вкурсе в общем
>чтоб за неделю захуячили продукт и отбили очередной раунд инвестиций
Реальный отбивающий инвестиции продукт обычно разрабатывается и улучшается годами, прежде чем он принесет хоть копейку профита, ты вообще понятия не имеешь, о чем говоришь.
Так и устроено, что только абсолютно необучаемый дебил или человек без малейшей капли опыта разработки может на полном серьезе говорить что-то вроде "ну начнем так, говна накидаем, потом перепишем на нормальный стек полностью", потому что даже один год работы на реальном проекте тебе даст отличное представление о том, что это фантазия без связи с реальностью, переписывание даже года работы с нуля - это пиздец какие затраты по времени, и учти еще, что во время такого переписывания бизнес должен стоять на месте, иначе ты за старым проектом не угонишься. И почти в любой индустрии, кроме какой-нибудь гос. бюрократии, стоять на месте даже месяц-два - это проебать бизнес конкурентам.
Да, у нас в приватном репозитории уже 6 гемов форкнутых. Самое забавное что иной раз в ПР уже есть решение проблемы, но автору впадлу даже это смержить и висит эта хуйня месяцами. Так что всё что ты описал работает с точностью до наоборот, самописные костыли работают как часы и исправляются походу дела, а эти крутые гемы висят нерабочими годами и всём похуй.
С популярными гемами обычно проблем таких нет, они кое-как поддерживаются и между версиями рельс нормально переезжают. Какое-нибудь ноунейм говно - да, стоит подумать, прежде чем добавлять, но обычно это решается написанием протестированной обертки вокруг гема, изолирующей нужные методы, чтобы и контроль был над имплементацией, и не пришлось все самому писать. Но тут еще возникает специфика рельсовых гемов, которые очень часто не считают зазорным тупо заманкипатчить базовые классы на похуй, зачем какие-то изолированные интерфейсы выдумывать.
Вот и петушарий кудахтерный заговорил, в след раз когда я приду и скажу тебе накидать очередное говно, чтоб я показал его инвесторам, ты сильно не разбухай, а делай что велено, а то зп не получишь
Ору с вас) Культурные господа собрались)
Вы код писать собираетесь или пиздеть будем пока не состаримся?
>в ПР уже есть решение проблемы, но автору впадлу даже это смержить
Вот именно, даже заброшенные гемы можно завести, там либо пулл реквест с патчем, либо в ишью перетерли уже и есть форк или аналог если у гема востребованный функционал. Так что хз о чем тут говорить, не писать никакого кода и подключить гем всегда лучше чем писать самому, даже если это всего сотня строк.
> >просто берёшь гем и....
> Нужен пагинатор вместо того чтобы писать в lib класс на 30 строк ставишь хуимари. Нужно логирование изменений ставишь очередное хуйгидзе, вместо того чтобы добавить одну колонку и пару строк в модели.
Так перепиши
ActiveAdmin это ноунейм говно?
потом у тебя проект с гемфайлом на миллиард строк, половина гемов еще тянет хуй пойми какие зависимости.
Обновляешься, видишь пачка гемов не ставится, смотришь первый отвалившийся гем "залупатор228", название ни о чем не говорит, лезеш в гугол смотреть че за гем, находишь линг на гитхабе, последний коммит 20 лет назад, в дескрипшине надпись "автор сдох от рака мошонки". Гем все что делает, отправляет по хттп на конфигурируемый ендпоинт какой-то пейлоад.
Короче, как комфортнее писать рельсовый код? Нихуя не подсвечивается, ховеров нет, приходится кучу говна в башке держать и сидеть с двумя браузерами, чтобы вкладки доки не терять при необходимости потестить новую вьюху.
С гемами уебался. В рубине даже банальный mysql только гемами сделан, ну или пердоль сам всё это с нуля на уровне сети. Попытался перенести программку на древний сервак с протухшим центосом. Бинарно перенести нужный гем низзя, потому что пердоликс. Пробовал ессна, валится с segfault. Собраться оно не может, потому что всё окружение для сборки протухло. Приехали...
Спасибо, блядь, хоть регулярки и работу с файлами в гемы не вынесли.
VS Code
Устанавливаешь самое большое расширение по запросу Ruby и endwise не забудь, спасёт от головной боли.
Rubymine
> рельсах
Рельсы выглядят так, как будто их писал древний дед-жабист. От руби там только синтаксис, и то не везде. На просто рубине ТАК писать никто не будет в своём уме.
%q{Чел, руби это язык древних дедов "перлистов"}
проверить четность числа можно делением с остатком на 2 т е сделать что-то типа puts '#{x} is odd' if x % 2 != 0. Если остаток равен 1 - то число нечетное, если 0 - четное.
На пике какой-то сверхразум додумался в жаваскрипте сделать либу для этого. и еще 59лямов таких же сверхразумов скачали ее, и юзают в своих проектах.
ни в одном языке не будут делать работу с mysql частью стандартной библиотеки. тут не доебешься
>На пике какой-то сверхразум додумался в жаваскрипте сделать либу для этого.
В этой либе лежит одна функция. В руби вон вообще такую функцию сделали частью стандартной библиотеки, вот же дебилы, не знают, что можно просто на два поделить!
> ни в одном языке не будут делать работу с mysql частью стандартной библиотеки
Схуя? Скриптовая чушь типа рубина в основном с SQL и работает на практике. Я говорю, давайте ещё file.open в гемы вынесем, а сам рубин у нас как нескучный калькулятор будет только.
c SQL а не mysql.
у тебя кроме mysql есть еще хер знает сколько баз, который поддерживают SQL, либо частично поддерживают. У каждой из них есть еще свои фичи помимо описываемых стандартом sql. А еще у всех бд разный сетевой протокол, по которому ты запросики свои передаешь и получаешь ответ. и ты что предлагаешь все это впихнуть в стандартную библиотеку, и каждый раз когда в каком-нибудь хуйSQL добавится новая фича апдейтить сам руби?
сделали и сделали, пользуйся на здоровье.
тут же никто не спорит о том как удобнее написать. тут проблема в том что 59 миллионов горе-"программистов" 100% из них на руби бекэнды пишут не ебут как определить четность числа.
А какой mysql? Oracle mysql или mariadb? А то они с каждым днем расходятся все больше.
Во-первых факт использования isOdd или odd? никак не говорит о том, что человек не в курсе, как определять четность, абсолютно дебильный аргумент. Во-вторых, количество установок - это не количество программистов, потому что оно в том числе учитывает прокси-установки, одна популярная либа притянет себе эту is-odd и все пользователи этой либы тоже будут считаться как установившие is-odd.
Уел, ок :)
Просто настолько популярная и потребная в скриптовых ЯП вещь, что могли и бы и оба варианта пилить.
> odd?
да юзай сколько хочешь, заебал. это синтаксический сахар рубей, ничего против не имею. Но если ты скачиваешь и реквайришь библиотеку чтобы определить четность числа, тут соре - программирование не твое.
> никак не говорит о том, что человек не в курсе, как определять четность
ты хочешь сказать что знал, но вместо того чтобы просто 1 строчкой кода это сделать, или взять и самому заимплементить этот метод он полез в тырнет искать библиотеку? ну тогда он еще тупее чем я думал.
> Во-вторых, количество установок - это не количество программистов
да похуй, сам факт что библеотека довольно популярна
>если ты скачиваешь и реквайришь библиотеку чтобы определить четность числа, тут соре - программирование не твое.
>ты хочешь сказать что знал, но вместо того чтобы просто 1 строчкой кода это сделать, или взять и самому заимплементить этот метод он полез в тырнет искать библиотеку
Так и запишем, что утилити либы скачивать нельзя, если они "сликом простые", а достаточный уровень "простоты" либы конечно же определяется лично шизиком с мочана. Так что в следующий раз, перед тем как скачивать либу, обязательно проконсультируйтесь с ним, вдруг она слишком простая, и вам нужно имплементацию функций из этой либы писать ручками, иначе он вас запишет в непрограммисты.
С миру по нитке. Там кто только их не писал
Не нравится что на проекте используется гем, ну так перепиши — всякая пагинация, хлебная крошки и подробная херня действительно очень просто запиливается на рельсах(буквально за 30 минут).
ой блядь, да делай что хочешь, только если попадешься работать со мной в одной команде, я то тебя узнаю по уебским либам добавленым в проект, а ты меня нет. Я насру тебе в тумбочку или в портфель, и не один раз.
Ну чисто концептуально - зачем делать бойлерплейт на каждом проекте, если можно аутсорсить всё разрабам одного гема и договориться на нём? Действительно, не понимаю будапешта. Devise вон есть - и плохо, что ли, что это стандарт в разработке на RoR, и все его либо знают, либо не ленятся выучить, зная, что пригодится везде?
> Ну чисто концептуально - зачем делать бойлерплейт на каждом проекте, если можно аутсорсить всё разрабам одного гема и договориться на нём?
KISS, если нужен базовый функционал, то зачем тянуть ещё один гем, который хер знает как внутри устроен, потом оказывается что разрабы нахуевертили и тот же kaminari в 40 раз! медленнее и памяти жрет в 36 раз больше чем альтернатива (pagy)
Пока не было pagy, никто естественно об этом не задумывался (ну все же используют, значит норм)
> Действительно, не понимаю будапешта. Devise вон есть - и плохо, что ли, что это стандарт в разработке на RoR, и все его либо знают, либо не ленятся выучить, зная что пригодится везде?
Проблема в том что его именно надо учить, что это огромный комбайн который умеет все, но настраивать его заебешся, куча магии внутри, при этом есть альтернатива в виде относительно простого sorcery, который в 99% закроет все потребности.
Ну то есть я больше о том что надо несколько раз подумать прежде чем тянуть новый гем в проект, а если уж тянуть то что-то попроще, потому что потом поддерживать это все заебешся.
Сразу вспоминается как я с active_admin ебался, кому-то когда-то пришла гениальная идея, что мол раз есть админка то и нужен гем для админки, а потом дают тебе казалось такую простую задачу на день, а ты ебешься три дня, потому что dsl, можно, стильно, молодежно без гема проще запилить чем с ним
Ну, если нужного функционала немного какая-нибудь обёртка над каким-нибудь АПИ с оверхедом, то и правда бывает проще почитать сурцы гема, вдохновиться и взять только нужное, заодно твикнуть под себя. Но это если для себя делаешь, а на работе-то время не своё, а кабанское - тимлид скажет настраивать девайз, буду настраивать девайз пять часов, мне-то чо.
>React is dead edition
>SPA умерли, все срочно перекатываемся на https://hotwired.dev/
>alternative approach to building modern web
>by sending HTML instead of JSON
Что не так? Современная вебня тормозит только из-за вагона скриптов для превращения JSON в HTML. Перестаешь выебываться и шлешь сразу HTML — ничего не тормозит.
Они и так все "мои" - казенные. Нахуя офисному планктону выдают компы? Чтобы они хатемель с отчетами рендерели, а не пасьянс.
Ты со мной в игру слов собрался играть? Компы (браузеры) рендерят отображаемую пользователю страницу из HTML, если страница большая (длинная, много текста, таблиц и картинок), это будет работать медленнее и это норма. Сервер должен рендерить HTML из данных, которые могут быть в JSON, в SQL, в NoSQL, хоть в жопе у чёрта, если страница НЕ содержит сотни текста, таблиц и картинок и тормозит просто потому что кто-то хочет перенести всю работу на клиент, то это говно и должно быть уничтожено.
Со своей мамкой играйся. То что можно сделать рендерингом на клиенте невозможно сделать даже ssr нодой, не то что говно шаблонами на руби.
Абсолютно дебильный беспруфный кукарек, фронт тормозит по абсолютно тем же причинам, по которым может тормозить любая программа(в основном говнокод). В самой концепции SPA нет ничего такого, что делало бы ее медленной по умолчанию, наоборот по такой же диванной логике, как у тебя, быстрее должно быть не ходить на сервер за каждым пуком html'а, а получать чистые данные и переводить их в html уже на клиенте.
>быстрее должно быть не ходить на сервер за каждым пуком html'а, а получать чистые данные и переводить их в html уже на клиенте
Передать код, запускать программу в однопоточной вкладке браузера, которая будет запрашивать данные, из которых потом будет собирать разметку - это должно быть быстрее чем отобразить готовый кусок текста?
Какой-то новый уровень троллинга тупостью, не иначе.
>Современная вебня тормозит только из-за вагона скриптов для превращения JSON в HTML
Вагон чанкуется, лениво грузится и кешируется
>Перестаешь выебываться и шлешь сразу HTML — ничего не тормозит.
Бендвиз не треснет? Как такое будет масштабироваться?
И чем в вакууме ожидание юзера со слабым железом хуже ожидания юзера со слабым интернетом?
>>298259
Двигаться в сторону крутящих дата атрибуты велосипедов?
Какой майндсет должен быть у разработчика, чтобы впихнуть в экзампл апп своей передовой либы иннерХТМЛ? Это получается приемлемой практикой бай дизайн? И секьюрится этот минимализм будет парой слоёв санитайзеров и валидаторов? Пока убиваемый SPA xss-proof бай дизайн?
>Передать код, запускать программу в однопоточной вкладке браузера, которая будет запрашивать данные, из которых потом будет собирать разметку - это должно быть быстрее чем отобразить готовый кусок текста?
Шизик, все, что ты пишешь, применимо и к гонянию html, они так же все работают в однопоточной вкладке, требуют кода(не магией же ты их собрался гонять?), требуют запрашивания данных и так далее так далее. Ты пытаешься заниматься классической диванной оптимизацией в вакууме без единой реальной метрики. Факты же таковы, что на реакте и других SPA-фреймворках прекрасно пишутся производительные приложения, которыми ты пользуешься каждый день, так что говорить как ты говоришь, что "все SPA-сайты обязаны лагать, они же SPA, а не гоняют html по сокетам" может только полнейший дурачок, игнорирующий реальность.
Современный фронт на интерпретируемом говне, оно по определению тормозное. Вообще текстовый хтмл говно, необходимости в этом никакой, никто хтмл любимого сайта не изучает.
>Современный фронт на интерпретируемом говне, оно по определению тормозное
Тормозное по сравнению с чем, дебил? И что значит "тормозное", расчет хуйни в вакууме занимает 0.00002мс вместо 0.00001? Жопоскрипт и его движки - это вообще самый выдроченный на производительность язык среди динамических и ты в жизни не ощутишь реальных просадок производительности, вызванных именно языком, а не говнокодом на нем.
Давай, расскажи мне как ты пилишь очередной клон гуглотаблиц.
Всё более простое отлично работает на минимальном клиентском JS.
>0.00002мс вместо 0.00001
Лолд, запусти профайлер в devtools на любом модномолодёжном сайте, посмотри какая дичь происходит.
И? Ты думаешь, что если говнокод на жопоскрипте заменить на такой же говнокод на си, то все сразу полетит как истребитель и все проблемы с производительностью исчезнут? Вот же дебилы не знают, что программы на си оптимизаций не требуют, а просто быстро работают и все, хоть как их напиши.
Лучше расскажи как ты как ты куски хтмл гоняешь по сети чтобы обновить количество лайков под картинкой. Навороченные таблицы с фильтрами, сортировками, группировками, кстати это первое что хотят кобанчики.
Программа на Си написана пряморукими программистами с пониманием оптимизаций и работает на мощном сервере.
Программы на жопоскрипте собраны послекурсовыми вкатунами из is-odd и faker даже без мыслей о том, что ресурсы надо бы экономить, и работают на джва ядра джва гига пластиковом мусоре.
>Программа на Си написана пряморукими программистами с пониманием оптимизаций и работает на мощном сервере.
Фантазер, никогда на сях не писавший, ты? Средняя программа на си написана криворукими говнокодерами-олимпиадниками, которые даже переменные называть не умеют нормально, и если это говно используется в качестве основного языка в проекте, а не для микровставки, обернутой в питон, то там начинается такой пиздец, что никакой жопоскрипт-макаке и не снился.
Да. С завтрашнего для пишу фронтенд на сишечке.
>чтобы обновить количество лайков под картинкой
Если я обновляю только количество лайков, то мне нужно пригнать на фронт только число. Problem?
>даже переменные называть не умеют нормально
Вот она настоящая метрика оптимизированного кода.
Нет конечно, еще число дизлайков и последний коммент. Под картинкой конечно же динамически обновляемый чат. А еще все картинки с обсуждениями представляют собой виртуальный список, который незаметно загружается при прокрутке.
Как ты собрался оптимизировать код, который даже прочитать не можешь, шиз?
>виртуальный список
О, спасибо, это та самая фича, что не позволяет на длинной странице с помощью Cmd+F найти слово. Убил бы изобретателя.
Такого не бывает. Это фантастика.
Джун: я постараюсь
Мидл: обсужу с командой
Сеньор: это невозможно
Техлид/архитектор: мы не будем этого делать
Если уже уплочено - можно и расстроить
>Так перепиши
Частично так и сделали, вместо пару тупых гемов написали пару классов, пару штук заменили на другие гемы, ну и еще форкнули еще один гем себе в репозиторий, переписали пару строк и в 3 версии рубей все заработало. Больше всего пришлось поебаться с генератором эксельки и пдф, там были какие-то васянские умершие гемы и пришлось код переписывать под другие гемы.
Это джаваскриптизерство какое-то
Короче я пришел к выводу что нужно использовать минимум сторонних решений, если гем можно заменить простеньким классом, то нужно лепить свое и не ебать мозг, чем меньше магии делает сторонний гем тем лучше и постоянно обновляться.
Жыза.
Двачую
Фронтовичок, плиз. Потести KolibriOS, посмотри с какой скоростью и на каких ресурсах работает ассемблер.
Дурачок, я просто пытаюсь тебе указать, что ты во-первых сравниваешь несуществующее с существующим(где там асемблер в браузере, много уже на нем сайтов написал?), и соответственно у тебя нет ни единой реально метрики, чтобы подкрепить свою шизу, т.е по сути ты просто пердишь в лужу и пустословишь "бля а вот зделоть бы все хорошо и было бы заебись, а вот сейчас мне не нравится как зделоли", а во-вторых делаешь полностью необоснованное предположение, что уж если говнокод скомпилить в асемблер, а не интерпретировать, то он по-любому перестанет быть говнокодом, станет работать как часы и весить три килобайта.
Есть задачка ходить на парочку сайтов и слушать поступления данных на них (цены на акции) а потом отображать всем пользователям
Как?
Кстати есть ли какая нибудь книженция по таким общим архитектурно паттернам или надо писать 10 твиттеров и опыт сам набьется?
>Я тут делал одно тестовое задание на Руби, вот буквально — прототип накидать. Остался в полном недоумении, зачем в 2022 году это использовать.
>Гемов мало, по сравнению с node.js — просто смехотворно. Даже самые популярные документированы исключительно плохо. А учитывая возможность расширять синтаксис, которой активно пользуются всякие фреймворки, программирование превращается в какую-то череду магических заклинаний — там подсмотрел один кусочек тайного знания, тут другой, всё в месте вроде б как-то пыхтит (правда, совершенно непонятно, как). Шаг влево-шаг право — и всё превращается в тыкву.
Так в чем проблема свалить нахуй с рельсов на ноде жс, или здесь заведено уговаривать, нет, анончик, останься.Всем похуй.
> Гемов мало, по сравнению с node.js — просто смехотворно.
Не все могут себе позволить хранить node_modules, ты цены на SSD видел?
Вообще похую на твое мнение бро. Продолжаю работать удаленно за 170к, уделяя 3-4 часа в день.
Паста с хабра) Но в целом да соглашусь
В отличие от кокосистемы npm, в гемы не пушат всякие ебанашки, из-за которых можно снести полсистемы или намертво повесить приложение.
>Я тут делал одно тестовое задание на Руби, вот буквально — прототип накидать.
ВЗЯЛ ТЕСТОВОЕ
>Гемов мало
НЕ НАШЕЛ ГЕМ
>документированы исключительно плохо
НЕ СМОГ ПРОЧИТАТЬ ДОКУМЕНТАЦИЮ
>какую-то череду магических заклинаний
НЕ РАЗОБРАЛСЯ С ПРИНЦИПОМ РАБОТЫ
>подсмотрел один кусочек тайного знания
СКОПИПАСТИЛ
>Шаг влево-шаг право — и всё превращается в тыкву
АДАПТИРОВАТЬ НЕ МОЖЕТ
>Остался в полном недоумении, зачем в 2022 году это использовать.
ВЫВОДЫ: ВАШ ИНСТРУМЕНТ ГОВНО
https://habr.com/ru/company/sbermarket/blog/647937/
Это ты мёртвый, дурачок, а к рубистам-джунам очереди на линкедине строятся.
Кот понял.
Воистину, в современном айти важно не то, что ты делаешь на самом деле, а то, что ты сам о себе говоришь.
То есть современный программист должен быть таким "самим себе маркетологом-продажником".
Ловите русофоба-бандеру!
Думаю, могут
>Для эстетов как минимум
От эстетства до пидарастии, как известно, ровно один шаг.
Дмитрий Юрьевич Goblin Пучков
о, сер, скалируете 15 rps на 15 подов?
Красная сволочь Пусков пусть катится
Лично я -- нет. И книжка у него не очень оказалась (сколько он там за неё просил?)
Хотел быть как _why, да не вышло и поделом
Господа, вы все шутки шутите... а в них доля правды есть.
По факту не особо много компаний осталось (беру только РФ) кому нужны рубисты.
>эта та шаражка откуда лиды в ужасе убегают и над которой си-ти-о ржут в курилке?
А почему сбермаркет шаражка? в чем это выражается?
новые версии выходят, что рубей, что рельсов. Что касается вакансий: их ничтожно мало (берем только РФ). Крупных компаний, кто использует руби можно посчитать по пальцам одной руки. И скорее всего там древний проект, который нахер никому не нужен.
Так что, да - он по факту умер.
>Хочу выучить руби
Лучше не стоит, вакансий практически нет. А те которые есть, это поддержка костыльного проекта, который никак не перепишут на другой язык. Так что лучше выучи питон.
Я в свое время писал на руби. Писал до тех пор, пока проект не закрыли)
Типа из-за того что поляки понаехали в Ирландию он нашел работую в Польше.
>И рынок и кабан идут нахуй Будем писать как по кайфу
эхх хорошо бы.... руби конечно не плох. Но я перекатился на питончик и не сожалению ни разу.
Ну в какой-то степени он прав. В основном легаси проекты, но апдейты то выходят
Если вы планируете доживать в РНДР, разумеется, учить его не надо.
вот пидор, причем он не один такой, кто форсит такую хуйню
Двачую тебя!
сложнее всего просраться при запоре
В целом Rails впереди по техническим решениям
на спринге сделал маленькое приложение, в целом все понравилось (круд, авторизация/аутентификация, шаблоны), попробую теперь на руби и сравню
Ребятки подскажите по архитектуре
Пилишь форум к примеру и у топов можно выставлять ограничения, например: только просмотр (бывает такие вывешивает администрация с инфо или рекламой), отвечать могут только мужские/женские анкеты, отвечать могут только пользователи с рейтингом >= 100 и подобное
Как эти проверки архитектурно лучше реализовать?
Где лучше хранить роли (админ, модератор, пользователь) -- в users или отдельной roles?
В чем плюсы и минусы (чтобы потом переписывать меньше кода пришлось)
Забанненных хранить в отдельной Banned или сделать banned = false/true в Users?
Мне не ясно почему некоторые поля выносят в отдельную таблицу, как с банами например или ролями, когда это свойство конкретного пользователя, а тут получается подход со стороны: он вносится в список ролей или забаненных
>Мне не ясно почему некоторые поля выносят в отдельную таблицу, как с банами например или ролями, когда это свойство конкретного пользователя, а тут получается подход со стороны: он вносится в список ролей или забаненных
Бан лучше фиксировать отдельным флагом и полем с датой (если предполагаются временные ограничения), потому что если делать поле enum [мод, юзер, бан] то после установки бана ты потеряешь информацию о роли пользователя и придется каким-то образом восстанавливать роль после разбана.
Почему роли делают ассоциацией один ко многим? Потому что роли это групповая политика, пользователь может входить в разные группы, можно тонко настраивать доступ к частям системы, если это всё не нужно то достаточно поля role в модели User и нескольких методов типа can_edit?, can_delete? ну по логике приложения, мне кажется 95% случаев такой функционал покроет и без всяких гемов.
>Пилишь форум к примеру и у топов можно выставлять ограничения, например: только просмотр (бывает такие вывешивает администрация с инфо или рекламой), отвечать могут только мужские/женские анкеты, отвечать могут только пользователи с рейтингом >= 100 и подобное
Я бы сделал STI с наследованием, родительская модель Topic с дефолтными настройками, от неё идут дочерние TopicForRating, TopicForAge внутри которых какая-то небольшая логика с ограничением, без копипасты и минимум кода, Topic знает своих наследников и предлагает выбрать при создании топа, то есть для расширения списка топов достаточно добавить класс-наследник.
>Прошлый век. Лучше чекай pundit
Смысл рельсов в быстрых, готовых, уже обкатанных решениях, минимальном TTM. Делаешь правильный выбор - пишешь пять строчки кода, делаешь неправильный - пишешь 15 новых файлов.
>еще лучше action_policy
Щас бы юзать гемы страны-агрессора.
В случае с can_edit? и can_delete? -- проверяется атрибут role
А как проверять ограничения заданные в топике? current_user смотреть в Controller#action и отсекать если не подходит?
Если надо два в одном: TopicForRating и TopicForAge? Обрастёшь классами)
Спасибо, а superadmin тоже будет User? Надо ещё уникальным сделать, чтобы мог только один аккаунт быть
>Если надо два в одном: TopicForRating и TopicForAge? Обрастёшь классами)
Да, здесь нужно декомпозировать топик от ограничения, скажем, для Топика ассоциация - один ко многим на класс Ограничение, от которого наследуем ОграничениеНаВозраст и ОграничениеНаРейтинг, то есть топик через ассоциативную таблицу ссылается на множество ограничений, по которым будем пробегаться и выполнять для каждого прописанную в классе проверку.
Здесь даже нет ассоциативной таблицы, просто топик ссылается на множество ограничений, которые с помощью STI хранятся в одной таблице но подтягивают различную логику для соответствующего типа ограничения.
Потому что в нём у меня коммерческий опыт есть, а в других областях - нет.
Почему его выбрал - ну, потому что пиздатый. Выбрал по первому впечатлению, потому что синтаксис без сраных скобок и точек с запятыми, потом оказалось, что первое впечатление не подвело, сама структура языка тоже классная.
Ruby такой язык, который редко осваивают первым.
Обычно уже перекаты с опытом. А джуна куда девать? Гавно за ним с совочком ходить убирать всё время? Но стек хороший, теперь Rails стал фреймворком одной персоны.
А ещё DHH отчислили: https://world.hey.com/dhh/no-railsconf-faa7935e
=)
Двачую. Кодил на руби в одной конторе после трех лет разработки на питоне. Правда через год выкатился из руби на питон)
Там же написано. Не скуколдился потому что)
source http://unsecure.rails-assets.org do
gem rails-assets-bootstrap-select
end
Так вот, как бы я не изменял source на https://rails-assets.org или обратно он мне тупо пишет HttpError и никак не скачать этот гем, словно spec на самом сайте упал. Без гемы проект не работает, вообще хз что делать. Уже и vpn пробовал и по всякому изворачивался, руками гем не скачать. Сам сайт rails-assets.org открывается, но гем оттуда не взять. Что можно сделать?
Thanks for nothing, посоны! Сам решил.
Короче curl Ubuntu по-умолчанию игнорирует прокси, потому все запросы шли напрямую, хотя развёрнута сеть vpn.
Лечится так:
Разворачиваешь vpn proxy, у меня privoxy + tor
Прямо в терминале пишешь:
export http_proxy=http://localhost:8118(или как сам у себя прокси настроил)
export HTTP_PROXY=$http_proxy
Запускаешь bundle install и радуешься, что всё работает, так же можно https запросы настроить. В свете последних событий чебурнета, надеюсь вам поможет.
>export HTTP_PROXY=$http_proxy
Я понимаю, что ты не баш-программист, но можно же было догадаться: export HTTP_PROXY=http://localhost:8118
Ты не программист, если не засоряешь память переменными, а вдруг я захочу ещё где-то вызвать эту переменную, а?
А если честно, в связи с тем, что это мой первый проект, голова у меня забита другими мыслями.
Лучше скажи как теперь отключить это)
Вызов Unset не помогает... Только перезапуск компьютера отключает перевод трафика через прокси. Мда... Всю жизнь работал с windows.
Я не он, но... закрыть терминал. Заданные в нем переменные окружения живут пока живет окно (сессия) терминала.
все в ошибках
Транзакции это яркий пример когда умный чел начал писать гем для решения задачи, не увидев того, что он изобретает велосипед, который уже существует - монады. dry-monad позже была написана уже со знанием матчасти. Такое часто бывает - в ООП много "паттернов", которые на самом деле являются очевидными вещами из мипа ФП, но для которых калеки вынуждены были придумывать свои термины и названия, не подкрепленные матчастью.
Антипаттерношизик, я узнал тебя по твоим шизоидным словам и высерами. Как там, уже нашел список паттернов, которые якобы в ФП сделаны из коробки и не нужны, или до сих пор просто в воду пукаешь своей шизой и сливаешься на этом вопросе?
Нет. Никаких питонов. Писать на том, что по кайфу
А рыночек и кабан пусть нахуй идут
То, что по кайфу: Ruby, Crystal, Racket
Вкатываться котломоем 2 через 2, писать как по кайфу и не предавать себя. Там будет видно. Бог рассудит
На Божью милость буду полагаться
Ну вот я так работал 10+ лет, а в итоге оказалось, что я всё-таки предал себя. Мои знакомые, кто, разорвав сраку, сидя в гниющей мухосрани, превозмогая того самого себя, вкатились 5 лет назад, уже в Европе на $5k сидят, а я до сих пор «не предаю» себя, занимаясь какой-то хуетой.
Охуительные истории от ебаных инфантилов с двача. Захожу сюда ща профессиональным контентом, а читаю каких-то чмошников и их сопельные рассказы о своих психологических и мировоззренческих проблемах.
здесь тебе самое место, "профессионал" хуев
ща тебя пидорнут со сладкой удалёночки и пойдёшь на завод кабели тянуть
Не надейся. Я джава мидол 5 лет опыта + го + c++ , меня везде возьмут. А вот ты пойдёшь на завод, инфантил. И даже если мне придётся поработать на заводе, это не навсегда и в будущем я снова буду хозяином жизни.
Пчел, чтобы вкатиться, надо около 6 месяцев. 3-4 если ты гений, свободный 24 часа в сутки и 9-12, если ты не очень умный или нет времени на обучение.
Внимание, вопрос: неужели тебе влом к этим месяцам добавить несколько вечеров ознакомления с разными языками, чтобы потом не страдать? Возьми и пройди бесплатный курс по питону, потом - по руби. Что больше понравится в началу - будет больше нравиться и дальше скорее всего, пока просто поверь на слово.
И как оттуда ошибки отлавливать и выводить, тут то они в errors пишутся и можно ещё интернационализацию прикрутить
Вот что-то подобное добавили ещё в 6.1
https://blog.saeloun.com/2021/01/08/rails-6-check-constraints-database-migrations
А какой смысл? Сегодня 18, завтра 16, с констрейном придется кроме модели еще миграцию прогонять, удалять старый, создавать новый. Если система фатально не ломается от некорректных данных то и проверять лишний раз незачем.
Конестрейнами можно более сложные штуки делать, например гарантировать уникальность даты для конекретного значения id, пересечения множеств и всякое такое, что может загнать активрекорд в глубокие раздумья.
License.where("id > ?", 1).to_sql
почему оно выдает:
SELECT `licenses`.* FROM `licenses` WHERE (id > '1')
Как мне по инту то искать, еба? Какого вообще хуя?
Да такое себе.. я не люблю ручных манипуляций со строками, люблю гомоген^Wоднообразие в коде, плюс автоматом защиту от инъекций (хотя тут не тот случай)
Пока сошелся на хуйне вида License.where("id > cast(?, int)", 1)
Хуйня конечно, но перфоманц тут мне не важен, так что мб так и оставлю.
В очередной раз меня по ебалу бьют незнанием очередного ебаного convention. Заебли меня рельсы уже этим.
Ты где-то в схеме БД проебался, проверь тип колонки:
License.columns.find { |c| c.name == 'id' }.type
.to_sql здесь лишнее, потому что оно именно это и делает - отображает запрос к базе, а не выполняет его.
Не лишнее, отображает как надо, у него тип колонки не тот.
Пример несколько упрощенный, на самом деле у меня нет как таковой "колонки", она динамическая, примерно так у меня вычисляется:
Apple.where(
"apple->'$.size' = cast(:size AS SIGNED INTEGER)",
size: 0)
Без каста никак не могу эту штуку заставить работать
Поле является json'ом, так проще для нашей логики.
Но даже если не json - какого собственно хуя рельсы заменяют int на строку? Конвенция? Хуенция? Пизденция? да, пичот
До какой-то вресии постгрес хранил json'ы как строки, то есть её нужно извлечь, десериализовать, потом только будет доступ к полю, никаких оптимизаций и индексов по таким полям естественно не происходит и включать их в условия выборки.. ну хз, можно наебаться по перформансу очень жестко.
>>321986
А давай. Если с этой не прокатит, пойду и к тебе.
А, стоп, я не миддл же. Тогда не надо.
Все примеры с туториалов как-то обходят этот момент стороной. Эта фича вообще поддерживается?
Хочу это сделать
def m(par)
___yield(par)
end
m { |num| puts(num) }
m(1)
но выдает ошибку аргумента.
Спасибо. Что-то я ступил.
Кто-то использует? Или оно для прода до сих пор не готово?
Где-то они есть, по-твоему?
Что там?
Сразу хочу сказать, что вайти-вайти я не планирую — абсолютно не моё, да и слишком стар для этого дерьма. Так, сугубо праздный интерес в попытках понять мотивацию людей, чтобы посредством этого лучше понять мир.
Посмотрел пару видосиков про руби на ютубе (пока ещё не запрещённая организация), вроде прикольный язык, но если я правильно понимаю, сфера его применения ограничивается вебом, и по сути большинство программистов занимаются тем, что пилят очередной инернет-магазин говна или какую-нибудь корпоративную админку.
Расскажите про свою мотивацию (исключая преференции в виде ЗП/удалёнки/релокации, это и так понятно). Я имею в виду в чём для вас кайф от самого процесса? Я почему-то думаю, что он должен быть, иначе всем этим невозможно заниматься. Могу ошибаться, конечно, поправьте если что.
> Расскажите про свою мотивацию (исключая преференции в виде ЗП/удалёнки/релокации
А зачем ты какаешь? Исключая, конечно, функцию освобождения кишечника. Как ты получаешь мотивацию какать?
>Preferably in house young developer to build within this Concept and grow
>3+ years’ experience, Full stack developer – to handle back-end (Ruby/Sinatra) and frontend (Js, CSS, jQuery, Ajax)
Что там меня может ждать, к чему готовиться?
Ну то есть, внутреннего интереса нет? Чисто на потенциальных профитах едете?
А что не так? Переписать на https://umbrellajs.com и будет норм
Раз Sinatra, то не обязательно React / Vue
В целом Sinatra гавно. Лучше Roda + Sequel
>Расскажите про свою мотивацию
Мотивация программиста такая же, как и мотивация автослесрая, ковыряющего ржавое корыто в гараже, только программист может создать своё собственное корыто с костылями вместо колёс и впарить это как последнее достижение в автомобилестроении.
Собеседование — это не про решение реальных задач. Когда ж вы научитесь. Вроде программисты, а во. Бум-бум.
> Собеседование — это не про решение реальных задач. Когда ж вы научитесь. Вроде программисты, а во. Бум-бум.
Ну а что делать тогда? Что за дичь, будто собеседуют меня не программисты. Они зачем проверяют у меня паттерны-хуяттерны тогда?
Просто фильтр, бездушный как естественный отбор.
Вас таких вкатывальщиков дохуя и маленькая тележка. Очевидно, что предпочтение отдаётся не тому, кто после курсов решил эвакуироваться, а тому, кто дрочит это дерьмо искренне и с интересом (сложно поверить, но такое бывает).
Конечно, для решения реальных задач, вроде создания формы авторизации для очередного интернет-магазина говна, тебе эти паттерны может быть и нахуй не нужны будут (а может и нужны), но сам посуди — нахуя брать тебя, когда рядом стоит такой же сутулый вкатун, который паттерны знает.
Представляй это как фильтр, сито. Они так и говорят: «Отсеиваем кандидатов». Когда-то давным давно на собеседовании было достаточно физбазз решить, через крупную сетку фильтра было легко проскочить, ну а теперь будьте любезны, разворотом красно-чёрного дерева не отделаешься. Количество вкатунов растёт в геометрической прогрессии, соответственно рабовладельцу есть смысл выбрать самых лучших за тот же самый мелкий прайс.
Такие говнокодеры как ты, вместо уместного использования принципа Лисков, динамически определяют утиную типизацию и потом заебешься работать со всяким гавном типа:
`value.constantize.call(params: params)`,
На которое ты еще и не осилишь написать тесты.
Не можешь объяснить каждую букву , , [L], , [D], и какие конкретные подходы за ними стоят - будь любезен, милый человек, проследуй на завод. Мне трейни не нужны.
с двоеточием понятно
&:size развернется в
Proc.new {|x| x.send(:size) }
далее map сделает call этого proc на каждый элемент
Но ведь map(&Hash.new) тоже отрабатывает, значит разворачивается во что-то синтаксически корректное
тогда как map(&Array.new) уже не работает.
L - это вообще про то, что туда, где ожидается класс икс, можно всунуть его наследника игрек, и ничего не сломается.
Внимание, вопрос: зачем зубрить теорию, чтобы это понять? Что здесь такого сакрального?
Отвечаю. Затем, что при прочих равных выберут того, кто знает теорию.
Представь, что ты собрался выходить из дома, и у тебя есть 10 пар кроссовок, все новые, брэндовые и красивые, но одни вдобавок ещё и водоотталкивающие.
Пример корявенький, но суть, я думаю, ты уловил.
Программисты, а таких простых вещей не понимаете. Это вам не сложность алгоритма в О-нотации определять. Тут соображать надо.
В php есть удобная фича - возможность модифицировать значение одной переменной, вставляя в её значение имя другой переменной. Т.е.:
<?php
$name = "world";
$greeting = "Hello, $name!";
echo $greeting;
?>
Получаем:
> Hello, world!
Есть ли подобная фича в Ruby?
name = "пыпа"
greeting = "Hello, #{name}"
puts greeting # => Hello, пыпа
Работает только в двойных кавычках и ещё некоторых стринг литералах. В одинарных:
greeting = 'Hello, #{name}'
puts greeting # => Hello, #{name}
Но это тебе подсветка синтаксиса покажет
Спасибо, анон! То, что нужно. Сотни нефти!
Разбить переменную на байт-стрим и потом сделать File.open в режиме wb?
Да, интересная штука, & просто сахар для to_proc, а у хэша есть метод to_proc, который сопоставляет аргумент с ключами хэша, тем самым можно отмапить список ключей в значения одной короткой записью.
Are you a Senior CSV Developer, didn't you?
круто устроился)
Каждое первое. Ещё ни разу за 15 лет я не устроился ни на одну годную работу по собеседованию. Собеседование? Тестовое задание? В целом вакансия по объявлению? Это просто сразу нахуй. Хочется того или нет, но реальность такова, что на нормальные должности не ищут специалистов с улицы, просеивая их через фильтры собеседований и тестовых заданий. Это всегда какая-то душная ебанина или рабство за копейки.
Во все годные работы всегда вкат идёт через сарафанное радио, или как это модно называется «нетворкинг», еби его мать. Правда, я не программист, может, у вашего брата по-другому всё.
Вообще не айти.
Пионер все еще присылает бабло, но новореги кажись все.
>может, у вашего брата по-другому всё.
нет, все так как ты и описал. Нормальные годные вакансии в хороших компаниях как раз расходятся через сарафанное радио. Друг друга привел, кореш порекомендовал руководителю и т.д.
А так ты прав, по объявлению - это лютая древняя душная хуета на которую никто не идет. Так еще и несколько технических собеседований устроят + тестовое. А по факту на работе будешь старая гавно разгребать, которым пользуются 2,5 человека.
Осложнилось конечно, но вариант есть - через p2p крипту на бинансе, через карту заграничного банка, карту можно завести подогрев бабками какого-нибудь менеджера чтобы он тебе подготовил недостающие документы, обычно они сами предлагают свои услуги и на них можно выйти через чаты в телеге, но нужно физически присутсвовать в стране и самому идти в офис банка с пачкой документов.
:Jebaited:
Он был популярен в 2007-2012+- потом пришла нода, потом голанг
Да и как только все популярные фреймворки переняли фишки рельсов, руби стал нахуй никому не нужен, щас он только в муриканских стартапах юзается и то не факт и легаси говно делается.
пришла нода, потом голанг
И что дальше? Посылайте кабана нахуй и пишите на том, что по кайфу. Сами кабанами заделывайтесь
Вам про язык говорят тупицам, вы про свой говно JS и Гошана
В Rails и сейчас есть крутые решения, остальные пусть подъедают
Тушись, рельсовой. Твоё опускание до личности ярко говорит о тебе как о молодом фанбойчике, тебе не стыдно быть таким?
многократно двачую тебя.
> пришла нода, потом голанг
> Да и как только все популярные фреймворки переняли фишки рельсов, руби стал нахуй никому не нужен
Не понимаю. Почему он стал не нужен-то?
Ну переняли, ладно, но из руби-то эти фишки никуда не делись, пиши-не хочу.
посмотри на вакансии по России. Адекватных работодателей очень мало(по пальцем можно пересчитать) И из тех, которые есть, это унылые старые легаси-помойки на поддержке, которые нахер никому не сдались
Ну ищи дальше. Чем меньше конкуренции, тем лучше.
Так почему дерьмо-то? Пиздатый же язык. Чи я чего-то не понимаю? Объясните, бля, ебёнамать.
Да пиздатый пиздатый, только не нужен никому. Если успел вкатиться, то молодец, а все остальным он не нужен, кто будет шекели платить юнцам за эту хуйню?
Я может как-то неправильно формулирую вопрос, хотя вроде прямым текстом спрашиваю. Если руби такой пиздатый, то почему он вдруг стал не нужен? Ну хорошо, остальные фреймворки подтянули фишечки из рельсов, но руби-то тут причём?
До сих пор ниасилили норм конпелятор чтобы борда на рельсах выдавала по крайней мере 5 тысяч запросов в секунду, отсюда и хуйлоад идет нахуй.
Создатель руби японец, а значи анимешник, а аниме для пидарасов. Вот пидоры соскочили на новые игрушки, а старье уже никому не нужно. Тем более всяким натуралам.
Все очень просто.
Забыл проставить /s, видимо. Там про хохлов же было выше. Речь про тот фронт.
Ну тогда поясняй за серьезное нишевое программирование, хохол с галеры.
> Если руби такой пиздатый, то почему он вдруг стал не нужен?
А с чего ты взял, что он не нужен? На дваче прочитал? Чего ж тогда я новую работу только что за две недели нашёл?
Ну да. И ещё на пару собесов уже не пошёл.
Есть, перекатись в востребованный язык. Например в жабу или жабаскрипт
А когда им было хорошо-то.
Так же, как и всегда.
ЗНАКОМСТВА
Н
А
К
О
М
С
Т
В
А
Хочешь ты этого или нет, как ни крути, а это факт. Это база, культурная парадигма, в которой существует эта страна, причём буквально на всех социальных слоях.
Причём, вашему брату-программисту а этом смысле ещё охуенно повезло, достаточно лишь немного сракой пошевелить дальше, чем поиск объявлений на ХХ, и вуаля, бля.
Мониторь хх, за последние пару месяцев видел пару вакансий стажировок-оплачиваемых курсов (вроде хекслет) с последующим наймом.
двачую тебя!
В шапке ссылка на канал джуби. Неиронично в телеграме нашёл больше собесов, чем в LinkedIn, ХабрКарьере и hh вместе взятых. Хуй его знает, почему так.
джун с опытом
Кмк там фишка в том что многие вакухи постят сами непосредственно разрабы, а не херочки.
Константин.
Я ведь не зря написал сноску про Россию. Ты наверно из тех кто съебал в грузию с турцией или вообще хохол.
Почему? Курс рубля может обвалиться в любой момент, а работы на внутреннем рынке меньше и меньше будет. Остается только удаленка на буржуев.
Напротив, как был в РФ, так и остался. И с работой на руби все нормально тут, равно как и с внутренним рынком.
и тебя вылечат!
Мне что, PHP учить? Или какой язык?
Ты, блядь, в криокамере лежал что ли?
У тебя в голове довольно странные установки, которые ты к тому же преподносишь как догму.
Чад, выражаясь твоими терминами, во всём лучше неуверенного в себе лошка при прочих равных.
А ты зумер или думер? Пиздец, поехавшие реально видят вокруг себя реальность через призму форчановских мемесов. Хуже гороскопов, честное слово.
Пиздец, вакансий нет, ага.
Уже везде поставил, что работу не ищу - продолжают писать и звать в рашку.
• FDD: Figma Driven Development Никита Ратников, Evrone
• Тех. долг как им управлять? Станислав Герман, Gett Systems RU
• Sidekiq. Не ruby единым Григорий Окин, Level.Travel
27 апреля в 19:00 (СЕГОДНЯ, ЧЕРЕЗ ≈1.5 ЧАСА)
Регистрация: https://meetups.evrone.com/ruby-meetup-no17-online
НАЧАЛОСЬ
Блин, этот чувак говорит немного и по делу. Редкое качество нынешних спикеров. Кудос.
Смотря какой и где. Можно вообще html не знать и отдавать жсоны. Можно тихо пыхтеть со slim/haml+bootstrap/tailwind. От вакухи зависит, короче. Но если выучишь - лишним не будет.
нит( Вон рельсы недавно апнулись до 7 версии, сам язык развивается. так что он не мертв. Все нормально. А вот реально годных вакансий на территории РФ очень-очень мало. Пара штук.
THE LEGEND WILL NEVER DIE
Если нельзя никак, то посоветуйте нужных аддонов для VSCode, а то я тупой. Заранее благодарю.
Jetbrains продлили оплаченные подписки пользователям из РФ и РБ до октября, бесплатно.
Хз, что с триалом, но, вероятно, поезд ушел.
Если про легальный метод, то его не существует, закончился триал - иди покупай лицензию.
Раньше был метод, который обходил ограничения, и у тебя по сути был бесконечный триал(что сейчас с ним хз)
Вроде бы можно по старинке установить javaagent от друзей-китайцев и продолжать работать
Я использую
sudo apt install ruby-dev
sudo gem install solargraph
vscode extensions:
Ruby (after installation copy settings from extension page to settings.json)
VSCode Ruby
Ruby SolarGraph
Code Runner
Точно, забыл
Пока что сложно сказать, на инструмент для нубов это точно не похоже, если знаешь что и как писать то будешь работать быстрее и меньше, если не знаешь то копайлот будет подгонять мусор и баги. Судя по всему пропасть между кодером и вкатуном еще больше увеличится, порог вхождения увеличится, кроме самой машины, программирования и абстракций придется еще осваивать язык и выражения искусственного интеллекта.
Shoes кажется помер
На Python же пишут настолки, почему на Ruby нельзя?
Для Android тоже вроде можно
На линупс как-то можно было, на винду - хз
Пробовал, за последний месяц 19 собесов. Нужны опытные чуваки и даже в вакухах где написано джун\джун+ на проверку оказывается, что требуется мидл, которому хотят платить поменьше.
Пездос, чел. 19 собесов за месяц (!?) на востребованного квалифицированного специалиста, пусть и без опыта, и везде облом?
Это кек такой, или у вашего брата-программиста это нормальная ситуация?
мимо-нахуй никому не нужный хуй и то пара успешных собеседований на нахуй никому нужную вакансию с ебейшей конкуренцией
>Это кек такой, или у вашего брата-программиста это нормальная ситуация?
Нормальная. Программисты же народ пидор, народ гной. Думаешь зря большинство из нас в компы упоролись? Потому что ирл нихера не получалось вот и ушли в железяки, поэтому теперь на собесах отгрываемся. Как дедовщина в армии, типа в юности нас ебала жизнь, теперь мы ебем вкатунов.
Собес самая сложная часть работы программиста, дрочат тебя всякими обходами деревьев, а на рил работе сидишь пердишь очереным кодом, который перекладывает джсон
Что у тебя не получилось ирл с такой зарплатой? Или ты программист старого образца? Выгляни на улицу, дядь, вам скоро памятники ставить начнут. Не получилось, я хуею.
двачну этого
>>366444
> Программисты же народ пидор, народ гной.
Братишк, любая группа сосет. Если ты так не думаешь то у тебя романтизированное представление об этой группе.
> Думаешь зря большинство из нас в компы упоролис
лично я потому что мне это нравилось всегда. ктото упоролся в компы, ктото в автомобили, ктото насчет канализационных труб(без шуток - ничего плохого не вижу). многие правда ни во что не упоролись. программистов компьюетроненавистников я встречал, whatever, бывает. можно попробовать сменить работку(или область)
> что ирл нихера не получалось
моя зп очень даже ирл, в 3-10х больше чем у людей-не-программистов из тех с кем знаком
> Собес самая сложная часть работы программиста, дрочат тебя всякими обходами деревьев, а на рил работе сидишь пердишь очереным кодом, который перекладывает джсон
тут соглашусь
лично я когда собеседую то стараюсь ебать мозги человеку по минимуму, простое тестовое в худшем случае, никакого алгодроча
>моя зп очень даже ирл
Так и вижу эту надпись как эпитафию на твоей плите
Ты себя как личность характеризуешь через проф деятельность и количестве денег?
ни как через проф деятельность, ни через деньги
это было ответом на фразу "что ирл нихера не получалось"
кстати, сама по себе эта фраза отрицает субъективизм в ценностях(так как подразумевает однозначный критерий оценки), при этом ты пишешь что самооценка вполне может строиться на чем угодно
таки нужно определиться - или я могу оценивать себя по arbitary критериям или нет
если да, то почему не по баблу?
я так себя не оцениваю, но деньги это норм так или иначе - всем рекомендую
деньги мне не даются просто так, а как результат применения моих личностных качеств и именно на вокруг строится часть моего саомуважения
насчет гробов и могил, до этого мне как раз дела нет
> Ты себя как личность характеризуешь через проф деятельность и количестве денег?
Соре, брух, но это звучит как «зато я богат духовно». Деньги — это всё. Банальные вещи приходится говорить.
Я тебя не понимаю, братюнь. Скажи прямо без своих артхаусных метафор.
Задача: есть текстовая колонка в бд, её нужно заменить справочником (создать новую модель, наполнить значениями из соответствующего столбца, проставить в исходный столбец айдишники соответствующих записей из новой модели, изменить тип исходного столбца).
Для этого есть какие-то best practice, или вот как я написал - так миграцию и делать? Таблицы не очень большие, но хочется писать более-менее приличный код, а ничего лучше я не придумал и гугл молчит.
Вот эта конструкция попахивает, у тебя там и выход из итерации, и присвоение, и проверка на пустоту, присваивать переменные в теле условия всегда хуёвая практика.
Не укладываешься в 120 символов, надо переносить строки.
Касательно скобок, либо их ставят везде либо не ставят вообще, половина выражения в скобках а половина нет - такая себе экономия на символах.
По поводу длинных аргументов: https://github.com/rubocop/ruby-style-guide#no-double-indent
>Пробовал, за последний месяц 19 собесов
Ходил по офисам или всё удаленно? На каком сайте брал вакансии?
JFYI в руби принято с подчёркивания начинать имена неиспользуемых переменных. Таким образом явно указывается, что переменная не будет использована. Пример:
loop_zaloop.map { |_k, v| v.upcase }
>лично я когда собеседую то стараюсь ебать мозги человеку по минимуму
А как к тебе на собес попасть? Возьмешь двачера на работу?
Прохожу odin проджект, скоро выбирать путь: руби и рельсы или джс и нода. Только учусь, вкатываюсь.
Хочется руби выбрать, но рынок в рф какой-то тухлый судя по хх и некоторым чатам в телеге. инб4: качайся до мидла...
Совсем новеньких-то берут или руби для души, жс для работы?
Треды почитал, связей нет (пока что) и интересно всё же в нормальной кампании работать на руби.
В конце шапки телеграм-канал, там ищи по тегу #Junior
Меня уже взяли несколько раз, один из них был даже после 24 февраля.
А как прокачаться до миддла, если на работу не берут?
В миграциях голый sql, потому что если модель удалил то и миграций все переделывать надо
Ну если имел дело с рельсоподобными фреймворками, то да, проблем не должно быть. Хотя раньше например рубисты пиздец плевались, считалось что рубист который с нуля начинал намного лучше, чем бывший пыхарь, так как не приносит пехапешные практики.
Без рельсов никому нахер не всрался, а рельсы тоже уже нахер никому не всрались. Ну ладно, вру, в штатах и всяких европках можешь найти работу, в остальном мире - забудь.
> в остальном мире - забудь.
В смысле, в каком остальном? Кого ебёт остальной мир? Нищие помойки не нужны.
каклошвайн, спок. Иди у польского барина выпрашивай пайку и понаглее.
Руби не сильно популярный язык, даже в японии. (но там популярнее чем везде)
Джс, джавы и тп всегда более популярны, но и прям обскурным его тоже не назвать. Просто в рф не так много вакансий. (но и не мало, кстати)
Хреново искал. У тебя в devise omniauthable встроен из коробки. Подключаешь гем Omniauth и вперед:
https://github.com/omniauth/omniauth/wiki/List-of-Strategies
То есть, руби обладает возможностями любого популярного языка, и при этом нахуй никому не нужен? Но... Почему?
Питон преподают в вузах и шарагах, а к руби приходят самостоятельно, для этого требуется узнать о нем, заинтересоваться, изучить, это совсем другой уровень мотивации, это проявление личностных качеств человека, который в поисках более совершенного инструмента изучает новые технологии, а таких в принципе меньшинство даже среди профессионалов.
По сравнению с пхп или питоном значительно совершеннее, чистый и приятный синтаксис, упорядоченная, интуитивно понятная стандартная библиотека, в аналогии с обувью руби не сотрет тебе ногу в кровь, а так, кому-то и в лаптях норм, кто ж спорит.
писать только на том, что по кайфу, кабана слать нахуй
Пусть слепней на свой ПХП нанимает и пусть они лопатят
Какого хуя сюда прётесь со своим питоном? Идите в свою ветку
Это термин такой, балбес.
Пыха заточена в очень похожем на рубивэй стиле программирования: __get __set __invok __call, method_exists и др. вещи в пыхе типа $obj->$methodName()
Да это понятно, но противопоставлять пыху и руби как-то странно - это два брата близнеца.
Да всем давно известно что выпускники программистских пту распределяются так: часть виабушников идет в руби, а другая часть идет в пыху. Между ними нет никаких принципиальных различий кроме отношения к аниме.
>>2376675 (OP)
>>2376675 (OP)
ПРОИЗОШЛО ПЕРЕКАТЫВАНИЕ
https://2ch.hk/pr/res/2376675.html (М)
https://2ch.hk/pr/res/2376675.html (М)
https://2ch.hk/pr/res/2376675.html (М)
ПРОИЗОШЛО ПЕРЕКАТЫВАНИЕ
>>2376675 (OP)
>>2376675 (OP)
>>2376675 (OP)
>>2376675 (OP) (OP)
>>2376675 (OP) (OP)
ПРОИЗОШЛО ПЕРЕКАТЫВАНИЕ
https://2ch.hk/pr/res/2376675.html (М)
https://2ch.hk/pr/res/2376675.html (М)
https://2ch.hk/pr/res/2376675.html (М)
ПРОИЗОШЛО ПЕРЕКАТЫВАНИЕ
>>2376675 (OP) (OP)
>>2376675 (OP) (OP)
>>2376675 (OP) (OP)
>>376682
Блядь, тег забыл.
Вот нормальный: >>2376685 (OP)
https://2ch.hk/pr/res/2376685.html (М)
Ты перепутал C# два раза в предложении.
Это копия, сохраненная 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.