Google ha liberado el código fuente de su actualizador, Google Update, es decir, la aplicación que actualiza todas las aplicaciones que tengas instaladas de Google; y lo ha hecho bajo el nombre de Omaha y con licencia Apache 2.0.
Pero la cuestión que quiero comentar es que hayan dado un buen paso hacia delante (que lo han hecho, por cierto), sino la calidad del código en sí (suelo echar un vistazo al código fuente de los proyectos libres, simplemente por ver como están hechos).
Independientemente de si está bien programado o no, de si han diseñado bien la arquitectura o no, la calidad del código es impresionante: está limpio, ordenado, bien indentado, con espacios entre operadores, con las llaves correctamente colocadas,… vamos, como a mi me gusta.
Habiendo visto más código fuente, sobre todo de proyectos GNU, este es uno en los que mejor está escrito el código. De hecho, se parece mucho al código de las aplicaciones que se escribían para el BeOS (que también eran en C++). Lo único que hecho en falta es que el tipo de dato que retorna una función no esté en una línea distinta (la anterior) a la del nombre y parámetros de la función, algo que se estilaba mucho en BeOS.
Sin duda es una buena noticia el hecho de que se liberase el código, pero también es buena noticia que haya tanta calidad en el mismo, ya que con el peso que tiene Google ahora mismo como ejemplo de hacer las cosas (no se si para bien o para mal, pero tiene peso) queda claro que habrá muchos seguidores que hagamos código similar con lo que nuestros proyectos ganarán en legibilidad y mantenibilidad.







Yo soy de los que sigue pensando que Google es “good” y no “evil”
Me produce curiosidad saber cómo hace para conocer las aplicaciones que tiene que actualizar… ¿Será algo dinámico o tendrán los productos hardcodeados en una serie de ifs?
Supongo que al ser Windows lo tendrán todo en una clave del registro e irá a buscarlas ahí. Luego, si están en el registro, comprueba los directorios y listo. Vamos, lo supongo porque tampoco lo he visto en profundidad.
No hay ningún if 1….
Este código no puede ser bueno, y menos sin un else
Un abrazo Campeón