Potenciando la Productividad del Desarrollador con Búsqueda Avanzada de Código

Rate this content
Bookmark

Los ingenieros de Google y Facebook pueden buscar en su enorme base de código utilizando un motor de búsqueda interno. El motor de búsqueda acelera la capacidad de sus desarrolladores (tanto antiguos como nuevos) para comprender cualquier parte de su base de código y comenzar a contribuir de inmediato. ¿Y qué pasa con el resto de nosotros?

En esta charla, repasaré los diferentes tipos de búsqueda de código, herramientas y software, y consejos y trucos avanzados para navegar fácilmente cualquier tipo de base de código. Con la llegada de repositorios de código grandes y capacidades de búsqueda sofisticadas, la búsqueda de código se está convirtiendo cada vez más en una actividad clave en el desarrollo de software. Todos los desarrolladores del mundo que pasan una cantidad increíble de tiempo leyendo en lugar de escribir código deberían tener acceso a las mejores herramientas de búsqueda de código que amplifiquen su productividad. La audiencia se llevará todo lo que necesitan para incorporarse, navegar y comprender cualquier base de código pequeña, mediana o desafiante.

10 min
22 Oct, 2021

Video Summary and Transcription

Los desarrolladores pueden usar Sourcegraph para buscar fácilmente código utilizando patrones literales, expresiones regulares y estructurales. Sourcegraph permite buscar en código abierto y privado indexado en GitHub y GitLab, y admite la búsqueda de la API de lotes inestables en React.js. También permite buscar con expresiones regulares, encontrar dependencias y patrones de uso. Con la búsqueda estructural, los desarrolladores pueden buscar bloques de código específicos y reducir su búsqueda utilizando palabras clave. Sourcegraph es esencial para la velocidad del desarrollador, ayudando a los equipos a buscar rápidamente en los repositorios, encontrar referencias a sistemas compartidos y proporcionar parámetros de búsqueda poderosos.

Available in English

1. Introducción a Sourcegraph y Búsqueda de Código

Short description:

Los desarrolladores pasan mucho tiempo leyendo y escribiendo código, por lo que necesitan herramientas para buscar fácilmente código. Sourcegraph es un motor de búsqueda para código abierto y privado. Ofrece funciones como búsqueda local, inteligencia de código, cambios por lotes, monitoreo de código e información de código. Con Sourcegraph, los desarrolladores pueden buscar utilizando patrones literales, de expresiones regulares y estructurales.

Muy bien, así que si estás en Sourcegraph.com, sígueme. Soy Prosper Otemiyuwa. Trabajo como Defensor del Desarrollador en Sourcegraph. Tenemos una agenda.

Entonces, todos los desarrolladores del mundo pasan una gran cantidad de tiempo leyendo y escribiendo código. De hecho, si usas mucho GitHub, descubrirás que incluso cuando no estás con tu computadora portátil, estás en GitHub, tratando de recibir notificaciones de solicitudes de extracción, comentarios y cualquier otra cosa, estás haciendo código, ¿verdad? Entonces, si pasas más tiempo leyendo y escribiendo, entonces deberías tener las herramientas que te permitan buscar código muy fácilmente.

Así que tenemos una herramienta llamada Sourcegraph. Sourcegraph.com. Por eso dije si abres tus teléfonos. Si abres tus teléfonos y vas a Sourcegraph.com, me gusta llamar a Sourcegraph.com el Google de la búsqueda de código. Así es como se ve. Si tu interfaz no se ve así, no estás en Sourcegraph, por favor. Así que verifica.

Con Sourcegraph, este es el valor que ofrecemos a los desarrolladores. Sourcegraph ha indexado actualmente más de 2.1 millones de repositorios de código abierto en GitHub y GitLab. Así que ahora mismo, puedes buscar código en Sourcegraph y te muestra data de GitHub y GitLab, ¿verdad? Y también puedes buscar código privado en varios repositorios. Con Sourcegraph, puedes hacer una búsqueda local en tus IDs locales. Puedes tener una inteligencia de código precisa en Sourcegraph.com. Y tenemos una función llamada cambios por lotes. En lugar de automatizar, en lugar de, ya sabes, abrir varias solicitudes de extracción a diferentes con cambios por lotes, puedes tener un archivo y luego puede hacer varias solicitudes de extracción por ti. En lugar de que tengas que hacerlo tú mismo. Así se llama cambios por lotes. Y luego tenemos dos funciones llamadas monitoreo de código e información de código. Pero para esta charla, voy a hablar más sobre la búsqueda.

