¿Qué conocimientos básicos necesitas aprender para comenzar como ingeniero web completo?
Para tener éxito en este increíble mercado, nosotros, los desarrolladores, a menudo perfeccionistas, siempre debemos hacer nuestro lema "si quieres hacer lo correcto" y cuestionarte a menudo. Esto nos obligará a concentrarnos en un solo lugar y debemos aprenderlo todo. Por lo tanto, para ser un ingeniero completo, a menudo es necesario aprender las siguientes habilidades que el editor de Jinan IT Training and Empleo ha compilado y publicado: p>
1. Gestión de servicios/Operación y mantenimiento
Un desarrollador debe tener conocimientos básicos de gestión de servidores. Incluyendo, entre otros, los siguientes conocimientos:
Conectarse remotamente al servidor a través de una terminal u otro entorno sin una interfaz de usuario
Poder escribir scripts de shell básicos
En el servidor Gestión de usuarios y grupos
Administrar programas de servidor como Apache y Nginx para proporcionar aplicaciones
Gestión de firewall y gestión de permisos
Instalar y actualizar software
Además de estas habilidades básicas, los desarrolladores deben saber cómo crear un entorno de desarrollo bueno, saludable y separado en Docker o un entorno de máquina virtual como Vagrant. Si no está familiarizado con todas las técnicas anteriores, debo recomendarle un libro increíble, haga clic aquí para comprarlo.
Los desarrolladores deben ser muy competentes en los sistemas de control de versiones para poder desarrollar copias de seguridad de producción confiables y bases de código colaborativas y compartibles que puedan rastrear los cambios de código a lo largo del tiempo. Hoy en día, el flujo de trabajo de ningún desarrollador es completamente independiente del control de versiones. Tenemos un excelente video tutorial sobre control de versiones, cómpralo aquí.
2. Nube
A diferencia de la administración real o los servidores virtuales, un desarrollador puede necesitar conocer plataformas de alojamiento en la nube, como Heroku, Google Cloud, Azure, AWS, etc.
Hay que decir que las plataformas y herramientas tienen más que ver con la exageración que con la practicidad. Si bien hay muchas plataformas y herramientas que no funcionan tan bien como se anuncian, comprender los servicios de los que todos hablan será útil a largo plazo: los clientes pueden solicitar cambiar de proveedor en cualquier momento. Afortunadamente, tenemos estas guías definitivas para la implementación de alojamiento en la nube.
3. Backend
En el backend, además de saber qué lenguaje elegir, como PHP y numerosos frameworks y CMS, un desarrollador full-stack debe estar familiarizado con:
Los servidores web, como Nginx y Apache, están estrechamente relacionados con la operación y el mantenimiento
Desafortunadamente, NodeJS ya puede compilar JS, CSS y otros archivos de recursos en archivos estáticos que se pueden almacenar en caché fácilmente. . Afortunadamente, hay formas de evitar aprender NodeJS y también puedes usar PHP
Las herramientas de administración de paquetes PHP (/zt/php/) como Composer son indispensables en los entornos de desarrollo modernos
p >
Buen diseño de API, ya que la mayoría de las páginas web nuevas se basan en API y solo sirven al front-end (descrito en detalle a continuación)
Los motores de búsqueda como ElasticSearch (introducción aquí) mejoran el rendimiento del sitio web. muy importante
Para cronjobs y trabajo back-end, use bibliotecas como Gearman o Crunz
Comprenda que el almacenamiento en caché, Varnish, Redis y otras herramientas increíbles pueden almacenar datos en porciones, por lo que un proyecto se puede implementar en múltiples hosts
4. Base de datos
La base de datos es una parte separada, porque aparte de una buena comprensión de la relación, básicamente no tendremos cambios estructurales además de los esquema de datos de una base de datos (MySQL o PostgreSQL), un ingeniero full-stack debe tener algún conocimiento de bases de datos no relacionales como MongoDB, Redis o Cassandra, sin mencionar las bases de datos gráficas como Neo4j.
Desafortunadamente, todas estas cosas están en el servidor, todas bajo el control del ingeniero de pila completa.
También existen varias soluciones remotas similares a Mong, como RestDB o Firebase, propiedad de Google.
5. Front-end
Si quieres saber cómo es un gráfico de conocimiento de front-end normal, puedes leer este excelente artículo en la sección de JavaScript. Pero como ingeniero de pila completa, debes comprender los preprocesadores y compiladores
NodeJS y NPM
Yarn
(como Babel) para compilar Typecript, ES6. , LESS, SCSS, SaSS
Herramientas de construcción, como Grunt y Gulp
Frameworks, como VueJS, React, Angular
Herramientas de empaquetado de módulos, como Webpack, Browserify, Rollup
6. Diseño
En términos de diseño, los desarrolladores de pila completa deben comprender cómo dibujar un prototipo antes de que un producto se convierta en código HTML y CSS verdaderamente utilizable. . Luego puede usar JS para escribir interacciones y el backend también puede usar datos falsos para simular el entorno de producción. Sólo cuando se complete este dibujo prototipo crítico y el diseño de la experiencia del usuario y el diseño de la interfaz estén listos podrá comenzar el desarrollo real. Esto en sí mismo es una tarea difícil y requiere un conjunto especial de herramientas:
Photoshop e Illustrator o algunas herramientas de código abierto como Gimp/Inkscape. Visite el canal Diseño para obtener más información sobre dichas herramientas.
Un editor rápido y genial como Atom o Sublime Text (aquí hay diez complementos sublimes útiles)
Los selectores de fondo y de color como Subtlepatterns pueden combinar algunos colores
Sistema de cuadrícula CSS
Todo el conocimiento que necesita saber sobre el front-end mencionado anteriormente y la simulación de datos JS
Publique el prototipo en Internet Para que todos puedan navegar y dar su opinión, Ngrok es muy fácil de usar
Sistema de registro 7.
Para monitorear de manera efectiva el estado de la aplicación, los desarrolladores de pila completa deben poder rastrear los errores y encontrarlos. luego extraiga información útil de ellos. Los desarrolladores de pila completa también necesitan predecir algunas tendencias a partir de registros, como aumentos en el uso de CPU o E/S, en caso de que la aplicación se cuelgue sin saber cuándo. Esta parte también está relacionada con la operación y el mantenimiento, pero requiere algunas habilidades especiales:
Recomiende un excelente artículo sobre la pila ELK, que le ayudará a comprender los conocimientos necesarios para crear un sistema de registro. Incluye ElasticSearch para buscar registros, Logstash para recopilar registros, Kibana para mostrar registros con excelentes gráficos e incluso Logz.io para brindar soluciones.
8. Terminal móvil
Por último, debemos hablar del terminal móvil. A medida que las vistas web en iOS y Android se vuelven más eficientes, y con la llegada de las PWA (aplicaciones web progresivas), las aplicaciones nativas se vuelven sombrías porque son simplemente demasiado complejas de desarrollar. Por lo tanto, un ingeniero de pila completa debe comprender PWA o React Native, o NativeScript, Tabris, Cordova, Phonegap u otras vistas web para permitir que las aplicaciones cliente llamen a las API y se ejecuten.