Detrás de cada montaña de código hay un grupo de personas de I+D que están familiarizadas con las especificaciones del código.

Haga clic en el enlace para obtener más información

imagen


Introducción

Han Han escribió en "Su país": "Sabemos muchas verdades, pero todavía no podemos vivir bien esta vida". Aunque la gente sabe muchas verdades, es posible que no puedan aplicarlas a la vida real. Este fenómeno es muy común en la vida, hemos escuchado muchos principios sobre el éxito, pero de hecho, el éxito y la felicidad no se pueden lograr solo confiando en estos principios, sino que requiere esfuerzo y práctica continuos para lograr sus objetivos. En el proceso de desarrollo nos encontraremos con problemas similares. Aunque hemos leído bien "Limpieza de código", todavía sólo podemos escribir código ineficiente. La industria a menudo se burla de que "un programador excelente puede crear empleo para muchas personas". ¿estos? ¿Cómo implementarlo rápidamente? Este artículo lo analizará desde varios aspectos, bienvenido a leerlo.

Tabla de contenido

1 presión de tiempo

2 Necesidades empresariales

3 Automotivación

4 Trabajo en equipo y comunicación

5 Deuda Técnica

6 herramientas y procesos de automatización

7 Mecanismos de retroalimentación y mejora

8 casos de implementación personal

01 La presión del tiempo

Durante el desarrollo, los proyectos pueden tener plazos ajustados que deben completarse en un tiempo limitado. Esto puede provocar presión de tiempo y, durante el proceso de desarrollo, es posible que se produzcan retrasos y problemas imprevistos, como dificultades técnicas, fallos del sistema, etc., que reducirán el tiempo de desarrollo. A los desarrolladores les resulta difícil dedicar suficiente tiempo a escribir código de alta calidad.

imagen

Solución:

**▶︎Planifique y administre el tiempo adecuadamente: **Antes de que comience el proyecto, desarrolle un plan y un cronograma detallados del proyecto y asigne tiempo a cada tarea de manera razonable. Asegúrese de tener suficiente tiempo para escribir código de calidad.

**▶︎Gestión de prioridades: ** Establecer la prioridad de las tareas razonablemente de acuerdo con la importancia y urgencia de la tarea. Concentre su tiempo y energía en las tareas más importantes y asegúrese de completarlas primero.

**▶︎Solicite ayuda y apoyo: **Si la presión del tiempo es demasiada, puede buscar ayuda y apoyo de sus superiores o líderes de equipo. Pueden proporcionar recursos adicionales o ajustar los planes del proyecto para aliviar la presión de los desarrolladores.

**▶︎Autogestión y ajuste:** Los desarrolladores deben aprender a autogestionarse y adaptarse, y organizar el tiempo de trabajo y descanso de manera razonable. Evite el exceso de trabajo y la fatiga, mantenga la salud física y mental y mejore la eficiencia en el trabajo.

**▶︎Busque oportunidades para optimizar el tiempo: **Durante el proceso de desarrollo, busque oportunidades para optimizar el tiempo. Por ejemplo, usar plantillas de código, reutilizar código existente, aprovechar bibliotecas de código abierto, etc. puede reducir el tiempo de desarrollo.

02 Cambios en los requisitos comerciales

Durante el proceso de desarrollo de software, es posible que los requisitos comerciales no se especifiquen completamente o cambien con frecuencia. Esto puede hacer que los desarrolladores necesiten modificar el código con frecuencia sin tiempo suficiente para refactorizar y optimizar la calidad del código.

imagen

Solución:

**▶︎Fortalecer el análisis y la clarificación de la demanda: **Trabajar estrechamente con los clientes o gerentes de proyectos para garantizar que los requisitos se analicen y aclaren completamente. Reduzca la ambigüedad de la demanda y reduzca la frecuencia de los cambios en la demanda a través de documentos de demanda detallados, historias de usuarios, prototipos, etc.

**▶︎Comunicación y retroalimentación frecuentes: **Mantenga comunicación y retroalimentación frecuentes con los clientes o gerentes de proyectos. Proporcionar actualizaciones oportunas sobre el progreso del proyecto para mantener a los clientes o gerentes de proyecto informados sobre el progreso del desarrollo y los posibles impactos. Esto puede reducir la frecuencia de los cambios en la demanda y ajustar el plan de desarrollo de manera oportuna.

