Inicios - Proyecto web

HoTiTo

Hola señores,

Me he encontrado en la tesitura de emprender un proyecto web algo gordo, muy a lo social como está ahora de moda.

El caso es que hace años y años y años que no programo nada para el ámbito web y la cosa ha cambiado bastante. En mis tiempos usaba Notepad, HTML/XHTML, CSS para algunas cosillas, PHP, y JS para cositas concretas.

Ahora, llevo unos cuantos días documentándome y estoy intentando hacerme un esquema mental de lo que voy a usar. Tengo claro que probablemente vaya a usar HTML5, pero me asaltan dudas sobre la compatibilidad, ¿es buena esta opción o debería pensar en todos aquellos que no les sale de los cojones actualizar su navegador?

Por otra parte, no sé si usar un framework para PHP. He estado echándole un ojo a Zend y a Yii, pero no tengo claras las ventajas que me pueden aportar. De toda la vida, PHP lo he codeado a pelo y por lo que he leído, ahora la gente tira mucho de este tipo de librerías. Sé que generan código, ¿pero no perderé más tiempo retocando ese código generado para mis necesidades que creándolo yo directamente?

jQuery, ¿me lo recomendáis?

Gracias!

xCoNDoR

Hola, HTML5 de momento no está muy soportado en la "sociedad", por lo que no es recomendable si va a ser un proyecto para mucha gente, en cambio si es para lo personal, estaría bien porque aprenderías bastante sobre el futuro de las paginas web.

Yo ahora mismo utilizo CodeIgniter como framework PHP, me parece un framework genialísimo, los que tu nombras no los conozco.

HoTiTo

¿Qué te aporta CodeIgniter? Tienes que enfrentarte por ejemplo a un problema que debes resolver en PHP, ¿utilizas código ya generado por CodeIgniter? ¿Utilizas simplemente sus APIs? ¿Cómo va el tema? xD

Edit: Buena respuesta con lo de HTML 5, lo que me suponía. ¿XHTML de toda la vida entonces? xD

1 respuesta
scumah

De php y frameworks no tengo ni idea, pero pudiendo usar un framework, yo no lo dudaría, te quitará un montón de tiempo de encima. Y en cuanto al HTML5 mejor no lo uses aún si pretendes que entre mucha gente, así que sí, XHTML de toda la vida. Si quieres usar aunque sea las etiquetas HTML5 (article, aside, header...), usa la librería modernizr para que funcionen, aunque yo no me comía la cabeza. En cuanto al JS, sí que te recomiendo jQuery, que pocas webs no lo usan ya xD

HoTiTo

Bien bien, voy enterándome un poco de como va la vaina.

Ando mirándome los vídeos-tutoriales de CodeIgniter y empiezo a verle el encanto. Pero supongo que requerirá un tiempo previo de documentación para coscarse de todas las bondades del framework.

Uno de los requisitos de la web es que sea escalable. Se pretende que sea usada por miles y miles de usuarios a la vez. ¿Alguno ha tenido alguna experiencia con Memcached? Tengo entendido que alivia el estrés de las base de datos.

B

jQuery sin duda, para la excesiva carga de contenidos...que ni pintado

Personalmente te recomiendo Symfony para desarrollar, pero yo suelo ir un poco más allá con él, y no me acoto los límites tanto como otra gente, pero para mí suficiente.

El tema de HTML5 ... aún está verde (por desgracia). Aún así hay gente ya haciendo cosillas y algún tutorial que vi en su día. COmo dicen por ahí arriba, tira de lo que existe si es para mucha gente, si es para ámbito más privado puedes comenzar con HTML5, te lo agradecerás en un futuro :)

Mucha suerte ;)

xCoNDoR

#3 Basicamente CodeIgniter, yo que "no se mucho de php", me hace programar perfectamente una pagina web, sin tener que saber php, por decirlo de alguna forma. Con verme 2 o 3 video-tutoriales aprendí a crear casi cualquier tipo de sitio web dinamico, con mas o menos problemas.
De momento no he hecho nada grande, ando haciendo pruebas metiendole jQuery, haciendo sistemas de usuarios, de amigos, de noticias.. etc. (Aun estoy "aprendiendo"), y la verdad que cada día me gusta mas, por su sencillez y facilidad.
A diferencia de Symfony, un grandisimo framework para el que le dedique muchisimo tiempo solamente a aprenderlo y tenga grandes conocimientos de php, CodeIgniter lo aprendes en 5 minutos, sin tener grandes conocimientos de php

eisenfaust

Si quieres hacer tu proyecto en PHP ni te lo pienses y usa Codeigniter, te lo dice uno que odia PHP.

Si quieres probar con otros lenguajes te recomendaría que le eches un vistazo a frameworks ligeros como Sinatra (Ruby), Mojolicious (Perl) o Snap (Haskell). Los frameworks como Django, Catalyst y RoR están de moda pero terminarán dándote problemas en el futuro, especialmente éste último.

1 respuesta
HoTiTo

Tomo nota. Me he decidido por CodeIgniter, es el que más claro he visto. Y luego XHTML + jQuery.

Sobre Memcached, ¿alguien sabe algo?

scumah

#8 ¿Porqué dices que RoR dará especialmente problemas en el futuro?

1 respuesta
HoTiTo

#10 Tengo entendido que escala mal, lo leí hace tiempo. Pero sinceramente, no sé más del tema. No he visto nada de RoR la verdad.

1 respuesta
Letto

No te lo tomes a mal pero por mi experiencia en el desarrollo webo es imposible que una persona sola se enfrente a un proyecto así por su cuenta abarcando todo programación, maquetación e infraestructura técnica (escalable, etcétera).

Si encima dices que hace años que ni tocas el desarrollo web y va a ser tu primera prueba con un framework...

No quiero desanimarte y es cojonudo que te recicles y aprendas pero el cliente debe ser consciente que no va a tener una super red social escalable si su presupuesto solo le da para contratar a una persona con perfil júnior.

1 respuesta
Josepanaero

Aprovecho que se está hablando de CodeIgniter para hacer una pregunta: yo nunca he usado CI, pero parece bastante interesante. En términos de sencillez y velocidad de creación de una página web, ¿por qué elegiríais CI antes que Drupal, por ejemplo?

Creo que para la creación de una web "estándar", con Drupal se hace mucho más fácil y sencillo. Además también tiene mucha potencia para modificarlo y adaptarlo a tus necesidades. CI parece más ligero y flexible, pero a no ser que tu página web sea muy "especial", no veo ventajas sobre Drupal. ¿Alguien me puede señalar alguna de estas ventajas?

Salu2.

1 respuesta
VipeR_CS

#13 Desde el desconocimiento hablo, pero me da que estás comparando churras con merinas. Drupal es un CMS, la web ya viene hecha y tú la modificas. CodeIgniter es un framework, como lo es jQuery para javascript. Simplemente te facilita (o eso dicen) la programación en php.

1 respuesta
Josepanaero

#14, sí, es cierto, pero eso no invalida mi pregunta. Quizá no me haya explicado bien... Intentaré poner un ejemplo: digamos que queremos hacer un blog en el menor tiempo posible. ¿Por qué usar CI en lugar de Drupal? Drupal ya te viene con los módulos más usuales implantados: sistema de usuarios, comentarios, etc. Además te permite crear formularios personalizados de forma fácil y rápida, así como nuevas páginas, etc.

Esto lo pregunto porque no se me ocurren muchos casos en los que usar CI en vez de Drupal. Estoy seguro de que los hay, pero creo que son demasiado específicos. Por eso pregunto, porque estoy viendo que la gente usa CI, y me gustaría que diesen algunas razones de por qué lo usan en lugar de usar Drupal, por ejemplo.

Un saludo.

Tunnecino

Yo estoy haciendo algo más o menos como lo que tu planteas, quizás para abarcar un poco menos de los que tu comentas, pero algo así.

