Red de conocimiento informático - Conocimiento de Internet de las cosas - Cómo escribir código elegante: 01. Descripción generalEl autor cree que el llamado código elegante consta de tres partes: buen estilo, buena estructura y buen rendimiento. Esto se aplica a todos los lenguajes de programación, pero cada lenguaje tiene características y sintaxis diferentes, y la forma de practicarlo también es diferente. Cabe señalar que en ocasiones estas tres connotaciones resultan contradictorias entre sí. Por ejemplo, un código bien estructurado a veces puede provocar una degradación del rendimiento. En este caso, no hay necesidad de insistir en los diversos pros y contras. El camino a seguir es hacer buenas concesiones y maximizar los intereses generales. Este artículo toma el lenguaje C# como ejemplo para resumir cómo lograr la elegancia del código en la práctica de programación C#. 1. Estilo de codificación conciso El estilo de código, como su nombre indica, es el estilo de escritura de los programadores que escriben código. El autor cree que un estilo de código conciso mejorará en gran medida la legibilidad del código y reducirá los costos de mantenimiento posteriores. Anteriormente, los programadores tenían un malentendido al escribir código. Creían que el código estaba escrito para que lo leyera la computadora, siempre que el programa fuera correcto, el estilo no era importante. De hecho, este no es el caso. Los programadores escriben código para que otros lo lean. La simplicidad y la uniformidad del estilo del código son muy importantes para que otros lo lean. En los últimos años, la industria ha reconocido la importancia del estilo de codificación. Sin embargo, bajo la presión del estricto progreso del desarrollo, los programadores a menudo ignoran el estilo de codificación. Desde la perspectiva de todo el ciclo de vida del sistema, este enfoque de centrarse en lo inmediato e ignorar el largo plazo no es aconsejable. El estilo de codificación incluye principalmente las siguientes partes: 1. Convención de nomenclatura: en el lenguaje C#, se recomienda utilizar denominación camel. Utilice camelCase grande para variables públicas, funciones, clases, etc.; utilice CamelCase pequeño para variables privadas, variables locales, etc. Por ejemplo: el nombre de usuario es nombrado: además de la forma de denominación, la semántica de la denominación también es importante. Intente utilizar palabras breves, claras y de uso común para la denominación. Cuando descubre que el nombre aún es muy largo (generalmente no más de 30 caracteres), a menudo es porque el nombre tiene demasiada lógica y la lógica debe dividirse en este momento. 2. Comentarios de código: hay muchas discusiones sobre los comentarios. El autor no está de acuerdo con los comentarios completos, ni yo estoy de acuerdo con ningún comentario. El propósito de los comentarios es ayudar a los programadores a leer el código, por lo que todo está dirigido a la legibilidad del código. No pongas el carro delante del caballo, solo comenta por comentar. El autor cree que en un sistema bien nombrado, no hay necesidad de hacer demasiados comentarios, solo es necesario comentar algunas interfaces públicas. Porque el significado de la mayor parte de la lógica del programa se ha expresado claramente a través del entorno contextual, como espacios de nombres, nombres de clases y nombres de funciones. 3. Diseño del código: el uso de saltos de línea hará que el diseño del código sea más hermoso. Por ejemplo: debe haber nuevas líneas entre funciones y las implementaciones de funciones pueden usar nuevas líneas como final de fragmentos lógicos. Hay mucha discusión sobre el estilo de codificación, pero aquí hay una breve introducción a algunos temas que a menudo se pasan por alto o son controvertidos. Para obtener más detalles sobre las especificaciones del código, debe leer libros relevantes de forma sistemática. Además, en programación C#, recomiendo la herramienta de refactorización de código Resharper. Resharper brindará algunas sugerencias de estilo de codificación en tiempo real durante el proceso de programación y tiene buenos consejos visuales. Si no está satisfecho con el estilo predeterminado de Resharper, también puede personalizar su propio estilo de codificación o el del equipo. 2. Estructura de código altamente reutilizable Si el estilo del código es externo, entonces la estructura del código es interna. Se necesita un período de acumulación para escribir un programa con una buena estructura de código. Los predecesores han resumido muchos estándares de codificación. Los desarrolladores solo necesitan seguirlos para escribir código fácil de leer. La estructura del código es diferente. Hay muchos libros sobre cómo lograr una buena estructura de código, pero todos explican la solución de forma abstracta. Por ejemplo, "Patrones de diseño para Gang of Four" resume muchos problemas comerciales que a menudo se encuentran en la práctica en varios patrones fijos y resume cómo organizar la estructura del código para lograr una alta reutilización. Los desarrolladores deben tener cierta experiencia en programación y luego comprender estos patrones abstractos para poder hacer inferencias de un ejemplo a otros casos en el trabajo real. En la programación orientada a objetos, hay tres formas de escribir programas reutilizables: herencia, polimorfismo y genéricos. La implementación de patrones de diseño también se logra a través de estas tres características.

