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.

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

Артём Полтавцев написал о формах записи в салоны красоты

Часто салоны работают с сервисами вроде YClients и Sonline. Виджет сервиса не общается с сайтом салона, и все параметры записи пользователь выбирает через виджет: услуга, студия, мастер, время. В этом случае структуру сайта лучше максимально упростить.

Сервис GBooking можно связать с сайтом по API. Логика заказа: выбор первой услуги → выбор студии → добавление услуг → выбор мастера и времени. Выбор первой услуги ограничивает выбор студий, так как не везде может быть одинаковый набор специалистов и оборудования.

Рекомендации:
— Не отвлекайте пользователя. Предлагайте подписаться на ваши соцсети только после того, как он записался. И предусмотрите за это вознаграждение.
— Покажите, какие шаги надо сделать для записи.
— Сообщите время, которое займёт услуга.
— Дайте возможность записаться по телефону или через мессенджеры. У таких услуг есть много нюансов, которые клиент может захотеть уточнить.
— Дайте возможность записаться, не выбирая услуги. Пусть клиент сообщит желаемое время и свои контакты, чтобы остальное уточнить по телефону.
— Добавьте опции, например, выбор молчаливого мастера.
— Дайте удобный способ отменить или перенести запись без звонка в салон.
— Расскажите о сотрудниках и дайте начать запись с конкретного мастера. Постоянным клиентам будет проще записываться к любимым мастерам.
— Напоминайте клиентам о записи.

https://vc.ru/design/70728

Как стать продакт-менеджером

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

Продакт-менеджером стать НИКАК. Если вы задали такой вопрос в такой формулировке, у вас уже нет ключевых навыков продакта – автономности и умения декомпозировать проблему (ну и коммуникативных скиллов, если уж на то пошло). С чего же интуитивно надо начать? Ответить для себя на вопросы:

  • кто такой продакт и что он делает
  • как это отличается от того, что делаю я
  • А ОНО МНЕ НАДО?

Если "оно вам надо", то ваш дифф между п.1 и п.2, по сути, и есть руководство к действию. Приоритезируете ваш наборчик по глубине проблемы, и вперед.

Как получить п.1:

  • прочитать несколько книжек из заметки, что приложена в самом начале;
  • провести 5 интервью с продактами из компаний, которые вам нравятся / которые делают продукты, которые вам нравятся (вопросы можно взять отсюда; продактов можно взять на конференциях/курсах/LinkedIn/Facebook);
  • составить карту компетенций и навыков.

А дальше исключительно пахать, работать и снова пахать :) делать свои проекты, разбирать кейсы, идти в стажеры к профессионалам.

Повторю еще раз, другими словами:

  • сначала сделать исследование самому, потом задавать конкретные вопросы;
  • задавать конкретные вопросы – конкретным людям, которые вас драйвят/вдохновляют/заставляют думать;
  • их ответы сразу брать в работу и практиковать. Теорию – в топку.

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

Ну и напоследок: можно ли перейти в продакты из танцоров/маркетологов/программистов?

Можно.
Go back to the top.

Визуализация данных

Визуализация данных не самая простая штука. Бывает потеряны часы времени в поиске подходящего формата. "Bubble Chart", "Bar Chart", а может быть "Scatterplot"?

Коллеги собрали большинство примеров вместе и показали правильное использование графиков и диаграмм. Кратко так:

  • столбики (Bar Chart). Используют для сравнения нескольких наборов данных. Горизонтальные столбцы обычно используют, когда нужно сравнить большое количество показателей или визуально выделить явное превосходство одного из них. А вертикальные столбцы хорошо иллюстрируют, как менялись показатели в разные периоды, например, ежегодная прибыль компании за несколько лет
  • точечная диаграмма (Scatterplot). Помогает найти взаимосвязь между двумя показателями. Например, с его помощью можно узнать, как меняется коэффициент конверсии в зависимости от размера скидки на товар.
  • пузырьковая диаграмма (Bubble Chart). Позволяет сравнить два параметра по третьему. Возьмем коэффициент конверсии и размер скидки. Добавим к ним доход (за который отвечает размер круга) и получим примерно такую диаграмму. Глядя на этот график, можно заметить, что самая высокая конверсия у товаров со скидкой 30%, однако больше всего дохода приносят товары без скидки и товары со скидкой 5% (см. пример ниже).

Остальные примеры по ссылке Также там можно найти любопытный график, который показывается корреляцию между числом утонувших в бассейне и выходом фильмов, где снимался Николас Кейдж. :-)

Парадигма навигации

Для навигации по приложению мы выбрали таббар. В 2018 году это выглядит очевидным, не было даже вариантов, что может быть по другому. Вопрос был скорее в том, какие пункты меню выбрать.

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

Об окончательной победе таббара над бургер-меню можно говорить хотя бы потому, что гугл давно добавил таббар в гайды материал дизайна, и сейчас практически все приложения от гугла навигируются именно таким образом (не важно ios это или android).

Окей, с навигацией разобрались. Теперь как понять, какие функции у приложения основные и что из них вынести в таббар? Можно пользоваться простой логикой — ради этой функции в таббаре я буду запускать приложение.

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

Неочевидные проблемы связанные с бумажными картами

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

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

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

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