A menudo pensamos que la informática moderna se divide entre código y datos. Funcionalmente, esto tiene sentido cuando observamos cualquier aplicación determinada. Pero cuando observamos una arquitectura de microservicios estándar, la amplitud y profundidad del código en sí es más que unos pocos archivos de texto: se convierte en un conjunto de datos propio. Nuestra capacidad para administrar bases de código está limitada por nuestra comprensión de ellas, y es hora de que usemos las herramientas creadas para big data y las apliquemos a la era del código grande.
La herramienta de big data más famosa es la búsqueda. El poder de la búsqueda ahorra un tiempo precioso. El cofundador y director de tecnología de Sourcegraph, Beyang Liu, entendió esto cuando se dispuso a presentarlo al mundo de los desarrolladores. Conocía el dolor de ingresar a una nueva empresa y aprender una nueva base de código.
Comprender las opiniones y estilos de código de diferentes personas puede ser abrumador, y las bases de código crecen con el tiempo de manera impredecible y confusa. Entonces, Liu creó Sourcegraph , una herramienta para ayudar a los desarrolladores a ser más productivos. Es esencialmente un motor de búsqueda de código.
Con la idea de que el código grande es big data, podemos usar el poder de los gráficos de conocimiento para ayudarnos a buscar y comprender cualquier código base en el mundo.
Recientemente hablé con Liu sobre su viaje con Sourcegraph y sus objetivos a largo plazo (para escuchar la conversación completa, escuche el podcast de Open Source Data ).
Sourcegraph es una tecnología gratuita de código abierto que le permite buscar en toda su base de código. Su objetivo principal es ayudar a abordar la parte más importante del trabajo de un ingeniero de software: comprender el código existente.
Lo hace por:
“Para la mayoría de los ingenieros de software, la mayor parte de su trabajo no es escribir código nuevo. Tiene sentido y comprende todo el código que ya existe”, dijo Liu.
Hay dos componentes fundamentales para Sourcegraph: el componente de búsqueda y el gráfico de referencia global .
Como la mayoría de los motores de búsqueda, el componente de búsqueda de Sourcegraph toma una consulta y presenta los mejores resultados. Digamos que un desarrollador está buscando tareas pendientes en un repositorio específico. El desarrollador puede ingresar una consulta de búsqueda como esta repo:facebook/react content:TODO
y buscará cualquier tarea pendiente en el directorio especificado. Puede ver un ejemplo real de búsqueda en el repositorio nativo de Facebook React aquí . Una de las tecnologías clave para hacer esto posible es un formato de índice optimizado para buscar código.
Mientras trabajaba como pasante de ingeniería en el equipo de back-end de Google Apps en 2010, Liu se inspiró en su uso de Google Code Search : es lo que lo llevó a emplear el formato de índice. Otra cosa que le llamó la atención fue el trabajo de Russ Cox en la implementación inicial de la búsqueda de código interno de Google y la reimplementación de Han-Wen Nienhuys en forma de una biblioteca de código abierto llamada Zoekt .
"La pieza central de esa experiencia fue este motor de búsqueda de códigos que indexó todos los códigos en Google y lo hizo accesible para todos los desarrolladores, ya sea que fuera un pasante o un ingeniero de alto nivel, Jeff Dean", dijo Liu.
El gráfico de referencia global lo ayuda a comprender el código base y realizar funciones como "ir a la definición" y buscar referencias, lo que requiere mapear todo el código base para llevarlo al lugar correcto.
Sourcegraph utiliza una variedad de bibliotecas de compiladores y protocolos abiertos para lograr esto y tiene sus propios protocolos, como Source Lib y SCIP , que son más adecuados para los requisitos de Sourcegraph.
“Se trata de proporcionar esta interfaz independiente del idioma a estos indexadores específicos del idioma que usan el conocimiento del compilador para construir el gráfico de referencia global”, dijo Liu.
Sourcegraph comenzó cuando Liu consiguió su primer trabajo fuera de la escuela, en Palantir Technologies . Se enfrentó a uno de los problemas que todos han enfrentado al comenzar un nuevo trabajo como ingeniero de software:
“Me enviaron directamente a esta base de código grande y compleja que había pasado por varios propietarios”, recordó Liu. “Fue un poco desordenado, y recuerdo, al final de ese primer mes, mirar hacia atrás y preguntarme: '¿Qué he logrado aquí? He pasado todo mi tiempo tratando de encontrarle sentido a lo que está pasando en este código y averiguando por qué está escrito de esa manera. Parece que la mayor parte de mi trabajo es simplemente explorar el código existente y descubrir cómo la pieza relativamente pequeña que estoy tratando de agregar encaja en esa imagen más amplia'”.
El tiempo que Liu estuvo en Google lo expuso a un conjunto de herramientas internas para desarrolladores, una de las cuales fue Google Code Search, que hizo accesible todo el código de Google. Esta experiencia, junto con el dolor de incorporación en Palantir, llevó a Liu a crear algo que ayudaría a otros ingenieros de software a evitar los mismos problemas.
Las conversaciones con Quinn Slack , un colega de Liu en Palantir, sobre la creación de una herramienta para una búsqueda de código universal se convirtieron en acción, de lo cual surgió SourceGraph.
En 2011, Marc Andreessen escribió sobre cómo el software se está comiendo el mundo . Las señales están en todas partes: desde la comida que pides, hasta la reserva de un viaje, hasta el control de la calefacción de tu casa.
Pero Liu piensa que solo estamos viendo la punta del iceberg. Dijo que entender el código se convertirá en algo cotidiano.
Lo comparó con la alfabetización y dijo: “Una vez vivimos en un mundo donde la capacidad de leer y escribir estaba limitada a una porción muy pequeña de la sociedad, lo que limitaba el grado en que la civilización humana podía avanzar”.
Cuando el código impulse casi todo en nuestra vida, comprenderlo se convertirá en un requisito universal, dijo Liu. Este pensamiento es lo que alimentó la pasión de Liu por construir Sourcegraph. La creación de un motor de búsqueda de código otorgará a las personas acceso al vasto ecosistema de código abierto, todo con una simple consulta de búsqueda.
Por Sam Ramji, DataStax
Sam Ramji es director de estrategia de DataStax. Sam, un veterano de 25 años en las escenas tecnológicas de Silicon Valley y Seattle, ayudó a construir dos mercados multimillonarios (gestión de API en Apigee y bus de servicios empresariales en BEA Systems) y redefinió la estrategia de código abierto y Linux de Microsoft de "extinguir" a "abrazar ." Es un experto en código abierto, economía de plataformas, middleware y computación en la nube con énfasis en la experiencia del desarrollador y el software empresarial.
Más información sobre DataStax
También publicado aquí