¿Cómo se aprende a escribir mejores métodos?

Aquí hay una sugerencia simple: haz que se lea tanto como sea posible en inglés. Ruby lo hace bastante fácil.

Piensa en lo que le dirías a otro humano que haga para cumplir la tarea y luego úsalo.

No tengo un buen ejemplo, no inventado, pero tomemos el registro de usuarios como un ejemplo, y necesita:

  • crea la cuenta
  • crear un proyecto inicial
  • enviar un correo electrónico de bienvenida
  • comenzar la primera gira

Su método podría verse así:

  registro de def (usuario)
   cuenta = usuario crear_cuenta
   cuenta create_initial_project
   cuenta send_welcome_email
   cuenta start_tour
 fin

Completamente inventado. Tal vez responsabilidad múltiple, pero supongamos que es un controlador y orquesta algunas piezas.

Algo como “start_tour” realmente no es más que una respuesta. Redireccionamiento (recorrido, cuenta) o algo así, pero el punto es que cuando vuelvas a esto unas semanas más tarde entenderás de un vistazo lo que está haciendo el método.

Mejor aún, alguien más puede venir al código y descubrir qué está haciendo.

Probablemente, incluso alguien no técnico podría entender qué está haciendo “Registrarse” en el sistema.

Todo es un equilibrio y, como todo, puede llevarse demasiado lejos. Pero creo que es un buen lugar para comenzar.

1. Procure no escribir funciones de más de 5 líneas.
2. Dé a sus funciones, nombres muy obvios (incluso si son nombres largos)
3. Haga que su función haga una sola cosa.
4. Escriba una prueba, antes de escribir el método, esto le dará una idea clara de lo que debe hacer su método.

Algunas reglas de Sandi Metz para escribir programas de ruby ​​en general:
henrik / rules.md

More Interesting

¿Qué partes de una aplicación web deben asegurarse con firmas digitales y qué partes están bien con hashes o MAC?

¿Cuál es el mejor sitio y / o aplicación para iPhone para rastrear la colección de juegos / piezas LEGO de mi hijo?

¿Qué es Quizzera.in? ¿Cómo se relaciona con IITJ?

¿Qué empresas pertenecen a las startups web seleccionadas y qué es una web seleccionada?

¿Qué enfoque de prueba de automatización es el más adecuado para una aplicación basada en web basada en JSF y PrimeFaces (interfaces de usuario basadas en componentes)?

¿Qué es la representación del lado del cliente y del servidor y cómo se relaciona con las aplicaciones de una sola página?

¿Qué tan difícil es crear, comercializar y mantener una aplicación web que genere $ 1000 por mes solo con Google Adsense (y otros)?

¿Es Google el mejor motor de búsqueda? Si no, ¿cuáles son sus defectos?

¿Cómo puede ser segura una aplicación web o móvil si está escrita con frameworks controlados por Javascript (Angular, Nodejs ...)?

¿Cuál es mejor para el desarrollo web, Ruby on Rails o PHP? ¿Y por qué?

¿Qué necesito saber antes de comenzar a escribir una aplicación web con funciones de redes sociales?

Somos una startup que desarrolla una aplicación web para la industria de la construcción. La aplicación que se aloja en la nube. ¿Crees que necesitamos un ingeniero de seguridad como función separada? ¿Por qué?

¿Cuáles son las herramientas o marcos de animaciones web utilizados en un sitio web popular como Apple.com?

¿Cuál sería mejor aprender? ¿Desarrollo de software o desarrollo web?

¿Cómo se crea un entorno de mundo virtual en línea que la gente realmente usará?