Primeros pasos con CodeIgniter
Ya sé que no lo has utilizado, por eso te paso un enlace para que veas entre el minuto 20 y el 22. En principio el "locutor" dice que se ahorra tiempo, pero no sé como, ya que lo que hace es un copy-paste, igual que se puede hacer directamente con la etiqueta html ... <form ... > </form>
De momento con este ejemplo sencillo le veo más inconvenientes que otra cosa ...
El enlace es este:
Lo que pasa es que lo ves complicado porque estás dentro de la curva de aprendizaje.
No te voy a evangelizar sobre que forma de programar es mejor, y menos contigo que tienes formas diferentes de ver las cosas, como en la pregunta anterior que consideraste que mantener una configuración centralizada "no te daba libertad".
Por lo que veo en el ejemplo. La mejora está en que estas trabajando con objetos, por lo que puedes manipular cada elemento del formulario de manera independiente desde la capa de negocio sin pasar a la capa de diseño.
Si lo ves desde "mas arriba" estás trabajando de manera modular y podrías ordenar tu código reutilizado formularios que desde html no podrías (solo copiando y pegando).
Otro beneficio que encuentro, es la creación de librerías de objetos que te ayuden con ciertas tareas tediosas o repetitivas.
Entiende que en esta parte del aprendizaje, tienes que tener algo más de "soltura" ya que estas haciendo competir internamente en tu mente, tu forma "anterior" de hacer las cosas sobre el desarrollo con frameworks (como te ha pasado hace un tiempo con jquery), y siempre encontrarás que la forma que tienes actual de trabajar es mejor y más fácil que la nueva, porque la nueva la desconoces y esa no es la idea. No te hagas fan de las formas de hacer, mejor consideras diversas formas de realizar tus productos.
Pensaba que había cerrado este hilo ...
Por la manera de contestar que tienes me da la impresión de que no utilizas framework ¿es así?
Respecto a lo de la base de datos centralizada, debo aclarar una cosa. El "problema" estaba en que tiro de internet, y te dicen de hacer esto y lo otro directamente en los ficheros (p.ej con el notepad) ... que si, pero no, es como si no contasen con un IDE, esto es p.ej, y en mi caso Netbeans, desde el IDE, puedes editar esos ficheros tal cual si fueran tuyos, no se si me explico ...
Si, es cierto, estás trabajando de manera modular, pero eso YA LO HACIA YO, si te dedicas a esto de programar, terminas organizándote si o si, y yo, en todos mis proyectos, tienes una parte de acceso a la bd, otra de "reglas de negocio" y la de "pantallas" (vistas o como quieras llamarlo), y evidentemente tengo librerías con funciones propias ... por lo que la programación modular no me es ni de lejos desconocida.
El framework, usar un framework, es utilizar la forma de trabajar de otro, no la tuya, en cierta manera es unificar la manera de trabajar de toda la comunidad que adquiera ese framework, ¿las ventajas? ... que vendrá alguien de fuera, y podrá coger sin problemas lo que yo he hecho y al revés ... Si no utilizas framework, si te vas de la empresa, el que venga lo pasará "mal" porque, evidentemente, no sabe tu forma de trabajar.
El ejemplo del video, no me ha terminado de gustar, hay 4 o 5 videos más del autor, pero que no me han convencido, he encontrado dos páginas, más sencillas, mucho más sencillas, que ponen un ejemplo muy básico, pero es lo que se necesita al principio.
Lo que me vienen dudas ahora de una serie de cosas, p.ej, el manejar los errores de conexión, no sé como queda eso, ya que por ejemplo en estas lineas ... :
function obtener_favoritas(){
$query=$this->db->get('favoritas');
return $query->result_array();
}
se llama a la tabla de "favoritas" y se recupera un array con todos los registros ... pero ¿que pasa si no existe la tabla indicada o la base de datos está caída? ... con "mi" sistema, que lo hacía todo a pelo podría utilizar aquello de mysqli_errno ... y controlarlo, pero ahora que mediante "get" te lo retorna todo no sé como debe quedar ...
<a>http://www.adwe.es/codigo/tutorial-codeigniter-1o-parte-modelo-mvc-y-primeros-pasos</a>
Estos son los dos enlaces que te digo que aclaran, con un ejemplo muy básico como trabajar ...
Siento que cada vez que me respondes te estas respondiendo de mejor manera a ti mismo.
Y es claro que la necesidad de organizarse está pensada de esa forma. La gente que hace frameworks no piensan en que todos los programadores son como "tu" y que todos los proyectos van a tener a uno o a lo más dos programadores sobre el mismo desarrollo, que usarán tu misma silla o tu mismo ide e incluso tu mismo modelo de computadora.
La idea del framework es unificar sobre una base para que equipos de desarrollo puedan trabajar en conjunto, bajo las mismas prácticas (de hecho muchas especificaciones de frameworks utilizan patrones e instructivos de codificación para esas buenas prácticas).
Yo no utilizo frameworks actualmente pero si he trabajado con otros hace un tiempo, por lo que conozco las cosas que me comentas, y te reitero. Tienes que abrirte más de mente para aprender y dejar de pensar en como haces tu las cosas porque si no, entrarás en conflictos tal cual estás ahora pensando en que un framework nunca será mejor que tu trabajo actual.
En la informática no hay mejores o peores, solo hay diferentes formas de hacer las cosas en función del propósito por el cual las herramientas (o tecnologías) fueron creadas.
Hay que pensar que el framework está hecho para personas que no son organizadas (yo he visto desarrollos de chicos que recién salen de sus carreras que te harían desmayar), que no usan directamente tu ide y que necesitan que ese desarrollo sea llevado a cualquier otro servidor y arquitectura de la manera más simple y ahí entraríamos a discutir si empaquetar el software y unificar configuraciones sería un beneficio o no...
Te reitero, piénsalo de una manera abierta (deja tu punto de vista y piensa en empresas o en chicos que están recién saliendo, en otros desarrolladores), si no, es mejor que sigas en lo tuyo (bajo tu forma de organización y creación) y no intentes estudiar esto, porque en vez de aprender, harás competir tecnologías, te harás competir frente a la comunidad de desarrolladores, y no tiene sentido hacerlo así, es perder el tiempo. Es como ver una película buscando los errores de continuidad, al final dejas de disfrutar el arte por estar buscando detalles, y en el caso de los frameworks si fuesen tan malos no existirían tantos y no estarían apoyados por comunidades y menos serían utilizados en proyectos profesionales.
Si me das unos minutos podré analizar lo de tu error de script.
Tu primera frase no la entiendo: "Siento que cada vez que me respondes te estas respondiendo de mejor manera a ti mismo." ... pero da igual.
Comentarte, si tu has visto código que me harían desmayar de personas recién salidas de la universidad, yo te podría decir que he visto código que no te haría desmayar sino entrar en coma profundo, ya que no era de principiantes sino de gente que llevaba AÑOS programando, solo un ejemplo: todo el código alineado a la izquierda, sin espacios sin márgenes ... si si ... tal como lo lees ... y he estado reunido con clientes y gente veterana de la central de mi empresa, y éstos con la camisa abierta ... imaginate mi situación en ese momento ...
Yo no trato de ver si lo que yo hago es mejor o peor que un framework, simplemente te he dicho que la estructuración la modulación que tiene un framework (codeIgniter en este caso), es la "misma" que tengo yo sin framework, y también te he dicho que es la manera de unificar la manera de trabajar de los desarrolladores.
Respecto a lo que comentas que no serán tan malos si tantos hay, ahí podría discrepar, en principio todos hacen lo mismo, de diferente forma ... si hubiera uno realmente bueno, no existirían los demás ... Es reducir el número de formas de programar. Pongamos si originariamente hay un millón de programadores, pues hay tantas maneras de programar, pero si esos programadores adoptan un framework determinado (pongamos que existen 10 frameworks), pues se pasa de un millón de maneras de programar a tan solo 10 ... Eso es lo que hacen los frameworks, el unificar y /o reducir la disparidad de criterios, seas novato o experto.
¿Que por qué estoy aprendiendo un framework? ... pues porque las empresas se han dado cuenta de lo que te digo que si utilizan un framework, no se pillan tanto los dedos si se va un programador u otro, ya que probablemente encontraran a otro que sepa utilizar ese framework, descartando ya de un principio a los que no saben ese framework, entre ellos los que no hayan utilizado ninguno nunca. Por eso, estoy mirando un framework, porque en las ofertas de php, no hay oferta que no tenga en sus requisitos este u otro framework.
Al fin y al cabo, si te fijas en un framework lo "único" que hacen es "camuflar" el código original. p.ej si no programas con framework, o sea, programas puro php tiene que poner algo como: include_file 'librerias_propias.php' ... mientras que con un framework su equivalente es $this->load->library('librerias_propias'); al menos en codeIgniter. Si te paras a pensarlo me darás la razón aprender un framework, es como coger un proyecto de otra persona y tener que trabajar con el ... es "adoptar" otra manera de trabajar, "traicionas" tu mente, para averiguar o tratar de comprender como trabaja o qué filosofía tiene el otro ... es simplemente cuestión de tiempo y de adaptación ...
Pensamos diferente, pero no tiene sentido discutir tanto (o tratar de hacer ver quien ha visto código mas apocalíptico en su vida), como te comenté no es mi idea hacerte entrar en cabeza que cosas tienes que usar o no para sentirte un desarrollador.
Lamentablemente como me has comentado, el mercado esta haciendo exigencias de conocimientos con respecto a ciertos lenguajes o herramientas que se tienen que aprender y es elección tuya si crees necesario "traicionar" tu mente o prefieres seguir con tu misma forma de trabajar. En el fondo, los contenidos están a disposición de todos, y tu tienes que darle el perfil a tu carrera como informático y saber en que especializarte, si es en tecnologías o tu crear tus propias formas de trabajo (quizá puedas crear un framework para otros con tú forma de ver como generar solcuciones).
Yo te recomiendo que sigas viendo frameworks y de verdad no juzgues (ni si quiera rememores como tratabas tú y las diferencias con lo que lees, solo analiza como trabaja de la manera más objetiva posible), solo lee para que puedas entender de la mejor manera como trabaja y ver si bajo ciertos contextos te puede ser de ayuda.
Más que eso no te puedo aconsejar, como te dije antes, no te puedo convencer de que tecnologías te agradan mas o menos para desarrollar.
Lamentablemente no será la primera vez que te toque hacer este ejercicio y tienes que ser flexible. Hace 10 años las webs "lindas" se hacían en flash, ahora se hace con javascript, ahora todas las webs tienden a ser "responsivas" y en el futuro quien sabe, todo va cambiando y tienes que ver como te especializas y en que, y buscar trabajo con las capacidades que deseas perfeccionar en tu camino de estudio.
SaVamos a ver ... me hablas como si fuera uno de los recién salidos de la universidad.
Lo de que tengo que ser más abierto de mente en eso estás equivocando, insinuando o afirmando que no lo soy ... porque que más y mejor muestra de esa apertura que el probar cosas nuevas y no negarse a ello, ahí están las consultas que te he hecho, siempre han sido sobre cosas que yo no había hecho: jquery. por ejemplo, codeIgniter, ahora ... Lo que no puedes hacer, es un formateo de tu memoria, y decir que cuando usas algo no recuerdes lo anterior, ya que eso está ahí, y lo mismo que utilizo ahora php, antes usaba visual basic y hay cosas de un lenguaje que me llevaría al otro ...Lo que no puedes hacer es negar el mercado, el mercado dice que ahora son los frameworks, puedes negarte a ellos, pero entonces estarás fuera de ese mercado, porque utilizar frameworks es unificar maneras de trabajar y eso a las empresas les va muy bien. Lo único que puedes hacer es elegir cual de ellos utilizar, que si Symphony, que si Zend, que si CodeIgniter ... igual que los IDE, que si Eclipse, que si Neetbeans ... Como tu dices, la cuestión es elegir, en la vida todo es elegir, todo son opciones, lo difícil es coger la mejor de ellas.
Saludos.
- Compartir respuesta
1 respuesta más de otro experto
Voto a favor de los frameworks, más que nada por la seguridad de las aplicaciones creadas, son sensibles a menos ataques
Si y no, los frameworks están más testeados. Pero si se detecta una vulnerabilidad de las aplicaciones realizadas con dicho framework, cualquier aplicación desarrollada será vulnerable de igual manera. O sea, que si, pero no. Yo sigo programando sin frameworks.
Si en eso tienes toda la razón, si se detecta vulnerabilidad y no actualizas o parcheas, corres muchísimo peligro .
Yo creo que tu llevas tiempo programando en php puro, ya tienes tus "librerias" echas y por eso más o menos no ves ventaja en los frameworks .
Una simple conexión a bbdd de ejemplo, el framework ya lo tiene, si no tienes ningún file guardado del mítico conector php a bbdd tienes que crearlo .
Una ventaja que me gusta mucho es el sistema de plantillas Smarty, que por ejemplo usa prestashop, con codeigniter también lo puedes usar .
Fuffffff, si tengo que crear una tienda online de cero yo solo me muero, en cambio usando prestahop, joomla + virtuemart, o wordpress + algo, lo haces en nada .Desventaja hay que aprender o mirar las funciones, para llamarlas después en el código que creas tu .
No se, es como si en vez de utilizar jquery, te pones a programar tu un file javascript con todo lo que hace jquery .
No se, no entiendo muy bien donde tienes el problema con codeigniter, uno de los mejores frameworks php que conozco.
- Compartir respuesta