ИЗУЧЕНИЕ ЯЗЫКА 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
МИНИМУМ НА ДЖУНА ToDo: Здесь обязательно появится минимальный набор знаний и умений на джуна (что должен уметь вкатун-рельсовик), как найти первую работу и т.д. Но это потом.
Зимний митап Saint P Ruby Community 2021! ДА, И СТРИМ И ЗАПИСЬ БУДУТ. 25 февраля на площадке Купибилета, Стартуем, как обычно в 19.00.
Докладчики и доклады: 1. Ну собственно Шаматов. Я расскажу про Dry CLI: проект, над которым я периодически работаю. 2. Юлиан Покровский расскажет про Алгоритмы и структуры данных для рельсовика. 3. Владимир Дементьев настолько хорош, что у него есть 4 доклада, и он шафлом выберет тот, который расскажет нам. 4. Михаил Грачев расскажет про Линтеры, которые на страже порядка
>>1950299 Тоже думаю, пока времени мало, на работе проект добьем и начну прожект писать. А так, бложик пробовал писать 1в1 Лара, синтаксис пока до конца не понял, немного не привычен. Зато был сильно удивлен увидев количество вакансий на удалёнке, особенно забугорных.
Имею желание пройти ератовский тренинг по руби с целью смены работы. Насколько реально стать ждуном на рельсах с 1-2 годами опыта даже не веба? есть еще вариант с дотнетом и гарантированным трудоустройством, но там платят мало
>>1951009 Вполне реально. Тем более что разрабов сейчас не хватает. Многие работодатели растят сами из совсем неофитов для инхауза, но на хх.ру ты их врядли найдешь.
>>1952080 Нет. Пиздят про то что вкатиться джуном реально, но на самом деле это реально только для хохлов, у которых почему-то RoR крайне распространён и из которых состоит данный тред, судя по всему. Лучше вкатывайся в пхп, без иронии говорю. мимо
>>1952267 Сейчас на стадии переката, учу-дрочу язык и рельсы прожект пилю, если с Yii или Laravel работал то ROR на 95% тоже самое. Синтаксис языка только непривычен как-то, но в целом с пыхи нет проблем перекатываться. По вакансиям местные подскажут, но я мониторю хх.ру потихоньку там много продуктовых попадалось.
>>1952888 Clojure это лисп: нотация на s-экспрешшенс, негигиеническая макросистема в духе коммон лисп, динамический и лексический скоуп. Отличия от коммон лиспа на языковом уровне - нормал ордер редакшн(ленивые вычисления) по умолчанию и наличие в стандартной библиотеке иммутабельных структур данных, литералы для всех дефолтных структур(мап, сет, вектор, лист). Если кратко то как-то так.
>>1952947 Common Lisp довольно жирен и дизайн стандартной библиотеки там говно, кложка же проста, компактна и в ней много полезного, предпочитаются иммутабельные структуры данных и использование функций высшего порядка везде(струтурирование программы с помощью последовательных трансформаций данных выраженных через map/filter/fold), тут явно вин. С другой стороны коммон лисп генерил нативные бинарники и с тайп хинтами и аннотациями для компиляции там получался очень быстрый машинный код, кложка же живет поверх JVM, это не то чтобы совсем ужасно но отличия есть, так что тут вин не очевиден. А в целом вон есть рэкет(лисп с гигиенической макросистемой, оченоь продвинутой) но не пригоден для использования(на нем ничего не написано). Так что, да, соглашусь кложка очень аккуратна. А рубик сам по себе хорош, ООПшка с кодогенерацией на основе неплохой макросистемы, очень чистый и приятный синтакс. И рубик и кложку делали люди со вкусом.
>>1953221 > язык, у которого даже нет своего треда. Давай сравним количество вакансий на популярном в php (на котором большая часть сайтов) фреймворке laravel и количество вакансий на рельсах, если из пыхи выкинуть говностудии где клепают визитки, а лару прикрепили для красного словца, то будет +/- одинаково. Думаю говорить о какой-то мертвости языка бессмысленно, а на забугорных рынках его доля и того больше, тем более сейчас вышла 3 версия, которая в разы быстрее (ситуация примерно как с выходом 7 пхп), скоро потихоньку в проде начнет появляться, до смерти еще далеко, вон джаву уже сколько лет хоронят, а на спринге сейчас 3000 вакансий. Думаю не стоит делать необдуманных и импульсивных выводов. Шел бы ты уже отсюда, долбоеб
>>1953279 >вышла 3 версия, которая в разы быстрее Насколько я знаю, быстрее она только по сравнению с с 2.0, а это уже давно легаси. Начиная с 2.4 разница не такая большая, и многие оптимизационные фичи нужно ебаться и включать руками.
>>1953550 Книга про кодогенерацию на рубике. Таких книг не много в принципе, так что читать однозначно стоит, особенно если хочешь быть адвансд девелопером. Например рэйлз использует кодогенерацию по полной, чтобы тебе вручную бойлерплейт не писать. Если не знаешь што такое кодогенерация то вот пример: запускаешь irb, пэйстишь в irb пример отсюда https://en.wikipedia.org/wiki/Ruby_(programming_language)#Metaprogramming
>>1953550 Очень годная, хорошо оформлена и структурирована, простой английский без всяких мудацких выражений, разбита по дням, в конце каждого дня - практическая задача. Совсем зеленым нубам не подойдет, так как требует базового понимания происходящего и определенного опыта, остальным рекомендую к изучению.
>>1953869 Зачем другие языки? Руби вполне справляется, вынос из рейлс-монолита в микросервис и горизонтальное масштабирование решает проблему и без подключения других языков.
Сап, рубач! Я тут заметил одну вещь поглядывая видосики на ютюбах, рубисты очень часто используют vim, хотя у остальных разработчиков всегда IDE, почему так не уж то он такой удобный?
>>1954894 Некоторым людям удобно, когда текстовый редактор управляется с клавиатуры. Другим это неудобно и они используют текстовики с графическим управлением мышкой + иногда хоткеи. А третьи используют IDE. Зачем — незнаю.
4 марта в 17:00 эксперты из компании UMBRELLIO и MPI поделятся своим практическим опытом в ruby разработке.
Программа митапа: 17:10 — Рустам Ибрагимов, "SmartCore (smart-rb) — a set of common abstractions and principles, realized in scope of Ruby, DDD and Clean Architecture" 17:50 — Александр Ильчуков, "MPI: композитные атрибуты моделей данных" 18:30 — Астхана Аникет, "Метрики эффективности сервиса"
Я запустил все через docker-compose и собирался так и разворачивать на сервере. Потом мне дяди сказали что это не ок и нужно пердолить куб.
Вроде как запердодил все на k3s. Осталось настроить пару вещей.
Смущает то что: 1. У меня всего 1 хост 2cpu/2gb ram 2. После установки докера и k3s - минус 700мб ram 3. Какого хуя, раньше же хватало 1gb на простые приложения?
Это простое api приложение pet проект.
С другой стороны, сейчас я могу пердолить все с компа, без всяких scp и переноса инфы чтобы что-то запустить. Так же, если правильно понял, не придется пердолиться с конфигами nginx'a.
Еще я запустил private registry. Но буду его отключать после пуша.
>>1957660 Посмотри на доу.юа информацию. Я сам вкатываюсь только, но вроде как в Украине не так уж и плохо с местными вакухами, если ты в каком-нибудь Харькове или Киеве.
Уже ставшая традицией встреча Рубистов пройдет в 13-ый раз!
И если ранее митап проходил в офлайн режиме на одной из московских площадок, то предстоящий митап пройдет на онлайн-платформе и стать участником может любой желающий, без привязки к геопозиции.
Программа: 19:00 Григорий Петров (Evrone) — Почему Ruby медленный? 19:45 Евгений Фатеев (VK Работа) - Learning to Rank вместе с Ruby 20:30 Молчанов Андрей (Uscreen) - Краткая история кеширования 21:15 Цепелев Дмитрий (Evil Martians) - Как ускорить GraphQL API
Есть одно приложение на руби и думаю как его задеплоить в впс. Стоит ли оборачивать это в докер и на впс разворачивать этот самый докер? ВПС сейчас совсем голый и ничего там нет кроме рута. Как в таком случае лучше сделать? Что по производительности в этом случае? И насколько я понимаю сама ос в докере не включена, поэтому я не очень понимаю как это должно собираться для прода, мне тот же дебиан надо локально держать для сборки? Как те же настройки домена должны подтягиваться и сертификаты? Или докер чисто для дева, а в проде лучше просто настроить все скриптом а патчи через гит пулить?
>>1960496 Докер нужен для автоматизации (и возможности настраивать для приложения окружение отличное от окружения на самом хосте), если тебе раз поставить посмотреть то нахуй не нужно. Разве что ты хочешь именно в докере поковырятся. Система там уже есть (в образе, там есть некоторые нюансы - контейнер это не полная виртальная машина, без дополнительной хуйни от может запуститься только на линуксе, но это в общем не важно). Сертификаты/настройки или зашиваются в образ (image) - берешь какой-то за основу и делаешь собственный добавляя туда все нужное тебе гавно. Или подтягиваются из какой-то директории которая доступна и из контейнера и на хосте (в докере это volume называют).
>>1960496 если ты деплоишь в докере без к8с или подобного, можно попробовать так это не бест практисы ни разу - описать systemd service, который будет отвечать за твой контейнер, чтобы логи транслировались туда + был перезапуск и прочее - конфиги хранить не в докере, типа, либо ты вставляешь конфиги при билде имеджа и они у тебя лежат в куче имеджей, что не безопасно, либо ты их хранишь на хосте где у тебя запущен контейнер, но тогда тебе нужен какой-то баш скрипт чтобы передавать их в контейнер, вообще я бы тут хранил всё в env > Что по производительности в этом случае? у докера оверхед почти нулевой на линуксе, забей > И насколько я понимаю сама ос в докере не включена включена, если у тебя докер типа FROM ruby-2.6-alpine WORKDIR /srv/app RUN cp Gemfile Gemfile.lock /srv/app/ ... ENTRYPOINT bundle exec rails s то каждая строчка это типа докер имедж и каждая следующая включает в себя предыдущее и весь имедж это ОС + твой апп и так далее для прода можешь замутить отдельный докерфайл для оптимизации, то есть отнять гемы группы development, test, не брать ассеты, они же должны быть на каком-то s3 > Как те же настройки домена должны подтягиваться и сертификаты? хранить на хосте и передавать внутрь
ТЛДР если у тебя версия руби/рельс такая, что ты можешь обойтись дефолтными зависимостями ОС, немного сторонних либ и изменения не будут частыми, деплой без докера, докер это для а) автомасштабирования б) легаси/специфические либы и так далее
>>1962154 А докер-конфиг через что деплоить? Я вот пишу cap production deploy и прод обновляется, с докером же та же херня будет, только плюс пердолить скрипт для контейнера?
>>1962809 Капистрано такая параша. Ее настраивать - дикий пердолинг. Но кто-то использует ее с докером.
Не знаю зачем тебе докер конфиг, я его не использовал.
Если в крадце: Ты делаешь docker build из dockerfile Пушишь его в repository(это можно автоматизировать, но мне было лень, чтобы после пуша на гитхаб оно само билдило image) И там где хочешь поднимать просто делаешь docker-compose up подкинув .env
>>1962809 если без CI/CD, то можешь погуглить "deploy with docker-compose", типа, ты запустишь со своего компа docker-compose команды указав HOST переменную и он их выполнит где надо
Созданием хука included, который так же инициализирует класс и хранит инициализованные объекты в массиве, которые мы потом можем использовать? По идее это избавляет от постоянной инициализации и не расходует память, как Class.new, верно?
>>1964917 >хранит инициализованные объекты в массиве, которые мы потом можем использовать? Чево блять? Это типа пародия на синглтон, только без сингл? >избавляет от постоянной инициализации и не расходует память Зачем тебе избавляться от инициализации и с чего ты взял, что Class.new "расходует память"?
>>1965500 Это не бред, это сумасшедший говнокод, который написан без какой-либо цели и назначения, просто потому что тебе в голову стукнула глупейшая идея уровня "Class.new расходует память", которую ты даже не попытался осмыслить или проверить, перед тем как лепить вот это. Удали пока не поздно и сделай обычный класс.
>>1964917 а BaseService / BaseAccount почему тогда инициализируешь? типа, руби полностью объектный, если ты пишешь без инициализации классов, это не значит, что код, который ты переиспользуешь или там классы/числа/строки не инициализируются я понимаю если бы ты с нуля как-то изъебнулся без объектов писать и переписал сайдкик себе и так далее
>>1964917 Откуда вы беретесь? Запрос в БД в 10 раз медленней чем инициализация 100 классов, оставь эти наооптимизации для других языков, напиши нормальный класс. Руби не про скорость выполнения.
>>1966378 В СНГ может быть, в цивилизации Руби на плаву. И что самое няшное, нет смешных вакансий за 1к бачей как на ДЖсе и другом популярном говне, меньше залетных вкатышей и мидлы-сеньоры норм бабки получают.
>>1966607 Ни в одном из них нет даже полного базового функционала. Сужу по Rubymine. Vs Code давно не щупал, но, там , говорят, до сих пор плагин не просто не полностью работате, но и чудовищные ресурсы выжирает.
>>1954943 >А третьи используют IDE. Зачем — незнаю Помимо более лучшего автокомплита тут все под рукой, в пару кликов можно увидеть все докеры, зайти в контейнер, открыть вкладку с базами, зайти в любую таблицу, с гитом тоже можно посмотреть другие ветки, вся история перед глазами, удобнее мержить когда все навиду. Все вот это можно и в терминале наколотить, но это дольше, в идеешке пару движений тачпаду или нажатые хоткеи и все готово, это просто удобнее. Ещё интеграция бд в проект, автокомплит SQL запросов. И конечно же проверка на косяки, все ошибки подсвечиваются и при комите переспрашивает ide. Конечно если пользоваться только как текстовым редактором с автокомплитом, то тогда да смысла ide нет, проще взять какой-нибудь саблайм он шустрее.
Народ, я сам слесарь, но руби раньше использовал как вспомогательный язык для своих проектов, и даже embed'ил в свои плюсовые приложения. В общем, мне нравится руби больше чем питон. Но всё же, я не мастер в его ОПП и ваще, использовал как скриптовый язык. Но хочу перекатится на чистую удалёнку и руби выглядит для меня самым вкусным: вижу в инете жирные удалённые вакансии, но всё RoR. Что скажете за это: правда так много вакансий, или это какие-то феки?
>>1968953 Согласен полностью. Я как в офис пришел, программистом-рельсовиком устроиться, мне PyCharm поставили, дали в руки джангу, грят, сиди, кодируй. Оказалось, рельсы умерли уже лет пять назад, а руби и подавно. Пришлось переучиваться, взяли "джунгистом" работать, что поделать, сижу, переучиваюсь, джаваскреп, вот.
>>1969261 Ну представь, ты пришел работать слесарем, а тебе говорят, что слесари не нужны, и заставили переучиваться на сантехника. Реалистичная ситуация?
Сравниваю эту технологию и vue.js + rest api (на том же руби) и мне кажется что vue.js позволяет в куда более гибкий ui с реактивностью и реиспользованием компонентов. Но хз, реального опыта с turbo нету.
>>1969991 У меня почему-то не работало удаление каких-либо элементов по сокетам, кто-то запостил ишью на гитхабе, но нихуя непонятно, как решать. Охуенно, короче.
>>1970011 Просто хутемель отсылает по сокетам, вот и всё, аякс обыкновенный, реактивить можно, обмазывайся со стимулосом. Создано-пересоздано потому, что нынешний фронт представляет из себя хтонический ужас из смузитехнологий и их хлёбов.
Но пока первое впечатление - похоже на серебряную пулю, было уже JSF, gwt, которые соснули и никому не нужны. Генерация и магея это такое дело, хуй знает. Смузихлебство с фрнотом и масштабируемым беком мне как-то ближе чем эта непонятная монолитная ёбань.
Скажите что для базового интерфейса можно быстро подключить и начать юзать, пока рельсы изучаю, а то уже глаза болят от голого черно-белого html'а. Что-то наподобие бы самих рельс, чтобы взял установил, набрал пару команд и все есть бай дифолт ну или небольшая конфигурация тоже ок. В фронте просто, вообще, нихуя не понимаю, пока что присмотрелся к bootstrap? Настораживает только что там mobile first прям сразу написанно.
>>1971573 >gay-way >сказал человек, ублажающий компилятор каждый раз перед тем как приступить к написанию несущего смысловую нагрузку реального кода, вместо того, чтобы просто взять и писать этот код сразу же Как называется эта болезнь?
>>1976016 Сами виноваты, с нежеланием растить джунов на своём конченном языке. Они в итоге вкатываются как могут, благо единственное требование для вката в элитнейший язык Руби это "просидеть на жопе 1 год бэкендером хоть на битрикс".
>>1976295 А уж расфасовка kwargs... Слишком уж динамично. Не, я понимаю, что в динамике одновременно и вся мощь языка, но могли бы кое-что и свистнуть у Crystal.
>>1976149 > "просидеть на жопе 1 год бэкендером хоть на битрикс" Лол и за этот год научиться создавать инфобдоки в админке, писать компоненты лапшой и клепать шаблоны на говнокоде уровня 4 версии пхп. Если хочешь потом в рельсы, то лучше Yii он очень похож
>>1976149 >растить джунов на своём конченном языке А кто-то сейчас растит джунов? Этих вкатывальщиков - как собак не резанных, кидаешь им задачи, кто вывозит - тот и растет, а спецов выделять чтобы возился с дурачками, ну это очень расточительное удовольствие, за такое еще нужно деньги брать, а не зарплату платить.
>>1980170 Лет 10 рельсы были единственный нормальным веб-фреймворком Да и до сих пор чтобы побыстрому накидать мвп для стартапа ничего лучше для бекенда не изобрели.
>>1982074 ООП отсутствие компиляции(связаности) все маня-объекты с обращением всего в нул ундефинден. Алгоритм это путь, а значит императивный. Тобишь если писать маня-ооп на императивном то ты пишешь процедурки с линковками переменных и скрытыми полями типа аррр_приват[] И никакое ООП нахуй не всралось с классами и множествами множеств.
>>1982184 Какая разница, даже если у тебя супер-позднее связывание как в смолтолке и нет заранее фиксированной топологии, в динамике путь все равно путь есть.
Дратути уважаемые господа. Встретил в логе такую хуйню: >Completed 200 OK in 360882ms (Views: 10.4ms | ActiveRecord: 37.9ms) Как определить, на что проебалось 6 минут?
>>1981991 ООП есть только в ерланге и эликсире. /thread
Твое "ооп", из с++, которое спизжено из симулы и которое распространенно, хуйня полная, которую подхватили и впаривают неокрепшим умам. И ты еще здесь впариваешь.
Впрочем, для тебя и смалталк окажется слишком сложный, даже не пытайся. маня.
>>1982938 >ООП есть только в ерланге и эликсире Тупее еще ничего не слышал. Что-то уровня "ФП существует только на бумаге, потому что в любой программе есть стейт".
>>1982940 ФП есть только в брейнфаке, так как ты не гарантируешь результат компиляции и игнорирование промежуточных итогов. тобишь вар залупа= конст 2+ конст 2 будет считать каждый раз а не в собраном виде уже вар залупа = 4 nor nand
>>1982447 Нет в динамичном ООП ты орешь что ты обосрался, а мамка вытирает тебе жопу или нет если мамки нету. Рук и ног у тебя нету ведь для вытирания жопы они не нужны.
>>1982940 >Тупее еще ничего не слышал. Мои искренние соболезнования, чел. Земля тебе пухом. Даже не пытайся оправдаться и писать что то в ответ. За мной Алан Кей стоит и труды людей книжек object thinking и прочее.
Чел, даже не пытайся в разговор. Ты уже загнал себя в дерьмо. Ушел.
>>1983581 Вот бы еще за тобой аргументы стояли, а не только прочитанная и услышанная где-то шиза, которую ты принял за чистую монету и теперь высираешь тут без попытки ее хоть как-то обосновать.
>>1983158 Алгоритм должен выполнять то что реально и возможно, а не ну короче создали калькулятор и 2+2не гарантируем будет ли выполнено или нет, может там оператор + пошел на обед
Раби еще жив? Кто-нибудь адоптит сорбет? Выглядит как хуета для тех, кто не любит писать тесты или нанимает сотни макак, чтоб хоть как-то их контролировать.
Ок, с сорбетом не зашло, смотрю. Может кто успешно юзает dry-whatever? Не могу никак на эту дичь перейти с Virtus, поляк поехал со своими неперегруженными интерфейсами, в итоге перегружен зоопарком становится разраб.
>>1987133 Юзают все, и это набор библиотек, бери любую по требованию и юзай без задней мысли. Без do и result монад я вообще не понимаю, как люди обходились в древние времена.
>>1987637 Ну во-первых, кристал не для продакшна - это точно, во-вторых, я не очень верю в пользу статической типизации, просто хочется более удобную прибуду для валидации и преобразования всяких параметров.
>>1988333 Все правильно делаешь. Но я пока не нашёл хорошую удаленку чтобы и - продукт, а не атусорс - не стартап - востребованный на рынке - $$$ - без переезда - без если с таймзонами - без гугл-like собеса
Дело времени, офкорс. Но и на наших тоже смотрю, если продукт пиздатый
>>1987610 Ну вот первых проф скилл же растёт, а если не растёт то нахуй так жить? Во вторых доллар жи В третьих удаленка и ковид всех уравнивает в сторону увеличения (для нас) и локальным галерам и наебизнесам все сложней конкурировать
>>1987725 ну во первых, если у тебя простейший круд и бзенслогика по преборазованию записей в постгре, то кристал с этим справится даже в проде во-вторых там есть тайп инференс и писать большинство типов просто не нужно но вобще он тоже кал, соглы
>>1991062 Если легаси-проект, то, скорее всего, хватит Jquery + немного вникнуть в синтаксис coffeescript. Если более-менее новье, то лучше ваниллу подучить чутка. В целом - сильно много не надо.
Кто знает, есть ли курсы по руби за доллары, но чтоб сам учился(без ментора, без какой-либо группы в привязке)? Но чтоб была проверка на базе кода какого-то?
Господа рубисты, есть ли у нас вас в языке возможность узнать имя константы, значение которой было присвоено переменной, каким-то более приличным способом, чем так? MyModule.constants.find { |sym| MyModule.const_get(sym) == my_var }.to_s
>>2000149 Ну по такой логике, все мои последние проекты - это рельсы, так что зачем вкатываться в неиспользуемое мертвое говно, вроде жабы, го или котлина? Оправдывайся.
Анон, помоги нубу. Есть проект такой структуры, что внутри папки есть проект в гите. Но каждая папка внутри этой папки- это тоже отдельные проекты в гите. Не могу настроить рубимайн, чтобы он понимал, что каждая папка это отдельный проект, а не все это один который в корневой папке
Но к сожалению о рубях можно только мечтать. Даже простой скрипт пишу на хуевом питоне из за либы telethon. Приходится кушать говно как всегда.
Жалко руби никогда не изучу. А может и к счастью, динамического никогда не любил. Даже хз как там у вас в проектах все. и 3.0 не особо спасает как я понял.
>>2012033 Одновременно верны обе вещи - это сабмодули топ левел проекта(этот проект о них знает и это выражается на уровне команд для менеджмента сабмодулей, наличия .gitmodules файла и прочего) и в то же самое время они являются отдельными проектами и ничего не знают о топ левел проекте.
>>2014628 Ясно, запретили в рабочих чатах упездываться про "политику" и все самые яростные SJW ушли.
This is the rule that’s gotten the most attention so far. Basecamp co-founders Jason Fried and David Heinemeier Hansson are banning conversations about social issues and politics on Basecamp’s official workplace account. Their reasoning is that such conversations are a) too distracting from work, b) unconnected to work, and c) too stressful and conflict-laden. “You shouldn’t have to wonder if staying out of it means you’re complicit, or wading into it means you’re a target,” writes Fried. An addendum post from Hansson notes that Basecamp will still engage in conversations about political topics deemed core to their business, such as “antitrust, privacy, employee surveillance.”
The employee take: The founders of Basecamp assume that conversations about politics and society are unrelated to work. It’s a false assumption. Politics and societal issues shape the world of work in myriad ways, including both the products that Basecamp builds and the experiences that people have while working there. We know, for example, that people’s racial and gendered biases get built into algorithms; that programming terms can reflect racist histories; that conversations about transgender and LGBTQ rights can apply to something as concrete as company policy surrounding pronouns; and that the #MeToo movement prompted a much-needed conversation about how sexism and sexual harassment are rampant in many workplaces.
>>2014628 > Весь ios team Кто бы мог подумать что для гей-оси работают в основном геи, трансы, блмщики и всё вот это или точнее кто их поддерживает и занимаются хуйней вместо работы, как жаль что сами рельсы тоже не от японцев, а то как-то зайдя на репо увидел "main" вместо запрещенного слова, как блять капитализм вылился в настоящий 1984, а не коммунизм, нихера не понимаю.
>>2014770 А капитализм в коммунизм и выливается у них к сожалению. Все эти блм клоуны и шизики трансы, по крайней мере их thought leaders в академии и около являются "тренированными марксистами". Больно видеть как гнойная identity politics и психически больные люди разрушают в частности американское общество и то что создали продуктивные люди.
>>2020767 import import import ( import ) import . import os import print import alphabet import sky import allah
print(ну(а(ты().как().думаешь(?))))
В руби намного пизже синтаксис, чище выглядит код, лучше выдержан ООП-стиль без шизосмеси методчейнов и функций от функций. От двоеточий после def и if, которые абсолютно никакой информации не несут ни человеку, ни интерпретатору, меня пиздец как коробит. Нормальной интерполяции строк не завезли, каждый чих надо импортировать, на базовых классах (особенно коллекциях) нет половины методов, которые в руби искаропки. Ну и итераторы в руби лучше, чем for и while, если проникнешься.
В какой именно момент руби, будучи динамической парашей, может сделать программиста счастливым?
Варианты: - Во время отладки - Во время написания тестов - Во время чтения очередного залупного обновление очередного никому не нужного нахуй convention over configuration правила.
>>2023486 >В какой именно момент руби, будучи динамической парашей, может сделать программиста счастливым? В момент, когда ты пишешь код, а не ублажаешь анальный конпелятор из-за религиозной веры в манятипы.
>>2023256 >Нормальной интерполяции строк не завезли В версии 3.6 или 3.7 теперь есть интерполяция, а так да питон с виду лаконичный и простой, но как-то много мелочей которые добавляют хуевости в язык, плюс не хватает синтаксических фишек которые есть в руби
>>2024628 >По сравнению с другими фреймворками Ruby on Rails выбирают много разработчиков. Но на фоне популярных CMS это сообщество выглядит очень скромно. Для сравнения, разработчики «1С-Битрикс» в 11 раз больше.
Жаль конечно что популярность невысокая в СНГ, ведь все заебись, язык красивый, маскот и вся эта эстетика языка (красненький, рубин, гемчики, рельсы) очень красивая, ну и то что создатель японец и создавал его с конкретной целью сделать язык для людей, придает чуточку шарма, чего не скажешь о php, js да и питон с go тоже, бездушная хуйня... Я не рубист если что.
>>2025322 Да вполне норм, имхо, учитывая что крупных компаний, которые могут позволить себе массово набирать рубистов-джунов и растить для себя у нас нет вполне популярнен в своей нише. Рельсы даже в в госконторы пробиваются иногда..
>>1950019 (OP) Кто устроился на джуна в этом году? А то тут как будто перепись матёрых рубистов, которые в валютах получают, мне до такого ещё далеко. Решил с системного администрирования начать вкалывать под рельсы, либо дожимать и идти в DevOps, на пороге выбора, поделитесь мыслям, нужно решить в пользу одного или другого.
>>2028102 Я после полгода пыха перекатился в этом году. На счёт мыслей, просто попробуй и то и другое, тогда окончательно определишься, одно другое дополняет, что разработчику нужно уметь немного девопсить, что девопсу будет полезно знать какой нибудь скриптовый язык. Можно даже попробовать поработать с чем-то из них, если не понравится, то никто не заставляет жениться на всю жизнь. Я с php начал потому что знаком был немного, а вот как чуток освоился и поглядел какие вакансии говно на нем, сплошные студии кузницы говносайтов, либо недотырпрайз на симфони, так и потихоньку перекатился. А до этого вообще какой хуйней только не занимался и на заводе гайки крутил и проектировал инженерные системы.
>>2029047 На руби другие задачи решают? Те же самые круды для недотырпрайза, один в один. Когда нужно серьезное ноухау сделать пишут не на скриптухе, потом уже на пыхоплеяде дописывают процессинг для бабла.
>>2029074 На пхп другие задачи решают, на одну продуктовую компанию будет десяток студий, каждый раз когда мониторить рынок просматриваешь сотни таких вакансий, а в этих студиях все делается наотъебись, поскольку клепаешь по сайту в день я утрирую, но раз в недели 2 - месяц новый проект, веслаешь и фронт и бек и девопс, пишешь со сроком вчера и постоянно вносятся правки, это качество кода переноситься и в продуктовую разработку, довелось это даже лицезреть пару проектов, я скорее из-за этого ушел. А если перекатываться в симфони, где код почище, пишут тесты и бывают интересные проекты, то на мой взгляд жаба и спринг интереснее будет, особенно по зарплате, php с каждой версией больше становится похож на джаву. На руби чаще всего продуктовые компании, даже если по проектам смотреть, то на рельсах больше интересных проектов, чем в пхп на ларавеле (советую посравнивать на том же хх.ру) , что отражается на культуре кода и разработки в целом, благо есть с чем сравнить. Ну и плюс ко всему на руби синтаксис лаконичный и сахарный, гемы на все случаи жизни есть, да и много полезных фишек у самого языка. А так да, одни круды, генерация json'ок на фронт и формы мы вам перезвоним.
>>2029964 Да вроде тут ни пыха, ни питон, ни goвно, ни жава не упоминаются, да и платят им не так много в сравнении с богоподобным Ruby. Кого там, индусов на этот зоопарк клоунский завлекать? О ком речь идет у тебя?
>>1950019 (OP) Слышал что в руби нет смысла соваться, если нет хотя бы 1-2 года разработки на другом языке, так как джуном стать на нем нереально, это правда и лучше выбрать какой-то другой язык для вката?
>>2030191 >Да вроде тут ни пыха, ни питон, ни goвно, ни жава не упоминаются Кто о чём, а вшивый о бане. >да и платят им не так много в сравнении с богоподобным Ruby Пруфы в студию. >О ком речь идет у тебя? О руби речь у меня, не виляй.
Осторожнее, ты можешь обидеть нежных рельсодрочеров в этом итт треде. Они еще не проснулись и не открыли для себя ни spa, ни data first, ни нормальные ЯП.
>>2030569 >spa Не нужно, есть hotwire-rails. >нормальные ЯП. Не совсем понимаю тебя. Рельсоводы и пишут как раз таки на руби. >data first Это не актуально, просто не нужно, кек.
>>2030604 >Это не актуально, просто не нужно, кек. Как сказал анон то ли в голанг, то ли в си, треде, "Ненуждоиды есть первый признак загнивания языка".
Щито делать если я достаточно долго не использовал rails, хотя в прошлом делал какие-то проектики для себя, а так же использовал другие ruby framrwork'и. И вот я решил освежить знания, начал листать книгу по рельсам и меня прям воротит от нее? В итоге я просто копипастил код чтобы посмотреть как работает проект. Был больше интересен результат.
При этом мне стало интересно рисовать векторную хуйню. И вот я потыкал tailwind + немного обновил внешний вид одного старого сайтика(статического, там bumla) и мне ок. Еще я примерно месяц назад пердолился с кубернетисом чтобы задеплоить проектик и мне тоже было ок.
Как это можно объяснить? С чем может быть связан негатив к рельсам? Мог ли я перегореть, лол? Как это вообще возможно? У меня были попытки искать работу, но все заканчивалось тем что убирал резюме и забивал на неск месяцев. Хотя были какие-то предложения. А сейчас вообще чувстую себя тупым.
>>2033868 А ты зачем этим вообще занимаешься? Рельсы — это просто инструмент для молниеносного крудошлепства, если ты не планируешь вебмакакингом заниматься, то и не трогай их. В бар сходи, пиво с друзьями попей, расслабься, зачем тебе все это?
>>2033969 Антидепрессанты могут усугубить ситцацию и все это долго.
>>2033985 >молниеносного крудошлепства, Возможно это имеет какое-то отношение к вопросу. Ведь если делать что-то на синатре или hanami, то там больше контроля и создается ощущение что в чем-то шаришь.
Но с другой стороны, может быть ты додик-подпивас, который кроме форм ничего не делал и по-этому написал так. Еще и свои быдло-равлечения предлагаешь.
>>1984894 Ну хуй знает. Динамика динамикой, а иногда смотришь и думаешь: > Ну вот этот массив захардкожен, и меняться в рантайме там ничего не будет. Почему бы не сделать его постоянного размера? > А в этом массиве я только инты и собираюсь хранить. Зачем мне туда что-то другое пихать? Ну пусть будет массив одного типа, мне не жалко. > Ну вот эта куча метапрограммирования просто генерирует кучу известных мне методов. И нахуя делать это раз за разом в рантайме? Что будет хуже, если сделать это в компайлтайме? > Так этот метод же в любом случае будет принимать только строку, я же на неё #downcase сразу же вызываю в этом методе. Ну и чо плохого будет, если я сразу помечу, что он принимает строку и возвращает строку?
И наоборот, в кристале нилчеки порой заёбывают, и код замусоривается, когда что-то может быть нилом только теоретически. Парсить JSON и подобные структуры тоже боль, там надо компилятору доказать, что ты точно-точно знаешь, в каком формате этот жсон придёт. Но, наверное, хорошо, что заставляет немножко подумать, прежде чем шлёпать десять методов, которые потом в рантайме по пизде пойдут.
Рубикуны, поясните по-хардкору, какого хуя на последних рельсах на вполне типичном проекте без особой нагрузки (последний релиз рельс, свежий релиз mysql) я получаю такую поеботу совершенно рандомно:
ActiveRecord::ConnectionNotEstablished (No connection pool for 'ActiveRecord::Base' found.):
Как вообще возможно такое, что ПУЛ отсутствует?
Судя по сорцам рельс (ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection), эта ошибка возникает не когда нет возможности получить коннекшон из пула, а когда самого пула нет. Это блеать в моей голове не укладывается. Как так-то нахуй?
Ниакого ОСОБОЙ нагрузки нет - пару вкладой с рефрешем раз в 2-3 секунды и через 30-60 секунд, как правило, эта хуйня воспроизводится. Через секунд 5-10 эта хуйня пропадает и работа восстанавливается.
В mysql смторел кол-во коннекшонов - оно всегда 2-3 и до лимита оч далеко (лимит около 150).
В руби вообще возможно джуном залететь? На хх полторы вакансии висит. Хочу ебошить бекенд, или мне джангу копать? Синтаксиси языка очень понравился по сравнению с питоном
>>2043029 Реально, если тебе нужны вакансии прям сегодня, то лучше пхп, если можешь тихонечко работая проходить собесы пару месяцев, то вполне возможно, а если живёшь в Москве или Питере, то там ещё проще. С питоном не все так гладко, там вкатывальщиков дохуя
>>2043029 А я думаю что маловероятно попасть джуном с улицы, нужно свои проекты попилить, набраться опыта. А Python это только Django как флагман и может ещё Flask если для web. Остальных почти не видно. Ещё Web2Py (теперь Py4Web) помню.
>>2043200 Этот PHP вездесущ и неубиваем. Там тоже придётся учить какой-нибудь Laravel и ещё кучу всего, но мне кажется в мире Ruby это всё органичнее (rake, rack, puma, minitest и все все все потроха которые требуются для разработки). WordPress ещё на PHP, тоже популярная вещь.
>>2035164 Все же потыкал роду. Кажется интереснее синатры. Но у меня такое ощущение что все эти проекты вымрут. А как наверно лампово было на них что-то делать лет 7 назад :'(
>>2014774 А меня больше забавляет тот факт, что с этим там никто не борется. То есть нет борцов против них. Они уничтожают, потому что им позволяют мне кажется это еще более пиздецовее
Если я хочу вынести все константы в отдельный model.rb Как сделать его require до иницализации других моделей?
--
Есть смысл все делать через константы или можно сразу прописывать в enum? (Вторая секция на скрине) Как я понял что если эти значения будут использоваться только для select в форме, то можно без констант, а если я планирую использовать эти значения где-то в других файлах, то удобнее с ними.
>>2045523 Братишка, половина Омерики против этого. Это в "синих" штатах в основном творится ультрапиздец - трансы, ниггеры и прочие меньшинства кэнселят всех, захватили универы, где преподают теорию расы и гендерную науку, ведут пропаганду среди детишек "если ты мальчик но поиграл с куклой тебя надо сажать на гормоны и потом отрезать тебе хуй и вырезать дыру которая будет твоей пусечкой, внутри которой будут расти волосы и сочиться гной и которую тебе придется расширять(dilation procedure) каждый день до конца жизни чтобы оно не заросло". Ментально дефективные гниды(риск суицида под 40%) надели халаты и захватили дурдом. А вот "красные" штаты как то получше выглядят и там этой гадкой шизе противостоят. В целом я люблю Омерику и верю что они вывезут в результате.
>>2047634 >Есть смысл все делать через константы или можно сразу прописывать в enum? Зачем константы? В модели же объявляешь enum, к нему можно получить доступ из метакласса.
Если уж заморачиваться с отдельной сущностью - https://naturaily.com/blog/ruby-on-rails-enum в конце описан способ вынести работу со статусом в отдельный класс, но я не вижу особо смысла в этом, честно говоря.
>>2047634 >Если я хочу вынести все константы в отдельный model.rb Зачем их выносить в отдельный файл? Если речь идет о чем-то вроде Order::States, то и держи константу там, где она используется, то есть в модели Order. >Есть смысл все делать через константы или можно сразу прописывать в enum? Рельсовый enum - это ужасный костыльный контр-интуитивный антипаттерн. Сделай обычный контейнер для констант через класс/структ и держи все там. Вместо ебли с волшебными переменными и волшебными скоупами, ты будешь писать обычный руби код уровня Order.where(state: Order::States.completed) или if order.state == Order::States.completed и тебе не придется гадать, во что оно там превращается под капотом, и куда писать сырое значение, а куда волшебное название из енума. Скоупы и сокращенные записи для этого всего можно сделать элементарно.
>>2047851 Как-то давно так делал, но не нравилось что в бд хранятся 0 1 2 вместо значений которые сразу дают какое-то представление
>Сделай обычный контейнер для констант через класс/структ и держи все там Вот так и хотел сделать. На моем скрине самое нижнее где unit. Вчера почему-то не работало. Сейчас кажется ок.
>>2048095 Да. В ruby это array decomposition. Хотел что-то такое, если вместо массива мой объект: b, c = my_obj. Но не понял пока что должно быть у obj.
Зато так можно: def my_obj.to_a; [1, 2]; end irb(main):031:0> a, b = *my_obj => [1, 2]
Как вообще делают шаблоны(layouts) где пользователь может сам вставить голый html на страницу через UI или вообще создать отдельный шаблон и выбрать например разные места где будет что-то отображаться?
А если подблоки то там сохранять content_for :... и в templat'e писать yield в разных местах или ключевое слово типа <- block feed -> и потом заменять его на yieldы?
>>2059881 Ты путаешь лейаут приложения(для которого надо писать yield и который предопределен) и лейаут кастомной страницы-шаблона. Кастомная страница в твоем описании - это абсолютно отдельная сущность и рендерится она отдельно, обычно во фрейме. И там ты уже берешь эту страницу, смотришь какие в нее понапихали элементы и где их надо рендерить и в каком виде. По сути то же самое, что и рендерить например таблицу или модал, только более замудренное.
В любом случае, тебе стоит внятнее формулировать вопрос и хотя бы какой-то пример юзкейса привести. Вариантов масса. Плюс - не факт, что тебе действительно на самом деле нужны такие костыли.
>>2060129 И еще как вообще правильно такое делать? Или теперь принятно использовать hotwire. Я видел что там просто это сделать(обновить форму и показать шибки без перезагрузки страницы)
Если надо засабмитить форму через js(например, используя stimulus и ujs) нужно ли оставлять на форме local: false или делать "submit -> form#submitForm"
>>2063984 Вопрос был не в этом. Ну да ладно. Не первый раз замечаю что в треде анона(подозреваю что он подпивас-вкатывальщик), который дает такого рода ответы.
>>2064037 А если сделать так и еще начать добавлять туда member do, то все это выглядит не красиво
resources :boards, path: ""', only: [:show, :create] do resources :posts, path: "", only: [:show, :new, :create] end
>>2063569 Если тебе не нужны ни поиск, ни пагинация по постам, и ты всегда хочешь просто получать все до единого посты борды, то /boards/:id/posts. Если же поиск и пагинация нужны, то либо POST /posts/search(если делаешь нормальное API, с которым надо работать не только твоему же рельсо серверу, потому что в таком случае передавать параметры запроса в квери залупе - это моветон), либо GET /posts и там дрочи квери.
Какая реальная вилка ЗП? А то мне утверждают, что 100к чистыми это заебись зарплата, а даже 150 уже не бывает. 3 Года нормального опыта, + год попыток в руководство отделом что не пошло и добило меня. На что можно рассчитывать если сьебу? на НЕ руководящую должность, даже на тимлида не пойду
Нубский вопрос: в одном репозитории апи на рельсе, а другом- фронт на вью. Надо их развернуть на тестовом стенде. Как они видят друг-друга? Где и что прописывать?
>>2067439 У тебя не должно nil прилетать во вьюхи вместо пустого массива. Попробуй в консоли добраться до comments через промежуточную модель. Т.е. у тебя должна быть быть промежуточная_модель.comments
Если делать вот так, то работает. Там просто комментарии еще могут быть и на самих комментариях. render @post.comments.where(commentable: @post|@comment)
Почему callbacky не работают на виртуальных аттрибутах?
Есть wysiswyg редактор у которого есть метод возвращающий text. Тк в бд хранится html, я сделал виртуальный аттрибут(rendered) и пытался сделать before_validation gsub чтобы убрать \n, но оно не работает как бы я ни пытался.
А если сделать кастомный валидатор, то работает.
Что тут можно сделать? В то же время тот атрибут куда записывается html может быть пустым.
>>2068331 Симдянов из свежего. Путь Ruby актуальна, она более на реальную практику ориентирована. Хартл конечно же. Ну и Ruby. Объектно-ориентированное проектирование.
Доброе время всем, есть тут те кто относительно недавно (последние пару лет) проходил курсы на thinknetica? Как вообще ощущение? Полезно если только вкатываться? можно ли сразу после идти на стажировку/джуном. Сам я уже 30летний лоб почти, просто хочу перекатиться из инженеры в погроммисты (ну или нет). Интересует ваше мнение (отзывы варируются от хороших до плохих, так что интересно еще.
>>2077395 Я не покупал курс, просто смотрел старый слитый курс, мог сказать что это отличный курс, но только не для новичка, т.е. явно должны быть пара пет-прожектов. Там основная фишка в том что дают понимание как работают в команде, т.е. гит, трекеры и т.д. Если вкатышь, то думаю этоит курс не самая лучшая идея, там уже предполагается что чел понимает руби/рельсы.
>>2077544 Спасибо за ответ, я тоже скачал слитый курс, точнее два курса (ruby on rails с нуля и профессиональный курс, а сейчас они эти два курса в один объеденили), ты видимо смотрел только профессиональный курс, я пока смотрю базовый - все разжевывают с нуля, вроде понятно, как дальше будет не знаю, курс через месяц уже стартует надеюсь подтяну за этот месяц что непонятно.
>>2078437 Thinknetica пожалуй лучший курс по RoR, из русскоязычных. Но лучше идти туда после прочтения Симдянова (Ruby) и Хартла (Rails) - это сильно ускорит прохождение курса (первые два блока) и сэкономит деньги на обучении, всего месяц на книги потратишь
>>2077395 >>2077544 Слитый вряд ли хорошо подойдет для того кто идет в айти. Если ты с джанги, ларавеля (добавь в список по вкусу) перекатываешься - может быть как роадмап проканает. На деле у них идеальная антипиратская система - 80% выхлопа в домашках которые тебе будут с высокой вероятностью возвращать с комментариями к твоим пулл реквестам.
>>2078885 я инженер, перекатываюсь из solidworks ))) >80% выхлопа в домашках которые тебе будут с высокой вероятностью возвращать с комментариями к твоим пулл реквестам. ради этого и пошел, а курсик сейчас отсматриваю ,чтобы потом попроще было (у них, насколько я понял, очень интенсивная программа)
>>2078140 Какая-то лютая унылость вышла. Один спикер выступал 15 минут, второй - 20. Оба в своей тематике откровенно плавают. Организаторы, как выяснилось, даже не смотрят предварительно доклады спикеров (они идут в записи) и не знают сколько они длятся. Рукалицо. Предыдущие евроновские митапы были значительно лучше, в этот раз что-то пошло не так.
• Ruby, нейрофизиология и читаемый код. Петров Григорий, DevRel в Evrone • Service Object в Rails. Олег Федоткин, Head of PaaS СберМаркет • Чем другие фреймворки лучше Rails. Кирилл Мокевнин, основатель Hexlet
>>2068328 >Как посчитать nested comments? Никак. > parent_id Не поможет. Если комментарии многоуровневые (пост > ответ -> ответ на ответ -> ответ на ответ на ответ) то это решается стандартными средствами в один проход. Решений несколько: 1 хранить путь от поста к текущему комментарию в строке «parent_id/parent_id_parent_id/…) и для получения всей ветки where path like 2 использовать CTE с рекурсивным запросом, это называется транзитивное замыкание графа так и гуглиться 3 использовать гем, который совершит обход дерева за тебя путём нескольких запросов к БД со стороны приложения, я такой как-то видел, traversable вроде называется, генерит кучу запросов конечно же
>>2083768 > Если выставлять на всех комментариях commentable: @post, то можно считать. Только к посту, но не к ветке. > Если на каждом комментарии прописывать parent_id, то можно получать ветки where(commentable: post, parent: comment) И для каждой ветки (каждого комментария, которыц является веткой, то есть присутствует в других комментариях в поле parent_id) по запросу > Можно их подгружать сразу и потом при необходимости грузить ответы на комментарии. Ага и каждую ветку придётся грузить отдельным запросом
>>2083768 >>2083809 Это все неэффективно в плане количества запросов. Связано это с теп, что иерархическая ака древовидная ака графовая структура хранится в «плоской» sql базе в виде таблиц с записями.
>>2083832 Да конечно плюс ага. Пост Коммент 1 Коммент 1 Коммент 1 Коммент 1 Коммент 2 Коммент 3 Коммент 2 Коммент 3 Коммент 4 Коммент 1 Удачи тебе вот такой тред по одной ветке грузить без подветок,охуеешь
Особенно после того что написал тут >parent_id/parent_id_parent_id/…
> совершит обход дерева за тебя путём нескольких запросов к БД со стороны ....генерит кучу запросов конечно же Поэтому и лучше все грузить по отдельности.
Блять это то же самое что и
= post.comments.where(parent_id: nil) do |comment| __=render comment
>>2084698 >Оказалось это был ./bin/webpack-dev-server Тут не подскажу - тупо не использую.
>Кстати, как можно ускорить билд, когда используешь tailwind. >Заметил что при редактировании js файлов(контроллеров stimulus), он быстро все компилит. ХЗ, опять же - не работал с tailwind. Вроде у них свои фишки с минификацией.
>И еще такая проблема. Я подсел на firefox и он тоже со временем начинает пожирать память, если часто обновлять страницу Пользуюсь исключительно FF - не наблюдал.
>>2083810 >Это все неэффективно в плане количества запросов. Связано это с теп, что иерархическая ака древовидная ака графовая структура хранится в «плоской» sql базе в виде таблиц с записями. Почему бы не хранить тред в виде вложенных массивов? Вроде бы монга такое умеет.
как реализовать структуру такого вида? [{ id: int, title: string, todos: [ { id: int, text: string, isCompleted: bool } ] }] суть: нужно запилить хуйню как на пикрил. идеи: создать отдельную модель todo и соединить с первой project. как это сделать хуй знает, может кто шаги объяснить? или мб похожий проект на гите есть
Скажите кто использует рубимайн, можно ли не покупая просто скидывать триал версию и так использовать пока вкатываешься? потом можно было бы и купить 6 тыс. руб в год вроде не дорого...
Я просто блять не могу больше так, пытался уйти на вим с солорграфом или вскоуд, но это всё работает так будто всё в альфа версии, там баг, тут баг... тут работает не до конца и так далее, это не говоря про постоянную настройку, хочется просто, чтобы из коробки было дохуя фич и они работали.
Понравился синтаксис языка, причем ещё давно, хочу вкатиться. Насколько критично то, что я не скачал все пакеты? Имею в виду, установил только минимальное количество файлов. Есть ли возможность кодить так же на Андроиде?
Если я сделаю hiddenField.name = "post[files][]", то он загружает файлы, но file.name получается "files"
В контроллере в permitted_params есть (...,files: [])
Я хочу чтобы отображалось имя файла. Нужно в ручную делать attach или как? Если сделать post[files][${hiddenField.name}] То он будет ругаться на unpermitted params. files: [filename=>blob_id, filename2=>blob_id} Наверно можно сделать accepts_nested_attributes, но судя по примеру по ссылке, там на гифке все работает без пердолинга --
Так же вопрос. Когда я кидаю файлы, они сразу начинают загружаться. В терминале INSERT INTO "active_storage_blobs"
>>2085671 А что тебе не понятно? super(argument) - явно передаёшь какой-то аргумент super 1 передаются все аргументы, которые пришли в метод super() - без них
Анончик, прошу совета у тебя, о мудрейший. Что ты используешь на проектах для аналитики? У нас есть некий дешборд для каждого клиента где показывается сколько было постов, сообщений, загрузок файлов и прочих событий за какой-то период. Данные эти все берутся прямо из базы. Ожидаемо, оно начинает подлагивать так как данных много и чем больше клиентов будет тем больше будет лагать.
Я в сомнениях какой сервис предложить чтобы слать туда все эти события а потом строить дешборды по ним. Из нужных фич - это фильтрация событий по разным параметрам(тип события, user_id, дата), агрегация(типа выбрать 5 топовых юзеров, посчитать количество за период). Я работал раньше с mixpanel, он вроде заточен как раз под такие штуки и там есть довольно гибкий язык запросов, но он вроде дорогой. Есть еще всякие amplitude но про них я ничего не знаю. Или брать какой-нибудь амазоновский dynamodb/redshift/kinesis и пердолиться с ним.
>>2089468 >>2089439 В общем решил для тренировки вашу задачку (сам в байтоебле до этого замечен не был). Вопрос в том, решил ли я её самым оптимальным образом или можно лучше? Есть ли ещё подобные задачки?
>>2089545 Я надуюсь, что ты тот анон, что пришёл с вопросом. >Вопрос в том, решил ли я её самым оптимальным образом или можно лучше? Так это не задача, это задание на закрепление использования поразрядных операторов. Оптимально было бы использовать битовые структуры, чтобы самодокументирующийся код получился, но я про руби не знаю, есть ли тут такое вообще.
>>2089631 >>2089653 Я купил книгу эту >>2085879 читаю и делаю упражнения. Но этого, с кодировкой не понял. Я думал что опытные рубисты поймут в чем суть задания и объяснят мене.
Вышел какой-то СИ-боярин и говорит что что-то там накодировал. Ответ убил
>>2020767 Двачну вопрос, я такой же ньюфаг. Зачем мне как заказчику, например, делать выбор в пользу руби, если питонистов и пхпшников на рынке на порядок больше?
>>2090308 > Зачем мне как заказчику, например, делать выбор в пользу руби, если питонистов и пхпшников на рынке на порядок больше? В том, что заказчику похуй на том что ты там делаешь, он смотрет на готовый продукт и проверяет на наличие фич кликая по сайту, а что там под капотом в чёрной коробке ему глубоко похер и уж тем более на чём оно написанно.
Как бы вы сделали на рельсах полное семейное дерево, в котором есть по два родителя (а не просто parent - child, это просто)?
Я сначала делал class Cat, который может быть как родителем, так и ребёнком, и класс Litter (помет котят), у которого есть father_id и mother_id, а у каждого котёнка есть litter_id. Оно работает как-то хуёво у меня.
Может, сделать AbstractCat, и от него наследовать BreedingCat и Kitten? А если, вдруг, котенок подрастёт и останется в разведение, можно будет перенести его в таблицу breeding_cats. Последних все равно будет относительно немного, хз.
Завтра ещё поковыряю и покажу конкретный код, если надо
>>2090936 >Как бы вы сделали на рельсах полное семейное дерево, в котором есть по два родителя Родственные связи - отношение одного человека ко многим, соответственно, есть модель Человек, а так же модель РодственнаяСвязь, которая ссылается на двух людей и содержит тип отношения, Человек через ассоциацию has_many :through получает доступ ко всем своим родственникам.
>>2091698 Ещё попытался сделать так, что Cat has_many :kittens, through: :litters, as: :father/mother, но это уже на потом, если у меня самое основное не работает
>>2091698 Для класса Litter нужно прописать foreign_key в belongs_to ассоциациях, чтобы AR знал, на какие id опираться для извлечения данных, ты их прописал в миграции, но это должно быть прописано в модели в первую очередь.
Ассоциация Litter has_many :kittens не будет работать, так как нет данных о конечных id Cat для извлечения.
belongs_to содержит foreign_key внутри таблицы has_many содержит foreign_key во внешней таблице
Вообще есть ощущение, что у тебя логическая ошибка при построении моделей, потомство по-сути подмножество котов, то есть входят в модель Cat, а каждый кот - чье-то потомство, одна сущность размазана по двум моделям, по этой причине возникает сложность с описанием ассоциаций.
>>2091778 >Ассоциация Litter has_many :kittens не будет работать, так как нет данных о конечных id Cat для извлечения Но ведь это у меня как раз-таки и работало даже до того, как я расплакался и пришел на двач >Вообще есть ощущение, что у тебя логическая ошибка при построении моделей, потомство по-сути подмножество котов, то есть входят в модель Cat, а каждый кот - чье-то потомство, одна сущность размазана по двум моделям, по этой причине возникает сложность с описанием ассоциаций. Но мне надо, чтобы была группа котят, родившихся от одной пары в один день. Вроде логично реализовать так...
UPD: методом проб и ошибок пришёл к пкрлтд. Всё работает как задумано, но has_many :litters, foreign_key: 'father_id' отменяет has_many :litters, foreign_key: 'mother_id'.
Это проблема именно на стороне модели Cat, т. к. Litter всё переваривает, и в базе конфликтов никаких нет. Запрос такой: SELECT "litters".* FROM "litters" WHERE "litters"."father_id" = ?
Самое простое решение, что я вижу - переписать в классе Cat метод #litters, на Litter.find_by, но с условным оператором, который будет проверять пол кота, на котором вызывается запрос.
И в целом как, не сильно говно? Я лишнего не понаписал вроде, постарался максимально компактно записать всё.
>>2092645 >UPD: методом проб и ошибок пришёл к пкрлтд. Всё работает как задумано, но has_many :litters, foreign_key: 'father_id' отменяет has_many :litters, foreign_key: 'mother_id'.
А нафига ты их разделяешь? У тебя же есть пол в модели cats.
Без россиянина барина как-нибудь обойдусь в крайнем случае, но PHP и прочую погань учить не буду. Брал то что по кайфу. К тому же PHP сейчас оброс сахаром, стал каким-то Java подобным, как франкенштейн
>>2093881 >Мамке и папке. Ты не понял. У тебя это одна и та же модель Cat, это просто алиасы. Из-за этого ты два foreign_key делаешь в одну таблицу. Тебе вообще не нужно belongs_to: father, belongs_to: mother - беспричинно усложняешь, с учетом того, что пол (sex) у тебя в модели Cat уже есть (кстати, почем он binary, а не integer???)
Сделай belongs_to: parent, class_name: 'Cat'
Выборки делай методами или скоупами.
Например: def father parent.where(sex: :male) end>>2093881
>>2094278 > binary Интереса ради тыкнул. Охуел, когда увидел, что это руби-строки "1" и "0", уже поменял.
> belongs_to :parent А я не понял, а в таблице, получается, на каждый litter только один parent_id будет?
> методами или скоупами Да со стороны litter у меня уже всё работает. К стандартным только пикрлтд добавил (в Cat), вроде нормально. Просто я пездюк без опыта, и мне непонятно, дебильные ли это костыли или оптимальный способ решения.
>>2023256 я конечно сам рубист уже много лет, много чем кроме руби пописал, в общем руби нравятся, но больше всего ненавижу в руби всяких шизиков как ты > без шизосмеси методчейнов и функций от функций. если ты про замыкания и возможность передавать функцию как аргумент? А в руби так нельзя, да? А блядь там же сахар, что функцию можно без скобок вызывать, поэтому теперь нельзя реализовать нормально передачу функции как объект в языке. Поэтому они ебанули блоки, вот это решение, не шизоидное. Ну ок, теперь пишем ебаные блоки, зато скобки не пишем, аа блядь забыл, в рубишном стайлгайде почти всех компаний, если аргументов больше 1 то скобки ставим. Хуево вышло, тебе так не кажется? Да и ебанули эти блоки а толку, сахарного декоратора тоже нет, в жопу себе эти блоки можешь засунуть > От двоеточий после def и if, которые абсолютно никакой информации не несут в руби ты енд в конце ставишь, но зато без : и табуляции. Да даже если ненавидишь вложения по табуляции, в с подобном синтаксисе со скобками {} лучше, нахуй эти end. Лучше потому что если у тебя легаси метод на овер 200 строк, ты в виме, да и в любом редакторе из коробки найдешь конец любого блока. в случае руби, тебе нужен специальный парсер, который найдет найдет нужный енд. ДЛЯ МЕНЯ ПИЗДЕЦ КОРОБИТ > нет половины методов, которые в руби искаропки. Половина из них делают одно и тоже, но мб чуть по другому. Либо одно и тоже (алиас на другую функцию), но зато когда какой-нибудь умник в коде решит выпендриться знанием более in english speaking метода, тебе придется лезть в документацию и тратить время. > Ну и итераторы в руби лучше, чем for и while, если проникнешься. про list comprehension ты конечно же не слышал
Собираюсь прочесть пикрелейтед (2014г). Знаю что есть более свежие книги, но хочу начать с этой Если кто читал, скажите что из написанного потеряло актуальность
>>2020767 Руби нужен когда ты заебался бороться с дизайном языка-нейм и наконец понял, что хочешь просто писать программы обычным английским языком, по мере возможности. Начинать с руби - не могу порекомендовать, я не представляю как такой человек потом выйдет в остальное дикорастущее ИТ и не сдохнет от первого же разрыва шаблона, которых там как говна за баней, как будто придумывать всякую экстравагантную хуйню - являлось основной целью дизайнеров других ЯП, чтобы быть нитакими как все.
>>2098286 > Начинать с руби - не могу порекомендовать, я не представляю как такой человек потом выйдет в остальное дикорастущее ИТ и не сдохнет от первого же разрыва шаблона
>>2098920 Я вкатыш. Только начал читать книги. Прошел этот курс https://rubyschool.us/ и от них бесплатная книга книга по руби "для романтиков"(не рельсы. В ссылке что скинул) Покупал электронную эту https://bhv.ru/product/samouchitel-ruby/ На русский как я понял книги очень хуево переводят. Спустя года 3 после релиза.
>>2098286 Ну хуй знает. На руби можно тихо-спокойно ознакомиться с основными концептами программирования без особой ебли если не считать ебучий линукс с RVM)))))))))))))). Если бы я начинал на питоне или, ещё хуже, на чём-то джаваподобном, я бы через три дня забросил и пошёл на завод работать.
Консоль Interactive Ruby пишет про "NameError" когда пытаюсь запустить .rb-файл, но при этом открывает файлы если открыть их непосредственно из папки, в смысле нажать на файл и открыть. Так же не могу скачать пакеты, по крайней мере команда на скачку графических пакетов ни к чему не привела. Кто-нибудь знает в чем дело?
Почему чмохены на реддите так форсят heroku. Это же оверпрайс какиш. Возможно лет 10 назад это было годнотой, но сейчаc...
Мне лишь нужно показать свой высер в резюме. Хотя было бы неплохо чтобы оно и потом работало. Весь этот пердолинг с капистрано не радует - еще ставить 4 гема, гадать с конфигами и вообще какого хуя я должен деплоить? Когда покакал, говно смывается по нажатию кнопки, хочу чтобы тут было так же. vps на 1гиг есть
До этого был опыт пердолинга с миной(но ее забросили) и даже докером и кубом. Но я не хочу пердолиться. Хотя самый простой вариант это все завенуть в композ?
>>2119759 >>2119627 И чтоб два раза не вставать, на тебе картинку, которую тут давно не постили, прикинь для себя, чего ты еще не знаешь. А то, блять, взяли моду - рельсы дохуя простые и быстрые. Да, простые и быстрые. Для тех кто знает что делает и как это работает по ту сторону экрана.
Я ньюфаня. Больно не стукайте. Задача. На главной странице есть несколько радиокнопок. При нажатии на кнопки нужно передать параметры выбранных кнопок и редиректнуть на страницу с функционалом экзамена или обучения.
Линканите на текст или видео гайды как это реализовать.
>>2123298 Using StimulusJS and nested forms, we create the first parts of a questionnaire. Dynamic surveys can be difficult to architect and maintain. In this episode, we take a simple approach to creating questionnaires.
Когда ищешь работу и есть выбор, то (все пункты ниже заканчиваются вопросом что лучше/что бы вы выбрали) - Если есть выбор большой(москва/спб) и маленкой(хотя она может и не маленькая) ноунейм(в миллионнике), то - Если в списках требований/желаемых вещей работадателя есть то что мне не нравится(например redux лол), то - Если компания в какой-то степени государственная и многие ее не любят, то
+ Что делать с проблемой, когда есть какой-то опыт, но из-за всяких тараканов в голове и anxiety(как это назвать) в целом игноришь попытки потенциального работадателя выйти на тебя?
>>2127048 Ебать быдло на пике) Ничего не делать, а идти на завод гайки крутить. На первое время полгода можно поработать на низкой запралате в говне, а потом съебать на удаленку в нормальную компанию с нормально зарплатой.
Щас бы в гавне монолитном ковыряться олдовом прокисшем и протухшем пусть и за биг бабки, когда за те же бабки можно и на гоше и на ноде писать бекенд и при этом держать актуалочку на рынке, купаться в предложениях и офферах. Пописил и покакал на дурачёчков рубистов. Чё потом то будете делать, когда всем нужны будут гоферы и растеры, а?
>>2127785 >Щас бы в гавне монолитном ковыряться олдовом прокисшем и протухшем пусть и за биг бабки, когда за те же бабки можно и на гоше и на ноде писать бекенд и при этом держать актуалочку на рынке, купаться в предложениях и офферах. Пописил и покакал на дурачёчков рубистов. Чё потом то будете делать, когда всем нужны будут гоферы и растеры, а?
Есть, только о них никто не знает. Зачем мне пилить новый продукт или новую фичу на нонейм или давно забытых технологиях, когда есть то, что специально создавалось под нынешние реалии? В этом десятилетии правят микросервисы, а также js, go, python, kotlin. Рубинчег же ваш застрял в прошлом десятилетии и будущего у него нет. Да, последние баксы вы ещё сможете выпросить у Джона ближайшие пару-тройку лет, но потом с позором будете выпнуты за дверь с вашим камешком в жопе. А то, что ты перечислил - нонейм параша, пригодная только для домашних поделок уровня lab1. Ещё бы какой-неть vlang или io написал.
>>2127920 >>2127932 Вообще проигрываю. Ты читать умеешь? То что появилось большое количество подпивасов-вкатунов, выбирающих то что сейчас на слуху и задающих больше вопросов на so, ни о чем не говорит.
>>2127940 То же самое, что и ты. Ты на график руби зайди на своём тиобе и посмотри, точно так же популярность падает потихонечку, а js, python, go наоборот на подъёме.
> Как ты вообще оказался в мертвом треде. Так и оказался, в поисках нового ЯП для вката. За подпивасные мемы не шарю, но выглядит смешно. Про руби ничего естессно не знаю и просто решил потроллить а-ля поридж-way. Сам пишу на котлине уже почти 3 года и чутка на питоне, до этого год на ц/ц++, но чёт норм работы на бэке нет на котле, всё завязано на бумерскую джаву в банках и громоздкий спринг, а я не хочу джаву и не хочу банки, мне просто ко-котлин нравится! Вот и решил чего-другого мб изучить илитного, чтобы не быть одним из 999999999999999 вкатунов и с перспективой работать на омерику удалённо + валюту получать. От го меня стошнило после часа обучения, а в жопаскрипт вкатываться чёт лень, слишком много всего, хотя поверхностно энивей изучу. Питон мне нравится, если честно, но отпугивают ласт ньюс, что типо питон сейчас это больше про ML нежели веб. В общем ищу куда свою попку пристроить и вспомнил, что есть же ещё такой прекрасный язык как руби, к тому же особенно популярный на западе, правда все его называли мёртвым ещё пару лет назад. Решил вот погуглить стафф, узнать чё кого и не увидел особо опровержения. В т.ч. всякие забугорные утуберы все как один говорят, что ruby aint dead yet kaneshno but js or python are better choice for perekat. Мне на самом деле похер на все эти микросервисы, ноджс-ы и прочий хайповый хлам, но сидеть без работы не хочется, если вдруг что не получится на новом месте или захочу перейти на новый проект. Алсо есть приятель, который уже 3-4 года прогает на эликсире, до этого 2-3 на эрланге. И крч его прям уничтожают на собесех, как он говорит. Типо на сеньёра хер пройдёшь, а на забугорные ваки онли сирики и нужны. На рубях, думаю, похожая тема.
>>2127869 >>2127981 >Щас бы в гавне монолитном ковыряться олдовом прокисшем и протухшем >Пописил и покакал на дурачёчков рубистов >Зачем мне пилить новый продукт или новую фичу на нонейм или давно забытых технологиях,
> В этом десятилетии правят микросервисы, а также js, go, python, kotlin. > Про руби ничего естессно не знаю и просто решил потроллить > Сам пишу на котлине уже почти 3 года и чутка на питоне
>>2128031 И? Я ж признался уже, что писал всю эту хуйню несерьёзно, просто чекал реакцию рубироидов, кто как дефаться будет. На котилне кст всё это время зависал на микросервисных проектах, правда, это скорее микросервисы ради микросервисов были у ребят, а не действительно осмысленный выбор. Как минимум понял это из недавней проблемы, которая у нас возникла в результате распределённых транзакций. Казалось бы проект такая херня простая, но из-за того, что "модно-молодёжно поэтому выбираем микросервисы" уже проблему нажили пацаны себе. Пришлось потом читать про паттерн saga от инфоцыгана с microservices.io, но понял, что внедрив эту шляпу в наш проект, я лишь ускорю процесс его гибели. А вот если бы начинали они с монолита... Ну да ладно, к чему это я... Я ж просто стаж набиваю и опыт хоть какой-то на бэке, потому что джунки с нулевым попытом нынче не котируются у ХРок вообще. А сейчас, когда знаний хоть сколько-то прибавилось, то с ужасом осознал, что котлин то без джавы никуда, хех, а это или ведроид, что не моя тема как бы, или банки-банки-банки и финтех стартапы, где нужны сеньёры на зарплату джуна. Такие дела. Короче убежал от системного программирования, но, походу, немного не туда, куда хотел. Теперь вот думаю какую некст дверь выбрать, чтобы не прогадать на ближайшие лет 5.
>>2114830 Гемы для руби вообще или для рельс? Если первое, то зависит от того, что тебе нужно выполнить. Если второе, то стандартную поставку освой хотя бы, а дальше сам поймёшь.
Отдельного треда для веб-пентеста нет, поэтому спрошу тут. Как следует проводить поиск уязвимостей в сайтах? Можно ли тут обойтись одним Burp Suite Community Edition, или Professional-версия обязательна? Нужно ли юзать другие утилиты для поиска уязвимостей (к примеру, nikto)? Господа рубисты, на вашем замечательном языке был написан Metasploit, наверное, вы можете все это знать.
>>2129984 Прописывая initialize в контроллере ты переписываешь родительский ActionController::Base#initialize, у контроллера есть before_action для таких вещей.
>>2131560 Смотря что умеешь, от 20 до 50, в офисах ДСа побольше, через полгодика если не долбоеб и все получается можно уже просить нормальную ЗП. Меня с опытом полгода в пыхе взяли на ждуна за 50, хотя я как оказалось рельсы не знал нихуя, ларавель совсем другая история.
>>2131891 Ларавеля было мало и в основном мы юзали битрикс и я скорее от него ушел. А так в целом нормально, в рельсах есть куча полезных гемов упрощающих жизнь от Spyke который делает крудошлепство со сторонней апишкой таким же как с моделью, всякие интеракторы, органайзеры которые раскладывают все по полочками и всякая сложная бизнес логика понятна с первого взгляда и прочая подобная приятная фигня. Плюс в рельсах много чего делается автоматом, тот же роутинг ты описываешь более изящно контроллеры цепляются автоматом и методы для круда тоже. Сам синтаксис руби поприкольнее и более читабельный ты как будто бы пишешь на английском, например вместо for ($i=0; $i < 10; $i++) { ... } пишешь 10.times do ... end, RSpec позволяет сделать большее чем PHPUnit, тесты тут писать более удобно. Обратная совместимость работает хорошо, любое говно мамонта заведется на свежей версии руби. Короче в целом поприятнее чем с пыхой, тем более она сейчас пошла в сторону жабы с шарпом, из минусов я бы наверное выделил то что сразу в коде разобраться тяжело, поскольку привыкаешь видеть видеть в других языках немного другие конструкции, другой синтаксис. Плюс я привык в идеешке проваливаться в код фреймворков и либ, а тут это почти бесполезно, кроме чтения комментариев в коде, поскольку код там зачастую написан очень сложным для понимания. Еще из минусов могу выделить то что идеешка тут не видит неиспользуемые методы и классы и никак не подсвечивает, соответственно если кто-то забудет удалить старый неиспользуемый код, то он так и останется. Еще здесь нет аналога PHPDoc или JavaDoc, допустим нужно как-тот было пометить класс деприкейтед, но оставить рабочим, а вот и хуй. Да и вцелом из-за сахарности идеешка не всегда соображает и понимает что тебе нужно. Допустим тех же жабу или пыху идеа может понять с полу слова и часто предлагает более правильные варианты автокомлита и по ctrl+клик ныряет куда нужно и тд и тп.
>>2134934 Сохраняем в переменную user результат выполнения User.authenticate(...). Если в user что-то передалось и он не nil/пустой, то выполняем последующий код.
>>2134934 user = User.auth - выражение, возвращает оно присвоенное значение. #authenticate, скорее всего, возвращает false или nil, если что-то пошло не так, и в локальной переменной user будет false или nil, тогда условие не выполнено.
Если там что угодно ещё (объект User, true или вообще любой объект), то это truthy-значение, и тогда условие выполнено. При этом и присвоение переменной user тоже произойдёт, и её можно использовать.
Наверное, при желании можно сделать свой какой-то объект, который будет falsey, но это извращение какое-то.
Рельсаны, а нельзя же экшн контроллера вызвать отдельно, вне запроса (например, из модели)? Я правильно понимаю, что, если у меня возникла такая необходимость, то пора рефакторить к хуям и выносить код из контроллера в services?
1-Вопрос Сделал я игрушечный проект. Выложил его на гитхаб(.gitignore не правил).
Выкачиваю его с гитхаба, и не могу запустить.
В проекте использовал 2 установки через yarn. Это значит мне и на выкаченном проекте тоже надо делать эти две установки?
2-Вопрос Допустим я хочу скачать чей-то проект с гитхаба. Как мне его запустить у себя? Нужен какой-то менеджер версий руби? Или бандлер сам установит нужную версию?