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.

This talk has been presented at React Advanced Conference 2021, check out the latest edition of this React Conference.

FAQ

Sourcegraph es una herramienta de búsqueda de código que permite a los desarrolladores buscar a través de más de 2.1 millones de repositorios de código abierto en GitHub y GitLab, así como en código privado en varios repositorios. Funciona como un motor de búsqueda para código, facilitando la localización de usos específicos de APIs, clases, y más dentro de una vasta cantidad de código.

Sourcegraph ofrece tres tipos de búsqueda: búsqueda literal, de expresiones regulares y estructural. Estas opciones permiten a los desarrolladores realizar búsquedas precisas y eficientes en bases de código grandes, dependiendo de sus necesidades específicas.

Sourcegraph acelera el proceso de incorporación de nuevos desarrolladores al permitirles acceder y entender rápidamente las bases de código existentes. Los desarrolladores pueden contribuir casi de inmediato, reduciendo el tiempo que normalmente tomaría familiarizarse con el código nuevo.

La función de cambios por lotes en Sourcegraph permite a los desarrolladores automatizar la creación de múltiples solicitudes de extracción. Con un solo archivo, pueden realizar varias solicitudes de extracción a diferentes partes del código, simplificando y agilizando el proceso de actualización o modificación del código.

Sourcegraph facilita la refactorización al mostrar dónde se utilizan determinados componentes o funciones en varios repositorios. Esto es especialmente útil en sistemas compartidos donde un cambio en un lugar puede afectar a otros. Ayuda a los desarrolladores a realizar cambios de manera más informada y eficiente.

Para aprender más sobre Sourcegraph, los usuarios pueden visitar learn.sourcegraph.com, que ofrece una suite completa de tutoriales sobre búsqueda de expresiones regulares, búsqueda estructural y otras funcionalidades de búsqueda de código. Además, Sourcegraph tiene una presencia activa en DevTool, un blog y un podcast que se puede explorar para obtener más información.

Prosper Otemuyiwa
Prosper Otemuyiwa
10 min
22 Oct, 2021

Comments

Sign in or register to post your comment.

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.

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.

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

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Remix Flat Routes – Una Evolución en el Enrutamiento
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – Una Evolución en el Enrutamiento
Top Content
Remix Flat Routes is a new convention that aims to make it easier to see and organize the routes in your app. It allows for the co-location of support files with routes, decreases refactor and redesign friction, and helps apps migrate to Remix. Flat Folders convention supports co-location and allows importing assets as relative imports. To migrate existing apps to Flat Routes, use the Remix Flat Routes package's migration tool.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
Cómo hacer un juego web tú solo
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
Cómo hacer un juego web tú solo
This talk guides you on how to make a web game by yourself, emphasizing the importance of focusing on tasks that interest you and outsourcing the rest. It suggests choosing a game engine that allows distribution on the web and aligns with your understanding and enjoyment. The talk also highlights the significance of finding fun in the creative process, managing scope, cutting features that don't align with the game's direction, and iterating to the finish line. It concludes by discussing the options for publishing the game on the web and leveraging unique web features.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
This Talk discusses atomic deployment for JavaScript and TypeScript, focusing on automated deployment processes, Git hooks, and using hard links to copy changes. The speaker demonstrates setting up a bare repository, configuring deployment variables, and using the post-receive hook to push changes to production. They also cover environment setup, branch configuration, and the build process. The Talk concludes with tips on real use cases, webhooks, and wrapping the deployment process.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Construyendo Pinia desde cero
Vue.js Live 2024Vue.js Live 2024
70 min
Construyendo Pinia desde cero
Workshop
Eduardo San Martin Morote
Eduardo San Martin Morote
Sumergámonos en cómo funciona Pinia bajo el capó construyendo nuestro propio `defineStore()`. Durante este masterclass cubriremos algunos conceptos avanzados de Vue como la inyección de dependencias y los scopes de efectos. Esto te dará una mejor comprensión de la API de Composición de Vue.js y Pinia. Requisitos: experiencia en la construcción de aplicaciones con Vue y su API de Composición.
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Vue.js Live 2024Vue.js Live 2024
119 min
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Workshop
Alvaro Saburido
Alvaro Saburido
Presentamos "Masterclass de Desarrollo Web 3D con TresJS", un taller especializado creado para desarrolladores de Vue.js ansiosos por explorar el mundo de la gráfica 3D en sus aplicaciones web. TresJS, un potente renderizador personalizado para Vue, está diseñado específicamente para funcionar perfectamente con el sistema reactivo de Vue. Este taller ofrece una inmersión profunda en la integración de visualizaciones 3D sofisticadas y experiencias interactivas directamente en aplicaciones Vue, aprovechando las fortalezas únicas de los ecosistemas de Vue y TresJS.
Este taller está diseñado para desarrolladores de Vue.js que buscan ampliar sus habilidades en la tercera dimensión, diseñadores de UI/UX interesados en incorporar elementos 3D en aplicaciones web, y desarrolladores front-end curiosos sobre el potencial de la gráfica 3D para mejorar las experiencias de usuario. Debes estar familiarizado con Vue.js para aprovechar al máximo este taller.
Lo que Aprenderás- Introducción a TresJS: Descubre los fundamentos de TresJS y cómo se integra con el ecosistema de Vue para dar vida a la gráfica 3D.- Creación de Escenas 3D con Vue: Aprende a construir escenas 3D complejas utilizando componentes Vue, mejorando tus interfaces de usuario con visuales dinámicos e inmersivos.- Interactividad y Animación: Domina las técnicas para hacer tus escenas 3D interactivas, respondiendo a las entradas del usuario para una experiencia cautivadora.- Integración con Funcionalidades de Vue: Explora la integración avanzada de TresJS con la reactividad, los composables y la tienda Vuex de Vue para gestionar el estado en aplicaciones web 3D.- Rendimiento y Mejores Prácticas: Obtén información sobre la optimización de tus escenas 3D para el rendimiento y las mejores prácticas para mantener aplicaciones web fluidas y receptivas.