El término full-stack significa desarrolladores que se sienten cómodos trabajando con tecnologías tanto back-end como front-end.
Para ser más específicos, significa que el desarrollador puede trabajar con bases de datos, PHP, HTML, CSS, JavaScript y todo lo demás, también, aventurarse en la conversión de diseños de Photoshop a código front-end.
Un desarrollador de pila completa no necesita dominar todas las áreas y tecnologías que necesita para trabajarlo, porque eso hace que sea casi imposible, solo necesita sentirse cómodo trabajando con esas tecnologías, y eso también es mucho.
- ¿Debo actualizar mi aplicación backbone.js de 0.9.2 a 1.0?
- La única forma en que las personas pueden obtener un nombre de dominio hoy en día es a través de varios sitios web. Pero, ¿cómo obtienen esos dominios sus sitios web en primer lugar?
- ¿Qué significa formatear una cadena en PHP?
- Si comienza a comparar plantillas de correo electrónico, plantillas de sitios web, cualquier categoría particular en sitios de plantillas como Themeforest ... Todos parecen ser, en su mayor parte, lo mismo. O solo soy yo? En este caso, ¿qué destaca y hace que los diseños más populares sean tan populares?
- ¿Podría Ford / Mercury haber construido un híbrido de gas / eléctrico utilizando el chasis y la suspensión Crown Vic / Marquis para continuar con este vehículo tan popular?
¿Qué significa full-stack en 2000 y qué significa ahora?
2000 fue hace mucho tiempo, en ese año se lanzó PHP 4.0. Si, 4.0. En aquel entonces, un buen desarrollador web sabía un poco de HTML, CSS y algunos procedimientos PHP, porque la POO adecuada ni siquiera existía hasta la versión 5.0.
La pila LAMP (Linux – Apache – MySQL – Perl / PHP) estaba de moda en esos años, con poca o ninguna alternativa. A principios de la década de 2000, si alguien usaba el control de versiones, se los consideraba herejes tecnológicos o asistentes. Hoy es inaudito y se rió de él, sin usar uno.
Entonces, intentemos desglosar y clasificar las principales pilas de tecnología que se requieren de un desarrollador de pila completa hoy:
Administracion del sistema:
- Linux y scripting de shell básico
- Computación en la nube: Amazon, Rackspace, etc.
- Procesamiento de fondo: Gearman, Redis
- Búsqueda: Elasticsearch, Sphinx, Solr
- Almacenamiento en caché: barniz, Memcached, APC / OpCache
- Monitoreo: Nagios
Linux alimenta la mayor parte de Internet, es un sistema operativo de facto en el desarrollo web (no descartar .NET). Además, un desarrollador de pila completa debe saber cómo funciona el alojamiento en la nube, Amazon / Rackspace u otros proveedores y sus API.
La búsqueda es una parte integral de la mayoría de los sitios web: un desarrollador debe saber cómo configurar y usar servidores de búsqueda como Sphinx o Elasticsearch.
El almacenamiento en caché también es importante, barniz, proxy inverso, Memcached y almacenamiento en caché de código de operación. Necesita saber qué es cada uno de estos y cómo usarlo.
Herramientas de desarrollo web:
- Control de versiones: Git, Mercurial, SVN
- Virtualización: VirtualBox, Vagrant, Docker
Hoy en día, es inaceptable no usar el control de versiones, incluso si es un desarrollador en solitario.
Con las herramientas de virtualización, tener entornos de desarrollo separados por proyecto es realmente agradable y fácil de configurar con VirtualBox y Vagrant al menos.
Si desea trabajar con Vagrant, también necesita conocer la sintaxis básica de Ruby y los scripts de shell.
Tecnología de fondo:
- Servidores web: Apache, Nginx
- Lenguaje de programación: PHP, NodeJS, Ruby
- Base de datos: MySQL, MongoDB, Cassandra, Redis, SQL / JSON en general
Apache y Nginx son la norma para el desarrollo web. Un desarrollador de pila completa debe saber cómo configurar estas aplicaciones y servir los contenidos de su sitio web.
PHP es lo que necesita ser dominado en un alto nivel, NodeJS, Ruby es bueno saberlo también.
Además del servidor web y los lenguajes de programación, la administración de bases de datos también es un requisito para un desarrollador de pila completa, que en sí mismo es otra bestia.
Las bases de datos relacionales (como MySQL, PostgreSQL) frente a las bases de datos no relacionales (como MongoDB, Redis o Cassandra) son diferencias que el desarrollador de pila completa necesita saber, junto con conocer la sintaxis de XML / JSON.
Tecnología de front-end:
- HTML / HTML5: web semántica
- CSS / CSS3: MENOS, SASS, consultas de medios
- JavaScript: jQuery, AngularJS, Knockout, etc.
- Las peculiaridades de compatibilidad entre navegadores
- Diseño de respuesta
- AJAX, JSON, XML, WebSocket
Aquí viene la parte divertida. Si desea presentar su sitio web, es mejor que conozca estos y todos sus caprichos.
JavaScript fue una broma en los primeros días, convertido en uno de los lenguajes más populares y poderosos de la actualidad. Cada día aparecen nuevas metodologías y marcos, MVC, MVVM, MVP, Angular, Knockout, Ember, etc.
Junto con HTML, CSS, Javascript, un desarrollador de pila completa también debe conocer el diseño receptivo y cómo trabajar con consultas de medios y preprocesadores CSS como LESS y SASS.
También se debe saber cómo comunicarse con el back-end a través de AJAX o WebSockets.
Diseño:
- Convertir el diseño del sitio web en código front-end
- UI
- UX
Además de las tecnologías de front-end, un desarrollador de pila completa también comprende lo que es posible y lo que no debe crear con las restricciones de HTML / CSS / Javascript y convierte el diseño (archivos de Photoshop / Illustrator) en consecuencia.
Con muchas de las tecnologías mencionadas, un desarrollador puede escapar sin saber codificar o usar, como Ruby o bibliotecas JavaScript específicas, pero todas estas están interconectadas de una forma u otra.
Por ejemplo, si desea configurar Vagrant, necesita conocer la sintaxis de Ruby, tan simplificada como sea, o si desea manipular elementos DOM, jQuery es una buena tecnología para conocer.
Fuente: Ser un desarrollador Full Stack