2009-05-16 14 views
9

No se trata de qué marco utilizar. Aprendí Rails y Django, y escribo todas mis aplicaciones web en PHP. Mi pregunta es ¿por qué molestarse con los marcos? Siempre me ha llevado más tiempo utilizar un marco que reutilizar el código MySQL antiguo y crear "modelos" con phpMyAdmin. También me gusta escribir todo, porque sé lo que está pasando. Todavía puedo reutilizar funciones, etc. y hacer las cosas como quiero, y esta libertad parece faltar en la mayoría de los marcos.¿Por qué usar un framework web (como rieles) sobre php?

No digo que mi camino sea el correcto; de hecho, estoy tratando de descubrir dónde falla mi lógica. La exageración no puede ser solo del aire. ¿Qué me estoy perdiendo?

+0

No explica * por qué * le lleva más tiempo utilizar un marco que escribir PHP. Parece que posiblemente solo está compilando la misma aplicación una y otra vez (¿el mismo SQL para todos?), En cuyo caso tomaría más tiempo comenzar de cero. – Chuck

+8

Esto me ofende. –

+0

@Chuck: Me lleva más tiempo utilizar un marco debido a la sobrecarga y el tiempo de configuración. Con PHP, puedo obtener todo, incluido el HTML y la presentación, funcionando a la vez y (según mi experiencia) más rápido. Como se señala en muchos de los comentarios, esto puede deberse a la falta de experiencia con los marcos. El código MySQL que reutilizo no son las consultas, sino los detalles de la conexión y la plantilla para la interacción básica. La parte de PHP-MySQL es más o menos la misma; las consultas SQL reales son diferentes. @Corban: lo siento. – ankur

Respuesta

21

Los marcos le permiten concentrarse en la aplicación en lugar de preocuparse por el código repetitivo que de lo contrario tendría que escribir para cada aplicación. Le permiten estructurar su sitio de una manera mucho más lógica (principalmente orientada a objetos), utilizando patrones de diseño probados y comprobados como el modelo-vista-controlador. El código en el marco es generalmente más maduro y de un estándar más alto que el código que usted mismo escribiría para proyectos únicos ya que el marco tiene una gran comunidad de desarrolladores que perfeccionan el código perfeccionando el código durante el año. Esto significa que los sitios basados ​​en framework a menudo rinden mejor y son mucho más seguros.

También mencionaste que te gusta escribir cosas tú mismo, sé de dónde vienes. Mi solución a esto fue escribir mi propio marco: reutilizo y mejoré mi código con cada proyecto que hago y conozco todo el código al revés.

4

Creo que una gran parte es en lo que te enfocas. Los marcos estandarizan las partes que no debería tener que volver a visitar, lo que le ayuda a enfocarse en la aplicación como un todo. Si reutilizas tu propio código todo el tiempo, ya estás usando tu propio framework improvisado.

+2

Eso es cierto, pero los marcos intentan reestructurar por completo el funcionamiento de una aplicación web. Esa es la parte que me toma demasiado tiempo. Para las funciones reutilizables, uno podría usar algo como el "Simple PHP Framework" que es solo una biblioteca. – ankur

+0

Yo en segundo lugar. SPF no se interpone en tu camino. Sus libs proporcionan funciones para simplificar el código repetitivo, como la autenticación y la gestión de sesiones, sin forzar ningún patrón de diseño en usted. –

+0

Eso es todo un marco, realmente. Solo un montón de códigos pre-escritos y patrones de diseño. Lo más probable es que ya esté siguiendo sus propios patrones de diseño. – Jarrod

2

Creo que un buen paso para usted es crear su propio marco con el código que ha programado hasta ahora. ;)

Intente hacer que su código sea parametrizable, en otras palabras: cree componentes que pueda reutilizar en diferentes partes de un sitio web (por ejemplo: contenedores con estilos) o en diferentes sitios web (generadores/validadores de formularios).

