JavaRush /Blog Java /Random-ES /Búsqueda de código de GitHub: encuentre más, busque menos...

Búsqueda de código de GitHub: encuentre más, busque menos: GitHub lanzó un motor de búsqueda

Publicado en el grupo Random-ES
¡Hola a todos, queridos amigos! Como amante de las nuevas funciones de GitHub, me interesaba mucho saber que pronto todos podremos buscar de forma rápida y eficiente en el código base de GitHub. Esto puede resultar muy conveniente, especialmente si necesita encontrar una forma sofisticada de utilizar una herramienta. “Búsqueda de código GitHub: encuentre más, busque menos” - GitHub lanzó un motor de búsqueda - 1Esto resuena especialmente con el hecho de que en Rusia se abrió un futuro competidor de GitHub. Por lo tanto, GitHub definitivamente no debería dormirse en los laureles, a pesar de que son sin duda los líderes del mercado. Necesitamos seguir adelante y desarrollarnos, de lo contrario, en menos de una hora los competidores nos alcanzarán y arrasarán. Y que no parezca tan increíble. A modo de ejemplo: ¿cuántas personas siguen utilizando teléfonos Nokia? ¿Quién sabe siquiera que fabricaron teléfonos? Hubo un tiempo en que eran simplemente inalcanzables, líderes indiscutibles del mercado... Y ahora aparecen en algún lugar del ámbito del error estadístico.

Primera impresión

GitHub ha creado un proyecto donde puedes buscar, navegar y analizar tu código y los miles de millones de líneas de código publicadas en GitHub. Es importante destacar que la búsqueda es escalable, rápida y precisa. Fue creado desde cero específicamente para la búsqueda de códigos. La navegación funciona para 10 lenguajes de programación principales sin configuración (esperamos que la lista crezca en el futuro). Puedes buscar usando una expresión regular, lo cual es genial. Otros filtros también están disponibles:
  • por organización;
  • por lenguajes de programación;
  • por propietario específico;
  • por extensión de archivo;
  • por expresión regular.
¡La lista ya es impresionante! Resulta que el motor de búsqueda nos brinda la oportunidad de crear consultas de búsqueda complejas en las que podemos definir claramente los límites a lo largo de los cuales se necesita la búsqueda. La segunda parte importante del motor es la navegación por el código. ¿Para qué son convenientes los entornos de desarrollo y por qué la gente paga por ellos? Porque nos hacen la vida más fácil, nos ayudan a navegar a través del código, de modo que aumenta la velocidad de desarrollo y lectura del código. Y GitHub ahora nos ofrece esta interesante característica. Esto es increíble. Sí, sé que por el momento ya existe algo similar a la navegación en GitHub, pero la funcionalidad aún es muy corta y tosca. Es decir, sin un entorno de desarrollo, puede buscar dónde se utilizan ciertos métodos, dónde se definieron. Es simplemente maravilloso. GitHub me haces feliz. La navegación para importaciones en clases también está disponible. Esto resuelve muchos problemas al encontrar y estudiar una biblioteca particular en GitHub. Ahora este proceso se ha acelerado muchas veces. Y todo es gratis. Simplemente excelente. ¿Tendrá demanda? ¡Estoy segura que sí!

Hablemos más detalladamente sobre la búsqueda.

Es muy interesante echarle un vistazo e intentar comprobarlo tú mismo: ¿es tan cómodo como dicen? Por ahora, esta función no está disponible públicamente y puedes agregarte a la lista de espera usando el enlace . Allí completamos todos los puntos, las preguntas son simples, no las describiré aquí. Como resultado, nos agregan a la lista de espera y seguimos adelante. Como resultado, la respuesta será ésta: “Búsqueda de código GitHub: encuentre más, busque menos” - GitHub lanzó un motor de búsqueda - 2sólo hay que esperar. Tan pronto como me agreguen, definitivamente les mostraré todo. No tardes, agrégalo para que puedas descubrirlo más tarde y usarlo a tu gusto) Y por supuesto, es una pena que no puedas probar la nueva herramienta de inmediato, así que analicemos su documentación y describámosla en Más detalle de cómo podemos utilizar esta herramienta para nuestro trabajo. Ahora sobre la búsqueda. Utilizará clases y construcciones que tengan sentido en la biblioteca que estoy escribiendo. Esto lo hará más claro y fácil para mí, y espero que también lo sea para ti.

Búsqueda básica

ImageComparison es la búsqueda más simple que busca exactamente con la consulta en los nombres de archivos y en sus contenidos. Aquí todo parece muy sencillo. Si queremos encontrar claramente por nombre de clase, dónde se declara y dónde se usa, dicha búsqueda nos ayudará con esto. Cuando ingresa varias palabras separadas por espacios, el resultado será una búsqueda para todas ellas por separado: Comparación de imágenes , lo que significa que encontrará archivos y código tanto para Imagen como para Comparación . Si necesita buscar una cadena que contenga espacios, solo necesita usar comillas. Por ejemplo: “Comparación de ImageComparison = nueva ImageComparison()” y luego la búsqueda coincidirá con la cadena completa. Para escapar, usamos "\" como siempre. Hasta ahora, todo es intuitivo y, a menudo, así es como se hace. Además, podemos agregar filtros a esta búsqueda básica. Por tanto, hablemos de cada uno de ellos. Estos serán “AND” lógicos para el filtro que ya hemos creado.