**▶︎Métodos de desarrollo ágiles: **La adopción de métodos de desarrollo ágiles, como Scrum o Kanban, puede responder mejor a los cambios en los requisitos. A través del desarrollo iterativo y lanzamientos de ciclo corto, se puede responder a los cambios de requisitos de manera oportuna y se puede reducir la presión del tiempo.

**▶︎Gestión de cambios de requisitos: **Establecer un buen mecanismo de gestión de cambios de requisitos. Evalúe y priorice los cambios de requisitos para garantizar que solo se acepten cambios verdaderamente importantes y urgentes, y actualice los planes de desarrollo de manera oportuna.

**▶︎Gestión de riesgos y tiempo de reserva: **En el plan del proyecto, considere el riesgo de cambios en la demanda y reserve un cierto tiempo de reserva para ello. Esto permite posibles cambios y reduce la presión del tiempo.

03 Automotivación

Aunque los desarrolladores conocen la importancia de la limpieza y la calidad del código, es posible que carezcan de la motivación necesaria para mejorar de forma proactiva sus habilidades de codificación. Es posible que estén más centrados en completar la tarea que en la calidad del código.

imagen

Solución:

**▶︎Encuentre el significado y el valor del trabajo: **Piense profundamente en el significado y el valor del trabajo de desarrollo y aclare sus objetivos profesionales y la dirección de su desarrollo. Al comprender la importancia de su trabajo, puede inspirar la automotivación para buscar código de alta calidad.

**▶︎Establezca objetivos y planes claros: **Establezca objetivos y planes claros y divida el proceso de desarrollo en pequeñas tareas manejables. Al completar gradualmente estas tareas, podrá mejorar gradualmente la calidad de su código y mejorar su automotivación.

**▶︎Mejora la confianza en ti mismo: **Mejora la confianza en ti mismo a través del aprendizaje continuo y la mejora de tus habilidades técnicas. Participar en capacitaciones, leer libros, participar en proyectos de código abierto, etc. puede mejorar sus conocimientos y habilidades profesionales, de modo que pueda escribir código de alta calidad con confianza.

04 Trabajo en equipo y comunicación

En un equipo, sin estándares comunes de limpieza de código y conciencia de la calidad del código, puede resultar difícil para los desarrolladores mantener una calidad de código consistente en todos los proyectos. La falta de comunicación y colaboración efectivas también puede afectar la implementación de código limpio.

imagen

Solución:

**▶︎ Desarrollar estándares de limpieza de código unificado: ** El equipo del proyecto debe desarrollar estándares de limpieza de código unificado y aclarar los estándares de nomenclatura, estilo de codificación, estándares de comentarios, etc. del código. Puede consultar las mejores prácticas y estándares de codificación de la industria, como los estándares de codificación de Google, Clean Code, etc.

**▶︎Establecer un mecanismo de revisión de código: **Introducir un mecanismo de revisión de código en el proyecto para detectar y corregir problemas de calidad del código de manera oportuna mediante la inspección y revisión del código. La revisión del código se puede realizar mediante herramientas de revisión de código o manualmente.

**▶︎Establecer un mecanismo de intercambio e intercambio de conocimientos: **Establecer una plataforma abierta de intercambio e intercambio de conocimientos para que los desarrolladores puedan aprender unos de otros e intercambiar experiencias. Se pueden organizar sesiones de intercambio de tecnología, actividades de formación de equipos, etc. para promover la cooperación y el aprendizaje entre los desarrolladores.

**▶︎Recompensar y reconocer la excelente calidad del código: **Para los desarrolladores que se desempeñan bien en el proyecto, se pueden otorgar recompensas y reconocimientos para motivarlos a mantener un código de alta calidad. Este puede ser un mecanismo de incentivo para que los desarrolladores sean más conscientes de la calidad del código.

05 Deuda Técnica

Durante el proceso de desarrollo, por algunas razones, los desarrolladores pueden tomar algunas medidas oportunas y sacrificar temporalmente la calidad del código para satisfacer las necesidades. Estas medidas provisionales pueden conducir a la acumulación de deuda técnica, haciendo que el código sea cada vez más difícil de mantener y mejorar con el tiempo. Como sigue:

