En un equipo de desarrolladores, ¿cuánto nivel de abstracción de código es saludable para el equipo y los futuros miembros del equipo?

Sabes, tenía un jefe así cuando empecé. Él escribió especificaciones. Escribí el código y las pruebas unitarias para probarlos. No cuestioné el diseño. Todo funcionó muy bien. Yo era un contratista para empezar.

Luego me contrataron a tiempo completo y me dieron mi propio módulo. Lo codifiqué desde cero, y fue complejo, pero no innecesariamente. Fue divertido, pero para ser sincero, en retrospectiva, mi código desarrollado independientemente NO era un código mejor, ni más elegante, ni más fácil de mantener, ni más funcional. Era solo mio.

Así que no asumas que tus ideas son mejores que las suyas. Paga tus deudas.

En cuanto al nivel correcto de abstracción, es fácil dejarse llevar. Algunas personas, por ejemplo, aman los objetos de fábrica, mientras que otros los odian. Sé que son útiles al escribir pruebas unitarias debido a los principios del diseño OO. No siempre los uso.

En el otro lado de la escala, muchos programadores jóvenes parecen aficionados a las variables estáticas, lo que detesto. Algunos de esos son lecciones duramente ganadas.

Te sugiero que le pidas a tu líder de desarrollo que valide la lista de principios que está usando, en orden de prioridad. Luego, la próxima vez que no esté de acuerdo con el diseño, observe los principios.

Si cometió un error, de acuerdo con sus propios principios, señalarlo se considerará algo bueno (siempre y cuando proponga una alternativa también). Si, por otro lado, no puedes vivir según sus principios, tal vez estás trabajando para el equipo equivocado. Poner en una transferencia.

Obviamente, quieres que te digan que tu empresa está equivocada y que debes ser el caballero blanco que los salva de su estado ignorante para hacer todo lo que te enseñaron en la escuela.

Pero también fueron a la escuela. Probablemente comenzaron de la misma manera, no menos, preguntándose por qué las cosas no eran lo que esperaban que fueran.

Pero estás jugando en su caja de arena. Te pagan para resolver sus problemas, no para entretenerte o dejar tu huella.

Si el código se envía y le hace dinero a la compañía, es un buen código, posiblemente un código excelente. Aprenda a amarlo por sus propios méritos, porque pasará la mayor parte de su carrera trabajando en el código de otras personas y parte de esto no tiene sentido a primera vista, pero hace lo que el cliente quiere, por lo que no lo toca. .

Cuando eres el diseñador, puedes meterte con todos los estándares que deseas y explicarle al nuevo chico del equipo por qué, no, no vas a reescribir todo para adaptarlo a su sentido estético.

Los buenos marcos proporcionan abstracción. Le permiten enfocarse en el problema en cuestión sin preocuparse por el meollo del asunto. Parece que los marcos que construyó su TL hacen esto. ¡Bueno!

Los buenos marcos también son extensibles. Cuando parece que usar el marco es como colocar una clavija cuadrada en un agujero redondo, el marco debe ser extensible para hacer un agujero cuadrado. Parece que el marco no hace esto. ¡Malo!

More Interesting

¿Cómo recuerdan los ingenieros de software tantas tecnologías?

¿Andrew McGregor menciona que un título en ingeniería de software es más adecuado para ciertos trabajos de codificación? ¿Qué roles y roles principales serían estos típicamente y cuáles son sus perspectivas futuras?

¿Cuáles son las clases de CS más importantes para un ingeniero de software?

¿Por qué la mayoría de los ingenieros de software odian su trabajo?

¿Hay buenas oportunidades de trabajo en Australia para los ingenieros de software?

¿Cuáles son las oportunidades para el ingeniero de software integrado en Copenhague, Dinamarca?

¿Cómo administro 45,000 clientes en línea (usuarios de nuestro portal en línea)?

¿Cuál es mi próximo paso como ingeniero de software?

¿Seré un mal ingeniero de software si tengo dificultades en los cursos universitarios de CS más difíciles?

Carreras en programación de computadoras: ¿Por qué todos los ingenieros de software están tan frustrados con su trabajo a pesar de estar bien remunerados?

¿Soy más o menos empleable si he trabajado con un dominio de herramientas más grande que centrarme en uno como ingeniero de software?

¿'Toneladas de ingenieros' todavía quieren abandonar Google; lo hicieron alguna vez?

¿Dónde debo buscar proyectos de aplicaciones móviles subcontratados?

Como ingeniero de software, ¿no soy lo suficientemente bueno si no tengo conocimiento sobre algoritmos avanzados y estructuras de datos?

¿Qué habilidades deben desarrollar los estudiantes de programación de computadoras para ser útiles?