Cómo decidir qué idioma y marco de back-end usar para su proyecto

Si está trabajando para otra persona, no puede elegir a menos que sea el desarrollador principal. En general, la compañía ha elegido estas cosas y contrata a personas que saben cómo usar las herramientas que quieren usar.

Si usted es el desarrollador senior, o está solo, utiliza su experiencia con diferentes lenguajes y marcos. Pero probablemente tenga un marco e idioma favoritos, por lo que existe un fuerte sesgo hacia el uso de la herramienta con la que se siente cómodo. Dicen: “Cuando tienes un martillo, todo parece un clavo”. Definitivamente es cierto con la elección de lenguajes y marcos.

Si está solo y no tiene mucha experiencia, toma una decisión esencialmente aleatoria y vive con las consecuencias. Es una experiencia de aprendizaje, algo que será la base de una elección futura. No puede permitirse el lujo de quedar paralizado al momento de tomar la decisión. Todos tienen fortalezas y debilidades, y no sabes mucho sobre el proyecto en el momento que debes elegir.

Gracias por A2A!

¿Cómo decides qué lenguaje y marco utilizar?

Considera sus necesidades, observa sus limitaciones y encuentra una respuesta.

Por ejemplo:

Necesita escribir un pequeño sitio de información interna para una empresa, las páginas no cambiarán más de cada 6 meses más o menos, y muy poco en ese momento, y tiene poco tiempo para hacerlo, sin otras limitaciones.

Eliges las herramientas que mejor conoces y lo haces.

Aquí hay un ejemplo más complejo:

Usted, junto con un equipo, tiene la tarea de crear un nuevo sistema de tienda web para ser utilizado por varios clientes (independientemente), tiene un año para desarrollarlo y su equipo consta de tres desarrolladores de back-end, dos desarrolladores de front-end y un diseñador .

Primero, divide el problema en piezas arquitectónicas, lo que significa cosas como cuenta de usuario, carritos, escalado, bases de datos, base de usuarios esperada (tamaño, tipo, edad, etc.), etc.

Luego miras a tu equipo y sus habilidades.

Sin embargo, se vuelve complejo, porque su necesidad puede dictar que necesita concurrencia masiva y datos en vivo para cosas como pujas o lanzamientos de libros (o lo que sea), por lo que podría ser una buena idea que dos de los desarrolladores aprendan un nuevo idioma conocido por concurrencia como Erlang o Elixir, mientras que el resto del sistema está construido en Java y Spring si eso es algo que su equipo ya sabe.

Si sus restricciones son modestas, puede salirse con la suya con más hinchazón, por ejemplo, Java tiende a tener mucha memoria pero es bastante rápido para responder a las solicitudes, si sus necesidades no son enormes, es posible que pueda evitar el desperdicio y el no- Velocidad óptima.

Pero si necesita algo masivo, realmente debería buscar la herramienta adecuada para el trabajo.

Otro ejemplo son las bases de datos, MySQL cubre una gran parte de las necesidades, todos saben cómo trabajar con él y puede usarlo de manera predeterminada para casi cualquier proyecto, pero en algunos casos necesita otras capacidades que otras soluciones pueden proporcionar, como Memcached , o Redis, o MariaDB, y así sucesivamente.

Es solo una cuestión de definir su problema lo suficientemente bien y ser honesto consigo mismo y con su equipo para que elija la solución correcta para el problema, y ​​no solo sus herramientas favoritas.

¿Tienes hardware físicamente limitado? Es posible que desee ir con C / C ++ u Object Pascal.

¿Tienes muchos usuarios que necesitan actualizaciones frecuentes? Quizás los websockets pueden ahorrarle tiempo y dinero.

Y así sigue.

¡La mejor de las suertes!

Generalmente depende del proyecto.

Mire, cada proyecto tiene su propia especificación, por lo que cada marco web. Dejame darte un ejemplo.

Soy un fanático de JavaScript y esta idea de ejecutar JavaScript en el backend usando Node.js me sorprende mucho. Pero sé que Node.js solo es muy bueno en una cosa: manejar toneladas de solicitudes simultáneas, pero es una mierda para las aplicaciones de computación intensiva. Así que no usaría Node.js para un proyecto donde tengo que hacer cálculos pesados.

Verás, así es como decides qué marco usar. Claro, también hay otros factores, como soporte para desarrolladores, herramientas, etc., pero la principal dependencia está en el tipo de proyecto que desea construir.

Es una combinación del proyecto y el codificador. A veces puede haber una plataforma que realmente sea mejor para un proyecto, pero en mi experiencia, es mejor que use uno de los lenguajes en los que se sienta más cómodo para desarrollar. La mayoría de los proyectos podrían resolverse con una amplia variedad de tecnologías, de modo que a menos que el el cliente tiene una razón (como una base de código heredada) para forzar su mano a una tecnología específica, solo elija la que cree que puede hacer el trabajo de manera más eficiente.

Experiencia.

El proyecto en sí dicta cuál sería el mejor lenguaje para usar, pero no puede decírselo, por lo que debe aprender por prueba y error.

Personalmente no usaré ningún marco: después de décadas de escribir código, probablemente pueda hacer lo que sea que haga el marco, pero de manera más rápida y eficiente. Si recién está comenzando, probablemente no pueda hacerlo más rápido que el marco (una sola llamada a una función de marco puede requerir medio día para que se desarrolle), pero debe arrastrar todo el marco para hacerlo. ¿sólo una cosa? Eso no es eficiente.

Tampoco se trata de depurar un sitio incorrecto cuando el error se encuentra en algún lugar del marco; tal vez algunos datos que alimentó no fueron reconocidos por el marco como inutilizables hasta que se ejecutó. Si escribo mi propio código, entiendo lo que está haciendo y lo que necesita, en cada línea de código.