Filtrar por repositorio

Una vez que nuestro filtro básico esté listo, podemos limitar nuestra búsqueda y buscar por repositorio específico, lo cual es muy conveniente. No necesitas buscar en qué carpeta se encuentra la clase, simplemente puedes escribir:
repositorio:romankh3/image-comparison ImageComparisonResult
Donde necesitamos especificar repo:${user_name}/${repo_name} . También puedes buscar en varios repositorios simplemente agregando un OR:
repositorio:romankh3/comparison-imagen O repo:romankh3/usage-image-comparison ImageComparisonResult
Como se indica en GitHub, por el momento no admiten la búsqueda en repositorios donde el nombre se especifica como una expresión regular... Esto significa que están planeando agregar dicha característica y significa que el proyecto no se detendrá en el lugar declarado. funcionalidad y se desarrollará aún más.

Filtrar por organización

La búsqueda por organización o usuario se realiza exactamente de la misma manera que la búsqueda por repositorio, solo que la palabra clave no será repo , sino org :
org:romankh3 Comparación de imágenes
Y luego la búsqueda recorrerá todos los repositorios del usuario/organización.

Filtrar por lenguajes de programación

También puede especificar una búsqueda de archivos en un lenguaje de programación específico. Aquí la construcción es la misma que para el repositorio y la organización, solo que la palabra clave es idioma :
idioma: java Comparación de imágenes
Al igual que el repositorio, admite búsquedas en varios idiomas a la vez usando la palabra clave OR:
idioma:java O idioma:ruby ImageComparison
Puede encontrar una lista completa de los idiomas admitidos por GitHub aquí . Me pregunto si BrainFuck está ahí. 😂

Filtrar por ruta de archivo

Cada archivo del proyecto tiene su propia ruta y también puedes buscarlo agregando un filtro. Por ejemplo, hay un archivo ImageComparisonResult , tiene la ruta:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Entonces, para encontrar todas las clases cuya ruta comienza con src/main/java/com/github/romankh3/image , necesitas:
ruta:src/main/java/com/github/romankh3/image
Puede resultar útil en los casos en los que no queremos que las clases de prueba queden fuera de nuestros resultados de búsqueda. O viceversa, sólo pruebas. Esto hace que su búsqueda sea más flexible. Se puede especificar un filtro por ruta de archivo mediante una expresión regular. Por ejemplo, necesitamos encontrar
ruta:src/*/*.js

operaciones booleanas

Y, por supuesto, la culminación de toda la construcción del filtro es combinar este asunto mediante operaciones booleanas. Para esto tenemos Y, O, Y NO. Creo que esto debería ser suficiente para nosotros. Por ejemplo, creemos una consulta de búsqueda compleja: código de producción de Java o Kotlin para un usuario/organización específico:
repositorio:romankh3 Y (idioma:java O idioma:kotlin) Y NO ruta:*/test/*
Y esto, os lo digo, es sencillamente increíble. La solicitud de búsqueda está redactada de forma tan sencilla, rápida, concisa y clara que no habrá problemas para buscar y leer la solicitud.

Un pequeño retiro

Si bien nuestro deleite aún no se ha calmado, me gustaría volver a 2018 y recordar algo... ¿Recuerdan que cuando todos se enteraron de que Microsoft estaba comprando GitHub, todos pensaron que el proyecto quedaría enterrado? ¿Que su destino es el camino del segundo Skype? ¿Cómo empezaron todos a trasladar sus proyectos a GitLab? Pero seamos honestos, a raíz de este revuelo creé y sufrí algo. Pero para ser honesto, nunca volví a visitar el lugar donde trasladé los proyectos. Y de alguna manera no quiero. ¿Y por qué? También hay pensamientos sobre esto. Permítanme recordarles que después de la venta de GitHub a Bill Gates, el proyecto agregó la capacidad de tener repositorios privados de forma gratuita, se lanzaron GitHub Actions para el proceso CI/CD y mucho más. Y ahora también un potente buscador. Esto no parece un deseo de hundir el proyecto. Es más como si Microsoft no quisiera pagar impuestos sobre las ganancias y realizó una compra exitosa a finales de año por más de 9 mil millones de dólares 😁 Y luego de todo esto decidieron desarrollar este proyecto. Y es cierto que para un desarrollador de código abierto este es un gran lugar para almacenar su código. Puede desarrollar completamente su producto sin salir de GitHub.

Al final

Escribí el artículo de una vez. Realmente me encanta cuando las palabras y las emociones fluyen como un géiser. Esto es lo que hace avanzar la tecnología. Así que mantenemos el dedo en el pulso y no dejamos de lado la situación. Estoy seguro de que cada uno de nosotros debería aprender a utilizarlo. Para cualquiera que no se haya registrado en GitHub, le recomiendo encarecidamente que lo haga. Vale la pena. Como siempre amigos, no olviden suscribirse a mi canal de Telegram , en el que combino todas mis actividades públicas. Además de los artículos que publico aquí, allí escribo posts más cortos en los que toco temas que me interesan del mundo del desarrollo y de las TI en general. ¡Ya hay más de 800 suscriptores allí! Y, por supuesto, mi cuenta de GitHub , donde publico todos los proyectos de demostración de artículos, actualizo mis bibliotecas y desarrollo organizaciones de código abierto. Eso es todo, gracias a todos por leer, no digamos adiós 👌
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION