Code Compass es un motor de búsqueda contextual para paquetes de software desarrollados en Nokia Bell Labs. Superada la reutilización del código al recomendar las mejores bibliotecas de software posibles para su proyecto de software específico. Vea usted mismo:

Code Compass está disponible como un sitio web, una API REST y como un complemento IDE para VSCODE.
Indicamos paquetes alojados en NPM para JavaScript, PYPI para Python y Maven Central para Java.
Si está buscando la herramienta de comprensión de código con nombre similar de Ericsson para explorar grandes bases de código, busque aquí. Además del nombre, no hay relación (formal o informal) entre ese proyecto y este.
El desarrollo de software moderno se basa en la reutilización de código a través de bibliotecas y marcos de código abierto. Estas bibliotecas se publican en repositorios de paquetes de software, que están creciendo a un ritmo exponencial. Al construir mejores herramientas de búsqueda de paquetes de software, nuestro objetivo es estimular más reutilización de código y hacer que los paquetes de software en la "cola larga" sean más descubiertas.
Una introducción suave al por qué, qué y cómo se puede encontrar la brújula de código en esta publicación introductoria de blog.
Code Compass es un motor de búsqueda contextual para paquetes de software.
El código Compass difiere de otros motores de búsqueda de paquetes, ya que puede "sembrar" la búsqueda con los nombres de las bibliotecas que ya conoce o usa. Llamamos a estas "bibliotecas de contexto". Code Compass luego usa estas bibliotecas de contexto para "anclar" la búsqueda en esas pilas de tecnología que son más relevantes para su código.
Al usar la extensión IDE de Código Visual Studio, no es necesario ingresar manualmente las bibliotecas de contexto: el código Compass extraerá automáticamente las dependencias de importación del archivo de origen activo para anclar su búsqueda.
Tenga en cuenta que el código Compass nunca enviará su código al servidor. Solo se envían los nombres de los módulos de terceros importados en su código.
Code Compass utiliza el aprendizaje automático no supervisado para aprender a agrupar paquetes de software similares por su contexto de uso, según lo determinado por cómo se importan las bibliotecas junto con otras bibliotecas en grandes bases de código de código abierto.
Los paquetes de software se representan como vectores que llamamos "vectores de biblioteca" por analogía con vectores de palabras. Al igual que Word2Vec convierte las palabras en vectores analizando cómo las palabras coinciden en grandes corpus de texto, nuestros "import2vec" convierten las bibliotecas en vectores analizando cómo las declaraciones de importación coinciden en grandes bases de código.
Puede leer los detalles en nuestro artículo MSR 2019. Material suplementario que incluye incrustaciones de biblioteca capacitadas para Java, JavaScript y Python está disponible en Zenodo.
Como ejemplo, para Java observamos una gran cantidad de proyectos de código abierto en Github y bibliotecas en Maven Central y estudiamos cómo se importan las bibliotecas en estos proyectos. Identificamos grandes grupos de proyectos relacionados con marcos web, computación en la nube, servicios de red y análisis de big data. Proyectos bien conocidos como Apache Hadoop, Spark y Kafka se agruparon en la misma región porque se usan comúnmente juntos para apoyar el análisis de big data.
A continuación se muestra una visualización 3D (una parcela T-SNE) del espacio vectorial aprendido para Java. Cada punto representa una biblioteca Java y los diversos grupos de color corresponden a diferentes áreas de nicho que se descubrieron en los datos. Destacamos los nombres de los proyectos Apache.

docs/ : REST API Docs para el servicio de búsqueda de código Compassplugins/vscode/ : Visual Studio Code Extension Para integrar la compass de código en el IDEscripts/ : scripts de extracción de datos para generar co-ocurrencias de importación de la biblioteca del código fuentenbs/ : Notebooks Jupyter con modelos TensorFlow para entrenar las integridades de la biblioteca de los datos de co-ocurrencia de importaciónCode Compass es desarrollado por un equipo de investigación en las plataformas de aplicaciones y el laboratorio de sistemas de software de Nokia Bell Labs.
Consulte los contribuyentes para una lista alfabética de contribuyentes a la brújula de código.
Si desea capacitar a las integridades para otros idiomas, eche un vistazo a los scripts bajo import2vec para tener una idea de qué datos se requieren.
Si tiene sugerencias de mejora, comentarios de los usuarios o desea informar un error, abra un problema en este repositorio.
BSD3