Как разработчик, он часто полагается на помощь посторонних в Интернете, это может быть использование программного обеспечения с открытым исходным кодом, онлайн-форумы, просмотр Stack Overflow или чтение миллионов статей по разработке по всему Интернету.

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

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

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

Убрать символы с диакритическими знаками…

Проблема:

В некоторых странах пользователи, как правило, используют много символов с диакритическими знаками ('è à á â ę ß î œ o ø'), что обычно нормально, но мы обнаружили, что у некоторых из наших партнеров по доставке были проблемы с печатью этикеток, содержащих сказали символы с диакритическими знаками, поскольку их программное обеспечение для печати не позволяло этого.

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

Например, почтовый адрес будет напечатан следующим образом:

18 Hënrikô Straße = ›18 Hünriké Straße

Полностью бросили курьеров, которые потом вместо расшифровки адреса вернули посылку.

Решение:

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

Таким образом, клиенты будут немедленно осведомлены о том, что произошло, и мы сможем гарантировать, что до того, как данные будут сохранены в базе данных, они уже будут в правильном формате.

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

Теперь приведенный выше пример напечатает:

18 Hënrikô Straße = ›18 Henriko Strasse

Проблема решена.

Реализация:

Обыскав Интернет в поисках существующих решений, мы были удивлены тем, что не было доступных готовых решений, которые можно было бы просто подключить к нашему веб-сайту.

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

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

Как только это было сделано, мы переупаковали код в модуль NPM и выпустили его под лицензией MIT как программное обеспечение с открытым исходным кодом. Модуль доступен для загрузки, а исходный код также доступен на Github.

Это наш небольшой вклад (еще больше) в сообщество разработчиков ПО с открытым исходным кодом.

Не стесняйтесь ознакомиться с модулем здесь и исходным кодом здесь.