it-swarm-es.com

Cómo escribir menos código

Una cualidad que me gustaría desarrollar es escribir código más conciso. Con una escritura más concisa, al menos en mi opinión, la oportunidad de agregar errores al código es menor. Es más fácil leer el código para otros.

Mi pregunta es si es algo que solo viene con la experiencia o es algo que puede hacer explícitamente para desarrollar esa cualidad.

12
user1041

Yo diría que, en general, es algo que viene con el tiempo y la experiencia, pero es posible que descubra que si trabaja con idiomas más breves, recupera esa calidad en sus idiomas de trabajo habituales.

Ciertamente, después de un año o dos trabajando con Ruby encontré que mi C # se volvió mucho más tenso. Creo que si tuviera que entender mejor la programación funcional (una ambición constante) probablemente sacaría más provecho de eso.

También hay algunas pautas que pueden ayudar, por ejemplo, si escribe las mismas dos líneas más de una vez, las divide en su propio método. Esa es una pauta simple, pero reduce rápidamente las líneas de código y corta y pega la programación, de lo que la mayoría de nosotros somos culpables de vez en cuando.

Si comprende la herencia, a menudo puede ahorrar en la repetición del mismo código en diferentes lugares al brindar una funcionalidad común a las clases principales. Esto es obvio en principio, pero algo que la gente suele pasar por alto en la práctica.

Puede haber una diferencia entre escribir menos código y tener menos código en su aplicación - a veces puede usar la generación de código para evitar tener que repetirlo, por lo que solo escribe unas pocas líneas de código, pero luego generan una gran cantidad de otro código para usted, lo que puede brindarle una gran ventaja. Mire lo que hace una herramienta como Rails o Entity Framework a este respecto para comprender lo útil que puede ser. Sea claro acerca de la necesidad y piénselo dos veces, tres veces y luego cuatro veces rodando su propia generación de código, que puede llevarlo al infierno YAGNI.

Comprenda su lenguaje, su API y sus herramientas. Nuevamente, esto parece obvio, pero a lo largo de los años he escrito tanto código que luego me di cuenta de que estaba reproduciendo una funcionalidad que podría haber heredado de la API o haber usado una función de lenguaje para simplificar que me he dado cuenta de que unas pocas horas de lectura sobre la documentación de la API con la que estoy trabajando me ahorrará muchas horas de codificación o depuración más adelante. Del mismo modo, la mayoría de las plataformas con las que trabaja tienen una gran importancia: aprenda a trabajar de la manera que esperan y su vida será mucho más fácil. Dedique algo de tiempo a encontrar la dirección de menor resistencia para la plataforma con la que está trabajando y hará las cosas mucho mejor.

Si se está preguntando si existe una mejor manera de hacer algo, probablemente la haya y siempre valga la pena averiguar cómo hacer las cosas mejor.

12
glenatron

Una excelente manera de escribir menos código es intentar evitar reinventar la rueda, y usar componentes de software existentes cuando estén disponibles.

Una respuesta común que obtengo cuando pregunto por qué las personas hicieron su propio ORM, o su propio motor de registro, o sus propios componentes de interfaz de usuario, o su propio todo:

Pero nuestro es mejor

Creo que esta afirmación es correcta en la mayoría de los casos, pero el impacto negativo en el ROI es muy alto en la mayoría de los casos. Tu mamá hace los mejores platos, ¿verdad? Pero no puedes pedirle a tu mamá que venga a casa y los prepare todos los días.

Es por eso que creo que los desarrolladores deberían interesarse en el impacto financiero de sus elecciones. Algunos de ellos son:

  • Se requiere trabajo adicional para construir el componente
  • Trabajo extra para que los recién llegados lo aprendan
  • Enorme trabajo extra para mantenerlo

Me gusta pensar que esos proveedores de componentes son su equipo extendido que trabaja para usted por una pequeña fracción de lo que habría pagado para construirlo, mantenerlo y mejorarlo usted mismo.

Es mejor para toda la empresa al máximo ROI en lugar de trabajar para maximizar la satisfacción de nuestro ego;) Cuanto más dinero obtenga su empresa, es más probable que sus condiciones de trabajo y el salario aumentará.

16
user2567

En mi opinión, escribir menos código se puede hacer de varias formas:

  • No lo vas a necesitar . No codifique algo que no necesite todavía. Codifique solo los requisitos que así lo indiquen. De esta forma, reduciremos el código necesario para escribir.

  • No se repita . Creo que usar CMS, framework o la biblioteca de terceros es una forma de aplicar el principio DRY.

  • Abstracción . Y por último, pero no menos importante, la programación de abstracción también puede reducir mucho el código. Al abstraer el código, la posibilidad de reutilizar el código aumentará porque reduce la duplicación.

5
junxiong

Más allá de la comprensión de un lenguaje de programación, creo que la comprensión de un problema y la búsqueda de una buena solución tienen mucho que ver con él. Hay muchas soluciones para la mayoría de los problemas, pero no todas son óptimas. Puede conducir de la ciudad A a la ciudad B a través de diferentes carreteras: una puede demorar dos horas y la otra el doble. Es la misma idea en programación. Puede que conozca muy bien un idioma, pero puede que se le ocurra una solución que requiera, digamos, dos páginas de código, mientras que alguien más encontrará una solución que se pueda implementar en una cuarta parte de la mitad del tamaño del código. He visto esto mucho a lo largo de los años.

Asegúrese de comprender bien el problema. Analícelo, proponga la (s) solución (es), sopese los pros y los contras (por supuesto, las "soluciones con una 's' 'variarán mucho de un problema a otro, en términos generales aquí). Luego está la implementación de la solución elegida, que es donde entra en juego su comprensión del lenguaje (y el marco, si corresponde).

3
MetalMikester

Se puede decir que todo el arte de la programación se reduce a esto.

Puede estudiar lenguajes que tienen un énfasis tradicional en la claridad y la concisión (por ejemplo, Haskell, Scheme, Python), o incluso paradigmas más tersos como Factor y otros lenguajes concatenativos, pero en última instancia, todo lo que pueda elegir estudiar debe contribuir en última instancia a ayudarle a escribir código más corto y menos redundante.

1
Pi Delport

Como todas las demás aflicciones, si no admite tener un problema, no buscará una solución. La experiencia comienza a ser un factor cuando aprendes cómo se ve menos código. Cuando vuelva a visitar su código, es un buen momento para determinar si puede reutilizar el código o refactorizarlo a menos código. Microsoft pudo mejorar la velocidad de impresión con Windows 2000 al NO ponerlo en cola dos veces (cita de un empleado de Microsoft en una de sus demostraciones gratuitas).

1
JeffO
  1. Vuelve a tu antiguo código largo y largo,
  2. ponerlo bajo control de versiones,
  3. escribir algunas pruebas para que tenga una esperanza razonable de no introducir nuevos errores,
  4. volver a escribir.

Repetir ad libitum. Y bienvenido al infierno.

0
ZJR