Cómo escribir código elegante: 01. Descripción generalEl autor cree que el llamado código elegante consta de tres partes: buen estilo, buena estructura y buen rendimiento. Esto se aplica a todos los lenguajes de programación, pero cada lenguaje tiene características y sintaxis diferentes, y la forma de practicarlo también es diferente. Cabe señalar que en ocasiones estas tres connotaciones resultan contradictorias entre sí. Por ejemplo, un código bien estructurado a veces puede provocar una degradación del rendimiento. En este caso, no hay necesidad de insistir en los diversos pros y contras. El camino a seguir es hacer buenas concesiones y maximizar los intereses generales. Este artículo toma el lenguaje C# como ejemplo para resumir cómo lograr la elegancia del código en la práctica de programación C#. 1. Estilo de codificación conciso El estilo de código, como su nombre indica, es el estilo de escritura de los programadores que escriben código. El autor cree que un estilo de código conciso mejorará en gran medida la legibilidad del código y reducirá los costos de mantenimiento posteriores. Anteriormente, los programadores tenían un malentendido al escribir código. Creían que el código estaba escrito para que lo leyera la computadora, siempre que el programa fuera correcto, el estilo no era importante. De hecho, este no es el caso. Los programadores escriben código para que otros lo lean. La simplicidad y la uniformidad del estilo del código son muy importantes para que otros lo lean. En los últimos años, la industria ha reconocido la importancia del estilo de codificación. Sin embargo, bajo la presión del estricto progreso del desarrollo, los programadores a menudo ignoran el estilo de codificación. Desde la perspectiva de todo el ciclo de vida del sistema, este enfoque de centrarse en lo inmediato e ignorar el largo plazo no es aconsejable. El estilo de codificación incluye principalmente las siguientes partes: 1. Convención de nomenclatura: en el lenguaje C#, se recomienda utilizar denominación camel. Utilice camelCase grande para variables públicas, funciones, clases, etc.; utilice CamelCase pequeño para variables privadas, variables locales, etc. Por ejemplo: el nombre de usuario es nombrado: además de la forma de denominación, la semántica de la denominación también es importante. Intente utilizar palabras breves, claras y de uso común para la denominación. Cuando descubre que el nombre aún es muy largo (generalmente no más de 30 caracteres), a menudo es porque el nombre tiene demasiada lógica y la lógica debe dividirse en este momento. 2. Comentarios de código: hay muchas discusiones sobre los comentarios. El autor no está de acuerdo con los comentarios completos, ni yo estoy de acuerdo con ningún comentario. El propósito de los comentarios es ayudar a los programadores a leer el código, por lo que todo está dirigido a la legibilidad del código. No pongas el carro delante del caballo, solo comenta por comentar. El autor cree que en un sistema bien nombrado, no hay necesidad de hacer demasiados comentarios, solo es necesario comentar algunas interfaces públicas. Porque el significado de la mayor parte de la lógica del programa se ha expresado claramente a través del entorno contextual, como espacios de nombres, nombres de clases y nombres de funciones. 3. Diseño del código: el uso de saltos de línea hará que el diseño del código sea más hermoso. Por ejemplo: debe haber nuevas líneas entre funciones y las implementaciones de funciones pueden usar nuevas líneas como final de fragmentos lógicos. Hay mucha discusión sobre el estilo de codificación, pero aquí hay una breve introducción a algunos temas que a menudo se pasan por alto o son controvertidos. Para obtener más detalles sobre las especificaciones del código, debe leer libros relevantes de forma sistemática. Además, en programación C#, recomiendo la herramienta de refactorización de código Resharper. Resharper brindará algunas sugerencias de estilo de codificación en tiempo real durante el proceso de programación y tiene buenos consejos visuales. Si no está satisfecho con el estilo predeterminado de Resharper, también puede personalizar su propio estilo de codificación o el del equipo. 2. Estructura de código altamente reutilizable Si el estilo del código es externo, entonces la estructura del código es interna. Se necesita un período de acumulación para escribir un programa con una buena estructura de código. Los predecesores han resumido muchos estándares de codificación. Los desarrolladores solo necesitan seguirlos para escribir código fácil de leer. La estructura del código es diferente. Hay muchos libros sobre cómo lograr una buena estructura de código, pero todos explican la solución de forma abstracta. Por ejemplo, "Patrones de diseño para Gang of Four" resume muchos problemas comerciales que a menudo se encuentran en la práctica en varios patrones fijos y resume cómo organizar la estructura del código para lograr una alta reutilización. Los desarrolladores deben tener cierta experiencia en programación y luego comprender estos patrones abstractos para poder hacer inferencias de un ejemplo a otros casos en el trabajo real. En la programación orientada a objetos, hay tres formas de escribir programas reutilizables: herencia, polimorfismo y genéricos. La implementación de patrones de diseño también se logra a través de estas tres características.

