Сопоставление с образцом (pattern matching) — сильный механизм языков программирования, который, к сожалению, встречается не так часто. Причём, как в коде разработчиков, так и в поддержке со стороны самого языка.
Разработчики на функциональных языках используют этот механизм довольно часто, потому что у них вообще многое определяется статически через правильный подход к системе типов. Разработчики же на императивных языках очень любят огромные многоуровневые ветвления. Есть даже такое понятие «Спагетти-код» — раньше его применяли к коду, перегруженному операторами перехода, но в современном виде это скорее об избытке операторов условия.
Pattern matching позволяет накладывать на объекты некоторый трафарет и смотреть, попадают ли они под него. Это не только выглядит лаконичнее и короче, чем дерево условий, но ещё и понятнее с точки зрения восприятия человеком: вот у нас заказ содержит более 10 элементов и при этом стоит более 1000 долларов, значит делаем на него скидку 10 центов. При этом трафарет работает как сортировщик монеток: самая маленькая проваливается в первый паз, следующая по размеру в следующий итд, применение условий идёт сверху вниз. Есть и неявный плюс: такой подход автоматически провоцирует разработчиков проводить проверку на null. Ведь null не может подходить под трафарет «содержит более 10 товаров».
К счастью, в C# этот механизм в последних версиях активно развивают и совершенствуют. И это одно из многочисленных преимуществ C# над Java.
#dev
На канале есть рубрика про #рефы. В неё иногда залетают примеры с физикой элементов, и тогда звучит вопрос: «Окей, а как это сделать?». Если на вебе всё просто — есть движки вроде Matter.js или PhysicsJS, а вот что делать на мобиле?
Недавно мой dev-бро как раз для своей рабочей задачи нашёл кастомизируемый движок с управляемой физикой в SwiftUI — Kinetics🧑💻
Штука удобная и мощная по возможностям:
🎯 Ретаргетинг
Меняет цели анимации на лету при взаимодействии, идеально для интерактивных элементов
🚀 Импульс
Естественная имитация импульса, которая ещё и отзывчивая
🦾 Тянучесть
Сопротивление объекта, дающее гладкое, естественное ощущение натяжения
🧲 Магнетизм
Умные привязки к значимым позициям. Например для циферблатов, ползунков и вообще любых интерфейсов, где важны дискретные значения
🏀 Упругость
Реалистичное поведение при столкновениях с настраиваемой потерей энергии
Короче, пробуйте тоже. Мир интерфейсов двигается вперёд за счёт тех, кто не боится экспериментировать. И да — храни Бог этих упоротых энтузиастов, которые пишут опенсорс-библиотеки и движки вместо того, чтобы просто жить спокойной жизнью 😎
#dev#frontend
👅Тэкс, назрел вопроспро локализацию
Я ярый амбассадор сервисов локализаций и вообще этого флоу. Мои любимчики это Lokalise и POEditor, но для своих стартапов они не подходят т.к. хотят не малые бабосы или встречают жёсткими ограничениями. Даже Framer ебанулся с горы и за одну локаль хочет $40/m. Поэтому мы с dev-бро делаем небольшою и удобную автоматизацию для нашего side-проекта, которую хотим опубликовать для всех желающих. Скажу больше, у нас получилось элегантное и дешёвое решение, с которым приятно будет работать всем членам продуктовой команды.
Сейчас хочу понять процентовку людей, которые работают с мультиязычным контентом в своих проектах. Для своей банды как всегда сделаю подгоны.
#опросы#проТекст#dev
Пока каналы сосали контент про очко эппл Apple Vision Pro, упустили новость для нас, для работяг из IT!
🍏TipKit — нативная замена сторонних решений для тултипов, ондордингов. Новый фреймворк даст возможность использовать разные обучающие шаблоны для приложений, с возможностью кастомизации их внешнего вида. Также настроить можно свои правила для их отображения где и когда угодно. Кайф.
TipKit работает на iOS, iPadOS, macOS, watchOS и tvOS ебать его в сраку (про visionOS ни слова кстати). Для ушлых продАктов захотевших использовать тултилы как инструмент маркетинговой активности и горе-дизайнеров есть примеры использования фреймворка.
Выглядит красиво, функционально, спасибо Эппл, но главное чтобы мои dev-бро тоже были довольны работой с этим китом.
📚Overview
#OS#apple#dev#полезное
📷Секретный файлтолько для iPhoneиiPad
Функция быстрого просмотра файлов у яблочников, теперь умеет показывать 3D и AR объекты, но только на iOS и iPadOS. Файлы формата *.reality можно встраивать не только в приложения, но и добавлять на сайты. Имеется даже поддержка аудио, ахуеть.
🔗AR Quick Look
#dev#apple#AR#3D