Ruby/Rails дайджест #11: Hanami v1.1.0, ювілейний митап Ruby Meditation і баг, який трапляється раз у році
Всім привіт! Поспішаємо поділитися останніми новинами в нашому дайджесті за жовтень.
Пропонуємо ознайомитися з останніми оновленнями і функціоналом нової версії Hanami v1.1.0, черговий великою підбіркою статей від блогу Arkency, а також туториалами по Ruby/Rails. Крім того, не забудьте послухати змістовне інтерв'ю з CEO RubyMotion і дізнатися, які події чекають на вас в листопаді.
Почитати
Elm and Rails Sitting in a Tree — докладний опис про інтеграцію мови Elm c Rails за допомогою гема Webpacker. Також у кінці наводяться приклади патернів, що виникли в результаті створення проекту.
Ruby on Rails Speed of Development — Fast Software Delivery With RoR — автор розмірковує про швидкості розробки продукту за допомогою Ruby on Rails і наводить приклади на захист своїх аргументів.
Hosting a Ruby on Rails App — DevOps Solutions Comparison: AWS, Google Cloud Platform, Microsoft Azure, Heroku and Digital Ocean — порівняння хостингів для Ruby on Rails додатків із зазначенням позитивних і негативних сторін кожного провайдера.
Ruby on Rails Refactoring — When Do You Need It and Why? — у статті йдеться про ситуації, при яких доцільно проводити рефакторинг коду.
How to Verify the Quality of a Ruby on Rails Development Agency — стаття про те, як можна дистанційно перевіряти і контролювати команду Ruby on Rails розробників.
Why Ruby app servers break on macOS High Sierra and what can be done about it — стаття про помилки на серверах Ruby-додатків, що виникають в результаті апгрейда на macOS High Sierra, а також про плюси і мінуси створення Fork-ів в якості заходів застереження обговорюваних помилок.
Amazing benefits of using Ruby on Rails for your project web — автор говорить про переваги використання Ruby on Rails в процесі створення проекту, а також допомагає визначити, у яких випадках RoR підходить найкраще.
Unsafe Object Deserialization Vulnerability in RubyGems — звіт про те, як виявили та пофиксили уразливість в RubyGems.
Lifelong Rubyist makes some Python code 5x Faster — стаття про досвід автора щодо оптимізації швидкості розробки на мові Python у порівнянні з Ruby.
Цикл статей від BigBinary про версії Ruby 2.5:
- Ruby 2.5 has removed top level constant lookup
- Ruby 2.5 allows rescue/else/ensure inside do/end blocks
Rails 5.2 adds expiry option for signed and encrypted cookies and adds relative expiry time — туторіал про те, як у версії Ruby 5.2 можна встановити строк припинення дії для обраних cookies.
A Quick Guide to Rails System Tests in RSpec — RSpec не втрачає своєї популярності. Зустрічайте новий гайд по тестуванню Rails-додатків з RSpec.
Google Pixel vs. iPhone 7 or how programming languages are being chosen in real life — роздум про різницю між фреймворками Django і Ruby on Rails в контексті вибору одного для розробки продукту. У статті наводяться цікаві приклади про те, як особистий досвід може вплинути на дане рішення.
RSpec: difference between mocks and stubs — автор пояснює різницю між об'єктами mock і stub у фреймворку RSpec.
Receiving and Parsing Email in Rails 5 — туторіал по інтеграції сервісу Mailgun для відправки outbound emails в SaaS-додатках для версії Ruby 5.1.
Explicit request params binding Ruby in web apps — автор розмірковує про те, які проблеми можуть виникати в результаті спрощення деяких параметрів під час роботи з Ruby, і як їх слід уникати.
7 Gems Which Will Make Your Rails Code Look Awesome — добірка гемов для поліпшення побудови архітектури Ruby on Rails додатків.
Rescue specific errors. Avoid rescuing StandardError. Don't rescue Exception. — туторіал про правильному використанні rescue у вбудованих класах помилок.
Exploring Functional Programming with Ruby — автор зіставляє функціональне програмування з об'єктно-орієнтованим програмуванням і розповідає, як можна навчитися функціонального програмування, не відходячи від мови Ruby.
7 Little-Known Ruby Methods To Help You Write Better Code — гайд по Ruby-методів для вдосконалення вашого коду.
Extracting a class from a method — приклад рефакторінгу з допомогою вилучення класу з методу.
Improved stacktrace display in Ruby 2.5 — огляд про поліпшення відображення stacktrace у версії Ruby 2.5.
Implementing Early Hints with Puma and Rails — реалізація нового HTTP статус коду Early Hints в Puma і Rails.
Fastest way to profile a method in Ruby — туторіал про те, як найбільш швидким чином профілювати код в Ruby.
Підбірка корисних статей від Arkency за жовтень:
- We Could drop Symbols from Ruby? — стаття-роздум на тему, наскільки доцільно було б позбутися символів в Ruby.
- Two ways for testing preloading/eager-loading of ActiveRecord associations in Rails — автор розповідає про свій досвід з двома різними варіантами тестування завантаження асоціацій в Ruby on Rails.
- — автор ділиться досвідом використання DDD, CQRS і Event Sourcing замість «The Rails Way».
- Relative Testing vs Absolute Testing — порівняння absolute і relative підходів тестування, а також розглядаються ситуації, в яких використання того чи іншого виду тестування є більш доцільними.
- Application Services — 10 common doubts answered — відповіді на 10 найпоширеніших помилок при DDD-розробці.
- A bug that only appears once a year — коли переводять годинник на зимовий час, в добі «з'являється» 25 годин. Це може стати причиною бага, який зауважив автор статті. Рішення проблеми додається.
- Make your JSON API tests clean with linter — туторіал по оптимізації JSON API тестів, роблячи їх більш компактними і орієнтованими на бізнес-цілі.
Добірка статей від Engine Yard за жовтень:
- Running Rails in AWS Elastic Beanstalk — туторіал допоможе вам з запуском Rails на AWS Elastic Beanstalk.
- Dependency Management Guidelines for Rails Teams — відмінне керівництво з управління залежностями для Rails-команд, з прикладами конкретних проблем та варіанти їх рішень.
- Load Testing Ruby Apps for Black Friday — дізнайтеся, як правильно провести стрес-тестування Rails-додатків напередодні збільшення трафіку під час Black Friday.
- Disaster Recovery Plan for Rails Apps — продовжуючи тему Black Friday, читайте статтю про підготовчі заходи для Rails-додатків, у разі якщо сервера AWS «впадуть» в результаті збільшення трафіку під час Black Friday.
- Checklist For Migrating Your Rails Application — стаття про те, як найкращим чином мігрувати вашу Rails-додаток з одного хостингу на інший.
Послухати
Підбірка подкастів від The Ruby Rogues з відомими програмістами за жовтень:
- RR 330: Functions vs Methods with Devon Estes — провідні подкасту і гість цього випуску Devon Estes обговорюють: функції проти методів, object orientation і functional програмування, об'єднання Elixir і Ruby, service objects поспішають на допомогу, і багато іншого.
- RR 331: 30 days to Elixir then Crystal and back again to Ruby with Fabio Akita — гість випуску Fabio Akita говорить про те, як розробникам варто підходити до вивчення нових мов, зокрема Crystal і Elixir.
- RR 332: Exploring Connections Between Your Apps and the Web with Justin Weiss — гість цього випуску Justin Weiss розповідає про свою презентації для Ruby Dev Summit, в якій йдеться про зв'язки між мобільними і веб-додатками.
- MRS 23: Adam Cuppy — бесіда з гостем випуску Adam Cuppy про його досвід зміни кар'єри актора на Ruby-програміста.
- RR 333: RubyMotion and the of Aesthetic Ruby with Amir Rajan — у цьому випуску Amir Rajan, CEO RubyMotion — платформи для створення крос-платформних додатків під iOS і Android на Ruby, розповідає про принципи роботи своєї компанії.
- RR 334: Is Elixir the Next Ruby? with Hal Fulton — провідні подкасту і гість випуску Hal Fulton, який був одним з перших розробників, освоїли мову Ruby, міркують, які шанси у Elixir замінити Ruby.
Продовження п'ятого сезону подкастів від RWPod:
- 39 випуск 05 сезону. Refinery CMS 4.0.0, Brakeman 4.0, React v16.0, Nullalign, Draggable, Lozad.js та інше
- 40 випуск 05 сезону. On Bundler 2.0 compatibility, Ecto vs ActiveRecord, the road to Ember 3.0, PostgreSQL 10, CKEditor 5 і інше
- 41 випуск 05 сезону. Ruby 2.5.0-preview1, Reusable UI components in Rails, React Sight, ProseMirror та інше
- 42 випуск 05 сезону. ROM 4.0.0, Next.js 4, The melting pot of JavaScript, InvoicePrinter, Factory_bot та інше
- 43 випуск 05 сезону. Hanami v1.1.0, Scaling the GitLab database, Modern JavaScript Explained For Dinosaurs, React-mosaic, HEML та інше
Нові подкасти від The Bike Shed в цьому місяці:
- — у цьому випуску обговорюється гем contracts.ruby, після того як ведучий спробував його в дії.
- 127: Bike Shed: Discovery — ведучі говорять про дрібні проблеми в системі Bundler у зв'язку з майбутнім релізом її нової версії.
- 128: And Now for My Next Trick! — випуск про повсякденних реаліях роботи програмістів, включаючи проектний менеджмент, рефакторинг, workflow та інше.
Подивитися
Let's build a blockchain! — A mini-cryptocurrency in Ruby — видеотуториал про те, як побудувати Blockchain на Ruby.
Нова добірка скрінкасти від Drifting Ruby в цьому місяці:
- Episode #100 Basic Testing Introduction in Rails — відео розглядаються різні види тестів у версії Rails 5.1 за допомогою MiniTest і Capybara.
- Episode #101 — Testing with RSpec — туторіал по створенню тестів для додатків з допомогою RSpec.
- Episode #102 — Feature Testing with Capybara — туторіал по функціональному тестування з Capybara.
- Episode #103 — Sample Data with Factory Bot and Faker — скрінкасти по використанню гемов Faker для генерації фейкових даних та Factory Bot для запису даних в моделі.
Підбірка скрінкасти від Go Rails в жовтні:
- Using the Trix Editor plus File Upload Attachments — скрінкасти про те, як використовувати web текстовий редактор Trix для заливки файлів.
- Making GeoSearch smooth with AJAX — в даному скринкасте обговорюються теми: Maps, Geolocation, і GeoSearch.
- Administrate Custom Fields and the Trix Editor — скрінкасти про використанні WYSIWYG-редактора Trix в зв'язці з гемом для адмінпанелі Administrate.
Релізи та бібліотеки
Релізи
ROM 4.0.0 released — відбувся реліз ROM версії 4.0.0.
Вийшла нова версія Hanami, запрошуємо ознайомитися з новими фічами: Announcing Hanami v1.1.0
Ruby 2.5.0-preview1 Released — в жовтні вийшов preview-реліз Ruby 2.5.0.
Rails Testing Grader: Compare Your Test Suite to the Industry — реліз нового інструменту Rails Testing Grader, за допомогою якого можна порівняти стан вашого Test Suite з іншими проектами.
Бібліотеки
Invoice Printer 1.0 — гем InvoicePrinter 1.0 дозволяє генерувати інвойси в PDF форматі.
Книги
Agile Web Development with Rails 5.1 — відкрито передзамовлення на книгу «Agile Web Development with rails 5.1». Книгу можна попередньо замовити на Amazon і PragProg .
Learn Ruby In 7 Days — в цьому місяці вийшла книга «Learn Ruby in 7 Days». Книгу можна замовити на Amazon і Lulu .
Події
RUBY Meditation #19 — митап Ruby Meditation #19 буде проведено 25 листопада в Києві. Квитки вже у продажу.
RUBY Meditation — 20th Anniversary — 2 грудня в Києві пройде ювілейний митап Ruby Meditation #20. Новини з організації заходу можна відстежувати на сторінці в Facebook. Також є можливість придбати квитки .
? Попередній випуск: Ruby дайджест #10
Опубліковано: 04/11/17 @ 11:00
Розділ Безпека Блоги
Рекомендуємо:
Фішки JAMstack: чому статичні сайти перевершують традиційні динамічні
DOU Labs: як в Cleveroad створили калькулятор для підрахунку вартості будь-якого додатка
Жовтень 2017 — финстрип за інфо-сайтів, пробив 10К за підсумками місяця
Не минулим, а майбутнім: як IT-індустрія може сформувати новий імідж Харкова
Просів трафік / позиції або не росте відвідуваність? Як знайти і виправити причини самостійно