2011-06-22 6 views
5

Soy nuevo en el mundo de la programación web, he presentado algunas reglas generales para el diseño de mi primer proyecto. ¿Suenan como reglas razonables para seguir, o debería mi código para varios aspectos del proyecto mezclarse más o menos, u organizarse de manera diferente por alguna razón? De los dos libros que he leído relacionados con la programación web (uno en HTML & CSS, el otro en PHP & MySQL), ninguno de los dos ha tratado claramente esto. Cualquier opinión de desarrolladores web experimentados será muy apreciada.Reglas generales para separar partes de una aplicación web

Reglas de oro:

  1. Para el contenido relativamente estática, usar PHP para generar páginas (es decir, llenar una noticia), de modo HTML y PHP se mezclan sólo un poco aquí.

  2. Para funciones dinámicas, implemente como API de texto plano/XML para que PHP back end no esté mezclado con ninguna lógica de presentación (es decir, una API/servicio del lado del servidor implementada sin conocimiento de presentación, un cliente AJAX se desarrolla y se presenta al usuario)

  3. Determine cómo dividir el cliente AJAX en diferentes páginas según el deseo del usuario de poder marcar una página y navegar con el navegador.

+0

cada uno tiene su propia opinión.Si usted es un programador OO, puede ver el patrón de diseño MVC recomendado en todas partes. esto separa el enrutamiento, la lógica de negocios y la visualización y parece funcionar bastante bien para muchos. Es posible que también desee buscar marcos libres que ya impliquen este patrón de diseño (Zend Framework, CodeIgniter, Kohana). Es posible que desee consultar libros sobre patrones de diseño y desarrollo ágil, ya que ayudan a mantener su código maleable. – dqhendricks

Respuesta

1

Consulte el MVC pattern para aplicaciones web. No necesita recurrir a XML/texto sin formato para separar la presentación de la lógica. El uso de un marco PHP como Symfony o Cake puede ayudar.

Puede ser mejor desarrollar primero una aplicación web usando HTML y luego rociar un poco de AJAX para que su aplicación tenga un retroceso si AJAX falla, p. dispositivos móviles.

Esperamos que ayuda

+0

¡Gracias por la respuesta rápida! Parece que el patrón MVC es el camino a seguir aquí. Revisé la primera sección de la documentación de CakePHP. Parece que, con el modelo MVC, puedo generar páginas con contenido completo del lado del servidor y optimizar fácilmente la experiencia del usuario haciendo que otra vista que genere XML/texto plano (según la complejidad de los datos) sea procesada e insertada en estilo AJAX. ¿Sugiere tener un sitio alternativo de solo HTML sin las optimizaciones de AJAX para dispositivos móviles? –

1

Es posible que desee investigar la MVC Pattern que es una gran manera de organizar las aplicaciones y separar la lógica del controlador de la lógica de presentación.

Algunos marcos populares PHP MVC incluyen:

Un marco más "difíciles" (pero la que más me gusta), es Kohana

Yo recomendaría comenzar con uno de los primeros dos.

+0

Recomendaría CodeIgniter sobre CakePHP, es más rápido, más pequeño y más simple. – timw4mail

+0

@ timw4mail CodeIgniter suena bien (menos "automágico", menos configuración y quizás más rápido). Noté en el sitio CodeIgniter que tienen un "¿CodeIgniter es correcto para mí?" lista que tiene "No está interesado en bibliotecas monolíticas a gran escala como PEAR". No entiendo qué tiene que ver el uso de PEAR al seleccionar un marco ... –

+1

Un framework como CodeIgniter viene con un montón de bibliotecas, básicamente dicen "¡Nuestras bibliotecas son mejores que las bibliotecas PEAR!" sobre lo que realmente no tengo una opinión. (Nunca usé CodeIgniter) – LainIwakura

1

Sitios pequeños y estáticos: solo HTML, o PHP con encabezado y pie de página incluidos, y funciones comunes.

más complejo: MVC marco que separa Vistas (plantillas), modelos (las llamadas bases de datos y manipulación de datos), y los controladores (Página enrutamiento)

AJAX: framework MVC en el backend, rutas de página especiales para obtener datos de la página (verifique los encabezados correctos), history.pushState w/hashbang backup para cargas parciales de páginas. Dependiendo de la complejidad, quizás tener plantillas del lado del cliente.

+0

Al principio debería haber notado que he estado trabajando principalmente en PHP, HTML y CSS y que acabo de empezar a buscar en JavaScipt/AJAX y estoy tratando de descubrir cómo encajan todas las piezas muy bien. Parece que buscar en un marco MVC es el siguiente paso. Para su punto final, ¿entiendo correctamente que las URL de history.pushState/hashbang son una forma de permitir al usuario navegar como de costumbre y marcar mientras usa una página controlada por AJAX? Además, ¿alguna sugerencia sobre dónde buscar información de plantillas del lado del cliente? Suena como que eso es lo siguiente para aprender después de un marco MVC. ¡Gracias! –

+0

Solo recurriría a la creación de plantillas del lado del cliente si tiene una estructura de disposición extremadamente compleja y necesita reemplazar partes de páginas muy complejas. En general, el envío de HTML para reemplazar diferentes secciones de la página suele ser suficiente. – timw4mail

+1

La API de historial le permite cambiar la URL de la página y mantener el botón Atrás trabajando con cargas parciales de página. Le permite usar las mismas URL con y sin javascript. Las URL Hashbang son un truco que te permite tener una URL que funciona con el botón Atrás, pero es inútil sin Javascript. Actualmente, Internet Explorer y Opera no son compatibles con la API de historial. – timw4mail

Cuestiones relacionadas