Ruby 🇺🇦
رفتن به کانال در Telegram
▪️Вивчаємо Ruby разом. ▪️Персональне менторство. ▪️Надаємо першу роботу. @rubychatua — наш чат.
نمایش بیشتر527
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
527
Урок 17 [текстовий]
Поговоримо про Представлення в Ruby on Rails. Розглянемо, як їх створювати, як вони взаємодіють з іншими складовими веб-додатку та як вони допомагають розробникам створювати стильні, інтуїтивно зрозумілі веб-сторінки.
✏️ Читати матеріал [
telegraph]
✏️ Читати матеріал [rubyco.in]
#lessons527
Розшукується людина на посаду Senior Ruby Software Engineer 👍
Знайомі із Sigma Software відкрили доволі непогану вакансію. Якщо хочете приєднатися до вже сформованої та потужної команди і маєте для цього необхідний скіл, раджу розглянути даний варіант.
На скриншоті бачите які напрямки по скілам потребуються, нижче додаю лінку, де можна більш детально почитати про компанію, чим потрібно буде займатися, на яких умовах і з ким у команді.
Переглянути вакансію 🫠
527
Розшукується людина на посаду Manual QA 🫡
Нам у команду потрібен мануальний QA рівня Jun+. Основні задачі будуть торкатися телеграм-ботів, тому розуміння можливостей мессенджера та досвід контакту із ботами у минулому були би дуже доречними.
Запропонувати можемо включення у невеличку команду ентузіастів, багато практики на внутрішніх проектах зі стипендією та можливість подальшого підключення до зовнішніх проектів.
Якщо цікаві деталі, пишіть мені у пп @anko20094 (одразу вказуйте приклад попередньої роботи, будь-ласка).
UPD: наразі питання вже закрите.
👍 👍 🥶
527
Рефакторінг фронтенду RubyCoin
Нещодавно до проекту RubyCoin долучився наш підписник, ентузіаст Олександр. Він виявив у фронтенд частині проекту ряд недоліків, зокрема у JS файлах був такий код (та й структура в цілому):
document.addEventListener("turbo:load", rerender);
document.addEventListener("turbo:frame-render", rerender);
document.addEventListener("turbo:render", rerender);
Цей код є проблемним, оскільки він використовує застарілі методи addEventListener(). Ці методи не є ефективними та можуть призвести до проблем із продуктивністю. При кожному завантаженні сторінки додаються eventListener-и, які, по-перше, не знімаються і тільки сумуються при кожному оновленні сторінки. По-друге, ці лістенери перехоплюють спільні події, зокрема load/render (немає значення, який рендер). По-третє, ставляться лістенери на ємітування подій, яких в принципі немає на сторінці, а саме, рендер відсутнього турбо-фрейма.
Олександр запропонував переписати логіку на Stimulus та реалізував це. Stimulus - це фреймворк, який дозволяє використовувати методи життєвого циклу для керування поведінкою елементів на сторінці. Методи життєвого циклу - це функції, які викликаються на певних етапах життєвого циклу елемента. У цьому випадку ми можемо використовувати метод connect(), щоб викликати функцію rerender() при завантаженні елемента. Це дозволить нам уникнути зайвих викликів функції rerender(). Переписування на Stimulus має ряд переваг, зокрема:
- Покращена продуктивність: методи життєвого циклу є більш ефективними, ніж застарілі методи addEventListener().
- Простіше читання та розуміння коду: методи життєвого циклу є більш чіткими та зрозумілими, ніж код, який використовує застарілі методи addEventListener().
- Покращена підтримка доступності: методи життєвого циклу підтримують доступність, а застарілі методи addEventListener() - ні.
Однак, через використання JS gem-ів, які були побудовані під sprockets (наприклад, gem 'tinymce'), нам довелося повернутися до sprockets для успішного інтегрування цих бібліотек. Це є компромісом, який дозволяє нам зберегти функціональність цих gem-ів у проекті.
Олександр також виявив та виправив ряд дрібних багів у проекті, що дозволило зробити нашу платформу більш стабільною.
Загалом, рефакторинг Front-end частини проекту RubyCoin за допомогою Stimulus та використанням нового підходу до організації коду покращило його якість, зробило більш структурованим та допомогло зменшити складність розробки. Такий підхід відображає сучасні стандарти розробки та забезпечує легше втручання у майбутньому.
Дякую Олександру за цінний внесок у розвиток проекту та вам, учасники RubyCoin, за вашу увагу та підтримку! Будьмо відкриті до нових ідей та постійно вдосконалюймо наш проект разом.
Посилання на Pull Request кому цікаво ознайомитися зі змінами.
#devnote527
Огляд імплементованих рішень в Rubyco.in
Продовжується поступова робота із сайтом, з останньої демонстрації було внесено ряд доволі суттєвих змін. Я вже раніше розказував про зміну назви проєкту, а тепер ви також можете поглянути на зміни його дизайну та функціоналу.
Загалом на роботу у цьому напрямку наразі виділяється не так багато часу, як хотілося б, але ми плануємо продовжувати та, крок за кроком, зробити дійсно зручний і корисний продукт для ком'юніті 💎
Отож, якщо хтось має бажання долучитися до практики з цим проєктом чи просто поспостерігати у github, не соромтеся писати, з радістю додам вас і попрацюємо :)
#devnote / #demonstration
527
Урок 16 [текстовий]
У програмуванні, як і у житті, важливо розуміти якими шляхами потрібно йти, щоб досягнути поставленої перед собою мети. Поговоримо про Шляхи в RoR.
✏️ Читати матеріал (
telegra.ph)
✏️ Читати матеріал (rubyco.in)
#lessons527
Практика: Моделі
Як казав раніше, тепер до кожного уроку окрім квізів я сам або хтось із команди будемо робити практичні завдання.
Спробуємо робити 1 урок, далі питання по ньому, а потім допис з точки зору людини, котра робить на практиці те, що було описано в уроці, коментує чи описує свої дії.
✏️ Читати матеріал
#practice
527
Урок 15 [текстовий]
Поговоримо про складову частину MVC — контролери. Що це, за що відповідає і як із цим працювати.
✏️ Читати матеріал
#lessons
527
Урок 14 [текстовий]
Сьогоднішня тема — Ruby on Rails. Моделі, згадаємо, що саме таке моделі та для чого вони використовуються, а потім розглянемо основні концепції моделей в Ruby on Rails.
✏️ Читати матеріал
#lessons
527
Model-View-Controller
Продовжуємо наші уроки. Сьогоднішній матеріал не буде дуже об'ємним, але від цього не є менш змістовним. Розглянемо концепцію шаблонування MVC та дізнаємось, чому вона є дуже важливою для розуміння архітектури RoR.
В кінці уроку вже є анонс наступного 🤫
✏️ Читати матеріал
#lessons
527
Model-View-Controller
Продовжуємо наші уроки. Сьогоднішній матеріал не буде дуже об'ємним, але від цього не є менш змістовним. Розглянемо концепцію шаблонування MVC та дізнаємось, чому вона є дуже важливою для розуміння архітектури RoR.
В кінці уроку вже є анонс наступного 🤫
✏️ Читати матеріал
#lessons
527
Останні новини, подальші плани
Не забули, сумували чи навіть не згадували? Щоб там не було, але я повернувся і маю багато новин, свіжих матеріалів та бажання ділитися цим з вами.
Сьогодні стисло розповім про те, що відбулося за той час, поки мене не було і у якому режимі продовжимо роботу.
✏️ Читати матеріал
#devnote
527
Гайд 6 [RubyCoin]
Окрім імплементації gem-у capistrano, постараюся описати більшість налаштувань у файлах та для чого вони взагалі.
✏️ Читати матеріал
#guide / #capistrano / #deploy / #remote_server
527
Гайд 5 [RubyCoin]
Цей час настав. Ми вчимось налаштовувати віддалений сервер.
✏️ Читати матеріал
#guide / #deploy / #remote_server / #settings
527
Гайд 4 [RubyCoin]
Сьогодні поговоримо про Gem carrierwave, відвантаження медіа.
✏️ Читати матеріал
#guide / #gem / #carrierwave / #media_upload
527
Проект RONICO?: нові гайди, новини та прогресс
Розкажу про оновлення, що ми внесли на шляху створення нашого сайту та поділюсь темами гайдів, що найближчим часом опублікую для вас.
✏️ Читати матеріал
#devnote
527
Урок 12 [текстовий]
Сьогоднішня тема — Архітектура веб-додатків, поговоримо про одну з ключових складових проектування веб-додатка.
✏️ Читати матеріал
#lessons
527
Практика та менторство
На початку курсу я згадував у своїх планах більш тісний контакт з тими з вас, у кого буде бажання працювати разом над проектами.
Четверть курсу вже позаду, сьогодні хочу трішки поговорити про те, як просувається напрямок співробітництва та менторства
✏️ Читати матеріал
#devnote