int x = 10;int y = 0;int result = x / y; // 上面代码显然没有考虑处理除以 0 的情况,这种类似的情况还有很多。// 改进思路:int x = 10;int y = 0;if (y != 0) {    int result = x / y; // 添加条件判断,避免除以 0 的错误} else {    // 错误处理逻辑,如输出错误信息或者抛出异常}

imagen

Métodos e ideas de mejora:

**▶︎Entrega por fases y desarrollo iterativo: **Descomponga el proyecto en múltiples fases, cada fase tiene objetivos de entrega claros. A través del desarrollo iterativo, algunas funciones se entregan a tiempo para reducir la presión del tiempo y evitar sacrificar la calidad del código.

**▶︎Gestión de Deuda Técnica: **Identificar y registrar oportunamente la deuda técnica e incorporarla a la planificación y gestión del proyecto. En el proceso de desarrollo posterior, la deuda técnica se salda gradualmente y se mejora la calidad del código.

**▶︎Selección de tecnología y evaluación de tecnología: **Antes del inicio del proyecto, realice una selección y evaluación de tecnología suficiente para seleccionar una pila de tecnología que se adapte a las necesidades del proyecto. Evite dificultades de mantenimiento posteriores causadas por una selección de tecnología inadecuada.

**▶︎Revisión y refactorización de código: ** Realice revisiones periódicas de código para descubrir y corregir problemas de calidad del código de manera oportuna. En una etapa posterior del proyecto, puede considerar la refactorización del código para mejorar la legibilidad, el mantenimiento y la escalabilidad del código.

06 Herramientas y procesos de automatización

La falta de herramientas y procesos automatizados puede dificultar la verificación de la limpieza y la calidad del código. Es posible que los desarrolladores necesiten realizar revisiones y pruebas de código manualmente, lo que aumenta la carga de trabajo y la posibilidad de errores.

imagen

Solución:

**▶︎Utilice herramientas automatizadas: **Elija herramientas automatizadas adecuadas para ayudar a verificar la limpieza y la calidad del código. Por ejemplo, utilice herramientas de análisis de código estático (como SonarQube, ESLint, PMD, etc.) para comprobar las especificaciones del código y los posibles problemas. Utilice marcos de pruebas unitarias (como JUnit, pytest, etc.) para automatizar las pruebas de código. Estas herramientas pueden ayudar a los desarrolladores a reducir el trabajo manual y mejorar la calidad del código.

**▶︎Integración continua y entrega continua: **Introduzca el proceso de integración continua y entrega continua para automatizar el proceso de construcción, prueba e implementación. A través de procesos automatizados, los problemas de calidad del código se pueden descubrir y solucionar rápidamente, lo que reduce el trabajo manual y la posibilidad de errores.

07 Mecanismo de retroalimentación y mejora

Si los desarrolladores no reciben comentarios oportunos sobre la calidad del código y las oportunidades de mejora, es posible que no sean conscientes de sus problemas y no logren mejorar su codificación.

imagen

**▶︎Evaluación y retroalimentación de la calidad del código: **Establezca un mecanismo de retroalimentación y evaluación de la calidad del código para evaluar periódicamente el código de los desarrolladores y proporcionar comentarios oportunos. Se pueden utilizar herramientas de análisis de código estático, revisiones de código y otros métodos para evaluar la calidad del código y proporcionar a los desarrolladores sugerencias y orientación para mejorar.

**▶︎Oportunidades de aprendizaje y capacitación: **Proporcione oportunidades de aprendizaje y capacitación para ayudar a los desarrolladores a mejorar sus habilidades de codificación. Se pueden organizar capacitaciones internas, sesiones de intercambio de tecnología y otras actividades para permitir que los desarrolladores aprendan y compartan las mejores prácticas y experiencias.

**▶︎Sistema de mentores: **Establezca un sistema de mentores para brindar orientación y apoyo a los desarrolladores. Los desarrolladores experimentados pueden actuar como mentores, colaborando y comunicándose con desarrolladores novatos para ayudarlos a mejorar sus habilidades de codificación.