Incluso puede ir más allá y crear clases base a partir de las cuales amplíe nuevas clases para construir sus sitios web. (por ejemplo: objetos de datos con métodos genéricos de selección/inserción/actualización/eliminación).

apuesto a esto le da la mejor vista sobre por qué marcos son tan condenadamente útil;)

+0

Creo que la gente -1ed esto porque no terminaron de leerlo, jaja. – wbarksdale

-4

marcos están allí principalmente para ayudar a las personas que son semi-nuevo en PHP (o el lenguaje específico que está construido sobre) a ser capaz de crear un sitio web en una medida que sea seguro y fácil de agregar en partes adicionales al sitio sin tener que saber mucho sobre aspectos específicos como seguridad, MySQL (u otros tipos de bases de datos). En mi opinión, es una buena manera de ayudar a romper los codificadores en un idioma, lo que permite el hecho de que el marco no es demasiado complejo, por supuesto.

EDIT La razón por la que digo que son para principiantes es porque yo, como principiante, he utilizado frameworks para dividirme en idiomas mucho mejor.

+4

Tendría -1 si me quedaban votos - la idea de que los frameworks son para principiantes es una absoluta tontería. De hecho, son los desarrolladores más experimentados los que con mayor probabilidad han aprendido la humildad suficiente para dejar de querer reinventar la rueda. –

+0

wow, gracias a todos por la avalancha de votos a favor por compartir cómo me siento acerca de esto desde mi propia experiencia, agradezco sus votos sin comentarios –

+0

@MichaelBorgwardt: No creo que sea una cuestión de experiencia elegir un marco. Quizás es más una cuestión de cómo quiero organizar mi programación. Hay personas que incluso con poca experiencia pueden reconocer la ventaja de un marco. Entonces, ¿por qué este tipo no debería usar un marco? – giordano

3

Su comparación de un marco (Rails) a un idioma (PHP). Un marco le dará componentes preconstruidos para que pueda dedicar tiempo a lo que hace único a su proyecto.

Es posible que ya tenga una base de códigos que ayude a hacer esto por usted. Eche un vistazo a algunos de los marcos de PHP ya que es donde se siente más cómodo.Eche un vistazo a CakePHP, CodeIgnitor y/o Zend Framework.

Si está creando muchas aplicaciones/sitios pequeños, usar un marco puede hacer su vida más fácil.

+0

Llamo a Zend el marco único - es una biblioteca de componentes ... – Eno

7

Si lo escribe puede ser más fácil para usted entender las cosas usted mismo, pero desafortunadamente puede hacer que sea mucho más difícil para otros desarrolladores entender lo que está sucediendo. Los marcos a menudo estarán mejor documentados y tienen una comunidad más grande que puede admitir a un nuevo desarrollador que esté trabajando en la aplicación que usted escribió.

+1

No puedo enfatizar esto lo suficiente. Puede ver la aplicación * ANY * Rails y comenzar a trabajar en ella sin perder tiempo tratando de descubrir qué hace "el framework personalizado de phb de bob". –

1

Tardará más tiempo en utilizar inicialmente un marco por las mismas razones por las que un desarrollador de PHP tardaría más tiempo en utilizar Ruby por primera vez: no está familiarizado con él.

Una vez que esté familiarizado con ellos, los marcos pueden ofrecer la capacidad de omitir lo mundano y concentrarse en escribir realmente las partes importantes de la aplicación.

0

Me parece que ya ha escrito su propio framework en php, ya que menciona la reutilización de código.

Me imagino que es más fácil usar tu propio juego de ruedas en lugar de adaptarte a las de los demás. No hay vergüenza en eso.

28

La idea básica de un marco es permitirle trabajar en un nivel más alto de abstrucción y escribir solo el código que tiene que escribir para implementar sus requisitos específicos. Todas las otras cosas repetitivas son manejadas por el framework, y probablemente con muchos menos errores y agujeros de seguridad que si lo hicieras tú mismo.

