la carga de muchos archivos dentro de una carpeta que se identifica con una entidad principal, generalmente, Controllers, Services, Models etc… Esto causa que poder darle seguimiento, mantenimiento y escalabilidad a nuestro desarrollo, sea complicado, incluso catastrófico.
común a la hora de desarrollar software, principalmente cuando pensamos que a futuro no vamos escalar, debido a este pensamiento, generalmente, tendemos a simplificar demasiado la estructura de carpetas principalmente para que el desarrollo se realice más rápido y “fácil de mantener” @speaker
es el famoso proyecto en el que usamos el “anti-patrón” conocido como MVC (Model-View-Controller), en donde, generalmente, tenemos encapsulados en una sola carpeta nuestros modelos, controladores y vistas
carga en los controladores, modelos, servicios, etc… Si bien logramos tener una estructura de carpetas muy simple, a la cual a simple vista, podemos darle seguimiento, a futuro, nos empezamos a encontrar con que la carga de estas es muy alta y la búsqueda de archivos se convierte en un caos. @speaker
estructura sea “limpia”, nos vamos a encontrar con fragmentos de nuestro código que van a ser: ◦ Dificil de acceder ◦ Fácil de perder u olvidar ◦ Difícil de categorizar ◦ Carentes de contexto
(Divide and Conquer). Vamos a dividir nuestra “arquitectura” en módulos con responsabilidades específicas. • El naming-convention. Es importante que para nuestro proyecto definamos una estructura para nombrar correctamente los archivos en base a sus responsabilidades Modularización y más modularización Tips & Tricks @speaker
largo de la vida del proyecto, incluso a futuro, permita escalar a nivel código de una forma mucho más amena para los desarrolladores. Nunca sabemos cuando va a tocar hacerle mejoras a ese software que desarrollamos hace 5 años, ya que sino, perdemos el/los clientes. @speaker
módulos, los cuales van a cumplir con responsabilidades específicas, y que van a tener una estructura de carpetas y archivos simple, con una carga baja, y con una fácil lectura y búsqueda. @speaker
un archivo para cada controlador, modelo, servicio, etc.. Usando un naming convention para los archivos, el cual nos simplifique la búsqueda de en donde podemos llegar a tener un problema. Mis recomendaciones son: • Kebab-case: separamos la entidad del sufijo con un dash (-) ◦ Ej: user-controller, user-model, order-service, algo-funcionalidad • Dot case: separamos la entidad del sufijo con un punto/dot (.) ◦ Ej: user.controller, user.model, order.service, algo.funcionalidad @speaker
una aplicación que tiene 3 tipos de usuarios • Usuario administrador (con control total del sistema) • Usuario cliente (quien va a realizar una compra en nuestro ecommerce) • Usuario empleado (con capacidad de administrar puntos especificos en el soft) Estos usuarios comparten muy pocas cosas entre sí, pero de forma muy resumida, unos son usuarios externos y otros internos @speaker
Fácil a la hora de escalar • Software eficiente y mantenible • Facil de debuggear • Facilidad a la hora de nuevas implementaciones y/o mejoras • Fácil lectura del código y búsquedas más concretas de archivos • Software más estandarizado @speaker