- 65
- 26 872
Sergei Udalov
Russia
Приєднався 16 гру 2019
Начало практики
Начинаю практику ruby open source. Каждый желающий может начать программировать в реальном проекте и получить совет товарищей.
Вход сюда github.com/HeavyTechRuby
Вход сюда github.com/HeavyTechRuby
Переглядів: 392
Відео
Правильный MVC в Ruby on Rails
Переглядів 5077 годин тому
Паттерн MVC широко используется в индустрии веб-разработки, но так же чато понимается неправильно. Предлагаю погрузиться в теорию описания MVC и разобраться, что именно мы понимаем не так. Какие компоненты Ruby on Rails относятся к Model, View, Controller? В конце ответы на вопросы. 00:00 intro 01:30 история 04:48 теория 18:30 MVC в Ruby on Rails 27:05 документация Rails 36:22 вывод по MVC 37:3...
Ruby собеседование на позицию Middle
Переглядів 1,8 тис.9 годин тому
Какие вопросы могут задать тебе на собеседовании и как не провалиться? Как создать хорошее впечатление, а чего лучше не делать. К чему готовиться? В конце выводы и рекомендации для кандидата. 00:00 Intro 03:45 Изучение резюме 14:05 Small talk 20:00 Причины смены работы 33:42 ruby 35:30 Ruby on Rails 54:10 HTTP 01:00:10 Live coding 01:08:12 Code Review 01:25:29 разбор ревью 01:30:50 индексы бд 0...
Ruby стартапы, сисадмины, выбор ментора и свобода слова в IT
Переглядів 882День тому
Таймкоды 00:00 - Intro 01:57 - Команда 04:43 - Сисадмин 40 08:36 - Ruby стартап 11:30 - как выбрать ментора 14:40 - ruby умирает в России 24:05 - Ruby on Rails Monolith vs Go 29:01 - Новости Ruby 33:38 - Ментальное программирование 36:19 - Свобода слова в IT 42:36 - Следующий гость Подкаст слушать тут heavytech.mave.digital Новости - rubyonrails.org/2024/5/17/this-week-in-rails - www.ruby-lang....
Руслан Байгунусов - Моя карьера в разработке: опыт, инструменты и советы
Переглядів 49914 днів тому
В этом видео Руслан поделится своим опытом работы в крупных компаниях, расскажет о преимуществах TypeScript как первого языка программирования и своих впечатлениях от использования ассистентов кодирования, таких как CoPilot и Codeium. Кроме того, Руслан объяснит, где и как используется JavaScript, и как он начал свою карьеру как разработчик. В конце видео - советы начинающим разработчикам и отв...
Системность и проактивность, перспектива IT-рынка России, устроиться на ruby-разработчика, стрим!
Переглядів 52921 день тому
Системность и проактивность, перспектива IT-рынка России, устроиться на ruby-разработчика, стрим!
100, Ruby on Rails, устроиться на работу мечты, собеседование, Павел Дуров
Переглядів 1,1 тис.Місяць тому
100, Ruby on Rails, устроиться на работу мечты, собеседование, Павел Дуров
Анализ, обсуждение тем предстоящего митапа от СберМаркета, скорочтение
Переглядів 480Місяць тому
Анализ, обсуждение тем предстоящего митапа от СберМаркета, скорочтение
Стать программистом, Unix, ООП, Архитектура, Agile, слепая печать
Переглядів 2352 місяці тому
Стать программистом, Unix, ООП, Архитектура, Agile, слепая печать
Как я провалился со своим pull-request в Sequel
Переглядів 7505 місяців тому
Как я провалился со своим pull-request в Sequel
"RSpec. Codereview" мой доклад на Ruby Meetup Evrone 2023
Переглядів 1116 місяців тому
"RSpec. Codereview" мой доклад на Ruby Meetup Evrone 2023
"RSpec. Эффективность", Сбермаркет Meetup Ruby 20230
Переглядів 596 місяців тому
"RSpec. Эффективность", Сбермаркет Meetup Ruby 20230
Анализ выступления "100 бед - один sorbet" Светланы Савельевой на RubyRussia 2023
Переглядів 2987 місяців тому
Анализ выступления "100 бед - один sorbet" Светланы Савельевой на RubyRussia 2023
После того, как ты посмотришь это, ты не сможешь не писать тесты для своих программ
Переглядів 2988 місяців тому
После того, как ты посмотришь это, ты не сможешь не писать тесты для своих программ
RSpec. Поддерживаемость (выступление и обсуждение)
Переглядів 1078 місяців тому
RSpec. Поддерживаемость (выступление и обсуждение)
Комментарии портят поддерживаемость кода
Переглядів 608 місяців тому
Комментарии портят поддерживаемость кода
Как разделить большой класс на модули и ухудшить свой код
Переглядів 488 місяців тому
Как разделить большой класс на модули и ухудшить свой код
«Чистая архитектура Ruby on Rails приложений Прагматичный подход» Сергей Удалов, Баланс Платформ
Переглядів 1118 місяців тому
«Чистая архитектура Ruby on Rails приложений Прагматичный подход» Сергей Удалов, Баланс Платформ
Да.
Генри Кавилл проводит собеседование - теперь я видел всё)
Спасибо! А как тебе само собеседование?
Бодипозитивные модели !
Привет. Расскажи, пожалуйста, про идею с data mapper
Я бы хотел сделать заготовку для репозиториев, которые достают не DTO, а живые доменные объекты. Это нарпавление разработки пока
идеи буду собирать тут github.com/HeavyTechRuby/ideas
@@SergeiUdalov А какая основа у репозиториев? rom.rb?
@@ivanrudskikh2893 тут у меня пока нет уверенности. Как вариант. Я в ближайших видео расскажу свои мысли на этот счет. А дальше - предлагаю подключиться тебе со своими идеями. Уверен, придумаем интересно
@@SergeiUdalov мне просто показалось, что ты уже используешь репозитории и они тебя чем-то не устраивают. У нас в проекте репозитории не используются, но мы смотрим в их сторону)
Если всю бизнес логику размещать в модели, то как при этом не нарушать SRP?
Если продолжить твою мысль, то еще один слой нам тоже не поможет, так как бизнес-правил у нас будет много. Так что и в сервисный уровень их поместить не удастся без нарушения SRP. У слоя model есть одна ответственность - содержать в себе core-данные и бизнес-правила. И никакого нарушения. Сформулируй, пожалуйста, уточнение своего вопроса.
@@SergeiUdalov В моем понимании сервисный объект отвечает за один бизнес кейс. Единственная причина для изменения класса этого сервиса - изменени требований бизнеса. Получается SRP. Толстые модели придется изменять чаще, т.к. они содержать в себе множество бизнес кейсов.
@@ivanrudskikh2893 для меня model != active record. Если есть несколько бизнес кейсов - их можно выделить в отдельные классы внутри модели. Не все классы в models должны быть ActiveRecord.
@@SergeiUdalov отдельные классы внутри модели - что это? Ни это ли еще один слой абстракции?
@@ivanrudskikh2893 MVC - это паттерн, в котором M - Model - слой. В этом слое много классов, которые отвечают за разные аспекты бизес-логики и core-данных. Если нужно, можно разделить Model на слои, да - нужно сформулировать их ответственность. Но можно и не делить, а считать, что все классы находятся в одном слое. Например, расположить UseCase в модели норм, но JsonSerializer уже нет - это View. А что ты имеешь ввиду по моделью?
Спасибо за выпуск. Подчерпнул для себя много интересного. Видео про опенсорс тоже зашло интересный проект
Спасибо! Заходи еще. Ты уже подписан?
Сергей спасибо за видео, мне как джуну интересно было послушать
Рад, что интересно. А где работаешь? Чем занимаешься?
Почему генерация json относится к view? По сути мы получаем запрос с фронтенда, в каком формате и какие отдавать данные. Запрос обрабатывается сервером и перенаправляется в определенный контроллер. В контроллере содержится логика обработки и генерация данных. Когда данные сгенерированы, мы их передаем в view и задача view отобразить сгенерированные в контроллере данные. Опять же, в каком формате отдавать данные определяется в контроллере на основе параметров запроса от браузера. Я могу ошибаться, но мне кажется, что правильный ответ генерация файла происходит в контроллере, а форматирование данных в view.
Одни и те же данные могут быть представлены клиенту, как html/json/xml. Выбор формата лежит на контроллере, так как он знает, что за запрос он обрабатывает. Но формирование конечного сообщения - это view. Json - это не данные
@@SergeiUdalov Я не докапываюсь, просто хочу для себя понять. Согласен с тем, что html/json/xml - это форматы данных. Условно правила форматирования. Согласен с тем, что форматирование сырых данных может происходить во view. Но вопрос заключался где генерируется json. Вопрос именно в генерации. Условно для json у нас вообще может не быть view, но если мы в контроллере скажем отображать данные в формате json и от браузера придет запрос на отображение данных в формате json, то мы их получим даже без наличия view. Мне кажется, что генерируется происходит именно в контроллере. Например, если мы захотим сгенерировать скажем данные в формате pdf. По сути у нас не будет view, а будет метод, генерирующий код файла и мы его просто отразим в браузере. В зависимости от формата данных браузер их либо отрендерит или предложит сохранить как файл. Еще один пример у нас есть объект user = User.find(1). В контроллере мы делаем render json: user.to_json. Браузер понимает что он получил данные в формате json и отобразит их. При этом у нас нет view для json.
@@agrariy5919 то, что у нас может быть как угодно, вопросов нет. Встретить можно всякое. Но я говорю о том, как корректнее с точки зрения MVC. И тут у нас есть модель, и есть презентация этой модели для клиента. Одни и те же данные могут быть представлены а разном виде - json, XML, pdf. Вот это представление и есть. То, что у нас фактически генерация была описана в active record или контроллере - это может быть удобно, но это нарушение MVC.
Привет! Я тоже хочу в Ваш Open Sourse, куда писать?
Супер! Вот тут информация github.com/HeavyTechRuby
Привет, я фронтендер и твой однофамилец :D
Это знак! Тебе нужно становиться, как минимум, fullstack!! Не думал об этом?
ву - валютная удаленка
Спасибо, не сразу понял. Сначала была ассоциация с армией. А ты на ВУ работаешь?
@@SergeiUdalov не, я просто расшифровал) вопрос не мой
@@studiosus23 а ты где работаешь? Чем занимаешься?
@@SergeiUdalov я работаю в РФ рубистом и немного гошником
@@studiosus23 а для каких целей go?
Посмотрел с удовольствием. Егор Б. когда то высказывался что любой класс, название которого оканчивается на "er" это плохо.
Да, его идеи мне очень близки. Для тех, кто не знаком - elegant objects
@@SergeiUdalovзабавный момент в том, что он говорит об именовании классов по действию, например Post::Publish, User::Create, но «обычно» класс подразумевает именование существительным, в то время как функция класса (или функция) в целом - действие. Такой подход ведет к созданию множества классов с одним публичным методом (call, perform), что тоже не всегда отражает семантику действия.
@@davidfisher3581 а кто говорит, что такие классы - хорошо? Ни я, ни Егор так не считаем. Это интеракторы - антипаттерн
🎉
С наступающим
Классный подкаст, у меня такие же шторы 🤝
Супер, только не прекращайте, у вас отличный подкаст! Вы большой молодец
Спасибо большое, буду. Как тебе мысль про MVC?
Когда услышал , что ему итальянская компания палки в колеса ставила , это для меня был бы конец собеседования с ним. Вывод - просто чмырь. Можно дальше не собеседовать. Дальше не смог слушать, уже отрицательное отношение, с таким человеком я бы не хотел работать.
Сенди Метца читал? - Нет - Пшел нафиг. - А поговнокодить? - ЧатГопоты для этого есть.
Строго говоря, чтение не обязательно для того, чтобы быть хорошим программистом. Тем более, требовать конкретную книгу. И прочтение книги не обязательно приведет к нужному качеству.
@@SergeiUdalov эх молодежь ... фрагментарное мышление :), имхо чтение обязательно умные люди читают книги, дурак не может быть хорошим программистом
@@excavator3571 с книгами стать хорошим программистом сильно проще, тут я согласен и часто рекомендую читать. И считаю, что программист будет так развиваться быстрее. Я не согласен с "обязательно". Человек может и через свой опыт прийти к правильны мыслям. Вопрос лишь в том, хватит ли ему жизни, чтобы проделать этот путь. Если уж говорить про фрагментарность, то если не читал эту книгу, но читал DDD или Clean Arch, то для меня это искупает это незнание. Если не читаешь книги, не значит, что дурак. Ты можешь быть необразованным, но умным. А что еще делают умные люди?
@@SergeiUdalov мы рубисты народ плечистый, нам без метса ни как, как идти дальше без азов ооп я вот какждый раз перечитываю, кокда имею дело с очередным овнолегаси, доки по языку в таких делах не рулят
@@excavator3571 без орфографии же как-то справляемся.
B-дерево - это не бинарное дерево. Разные вещи. Собеседуемый в конце про индексы уже устал.
для меня было важнее услышать, что это дерево и у нас бинарный поиск. А так, да - термин означает сбалансированное.
@@SergeiUdalov На самом деле никто не знает что означает 'B' в названии этой структуры.
@@zakharka3938 на практике, никто это знание не использует. Только для собесов.
интересно, но зачем вообще придавать значение тому, насколько уверенно человек отвечает и тому, насколько хороший звук / приятно смотреть на человека? Вы что, дипломатическую миссию открываете?
Я нет. Но это может создать позитивное впечатление при общих равных. Выбор сотрудника имеет не только рациональное и объективное, но и субъективные мотивы, эмоциональные.
Я бы сходил к вам на собес)
в самокат тех не прошел бы на мидла, в другое место может и взяли мидлом
Да, зависит от компании и команды.
500 подписчиков телеграм канал, 1 000 boosty? 😂
Пока рук не хватает еще и на канал. Поэтому без помощи это у меня не получится. Монетизацию пока не планирую. Давайте подождём 10к. Там посмотрим.
если еще найдется кандидат на синьора, то - было бы вообще отлично)
Приходи!
не сказал бы что собеседование жесткое, в глубь особо не копали, так как Сергей дал свою оценку позиции, хотелось бы услышать отдельно, по грейдам, что значит Middle и так далее. как новая идея для видео
Сори, за кликбейт. Я не считаю, что собес должен быль жестким. На нем должна быть возможность проявить себя. По грейдам выскажусь обязательно
Код из live coding, помимо arr вместо array и двойного деления, содержит баг. Правую часть нужно доставать как arr[-(1+i)]
для лайв кодинга допустимо, я тоже не заметил в моменте
На сколько мог бы рассчитывать этот кандидат?
Отвечу, если пост соберет 150 лайков
@@SergeiUdalov видео или комментарий с вопросом?)
@@user-bp6kt9ub9s к видео
Вот это поворот :D, теперь буду постоянным слушателем/зрителем
А в чем поворот? Подписывайся на подкаст :)
Понял, не сразу узнал тебя по нику!
middle минус, что-то новенькое
Да вполне уже старенькое :)
Парень большой молодец. Интервью прошел достойно. Удачи ему в работе развитии скилов
Поддерживаю
Спасибо за стабильную генерацию контента!)
Как боротся с плохими привычками лида?) не использовать рубокоп, называть перепенный 1 буковй)
Ты спрашиваешь с позиции лида? или как научить хорошим привычкам своего лида?
@@SergeiUdalov с позиции, разработчика, который работает с таким лидом)
@@smertokrab я исхожу из того, что лид - разумный человек. Раз так, он должен прислушиваться к разумным аргументам. Вероятно, ты должен ответить на вопросы: что команда получит от внедрения, что для этого нужно сделать, что именно ты готов для этого сделать? Если лид не разумный - то нужно искать нового - разумного.
Лайк не глядя, ждал это видео
Приятного просмотра!
У меня вопрос был скорее в том - почему в руби так сложен вход. Как будто это какой-то специальный отсеивающий механизм. Касательно того, что много работ и не нужно. И да, и нет. С одной стороны - много работ не нужно, потому что тебе нужна только одна. С другой, если работ мало, то и рынок может не развиваться, условия у разработчиков могут ухудшаться, т.к. конкурировать на рынке будет не с кем. Если Рубистов будут набирать только Марсиане, Еврон и Сбер - то рынок превратится в олигополию, что для кандидата не есть хорошо. Раньше эта ситуация выравнивалась простотой работы на ВУ, сейчас же когда надо перепрыгнуть через 10 колец чтобы найти себе ВУ - работодатели могут начать закручивать гайки.
стало ли рабочих мест меньше? не думаю. если не согласен, то скажи, почему ты так думаешь
Сергей, спасибо большое за очередное видео, с удовольствием смотрю. Такой вопрос. Представим, что Ruby умер (тьфу тьфу тьфу 🙂). Какой ЯП/платформу Вы бы выбрали в качестве замены?
I cant speak - не про свободу / свободу слова. Бугаенко байтит опять! Норм спикерам и так понятно, что ехать в страну-террорист себе дороже будет.
Если спикер хочет выступить, но не может, разве это не нарушение свободы слова? Он понимает, что столкнется с проблемами. Тут важна разница «не хочу» и «не могу». В статье именно в про второе. То, что ты делил спикеров на нормальных и нет - субъективная оценочная категория. Важно, что есть те, кто не могут свободно высказываться на технические темы на тех площадках, где хотят. Они же не про политику
Ruby forever! Поддержка правильного контента!
Сергей, спасибо за видео. Хорошая подача, грамотная речь, в общем приятно слушать. Несколько вопросов, если можно. - Не планируете ли какие-то прикладные видео, может хорошие практики из вашего текущего проекта, обзор каких-нибудь 'плохих' практик? - Будет ли ссылка на open source проект и можно ли будет отправить mr вне команды? - Какова мотивация(кроме финансовой, с этим все понятно) выхода успешных специалистов в свет(в youtube в частности)? Ведь это время(== деньги). Что это? поддержка комьюнити? Самореализация в обучении?
На этот и другие вопросы отвечу в следующем подкасте. Подписывайтесь
Здравствуйте. Какой уровень знаний RoR/ruby нужен для устройства к вам джуном/стажёром? Спасибо за труд.
Я бы лучше интересовался какой уровень нужен на сеньора, джунов обычно не берут.
@@dmitriyobidin6049 и какой, по вашему мнению? Мб есть где-нибудь roadmap или что-то в этом роде.
@@AlexanderYakimec Так я сам не знаю и понять не могу. Как мне кажется, это одна из самых больших проблем руби комьюнити - тут очень мало учебных материалов и вообще открытых материалов, особенно для вкатунов. Как будто это какой-то фильтр, промучался и прошел этот путь значит можно брать :)
@@dmitriyobidin6049 ну я уже в процессе. Просто интересно, когда уже достаточно учиться и можно работать) Но в РФ я вижу только вакансии от 2-х лет опыта, а если их нет, то тебя футболят)
@@AlexanderYakimec Ну вы слышали в видео, что я уже поднимал этот вопрос, но почему-то все мне на него отвечают что размер рынка не важен, главное чтобы нашлась для тебя хотя бы одна работа. Я же считаю, что это только часть правды.
Очень интересно насчет популярности, спасибо👍
Спасибо!
Спасибо, было интересно! С отсутствием критерия "Возраст" при найме не согласен. Зависит напрямую от уровня компетенций непосредственного руководителя. Если начальник находится в "менеджерском пубертате", в начале своего пути, то старший возраст это "раздражитель" источник дискомфорта и неуверенности. Если руководитель твоего уровня, с большим стажем тимлидства, спортивным характером.. естественно проблемы нет. Но на рынке труда не всегда так, конечно же есть много мест, где возраст не помеха. Но игнорировать эту составляющую я бы не стал.
У возрастных кандидатов есть и преимущества. Но устроиться может быть проблемнее, согласен. Такие кандидаты должны за счет софтов вытягивать.
Прикольно про дома. Есть сайт, на котором есть информация по домам из БТи: год постройки, этажность. Может быть полезная для вас информация. Если надо, то вспомню и поищу. Что касается Ruby, я влюбился в этот язык, но еще ничего не писал на нем. У меня есть пул проектов, которые я хочу сделать в качестве портфолио. Один из них, попроще, сайт для нашего ТСЖ, я планирую написать на Рельсах
Если вспомнишь, пиши в tg SergeiUdalov!
Привет, хочу войти в рельсы разработку с фронта JS. Не могу найти работу на рельсах потому что нету опыта на бэке на рельсах, подскажи как мне можно набрать опыт?
Я советую почитать rails way и попробовать сделать простенький проект для себя. Нужно понять, нравится ли.
@@SergeiUdalov да мне все нравится. Просто нужен коммерческий опыт, фриланс сложно найти на рельсах даже
@@doomymax577 есть возможность попробовать силы в стажеровке. Либо во фрилансе. А потом выдать это за коммерческий опыт
Привет, а почему не взять бы ноду? Просто интересно.
@@koala2077 работы нет такой. Или я не прав?
Спасибо большое за интересный стрим! Очень приятно слушать , грамотная речь профессионала! Можете рассказать про ситуацию в компании, где работаете, и в целом по рынку про вкатунов в разработку, но не нулевых, а с бэкграундом? Сисадмина например... И возрастом 40+
Было интересно послушать, спасибо. И неожиданно было услышать про Ирину) Земля круглая.
А ты где с ней пересекался?
@@SergeiUdalov в 2015ом в одной местной телерадиокомпании. Я тогда только ВУЗ закончил и проходил стажировку.
Привет! Сергей, спасибо за обзор, познавательно!
Проблема руби - маленький рынок в РФ(и вообще в мире). По сути новичок идя в руби сейчас, сильно ограничивает себя в вакансиях. Точно также как и свитчер из других языков. Я бы вот может и хотел попробовать себя в рельсах, интересная технология. Но уходить со своего текущего направления, терять в деньгах, и следующие полгода потратить на то, чтобы только начать разбираться в рельсах. Потом еще пару лет чтобы "догнать" свою старую зп и .... зачем? Только потому что интересно? Потратить 3 года на свой интерес - это слишком дорого в текущих условиях. Так еще и учить ты будешь технологию, которая в последнее время только теряет в популярности... В той же гошке работодатели готовы нанимать сотрудников с других направлений и обучать их. В том же самокате есть switch-to-go нешкола. Была бы такая практика для рубистов - был бы рынок у рубистов, а так... В себе как варились рубисты, так и будут дальше. Была еще одна огромная проблема - отсутствие нормальных учебных материалов. Но тут вроде ситуация немного выправляется.
Смена технологии дорого выходит, да. Скажи, а как ты оценил снижение популярности? Я начинал в 2008 и тогда работы на руби вообще было штучно. Сейчас ощущение, что вакансий больше.
@@SergeiUdalov Я начинал в 2016-м и тогда работы на руби было примерно как сейчас на гошке) если говорить про РФ рынок, то вакансий после 22 года стало сильно меньше. Если открыть тот же hh, то можно увидеть, что из всех адекватных вакансий осталось 3-4 компании(самокат, сбермаркет, evrone и возможно что-то еще, что сходу не вспомню), остальные - это попытка найти сеньора фуллстек разраба на зп джуна или что-то совсем мусорное типа написания планигов на redmine. Можно, конечно, развиваться и расти в рамках компаний, что я перечислил выше(я работаю в одной из них), но кажется, что рынок действительно выглядит проблемным даже для опытных разрабов) Я уж не говорю о том, какой путь нужно пройти джуну, чтобы залететь в эти компании. Спасибо за видос, без негатива)
@@studiosus23 но где-то же рубисты 2016 года работают. Именно безработные рубисты существуют?
@@SergeiUdalov У меня нет такой статистики:) я писал про проблемный рынок. Если тебе нужно было бы уходить из Самоката по каким-либо причинам, какие компании в РФ ты бы рассматривал для новой работы?
@@studiosus23 я заранее никогда и не знал, куда уходить. Открывал резюме и писал хантерам, кто мне писал в последнее время.
Проблема руби - маленький рынок в РФ(и вообще в мире). По сути новичок идя в руби сейчас, сильно ограничивает себя в вакансиях.
Вполне возможно. А как ты это оценил, что он маленький?
Ты дурачек?) в космос ракету запустить проще чем блять браузер написать?) у тебя очень примитивное представление о запусках в космос
Это касается многих языков, не только JS