Muy bien. Como dije, Sourcegraph se puede llamar Google de la búsqueda de código. Es literalmente un motor de búsqueda que te permite buscar todo el código abierto y todo tu código privado, ¿verdad? Entonces, ¿cuáles son los patterns de búsqueda de código que tenemos con Sourcegraph? Hay tres tipos de búsqueda que puedes hacer en este momento. Literal, de expresiones regulares y estructural. Así que vamos a lo literal. Sé que muchos de nosotros estamos familiarizados con el componente de espacio de origen, ¿verdad? Entonces, si estás incorporando a un nuevo desarrollador o te incorporas a una base de código y estás tratando de ver las ocurrencias de una clase, símbolo o definición en particular, literalmente puedes copiar la base de código y pegarla en Sourcegraph y luego buscará por ti.

2. Capacidades de Búsqueda de Sourcegraph

Short description:

Sourcegraph te permite buscar todo el código abierto indexado en GitHub y GitLab. Puedes buscar a través de divs, diferencia de tiempo, colaboradores y APIs. Admite la búsqueda de la API por lotes inestable en React.js y proporciona resultados desde el código y la organización de React. Sourcegraph también permite buscar con expresiones regulares, lo que te permite encontrar dependencias y patrones de uso. Puedes ver fácilmente cuántas personas están utilizando tus paquetes de código abierto o versiones específicas. Además, puedes buscar a través de ramas y conectar repositorios privados. La búsqueda estructural es otra característica poderosa de Sourcegraph.

Así que en este momento, estoy colocando los componentes de espacio de origen en Sourcegraph, y busca todo el código abierto que ha indexado en GitHub y GitLab. Los ejemplos son resultados de personas que están utilizando espacio de origen en GitHub y GitLab. Ahora puedes ver las respuestas. Puedes desplazarte hacia abajo. En el lado izquierdo, puedes ver todos los filtros y operadores que puedes agregar.

Puedes buscar a través de divs, puedes buscar a través de la diferencia de tiempo, también puedes buscar a través de los colaboradores del código, y puedes acceder a cómo las personas están utilizando ciertas APIs. Otra API de la que puedes hablar en React JS2 es la API de lotes inestable de esto. ¿Entonces quieres saber cuántas personas están utilizando la API de lotes inestable de esto en el mundo? ¿Cuántas personas la están utilizando realmente, y cómo están utilizando este método de API en particular? Con Sourcegraph, todo lo que necesitas hacer es pegarlo. Así que si miras la flecha, busca dentro de la organización React.js y te muestra resultados de cada uso de la API de lotes inestable de esto. Desde dentro del propio código de React y de cualquier otro ejemplo dentro de la organización de React, puedes obtener resultados.

Ahora vamos a las expresiones regulares. ¿Cuántos de nosotros estamos familiarizados con las expresiones regulares? Sé que probablemente no las usemos todos los días, pero con Sourcegraph, te permite utilizar expresiones regulares. Así que si entiendes lo que estás buscando, por ejemplo, estás tratando de buscar algo dentro de tu archivo. Aquí estaba tratando de buscar cómo las personas están utilizando algunas de las últimas versiones de React utilizando expresiones regulares para buscar a través de los paquetes de varios repositorios. Así que en el motor de búsqueda de Sourcegraph, activé el modo de expresiones regulares, y estos son los resultados que me da. Con estos resultados, puedes ver y puedes reducirlo para obtener los resultados de cuántas personas o cuántos proyectos dependen de una versión particular de React. Algunos de nosotros aquí somos mantenedores de código abierto, otros somos autores de código abierto. Quieres tener una idea de cuántas personas están utilizando tu paquete de código abierto o cuántas personas están utilizando ciertas versiones porque necesitas descontinuar ciertos métodos o porque hay una nueva arquitectura en la que necesitas trabajar. Así que con esto, puedes desplazarte fácilmente y ver cómo las personas están utilizando webpack, Remix Run, Visualizer. Puedes ver cuántas personas dependen de una versión particular de tu proyecto. Este es un ejemplo de cómo buscar a través de ramas. Estaba buscando en el repositorio de Sourcegraph y especificando con expresión regular para buscar en cada rama que tenga mchap en el nombre de la rama. Así que esto busca en todas las ramas que contienen mchap y luego busca Ubuntu latest. Con eso, me devuelve todo el código para mí. Esto es solo código abierto. Luego conecta todos tus repositorios privados también. Los mismos resultados que te muestra. Solo busca dentro del alcance de todos los repositorios que has conectado a Sourcegraph. Y luego tenemos la búsqueda estructural. Creo que este es uno de mis tipos de búsqueda favoritos.

