Generalidades

Revisión de desafío de código: lo que prefieren la mayoría de los revisores | Ben Daniel A. | noviembre de 2021

Como era de esperar, finalmente me encontré revisando voluntariamente el código enviado por los candidatos del proyecto de Android que estaban dispuestos a trabajar con nosotros. Diré que el resultado de una decisión resultó ser una muy buena decisión.

En estoSegundo En este artículo, tengo la intención de compartir algunos consejos sobre cómo aumentar la probabilidad de que los revisores encuentren su código fácil de revisar. La mayor parte de lo que quiero decir se basa en mi experiencia en la revisión de envíos de códigos y puede contener algunos sesgos, así que no lo trate como una regla fija. Empecemos.

Configuración perfecta

Una especie de Como revisor, lo que más odio es que tengo que saltar obstáculos para lograr que el código de otras personas se compile y ejecute con éxito en mi dispositivo. La primera impresión del revisor del código base del candidato comienza con este primer paso.

En algunos casos, recomendaría usar solo versiones estables de bibliotecas y herramientas al escribir proyectos. De esta forma, puede estar seguro de que la posibilidad de error en este paso es baja.

Debo señalar que la versión experimental o inestable solo debe usarse cuando sea absolutamente necesario. Personalmente, entiendo el uso de material experimental en Jetpack Compose y Kotlin Coroutines.

Finalmente, debe estar familiarizado con la estructura del proyecto. Debería ser fácil para cualquiera saber dónde encontrar la inyección de dependencia, ver modelos o clases de IU. También estoy muy agradecido cada vez que divido un proyecto en submódulos significativos vinculados a través de dependencias modulares.

Escribir documentación

ToneladaAquí debería haber un README Archivos del proyecto. Idealmente, cada proyecto necesita uno. Incluso si no tiene ningún documento para escribir en este archivo, le recomiendo que lo cree, luego ponga la descripción de la tarea en este archivo y luego marque junto a cada objetivo de la tarea.

Si se requieren configuraciones adicionales antes de que el proyecto se pueda construir con éxito, esto debe ser README. Por ejemplo, si desea leer el valor de unTHIRD_PARTY_LIBRARY_API_KEY En un nombre local_config.properties, Esto debería estar en README documento.

Se deben proporcionar otros tipos de documentos cuando sea necesario. Por ejemplo, si la advertencia de desaprobación se suprime intencionalmente, me gustaría ver comentarios que expliquen por qué se ignoró el método recomendado.

He escrito muchos artículos sobre cómo escribir comentarios de código. Para no exagerar este artículo, recomendaré este artículo sobre las mejores prácticas para escribir comentarios de código.

Mantenlo simple, estúpido

ToneladaIntentar comprender fragmentos de código complejos puede interrumpir el proceso del revisor. Ya existen patrones arquitectónicos establecidos con los que los ingenieros de software están familiarizados. Violar este principio, al introducir una complejidad innecesaria, en lugar de dividir el código complejo en pasos más simples, no ayudará a nadie.

Cuando el código base de una persona tiene dioses, se pueden ver situaciones comunes que violan este principio. Por ejemplo, hay algo como esto:abstract BaseActivity, abstract BaseFragment, abstract BaseViewModelEtc. debe evitarse.

La razón es que se necesita un poder cerebral adicional para comprender lo que está sucediendo. BaseFooBar Antes de que pueda continuar con las clases heredadas de él. Un truco para evitar esto es apoyar la composición en lugar de la herencia al agregar comportamiento a la clase.

Muestre su conocimiento de las herramientas modernas

ustedEl uso de herramientas de programación modernas y estables es una de las mejores formas de demostrar su comprensión de los beans. ¿Qué mejor manera de impresionar a los revisores que hacer que un revisor revise un proyecto que demuestre que están sincronizados con el último proyecto? Sistema tecnico?

Por ejemplo, los proyectos de Android más nuevos deben usar Gradle Kotlin DSL + buildSrc En lugar de Groovy DSL Declare la configuración de gradle. Además, deben usarse funciones de extensión en lugar de clases de utilidad.

Hablando de funciones de extensión, conocimiento existente de funciones de extensión androidx La biblioteca es una gran ventaja. El último consejo es que puede usar propiedades de delegado como delegado de vinculación de vista para reducir el código repetitivo.

Realice controles de calidad del código

SegundoAntes de enviar el código para su revisión, es importante asegurarse de que se hayan resuelto todos los errores de pelusa.Una forma sencilla de asegurarse de que no haya errores de pelusa es configurar abortOnError Regístrate para true dentro lintOptions Configuración.

Si puedes ./gradlew clean build Su proyecto no tiene errores después de la configuración, entonces su proyecto no tiene pelusa ni polvo. Incluso puede configurar detekt & ktlint para verificar sus archivos Kotlin más a fondo.

Finalmente, no puedo exagerar la importancia de garantizar que su código tenga el formato adecuado. Según la experiencia, puede utilizar la guía de estilo kotlin proporcionada por Google de forma predeterminada.Si decide usar ktlint, Viene con un ktlintFormat Puede utilizar esta tarea para formatear rápidamente todo el archivo kotlin en el proyecto.

Prueba de escritura

Una generaciónDe hecho, cada proyecto debería tener pruebas. Hay diferentes opiniones al respecto, y creo firmemente que los ingenieros superiores y de nivel medio deberían probar en su base de código.

Si todas sus pruebas pasan con éxito, obtendrá puntos de bonificación.

Qué probar es otro tema. Un consejo es mirar los objetivos de la tarea y escribir casos de prueba para estos objetivos. Descubrí que las pruebas de escritura pueden revelar algunos casos extremos no manejados.

Se siente más rápido escribir pruebas unitarias y omitir las pruebas de IU, pero recomiendo que haya algunas pruebas de IU en el proyecto.

Si decide no incluir pruebas en su proyecto, elimine src/androidTest Y src/test Carpetas del proyecto.Nada es más decepcionante que esperar ver pruebas reales en estas carpetas solo para ver las generadas automáticamente ExampleInstrumentedTest con ExampleUnitTest amable.

LEER  ¿Por qué Microsoft sigue superando a Apple y Google en Windows?

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba