Diseño y arquitectura del sistema
️ La segunda edición sigue siendo un trabajo en progreso.
El diseño y la arquitectura del sistema de libros han ayudado a millones de ingenieros de software en todo el mundo a tener éxito en la industria de Internet desde 2015. Aquí está por eso funciona:
- ? Ingeniería del mundo real. Proviene de ejemplos del mundo real de Fanng y muchas otras compañías de Silicon Valley. Y describe cómo construir productos y servicios en Internet del mundo real.
- ? Fácil de digerir. El diseño del sistema en el nivel correcto de abstracción es como un mapa para enrutarlo a su destino con el corte más corto. Hay gráficos, diagramas y guías paso a paso, todo para que usted adquiera el conocimiento mínimo procesable para las entrevistas de diseño del sistema de Excel y comenzar a construir.
- ? Cobertura completa. Se esfuerza por ser "el libro" para dominar la mayoría de los casos de uso del diseño del sistema, desde el backend hasta la frontend y de cero a héroe.
- ? ♀️ Marco de 4 pasos. Este libro se acerca y resuelve problemas de manera sistemática y repetible: 1) Aclarar los requisitos 2) Dibuje el diseño de alto nivel 3) Discuta los componentes individuales y cómo interactúan entre sí 4) Envuelven con puntos ciegos o cuellos de botella.
¿Qué es diferente en la segunda edición? De 2015 a 2022, vimos que Mobile se comió el mundo, la informática nativa de la nube se encontró con Kubernetes, y Web3 pasó por altibajos. Siempre hay nuevas empresas en diferentes etapas de sus ciclos de vida que toman la iniciativa de la industria de Internet. Estoy interesado en cómo funcionan, ¿no? Entonces en la segunda edición, lo haré
- Agregue contenido más interesante con nuevas empresas y productos.
- Reescribir el contenido existente con nuevas tendencias en la industria.
- Agregue más gráficos y diagramas con guías paso a paso.
- Agregue una edición PDF del libro.
- Deduplicar contenido repetitivo para que cada diseño tome su abstracción única.
¿Qué sale del alcance de este libro?
- Diseño de API para dominios específicos. Vaya a la Guía de diseño de API de Google.
- Diseño orientado a objetos. Su importancia está bastante sobreestimada por los ingenieros mediocres.
¿Cómo usar este libro?
- Para los profesionales (Google L5 o superior), vaya directamente al diseño del sistema en la práctica .
- Para los programadores junior e intermedio (Google L3/L4), vaya a las teorías de diseño del sistema y luego lea el diseño del sistema en la práctica .
- Para los principiantes, vaya a prepararse para una entrevista de manera efectiva , luego lea las teorías de diseño del sistema y finalmente vaya al diseño del sistema en la práctica .
Diseño del sistema en la práctica
| Producto | Pregunta | |
|---|
| Diseño de Instagram o Pinterest | |
| Diseño de Uber | |
| ¿Cómo escala Facebook su tienda de gráficos sociales? Tao | |
| ¿Cómo Netflix sirve datos de visualización? | |
| ¿Cómo diseñar API robustas y predecibles con idempotencia? | |
| ¿Cómo transmitir video a través de HTTP para dispositivos móviles? HTTP Live Streaming (HLS) | |
| Diseño de un sistema de registro distribuido | |
| Diseñando un acortador de URL | |
| Diseño de una tienda KV con almacenamiento externo | |
| Diseño de una tienda KV o Memcached distribuida en memoria | |
| Diseño de almacenamiento de fotos de Facebook | |
| Diseño de la bolsa de valores | |
| Diseño de la notificación inteligente de los cambios en el precio de las acciones | |
| Diseño del sistema de transferencia de dinero en efectivo cuadrado o PayPal | |
| Diseño de webhook de pago | |
| Diseño de un sistema métrico | |
| Diseño de un sistema de recomendación | |
| Diseño de Airbnb o un sistema de reserva de hotel | |
| Plataforma de automatización de marketing de Lyft - Symphony | |
| Diseño de búsqueda de typeahead o autocompletar | |
| Diseño de un balancer de carga o una banda de dropbox | |
| Detección de fraude con aprendizaje semi-supervisado | |
| Diseño de Juez en línea o LEETCODE | |
Teorías de diseño del sistema
- Introducción a la arquitectura
- ¿Cómo escalar un servicio web?
- Ácido vs base
- Partición y enrutamiento de datos
- Réplica, consistencia y teorema de CAP
- Tipos de equilibradores de carga
- Modelo de concurrencia
- Mejora de la disponibilidad con conmutación por error
- Filtro de floración
- Skiplista
- B Árbol vs. B+ Tree
- Introducción a la base de datos relacional
- 4 tipos de no SQL
- Cache de valor clave
- Marcos de procesamiento de transmisión y lotes
- Patrones de diseño de nubes
- Opciones de API públicas
- Arquitectura lambda
- Patrones de arquitectura de iOS revisitados
- ¿Qué podemos comunicar en la entrevista de habilidades blandas?
- Experimentar una inmersión profunda
- 3 paradigmas de programación
- Principios de diseño sólido
- ¿Cómo hacer planificación de capacidad?
Prepárese para una entrevista de manera efectiva
- Introducción a la entrevista de ingeniero de software
- ¿Cómo descifrar la entrevista de codificación, de verdad?
- ¿Cómo comunicarse en la entrevista?
- Experimentar una inmersión profunda
- Cultura encaja
- Ser ingeniero de software: un viaje de héroe
[Edición china]
¿Quién es Tian Pan?
Tian Pan ha sido un ingeniero de software de alto rendimiento y gerente de ingeniería que trabaja en el área de la Bahía de San Francisco durante 10 años, trabajado anteriormente en Uber, Oracle, Iotex y Microsoft.
¡Únete a nosotros para más discusión!
Licencia
GPL V3
Si le resulta útil este recurso, dale un? De lo contrario, contribuya a él y dale un ️.