Обучению нет конца, будь то в любой отрасли, в которой мы работаем. Это неизбежный и непрерывный процесс. Но вопрос в том, как много мы используем в нашей повседневной жизни.
В этом посте я особо хотел бы подчеркнуть изучаемые нами алгоритмы, которые рассматриваются как своего рода мандат для любого разработчика программного обеспечения. Действительно ли мы используем алгоритмы в нашем повседневном процессе? Да, но не в прямом смысле. Сегодня у нас есть N’ количество пакетов утилит, чтобы заменить все наши общие варианты использования.
Несколько лет назад я столкнулся с проблемой, когда нам пришлось перенести данные между двумя совершенно разными источниками данных. Типичным вариантом использования было преобразование данных выражения в сложную структуру JSON. Изначально это выглядело как прямолинейный подход, но фактическая реализация была довольно сложной. Это была не та проблема, которую можно решить с помощью вложенных условий. Для этого требовался гораздо более чистый подход, который решал бы все типы входных данных, которые по определению известны как “АЛГОРИТМ”.
На высоком уровне моим требованием было добиться следующего преобразования.
Входное выражение: )))’
Вывод JSON: { “expr”: { “тип”: “и”, “набор”: [ { “expr”: { “тип”: “эквалайзер”, “ftp”: “str”, “vst”: “AXE”, “ключ”: “ABC” } }, { “expr”: { “тип”: “эквалайзер”, “ftp”: “str”, “vst”: “ASC”, “ключ”: “ДЛЯ” } } ] } }
Никакие пакеты утилит не придут вам на помощь для решения такого рода проблем. Знание алгоритмов меняет ваш взгляд на проблему. Многие из вариантов использования могут быть решены с помощью концепций некоторых алгоритмов или путем их настройки. Но прежде всего необходимо потратить время на то, чтобы понять постановку проблемы.
Ознакомьтесь с моим кодом на github, чтобы узнать, как я изменил методы обхода дерева выражений для достижения желаемого результата.
Проверьте github
Счастливого Обмена!!
Оригинал: “https://dev.to/twtsuganya/why-should-we-know-algorithms-36c1”