architecture - personal - ¿Qué usas para el desarrollo web y por qué piensas que es genial?
pasos para crear un logotipo personal (14)
Aquí está mi nuevo proyecto: un lienzo abierto, justo en frente de mí. Dentro de unos días, comenzaré a codificar una gran aplicación web. Empezará siendo pequeño, con pocos módulos, solo como desarrollador e ingeniero, pero espero que crezca y crezca.
A pesar de que soy un desarrollador Java activo, ha pasado un tiempo desde la última vez que creé una aplicación web desde cero. En ese momento, Struts y J2EE eran el camino a seguir, pero veo una gran cantidad de nuevos marcos, nuevas bibliotecas cada día.
Lo que pido aquí es su consejo: ¿qué usa actualmente para el desarrollo web? ¿Por qué cree que es relevante y si elige las mismas herramientas si está comenzando un nuevo proyecto? Todo cuenta: desde consejos sobre la interfaz de usuario hasta el back-end. Gotas comunes, patrones, todo lo que pueda pensar puede ser relevante.
Soy un desarrollador de Java y, naturalmente, me inclino a hacer todo lo posible con las tecnologías relacionadas con Java (J2SE, J2EE, Groovy, Grails, JRuby, Jython, JWhatever, etc.), pero le invito a que publique lo que desee. usar, estar relacionado con Java o no.
Mi objetivo aquí es construir un cubo de lo que las personas están haciendo y de por qué lo hacen para ayudarme a evaluar de qué manera debo ir y cuáles no, y por qué. Después de todo, no todos los días tienes tanta libertad para decidir.
¡Gracias por adelantado!
Encuentro Google App Engine realmente cómodo (Python como lenguaje de servidor, Google Datastore como db, muchos objetos listos para usar, como memcache, API de usuario, etc.).
He estado usando TurboGears últimamente y me encanta. Compite con Django y Ruby On Rails para un desarrollo rápido, pero tiene un backend más flexible. Es decir, es más una colección de los mejores componentes que se han creado para jugar bien juntos que un único marco monolítico. Puede cambiar fácilmente el asignador relacional de objetos si es necesario o reemplazar el lenguaje de plantillas de página con otra cosa sin reescribir toda la aplicación.
El verdadero "¿dónde has estado toda mi vida?" llegó el momento cuando paso aproximadamente dos minutos agregando un campo de autocompletar AJAX a un formulario. Tuve que escribir una función para responder a las solicitudes AJAX y agregar un nuevo campo que llamó a esa función, y funcionó perfectamente la primera vez. Siempre quise jugar con AJAX pero estaba un poco intimidado, y mi primera experiencia con él no pudo haber sido más fácil.
Tiene un tutorial de 20 minutos para hacer una wiki funcional. Incluso si no piensa que lo va a usar, léalo o mire y vea cuán fácil puede ser.
Para el desarrollo de Java, Eclipse o Net beans; Para html / css / js netbeans y en ocasiones Dreamweaver para comprobar el soporte del navegador para las propiedades; Para xml / xslt / xsi Altova xml spy; Para archivos PNG Adobe Fireworks; Para todos los textos de edición general GVIM. Y no olvidar "Firebug" y "barra de herramientas de desarrollador IE".
¿Por qué rockear? la finalización del código para Java, la capacidad de rastreo y la experiencia WYSIWYG es lo que los hace funcionar para mí. Mañana, si sale una nueva herramienta y tiene una curva de aprendizaje más corta, ¡no sería tímido!
Soy fanático de ColdFusion, que está construido sobre Java, pero con un enfoque más RAD / Agile. Existe la implementación de referencia de Adobe, pero también hay tres implementaciones de código abierto del lenguaje CFML que están disponibles.
ColdFusion es especialmente bueno para ser una tecnología de "pegamento", que proporciona acceso a los servicios Flash / ActionScript, integración con Java, integración .Net, servicios web e integración de bases de datos SQL utilizando cualquier fuente de datos JDBC.
Yo uso Django. La razón principal para mí es la generación de administración automática. Lo que esto significa es que creo objetos de modelo, y las herramientas de Django generan SQL DDL para mí. Lo aplico a mi base de datos y Django tiene un sitio web de administración completamente generado para que pueda realizar operaciones CRUD sobre esos datos. Elige buenos controles basados en los tipos, tiene búsqueda, etc. Si quiero modificar el administrador, hay clases que puedo crear para hacer eso.
Django tiene muchos otros grandes beneficios (lenguaje de plantillas simple, uso de Python, fácil de alojar, etc.), pero el administrador es el motivo por el que lo elegí en lugar de RoR.
¿Estás hablando de un "sitio web" o algo más rico como una aplicación de oficina (muchos controles y campos y flujos de trabajo complicados)?
Si estás hablando de un sitio web, algo más orientado al contenido, y quieres seguir con Java, yo voto por Stripes: abarca a HTTP en todo (bueno, al menos la mayoría) de su gloria, se mantiene fuera de tu camino, y es muy flexible. Hemos escrito un marco muy agradable además de Stripes aprovechando los archivos de etiquetas JSP y JSP. Podemos eliminar las pantallas con bastante rapidez.
Si tiene una aplicación más complicada en mente, entonces considere uno de los marcos de componentes. Wicket es bastante popular, pero JSF tiene un montón de herramientas y widgets, y trabaja con Seam, que recibe excelentes críticas.
Si quieres algo limpio y simple, no uses Rails, usa Ramaze .
Yo uso Ramaze , un hermoso marco web de Ruby. Combine eso con M4DBI , un ORM de Ruby construido sobre Ruby DBI . Para el trabajo de JS, jQuery siempre que sea posible (¡evito JS simple como la peste!). PostgreSQL es mi elección de base de datos.
Tengo experiencia con Rails, mod_ruby, JDBC, ODBC, PHP y sitios "simples" (HTML, CSS, JS), pero estoy bastante contento con el software mencionado anteriormente para mi pila de aplicaciones web.
Creo que Ramaze puede funcionar bajo JRuby.
Actualmente trabajo con ASP.NET MVC y voy a cambiar mis esfuerzos de desarrollo profesional en los próximos meses. Tuve contacto con muchos idiomas y marcos web en la última década. C # es un lenguaje muy maduro y poderoso, y el framework asp.net mvc parece hacer clic conmigo. Continuaré usando jquery como mi biblioteca principal de JavaScript. También continuaré jugando con python / django y otras soluciones en mi tiempo libre.
Simplemente me gusta c # así que esa es probablemente la razón por la que elegí asp.net mvc sobre otras soluciones.
Parece que MS finalmente se le ocurrió algo decente (teniendo en cuenta el lío de formularios web asp.net ... todo un logro)
Si comenzara de cero, seguiría mirando al equipo con el que estaba trabajando y vería lo que saben. Plataforma que nadie en su equipo conoce es la plataforma equivocada. Para el trabajo de producción, adhiérase a lo que sabe, a menos que haya una razón apremiante por la que deba cambiar.
Si está decidido a aprender algo nuevo, sugeriría Ruby on Rails. En solo un par de años se ha convertido en uno de los hitos principales para comparar otros sistemas: "Uso xyz, es como los rieles, excepto ..." Solo eso habla del tipo de impacto que ha tenido en la comunidad de desarrollo web. Ruby le ofrece un lenguaje de scripting del lado del servidor enormemente poderoso, y Rail permite el desarrollo rápido de aplicaciones de alta calidad.
Stripes es un marco impresionante porque le permite crear su aplicación rápida y fácilmente, sin mantener los archivos de configuración. Normalmente, crea un bean de acción (una clase Java simple) para hacer el trabajo y un JSP para mostrar los resultados. Usted agrega validación con anotaciones. Obtiene la conversión de tipo incorporada para los tipos más comunes, y puede escribir fácilmente sus propios convertidores de tipo. Los interceptores le brindan una manera simple de abordar las cuestiones transversales. En resumen, creo que es uno de los frameworks más simples, intuitivos, consistentes, potentes y flexibles del mercado.
Para el resto de tu stack, realmente depende de ti. Es fácil integrar Spring, Hibernate, JPA, AJAX, seguridad, pruebas unitarias, etc. con Stripes. Si desea ver algún código de muestra que demuestre todo esto, obtenga el paquete de códigos para el libro de rayas y abra el archivo index.html para obtener una lista de todos los ejemplos. De esta forma, puede hacerse una idea de cómo se ve una aplicación Stripes.
¡Mucha suerte en tu proyecto!
Consideré la mayoría de las opciones que todos pusieron aquí: Ruby on Rails, Groovy on Grails, Python / Django y luego el framework Spring MVC en Java. Finalmente elegí Ruby on Rails.
¿Por qué? Primero, necesitaba la capacidad de desarrollar funciones rápidamente y con flexibilidad. Eso no habla a favor de Java. En segundo lugar, necesitaba desarrollar un sitio web, no una aplicación de back office. Entonces la interfaz de usuario no necesitaba ser súper sofisticada. Una simple aplicación CRUD que envuelve la base de datos y la pinta en el navegador fue lo suficientemente buena. Eso descarta definitivamente a Java.
Así que me quedé con un marco de lenguaje dinámico. Probé Groovy. Como no necesitaba interoperabilidad con Java, eso descartó una ventaja a su favor (sí, sé que JRuby es interoperable, pero Groovy aún tiene ''{}''). Después de crear un prototipo de algo en Groovy, noté que las trazas de la pila no siempre eran esclarecedoras para la depuración, y el rendimiento era lento en comparación con mi prototipo de Rails. Eso eliminó a Groovy.
Pensé en usar Python / Django, pero me di cuenta de que sería más difícil atraer a otros, dado el gran volumen de libros en RoR >> Python / Django. Quizás podría haberle dado más consideración a Python / Django, pero era hora de tomar una decisión, y elegí RoR.
Grails ( http://grails.org ) es probablemente el nuevo entorno de desarrollo web más interesante hoy en día. Se basa en lo siguiente:
Primavera
Groovy
Sitemesh
Hibernar
Cuarzo
También es extensible con complementos
Puede ver algunos de los screencasts para tener una idea de la funcionalidad.
http://grails.org/Grails+Screencasts
La única cosa muy atractiva para mí fue que Grails se puede integrar fácilmente en un proyecto Java / JSP existente. No es necesario volver a escribir el proyecto desde cero.
Creo que Ruby on Rails sería una gran opción si no tienes ningún código heredado o si Java no era tu trabajo diario.
Finalmente, me gusta la idea de poder implementar proyectos de Grails en servidores de aplicaciones como Tomcat, WebSphere, Glassfish, etc. Estos sistemas son extremadamente confiables y se adaptan bien.