Hasta ahora, me he centrado en primitivas. Vamos al extremo opuesto del espectro de complejidad y veamos React Table. Hace un año, el autor de React Table dio una gran charla en este mismo escenario explicando por qué eligió el enfoque headless con React Table. Uno de los puntos que mencionó, por cierto, gran charla, recomiendo encarecidamente verla, y uno de los puntos que mencionó es la simplicidad de las APIs.
Entonces, React Table es un gran software. Hace muchas cosas. Es bastante avanzado. Puede reaccionar a los cambios en los datos, y tiene muchas funcionalidades. Muchas funcionalidades significan una API más compleja, ¿verdad? Hacemos más, necesitamos más para describirlo. Veamos cómo se ve la API. Voy a abrir esto en VS Code de nuevo. Tenemos algo llamado una tabla. Tiene getters y setters, y te da una lista que mapeas en tu vista. Y podrías pensar, como, esto es complicado, ¿verdad? Esto es mucho mapeo, esto es mucha información que necesito saber. Pero en realidad, todo lo que necesitas hacer es usar el hook para obtener la tabla. Todos saben cómo usar getters y setters, todos saben cómo usar un map, ¿verdad? Y todos saben qué hace este fragmento de código. Es solo un fragmento de HTML.
Entonces, después de un período inicial de adaptación, tus habilidades se pueden transferir desde lo que estás acostumbrado a este proyecto mucho más fácilmente que con una alternativa propietaria, ¿verdad? Piensa en cuánto puedes personalizar la vista de una tabla tan compleja. Si tuvieras que parametrizar todo, solo la cantidad de propiedades que necesitarías sería abrumadora en comparación con las partes interesantes de la funcionalidad. Entonces, en este punto, podrías pensar, ¿espera, entonces es solo más trabajo? Y yo diría que sí. Quiero decir, si estás construyendo un POC, sí, será más trabajo escribir algo de HTML y para un proyecto real con un diseño único, probablemente tendrás que personalizar todos los valores predeterminados, ¿verdad? No quieres que tu aplicación se parezca a cualquier otra aplicación que se haya desarrollado usando esta biblioteca de componentes. Así que tendrás que reescribirlo. Utilizarás una forma propietaria de describir los cambios. No será menos código, no será menos trabajo. Y sigo insistiendo en el lado propietario de las cosas. Pero cuando incorporas nuevos miembros al equipo, marca una gran diferencia si necesitan aprender todo desde cero o si pueden transferir sus habilidades. También argumentaría que es menos trabajo porque reduce las posibilidades de tener que reescribir. Si te encuentras con el límite de personalización más adelante en el proyecto, como suele ocurrir, estarás probablemente fuera de presupuesto y querrás terminarlo. Y cualquier solución a este problema será a expensas de tu tiempo de sueño. Y como persona que valora el sueño, considero que mitigar ese riesgo es muy valioso.
Comments