Ruby/Rails дайджест #24: реліз Ruby 2.6.0-preview3, оновлення JRuby до 9.2.4.1, а також вихід 5.2.2.rc1 фреймворку Ruby on Rails
Всім привіт!
У новому дайджесті тонна хороших новин для спільноти Ruby. Почнемо з того, що робота над Ruby 2.6 на завершальній стадії — на початку листопада була представлена третя preview-версія Ruby 2.6, за якою послідує вже передрелізна версія. Також вийшов ряд інших оновлень, у тому числі Rails 5.2.2.rc1, Passenger 5.3.7 і Jekyll 3.8.5. Зверніть увагу на добірку статей про Ruby 2.6 — там не тільки йдеться про нові функції, але також є бенчмарки роботи з JIT-компілятором і без нього.
Почитати
Scaling the Monolith — чек-лист по масштабуванню монолітного програми.
Tips for Writing Fast Rails: Part 2 — поради автора, як збільшити продуктивність додатків на Rails (перша частина тут ).
Bundler is Built Into Ruby 2.6.0preview3 — тепер менеджер пакетів Bundler вбудований в Ruby 2.6.0-preview3.
Deploying feature branches to have a review app — як і навіщо створювати staging-оточення для кожної гілки feature при розробці ПО.
Rails Path Helpers and the Mystery of the Missing Route Key — автор на прикладі показує, як вирішити проблему, яка виникає при відсутності route key в додатках на Rails.
Why we use Ruby on Rails to build GitLab — CEO компанії GitLab розповідає, чому для їх проекту був обраний Ruby on Rails.
Do You Ruby Test Code for Thread Safety? — автор показує, як протестувати код на Ruby на потокову безпека (thread safety) за допомогою гема threads .
Fibers Are the Right Solution — як використовувати можливості багатопоточності в Рубі для створення веб-сервера.
Airflow Architecture at Drivy — як і навіщо компанія Drivy використовує Airflow-архітектуру.
An Update on Bundler 2.0 — дізнайтеся, що нового в Bundler 2.0.
Git aliases I can't live without — автор розповідає, які псевдоніми (aliases) він використовує при роботі з Git і чому.
Finding Ruby Performance Hotspots via Allocation Stats — як збільшити продуктивність додатків на Ruby за допомогою frozen strings.
— освіжаємо в пам'яті, як працювати з Rails Credentials в Ruby on Rails 5.2.
Ruby's (not so) constants — автор розповідає про особливості використання констант в Ruby.
Ruby `allocate` method — як працює метод allocate в Ruby.
Hash rockets are good actually — автор говорить про переваги запису хешей через hash rocket.
The Benefits of Materialized Views (and how to use them in your Ruby on Rails project) — коли використовувати materialized views у додатках на Rails.
Ruby Deserialization — що потрібно враховувати при проведенні десеріалізації в Ruby.
Image Placeholder for your development environment — інструкція, як використовувати гем ImagePlaceholder в development-оточенні при розробці додатків на Ruby.
Підбірка статей про Ruby 2.6:
- 9 New Features in Ruby 2.6 — огляд дев'яти нових функцій Ruby 2.6.
- What Is MJIT in Ruby 2.6 & How Does It Work? — що таке MJIT-компілятор в Ruby 2.6 і як він працює.
- How fast is Ruby 2.5, 2.6 and 2.6 —jit in generating Prawn PDFs — автор виміряв продуктивність Ruby 2.6 із JIT-компілятором при генерації PDF-файлів.
- What's new in Ruby 2.6? — короткий огляд нових фіч в Ruby 2.6.
- Exploring Ruby 2.6: Enumerator, Hash, and Перечіслімого Changes — які зміни відбудуться в модулі Перечіслімого в Ruby 2.6.
Добірка від AppSignal
Testing Asynchronous Threads in Ruby — вчимося тестувати асинхронні потоки в Ruby.
Fibers and Enumerators in Ruby: Turning Blocks Inside Out — детальний розбір класів Перечіслімого і Fiber в Ruby.
Добірка від Jason Swett
Avoiding Network Calls In Rails Tests Without Using Mocks, Stubs or VCR — простий приклад, як уникнути мережевих запитів в тестах з допомогою dependency injection.
Common Legacy Project Challenges and How to Address Them — які труднощі можуть виникнути при роботі на legacy-проектах і як їх вирішити.
When I Use Controller/Request Specs in Rails and When I don't — автор розповідає, коли слід використовувати controller specs, а коли request specs.
Rails Scaffolding and TDD Are Incompatible — чому scaffolding (генерація шаблонного коду в Rails) несумісний з test-driven development.
Добірка від Phusion
Stopping slow client DoS attacks with Puma on Passenger 6 — як запобігти slow client DOS-атаку, використовуючи Puma, Nginx і Passenger.
Your language' built-in server was never meant for production use — який веб-сервер вибрати в додатках на Ruby.
Добірка від reinteractive
When is the right time to do a code audit? — автор ділиться думкою, коли слід проводити code audit.
Using Ruby and Tesseract to Recognise Text in an Image — вчимося розпізнавати текст на зображеннях в додатках на Ruby за допомогою гема Tesseract .
Добірка від RubyGuides
Ruby Templating Engines: ERB, HAML & Slim — огляд основних механізмів обробки шаблонів в Ruby.
How to Use attr_accessor, attr_writer & attr_reader — автор на прикладах показує, як використовувати методи attr_accessor, attr_writer і attr_reader.
Ruby Coding Challenges & How to Solve Them — складність написання коду на Ruby і як їх долати.
How to Use The Ruby Alias Keyword — освіжаємо в пам'яті, як використовувати ключове слово alias і метод alias_method в Ruby.
How To Use Heredoc in Ruby — освіжаємо в пам'яті, як використовувати heredoc в Ruby.
Dup vs Clone in Ruby: Understanding The Differences — розбираємося, в чому різниця між методами dup і clone в Ruby.
Добірка від Victor Moroz
Дві частини туториала про створення Ruby гема з розширенням, написаним на Rust:
Туторіали
Migrating from Paperclip to Active Storage — в цьому туториале автор показує, як провести міграцію з Paperclip на Active Storage.
Clean RSpec configuration directory structure for Ruby on Rails gems needed in testing — інструкція, як вибрати структуру каталогу конфігурації (configuration directory) RSpec.
Using random number generators to solve problems — автор на прикладі показує, як використовувати генератор випадкових чисел в Ruby.
A beginner's Guide to Service Objects for Ruby on Rails — гайд про службові об'єкти (service objects) в Ruby on Rails для новачків.
Ruby memory, ActiveRecord and Draper — автор ділиться досвідом оптимізації пам'яті в додатку на Rails при обробці файлів CSV.
Writing GraphQL queries in native Ruby = Love — автор показує, як використовувати GraphQL в додатках на Rails.
Building SQL expressions with Sequel — як створювати SQL-вирази за допомогою інструменту Sequel .
Серія туториалов, як створити додаток на Ruby on Rails, в якому за логіку подання буде відповідати React:
- Rails with React — One Repo — Part 1
- Rails with React — One Repo — Part 2
- Rails with React — One Repo — Part 3
Релізи
Ruby 2.6.0-preview3 — вийшла третя передрелізна версія Ruby 2.6.0 з JIT-компілятором.
Rails 5.2.2.rc1 — команда розробників Ruby on Rails представила передрелізну версію Rails 5.2.2.
JRuby 9.2.4.1 — реліз версії 9.2.4.1 інтерпретатора мови Ruby.
Jekyll 3.8.5 — представлена нова версія генератора статичних сайтів Jekyll.
Passenger 5.3.7 — вийшла версія 5.3.7 популярного сервера додатків Passenger.
RubyMine 2018.3 (build 183.4284.145) — компанія JetBrains оновила IDE RubyMine
Ruby Gems
GraphQL::SmartSelect — плагін для бібліотеки graphql-ruby
Google Recaptcha v3 — імплементація Google Recaptcha v3 для Rails.
WebpackerCli — ця бібліотека дозволяє використовувати Webpacker в інших веб-фреймворках.
FiniteMachine — finite state machine з простим і зрозумілим синтаксисом.
Standard — Ruby Style Guide з інструментами контролю якості та налагодження коду.
Iguvium — ця бібліотека отримує таблиці з PDF-документів.
Typerb — гем для перевірки відповідності коду Ruby 2.6.
ImagePlaceholder — бібліотека для генерації плейсхолдеров в development-оточенні.
Події
Ruby Meditation #25 — 8 грудня в Києві пройде Ruby Meditation #25. Спікери розкажуть про багатопотоковому виконанні на production, важливості business development і багатьох інших цікавих темах.
Послухати
The Bike Shed
- 177: Tricking Computers Into Doing Things — ведучий і гість подкасту обговорюють безліч тем, в тому числі продуктивність додатків на Rails.
- 178: Friday is For Spikes — основна тема дискусії — платформа GitHub.
Ruby Rogues
- RR 387: Ruby Performance Profiling with Dan Mayer — учасники дискусії обговорюють вимірювання продуктивності додатків на Rails.
- RR 388: RuboCop (and Emacs I guess :-)) with Bozhidar Batsov — подкаст присвячений популярному гему RuboCop.
- RR 389: Developer Environment with the Panelists — ведучі обговорюють, які інструменти вони використовують для створення середовища розробки.
- RR 390: Creating a Heroku-Like Deployment Solution with Docker with Pedro Cavalheiro — учасники обговорюють створення платформи для розгортання ЗА зразком Heroku.
RWpod
- 44 випуск 06 сезону. Bundler 2.0, reCAPTCHA v3, the Evolution of Async JavaScript Plotly.js, Ervy та інше
- 45 випуск 06 сезону. Ruby 2.6.0-preview3, GraphQL Foundation, Five years of PostCSS, Capybara::Chrome, Agoo, Typerb, JSBI та інше
- 46 випуск 06 сезону. What's new in Ruby 2.6?, The State of JavaScript 2018, WebpackerCli, TensorSpace, Slate та інше
- 47 випуск 06 сезону. AnyCable 0.6.0, Dart for JavaScript Programmers, Iguvium, Modulation, CMS.js та інше
Ruby on Rails Podcast
- 249: Upgrading GitHub from Rails 3.2 to 5.2 with Eileen M. Uchitelle — гість подкасту — Eileen M. Uchitelle — розповідає про оновлення GitHub з Rails 3.2 до версії 5.2.
- 250: Migrating Twitter from Rails & Powering Up with Linkerd with William Morgan — в гостях у ведучої — William Morgan з команди Linkerd .
- 251: An Honest Take on GraphQL with Ankita Gupta — подкаст присвячений інтеграції GraphQL в додаток на Rails.
The Ruby Testing Podcast
- 017 — Michael Hartl, Author of the Ruby on Rails Tutorial — гість подкасту — Michael Hartl — автор Ruby on Rails Tutorial .
- 018 — Ben Orenstein, Co-Founder of Tuple — учасники дискусії говорять, як практика парного програмування співвідноситься з тестуванням.
- Chris Kottom, Author of The Minitest Cookbook — послухайте про різницю між RSpec і Minitest.
Remote Ruby
- Embracing The Rails Way", The GoRails Redesign, Utility CSS, and Stimuluuuuus — основна тема подкасту — як створити Rails-додаток згідно книзі "The Rails Way'.
- — провідні подкасту обговорюють мова Yukihiro 'Matz' Matsumoto на конференції RubyConf 2018, JavaScript-фреймворк Stimulus.js та інші теми.
- The Thanksgiving Travel Episode — в цьому випуску ведучі обговорюють оновлення API Stripe і розгортання сервера для Rails-додатки за допомогою Hatchbox .
Подивитися
4 Ways to Scale on Heroku — чотири способи масштабувати додаток на Heroku.
Випуски GoRails в листопаді , в яких автор показує, як отримати доступ до параметрів в адресному рядку з view, не вдаючись до params.permit, додати аватари користувачів в Rails-додатки за допомогою ActiveStorage і як реалізувати вбудовані JavaScript-віджети в додатках на Rails:
- Link To Current Page With Params
- Embeddable Javascript Comments Widget Models — Part 1
- User Avatars with ActiveStorage
- Using Vuex with a Rails Backend
Листопадова добірка платних скрінкасти від Drifting Ruby:
- #158 Grab Bag of Ruby and Ruby on Rails Tricks
- #159 Activity Feed with Public Activity
- #160 Development Decisions and Architecture
- #161 Refactoring Models
Випуски платних скрінкасти від Ruby Tapas за листопад:
? Попередній випуск: Ruby дайджест #23
Опубліковано: 01/12/18 @ 11:00
Розділ Безпека
Рекомендуємо:
Інтерв'ю - Джулі Джойс, SEO компанія Link Fish Media, США
Принципи роботи Garbage collection
Що робить бізнес-аналітик на discovery-фазі: аналіз потреб клієнта
Масове видалення пунктів меню в WordPress
Візуалізація даних у роботі аналітика: типи діаграм і яку вибрати