2009-03-27 18 views
5

¿Cuál es el mejor método para entender cómo y por qué se escribió un framework de la forma en que fue?Understanding Frameworks

+0

No estoy de acuerdo con su definición de marco. Creo que puedes tener un marco lógico sin escribir una sola pieza de código de framework o tener abstracción alguna. Templating? Ese no es el trabajo de un framework. –

+0

Quizás, pero por el bien de esta discusión podemos suponer: http://en.wikipedia.org/wiki/Software_framework http://en.wikipedia.org/wiki/Web_application_framework – GeekJock

Respuesta

14

Desarrolle una función para él, o corrija un error. Si utiliza el marco para desarrollar una solución del mundo real, puede hacer una lista de deficiencias en la dirección o características para agregar que facilitarían su tarea.

Reparar un error realmente lo ayudará a comprender el código, porque la mayoría de las veces se le da un código de ejemplo que lo recrea, que luego puede rastrear hasta las entrañas del infierno para encontrar dónde van las cosas mal.

Todo lo que se necesita es persistencia, de verdad.

+0

Así que visita el rastreador de errores, elige uno interesante, y abordarlo? – GeekJock

+0

Sí, eso es todo lo largo y corto de eso. –

6

Tome un componente muy simple y analice el código. Por ejemplo, mire algunos de los componentes de Zend Framework (algo completamente simple como Zend_Version o, para aumentar un poco pero aún así mantenerlo simple, Zend_Debug). Selecciónalos y ve lo que los hace funcionar. Luego, intente escribir su propio componente simple.

1

Estás en el camino correcto. Solo recuerda que Roma no fue construida en un día. Cada casa está construida durante un período más largo, ladrillo por ladrillo.

Al utilizar un marco, descubrirá algunas de sus deficiencias y podrá encontrar algunas funcionalidades que faltan o que necesitan mejoras.

Comience allí, desarrolle la mejora y envíela a la comunidad de frameworks para su revisión por pares. Incluso si deciden no incluir su trabajo en el marco, recibirán comentarios muy valiosos sobre su trabajo.

No te detengas allí, utiliza lo que aprendiste en tu primer intento para una segunda (y una tercera, cuarta, quinta ...) De esa manera aprenderás a comprender lo que otros esperan del marco (que podría difieren mucho de tu propia expectativa), y lentamente entienden el funcionamiento interno de la propia estructura.

Conclusión: Sea paciente y persevere. La comprensión seguirá. (Suena esotérico, lo sé. Pero puede funcionar!)

2

Sé que el mundo necesita a otro como que necesita un agujero en la cabeza, pero escribir su propio marco es una excelente forma de aprender un idioma. Escribí uno bastante completo en PHP en menos de quince días y aprendí muchísimo sobre PHP y desarrollo web en el proceso.

La única razón por la que no lo he lanzado es porque finalmente no estaba contento con la manera en que administraba el estado de la sesión, ¡pero también fue una buena experiencia de aprendizaje!

Creo que la manera de comenzar el diseño del marco es anotar alrededor de 5 objetivos básicos para él.Por la mía, estos fueron:

  • dirigido a producir aplicaciones web sencillas con una docena de forma
  • dirigido a personas con un buen conocimiento de SQL
  • sin PHP código de procedimiento o de otra manera (a excepción de que, en SQL SP)
  • sin necesidad de programación HTML/Javascript/CSS necesarias
  • aplicación descrita en XML
  • a trabajar en un PHP vainilla/Apache pila
  • no ma estado mantenimiento en el servidor

Eso fue suficiente para comenzar.

La otra sugerencia que puedo hacer es tratar de crear una aplicación utilizando el framewark al mismo tiempo que construyes el framework. Esto revelará problemas rápidamente y sugerirá ideas para nuevas direcciones y funciones.

1

Hay una serie de cosas que la mayoría de los marcos incluyen, aunque la definición es borrosa.

  • Proporcionar un programa previo básico (administrar la configuración, el entorno de configuración, compruebe si hay problemas de compatibilidad entre versiones de PHP, etc.) de enrutamiento
  • URL - Cómo definir reglas para que apuntan a las páginas URL.
  • Administrar complementos, bibliotecas, módulos, etc. ORM
  • base de datos - Manipular objetos en lugar de escribir consultas SQL (simplificado)
  • de Plantillas - Por lo general, implica la creación de un mini-lenguaje para la lógica de la plantilla (bucles, condicionales) para evitar tener código PHP en la plantilla en sí.

Más allá de esto, la mayoría de los marcos también incluyen una gran cantidad de bibliotecas, desde las sencillas e-mailing hasta las avanzadas API del servicio web.

recomendaría dos marcos para mirar:

  1. Codeigniter

    recomiendo esto porque es un marco "pilas incluidas" que funciona fuera de la caja. También tiene una gran comunidad, muchas bibliotecas de terceros. CI tiene un poco de engaño para hacer que el framework funcione bien con PHP4 y PHP5, lo cual también es bueno saber (porque, por alguna razón, mucha gente todavía usa PHP5). También debería echar un vistazo a KohanaPHP, que es una rama de CodeIgniter que se ha reescrito como un marco PHP5 estricto.

  2. Zend Framework

    Zend es un marco basado en módulos. En lugar de dejar todo en un directorio y generar páginas, usted elige las partes que necesita y las pega por su cuenta. Dado que Zend está hecho por la gente que está detrás del motor detrás de PHP (¿está confundido todavía?) Utiliza "lo último y lo mejor" de PHP5: todo está orientado a objeciones y utiliza sugerencias tipo. Código muy limpio, si es un poco detallado.

creo que el material esencial es el programa previo (el "pegamento" para el marco), así como la forma en que cada marco implementa un sistema de apoyo a las bibliotecas hechos por los usuarios y los plug-ins. El resto lo puedes encontrar como aplicaciones independientes en otro lugar.

3

Después de hacer muchos sitios web 'desde cero', me encontré reutilizando los mismos guiones una y otra vez, y encontré algunas cosas tremendamente tediosas porque nunca me molesté en abstraerlas antes para volver a usarlas. Por lo tanto, si tiene experiencia en la creación de sitios web, debe tener una buena idea de lo que debe incluir su estructura. De lo contrario, probablemente comenzaría por pensar en una estructura de archivos MVC, conseguir que tu estructura funcione primero con vistas, luego con controladores y luego con modelos. Luego, asegúrese de que cada uno de ellos sea fácilmente extensible porque no importa cuánto lo intente, siempre habrá cosas que faltan ... y luego simplemente empiece a abofetear las utilidades cuando las necesite (formadores, ayudantes de modelo, etc.). En otras palabras, proponga un proyecto para el cual le gustaría usar el marco y cree el marco y el sitio web al mismo tiempo.

+0

No sé si necesariamente quiero escribir mi propio marco ... aunque parece que ganaré mucha experiencia haciéndolo. – GeekJock

+0

Vaya. Me metí en las otras respuestas y olvidé que esa no era tu intención: p De todos modos, te daría una buena idea de dónde vienen algunos de estos marcos. Comencé a desarrollar para CakePHP leyendo primero la documentación, construyendo medio sitio web y luego dándome cuenta ... – mpen

+0

... había algunas lagunas en el marco que podía llenar con algunos de mis propios módulos. Un buen marco de trabajo admitirá complementos (como mencioné): intente descargar un complemento de terceros y vea cómo lo integran; luego, puede intentar crear el suyo propio si lo desea o lo necesita. Es un poco menos ... – mpen