Estoy considerando usar Sails.js como un marco de back-end. ¿Es muy temprano?

Esta respuesta no se trata realmente de Sails, se trata de Beta. (Con respecto a las velas, sí, puedes usarlo).

El significado de la palabra Beta ha cambiado mucho en los últimos años. Comenzó a deslizarse en la conciencia pública con la presencia de Gmail, lo que parecía ser perpetuo, Beta a pesar de que obviamente funcionó. Además, el concepto de Beta parece tener varios tipos de significado dependiendo de a quién le pregunte.

Básicamente, el proceso de lanzamiento de software se divide en fase Alfa, Beta, RC y RTM / RTW.

Alfa
Esta es la primera vez que el software afecta a usuarios externos al grupo de desarrolladores que lo está creando. En la fase Alfa, el software se considera inestable e incompleto. Dado que todas las características aún no están en su lugar, las cosas pueden cambiar y van a cambiar. Cuando se habla de una API de programación, esto significa que su código probablemente se romperá en algún momento de la actualización.

Beta
En la fase Beta, el producto se considera completo pero aún no estable. Toda la funcionalidad está ahí (al menos más o menos) y su código no debe romperse al actualizar. Probablemente encontrará algunos errores y esperamos informarlos, ya que para eso es la fase Beta.

RC
El Release Candidate es básicamente un Beta lanzado bajo el supuesto de que está hecho. El propósito de hacer un RC es lograr que más personas usen el producto para que aumente la probabilidad de encontrar errores restantes y casos de esquina.

RTM / RTW
Release to Market o Release to Web (que se utiliza para indicar que no se enviarán cajas por correo postal como parte del proceso de lanzamiento. En esta etapa, el producto se considera completo y estable.

Semver
Al desarrollar software al aire libre, como se hace cada vez más hoy en día, este modelo tiende a romperse. En cambio, comenzamos a usar el control de versiones semántico para decirles a los usuarios lo que sucede. Semver se divide básicamente en major.minor.patch. Entonces 1.13.57 significa que el producto está en la versión principal 1, la versión menor 13 y la versión del parche 57. Cuando se corrige un error, se lanza una nueva versión del parche. Cuando se agrega funcionalidad (con compatibilidad con versiones anteriores) se lanza una nueva versión menor. Cuando se realizan cambios que rompen la compatibilidad con versiones anteriores, se lanza una nueva versión principal.

Al crear un marco, los desarrolladores tienden a quedarse con versiones menores (ej. 0.11.3) hasta que sienten que la API se ha estabilizado lo suficiente. Esto no significa que no esté listo para la producción, solo que puede esperar algunos cambios importantes en futuras versiones.

Entonces, ¿puedo usarlo?
Para responder a esta pregunta, no mire la palabra Beta o la parte 0.x. En su lugar, consulte las estrellas y los problemas registrados para el proyecto en Github y el número de descargas en el administrador de paquetes (en este caso, npm).

Yo diría que es demasiado tarde, no demasiado temprano. La actividad de la comunidad Sails.js está disminuyendo, y su diseño está fuera de sintonía con el resto del ecosistema node.js. Puede poner en marcha “hello world” muy rápidamente, pero tiene una curva de aprendizaje empinada, ya que tiene que aprender muchas de sus abstracciones para hacer algo útil.

No lo es, pero la respuesta sincera es que si no se siente cómodo con todas las convenciones y automatizaciones de Sails, entonces no lo haría. La pregunta no es si Sails está listo, sino si realmente está listo para comprometerse a hacer las cosas a la manera de Sails.

Todavía no estoy allí :).

More Interesting

Mi profesor recomienda realizar pruebas unitarias cada vez que creo algo. ¿Es esta práctica realmente recomendada?

¿Por qué necesito un servidor para usar una base de datos?

Estoy aprendiendo desarrollo web a través de una organización sin fines de lucro bien conectada. ¿Qué quieren ver los empleadores en un proyecto final de un nuevo alumno?

¿Sería una idea errónea si creyera que los desarrolladores web son extremadamente comercializables? ¿Qué es lo que hace que los desarrolladores web sean extremadamente comercializables?

Necesito emparejar bootstrap + backbone.js de Twitter con un marco php backend. No sé qué marco está diseñado para tener en cuenta la integración limpia con JavaScript y CSS.

Como desarrollador de Android, ¿qué tipo de aplicaciones debo desarrollar?

Quiero desarrollar un motor de blog usando ASP.NET MVC. ¿Qué tipo de ideas y sugerencias le gustaría compartir para mí?

Quiero aprender desarrollo web. ¿Sería inteligente centrarse en algunas nuevas tecnologías como Node JS en lugar de PHP?

Aprendí HTML, CSS, JavaScript y jQuery, y diseño receptivo. ¿Estoy listo para solicitar empleo?

Quiero ser un desarrollador web fullstack. ¿Cuál es la mejor manera de aprovechar las tecnologías?

He creado un formulario en HTML. ¿Cómo creo un archivo PHP para enviar el contacto a mi correo electrónico?

Sigo perdiendo empleos (desarrollador web) porque "soy demasiado lento y cometo errores". Pero me contratan para un papel mejor y más compensado cada vez. ¿Por qué?

Si no quiero hacer desarrollo móvil o web, pero quiero hacer algunos proyectos para mostrar a los empleadores, ¿cuál sería mejor seguir?

He sido aceptado en el desarrollo web inicial de HappyFunCorp. 'Academia de tecnología'. ¿Cómo es trabajar allí?

¿Sería capaz de aprender Desarrollo Web usando los cursos gratuitos de Udemy frente a sus cursos pagos?