**▶︎Revisión de código y trabajo en equipo: **Establezca un mecanismo para la revisión de código y el trabajo en equipo. A través de la revisión de código y las discusiones en equipo, los desarrolladores pueden aprender y mejorar unos de otros. Se pueden realizar reuniones periódicas de revisión de código para permitir a los desarrolladores compartir su código y recibir revisiones y sugerencias de otros desarrolladores.

**▶︎Proporcionar desafíos y oportunidades: **Proporcionar a los desarrolladores desafíos y oportunidades para participar en proyectos complejos y desafiantes. Al participar en proyectos como este, los desarrolladores pueden aprender, crecer y mejorar sus habilidades de codificación.

08 Casos de implementación personal

Fue la segunda empresa a la que me uní después de graduarme y me hice cargo del "Código de montaña de mierda" de mi colega fallecido. Solo hubo un comentario en todo el proyecto: "Buda te bendiga, nunca habrá errores". No hay ningún estándar en el código y todas las variables se denominan aabb. Mi jefe me pidió que le diera un cronograma lo antes posible. El proyecto está en línea. Pensé: "¡Me escaparé rápidamente!". Y dije sin rodeos: "No existe un estándar para este proyecto en su conjunto. Tal vez ni siquiera puedas entenderlo, y yo ni siquiera puedo entenderlo". Más tarde, me conecté a regañadientes, pero hubo muchos problemas y mi actuación fue un desastre. Estaba pensando en cómo desarrollar código y localizar problemas de manera eficiente. Y lo implementé rápidamente en este proyecto en el que estoy trabajando.

imagen

▶︎ "El código es como una montaña de mierda". Es imposible para mí solucionar los problemas de especificación poco a poco. ¿Existe alguna herramienta adecuada que pueda recordarle dónde hay más problemas? Después de usar varias herramientas, descubrí que CheckStyle es la mejor herramienta de verificación de especificaciones de código que he usado, que utiliza las especificaciones de Sun. (Más tarde, con la ayuda de otros compañeros, elaboramos juntos una versión de los estándares propios de la empresa).

▶︎Poco a poco, la calidad de mi posicionamiento de problemas y desarrollo de código fue cada vez mayor, y mi desempeño también mejoró mucho. En algunas reuniones de intercambio, presenté mis propias sugerencias, y los líderes reconocieron estos resultados y finalmente establecieron el El "Grupo de Normalización de Códigos" ha establecido algunos sistemas normativos:

Los desarrolladores revisan el código de los demás y la línea principal sólo se puede fusionar después de que al menos dos personas la hayan revisado. Las personas que hacen preguntas pueden ser recompensadas. Aquellos que "desarrollen un código problemático" serán castigados (la aplicación comienza después de dos meses). También puede hacer preguntas sobre otros proyectos (Antecedentes: la empresa es más pequeña y los proyectos son más numerosos y complejos. Las recompensas por esto son relativamente grandes y requiere más tiempo personal. La elección depende de usted , y no hay requisitos estrictos). Sistema de mentores: si los empleados recién contratados que lideran tienen una excelente calidad de código o un buen desempeño, los mentores serán recompensados. Sesión para compartir: los desarrolladores se turnarán para compartir y encontrar código fuente abierto o casos clásicos para interpretar.

Después de aproximadamente un año de iteración, el código de baja calidad desapareció gradualmente. Cuando revisé el proceso más tarde, descubrí que hubo algo de suerte. Conocí a un buen líder y un grupo de excelentes colegas. Por supuesto, también fue inseparable de mis propios esfuerzos. Si no hubiera pensado en mejorar mis estándares de código para rápidamente Si no resuelve el problema adecuadamente, los líderes no verán la importancia de los estándares de código, y mucho menos promoverán la construcción de estándares de código de equipo.

Finalmente, quiero decirles que cuando veamos estas "montañas de código de mierda", deberíamos reírnos en secreto, felicitarnos por lograr un alto rendimiento primero y luego presionar al equipo para que formule especificaciones de código y medidas efectivas basadas en la situación real y el análisis anterior. Ponlo en práctica e impleméntalo concretamente. Espero que todos puedan ser vistos.

-Fin-

Autor original | Kong Chuihang

imagen

Supongo que te gusta

Origin blog.csdn.net/CODING_devops/article/details/132857961
Recomendado
Clasificación