3. Búsqueda Estructural y Bloques de Código

Short description:

Con la búsqueda estructural, puedes buscar bloques específicos de código pegándolos en el motor de búsqueda de Sourcegraph. Devolverá todos los proyectos, bases de código y archivos que contengan ese código. Puedes refinar aún más tu búsqueda utilizando diferentes palabras clave.

Con la búsqueda estructural puedes tomar literalmente bloques de código. Así que puedes tomar condiciones if, try catch, un bloque completo de código y pegarlo en el motor de búsqueda de Google, en el motor de búsqueda de Sourcegraph, y te dará los resultados que estás buscando. Así que aquí estoy, buscando a través de la organización de Google en GitHub y buscando este bloque de código. Si no es path.length. Y tienes los tres puntos, ¿verdad? Así que busca todos los tipos de código que cumplen esta condición particular y me los devuelve. Ahora puedo ver todos los proyectos y todas las bases de código, todos los archivos que tienen esto dentro de ellos. Y luego puedo seguir refinando mi búsqueda, ¿verdad? Hay tantas palabras clave que puedes usar. De hecho, tenemos un stand allí con una hoja de trucos, así que te animo después de esta charla o cuando estés libre a pasar por nuestro stand y obtener las hojas de trucos. Hay muchas cosas que aprender allí.

4. Benefits of Sourcegraph for Developer Velocity

Short description:

Sourcegraph es esencial para la velocidad de desarrollo, permitiendo a los equipos buscar rápidamente en los repositorios y permitiendo que los nuevos empleados comiencen a contribuir código en una semana. Ayuda con la refactorización al encontrar referencias a sistemas compartidos en los repositorios. Sourcegraph ofrece potentes parámetros de búsqueda como 'repo', 'branch' y 'type: symbol'. Obtén más información en learn.sourcegraph.com y explora recursos adicionales en Devtool, el blog de Sourcegraph y la serie de YouTube DevTool Time. Sígueme en Twitter para obtener más información y participar en discusiones.

