¿Cómo haría para construir un editor de código en tiempo real?

Sí, es posible en Angular y Node. El tiempo que demore dependerá de las características y su conjunto de habilidades.

La replicación de la funcionalidad de jsFiddle o CodePen (hay muchas como estas) llevaría meses para un desarrollador intermedio.

Si se centró en un subconjunto de características, probablemente podría escribir una prueba de concepto en unos días. Una versión de almacenamiento persistente para invitados / usuarios registrados puede demorar algunas semanas.

Esencialmente, todo lo que está haciendo es recopilar un conjunto de texto de entrada en partes relevantes de un documento HTML (tal vez almacenar los datos JS y CSS en archivos del lado del servidor y permitir que se acceda a ellos a través del iframe en el cliente).

A mi modo de ver, las partes difíciles son:

  • Asegurándolo contra ataques maliciosos
  • Hacer que los archivos ‘externos’ (JS y CSS) estén disponibles para referencia dentro del resultado representado (es decir, para que puedan ser referenciados como recursos HTTP en etiquetas LINK / SCRIPT)
  • Resaltado de código
  • Entrada de formato (por ejemplo, espacios en blanco / sangrías)

Si un desarrollador inexperto se acercara a esto, puede ignorar las partes difíciles enumeradas anteriormente para el PoC. Solo enfóquese en escapar del contenido de entrada y almacenar ‘blobs’ o archivos en el servidor (usar una estructura de tipo blob en el servidor tiene más sentido ya que el acceso al sistema de archivos es terriblemente lento en comparación). Los objetos JS en memoria pueden funcionar suficientemente bien para un PoC.

Puede hacer todo esto con Angular, Node y MongoDB. Como un enfoque excelente: las solicitudes al servidor de URL como / username / fiddle-123 / js devolverían el JS que se escribió en el panel JS y se almacenó como una cadena escapada en el servicio MongoDB. Lo mismo ocurre con el CSS y HTML. Solo tiene que analizar la URL JS en una etiqueta de script en el encabezado del HTML de salida y se representará en el resultado del iframe. Probablemente hay formas mucho más elegantes de hacerlo, pero eso es un comienzo.

More Interesting

Quiero ser un desarrollador web front-end. ¿Donde debería empezar?

Cómo usar Firebase para mi aplicación Ionic v1

Necesito un desarrollador de pila completa que pueda construir una plataforma de infografía similar a infogr.am y piktochart.com. ¿Qué conjuntos de habilidades debo buscar?

Cuando busco en Google "000000..000001", ¿por qué recibo el mensaje "Nuestros sistemas han detectado tráfico inusual de la red de su computadora. Por favor intente su solicitud más tarde"?

Estoy aprendiendo ROR y me preguntaba si los empleadores estarían interesados ​​en ver varios algoritmos / programas que escribí, o si solo se preocupan por las aplicaciones de Rails específicamente. ¿Debo incluirlo?

Estoy tratando de construir una página web y he llegado a la parte de elegir un servidor web. Estoy abrumado ahora. ¿Cómo elijo un proveedor de alojamiento web? No lo entiendo

Estoy haciendo un tema de WordPress. ¿Cómo hago que sea completamente editable para mi cliente para que pueda completar toda la información por sí mismo?

Estoy en mi segundo año de universidad con solo conocimientos básicos en OOP y estructuras de datos. ¿Qué y cómo debo aprender algo para poder obtener un trabajo decente de desarrollador?

Acabo de leer sobre perfect.org. ¿Crees que es posible que IOS Swift también se use en la web?

Soy un desarrollador de JavaScript. ¿Cuál podría ser el objetivo de mi vida?

Tengo conocimientos básicos de C y HTML / CSS. Quiero ir al desarrollo web. ¿Debo aprender PHP o Javascript primero? ¿Qué tutoriales debo seguir para aprenderlos?

Estoy trabajando en un sitio porno. ¿Cómo obtengo contenido para agregar al sitio?

¿Qué debo aprender a continuación si conozco HTML, CSS, JavaScript, jQuery, PHP, MySQL y WordPress?

Si hipotéticamente fuera un desarrollador web legítimo y quisiera crear un sitio con Ruby, ¿cuáles son los pasos literales que debo seguir para llegar al punto en que empiezo a ingresar el código?

Renuncio a mi trabajo diario porque me deprime. Sé HTML, CSS, JavaScript básico y desarrollo de temas de WordPress. ¿Qué debo aprender y cómo hago un buen uso de un período de un mes para asegurar un trabajo en el desarrollo web?