Best Class Digital Werporce был одним из наших целей в 2019 году, и мы сделали несколько шагов в этом направлении. Производительность разработчика является одной из мерой этой цели, и в этом духе-расширение прав и возможностей разработчиков лучшими в своем классе инструментов и усилителей производительности-у меня была возможность оценить исходный граф. В этой статье я хочу поделиться своим путешествием этой оценки и своего опыта, в первую очередь с точки зрения разработчика.
SourceGraph — это поиск кода и инструмент интеллекта для разработчиков на основе веб -кода. Он предлагает все свои функции в масштабе в большом «пространстве»:
Государственная служба: [24 языки программирования] x [All OpenSource Repos] x [All Repo, Github, Bitbucket, Code Commit] x [Все филиалы] Частный сервис: [24 языки программирования] x [Все частные репо на самостоятельно хостинном сервере] x [gitlab, github, bitbucket] x [все ветви] Моя точка зрения в оценку была вдоль 3 столпа исходного графа: поиск, обзор и автоматизация. Описание богатого набора функций исходного графа — само по себе упражнение, вместо этого я постараюсь рассказать о том, почему этот инструмент выделяется и как он повышает производительность разработчика.
Поиск кода: разработчик при создании кода, будет необходимо изучить определение метода. В большинстве случаев это определение может существовать в IDE (на ноутбуке), и поиск становится вопросом запоминания имени метода и достижения его, используя функции поиска IDE. Однако это становится сложнее, если кто -то не принимает точную фразу или не знает, что искать и что, если этот фрагмент кода недоступен в местной среде Dev. Нужно клонировать несколько репо, чтобы ориентироваться в определении, найти ссылки и завершить обзор. Именно здесь я вижу, что SourceGraph добавляет значение, где в разработчике, используя расширенные функции, такие как REGEX (которое позволяет искать подмножество языков, таких как Python, Go, Java), поиск символов (который включает поиск только на переменных и именах функций ) и поиск Comby (более мощный поиск, чем корпорация, которая позволяет найти сбалансированную скобку), теперь уполномочен выполнять (не ограничиваясь) следующие действия, прямо в браузере:
Как следует вызвать API. Каково влияние изменения существующих переменных API Найдите переменные, начиная с определенного префикса, Найдите вызов функции и заменить аргумент (через поиск Comby) Рефакторирование монолита в изучение микросервиса Новые способы записи кода как из внутренних частных репо, так и от открытых ресурсов, обучающихся, предпринимаемых стандартных способов безопасного чтения токенов, упаковки токенов POP в микросервисах и поиск кода клиентской стороны через 1000 личных репо с GBS данных, где это не всегда возможно/эффективно клонировать их локально, где объявляются конфигурации среды, найдите конкретные переключения по источнику, как реализовать заданный алгоритм. Использовать API GraphQL (код-дата) для питания внутренней телеметрии вокруг метаданных исходного кода, что недавно изменилось в Код о (функция, страница, путешествие и т. Д.), Который сломал его? Можно искать различия в совершении коммита и сообщений о совершении, используя предопределенные поиски, курируемые для вас или вашу команду/организацию. Они также могут быть использованы для отправки вам оповещений/уведомлений, когда разработчики добавляют или изменяют звонки в API, который вы можете найти в экземплярах secret_key в источнике
Repo:^github.com/gruntwork-io/file:. .tf $ \ s*secret_key \ s = \ s*».+»
SourceGraph позволяет всем вышеперечисленным поискам предложения, пролетающих по нескольким кодовым хостам (Github, Gitlab, Bitbucket и многим другим), несколькими репо всего, во всех филиалах репо и в обеих репо с открытым исходным кодом и частным предприятием Enterprise Repos — Следует отметить, что поиск как на открытом исходном коде, так и в частных предприятиях в настоящее время невозможна с одним и тем же единственным поиском. Это должны быть 2 разных поисковых запроса. Также поиск кода — это не то же самое, что ищет текст, где, если вы ищете «HTTP -запрос» на GitHub, результаты в конечном итоге получают кучу шума, который также включает в себя «httprequest» и «http_request». Все это способствует быстрее доставки кода.
Обзор обзора кода. С учетом достижений в инструментах хостинга исходного кода, таких как Github и Gitlab и т.п. , одобряет/отрицает запрос и продвигается вперед с рабочим процессом, все внутри браузера. Каждый осознает важность этой фазы/шага, которая дает возможность поймать немеханистические закономерности, избегать дорогостоящих ошибок (логические/семантические ошибки, предположения и т. Д.), А также является средством передачи знаний. SourceGraph идет еще на пару шагов и дает рецензенту навигацию исходного кода прямо из браузера, где вы можете расширить и украшать представления кода, используя расширения исходного графа
Навигация исходного кода, как будто в IDE. Наведите мышь на имя метода, чтобы «перейти к определению». Это огромная экономия времени и делает процесс эффективным (благодаря их алгоритму индексации) Аналогичным образом, в дополнение к тому, чтобы увидеть определение метода, рецензент может захотеть проверить, кто еще использует/ссылается на его, чтобы оценить влияние изменения. SG предлагает «Найти ссылки» во всех репо, которые индексируются на сервере. Примечание SG самостоятельно (TM/SourceGraphEval) для индексации всех частных репов, поэтому код никогда не покидает сеть. Однако для поиска кода OpenSource OpenSource, не являющегося инспектором, на SourceGraph.com существует общедоступная облачная служба. Мне бы очень понравился вариант, когда частный сервер плавно возвращается на общедоступный сервер, но может быть команда SG предоставлена в будущих выпусках. Подтверждает изменение с помощью номеров охвата испытаний и следы времени выполнения. В то время как вышеупомянутые 2 балла («Перейти к определению» и «Найти ссылки») составляют 80% случаев использования, рецензент может чувствовать себя более уверенно в изменении, когда обзор также предлагает номера тестовых покрытий. SG предлагает это и идет еще один шаг, сделав доступные номера Trace Performance со времени выполнения (через поддерживаемые службы, которые должны быть включены) Автоматизация автоматизации рабочих процессов: до сих пор обсуждал 2 столпа: код и обзор. Теперь подумайте о выполнении этих действий в масштабе Enterprise с соответствующими ролями и видимостью через рабочие процессы. SG предлагает бета -функцию, называемую Automation, которая делает именно это: удалить устаревший код, исправить критические проблемы безопасности и погасить технический долг. Способность создавать кампании в тысячах репозиториев и владельцев кодов. SourceGraph автоматически создает и обновляет все филиалы и вытягивает запросы, и вы можете отслеживать прогресс и активность в одном месте. Это огромно. Представьте себе эту шкалу! Эта возможность обеспечивает следующие варианты использования:
Удалить устаревший код: мониторинг на для устаревших библиотек и координировать модернизацию всех затронутых репозиций итеративно Критические проблемы сортировки Обновления зависимости Включить распределенное усыновление Уменьшите стоимость и сложность заката устаревших приложений По сути, он предлагает общую сумму всего интеллекта кода (широко предприятия) в доли секунды через свой поиск! Повышение ставки для опыта разработчика. Вот быстрое сравнение функций с другими подобными решениями: https://about.sourcegraph.com/workflow/#summary-feature-comparison-chart
Доказательство установки концепции было очень простым, где распределение было доступно в качестве контейнера Docker, который я развернул на одном из наших EC2. Я также быстро смог интегрироваться с Okta (нашим сервисом Authn) довольно плавно, и мои коллеги из всего предприятия смогли поиграть и попробовать некоторые варианты использования. Как только усыновление улучшится, я планирую развернуть исходную группу в кластере Kubernetes. Во время интеграции с Okta мы заметили небольшую проблему с рукопожатием SAML, и когда я упомянул об этом команде SourceGraph, они позвонили, помогли его отладить, быстро изменили продукт и предоставили кандидату на выпуск HotFix, который я До сих пор смог обновить в течение нескольких минут без течения какой -либо из выполненных конфигураций. Мне понравился опыт!
Что Далее платформа разработчика — это единственное место, где разработчики и команды DevOps идут, чтобы ответить на вопросы о коде и системах. Он связывает информацию из многих инструментов, от репозиториев на вашем кодовом хосте до отношений между зависимостью между вашими проектами и информацией о выполнении приложений. -Сурсеграф
Мне рекомендуется увидеть, как она вписывается в стратегию T-Mobile по созданию среды, которая быстро экспериментирует и обеспечивает более быстрые изменения с целью расширения возможностей разработчиков и DevOps для строительства лучшего программного обеспечения быстрее, безопаснее и здоровее.
В этом духе T-Mobile сделал важные шаги за последние несколько лет для оптимизации платформы непрерывной доставки. От пользовательского процесса CICD на PREM до отраслевых стандартных процессов на размещенных решениях на PREM до облачного Gitlab, магазина Onestop для управления исходным кодом, DevOps LifeSyle вместе с DevSecops. В ноябре 2019 года SourceGraph и Gitlab объявили (соответствующую MR) Native Integration Offerring, значительное улучшение для разработчика UX. Хотя расширение браузера SourceGraph будет продолжать работу, интеграция с Gitlab просто означает, что разработчики, не желающие устанавливать расширения браузера, способны пользоваться ценными функциями, легко интегрированными со своим рабочим процессом Gitlab. ПРИМЕЧАНИЕ. Частные репозитории Enterprise по -прежнему должны быть размещены на частном сервере SourceGraph, просто этот опыт теперь доставляется национально через рабочие процессы Gitlab, а не через плагины браузера.
Учитывая мой положительный опыт и огромный потенциал, я планирую порекомендовать Sourcegraph нашей команде закупок в надежде сделать его реальностью для всех разработчиков, DevOps и Devsecops в T-Mobile.
Оригинал: «https://dev.to/vikashkodati/quest-for-best-in-class-dev-tools-and-platforms-52fk»