Empecé a programar la web yo a pelo, y ahí sigo. La ventaja de hacerlo por tu cuenta es que más o menos tienes total control de lo que programas. Te evitas incompatibilidades entre los diferentes módulos o extensiones de la web. Por otro lado, la verdad es que tienes las posibilidades más limitadas... quizás no limitadas, pero si mucho más complejas. Algo que con el framework de turno, ya sea CodeIgniter, Symfony, Zend, etc... te llevaría minutos, hay cosas que te pueden llevar horas.

Desde mi punto de vista, hay veces que me arrepiento de no haber usado un framework, y otras veces que me enorgullece el haber terminado o solucionado un error o carencia por mi cuenta.

Ya nos contarás que decides al final.

1 respuesta
HoTiTo

#12 No estoy solo, somos 4 personas con tareas y roles bien definidos. Estamos en la parte del diseño (que no diseño web), y digamos que andamos en las primeras fases: elegir con qué lo vamos a hacer, cómo lo vamos a hacer, dónde lo vamos a hacer, adaptar el servidor, hacer los diagramas de las tablas de la bd, el diagrama de clases, requisitos de usuario, casos de uso, etc. Toda la mierda burocrática.

Quizá por mi carrera esa tarea ha sido delegada en mí porque tengo más experiencia en esos ámbitos, pero vamos, por suerte no estoy solo xD

Aunque la programación web tiene su intríngulis, realmente tampoco es tan diferente. Todos los frameworks usan el modelo MVC y sólo es documentarse de la forma de trabajo de las diferentes APIs que traen. Vamos, como en la programación de escritorio de toda la vida.

#16 Ese fue uno de los dilemas que tuve al principio, exactamente el mismo. Al final me incliné por la opción del framework porque vi claras ventajas, ahorro de tiempo es la primera de ellas como dices tú. Si para programar en otros entornos utilizo frameworks, aquí no debería ser una excepción.

En cuanto a la elección de CI, digamos que ha sido el que más claro y "limpio" he visto. Estuve viendo los videotutoriales y me gustaron, además de toda la comunidad que tiene detrás claro.

Obviamente no encontraré soporte para TODO lo que quiero hacer, pero eso no es problema. De lo que no se pueda tirar del framework se hace a pelo y ya está.

Kaos

Me parece que os habéis metido en un marrón (vosotros y el cliente). Espero que nos cuentes como va el proyecto en unos meses. Suerte.

scumah

#11 Que yo sepa, eso se dice porque twitter (Hecho en RoR), estuvo 3 días o así caído y echó la culpa a las decisiones tecnológicas que había tomado. La gente se hinchó a escribir que twitter se caía por culpa de RoR, se especuló que se iban a migrar de lenguaje, pero nadie pensó que el modelado y ciertos comportamientos de la aplicación no estaban bien pensados. Ahora resulta que twitter sigue teniendo una gran parte hecha en RoR. Ahora, yo tampoco sé de buena mano como escalará, pero si haces un bueno modelo y preparas tu aplicación para que sea escalable, no debe haber ningún lenguaje que no se pueda escalar bien, más bien habrá arquitecturas de aplicaciones que no escalen bien...

O también puede ser que me esté columpiando tres pueblos y me equivoque en todo lo que he dicho xD

1 respuesta
HoTiTo

Como ya dije, normalmente trabajamos desarrollando otro tipo de aplicaciones, no para entornos web. Pero el encargo es un favor a una persona de confianza, que además ha retribuido bastante bien el proyecto. A cambio, los períodos de entrega son bastante holgados y la única dificultad que veo es la documentación inicial, que hemos tenido que hacer ya otras veces para otros proyectos con requisitos concretos.

#19 Hombre, cada lenguaje tiene sus limitaciones xD Hay lenguajes más preparados/orientados a unas determinadas tareas que otros que pueden ser más de propósito general. En el caso de Ruby, ya te digo que no tengo ni idea. De hecho, sabía que Twitter estaba creado con RoR pero no tenía ni idea de lo de la caída.

eisenfaust

