Какое-то время назад появилась возможность уделить внимание языку Go и удачно на глаза попалась публикация «Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт» . В статье кратко, но информативно, рассказывается о тестовой задаче по разработке сервиса проверки номеров российских паспортов на предмет наличия их в списке недействительных паспортов. Среди основных требований к реализации – это скорость проверки и доступность сервиса.
После прочтения статьи для себя решил, что именно на этой практической задаче можно построить свое обучение Go. Действительно, задача c проверкой недействительных паспортов, хоть и избитая, но интересная, а раз уж требования по производительности здесь в приоритете, то реализация на Go здесь будет вполне уместна.
Кроме того, в упомянутой выше статье затронуты вопросы эффективной, с точки зрения памяти, организации битовых массивов (bitmap). И эта тема достаточно актуальна и востребована в разных прикладных решениях, например, в виде bitmap-индексов для СУБД.
Итак, есть желание посмотреть на новый для себя язык Go, есть интересная проблематика в виде организации и использования bitmap, есть практическое применение, на котором эти две задачи можно отработать.