Puede sentir que se tarda más tiempo en aprender un marco que simplemente hágalo usted mismo usando las características básicas del lenguaje y las API estándar, pero es simplemente no es verdad - no si el marco es bueno y la aplicación no es trivial , y especialmente no una vez que hayas aprendido el marco (usando uno diferente para cada nuevo proyecto sería por supuesto idiota) y factor en el tiempo que tomaría encontrar y eliminar todos los errores y corregir todos los errores de diseño que hace mucho tiempo sido encontrado, eliminado y corregido en el marco por su comunidad de desarrolladores.

Casi todos los desarrolladores tienen instintos de codificador de vaquero que le dicen "Hacer las cosas usted mismo es mucho más divertido que usar códigos que otros han escrito, y estoy seguro de que soy bueno para hacerlo bien la primera vez, por lo que incluso ser más rápido y mejor! ". Estos instintos casi siempre son incorrectos.

+8

"Estos instintos casi siempre son incorrectos". Ojalá pudiera votar esta respuesta dos veces. ¡Caigo en esta trampa con demasiada frecuencia! –

1

También debe usar un framework basado en PHP como Symfony o CakePHP, ya que su uso debería reducir considerablemente el tiempo de producción.

Una razón para usar un trabajo de marco es la separación de código. Tome Symfony por ejemplo. El modelo está todo hecho con bibliotecas propel o doctrine. Se necesita muy poco SQL. Instancias un nuevo objeto y getters y setters de usuario, para almacenar tus datos, y en lugar de escribir SQL en tu código de página, creas funciones en los objetos relacionados con la consulta. Cuando necesite acceder al mismo tipo de datos en las diferentes páginas que está solicitando al modelo, mantenga la lógica de negocios con el modelo donde debería estar, para que nunca haya diferencia. Todo el trabajo se realiza en la "función de controlador de acción". Obtienes todos los datos que necesitas, y luego pones tan poco php en la pantalla, básicamente haciendo eco de las variables que obtuviste en el controlador de acción, (con la excepción de algunos bucles for y declaraciones para condicionales. He encontrado esto más forma eficiente de codificar, y en mi segundo proyecto vi que el tiempo de producción se reducía a la mitad.

No necesitas aprender un nuevo idioma python/ruby ​​solo para usar un gran framework, solo tienes que buscar uno que funcione para tú.

1

En primer lugar, PHP también tiene marcos, por lo que la pregunta tal como dice falla al punto.

Sí, puedes escribir tu propio marco, y como dijo Kris, no hay vergüenza en eso. Sin embargo, parte del apalancamiento de la reutilización del código es el valor colectivo de los esfuerzos de muchos. No se trata solo de reutilizar tu propio código. Los marcos encapsulan las tareas y patrones comunes que todos compartimos y brindan soluciones bien probadas con muchas iteraciones de mejoras de la comunidad. Ningún esfuerzo individual va a estar a la altura de eso, sin importar quién es usted.

Si rueda el suyo, solo se convertirá en una clase mundial debido al esfuerzo colectivo de las personas de clase mundial, y eso solo sucederá si su idea merece la atención. Los mejores frameworks ya están probados en esos criterios.

DHH es un tipo inteligente, pero los Rieles que tenemos hoy en día nunca podrían haber sido realizados por él solo. Ni siquiera cerca.

Si le gusta "escribir todo usted mismo" como usted dice, elija un marco con una filosofía central que coincida con la suya y comience a hacer contribuciones fundamentales en las áreas en las que puede mejorar.

1

Según las funciones de su aplicación web, puede ser más rápido desarrollarse sin un marco. Por ejemplo, cuando Webapp es solo un tipo de visor de datos.

Pero tan pronto como empiece a implementar funciones más avanzadas, será mucho más eficiente con un marco.

prueba no hacerlo desde cero: - validación de la forma apropiada - Manejo de múltiples idiomas y la fecha/hora de formato - Autenticación

Ver un marco de herramientas libres y su función implementada estable para su uso.

Cuestiones relacionadas