ИЗУЧЕНИЕ ЯЗЫКА 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: Какой gem посмотреть, чтобы понять, как писать код? A: Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping. Еще можешь полистать на гитхабе гемы с нарастающей популярностью (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=ruby
>>2284647 (OP) > 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
Кто юзает dry-rb? Какие модули используете? Чет мнения абсолютно неоднозначные. Но как по мне высокий уровень абстракции - это же ахуенно. Кто-то поел говна уже с этой либой? Пилите кул-стори. Хули тред мертвый, не делайте вид шо работаете.
>>2284201 → У как тебя зацепило то, все продолжаешь набрасывать?) >>2284115 → > Там можно навести курсор на вызов метода, определённого в другом файле или в геме, и почитать, что он делает? Да умеет, go to method по опыту лучше работает чем в vscode/vim, но если упарываешся всякими define_method это нигде нормально работать не будет. > Немножко доебало в таких случаях вручную копаться, даже немного завидую статикопидорам. Ну и кстати в последних версиях завезли поддержку для rbs определений
>>2287110 В бивасе отруби. Если нельзя, то просто поставь блоатваре от невидии и выруби ее через nvidia-config. Пользуйся встройкой от интел, батарейка будет целее.
>>2287110 Ноут на макос, пека на линуксе, ни там ни там с установкой/обновлением никогда проблем не было. > Надо бы на линух переходить, но у меня ноутпук с карточкой от нвидии, тяжело... Так накати проприетарный зонддрайвер он стабильный.
Кстати не ставь ubuntu, там сейчас gnome из коробки устанавливается, крайне кривая хуйня, скачай лучше kubuntu/kde neon
>>2287154 > Так накати проприетарный зонддрайвер он стабильный. Я скачал 500 мегабайт какой-то хуйни от нвидии (указав на сайте свою модель карты и ОС), запустил - оно мне сказало, что не поддерживает.
Я на нетбуке и виртуалках кубунту гонял, мне понравилась, в целом. Убунту под гномом даже и не трогал, кажется.
На встройку где-то в системе пробовал переключать - не включалась, результат один - дергающееся туда-сюда изображение.
>>2286451 Почему хуево-то? По мне высокий уровень абстракции - это же ахуенно. Мне больше нравится решать задачи бизнеса, а не с байтами ебаться. Тут уже вопрос может рельсы не твое.
>>2286301 Мастхев там только монады и валидация. Монады дают тебе контрол флоу, и с ними ты можешь нормально писать что-то вроде "если не можешь создавать заказы, то иди нахуй", а не через рельсовые костыли. Валидация же просто нормальный способ делать валидацию юзер инпута, а не засирать этим модели, делая их неюзабельными и привязанными к бизнес-логике. Остальной dry-rb стэк на 90% состоит либо из антипаттернов, либо из того, что ты можешь сам сделать за 5 минут под нужды своего приложения.
>>2287931 >А как там это реализовано Как и должно быть - создаешь отдельный класс и прописываешь в нем свои валидации, потом используешь где хочешь > почему в Rails это делать плохо? Потому что это попытка запихнуть сами данные и бизнес-логику для валидации этих данных в одно место. Ломается и превращается в костыли в тот же момент, когда тебе нужно добавить две разных точки редактирования/создания этих данных с чуть отличающейся логикой. Например регистрация и редактирование профиля.
>>2288030 >Например регистрация и редактирование профиля. А что там ломается-то? Вроде только upsert и update_all скипает валидации, потому что моделей как таковых не создается и об этом написано в документации.
>>2288103 Операцию сохранения данных в базу не должно ебать, кто эти данные сохраняет и как их провалидировать или нужна ли валидация вообще, это целиком и полностью отдельная задача бизнес-логики.
>>2288154 Так она и находится на стороне логики - внутри модели, в самой операции сохранения только констрейнты на таблице могут что-то возразить относительно сохраняемых данных.
>>2288243 С точки зрения приложения, методы User::create или User#update - это исключительно операции над данными, не сырым же sql оно будет эти данные вставлять. Но если в твоей модели лежат еще и бизнес-правила вроде "какие данные нужно предоставить при регистрации", то эти методы превращаются не в "сохранить/обновить", а в "зарегистрироваться/обновить регистрацию", и чем дальше в лес, тем костыльнее.
>>2287616 Ну вот я на транзакции присматриваюсь. Выглядит приятно. Типа открываешь файл, в первых строчках расписан весь флоу, а дальше уже ковыряй конкретные шаги, если надо.
Я не об этом. Язык прекрасный со всех сторон, но довольно обскурный и непопулярный, в продакшене почти отсутствует. Захочешь за программизм денег получать, придётся страдать от низкоуровневой хуеты, что после няшного комфортного руби полный пиздец.
>>2289022 Транзакции это полное говно, типичный исход попытки в руби сделать DSL-месиво вместо прямолинейного API, и даже сами разработчики это признают и гем больше мейнтейнить не собираются. Если ты хочешь, чтобы у тебя сверху файла был написан весь флоу, то просто вынеси эти шаги в приватные методы и вызывай их из основного, пиздец сложно, да? Явно без DSL не обойтись для такой невероятной задачи.
>>2292603 Разбивки по грейдам нет. В питоне очередь вкатунцов на позицию джуна, в эликсире 2.5 разработчика, которым скучно стало после 6 лет коммерческого опыта. Так миддлы и помидоры на всех стеках получают +- одну вилку.
>>2293525 > мечта же просто не? А ты что-нибудь когда-нибудь компилировал? Хотя, у них режим интерпретации в стадии тестирования, обещает быть вкусным.
Язык мне понравился, только как вкатуну работу найти, особенно с плохим английским. Мда, очень жаль, конечно. Придется в жс врываться, на нем вакансий на порядок больше(
Рельсы ботай, вполне востребовано, ну и сам рубин в любом случае приятнее жс и пхп. Голый жс тоже нахуй никому не нужен, только в приложении к фреймворкам, хтмл и цсс.
Хотя так везде, хоть кресты, хоть сисярп, хоть жава. Переносимая голая сишечка востребована только в микроконтроллерах и драйверах. Всё остальное - надо знать конкретный фреймворк, конкретный компилятор и конкретную ОС
>>2293593 Да про фреймворки понятно, только вот на рельсах 218 вакансий в дс по одноименному запросу, а по react developer 2649 на хх(типа а где еще искать? линкедин знаю, в чатах тг, ну там тож не густо на самом деле) >хтмл и цсс База в вебе, знать надо. Хотя мастерство в верстке дело тоже нелегкое.
Вакансий более чем достаточно, а в реакте будет безумная конкуренция - что тебе не так-то? Я бы понял бугурт, если бы на рельсы было 1,5 вакансии на весь город на уникального гения с опытом работы в 20+ лет. Это же не так.
> С чего ты взял, что конпелятор - это плюс, а не минус?
Скорость.
> Бум интерпретируемых языков произошел не просто так.
Потому что компы стали настолько мощными и дешёвыми, что даже интерпретируемое говно крутится с сорт оф приемлемой скоростью и не надо вообще писать сложный компилятор. Электрон возьми - оно вообще з собой хромиум таскает и в нём крутит интерфейс приложеньки. Похуй, современные пекарни прожуют как-нибудь и такую нагрузку. То, что это мудизм и пидорство само по себе, всем похуй.
Я от безысходности когда контора полезла в телефонию ,а ебучий UTM5 её не умел считать так, как требовалось, написал на чистом рубине биллинг за 2 недели. Вообще без фреймворков. Приходит запрос, дёргается mySQL, выплёвывается HTML. Эта хуета реально считала деньги, которые потом выставлялись клиентам. Потом на зеленоградскую "гидру" заменили этот колхоз.
БД уже есть написанные на сях и вылизанные вдоль и поперёк, зачем мне велосипеды изобретать?
А без "дроча на скорость" у нас скоро каждая приложенька будет с собой экземпляр ОС таскать для виртуалки. Ну удобно же, и под жс выросло дохуя обезьян умеющих в вёрстку.
Хочу уже блядь, чтобы полупроводниковые пидоры упёрлись в какую-то физику и дальше ускорять классические CPU стало бы тупо невозможно. Может тогда к нормальному кодингу люди вернутся.
Иииии.... а что плохого в компиляторе, если он будет нормально написан? Твой любимый язык останется, скорость вырастет. Где-то это даст реальные преимущества. Зачем гордо отказываться от новых возможностей?
>>2293694 >Может тогда к нормальному кодингу люди вернутся. К какому это - нормальному? Программирование всегда было пляской костылями на граблях, руби в этом плане первый по-человечески спроектированный язык, спасибо за это товарищу Мацумото.
Руби охуенен да. Самый няшный синтаксис без скобачек, отсутствие мусорного кода (aka c++-style, когда объявления и инициализации занимают больше места, чем алгоритм), ООП каким он должен быть.
>>2293814 > руби в этом плане первый по-человечески спроектированный язык, сдетектили долбаеба > Программирование ты свои круды программированием называешь?
>>2293882 > отсутствие мусорного кода (aka c++-style, когда объявления и инициализации занимают больше места, чем алгоритм) в замен на слоупочность, и лютый жор памяти
щас бы скриптовые недоязыки сравнивать с системными япами кароче еще одного додика сдетектил
Мне мусорный код глаза режет и морально мерзко расписывать кококонпелятору очевидные вещи. Не, если за зарплату можно понять, но для себя - защеканство и куколдизм.
>>2293672 >То, что это мудизм и пидорство само по себе, всем похуй. Каким образом? Интерпретируемые языки убирают из процесса работы бессмысленное ублажение конпелятора и позволяют сфокусироваться на написании бизнес-логики, ради которой и пишется любая программа, этим их популярность и обусловлена прежде всего.
Это понятно, но не до такой же степени, чтобы чмониум таскать за каждой формочкой. Тем более жээс далеко не самый комфортный и "человеческий" ЯП. Уровень всяких луа, но далеко не пиздона и руби.
>>2293918 > бессмысленное ублажение конпелятора в вебе да - бессмысленное > любая программа проекты на рельсах - не любая программа > этим их популярность и обусловлена прежде всего. поплярность обусловлена тем что спрос на написание веб приложений куда выше, чем написание софта где необходимо использовать компилируемые языки. базы данных, http-сервера, криптография и т.д. уже давно написаны. нет потребности переписывать все снова и снова. А вот проекты для какого-нибудь буржуйского бизнеса надо всегда писать с нуля.
> А вот проекты для какого-нибудь буржуйского бизнеса надо всегда писать с нуля.
Но пишутся они почему-то на жабе.
Кресты остались для виндовых игр, по сути. Классическая гуйня вся на сисярп уехала (странно, что не VB.NET - внутри абсолютно то же самое, а синтаксис куда проще), линуксовые консоль-пердоль на чистой сишечке пишется.
Кстати никогда не понимал, какого хуя в крестах нельзя сделать, чтобы при завершении функции автоматом убивались и освобождались любые переменные и память, которые в ней же и выделялись. Просто не могу представить ситуацию, где имеет смысл всё это НЕ подчищать.
>>2293953 >в вебе да - бессмысленное Везде бессмысленное, компилятор не предотвращает ошибки, их предотвращают тесты бизнес-логики, которые делают любые проверки компилятора полностью вторичными и ненужными.
>>2293953 >проекты на рельсах - не любая программа Назови-ка одну программу в мире, которая писалась не для удовлетворения нужд конечного пользователя, а для хуй знает чего. Хеллоу-ворлд кстати не подойдет, потому что даже он пишется для нужд конечного пользователя, ака для обучающегося программированию вкатуна.
>>2293995 все что выделено на стеке так и очищается. все что выделено на хипе - как ты поймешь что надо убивать? только считая указатели на выделеную память, если ни что не указывает на эту память - то эту память надо чистить. Так в целом и работает ГЦ. Можно реализовать ГЦ в ++, но это уже дополнительный рантайм. зачем его в ++ делать?
>>2294009 >>2294006 > Везде бессмысленное, компилятор не предотвращает ошибки, > Назови-ка одну программу в мире, которая писалась не для удовлетворения нужд конечного пользователя это понятно, но нужды бывают разные. есть веб-приложение смысл которого распарсить хттп запрос, вызвать нужный контроллер который обработает данные запроса, постучит в бд там что-то поделает, отдаст респонз. Тут какбы и нахер не всралось байтоебство, ручная работа с памятью и т. д. У тебя основное время обработки хттп запроса приходится на запросы в бд. А есть допустим та же бд, там нужды - быстрые операции с большим объемом данных, работа с дисками, кешами, ручное выделение/освобождение памяти. Оверхед от динамической типизации, GC, GIL не нужен, потому что работать все медленно будет.
компилятор и не предотвращает ошибки, никто тебе это и не доказывает. Он просто транслирует твою программу в инструкции которые понимает процессор. программы на компилируемых языках работают быстрее потому что нет промежуточного слоя абстрации. Да там все равно есть какой-то рантайм. В си например он минимальный.
Что означает утиная типизация в Ruby? Если твой товарищ выглядит как женщина, говорит как женщина, имеет жопу как у женщины, то он - (трансгендерная) женщина, которую можно ебать.
>>2293875 >У нас есть Hotwire, будем делать как по кайфу, а рыночек и кабан подождут Аминь, а во время отличное от написания кода можно будет пойти в яндекс еду, надо же как-то на еду зарабатывать.
Сап рубач, через поиск вижу, что только тут обсуждается Crystal, у меня по нему вопрос. Попытался использовать enum в качестве списка доступных статусов объекта и столкнулся с тем, что при обращении к нему получается не числовое значение, а строка. Чтобы получить число, надо вызывать #value. Это сломало моё представление о том, как ими пользуются. Если я хотел бы хранить статусы объекта списком и при обращении к ним получать сразу значение, мне надо использовать константы?
>>2294586 Ну это смотря как имплементировать. Но вообще, если по солиду и инкапсулированно, то так и будет, твой товарищ объявляет метод ебать() и никому не рассказывает, что там.
Зачем вообще нужен Ruby в 2022 году? Для простых сайтов есть PHP, а любые сложные проекты строятся на микросервисах, для которых Rails полностью бесполезен.
>>2295615 > а любые сложные проекты строятся на микросервисах Только если ты не могущий в архитектурные решения дебил. 90% проектов, использующих микросервисы, эта архитектура не нужна абсолютно и только вредит, а взята была потому что на старте проекта маняархитектору стукнули в голову расхайпленные микросервисы и он не пошевелил даже одной извилиной, чтобы попытаться подумать, а подойдут ли они тут, и не лучше ли сделать стандартный монолит, с которым в миллион раз проще работать.
>>2295788 Да кому ты пиздишь, фанбой ебаный. Твои рельсы нужны только лишь для одного, чтоб за неделю захуячили продукт и отбили очередной раунд инвестиций, когда уже продукт станет продуктом, тогда уже и будут думать над архитектурой, скоростью и остальной залупой.
>>2295734 >просто берёшь гем и.... Как же это заебало, куча гемов разной степени всратости, как ЖС, на половину их них положили 5 лет назад, на другую 8 и тупая привычка на каждую хуйню делать гем. Нужен пагинатор вместо того чтобы писать в lib класс на 30 строк ставишь хуимари. Нужно логирование изменений ставишь очередное хуйгидзе, вместо того чтобы добавить одну колонку и пару строк в модели. И так на каждую хуйню, а потом не знаешь как до 3 обновить чтобы всё работало. Две недели назад обновлялся
>>2295839 >Как же это заебало, куча гемов разной степени всратости Парк самописных велосипедов по-твоему проще перенести чем популярный гем? Представь что что-то из твоей папки lib отъебнуло, адекватных тестов нет а разраб свалил в неизвестном направлении еще пару лет назад, вот это охуенное интересное занятие, не то что свежую версию гема накатить.
>>2295837 >чтоб за неделю захуячили продукт и отбили очередной раунд инвестиций Реальный отбивающий инвестиции продукт обычно разрабатывается и улучшается годами, прежде чем он принесет хоть копейку профита, ты вообще понятия не имеешь, о чем говоришь.
>>2296012 Так и устроено, что только абсолютно необучаемый дебил или человек без малейшей капли опыта разработки может на полном серьезе говорить что-то вроде "ну начнем так, говна накидаем, потом перепишем на нормальный стек полностью", потому что даже один год работы на реальном проекте тебе даст отличное представление о том, что это фантазия без связи с реальностью, переписывание даже года работы с нуля - это пиздец какие затраты по времени, и учти еще, что во время такого переписывания бизнес должен стоять на месте, иначе ты за старым проектом не угонишься. И почти в любой индустрии, кроме какой-нибудь гос. бюрократии, стоять на месте даже месяц-два - это проебать бизнес конкурентам.
>>2295896 Да, у нас в приватном репозитории уже 6 гемов форкнутых. Самое забавное что иной раз в ПР уже есть решение проблемы, но автору впадлу даже это смержить и висит эта хуйня месяцами. Так что всё что ты описал работает с точностью до наоборот, самописные костыли работают как часы и исправляются походу дела, а эти крутые гемы висят нерабочими годами и всём похуй.
>>2296044 С популярными гемами обычно проблем таких нет, они кое-как поддерживаются и между версиями рельс нормально переезжают. Какое-нибудь ноунейм говно - да, стоит подумать, прежде чем добавлять, но обычно это решается написанием протестированной обертки вокруг гема, изолирующей нужные методы, чтобы и контроль был над имплементацией, и не пришлось все самому писать. Но тут еще возникает специфика рельсовых гемов, которые очень часто не считают зазорным тупо заманкипатчить базовые классы на похуй, зачем какие-то изолированные интерфейсы выдумывать.
>>2296043 Вот и петушарий кудахтерный заговорил, в след раз когда я приду и скажу тебе накидать очередное говно, чтоб я показал его инвесторам, ты сильно не разбухай, а делай что велено, а то зп не получишь
>>2296044 >в ПР уже есть решение проблемы, но автору впадлу даже это смержить Вот именно, даже заброшенные гемы можно завести, там либо пулл реквест с патчем, либо в ишью перетерли уже и есть форк или аналог если у гема востребованный функционал. Так что хз о чем тут говорить, не писать никакого кода и подключить гем всегда лучше чем писать самому, даже если это всего сотня строк.
>>2295839 > >просто берёшь гем и.... > Нужен пагинатор вместо того чтобы писать в lib класс на 30 строк ставишь хуимари. Нужно логирование изменений ставишь очередное хуйгидзе, вместо того чтобы добавить одну колонку и пару строк в модели. Так перепиши
>>2295896 потом у тебя проект с гемфайлом на миллиард строк, половина гемов еще тянет хуй пойми какие зависимости. Обновляешься, видишь пачка гемов не ставится, смотришь первый отвалившийся гем "залупатор228", название ни о чем не говорит, лезеш в гугол смотреть че за гем, находишь линг на гитхабе, последний коммит 20 лет назад, в дескрипшине надпись "автор сдох от рака мошонки". Гем все что делает, отправляет по хттп на конфигурируемый ендпоинт какой-то пейлоад.
Внезапно решил на ваших рельсах пописать. Ну так чисто по приколу. Посмотрел всякие ютубы, медиумы и увидел одну интересную вещь: большинство челов пишут код во всяких вимах, емаксах, сублаймах и т.д, а это ведь простые блокноты, к которым по дефолту даже автодоп не прекручен. Правильно ли я понимаю, что это вызвано тем, что рельсы полностью работают рефлектычах? Все с этим просто мирятся чи шо? В джаве (спринге) же то же самое, но там абсолютно все сидят в иде, которые предиктят рефлект.
Короче, как комфортнее писать рельсовый код? Нихуя не подсвечивается, ховеров нет, приходится кучу говна в башке держать и сидеть с двумя браузерами, чтобы вкладки доки не терять при необходимости потестить новую вьюху.
С гемами уебался. В рубине даже банальный mysql только гемами сделан, ну или пердоль сам всё это с нуля на уровне сети. Попытался перенести программку на древний сервак с протухшим центосом. Бинарно перенести нужный гем низзя, потому что пердоликс. Пробовал ессна, валится с segfault. Собраться оно не может, потому что всё окружение для сборки протухло. Приехали...
Спасибо, блядь, хоть регулярки и работу с файлами в гемы не вынесли.
Рельсы выглядят так, как будто их писал древний дед-жабист. От руби там только синтаксис, и то не везде. На просто рубине ТАК писать никто не будет в своём уме.
>>2296607 проверить четность числа можно делением с остатком на 2 т е сделать что-то типа puts '#{x} is odd' if x % 2 != 0. Если остаток равен 1 - то число нечетное, если 0 - четное. На пике какой-то сверхразум додумался в жаваскрипте сделать либу для этого. и еще 59лямов таких же сверхразумов скачали ее, и юзают в своих проектах.
>>2296789 >На пике какой-то сверхразум додумался в жаваскрипте сделать либу для этого. В этой либе лежит одна функция. В руби вон вообще такую функцию сделали частью стандартной библиотеки, вот же дебилы, не знают, что можно просто на два поделить!
> ни в одном языке не будут делать работу с mysql частью стандартной библиотеки
Схуя? Скриптовая чушь типа рубина в основном с SQL и работает на практике. Я говорю, давайте ещё file.open в гемы вынесем, а сам рубин у нас как нескучный калькулятор будет только.
>>2296824 c SQL а не mysql. у тебя кроме mysql есть еще хер знает сколько баз, который поддерживают SQL, либо частично поддерживают. У каждой из них есть еще свои фичи помимо описываемых стандартом sql. А еще у всех бд разный сетевой протокол, по которому ты запросики свои передаешь и получаешь ответ. и ты что предлагаешь все это впихнуть в стандартную библиотеку, и каждый раз когда в каком-нибудь хуйSQL добавится новая фича апдейтить сам руби?
>>2296814 сделали и сделали, пользуйся на здоровье. тут же никто не спорит о том как удобнее написать. тут проблема в том что 59 миллионов горе-"программистов" 100% из них на руби бекэнды пишут не ебут как определить четность числа.
>>2296918 Во-первых факт использования isOdd или odd? никак не говорит о том, что человек не в курсе, как определять четность, абсолютно дебильный аргумент. Во-вторых, количество установок - это не количество программистов, потому что оно в том числе учитывает прокси-установки, одна популярная либа притянет себе эту is-odd и все пользователи этой либы тоже будут считаться как установившие is-odd.
>>2296942 > odd? да юзай сколько хочешь, заебал. это синтаксический сахар рубей, ничего против не имею. Но если ты скачиваешь и реквайришь библиотеку чтобы определить четность числа, тут соре - программирование не твое. > никак не говорит о том, что человек не в курсе, как определять четность ты хочешь сказать что знал, но вместо того чтобы просто 1 строчкой кода это сделать, или взять и самому заимплементить этот метод он полез в тырнет искать библиотеку? ну тогда он еще тупее чем я думал. > Во-вторых, количество установок - это не количество программистов да похуй, сам факт что библеотека довольно популярна
>>2296976 >если ты скачиваешь и реквайришь библиотеку чтобы определить четность числа, тут соре - программирование не твое. >ты хочешь сказать что знал, но вместо того чтобы просто 1 строчкой кода это сделать, или взять и самому заимплементить этот метод он полез в тырнет искать библиотеку Так и запишем, что утилити либы скачивать нельзя, если они "сликом простые", а достаточный уровень "простоты" либы конечно же определяется лично шизиком с мочана. Так что в следующий раз, перед тем как скачивать либу, обязательно проконсультируйтесь с ним, вдруг она слишком простая, и вам нужно имплементацию функций из этой либы писать ручками, иначе он вас запишет в непрограммисты.
Не понимаю этого баребуха на ровном месте, в руби одна из самых богатых стандартных библиотек. Не нравится что на проекте используется гем, ну так перепиши — всякая пагинация, хлебная крошки и подробная херня действительно очень просто запиливается на рельсах(буквально за 30 минут).
>>2296998 ой блядь, да делай что хочешь, только если попадешься работать со мной в одной команде, я то тебя узнаю по уебским либам добавленым в проект, а ты меня нет. Я насру тебе в тумбочку или в портфель, и не один раз.
>>2297221 Ну чисто концептуально - зачем делать бойлерплейт на каждом проекте, если можно аутсорсить всё разрабам одного гема и договориться на нём? Действительно, не понимаю будапешта. Devise вон есть - и плохо, что ли, что это стандарт в разработке на RoR, и все его либо знают, либо не ленятся выучить, зная, что пригодится везде?
>>2297457 > Ну чисто концептуально - зачем делать бойлерплейт на каждом проекте, если можно аутсорсить всё разрабам одного гема и договориться на нём? KISS, если нужен базовый функционал, то зачем тянуть ещё один гем, который хер знает как внутри устроен, потом оказывается что разрабы нахуевертили и тот же kaminari в 40 раз! медленнее и памяти жрет в 36 раз больше чем альтернатива (pagy) Пока не было pagy, никто естественно об этом не задумывался (ну все же используют, значит норм) > Действительно, не понимаю будапешта. Devise вон есть - и плохо, что ли, что это стандарт в разработке на RoR, и все его либо знают, либо не ленятся выучить, зная что пригодится везде? Проблема в том что его именно надо учить, что это огромный комбайн который умеет все, но настраивать его заебешся, куча магии внутри, при этом есть альтернатива в виде относительно простого sorcery, который в 99% закроет все потребности.
Ну то есть я больше о том что надо несколько раз подумать прежде чем тянуть новый гем в проект, а если уж тянуть то что-то попроще, потому что потом поддерживать это все заебешся.
Сразу вспоминается как я с active_admin ебался, кому-то когда-то пришла гениальная идея, что мол раз есть админка то и нужен гем для админки, а потом дают тебе казалось такую простую задачу на день, а ты ебешься три дня, потому что dsl, можно, стильно, молодежно без гема проще запилить чем с ним
>>2297496 Ну, если нужного функционала немного какая-нибудь обёртка над каким-нибудь АПИ с оверхедом, то и правда бывает проще почитать сурцы гема, вдохновиться и взять только нужное, заодно твикнуть под себя. Но это если для себя делаешь, а на работе-то время не своё, а кабанское - тимлид скажет настраивать девайз, буду настраивать девайз пять часов, мне-то чо.
>>2297521 Что не так? Современная вебня тормозит только из-за вагона скриптов для превращения JSON в HTML. Перестаешь выебываться и шлешь сразу HTML — ничего не тормозит.
>>2297867 Ты со мной в игру слов собрался играть? Компы (браузеры) рендерят отображаемую пользователю страницу из HTML, если страница большая (длинная, много текста, таблиц и картинок), это будет работать медленнее и это норма. Сервер должен рендерить HTML из данных, которые могут быть в JSON, в SQL, в NoSQL, хоть в жопе у чёрта, если страница НЕ содержит сотни текста, таблиц и картинок и тормозит просто потому что кто-то хочет перенести всю работу на клиент, то это говно и должно быть уничтожено.
>>2297561>>2297967 Абсолютно дебильный беспруфный кукарек, фронт тормозит по абсолютно тем же причинам, по которым может тормозить любая программа(в основном говнокод). В самой концепции SPA нет ничего такого, что делало бы ее медленной по умолчанию, наоборот по такой же диванной логике, как у тебя, быстрее должно быть не ходить на сервер за каждым пуком html'а, а получать чистые данные и переводить их в html уже на клиенте.
>>2298337 >быстрее должно быть не ходить на сервер за каждым пуком html'а, а получать чистые данные и переводить их в html уже на клиенте Передать код, запускать программу в однопоточной вкладке браузера, которая будет запрашивать данные, из которых потом будет собирать разметку - это должно быть быстрее чем отобразить готовый кусок текста?
Какой-то новый уровень троллинга тупостью, не иначе.
>>2297561 >Современная вебня тормозит только из-за вагона скриптов для превращения JSON в HTML Вагон чанкуется, лениво грузится и кешируется >Перестаешь выебываться и шлешь сразу HTML — ничего не тормозит. Бендвиз не треснет? Как такое будет масштабироваться? И чем в вакууме ожидание юзера со слабым железом хуже ожидания юзера со слабым интернетом? >>2298259 Двигаться в сторону крутящих дата атрибуты велосипедов? Какой майндсет должен быть у разработчика, чтобы впихнуть в экзампл апп своей передовой либы иннерХТМЛ? Это получается приемлемой практикой бай дизайн? И секьюрится этот минимализм будет парой слоёв санитайзеров и валидаторов? Пока убиваемый SPA xss-proof бай дизайн?
>>2298369 >Передать код, запускать программу в однопоточной вкладке браузера, которая будет запрашивать данные, из которых потом будет собирать разметку - это должно быть быстрее чем отобразить готовый кусок текста? Шизик, все, что ты пишешь, применимо и к гонянию html, они так же все работают в однопоточной вкладке, требуют кода(не магией же ты их собрался гонять?), требуют запрашивания данных и так далее так далее. Ты пытаешься заниматься классической диванной оптимизацией в вакууме без единой реальной метрики. Факты же таковы, что на реакте и других SPA-фреймворках прекрасно пишутся производительные приложения, которыми ты пользуешься каждый день, так что говорить как ты говоришь, что "все SPA-сайты обязаны лагать, они же SPA, а не гоняют html по сокетам" может только полнейший дурачок, игнорирующий реальность.
Современный фронт на интерпретируемом говне, оно по определению тормозное. Вообще текстовый хтмл говно, необходимости в этом никакой, никто хтмл любимого сайта не изучает.
>>2298417 >Современный фронт на интерпретируемом говне, оно по определению тормозное Тормозное по сравнению с чем, дебил? И что значит "тормозное", расчет хуйни в вакууме занимает 0.00002мс вместо 0.00001? Жопоскрипт и его движки - это вообще самый выдроченный на производительность язык среди динамических и ты в жизни не ощутишь реальных просадок производительности, вызванных именно языком, а не говнокодом на нем.
>>2298441 И? Ты думаешь, что если говнокод на жопоскрипте заменить на такой же говнокод на си, то все сразу полетит как истребитель и все проблемы с производительностью исчезнут? Вот же дебилы не знают, что программы на си оптимизаций не требуют, а просто быстро работают и все, хоть как их напиши.
>>2298437 Лучше расскажи как ты как ты куски хтмл гоняешь по сети чтобы обновить количество лайков под картинкой. Навороченные таблицы с фильтрами, сортировками, группировками, кстати это первое что хотят кобанчики.
>>2298446 Программа на Си написана пряморукими программистами с пониманием оптимизаций и работает на мощном сервере. Программы на жопоскрипте собраны послекурсовыми вкатунами из is-odd и faker даже без мыслей о том, что ресурсы надо бы экономить, и работают на джва ядра джва гига пластиковом мусоре.
>>2298455 >Программа на Си написана пряморукими программистами с пониманием оптимизаций и работает на мощном сервере. Фантазер, никогда на сях не писавший, ты? Средняя программа на си написана криворукими говнокодерами-олимпиадниками, которые даже переменные называть не умеют нормально, и если это говно используется в качестве основного языка в проекте, а не для микровставки, обернутой в питон, то там начинается такой пиздец, что никакой жопоскрипт-макаке и не снился.
>>2298450 >чтобы обновить количество лайков под картинкой Если я обновляю только количество лайков, то мне нужно пригнать на фронт только число. Problem?
>>2298473 Нет конечно, еще число дизлайков и последний коммент. Под картинкой конечно же динамически обновляемый чат. А еще все картинки с обсуждениями представляют собой виртуальный список, который незаметно загружается при прокрутке.
Рельсач, как у тебя на работе определяется срок выполнения работы? Ну вот типа пришла задача, кто оценивает ее сроки? И если эти сроки проебаны ну например в 3 раза, что в таких ситуациях происходит? Кого-то ебут, если да кого? И как лично ты действуешь в подобных ситуациях? Просто с покер-фейсом говришь ну а хули?
>>2296476 >Так перепиши Частично так и сделали, вместо пару тупых гемов написали пару классов, пару штук заменили на другие гемы, ну и еще форкнули еще один гем себе в репозиторий, переписали пару строк и в 3 версии рубей все заработало. Больше всего пришлось поебаться с генератором эксельки и пдф, там были какие-то васянские умершие гемы и пришлось код переписывать под другие гемы. Это джаваскриптизерство какое-то
Короче я пришел к выводу что нужно использовать минимум сторонних решений, если гем можно заменить простеньким классом, то нужно лепить свое и не ебать мозг, чем меньше магии делает сторонний гем тем лучше и постоянно обновляться.
>>2299052 Дурачок, я просто пытаюсь тебе указать, что ты во-первых сравниваешь несуществующее с существующим(где там асемблер в браузере, много уже на нем сайтов написал?), и соответственно у тебя нет ни единой реально метрики, чтобы подкрепить свою шизу, т.е по сути ты просто пердишь в лужу и пустословишь "бля а вот зделоть бы все хорошо и было бы заебись, а вот сейчас мне не нравится как зделоли", а во-вторых делаешь полностью необоснованное предположение, что уж если говнокод скомпилить в асемблер, а не интерпретировать, то он по-любому перестанет быть говнокодом, станет работать как часы и весить три килобайта.
Не могу понять как реализовать общую архитектуру приложения. Есть задачка ходить на парочку сайтов и слушать поступления данных на них (цены на акции) а потом отображать всем пользователям Как?
Кстати есть ли какая нибудь книженция по таким общим архитектурно паттернам или надо писать 10 твиттеров и опыт сам набьется?
>Я тут делал одно тестовое задание на Руби, вот буквально — прототип накидать. Остался в полном недоумении, зачем в 2022 году это использовать.
>Гемов мало, по сравнению с node.js — просто смехотворно. Даже самые популярные документированы исключительно плохо. А учитывая возможность расширять синтаксис, которой активно пользуются всякие фреймворки, программирование превращается в какую-то череду магических заклинаний — там подсмотрел один кусочек тайного знания, тут другой, всё в месте вроде б как-то пыхтит (правда, совершенно непонятно, как). Шаг влево-шаг право — и всё превращается в тыкву.
>>2301281 Воистину, в современном айти важно не то, что ты делаешь на самом деле, а то, что ты сам о себе говоришь. То есть современный программист должен быть таким "самим себе маркетологом-продажником".
>>2295769 новые версии выходят, что рубей, что рельсов. Что касается вакансий: их ничтожно мало (берем только РФ). Крупных компаний, кто использует руби можно посчитать по пальцам одной руки. И скорее всего там древний проект, который нахер никому не нужен. Так что, да - он по факту умер.
>>2295624 >Хочу выучить руби Лучше не стоит, вакансий практически нет. А те которые есть, это поддержка костыльного проекта, который никак не перепишут на другой язык. Так что лучше выучи питон. Я в свое время писал на руби. Писал до тех пор, пока проект не закрыли)
>>2306513 >И рынок и кабан идут нахуй Будем писать как по кайфу эхх хорошо бы.... руби конечно не плох. Но я перекатился на питончик и не сожалению ни разу.
Ощущение что руби всеми забыт и никому не нужен. Выглядит как-то пососно, хоть и прикольный он. Жаль я не родился на 10 лет раньше, так бы успел в золотую эпоху рельс, а щас уже лучше в устоявшиеся технологии вкатываться, чем в это забытое старьё.
>>2308725 на спринге сделал маленькое приложение, в целом все понравилось (круд, авторизация/аутентификация, шаблоны), попробую теперь на руби и сравню
Пилишь форум к примеру и у топов можно выставлять ограничения, например: только просмотр (бывает такие вывешивает администрация с инфо или рекламой), отвечать могут только мужские/женские анкеты, отвечать могут только пользователи с рейтингом >= 100 и подобное
Как эти проверки архитектурно лучше реализовать?
Где лучше хранить роли (админ, модератор, пользователь) -- в users или отдельной roles? В чем плюсы и минусы (чтобы потом переписывать меньше кода пришлось)
Забанненных хранить в отдельной Banned или сделать banned = false/true в Users?
Мне не ясно почему некоторые поля выносят в отдельную таблицу, как с банами например или ролями, когда это свойство конкретного пользователя, а тут получается подход со стороны: он вносится в список ролей или забаненных
>>2309981 >Мне не ясно почему некоторые поля выносят в отдельную таблицу, как с банами например или ролями, когда это свойство конкретного пользователя, а тут получается подход со стороны: он вносится в список ролей или забаненных Бан лучше фиксировать отдельным флагом и полем с датой (если предполагаются временные ограничения), потому что если делать поле enum [мод, юзер, бан] то после установки бана ты потеряешь информацию о роли пользователя и придется каким-то образом восстанавливать роль после разбана. Почему роли делают ассоциацией один ко многим? Потому что роли это групповая политика, пользователь может входить в разные группы, можно тонко настраивать доступ к частям системы, если это всё не нужно то достаточно поля role в модели User и нескольких методов типа can_edit?, can_delete? ну по логике приложения, мне кажется 95% случаев такой функционал покроет и без всяких гемов.
>>2309981 >Пилишь форум к примеру и у топов можно выставлять ограничения, например: только просмотр (бывает такие вывешивает администрация с инфо или рекламой), отвечать могут только мужские/женские анкеты, отвечать могут только пользователи с рейтингом >= 100 и подобное Я бы сделал STI с наследованием, родительская модель Topic с дефолтными настройками, от неё идут дочерние TopicForRating, TopicForAge внутри которых какая-то небольшая логика с ограничением, без копипасты и минимум кода, Topic знает своих наследников и предлагает выбрать при создании топа, то есть для расширения списка топов достаточно добавить класс-наследник.
>>2310500 >Прошлый век. Лучше чекай pundit Смысл рельсов в быстрых, готовых, уже обкатанных решениях, минимальном TTM. Делаешь правильный выбор - пишешь пять строчки кода, делаешь неправильный - пишешь 15 новых файлов. >еще лучше action_policy Щас бы юзать гемы страны-агрессора.
>>2310587 В случае с can_edit? и can_delete? -- проверяется атрибут role А как проверять ограничения заданные в топике? current_user смотреть в Controller#action и отсекать если не подходит?
Если надо два в одном: TopicForRating и TopicForAge? Обрастёшь классами)
>>2310632 >Если надо два в одном: TopicForRating и TopicForAge? Обрастёшь классами) Да, здесь нужно декомпозировать топик от ограничения, скажем, для Топика ассоциация - один ко многим на класс Ограничение, от которого наследуем ОграничениеНаВозраст и ОграничениеНаРейтинг, то есть топик через ассоциативную таблицу ссылается на множество ограничений, по которым будем пробегаться и выполнять для каждого прописанную в классе проверку.
>>2310706 Здесь даже нет ассоциативной таблицы, просто топик ссылается на множество ограничений, которые с помощью STI хранятся в одной таблице но подтягивают различную логику для соответствующего типа ограничения.
>>2310783 Потому что в нём у меня коммерческий опыт есть, а в других областях - нет.
Почему его выбрал - ну, потому что пиздатый. Выбрал по первому впечатлению, потому что синтаксис без сраных скобок и точек с запятыми, потом оказалось, что первое впечатление не подвело, сама структура языка тоже классная.
>>2310747 Ruby такой язык, который редко осваивают первым. Обычно уже перекаты с опытом. А джуна куда девать? Гавно за ним с совочком ходить убирать всё время? Но стек хороший, теперь Rails стал фреймворком одной персоны.
Посаны, трабл! Понять не могу только у меня так или у всех? Скачал репозиторий проекта, в gemfile есть блок: source http://unsecure.rails-assets.org do gem rails-assets-bootstrap-select end
Так вот, как бы я не изменял source на https://rails-assets.org или обратно он мне тупо пишет HttpError и никак не скачать этот гем, словно spec на самом сайте упал. Без гемы проект не работает, вообще хз что делать. Уже и vpn пробовал и по всякому изворачивался, руками гем не скачать. Сам сайт rails-assets.org открывается, но гем оттуда не взять. Что можно сделать?
>>2311353 Thanks for nothing, посоны! Сам решил. Короче curl Ubuntu по-умолчанию игнорирует прокси, потому все запросы шли напрямую, хотя развёрнута сеть vpn.
Лечится так: Разворачиваешь vpn proxy, у меня privoxy + tor Прямо в терминале пишешь: export http_proxy=http://localhost:8118(или как сам у себя прокси настроил) export HTTP_PROXY=$http_proxy Запускаешь bundle install и радуешься, что всё работает, так же можно https запросы настроить. В свете последних событий чебурнета, надеюсь вам поможет.
>>2311730 Ты не программист, если не засоряешь память переменными, а вдруг я захочу ещё где-то вызвать эту переменную, а? А если честно, в связи с тем, что это мой первый проект, голова у меня забита другими мыслями.
>>2311730 Лучше скажи как теперь отключить это) Вызов Unset не помогает... Только перезапуск компьютера отключает перевод трафика через прокси. Мда... Всю жизнь работал с windows.
>>2289561 Транзакции это яркий пример когда умный чел начал писать гем для решения задачи, не увидев того, что он изобретает велосипед, который уже существует - монады. dry-monad позже была написана уже со знанием матчасти. Такое часто бывает - в ООП много "паттернов", которые на самом деле являются очевидными вещами из мипа ФП, но для которых калеки вынуждены были придумывать свои термины и названия, не подкрепленные матчастью.
>>2313052 Антипаттерношизик, я узнал тебя по твоим шизоидным словам и высерами. Как там, уже нашел список паттернов, которые якобы в ФП сделаны из коробки и не нужны, или до сих пор просто в воду пукаешь своей шизой и сливаешься на этом вопросе?
>>2317345 Ну вот я так работал 10+ лет, а в итоге оказалось, что я всё-таки предал себя. Мои знакомые, кто, разорвав сраку, сидя в гниющей мухосрани, превозмогая того самого себя, вкатились 5 лет назад, уже в Европе на $5k сидят, а я до сих пор «не предаю» себя, занимаясь какой-то хуетой.
>>2317572 Охуительные истории от ебаных инфантилов с двача. Захожу сюда ща профессиональным контентом, а читаю каких-то чмошников и их сопельные рассказы о своих психологических и мировоззренческих проблемах.
>>2317695 Не надейся. Я джава мидол 5 лет опыта + го + c++ , меня везде возьмут. А вот ты пойдёшь на завод, инфантил. И даже если мне придётся поработать на заводе, это не навсегда и в будущем я снова буду хозяином жизни.
>>2317051 Пчел, чтобы вкатиться, надо около 6 месяцев. 3-4 если ты гений, свободный 24 часа в сутки и 9-12, если ты не очень умный или нет времени на обучение.
Внимание, вопрос: неужели тебе влом к этим месяцам добавить несколько вечеров ознакомления с разными языками, чтобы потом не страдать? Возьми и пройди бесплатный курс по питону, потом - по руби. Что больше понравится в началу - будет больше нравиться и дальше скорее всего, пока просто поверь на слово.
Ребятки, объясните, вот есть к примеру валидация по возрасту, например 18..99 (или любые другие), есть ли смысл ещё дополнительную проверку делать на уровне БД (PG)? А то только базовый not null обычно и всё.
И как оттуда ошибки отлавливать и выводить, тут то они в errors пишутся и можно ещё интернационализацию прикрутить
>>2318674 А какой смысл? Сегодня 18, завтра 16, с констрейном придется кроме модели еще миграцию прогонять, удалять старый, создавать новый. Если система фатально не ломается от некорректных данных то и проверять лишний раз незачем.
Конестрейнами можно более сложные штуки делать, например гарантировать уникальность даты для конекретного значения id, пересечения множеств и всякое такое, что может загнать активрекорд в глубокие раздумья.
Да такое себе.. я не люблю ручных манипуляций со строками, люблю гомоген^Wоднообразие в коде, плюс автоматом защиту от инъекций (хотя тут не тот случай)
Пока сошелся на хуйне вида License.where("id > cast(?, int)", 1) Хуйня конечно, но перфоманц тут мне не важен, так что мб так и оставлю. В очередной раз меня по ебалу бьют незнанием очередного ебаного convention. Заебли меня рельсы уже этим.
>>2321912 До какой-то вресии постгрес хранил json'ы как строки, то есть её нужно извлечь, десериализовать, потом только будет доступ к полю, никаких оптимизаций и индексов по таким полям естественно не происходит и включать их в условия выборки.. ну хз, можно наебаться по перформансу очень жестко.
Наконец-то, кажется, дадут работочку на очень жирных условиях. Надеюсь, пройду. Как лучше всего подготовиться к рельсо-собесу на фуллстека? Сам руби вроде хорошо знаю, рельсы - постольку-поскольку. Какую теорию подтянуть? Веб-сервера, HTTP, OSI и это вот всё? >>2321986 А давай. Если с этой не прокатит, пойду и к тебе.
А как выглядит передача параметра из метода в блок? Все примеры с туториалов как-то обходят этот момент стороной. Эта фича вообще поддерживается? Хочу это сделать
>>2325653 Так руководство решило. В принципе, политика такая - меня и самого джуном брали пару лет назад и растили. Надеюсь не свалят через полгода-год. >>2325685 Джунами/стажерами же :). Ну, в принципе, какой-то околокоммерческий опыт у них есть, хоть и не на руби. Ребята толковые, схватывают быстро.
Чуваки, наверное, мой вопрос покажется странным, но как вы находите в этом всём интерес? Сразу хочу сказать, что вайти-вайти я не планирую — абсолютно не моё, да и слишком стар для этого дерьма. Так, сугубо праздный интерес в попытках понять мотивацию людей, чтобы посредством этого лучше понять мир. Посмотрел пару видосиков про руби на ютубе (пока ещё не запрещённая организация), вроде прикольный язык, но если я правильно понимаю, сфера его применения ограничивается вебом, и по сути большинство программистов занимаются тем, что пилят очередной инернет-магазин говна или какую-нибудь корпоративную админку. Расскажите про свою мотивацию (исключая преференции в виде ЗП/удалёнки/релокации, это и так понятно). Я имею в виду в чём для вас кайф от самого процесса? Я почему-то думаю, что он должен быть, иначе всем этим невозможно заниматься. Могу ошибаться, конечно, поправьте если что.
>>2327411 > Расскажите про свою мотивацию (исключая преференции в виде ЗП/удалёнки/релокации А зачем ты какаешь? Исключая, конечно, функцию освобождения кишечника. Как ты получаешь мотивацию какать?
Завтра откликаюсь на единственную в стране вакансию по синатре.
>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)
>>2327411 >Расскажите про свою мотивацию Мотивация программиста такая же, как и мотивация автослесрая, ковыряющего ржавое корыто в гараже, только программист может создать своё собственное корыто с костылями вместо колёс и впарить это как последнее достижение в автомобилестроении.
Продолжная аналогию с автомобилем, для разных задачь разные инструменты, болиды, грузовые тягачи, руби в этом плане как мерседес бизнес-класса, комфортабельный, достаточно быстрый для ограниченного количества пассажиров но всё таки достаточно прожорливый на топливо.
>>2329004 > Собеседование — это не про решение реальных задач. Когда ж вы научитесь. Вроде программисты, а во. Бум-бум. Ну а что делать тогда? Что за дичь, будто собеседуют меня не программисты. Они зачем проверяют у меня паттерны-хуяттерны тогда?
>>2329169 Просто фильтр, бездушный как естественный отбор. Вас таких вкатывальщиков дохуя и маленькая тележка. Очевидно, что предпочтение отдаётся не тому, кто после курсов решил эвакуироваться, а тому, кто дрочит это дерьмо искренне и с интересом (сложно поверить, но такое бывает). Конечно, для решения реальных задач, вроде создания формы авторизации для очередного интернет-магазина говна, тебе эти паттерны может быть и нахуй не нужны будут (а может и нужны), но сам посуди — нахуя брать тебя, когда рядом стоит такой же сутулый вкатун, который паттерны знает. Представляй это как фильтр, сито. Они так и говорят: «Отсеиваем кандидатов». Когда-то давным давно на собеседовании было достаточно физбазз решить, через крупную сетку фильтра было легко проскочить, ну а теперь будьте любезны, разворотом красно-чёрного дерева не отделаешься. Количество вкатунов растёт в геометрической прогрессии, соответственно рабовладельцу есть смысл выбрать самых лучших за тот же самый мелкий прайс.
>>2329002 Такие говнокодеры как ты, вместо уместного использования принципа Лисков, динамически определяют утиную типизацию и потом заебешься работать со всяким гавном типа:
`value.constantize.call(params: params)`,
На которое ты еще и не осилишь написать тесты.
Не можешь объяснить каждую букву , , [L], , [D], и какие конкретные подходы за ними стоят - будь любезен, милый человек, проследуй на завод. Мне трейни не нужны.
>>2329366 Отвечаю. Затем, что при прочих равных выберут того, кто знает теорию. Представь, что ты собрался выходить из дома, и у тебя есть 10 пар кроссовок, все новые, брэндовые и красивые, но одни вдобавок ещё и водоотталкивающие. Пример корявенький, но суть, я думаю, ты уловил. Программисты, а таких простых вещей не понимаете. Это вам не сложность алгоритма в О-нотации определять. Тут соображать надо.
>>2329457 name = "пыпа" greeting = "Hello, #{name}" puts greeting # => Hello, пыпа Работает только в двойных кавычках и ещё некоторых стринг литералах. В одинарных:
Как сохранить переменную класса File в таблицу в виде блоба и потом считать ее? Разбить переменную на байт-стрим и потом сделать File.open в режиме wb?
>>2330096 Да, интересная штука, & просто сахар для to_proc, а у хэша есть метод to_proc, который сопоставляет аргумент с ключами хэша, тем самым можно отмапить список ключей в значения одной короткой записью.
Как же чётко быть рубистом, минимум неадекватов, чистый, понятный код, всё делаешь на rspec, язык растёт размеренно. Вообще шикарно быть рубистом, не понимаю пыхеров и питонистов. Работы куча, ибо малый и средний бизнес выбирают именно руби. Чуваки, а вы довольны своей работой? Я прям балдею, когда освоил всё делать по TDD.
>>2334490 Каждое первое. Ещё ни разу за 15 лет я не устроился ни на одну годную работу по собеседованию. Собеседование? Тестовое задание? В целом вакансия по объявлению? Это просто сразу нахуй. Хочется того или нет, но реальность такова, что на нормальные должности не ищут специалистов с улицы, просеивая их через фильтры собеседований и тестовых заданий. Это всегда какая-то душная ебанина или рабство за копейки. Во все годные работы всегда вкат идёт через сарафанное радио, или как это модно называется «нетворкинг», еби его мать. Правда, я не программист, может, у вашего брата по-другому всё.
>>2334498 >может, у вашего брата по-другому всё. нет, все так как ты и описал. Нормальные годные вакансии в хороших компаниях как раз расходятся через сарафанное радио. Друг друга привел, кореш порекомендовал руководителю и т.д. А так ты прав, по объявлению - это лютая древняя душная хуета на которую никто не идет. Так еще и несколько технических собеседований устроят + тестовое. А по факту на работе будешь старая гавно разгребать, которым пользуются 2,5 человека.
>>2336353 Осложнилось конечно, но вариант есть - через p2p крипту на бинансе, через карту заграничного банка, карту можно завести подогрев бабками какого-нибудь менеджера чтобы он тебе подготовил недостающие документы, обычно они сами предлагают свои услуги и на них можно выйти через чаты в телеге, но нужно физически присутсвовать в стране и самому идти в офис банка с пачкой документов.
>>2338300 :Jebaited: Он был популярен в 2007-2012+- потом пришла нода, потом голанг Да и как только все популярные фреймворки переняли фишки рельсов, руби стал нахуй никому не нужен, щас он только в муриканских стартапах юзается и то не факт и легаси говно делается.
>>2338330 > пришла нода, потом голанг > Да и как только все популярные фреймворки переняли фишки рельсов, руби стал нахуй никому не нужен Не понимаю. Почему он стал не нужен-то? Ну переняли, ладно, но из руби-то эти фишки никуда не делись, пиши-не хочу.
>>2338407 посмотри на вакансии по России. Адекватных работодателей очень мало(по пальцем можно пересчитать) И из тех, которые есть, это унылые старые легаси-помойки на поддержке, которые нахер никому не сдались
>>2338821 Да пиздатый пиздатый, только не нужен никому. Если успел вкатиться, то молодец, а все остальным он не нужен, кто будет шекели платить юнцам за эту хуйню?
>>2338879 Я может как-то неправильно формулирую вопрос, хотя вроде прямым текстом спрашиваю. Если руби такой пиздатый, то почему он вдруг стал не нужен? Ну хорошо, остальные фреймворки подтянули фишечки из рельсов, но руби-то тут причём?
>>2338990 До сих пор ниасилили норм конпелятор чтобы борда на рельсах выдавала по крайней мере 5 тысяч запросов в секунду, отсюда и хуйлоад идет нахуй.
>>2338990 Создатель руби японец, а значи анимешник, а аниме для пидарасов. Вот пидоры соскочили на новые игрушки, а старье уже никому не нужно. Тем более всяким натуралам. Все очень просто.
>>2338990 > Если руби такой пиздатый, то почему он вдруг стал не нужен? А с чего ты взял, что он не нужен? На дваче прочитал? Чего ж тогда я новую работу только что за две недели нашёл?
Хочешь ты этого или нет, как ни крути, а это факт. Это база, культурная парадигма, в которой существует эта страна, причём буквально на всех социальных слоях. Причём, вашему брату-программисту а этом смысле ещё охуенно повезло, достаточно лишь немного сракой пошевелить дальше, чем поиск объявлений на ХХ, и вуаля, бля.
>>2340830 В шапке ссылка на канал джуби. Неиронично в телеграме нашёл больше собесов, чем в LinkedIn, ХабрКарьере и hh вместе взятых. Хуй его знает, почему так.
>>2344711 У тебя в голове довольно странные установки, которые ты к тому же преподносишь как догму. Чад, выражаясь твоими терминами, во всём лучше неуверенного в себе лошка при прочих равных.
>>2344711 А ты зумер или думер? Пиздец, поехавшие реально видят вокруг себя реальность через призму форчановских мемесов. Хуже гороскопов, честное слово.
• FDD: Figma Driven Development Никита Ратников, Evrone • Тех. долг как им управлять? Станислав Герман, Gett Systems RU • Sidekiq. Не ruby единым Григорий Окин, Level.Travel
>>2345473 Смотря какой и где. Можно вообще html не знать и отдавать жсоны. Можно тихо пыхтеть со slim/haml+bootstrap/tailwind. От вакухи зависит, короче. Но если выучишь - лишним не будет.
>>2350492 нит( Вон рельсы недавно апнулись до 7 версии, сам язык развивается. так что он не мертв. Все нормально. А вот реально годных вакансий на территории РФ очень-очень мало. Пара штук.
Господа, а триал Рубимайна можно как-то продлевать, или лавочку давно прикрыли? Если нельзя никак, то посоветуйте нужных аддонов для VSCode, а то я тупой. Заранее благодарю.
>>2355085 Если про легальный метод, то его не существует, закончился триал - иди покупай лицензию. Раньше был метод, который обходил ограничения, и у тебя по сути был бесконечный триал(что сейчас с ним хз) Вроде бы можно по старинке установить javaagent от друзей-китайцев и продолжать работать
>>2356691 Пока что сложно сказать, на инструмент для нубов это точно не похоже, если знаешь что и как писать то будешь работать быстрее и меньше, если не знаешь то копайлот будет подгонять мусор и баги. Судя по всему пропасть между кодером и вкатуном еще больше увеличится, порог вхождения увеличится, кроме самой машины, программирования и абстракций придется еще осваивать язык и выражения искусственного интеллекта.
Кто-нибудь магазин пилил, какие гемы посоветуете подрубить чтобы не заморачиваться? Больше всего аналитика интересует и всякая сеошная залупа, типа столько-то пользователей проводят на такой-то странице количество времени, пока что ahoy присмотрел, кароче реквестирую гемфайл для магаза.
>>2362318 Все никак не перейду, т.к. именно до осваивания жс сборщиков все руки не дойдут, ибо еще на вебпакер аллергия выработалась. Но надо себя заставить.
>>2366346 Пробовал, за последний месяц 19 собесов. Нужны опытные чуваки и даже в вакухах где написано джун\джун+ на проверку оказывается, что требуется мидл, которому хотят платить поменьше.
>>2366350 Пездос, чел. 19 собесов за месяц (!?) на востребованного квалифицированного специалиста, пусть и без опыта, и везде облом? Это кек такой, или у вашего брата-программиста это нормальная ситуация? мимо-нахуй никому не нужный хуй и то пара успешных собеседований на нахуй никому нужную вакансию с ебейшей конкуренцией
>>2366423 >Это кек такой, или у вашего брата-программиста это нормальная ситуация?
Нормальная. Программисты же народ пидор, народ гной. Думаешь зря большинство из нас в компы упоролись? Потому что ирл нихера не получалось вот и ушли в железяки, поэтому теперь на собесах отгрываемся. Как дедовщина в армии, типа в юности нас ебала жизнь, теперь мы ебем вкатунов. Собес самая сложная часть работы программиста, дрочат тебя всякими обходами деревьев, а на рил работе сидишь пердишь очереным кодом, который перекладывает джсон
>>2366444 Что у тебя не получилось ирл с такой зарплатой? Или ты программист старого образца? Выгляни на улицу, дядь, вам скоро памятники ставить начнут. Не получилось, я хуею.
>>2366444 > Программисты же народ пидор, народ гной.
Братишк, любая группа сосет. Если ты так не думаешь то у тебя романтизированное представление об этой группе.
> Думаешь зря большинство из нас в компы упоролис
лично я потому что мне это нравилось всегда. ктото упоролся в компы, ктото в автомобили, ктото насчет канализационных труб(без шуток - ничего плохого не вижу). многие правда ни во что не упоролись. программистов компьюетроненавистников я встречал, whatever, бывает. можно попробовать сменить работку(или область)
> что ирл нихера не получалось
моя зп очень даже ирл, в 3-10х больше чем у людей-не-программистов из тех с кем знаком
> Собес самая сложная часть работы программиста, дрочат тебя всякими обходами деревьев, а на рил работе сидишь пердишь очереным кодом, который перекладывает джсон
тут соглашусь лично я когда собеседую то стараюсь ебать мозги человеку по минимуму, простое тестовое в худшем случае, никакого алгодроча
>>2366451 >моя зп очень даже ирл Так и вижу эту надпись как эпитафию на твоей плите Ты себя как личность характеризуешь через проф деятельность и количестве денег?
>>2366536 ни как через проф деятельность, ни через деньги это было ответом на фразу "что ирл нихера не получалось" кстати, сама по себе эта фраза отрицает субъективизм в ценностях(так как подразумевает однозначный критерий оценки), при этом ты пишешь что самооценка вполне может строиться на чем угодно таки нужно определиться - или я могу оценивать себя по arbitary критериям или нет если да, то почему не по баблу? я так себя не оцениваю, но деньги это норм так или иначе - всем рекомендую деньги мне не даются просто так, а как результат применения моих личностных качеств и именно на вокруг строится часть моего саомуважения насчет гробов и могил, до этого мне как раз дела нет
>>2366536 > Ты себя как личность характеризуешь через проф деятельность и количестве денег? Соре, брух, но это звучит как «зато я богат духовно». Деньги — это всё. Банальные вещи приходится говорить.
Задача: есть текстовая колонка в бд, её нужно заменить справочником (создать новую модель, наполнить значениями из соответствующего столбца, проставить в исходный столбец айдишники соответствующих записей из новой модели, изменить тип исходного столбца).
Для этого есть какие-то best practice, или вот как я написал - так миграцию и делать? Таблицы не очень большие, но хочется писать более-менее приличный код, а ничего лучше я не придумал и гугл молчит.
>>2367115 Вот эта конструкция попахивает, у тебя там и выход из итерации, и присвоение, и проверка на пустоту, присваивать переменные в теле условия всегда хуёвая практика. Не укладываешься в 120 символов, надо переносить строки. Касательно скобок, либо их ставят везде либо не ставят вообще, половина выражения в скобках а половина нет - такая себе экономия на символах.
>>2367115 JFYI в руби принято с подчёркивания начинать имена неиспользуемых переменных. Таким образом явно указывается, что переменная не будет использована. Пример: loop_zaloop.map { |_k, v| v.upcase }
Здрастеся! Прохожу odin проджект, скоро выбирать путь: руби и рельсы или джс и нода. Только учусь, вкатываюсь. Хочется руби выбрать, но рынок в рф какой-то тухлый судя по хх и некоторым чатам в телеге. инб4: качайся до мидла... Совсем новеньких-то берут или руби для души, жс для работы? Треды почитал, связей нет (пока что) и интересно всё же в нормальной кампании работать на руби.
>>2370215 Ну если имел дело с рельсоподобными фреймворками, то да, проблем не должно быть. Хотя раньше например рубисты пиздец плевались, считалось что рубист который с нуля начинал намного лучше, чем бывший пыхарь, так как не приносит пехапешные практики.
>>2374934 Без рельсов никому нахер не всрался, а рельсы тоже уже нахер никому не всрались. Ну ладно, вру, в штатах и всяких европках можешь найти работу, в остальном мире - забудь.
>>2374934 Руби не сильно популярный язык, даже в японии. (но там популярнее чем везде) Джс, джавы и тп всегда более популярны, но и прям обскурным его тоже не назвать. Просто в рф не так много вакансий. (но и не мало, кстати)
Кто-то знает, может есть какой-то ультра супер мега гем, который добавит гугл авторизацию и регистрацию, при учёте, что я юзаю devise и grape? Целый день проебался и ничего не смог сделать.
>>2376275 Питон преподают в вузах и шарагах, а к руби приходят самостоятельно, для этого требуется узнать о нем, заинтересоваться, изучить, это совсем другой уровень мотивации, это проявление личностных качеств человека, который в поисках более совершенного инструмента изучает новые технологии, а таких в принципе меньшинство даже среди профессионалов.
>>2376309 По сравнению с пхп или питоном значительно совершеннее, чистый и приятный синтаксис, упорядоченная, интуитивно понятная стандартная библиотека, в аналогии с обувью руби не сотрет тебе ногу в кровь, а так, кому-то и в лаптях норм, кто ж спорит.
>>2376576 Это термин такой, балбес. Пыха заточена в очень похожем на рубивэй стиле программирования: __get __set __invok __call, method_exists и др. вещи в пыхе типа $obj->$methodName()
>>2376604 Да всем давно известно что выпускники программистских пту распределяются так: часть виабушников идет в руби, а другая часть идет в пыху. Между ними нет никаких принципиальных различий кроме отношения к аниме.