A través de la herencia, las subclases pueden reutilizar los datos y el comportamiento de la clase principal mediante polimorfismo, lo que puede simplificar la cantidad de código en el momento de la compilación y determinar el comportamiento real de la subclase en el tiempo de ejecución. Por ejemplo: una subclase puede reutilizar el comportamiento de la clase principal, o definir su propio comportamiento especial, y puede pasar el tipo de la clase principal como pase, y el comportamiento específico de la subclase se llamará a través de genéricos en tiempo de ejecución; Se puede lograr la parametrización de tipos. En comparación con el polimorfismo, los genéricos son una característica en tiempo de compilación que no solo garantiza la seguridad de los tipos, sino que también determina el comportamiento en tiempo de compilación. El polimorfismo es más eficiente que el direccionamiento en tiempo de ejecución. Además de la estructura lógica del código anterior, la estructura física del código también es importante. En términos generales: solo se debe colocar una clase en un solo archivo; la longitud de un solo archivo de código no debe exceder las 255 líneas; la longitud de una función no debe exceder el rango visible de la pantalla, es decir, el cuerpo completo de la función; ser visto sin barras de desplazamiento El anidamiento de corchetes debe controlarse dentro de tres niveles, y el nivel de anidamiento se puede reducir mediante el juicio lógico de transposición. Las sugerencias anteriores son resultados estadísticos y una gran cantidad de práctica ha demostrado que estos métodos son óptimos; . Piense detenidamente en estas sugerencias aparentemente no técnicas, pero detrás de ellas se revelan conceptos de diseño de software: separación de preocupaciones, unidad lógica única de responsabilidad, etc. Desde la perspectiva de la calidad del software, cuando una gran cantidad de lógica de código se concentra en un solo lugar, la calidad del código tiende a ser deficiente. También existe un fenómeno extraño: los defectos de código siempre se agrupan. A menudo hay otros defectos cerca de un defecto de código. La estructura del código es un tema importante. Se recomienda que los estudiantes interesados ​​lean los dos libros "Code Encyclopedia" de Steve McConnell y "Design Patterns" de Gang of Four. Después de leer esto, creo que tendrá una comprensión más profunda de la estructura del código. 3. Rendimiento eficiente del código Como se mencionó anteriormente, el estilo del código es externo y la estructura del código es interna, por lo que el rendimiento del código es interno. Cualquiera que haya leído novelas de artes marciales comprende la importancia de la fuerza interna. Si la mentalidad es incorrecta, es fácil "volverse loco". En la era actual de rápido desarrollo del hardware informático, el rendimiento del código parece haberse convertido en un rincón olvidado, especialmente en sistemas pequeños y medianos, donde la lógica de programa ineficiente puede compensarse con hardware informático costoso. Sin embargo, como excelente ingeniero de software, debe ser un ingeniero de rendimiento de programas. He escrito artículos sobre métodos y prácticas de optimización del rendimiento de C# en mi blog anterior, los lectores pueden consultarlos. El rendimiento del código a veces entra en conflicto con la estructura del código. Para garantizar la reutilización del código, la estructura del código a menudo se diseña para que sea flexible, lo que da como resultado una estructura de código inflada. Y la estructura del código de alto rendimiento debe ser simple y directa. Dividir una función en 10 subfunciones aclarará la estructura del código, pero el rendimiento también se reducirá. Porque las llamadas a funciones también consumen el rendimiento del programa. Los dos deben estar bien equilibrados e intentar lograr un rendimiento excelente garantizando al mismo tiempo la reutilización de la estructura del código. Hoy en día, los compiladores de lenguajes de alto nivel son muy poderosos. Por ejemplo, el compilador de C # compilará desde la perspectiva de la eficiencia de ejecución, optimizará la estructura del código y generará código intermedio MSIL. Finalmente, durante el proceso de desarrollo, a menudo se genera algún código no válido. Tales como: uso de espacio de nombres no válido, declaración de variable no válida y código no válido en determinadas rutas de código. Los dos primeros casos se pueden eliminar de forma masiva mediante herramientas de refactorización de código como ReSharper u optimización del compilador. En el último caso, es necesario reorganizar el orden de ejecución del código y al mismo tiempo comprender la lógica del código. Por ejemplo, en el siguiente código, cuando isOk=true, la inicialización de la lista no es necesaria y debe colocarse después de la lógica de juicio para obtener un mejor rendimiento. void Calculate(bool isOk) { var list = new Listlt; {"a", "b", "c"}; if(isOk){ return }// Este artículo describe de manera descuidada lo que el autor considera; Para ser elegante codificamos tres aspectos: estilo, estructura y rendimiento. En una palabra, es conciso y conciso. Para obtener una comprensión más profunda, es necesario cubrir cada uno de estos temas en detalle.