Выбор и внедрение библиотек с открытым исходным кодом
При создании MVP вы хотите украсть как можно больше кода. Вы не беспокоитесь о лицензировании кода, вы хотите как можно быстрее утвердить рынок с открытым исходным кодом. Итак, вы хотите использовать сторонние библиотеки для выполнения тяжелой работы в своем приложении. Это сердце большинства великих новых компаний, использующих новые технологии для обслуживания нового рынка. Uber не создавал картографическую систему GPS в своей первой версии. Google не создавал систему НЛП в своей первой версии. Netflix не создал библиотеку распознавания лиц для идентификации актеров в своем прототипе. Вы тоже не должны. В этой статье дается несколько советов по определению и использованию существующих библиотек для вашего MVP.
Существует множество форм решений, которые вы можете выбрать, от вариантов с белой маркировкой до таких услуг, как календарно, для библиотек Python с открытым исходным кодом. Здесь мы сосредоточимся в первую очередь на библиотеках кода, которые будут импортированы в ваше приложение напрямую для выполнения определенной функции. Такие вещи, как библиотека определения позы, распознавание лиц, [natural language processing](нечеткое соответствие или отправка электронной почты из кода. Первое, что нужно увидеть, это то, будет ли библиотека обслуживать нужные вам функции с достаточно высокой точностью. Является ли ваш вариант использования стандартной вещью, которую делает библиотека? Или это передний край технологии в библиотеке? Достаточно ли кастомизации? Затем вы хотите определить популярность и текущую активность. Сколько звезд у проекта на github по сравнению с конкурентами? Когда был последний коммит? Сколько активных авторов в кодовой базе? Определите, совместим ли он с вашим техническим стеком, или вы можете создать новый стек для взаимодействия с библиотекой. Будете ли вы общаться с ним через базу данных, файлы, потоки, если он на другом языке. Есть ли у вас разработчики, которые могут работать с библиотекой, или вам нужно найти новых специалистов, которые разбираются в ней?
При реализации библиотеки часто имеет смысл найти разработчика, который уже работал с этой библиотекой. У них есть свои тонкости, подвохи и способы делать вещи, которые могут противоречить стандартному стилю языка, на котором он написан. Найдите разработчика на upwork или аналогичном, так как для качества кода и целесообразности обычно стоит найти эксперта для платить немного больше. Если идеальная библиотека написана на языке, отличном от языка вашей основной кодовой базы, тщательно подумайте о проектных ограничениях передачи информации туда и обратно. Есть много способов сделать это, но старайтесь поддерживать кодовую базу другого языка как можно более узконаправленной. Выполняйте задачи библиотеки, а остальное оставьте основному приложению. Будь то на другом языке или нет, обычно хорошей практикой является хранение задач библиотеки в ее собственных файлах в вашем приложении. Держите задачи, связанные с библиотекой, подальше от более приземленной бизнес-логики приложения. Таким образом, если вам нужно заменить библиотеку, расширить или создать собственную в будущем, ею будет легко управлять и работать с ней.
Возможно, вам потребуется расширить и отредактировать библиотеку. Для этого вы можете стать участником их github. Запросите функцию, а затем станьте владельцем здания, пройдите процесс проверки кода и получите ее. Это сделает ее доступной для всех, кто будет использовать библиотеку в будущем. Кроме того, вы можете создать патч для библиотеки, который будет частным и предназначен только для вашего использования. Создавая патч, вместо того, чтобы создавать ответвления и редактировать напрямую, вы можете исправлять любые новые версии библиотеки, которые выходят. Таким образом, вы получаете доступ к новым функциям основной библиотеки, при этом расширяя необходимые вам функции. Когда ваше приложение станет успешным и наберет популярность, вы можете обнаружить, что первоначально выбранная вами библиотека не имеет коммерческой лицензии или вы слишком много платите за нее. Теперь вам придется переоценить и, возможно, создать свой собственный, более специализированный и мощный инструмент для выполнения этих задач. Это большая проблема, и вы хорошо знакомы с расширенными функциями библиотеки, которую вы использовали. Вы можете нанять команду для создания новой и сосредоточить усилия на функциях, наиболее важных для бизнеса.
Будьте продуктом в первую очередь. Избегайте ловушки увлечения библиотекой. Можно использовать 5% его функций, скорее всего, именно этим вы и будете заниматься. Не вникайте во все удивительные функции, предлагаемые библиотекой, а затем придумывайте продукты или сложные функции для своих пользователей, которые демонстрируют это. Сосредоточьтесь на ценности, которую вы добавляете пользователям, и выбирайте библиотеки и фрагменты кода, которые позволяют это сделать. Большая часть импортированного кода будет бездействовать, и это хорошо.
Есть много вещей, которые следует учитывать при выборе и создании приложения на основе сторонних библиотек. Почти всегда лучше всего начинать так: встать на плечи гигантов. Если вам нужна помощь в выборе или навигации по открытому исходному коду, обращайтесь.
Оригинал статьи размещен на