Дайджест закладок №8
4 min readSep 19, 2017
30 ссылок. Тема выпуска — оптимизация, фронтенда, дизайна, бэкенда. Плюс охапка статей по деплою и безопасности, и 5 полезных библиотек.
Что это за дайджест? Изначально я (Виталий Емельянцев) выложил в открытый доступ 500 моих браузерных закладок. Но каждую неделю у меня появляется по 10–30 новых, и выкладывать их публично оказалось проще через дайджесты.
Оптимизация фронтенда
- Гонка за скоростью: Ускоряем загрузку сайтов в эпоху смартфонов
Профайлинг в Chrome, анализ, советы.
- The State of the Web: A guide to impactful performance improvements
И еще одна статья на ту же тему. - Size Limit: Make the Web lighter
Марсиане о size limit — анализаторе размера es6-бандлов.
- Webpack bundle inner structure and optimization
И слайды от них же, по оптимизации es6-бандлов. - Managing CSS & JS in an HTTP/2 World
Личный опыт какого-то фронтендера по организации ассетов под отдачу по HTTP/2. - Gain Motion Superpowers with requestAnimationFrame
Как анимировать сайт и избежать проседания производительности. - Robots Must Suffer. linters and tools for front-end development
Андрей Ситник о фронтенд-линтерах. ESLint использую, слайды глянуть рекомендую.
- Webpacker 3.0
Быстрее, проще, лучше. Но с 2.0 на 3.0 я так до сих пор и не перешел из-за совершенно отбитой документации. Со временем по тикетам (раз, два) они ее дополняют, жду подходящий для миграции момент.
Оптимизация UI/UX
- A framework for creating a predictable & harmonious spacing system for faster design-dev handoff
Гайд, как поэтапно рефакторить интерфейс. Как Сэнди Метц пишет про рефакторинг в Ruby, так здесь про него в UI/UX.
- Understanding the WebView Viewport in iOS 11
Что делать с «ушами» iPhone X в Safari, как оптимизировать верстку на сайтах. Краткий гайд.
Оптимизация и рефакторинг Ruby и Rails
- Introduction to Concurrency Models with Ruby. Part II
Вторая часть цикла по устройству конкурентной модели в руби. Первую часть выкладывал в предыдущем дайджесте. - Rails Architectural Patterns
Пополняемая база знаний по архитектуре Rails-приложений. - It’s About Time (Zones)
О работе с таймзонами в рельсах, от thoughtbot. - Single responsibility principle in Ruby examples
Несмотря на название, пример в статье один. До и после дробления одного класса на несколько. - How to avoid inheritance in Ruby?
Уже более подробный и интересный гайд по рефакторингу. Наследование → Декомпозиция.
- Lint your Ruby code with Overcommit and static analysis tools
Обзор кучки линтеров и анализаторов для Ruby и Rails и связка их воедино за счет Overcommit. - inject vs each_with_object
Что быстрее, что лучше.
Деплой и инфраструктура
- Optimizing web servers for high throughput and low latency
Dropbox о том, как оптимизировать сервера и инфраструктуру на уровне железа и ОС. - How does a Dokku work?
Все еще обхожу стороной Docker-экосистему. Но закладки коплю.
Безопасность
- Multiple vulnerabilities in RubyGems
Уязвимости в rubygems (tl;dr:gem update --system
). - SSRF (Server Side Request Forgery) testing resources
Коллекция ресурсов для пентеста.
Библиотеки
- Store.js
Кроссбраузерная библиотека-хранилище данных на фронте (сессия, куки, localStorage, etc). - RequestStore
Глобальное потокобезопасное хранилище, но уже для Ruby и Rails. - ActionArgs
Доступ к HTTP-параметрам в рельсовых экшнах как к аргументам методов. Не представляю, где это может пригодиться, но обратить внимание стоит. - minitest-hooks
Люблю минитест. Хуки пока не использовал, но, возможно, найду применение. - Using Web Push Notifcations with VAPID
Подключаем PUSH-уведомления на сайте. Я пока использую OneSignal, но смотрю и на другие варианты.
Остальное
- Moviemania
Коллекция кинообложек с удаленными надписями. Использую обложки оттуда у себя в твиттере, когда оцениваю фильмы.
- RFDS: скорая помощь Австралии с SLA в 1 час до любой точки континента
О том, как организована работа спасателей в Австралии. - Инженерный взгляд на медитацию. Техника випассана.
Занятно ¯\_(ツ)_/¯.
Следите за анонсами будущих дайджестов в телеграм канале Gambala.live, и вступайте в чат Школа Веб 2.0.