Entonces, ¿por qué necesitas Sourcegraph? Velocidad de desarrollo. A medida que tu equipo crece y construyes más características, quieres que tus desarrolladores se muevan muy rápido. Sourcegraph, si tienes todos tus repositorios conectados a Sourcegraph, les permite buscar cosas. Algunas personas se unen a una empresa y en la primera semana ya están contribuyendo código. Eso es porque pueden acceder fácilmente a las bases de código, ¿verdad? Para algunas personas, esto lleva tres semanas. Con Sourcegraph, todo está en un solo lugar y permite que tus desarrolladores se pongan rápidamente en la base de código. Y la refactorización, se me olvidó. Sé que tienes pruebas. Eso es muy bueno. Pero cuando tienes sistemas compartidos, por ejemplo, tienes un sistema de diseño compartido que estás utilizando en diferentes repositorios, a veces olvidas que un componente o algo se utiliza en otra parte de la base de código o en otro repositorio. Una vez que lo pegas, muestra las referencias de todos los diferentes repositorios, sin importar cuántos haya, cientos, 200, mil. Conectados a él, y obtienes todas esas referencias y te mueves rápido. Ahora, un resumen de los parámetros de búsqueda. Nuevamente, hay diferentes palabras clave que puedes usar con Sourcegraph. Esta es solo una buena ilustración de algunas de esas palabras clave. Tienes la palabra clave 'repo' que te permite buscar dentro de un informe en particular o dentro de una organización de informes. Luego también tienes la palabra clave 'branch' donde puedes especificar la rama para limitar y estrechar la búsqueda. Con el tipo de símbolo, en lugar de devolver el código con la llamada a la función, solo devuelve la definición de la clase o la definición de la función con el tipo de símbolo. Entonces, puedes decir que quieres buscar dentro de los archivos de configuración o dentro de los archivos de paquetes. Y luego, con el tipo de commit, puedes decir que quieres buscar dentro de un commit en particular o dentro de un div. Si alguien está tratando de aprender sobre funciones lambda en Python, puedes escribir lambda y estrechar tu búsqueda a Python, y te mostrará todas las formas en que se han utilizado las funciones lambda en el mundo o dentro de tu base de código privada. Si quieres aprender más sobre la búsqueda de código, te insto a visitar learn.sourcegraph.com. Esa es nuestra suite completa de tutoriales de aprendizaje para todo lo relacionado con la búsqueda de expresiones regulares, la búsqueda estructural y todo lo que puedes hacer con la búsqueda de código. Tenemos más recursos. Tenemos una presencia activa en Devtool, tenemos nuestro blog y también organizamos lo que llamamos DevTool Time. Ocurre quincenalmente. Entonces, si vas a nuestro canal de YouTube y buscas DevTool Time, puedes ver las increíbles configuraciones de diferentes espacios de trabajo de desarrolladores. Y también puedes buscar nuestros podcasts. Así que todos estos recursos, puedes usarlos para aprender más sobre la búsqueda de código y Sourcegraph. Muchas gracias. Y puedes seguirme en Twitter y hacerme todas las preguntas que quieras. Gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

JSNation 2023JSNation 2023
29 min
Modern Web Debugging
Top Content
Few developers enjoy debugging, and debugging can be complex for modern web apps because of the multiple frameworks, languages, and libraries used. But, developer tools have come a long way in making the process easier. In this talk, Jecelyn will dig into the modern state of debugging, improvements in DevTools, and how you can use them to reliably debug your apps.
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Our understanding of performance & user-experience has heavily evolved over the years. Web Developer Tooling needs to similarly evolve to make sure it is user-centric, actionable and contextual where modern experiences are concerned. In this talk, Addy will walk you through Chrome and others have been thinking about this problem and what updates they've been making to performance tools to lower the friction for building great experiences on the web.
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm – a Fast, Disk Space Efficient Package Manager for JavaScript
You will learn about one of the most popular package managers for JavaScript and its advantages over npm and Yarn.A brief history of JavaScript package managersThe isolated node_modules structure created pnpmWhat makes pnpm so fastWhat makes pnpm disk space efficientMonorepo supportManaging Node.js versions with pnpm
GraphQL Galaxy 2022GraphQL Galaxy 2022
31 min
Your GraphQL Groove
Building with GraphQL for the first time can be anywhere between daunting and easy-peasy. Understanding which features to look for in your client-side and server-side tooling and getting into the right habits (and ridding yourself of old habits) is the key to succeed with a team of any size in GraphQL.

This talk gives an overview of common struggles I've seen numerous teams have when building with GraphQL, how they got around common sources of frustration, and the mindset they eventually adopted, and lessons learned, so you can confidently stick with and adopt GraphQL!

Workshops on related topic

React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript, and TDD
Top Content
Featured WorkshopFree
ReactJS is wildly popular and thus wildly supported. TypeScript is increasingly popular, and thus increasingly supported.

The two together? Not as much. Given that they both change quickly, it's hard to find accurate learning materials.

React+TypeScript, with JetBrains IDEs? That three-part combination is the topic of this series. We'll show a little about a lot. Meaning, the key steps to getting productive, in the IDE, for React projects using TypeScript. Along the way we'll show test-driven development and emphasize tips-and-tricks in the IDE.
React Advanced Conference 2021React Advanced Conference 2021
168 min
How to create editor experiences your team will love
Workshop
Content is a crucial part of what you build on the web. Modern web technologies brings a lot to the developer experience in terms of building content-driven sites, but how can we improve things for editors and content creators? In this workshop you’ll learn how use Sanity.io to approach structured content modeling, and how to build, iterate, and configure your own CMS to unify data models with efficient and delightful editor experiences. It’s intended for web developers who want to deliver better content experiences for their content teams and clients.