2011-09-21 18 views
18

He estado programando en PHP y C# durante mucho tiempo, pero he hecho muy poco Javascript. Para la programación del lado del servidor utilizo MVC, que es muy agradable y mi código está perfectamente organizado.Modelo de programación de Javascript para organizar aplicaciones web

Ahora, para Javascript, cuando escribo código, suelo arruinar las cosas. Se convierte en algo así como el código de spaghetti. No sé cómo organizar mi código.

¿Alguien puede ayudarme con cualquier recurso, libro o cualquier cosa que pueda ayudar con la escritura ordenada y el código Javascript organizado?

Gracias de antemano.

+0

Consejo JavaScript novato viniendo de PHP y C# - javascript tiene alcance de función, no alcance de llaves. –

+0

http://programmers.stackexchange.com/ es probablemente un mejor lugar para esta pregunta. No hay una respuesta * correcta *. – user113716

Respuesta

6

usted menciona que usted ha estado programando en PHP y C# durante mucho tiempo. Tome su experiencia de organización de código y aplíquela a su javascript.

par de marcos

herramientas de cierre de Google -

http://code.google.com/closure/

Si Google lo utiliza para organizar Gmail y Google Docs, entonces debería funcionar para aplicaciones más grandes.

Además, Yahoo! YUI es bueno también -

http://developer.yahoo.com/yui/

http://yuilibrary.com/

Y Backbone.js (no como "grande" como Google o Yahoo) -

http://documentcloud.github.com/backbone/

https://github.com/documentcloud/backbone

Decent Book

Para mí, escribir javascript prueba de la unidad me ayuda a mantenerse organizado -

Test-Driven JavaScript Desarrollo

http://www.amazon.com/Test-Driven-JavaScript-Development-Developers-Library/dp/0321683919/

+0

Las herramientas de cierre de Google tienen algunas fallas y en condiciones específicas insertarán errores en el código. – Bakudan

+0

@Bakudan - absolutamente (aunque yo no los llamaría fallas). Los documentos Closure y "Closure: The Definitive Guide" hacen un buen trabajo explicando ciertos problemas: http://www.amazon.com/Closure-Definitive-Guide-Michael-Bolin/dp/1449381871/ –

+0

He estado trabajando en backbone desde @KrisKrause publicó esta respuesta. Debo decir que es realmente genial y ayuda a organizar el código de forma muy clara. Gracias. –

1

Aquí es una excelente referencia. En ocasiones, es difícil evitar los espaguetis en Javascript. También tenga en cuenta que Javascript NO es compatible con polimorfismo.

http://dev.opera.com/articles/view/javascript-best-practices/

+0

No admite el polimorfismo – Raynos

+0

No es un artículo malo, pero hay muchos puntos que discutiría. – vol7ron

+0

No es compatible con métodos verdaderamente polimórficos. Esto me mató un día escribiendo una aplicación con dos métodos con diferentes firmas de entrada. Siendo un programador de Java desde hace mucho tiempo, no me di cuenta hasta que hice una depuración interactiva exactamente lo que estaba pasando. http://javascript.about.com/library/blpolyfunc.htm – Alexx

2

No estoy seguro si una sugerencia biblioteca es lo que está buscando, pero empezamos usando Mootools como nuestra biblioteca base js. El sistema Mootools' Class es increíble para crear una jerarquía de clases.Ha ayudado inmensamente a nuestro equipo mantener todo nuestro código organizado.

Si está buscando soluciones más simples orientadas a objetos y necesita herencia, hay muchas, muchas bibliotecas que ofrecen esto. Dos de mis favoritos son klass y selfish.js.

3

Escribir código modular. No es muy difícil.

Personalmente, le recomiendo que escriba muchos módulos y un proceso de construcción y un administrador de paquetes para agregarlos en uno.

Yo uso browserify para eso.

// DOM-utils.js 

module.exports = { 
    // util methods 
} 

// some-UI-Widget.js 
var utils = require("DOM-utils"), 
    jQuery = require("jQuery"); 

// do ui logic 

module.exports = someWidget 

yo iría más lejos y recomendar que utilice un mediator pattern (ver mediator) para mantener todo el código de acoplamiento flexible.

ver este example application

1

Alex MacCaw escribió un libro que acaba de salir, JavaScript Web Applications que cubre algunos de los marcos de JavaScript disponibles. MacCaw es el creador de Spine, otro framework MVC JavaScript (como backbone.js es). Hay tutoriales en el sitio de Spine que explican cómo usarlo. Además, si está interesado en backbone.js, Peepcode actualmente tiene dos screencasts (no gratuitos) que cubren su uso.

Cuestiones relacionadas