Ruby es un juguete xD

Expired

Estaba probando el CodeIgniter pero no me aclaro a usar el framework.

Estoy mirando la guía de usuario, pero no termino de enterarme bien.. soy un ceporro.
Ya lo tengo instalado en mi servidor apache en local ahora que..

2 respuestas
HoTiTo

#22 http://codeigniter.com/tutorials/

Para entenderlo lo mejor es tener claro el patrón MVC http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Expired

Ok ya voy entendiendo la filosofía, pero no logro entender como alguien ha podido decir que sin tener mucha idea de PHP puedes desarrollar algo en CI. Vale que es una gran ayuda, pero si no sabes php te va a quedar de lo más limitado..

1 respuesta
Tunnecino

#24 No te creas, yo la pega que le veo a los frameworks es que al final todos hacen lo mismo, porque, sin ofender a nadie claro está, una vez empiezas a usarlo, basas tus proyectos en ellos.

No digo que eso sea malo, puede que todo lo contrario, pero a mi me parece que eso puede llegar a limitar lo que tu quieres hacer, y acabas haciendo "lo que puedes hacer".

2 respuestas
MTX_Anubis

#25 podrías poner un ejemplo de cómo afecta a la limitación un framework? :P

HoTiTo

#25 Eso depende de muchos factores, como por ejemplo que tengas una idea clara y estructurada al principio sobre lo que quieres hacer y que sepas el lenguaje que estés usando con el framework.

Dependiendo del tipo de proyecto, siempre habrá cosas que tengas que currártelas por tu cuenta ya que es imposible que un framework lo abarque todo. Aunque claro, si me hablas de blogs pues sí, te doy la razón.

BLZKZ

#22 http://www.mediavida.com/foro/9/introduccion-mvc-php-codeigniter-405496 ;)

Lo que no entiendas preguntalo tambien en ese hilo

HoTiTo

Omg, ahora me encuentro con Google App Engine y me hace dudar de mis elecciones previas xD

¿Alguien ha usado este servicio?

http://code.google.com/intl/es/appengine/docs/whatisgoogleappengine.html

Los precios son bastante competitivos, la ampliación y la escalabilidad de las infraestructuras se hace de forma transparente para el usuario y te olvidas de muchos problemas que de otra forma tendrías que afrontar con tus propios servidores dedicados.

Como inconveniente, que hay que usar Java o Python, que la base de datos no es relacional (BigTable/MongoDB) y que supongo que habrá un proceso previo de documentación para enterarte de como va todo el rollo del App Engine.

¿Merece la pena por encima de los inconvenientes? El dilema es si el combo PHP + MySQL podrá enfrentarse bien a una gran demanda sin acusar pérdida de rendimiento gordo.

PiradoIV

La idea de Google App Engine está bien, pero al intentar tirar de Framework (en su momento lo intenté con Django y desistí) es medio coñazo, además, en general y si tu proyecto no pasa de X uso te sale gratis... es una muy buena forma de probar y poder escalar sin problemas. Ahora bien, échale tiempo para programar a su gusto y tirar de su documentación, tanto si usas Java o Python.

  • Sí a lo de usar un framework PHP (¡CodeIgniter!)
  • Sí a jQuery
  • No a centrarte en HTML5 de momento (<audio> y <video> está en pañales, en el sentido de compatibilidad con los codecs, etc)
  • Lo mismo que comenta Letto por ahí arriba, meterte en un proyecto así sin haber probado previamente lo que sea que vayas a usar (tanto un framework PHP, Google App Engine, lo que sea), es una putada y te vas a hartar a reescribir código a medida que vayas aprendiendo

Sobre lo que comentas de si PHP podrá enfrentarse bien a una gran demanda sin acusar pérdida de rendimiento gordo... MediaVida está hecha en PHP y MySQL (y los polvos mágicos de Beavis, que si no no sería lo mismo xD), Facebook tira de PHP (con optimizadores y todo lo que tú quieras, pero PHP), ni idea de la DB que usan.

1 respuesta