¿Alguien ha intentado aplicar ingeniería inversa a una aplicación web, si es así, esta es una buena / mala forma de aprender?

Espera, ¿qué quieres decir con que alguien lo intentó?

La mitad de construir cosas nuevas es la ingeniería inversa de otros productos. Entiende lo que hace la gente, innova y luego construye una versión más rápida, más confiable y eficiente, o simplemente está haciendo una imitación, que es una forma de prepararse para una mala práctica y un fracaso.

Sin embargo, debe comprender cada pieza de tecnología, o al menos tener esa atención. Dado que las aplicaciones web como YouTube son mucho más que una aplicación web que sirve contenido. Especialmente esa parte que mencionaste (Video). Es una cosa completamente nueva y diferente.

Un ejemplo del desglose sería algo como esto:

Almacenamiento> Google Cloud Storage
Transcodificación de video> Google Cloud Engines
Ubicaciones de distribución> Videos de caché, Balance de carga.
Sitio web de servicio> Restricción de contenido, Experiencia del usuario
Servicios web> Actualización en vivo, colas, notificaciones
Web Frameworks> Escalable, Polygot Framework.

Depende de qué tan profundo caves y lo descubras.

YouTube realmente no ayuda a comenzar de la manera correcta, porque es más complejo, pero si usa una herramienta como la que mencioné aquí:
La respuesta de Yad Konrad a la Investigación de la competencia: ¿Cuáles son las mejores alternativas de builtwith.com que existen?

Puede tener una idea general de cómo se ejecuta esta aplicación web y luego simplemente conecta los puntos.

Wikipedia dice:

La ingeniería inversa es el proceso de extraer conocimiento o información de diseño de cualquier cosa hecha por el hombre. [1]: 3 El proceso a menudo implica desmontar algo (un dispositivo mecánico, componente electrónico, programa de computadora o materia biológica, química u orgánica) y analizar Sus componentes y funcionamiento en detalle.

Si y si.
Estudiar mediante ingeniería inversa es una buena forma complementaria de aprender cómo piensan, programan y encuentran soluciones otras personas.
Sin embargo, no puede simplemente levantar el código de otras personas y usarlo a menos que tenga las licencias necesarias. Pero sabes que.

Sí, pero es diferente a RE en los binarios. Básicamente estás volando a ciegas. Puede correlacionar la entrada con la salida e inferir qué código lo causó. A falta de encontrar un error explotable que te revele los archivos de código, eso es todo.


Bueno, puede intentar determinar si usan componentes comunes para los que puede descargar la fuente.

Sí lo es.

Lo hice desde los días en que comencé mi programación y lo hago ahora. Es divertido y una excelente manera de aprender. Pero asegúrese de no copiar a ciegas sin comprender. Mi última aplicación de ingeniería inversa fue Candy Crush y aprendí muchísimos conceptos.

Así que hazlo y hazlo regularmente.

More Interesting

¿Cuál es la mejor manera de crear un rastreador para indexar imágenes de sitios de comercio electrónico?

¿Qué pila de tecnología se debe usar para una aplicación web escalable?

¿Cómo puedo obtener más información sobre la arquitectura de aplicaciones web?

¿Es bueno aprender un marco web?

Web Scraping: ¿Cómo puedo escribir un script para acceder a varias páginas web dentro del mismo dominio?

¿Cuál es la diferencia entre la llamada de servicio web, las llamadas de API y las llamadas asíncronas como AJAX en el desarrollo web? ¿Cómo y cuándo usarlos?

¿Cuál es la forma más fácil de compartir tu ubicación con amigos?

¿Hay alguna aplicación web que descargue todo o la mayor parte del trabajo al lado del cliente?

¿Alguien ha intentado aplicar ingeniería inversa a una aplicación web, si es así, esta es una buena / mala forma de aprender?

¿Dónde podría implementar mi aplicación Node.js (juez en línea) que necesita Linux chroot sandbox y virtual box?

¿Cómo se usan exactamente cosas como bucles y funciones en el desarrollo web? Por favor, da un ejemplo simple.

¿Un sitio web que sea muy útil con muchas características útiles, pero bastante feo / simple, superará a un sitio web que es hermoso pero tiene características limitadas y es (más o menos) difícil de usar?

¿Qué tan avanzadas pueden ser las notificaciones push con aplicaciones web progresivas?

¿Por qué XMPP no es más popular en el desarrollo web?

¿Debo usar Vue.js, en lugar de React.js, para mis aplicaciones web, y si es así, por qué?