Gracias por el A2A!
Bueno, si ya tienes experiencia escribiendo un buen código, las cosas no deberían ser muy diferentes. Si tiene 5 años de experiencia, debe saber cómo escribir un código de calidad de producción. Su posición en SDET es un poco diferente, pero probablemente tenga que probar el software asignado a la producción, y eso significa al menos una considerable calidad y facilidad de mantenimiento (ya que se convierte en la parte en la que las personas confían para garantizar que el software haga lo que debería hacer).
También debería decir que mi respuesta será desde la perspectiva de lo que creo que es el papel de un arquitecto / ingeniero de software, porque de eso se basa mi experiencia. Lo que eso significa: no un tipo que toma una tarea aislada y qué tecnologías debe usar y hace lo que se le dice, sino un tipo que ve y crea software en su conjunto y trata de diseñarlo (con patrones o tecnologías) de la mejor manera disponible para él. La programación es solo el paso para aplicar esto.
- Soy un chico de 37 años. En mi familia tengo una hija de 7 años y una esposa de 32 años. Si me retiro después de 23 años y quiero un retorno de Rs 5 lakhs por mes, ¿cuánto dinero tengo para comenzar a invertir y dónde?
- ¿Cuál es el secreto para tener éxito en la carrera de TI?
- ¿Cómo se seleccionan los estudiantes para las pasantías de verano en IIM?
- ¿Debo permanecer como expatriado incluso si no estoy satisfecho con el trabajo / país?
- Recibí un correo electrónico de una agencia de USG con la línea de asunto "oferta de trabajo provisional". Qué significa eso? ¿Es un término de arte?
Lo que creo debería ser el foco de sus esfuerzos para calificar mejor para este nuevo rol:
- Una gran cantidad de componentes y reutilización, su código siempre será parte de algo más grande: he visto y hecho un código básico que creo que haría un SDET (pruebas de comportamiento para la usabilidad de aplicaciones web usando CasperJS) pero, la mayor parte de mi experiencia con Las pruebas automatizadas están tratando de aplicar mejor los principios TDD a mis proyectos, de la manera más efectiva posible. Lo que aprendí es que el código de prueba fácil de mantener y eficiente es muy independiente desde el punto de vista atómico, ya que todos mis intentos de “componente” demasiado llevaron a más cosas que necesitaban pruebas o, cuando una de las pruebas que lo usaba, generaba demasiado lado trabajo. También observé básicamente que, en las pruebas automatizadas, algunos de los mejores códigos eran contrarios a mi intuición. En el código de la aplicación, usted tiene el axioma de ” alta cohesión, acoplamiento flojo” , por lo que todo lo que haga debe ser parte de algo más grande, debe ser muy coherente y debe ser capaz de preocuparse lo menos posible por lo que está haciendo el otro código contenido . El código de aplicación perfecto es como Lego. Cuanto más perfecto, más cercano a imposible es lograrlo, pero eso no significa que no deba desearse. Algunas cosas para recordar:
- Casi todo lo que necesita hacer lo ha hecho alguien. La investigación debería ser lo que más pasa tiempo haciendo si no sabe algo;
- No se concentre solo en un buen código, concéntrese en un buen diseño. Un buen diseño elimina el espacio para el mal código. Aprenda cosas comprobadas y respetadas, como el diseño impulsado por el dominio, los patrones de diseño de software, la aplicación The Twelve-Factor, etc. El software bien diseñado es algo hermoso. También sepa cuándo no aplicar algo, ser flexible es muy importante en el mundo real;
- Gestión de recursos: también, en mi experiencia, el código de prueba casi nunca se preocupa por el uso eficiente de la memoria, el uso de E / S, el subprocesamiento múltiple y cosas por el estilo. Una prueba es generalmente un proceso independiente y corto que comienza, hace algunas cosas y termina. La plataforma de pruebas generalmente se encarga de la mayor parte del trabajo duro. Una aplicación se vuelve más compleja. Puede usar marcos muy buenos para ayudar, pero en algún momento será necesario administrar algunos recursos. Es mejor comenzar al menos a lidiar con lo básico, como cerrar y no retener lo que no necesita. Las cosas de acceso global te matarán. Las sesiones y transacciones serán comunes;
- Lidiando con la complejidad: en el código de la aplicación, se encontrará con un mundo de posibilidades y las cosas serán mucho más grandes en su conjunto. Prepárate para lidiar con eso. Hay una infinidad de plataformas y herramientas, cada una puede ser mejor o peor para algo. No se suba al carro de prejuicios y encuentre lo que mejor se adapte a sus necesidades.
Bueno, eso es lo que puedo recordar por ahora! ¡Buena suerte en el nuevo rol!