PHP Intl. Правильная транслитерация кириллицы

PHP Intl. Правильная транслитерация кириллицы

Современные фреймворки предоставляют готовый функционал в составе библиотек или хелперов для работы с библиотекой ICU (http://site.icu-project.org/home) через API Intl.

Такой функционал необходим для поддержки интернационализации разрабатываемого веб-сервиса. На основе указанной локали могут устанавливаться форматы отображения валют, времени и даты, а также подбираться настройки для инициализации транслитераторов (https://www.php.net/class.transliterator).

В разделе «Телеграм-каналы (https://chulakov.ru/notes)» сайта Студии во время автоматического импорта постов из наших каналов производится транслитерация названий заметок для формирования ЧПУ (https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_URL).

После первого релиза мы обнаружили, что транслитерация некоторых букв русского алфавита производится не совсем корректно, даже при верно установленной локали на уровне фреймворка.

Например, уникальная часть URL заметки (https://chulakov.ru/notes/development/php-8-pocti-novogodnij-podarok) про релиз PHP 8 после транслитерации имела вид php-8-pocti-novogodnij-podarok. Замена некоторых букв произошла некорректно.

Для того чтобы транслитерация кириллицы производилась по традиционным правилам, необходимо произвести конфигурацию объекта-транслитератора (https://www.php.net/manual/ru/transliterator.create.php), передав следующее значение параметра $id:

Russian-Latin/BGN; Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;

После такой конфигурации результат преобразования наименования заметки изменится на php-8-pochti-novogodniy-podarok.

Стоит напомнить, что непосредственная работа с объектами-транслитераторами в зависимости от фреймворка может быть организована на различных уровнях абстракции. Например, конфигурация и подмена таких объектов может осуществляться через механизмы внедрения зависимостей.

Блок продукта. Продолжение

Блок продукта продолжился занятиями с Женей Бондаревым, арт-директором Redmadrobot. С Женей мы провели около 4 занятий. Одна из основных целей его занятий — научить нас выходить за рамки привычных паттернов поиска идей.

Дивергентное мышление

Дивергентное мышление подразумевает, что у задачи нет одного идеально правильного решения, другими словами — творческий подход к решению проблем. Один из самых больших недостатков современного образования заключается как раз в том, что оно подавляет дивергентное мышление — нас учат мыслить по шаблону, с единственно верным решением. Неудивительно, что дивергентное мышление очень развито у детей, так как с возрастом мы обрастаем рамками и запретам. И вообще, способность к дивергентному мышлению — это признак высокого IQ 🤓

Далее мы проверили этот подход на себе:

Шаг первый. Женя попросил нас выписать на бумаге 5 проблем, с которыми мы сталкивались последнее время. Всё что угодно от длинной очереди в магазине, до простуды. Потом из 5 проблем мы выбрали одну наиболее интересную для себя.
Шаг второй. Необходимо было открыть Яндекс Дзен, рандомно проскроллить ленту и остановиться на случайной новости.
Шаг третий. Соединить эти истории вместе.

Приведу в пример вариант, который в итоге получился у меня. 

Проблема, которую я выписал — цена на Uber от метро до дома неприятно повысилась, а Яндекс Дзен выдал мне статью о том, что власти Москвы хотят создать департамент одиночества.

Итак, соединяем эти вещи в цельную историю:
«Многие москвичи стали жаловаться на высокие цены на такси, из-за этого им приходилось идти до дома в одиночестве, что привело к массовому всплеску депрессии в обществе.
Производительность труда и рождаемость резко снизились, казалось, что кризиса не миновать.
На почве народной апатии власти Москвы вынуждены создать департамент одиночества, который будет субсидировать московские таксопарки и сервисы каршернига. Ожидается, что уже в следующем квартале число грустных москвичей начнет снижается»

как-то так 🙂

Подобные прокачки для мозга Женя проводил в начале каждого занятия — брать неочевидные вещи и соединять их между собой.

Dropbox оппубликовала пару новых материалов на своем ресурсе dropbox.design.

Один из них про ментальные модели, которые могут быть использованы для решения задач, принятия решений и коммуникации.

Наверняка большую часть из них вы уже слышали или использовали, но беглый опрос показал, что многие про эти модели слышали, но до практического применения так и не доходило.

---

Ниже просто приведу часть моделей, перечисленных в статье, так скажем, для закрепления:

1) Первоначальный принцип
Заключается в разборе задачи на основные элементы, которые лежат в основе задачи, их реконфигурации и сборке в финальное решение. (см. примеры в статье)

2) Инверсия
Заключается в рассмотрении сценариев ровно противоположных желаемому результату. Формируется образ «антирезультата» и, отталкиваясь от него, формируется путь поиска решения.

3) Лестница абстракций
Используется для поднятия на уровень абстракции выше, чтобы «увидеть лес за деревьями». Начинается с отправной задачи, от которой можно опуститься ниже для детализации, либо подняться выше для поиска альтернативного решения. Для погружения вниз стоит использовать вопрос «Как». Для уход на уровень выше стоит использовать вопрос «Зачем».

Хороший маршрут здесь — подняться от текущей задачи на уровень выше, спросив «зачем», а потом с верхнего уровня пойти в параллельную сторону внизу, спросив «как». (см. примеры в статье)

---

Это только часть моделей, описанных в статье, которые относятся к решению задач. В самом материле есть еще модели для принятия решений и коммуникации.

Я рекомендую самостоятельно глянуть полную версию статьи, там и с примерами проще понять, о чем речь, и более подробное описание можно почитать — https://dropbox.design/article/mental-models-for-designers

Производственное мышление

Производственное мышление — страшная штука если оно влечет за собой отрицание других систем компании: менеджмент не нужен, маркетинг бесполезен, продажи = впаривание, мотивация и другие высокие материи — бред.

Выражается это в том, что собственник или руководитель пренебрежительно, скептически, а иногда и оскорбительно относится к соответствующим отделам компании или подрядчикам. У нас недавно была встреча с компанией, на которой человек от производства с порога умудрился обидеть менеджеров, заявив что «продаваны все время что-то втюхивают» — хорошее начало беседы с партнерами.

Итог такого подхода: бессистемное восприятие компании. Отсутствие жизненно необходимых отделов в компании. Недостаток компетенций за пределами производства. И неуспешность компании как следствие.

Лечить это сложно. Если человек уверен, что работать можно только руками, а не головой — переубедить почти нереально. Можно попробовать расширить понимание технологического цикла. Ведь это не только изготовление изделий или оказание услуг. Это более длинная цепочка от анализа рынков до продвижения и продаж. Дизайн, маркетинг, продажи — просто участки производственной цепи.

Отмена

Из этой заметки вы узнаете, почему кнопка отмены действия не должна иметь цвет.

Почему
«Отмена» закрывает текущий экран пользователя и возвращает его к предыдущему экрану. Эта отклоняющая кнопка является защитой от нежелательных изменений в системе. Но когда она похожа на кнопку призыва к действию, это трудно распознать. Поэтому делайте кнопку серой.

Цвет
При использовании серого необходимо сделать его достаточно темным. В противном случае кнопка не будет разборчивой и может выглядеть как отключенная.

Выводы
Делайте кнопку «Отмена» темно-серой, чтобы пользователь воспринимал ее как возврат в безопасную зону, а не призыв к действию. 

Шпаргалка продакта: жизненный цикл задачи

Любая задача проходит плюс-минус одни и те же стадии. По факту - это ее жизненный цикл.
Каждая стадия подразумевает вопросы, которые мы себе задаем, чтобы протащить задачу дальше. Где-то уточняем требования, где-то выбираем решение, где-то подводим итоги того, что сделали. Ежедневный поток дел, смена контекста, и вот мы упустили что-то важное.

Несколько раз попадал в подобную ситуацию и думал: "Надо было куда-то записать себе этот вопрос. И этот тоже. И этот...". В итоге,
сделал для себя и команды небольшую шпаргалку, которая помогает не упустить важные моменты. Пдф в хорошем качестве будет под постом.

Как это работает

Сверху в шпаргалке стадии, под ними вопросы. Еще ниже инструменты, которые помогают на эти вопросы ответить.

Берёте задачу и прогоняете по вопросам. Находите то, о чем не подумали. Думаете, дополняете. На выходе получаете проработанное решение и план действий.
Пользуйтесь