Es posible que los desarrolladores e ingenieros más antiguos recuerden la pila LAMP💡 y, aunque está rediseñada, si reducimos todo a lo básico, lo que encontramos y necesitamos es:
un sistema operativo
un servidor web
una base de datos
un lenguaje de programación
Lo que les voy a hablar hoy es cómo reinventé la pila LAMP en un formato alternativo :
Hoy en día, todo lo que escucho con demasiada frecuencia es: "Quiero convertirme en desarrollador, ¿cómo empiezo?", "Quiero convertirme en desarrollador, ¿qué computadora portátil necesito?". o "¿Necesito comprar la última MacBook para convertirme en desarrollador?" y para ser honesto, está empezando a afectarme.
No, niños , no necesitan la última tecnología sofisticada ni un cohete🚀 para convertirse en desarrollador, lo que necesitan es un sistema operativo que sea capaz de instalar paquetes de programación y compilarlos; Incluso puedes usar la vieja computadora portátil de tu abuela. Y ahora preguntas: “¡¿Cómo puede ser esto?!”
Hagamos un breve viaje al pasado; Hace casi 3 años y medio, comencé a jugar con un SBC , una computadora de placa única que cuesta menos de 50E para comprar, y en este momento tengo un servidor web, una base de datos, estoy realizando cientos de raspados web por hora y, además, estoy trabajando en el desarrollo de un punto final API.
Este SBC ni siquiera es el último de su gama y tiene:
8 GB de memoria interna LPDDR4
CPU ARM Cortex-A72 de cuatro núcleos a 1,5 GHz (lanzada en 2015): puede overclockear de forma fácil y segura a 2 GHz (+extensión de ventilador y disipador de calor)
Esto es lo que GPT tiene que decir sobre estas especificaciones: Las especificaciones que proporcionó son decentes para ciertos tipos de tareas informáticas, pero pueden no ser suficientes para otras. Aquí una evaluación:
El ARM Cortex-A72 es un diseño de procesador capaz que se encuentra comúnmente en teléfonos inteligentes, tabletas y otros dispositivos móviles.
Una configuración de cuatro núcleos significa que tiene cuatro núcleos, lo que le permite manejar múltiples tareas simultáneamente de manera más eficiente.
La velocidad de reloj de 1,5 GHz es decente para tareas informáticas de uso general, incluida la navegación web, el consumo de medios y las aplicaciones de productividad.
Sin embargo, para tareas más exigentes, como juegos, edición de vídeo o ejecutar software complejo, una velocidad de reloj más alta y posiblemente más núcleos proporcionarían un mejor rendimiento. En resumen, estas especificaciones son adecuadas para tareas informáticas de ligeras a moderadas, como la productividad diaria, la navegación web y el consumo multimedia. Sin embargo, para tareas más exigentes o para el futuro, es posible que desee considerar actualizar a un sistema con más RAM y una CPU más rápida.
Créame, al principio, de ligero a moderado es más que suficiente, por lo que con una placa Pi, puede tener fácilmente un entorno de escritorio funcional en el que pueda aprender a codificar, y no solo lenguajes de programación frontend sino incluso backend como Python. , c++ (que es aún más eficiente energéticamente) o javascript.
¿Qué uso?
En mi Raspberry Pi, estoy desarrollando código con:
Escritorio Ubuntu - cortesía deDesktopify :
cortafuegos
antivirus
software de prevención de intrusiones IPS
redes
gestión segura de contraseñas
VSCode conectándose remotamente al servidor
Scripts de Python3 que raspan la web y crean páginas web HTML incorporadas por CSS
peticiones
selenio
pandas
procesamiento paralelo - concurrent.futures
Javascript junto con PHP aquí y allá.
Scripts Python3 que escriben automáticamente en mi base de datos Sqlite3 en formato JSON .
Aplicación Flask , un marco web Python pequeño y liviano que proporciona herramientas y características útiles que facilitan la creación de aplicaciones web en Python.
Y, por último, un fragmento de código Javascript que llama al punto final de Flask: un punto final de API RESTful
Durante cerca de 4 años a un coste definitivamente amortizado de 120E y < 4E al mes en electricidad🔌.
Para resumir todo, aquí está la arquitectura del sistema BerryNews:
Los factores clave aquí son Utilización eficiente de recursos + Restricciones de utilización de recursos .
¿Por qué derrochar cuando puedes escribir código eficiente?
Si tuviéramos que resumir todo, terminaríamos con una tabla como esta en una computadora de 100 dólares:
Categoría | Palabras clave |
---|---|
Lenguajes de programación | Python3, Javascript, PHP, CSS, HTML, SQL |
Formatos de datos | JSON |
Marcos | matraz, selenio, futuros concurrentes |
Bases de datos | sqlite3 |
Redes | configuración del enrutador, DNS |
La seguridad cibernética | UFW ( firewall ), ClamAV ( antivirus ), Fail2ban ( IPS ), gestión de contraseñas, claves SSH, Let's Encrypt ( certificado SSL ) |
linux | Raspberry Pi, escritorio Ubuntu, VSCode |
Entonces, dime, ¿todavía crees que necesitas las últimas especificaciones de portátiles para convertirte en desarrollador?