- Los compiladores saben de lo que están hablando; Si te advierte sobre algo, será mejor que lo veas.
- Los compiladores no saben lo que estás tratando de hacer; solo porque su código se compila incluso con -Werror y -Wall, no significa que todo esté bien en su código. Invierta en un analizador estático y prepárese para iniciar gdb.
- Los compiladores a veces tienen errores (este blog ocasionalmente los discute: Integrado en la Academia). Pero ese comportamiento extraño en su programa es menos probable que sea uno de ellos. Si así lo cree, le sugiero que tome un descanso, lea sobre comportamientos indefinidos y modifique los indicadores de optimización. Ahora constrúyalo nuevamente; Mira, te dije que eras tú.
- Los compiladores modernos son bastante buenos para optimizar el código. Esto significa que no tiene que preocuparse mucho por las optimizaciones simples. Pero esto no significa que pueda acceder a una matriz multidimensional en el orden principal de la columna C ++: matrices multidimensionales; Rendimiento mediante la asignación de columna principal frente a fila principal. – Clases y fragmentos de código
- Y, sobre todo, todos deberían estar familiarizados con los indicadores básicos utilizados por sus compiladores.
¿Qué deben saber todos los ingenieros de software acerca de los compiladores?
Related Content
Cómo pasar de cero a héroe en la profesión de informática o software
- Utilice tantos indicadores de error / advertencia como sea posible y aplique el nivel de cumplimiento más estricto (no se compila). Esto apesta al principio, pero te acostumbras pronto y te convierte en un programador más deliberado.
- No optimices nada a nivel micro. Los compiladores lo hacen mejor para todo lo que es subjuego / supercomputación, y si estás en esos dominios, supongo que sabes lo que estás haciendo. Para todos los demás, primero verifique sus algoritmos, y solo luego perfile su código para la micro optimización (perfile agresivamente y solo optimice cosas que ocupan más del 20% de su tiempo). El objetivo aquí es la localidad de caché y el flujo de memoria mínimo y predecible.
Todo ingeniero de software debería haber escrito un pequeño compilador al menos una vez durante su vida. Esto definitivamente no es una pérdida de tiempo. Uno entendería mucho mejor de qué tipo de optimización son capaces y cuáles son sus limitaciones. Como beneficio adicional, esto también ayuda a comprender muchos conceptos relacionados, como JIT, intérpretes y algunos algoritmos de optimización.
More Interesting
¿Cuál es una explicación simple de una tabla hash distribuida?
¿Qué cosas debo tener en cuenta al elegir una empresa de pruebas de software?
¿Cómo es trabajar para Code for America como diseñador?
¿Hay buenos libros sobre pruebas de software?
¿Por qué Google Now no puede descubrir mis intereses?
¿Deben los ingenieros de software saber un par de idiomas?
¿Cuánto cuesta desarrollar un software CRM?
¿Cuál es el software de aplicación que se utiliza para Supermercado?
¿Hay alguna guía que enseñe cómo escribir un software?
¿Qué es el patrón de diseño singleton?
¿Qué porcentaje de programadores son 10x y qué porcentaje son 1x?
¿Es beneficioso cambiar de un perfil de prueba a un ingeniero de soporte?
¿Cómo es la transición de la gestión de productos a la ingeniería de software?