VíctorGraciaWeb
los mejores frameworks php del 2020

Los mejores Frameworks PHP del 2020

¿Cuáles son los mejores Frameworks de desarrollo web en PHP para el 2020?

Vuelvo de nuevo para hablaros sobre los mejores Frameworks PHP del 2020 en este post, ya que la selección de la tecnología es un tema muy importante a considerar si vas a desarrollar una aplicación web y estás analizando qué Framework implementar en tu proyecto digital. Espero que con esta guía introductoria puedas hacerte una idea global de los Frameworks PHP que van a dar duro en este actual año 2020.

Mencionar que cada Framework de desarrollo web PHP tiene sus respectivos PROS y CONTRAS. Algunos desarrolladores nos sentimos mas cómodos desarrollando con una tecnología y otros desarrolladores web preferimos desarrollar nuestras aplicaciones web con otro Framework. Es importante que tengas en cuenta, que siempre debes seleccionar el Framework PHP con el que más cómodo y productivo te encuentres trabajando.



Listado de los 5 mejores Frameworks de desarrollo web PHP para este año 2020:

  • Laravel: Uno de los mas solicitados y popularizados para el desarrollo de aplicaciones web robustas y escalables. Lo mejor de Laravel es su curva de aprendizaje. Laravel ofrece una curva de aprendizaje asequible y no tan pronunciada como su “Papá” Symfony. También posee una gran comunidad en constante crecimiento, lo cual hace que Laravel sea uno de los mejores Frameworks PHP del 2020 sin duda alguna.
  • Symfony: Por excelencia y como muchos de vosotros ya sabéis, es mi Framework de desarrollo para aplicaciones web PHP desde hace ya algunos años. Desarrollar con Symfony me permite desarrollar robustas aplicaciones web de forma productiva y ofreciendo un gran sistema de seguridad a mi clientes que requieren de una aplicación web con esta serie de requisitos. En estos momentos han lanzado la versión 5 de este maravilloso Framework. Si aún no desarrollas con este Framework, os dejo enlace a un post que escribí sobre Symfony hace algunos días en el cual profundizo mas en detalle Desarrollo web Symfony PHP.
  • Yii: Este fue el primer Framework que comencé a implementar en mis desarrollos de aplicaciones web para mis clientes. Aunque ofrece un gran generador de CRUD totalmente automatizado, no es la mejor opción del mercado, pues sus competidores se han puesto mucho las pilas para mejorar el Core de sus respectivos Frameworks PHP.
  • Slim: Posee un baja curva de aprendizaje. Quizás esta sea la mejor opción si estás comenzando a desarrollar aplicaciones web en PHP implementando algún Framework del mercado actual. Con Slim podrás crear potentes Api Rest-full muy sencillas de mantener y de escalar. Aunque bajo mi punto de vista no es uno de los mejores Frameworks para el desarrollo web, la comunidad está apostando fuertemente por el.
  • Zend: Ya para finalizar, nunca podremos olvidarnos de Zend Framework. Por descontado, es el Framework de los Frameworks PHP, no lo olvides. El problema para comenzar a desarrollar aplicaciones web con Zend Framework, es su pronunciada curva de aprendizaje. Quizás los últimos años, Symfony se ha posicionado por delante de Zend, pero sin duda alguna, si deseas desarrollar aplicaciones web potentes en PHP, Zend deberías estar entre tus posibles opciones para este año 2020.

Conclusión

Para concluir, espero que toda esta información que os estoy ofreciendo en este post os sirva de ayuda y análisis para la selección del Framework PHP de tu aplicación web o la de tu cliente.

!Nos vemos en el siguiente post y no olvides comentar Developer¡



Desarrollo web Symfony PHP

Desarrollo web Symfony PHP

¿Cuales son las ventajas de desarrollar aplicaciones web con Symfony?

El otro día realicé un video que subí a mi canal de Youtube. (Sí aún no estás suscrito no te lo pienses más y suscríbete). En el vídeo estuve hablando sobre los motivos que hace unos 4 años me llevaron a tomar la decisión de usar Symfony Framework para el desarrollo de aplicaciones web de mis clientes. En este post quiero detallar más información sobre el uso de este gran Framework de PHP como es Symfony.

“Si aún no has visto el vídeo, os lo comparto de nuevo”

Entrando en materia. Hace aproximadamente 4 años, estuve analizando los diferentes Frameworks de desarrollo web Backend en PHP del mercado. Aunque estuve valorando muy positivamente Laravel, tomé la decisión de implementar Symfony en la mayoría de los nuevos proyectos que desarrollo para mis clientes. Para que los necesitéis un desarrollo web Symfony PHP, os confirmo que ofrezco servicios de consultoría en transformación digital para la pequeña y mediana empresa. También el desarrollo de nuevos aplicativos basados en este Framework. Trabajo con agencias de marketing así como con Start up y empresas de diversos sectores. Por tanto, si necesitas una aplicación desarrollada en Symfony, contacta conmigo y estudiaré tu caso de forma totalmente personalizada.

¿Qué se desarrolla con Symfony Framework?

Retomando el tema. Los motivos que me llevaron a la toma de decisión de Symfony, los voy a detallar a continuación. Por tanto, si estás considerando desarrollar una aplicación web monolítica (Backend y Frontend integrado en Symfony) o si estas valorando el desarrollo de una Api Rest-full puedas analizar cúal es la mejor opción para tu proyecto web. Espero que esta información te sea de ayuda para ello.

Ventajas del uso de Symfony Framework PHP

  • Su licencia es MIT. Por tanto podrás implementar de forma totalmente gratuita Symfony en los proyectos de tus clientes de forma comercial.
  • Amplia comunidad de desarrolladores en todo el mundo que consideran Symfony la tecnología perfecta para el desarrollo de robustas aplicaciones web para empresas. Tanto para compañías Start up como para grandes consultoras.
  • Basado en PHP. Por ello, cuando decidas desplegar el proyecto al entorno de producción, será una tarea muy sencilla contratar un hosting o servidor adaptado para soportar esta tecnología web.
  • Cantidad de librerías existentes para incorporar de forma simple e intuitiva nuevas funcionalidades que podrás configurar en función de los requisitos solicitados por el desarrollo web Symfony PHP de tu cliente.
  • Potente motor de plantillas denominado TWIG que nos permite a los desarrolladores dotar a las vistas de la aplicación web, de un sin fin de funcionalidades de forma rápida y sencilla.
  • Es extremadamente flexible. Decir que aunque bajo mi punto de vista la recomendación que os puedo dar es desarrollar las aplicaciones web implementando el patrón de diseño MVC (Modelo – Vista – Controlador), podrás configurar otras arquitecturas en el Framework en función de tus conocimientos en desarrollo de Software.
  • Doctrine es un ORM perfecto para la abstracción de la capa de datos de las aplicaciones web. El core de Symfony está perfectamente desarrollado para implementar este ORM así como otros similares también potentes en el desarrollo web Symfony PHP.

“¿Te parecen pocos los motivos para desarrollar aplicaciones web en Symfony?”

Conclusiones finales…

Ya para finalizar, espero que este post os haya sido de gran aporte para decidir en su caso si el Framework Symfony es la mejor opción para vuestra aplicación web. Pero si aún así continuas con dudas, contacta conmigo. Gracias a mi amplia experiencia con el uso de este Framework podrás obtener un mayor conocimiento para que puedas tomar la mejor decisión para la transformación digital en tu negocio.

¡No olvides comentar, tus comentarios son de gran aportación para la comunidad!

Patrón de diseño MVP android

Patrón de diseño MVP android

Que es un patrón de diseño

Con la evolución del software y con las exigencias que estos deben cumplir para ser usados por los desarrolladores en los proyectos, nacen los patrones de diseño y este post trata en especial del patrón de diseño MVP android. Estos son un grupo de buenas prácticas aplicadas a la arquitectura del Software que se está desarrollando y aunque la mayoría de Frameworks mas usados en desarrollo web y apps hibridas ya lo llevan integrado, existen otras tecnologías que son mucho mas flexibles a lo hora de implementar y definir una arquitectura. Esta flexibilidad ofrece un arma de doble filo, ya que si no eres lo suficiente profesional y disciplinado durante el desarrollo del software, el código fuente se puede ver como un auténtico caos en cuestión de pocos días de trabajo.

Mi recomendación como desarrollador web freelance con años de experiencia es clara. Implementa buenas practicas en tu código fuente. El resultado de esto se determina en tan solo una frase como mi gran amigo Alberto y antiguo profesor, alias “Bebeto”, me mencionaba en sus clases.

“Víctor, Esto es salud”

Gracias a implementar un buena arquitectura en el código fuente, harás el proyecto escalable, robusto y fácil de evolucionar.

Ejemplos de patrones de diseño en desarrollo de Software

  • MVC, También conocido como Modelo – Vista – Controlador. Este patrón de diseño es implementado en la mayoría de Frameworks para el desarrollo de aplicaciones web. Symfony o Laravel, son Frameworks en PHP y son muy buenos ejemplos de como implementan MVC en su Core. Quizás sea uno de los patrones de diseño más conocidos y estandarizados en desarrollo de Software.
  • Singleton, este patrón de diseño bastante usado en desarrollo de apps Android, permite una única instancia de cada clase y por ello, siempre es reutilizada en lugar de crear nuevas para mismos fines.

Patrón de diseño MVP Android

Los que hemos desarrollado aplicaciones para dispositivos móviles en Android y hemos lidiado con la arquitectura de nuestros proyectos, entendemos que el patrón de diseño MVP fue “un gran regalo del señor” para poder continuar desarrollando robustos aplicativos en Android con Java.

Sí visitas mi perfil de Github, tengo para ti un repositorio que puedes descargarte mediante el cual podrás comenzar a desarrollar apps android en Java con este patrón de diseño.



A continuación y de forma muy breve, voy a resumir la arquitectura del patrón de diseño MVP:

  • Modelo: contiene toda la lógica de negocio de nuestra App Android. Esta parte es la encargada de manejar los datos que pueden ser recuperados por diferente medios y son enviados directamente al presentador. Toda la gestión de datos de nuestra App Android, es manejada por el modelo.
  • Vista: la componen los elementos visuales que son renderizados en la interfaz gráfica mediante los cuales interactúa el usuario de la App. No poseen nada de lógica, esta parte es responsabilidad del presentador.
  • El Presentador: actúa como mero intermediario. Tan sólo obtiene una serie de datos por parte del modelo y se comunica con la vista. Es también el responsable de decidir qué sucede cuando el usuario interactúa con la vista.

Conclusión…

Si quieres continuar aprendiendo sobre este magnífico patrón de diseño, te recomiendo que te entretengas viendo algunos de los cientos de vídeos en Youtube donde explican decentemente como implementarlo en nuestros proyectos de desarrollo en Android.



Demanda actual de profesionales del sector IT

Reclutadores del sector IT en busca del oro perdido

¿Cómo trabajan los reclutadores de perfiles responsables de la transformación digital de las compañías tecnológicas?

En la entrada de hoy, os hablaré sobre la actividad de los profesionales reclutadores encargados de “Vender” los proyectos de la mejor manera posible a los talentos del sector IT. Los perfiles a los que se dirigen en la mayoría de los casos son: 

  • Desarrolladores web
  • Diseñadores de apps
  • Analistas de datos en general
  • Project manager 
  • Otros perfil del sector vinculado a la transformación digital

Demanda actual de profesionales del sector IT

Como muchos de vosotros sabéis, los perfiles del sector IT encargados de la transformación digital de las empresas, es un bien muy apreciado además de demandado por las consultoras y Start Up. En la última década, debido a la alta demanda del sector, estudiar una de las muchas ramas del del ámbito tecnológico es una apuesta segura para obtener un puesto de trabajo de calidad y bien remunerado “medianamente”.

Debido a este déficit de profesionales, las compañías se ven obligadas a poner mucha énfasis en sus departamentos de RRHH. Estos han pasado a ser también denominados “Departamento del talento”. Parece que esta última nomenclatura vende bastante más… nada fuera de la realidad, viene siendo los mismo, pero con profesionales responsables de reclutar a estos perfiles más formados en el área (O eso quieren demostrar en ocasiones).



Diferentes forma de actuar por los reclutadores

Algunas compañías tienen sus propios departamentos de reclutamiento, pero otras externalizan estos servicios en terceros. Estas últimas, están dotadas de empleados, que en la mayoría de los casos poseen estudios de RRHH, psicología y similares, pero que nunca han trabajado en el sector IT y esto a mi parecer es un gravísimo error, desconocen el sector en gran medida por mucho que piensen lo contrario. 

Cuando recibes una llamada o un correo electrónico de alguno de estos “Cazatalentos”, muestran un gran interés por conocerte, incluso más del necesario a mi parecer para intentar venderte el proyecto de su cliente. Aquí es donde viene el problema, la gran mayoría de estos profesionales en numerosas ocasiones se piensan que están tratando con “Ganado”. Qué no se equivoquen, somos profesionales en un sector en auge que merecemos un respeto. En mi caso, me he encontrado en varios procesos de selección (Suelen ser bastante largos, en ocasiones duran meses), en los cuales tras pasar varias fases, ha desaparecido el famoso “Cazatalentos” sin ofrecerme una respuesta por parte de su cliente.

“Eso demuestra una gran falta de respeto entre personas.”

Sin respuesta a llamadas ni a correos electrónicos, pues estos magníficos profesionales deben estar demasiado ocupados para ofrecerte una respuesta o informarte acerca del estado de tu candidatura durante el proceso de selección en cuestión. Posiblemente anden reclutando a otro posible perfil como auténticos “lobos”.

Errores de campeonato

En ocasiones, tanto por Linkedin como por correo electrónico he recibido mensajes por parte de reclutadores del sector IT ofreciéndome un proyecto, pero con una situación bastante curiosa. Estos han comenzado con el nombre de otra persona. Ni siquiera han destinado el tiempo ya no ha personalizar el correo electrónico, que a mi parecer sería lo mínimo. A lo que me refiero es que no han prestado atención siquiera de cambiar el nombre de la persona destinataria del mensaje. Esto ofrece un claro indicativo de la forma de trabajar de este grupo de profesionales.

En otras ocasiones, he realizado pruebas de nivel técnico, que tras destinar más de 6 horas en la realización de la misma, no he recibido respuesta alguna por parte de la compañía.

“¿Qué broma es esta?.”

Solución a estos problemas

Tras debatir en numerosas ocasiones con algunos compañeros responsables de la transformación digital de varias Start Up, con perfiles similares a desarrolladores web y desarrolladores de dispositivos móviles o incluso en la modalidad Freelance, (que es la fórmula que actualmente ofrezco a las empresas para ayudarles en su transformación digital), hemos sacado en conclusión lo siguiente. En muchos casos los reclutadores del sector IT ya ni siquiera respondemos a las peticiones de estos reclutadores, pues conocemos ya la manera de actuar de estos. Es posible que en un futuro, mostremos mas respeto por ellos, pero esto llegará a ser cuando sea algo recíproco bajo mi punto de vista.

¿Cómo creéis que evolucionará esta situación, se podrán las pilas? ¡No dudéis en comentar!



nómada digital

Mi nueva etapa como nómada digital

¿Aún no sabes lo que es un nómada digital?

Tras varios años desarrollándome profesionalmente como programador para diversas compañías en desarrollo de aplicaciones web y apps, y habiendo obtenido un gran listado de recursos, buenas prácticas y ampliación de mis conocimientos de otros lenguajes y Frameworks, finalmente he decidido volver a mis orígenes trabajando como Freelance en colaboración con otros compañeros según los recursos necesarios de cada nuevo proyecto que mis clientes me confíen. En este post hablaré sobre mi nueva etapa como nómada digital.

Esta decisión requiere una serie de objetivos en los cuales deberé trabajar para alcanzar una meta durante este año 2020. La meta es poder vivir como nómada digital de forma solvente.

Pero y ¿Tú quien eres?

Para los que no me conocéis, he trabajado como Freelance y co-fundado varias Start Up en materia IT. Junto con mis equipos, he estado ofreciendo servicios tecnológicos en desarrollo de software y aplicaciones móviles. Además mencionar otro de los puntos clave, Ayudar en la transformación digital a las PYMES. Una ellas, Offing Web Solutions, ubicada en Barcelona, a fecha de hoy sigue en funcionamiento y por lo que me consta este año 2020 será un gran año para el equipo al cual acompañé durante mi etapa en esta Start Up hace unos años.

Vivir como nómada digital es un auténtico reto. La meta principal es poder viajar por diversos países y ciudades, conociendo sus respectivos lugares, personas y culturas (Creo que estos aspectos son vitales para nuestra mejora tanto personal como profesional).

Últimamente estoy siguiendo a varios de estos nómadas digitales. Visitando tanto sus sitios web como sus redes sociales, estoy aprendiendo bastante sobre cómo debo enfocar y orientar las acciones que me permitan conseguir vivir como Freelance full-remote.

Aunque ya estuve años atrás viviendo como Freelance web desarrollando aplicaciones web y apps siempre estuve viviendo en mi ciudad natal.

“Para los que no lo sabéis soy de Zaragoza”.

Es por ello que es necesario introducir el parámetro “Nómada” para ser un auténtico nómada digital.


Un reto constante

No nos engañemos, muchas compañías y agencias del sector IT, así como un gran número de consultoras, desean que acudas diariamente a tu puesto de trabajo religiosamente todos los días. (En estos momentos me cuesta interpretar cuan necesario es esto), pues en mis 10 años de experiencia como desarrollador de software, he trabajado con diversos clientes a los cuales les he facturado, entregado un producto y tan siquiera nos hemos conocido en persona. Esta es sólo una de las ventajas de trabajar como desarrollador web freelance. No necesito una presencia física diaria en la oficina con el cliente.

Bueno, quizás alguna reunión puntual pueda ser interesante, pero nada que me haya podido impedir trabajar a distancia desde otro punto geográfico.

Como punto positivo, creo que cada día somos más los profesionales del sector IT conscientes de que es una evolución necesaria trabajar en remoto y a distancia. Ya sea desde diferentes ciudades e incluso países. Pero claro está, siguen existiendo compañías que desean verte sentado en una silla en tu puesto de trabajo de forma inamovible. Pero resumiendo, es cuestión de tiempo que estas se adapten si quieren seguir sobreviviendo en este ecosistema.



Solicitud de visados para trabajar en otros países

Existe una gran ventaja al ser ciudadano de la Unión Europea. Esta es que podemos movernos por la misma sin restricción alguna entre los países miembro y asociados y por ende, acceder a los mercados laborales de estos países. Esto es maravilloso creerme. Llevo varios años viviendo y trabajando en países como Irlanda y Reino Unido (a este último en pocos meses le podemos decir adiós desde la Unión Europea), pues como todos sabemos, el Brexit se va a ejecutar en pocas semanas.

Pero también existen numerosos países como Estados Unidos a los que interesa acceder, por ambas partes (Empresa y profesional), como desarrolladores de software. En la mayoría de estos casos, es necesario un visado para ello, pero gracias al trabajo en remoto, toda esta parafernalia se soluciona. La compañía puede contratar los servicios de un profesional Freelance full o part time a distancia y no es necesaria la obtención de ningún tipo de visado para ello. El trabajo será desarrollado 100% en remoto.

Solución a este problema “Trabajo en remoto vía Freelance”

Gracias a mi nueva etapa como nómada digital, con reuniones mediante videoconferencias y el uso de una serie de herramientas para el seguimiento de proyectos de Software el cual me permita conocer al cliente el estado del mismo, así como otros datos sobre costes y recursos destinados a cada Item del proyecto en cuestión, estos problemas se solventan. Una de mis herramientas preferidas para ello es Jira Software. Os dejo el enlace a los que aún no la conocéis. Ofrecen servicios en la nube alojados en servidores proporcionados por el equipo de Atlassian así como también te facilitan el proyecto y documentación para instalarlo en tu propio servicio. En cuestión de unos pocos minutos puedes tener Jira en tu servidor.


Conclusión

Las compañías tecnológicas están adaptándose a las necesidades del mercado las cuales evolucionan a un ritmo bastante elevado. Aunque algunas ofrecen 1 o 2 días en remoto a sus empleados, te quieren seguir viendo en la oficina calentando la sillita. Algunas de estas creo que padecen de “Sillitis”. Pero este modelo está desapareciendo, aunque en España cueste hacerlo realidad, será cuestión de tiempo que este modelo sea implantado en su mayoría…

¿Tienes algún comentario o aportación sobre mi nueva etapa como nómada digital? ¡escríbeme!



Desarrollo de App nativo vs híbrido

Desarrollo de App nativo vs híbrido

Desarrollo de App nativo vs híbrido

En la entrada que os he preparado esta semana, he pensado tratar el tema del desarrollo de aplicaciones móviles. Además, desglosaré la serie de ventajas y desventajas del Desarrollo de App nativo vs híbrido que ofrece el uso Frameworks de desarrollo de Apps híbridas frente al código fuente nativo de cada una de las plataformas mas usadas por los usuarios como son Android e iOS.

Hoy en día existen multitud de Frameworks de Desarrollo de App y otras tecnologías que nos hacen a los desarrolladores de aplicaciones web y dispositivos móviles la vida mas fácil. Esto se debe a que el desarrollo de Software es un sector altamente competitivo y ello hace que salgan prácticamente todos los días nuevas tecnologías. Pero solo algunas de ellas destacan y por tanto se establecen en el mercado, siendo aceptadas por la comunidad del Desarrollo de Aplicaciones.

De lo primero que hablaré, será sobre los diferentes Frameworks de desarrollo de Apps Híbridas mas usados en la actualidad. Será Detallando con un breve resumen sobre cada uno de ellos junto una pequeña reseña personal acerca de la implementación de los mismos y los posteriores resultados, ya que este último punto será el que el equipo o cliente podrá valorar finalmente.

Xamarin

Siendo propiedad de Microsoft y fundada en el año 2011. Con una base de código compartido de C #, la comunidad de desarrolladores pueden usar las herramientas que Xamarin proporciona para escribir aplicaciones nativas de Android, iOS y Windows con interfaces de usuario totalmente nativas. Algunos desarrolladores opinan que por excelencia, es el mejor Framework de Apps Híbridas. Por el contrario, aún no me he encontrado con el momento de implementarlo en mis proyectos. Ver web oficial.

Ionic Framework

Es un proyecto 100% libre y de código abierto. Con licencia bajo MIT. Además, siempre será de uso gratuito e impulsado por una comunidad mundial. Esto se debe a que apuestan cada día mas fuerte por esta tecnología. Actualmente Ionic 3 es la versión mas actual. Bajo mi punto de vista creo que es el punto de entrada para comenzar a desarrollar Apps Híbridas. Una de sus ventajas mejor valoradas es que está construido con Angular. Otro punto fuerte es que tan sólo necesitaremos poseer conocimientos en CSS, HTML5 y Sass para poder programar nuestras AppsVer web oficial.

Appcelerator Titanium

Está desarrollado en tecnología Javascript y usa XML personalizado junto con la API de Appcelerator para obtener algunas características nativas. Posee soporte completo para Android e iOS. El código compilado, es una combinación de nativo y Javascript que hace mejorar el rendimiento de la App en cada dispositivo móvil. Mencionar que cuando este Framework salió hace ya unos años, la comunidad del desarrollo apostaba fuerte por el. Pero ciertamente existen en la actualidad otros Frameworks mas potentes. Ver web oficial.

 Ventajas y desventajas

Llega el momento de la despedida y compartirlo por las redes sociales. ¡Hasta la próxima!

¿Necesitas una App para dispositivos móviles? Contacta conmigo.

ventajas y desventajas entre Mysql vs MongoDB

ventajas y desventajas entre Mysql vs MongoDB

¿Cuáles son las ventajas y desventajas entre Mysql vs MongoDB?

Hacía ya semanas que no escribía nada sobre desarrollo web en mi Blog. Esto se debe a la carga de trabajo con la que me estoy encontrando en esta etapa profesional de mi vida y es por eso que hoy os quiero hablar sobre las ventajas y desventajas entre Mysql vs MongoDB.

Con las bases de datos relacionales, siempre hemos diseñado y desarrollado nuestro sistema de almacenamiento de datos de nuestras aplicaciones web siguiendo unos patrones que nos otorguen una relación de las tablas que componen nuestra Base de datos con claves primaria y foráneas. Esto en ocasiones es magnífico por nos genera un sistema de almacenamiento de datos totalmente estructurado. Pero el problema viene cuando nos encontramos con nuevos evolutivos en nuestras aplicaciones web, que nos obliguen a realizar modificaciones en nuestro modelo conceptual de la Base de datos y sobre todo si requieren los mismos de cambios entre claves primarias y foráneas entre tablas.

Este problema con las bases de datos NoSQL quedaría resuelto por la flexibilidad que nos ofrecen las base de datos documentales, ya que estas bases de datos trabajan con datos en formato JSON.

Pero además, a continuación detallaré un listado de ventajas y desventajas con sistemas como pueden ser Mysql vs MongoDB.

Mysql ventajas:

  • Podemos ejecutar Sentencias SQL directamente en nuestra base de datos.
  • Posibilidad de abstracción de nuestra base de datos con algún ORM estilo Doctrine o Hibernate.
  • Almacenamiento de datos totalmente organizado y jerarquizado con claves primarias y foráneas.
  • Nos permite evitar la duplicidad de registros.
  • Mejora notable en mantenimiento de datos en relación a la seguridad requerida de los mismos.

Mysql desventajas:

  • Si nuestro sistema escala y evoluciona, tendremos que haber diseñado nuestra base de datos conforme a estos posibles nuevos requerimientos.
  • Requiere mas espacio de almacenamiento frente a una base de datos NoSQL.
  • Transacciones de datos mas pesadas frente a las bases de datos NoSQL.
  • Límites en campos de las tablas que nos podrán hacer perder datos si no los configuramos adecuadamente según el tamaño del dato que nos puedan introducir los usuarios.

MongoDB ventajas:

  • La escalabilidad y su carácter descentralizado hacen que soporten estructuras distribuidas.
  • Permiten realizar sistemas mas abiertos y flexibles debido a su fácil adaptación de nuevas evoluciones de nuestras aplicaciones web.
  • No se requieren potentes recursos para poder trabajar con bases de datos NoSQL.
  • Optimización en las consultas en base de datos para grandes cantidades de datos almacenados.

MongoDB desventajas:

  • Problemas con sentencias SQL ya que no admiten el 100% de las consultas existentes.
  • Los sistemas de bases de datos NoSQL carecen de interfaces gráficas para su uso y por tanto es posible que nos veamos obligados a trabajar mediante la consola de comandos.
  • Falta de estandarización entre las diferentes bases de datos NoSQL.

Espero que el listado anterior de ventajas y desventajas entre Mysql vs MongoDB puedan ayudaros a definir el tipo de base de datos a implementar en los futuros proyectos web según el listado de requisitos establecidos, y recuerda si necesitas ayuda, contacta conmigo.

Eso es todo por el momento, esperamos todos vuestro comentarios.

¡Hasta la próxima!

Desarrollo web stack MEAN

Desarrollo web stack MEAN (MongoDB – Express – Angular – Node.JS)

¿Que es el Desarrollo web stack MEAN?

El Desarrollo web stack MEAN hace que podamos realizar potentes aplicaciones web. Ya sea tanto del lado cliente como servidor con sólo Javascript con ayuda de MongoDB, Express, Angular y Node.JS.

Actualmente estas tecnologías son la gran apuesta por la comunidad de desarrolladores y empresas del sector a nivel mundial. El sólo uso de Javascript en todo nuestro proyecto, hace que el desarrollo del mismo sea una tarea mas sencilla de realizar. Quizás la curva de aprendizaje no sea tarea sencilla. Lo bueno, podemos estar seguros que nuestras expectativas laborales se verán notablemente mejoradas gracias al aprendizaje de las mismas. A continuación definiré las tecnologías que componen el Desarrollo web stack MEAN:

  • MongoDB: Como base de datos NoSQL, es una base de datos documental que almacena objetos JSON y por tanto no es relacional. El concepto de almacenamiento de datos entre NoSQL y relacional ofrece un cambio por completo en diseño, uso y arquitectura de la misma.
  • Express: En un Framework basado en Node.JS mediante el cual podremos generar una potente API REST para nuestros proyectos web de forma rápida y sencilla. Usar Express junto a Node.JS será una tarea necesaria para poder desarrollar de forma intuitiva.
  • AngularJS: Por excelencia el Framework para desarrollar aplicaciones web de lado Frontend. La experiencia del usuario al usar aplicaciones web realizadas con Angular es magnífica gracias al formato SPA (Single Page Application).
  • Node.JS: Potente Framework JavaScript basado en V8 para realizar aplicaciones web tanto del lado cliente como servidor. Gracias a la implementación de Node.JS en nuestras aplicaciones web, podremos generar nuestro propio servidor con tecnología Javascript.

Beneficios de usar el stack MEAN en nuestros desarrollos web

Los beneficios que aporta el uso del Desarrollo web stack MEAN frente a otros lenguajes o tecnologías como pueden ser Java, PHP o Python con ayuda de algunos de sus Frameworks son variadas. Entre las diferentes ventajas, citaré las siguientes:

  • Podremos desarrollar toda nuestra aplicación web usando javascript como único lenguaje, si bien las librerías que se usan en el front-end son distintas, de las que se usan en el lado del back-end con Node.JS.
  • La carga de datos e interacción con nuestra base de datos de MongoDB hace que nuestra aplicación web sea muy ágil gracias al uso de objetos en JSON para su almacenamiento.
  • El crecimiento de esta tecnología no se puede comparar con ninguna otra, pues el Desarrollo web stack MEAN ha sido enormemente acogido por la comunidad de desarrolladores tanto del lado Backend como Frontend.

Arquitectura del stack MEAN

“Como una imagen vale mas que mil palabras”

os muestro en detalle la arquitectura del Desarrollo web stack MEAN y que tecnología se encarga de cada tarea. Como podréis observar, Node.JS junto con Express se encargan de realizar toda la magia de nuestra aplicación web. Ver documentación oficial.

¿Que proyectos puedo desarrollar con stack MEAN?

La tipología de proyectos que podemos realizar con el Desarrollo web stack MEAN es infinita. Desde E-commerce hasta potentes paneles de administración. Todo con tecnologías Javascript.

Por todo ello, puedo valorar desde mi punto de vista que es una gran apuesta a futuro aplicar esta tecnologías a nuestros proyectos web. Si necesitas ayuda con esta tecnología, contacta conmigo.

Y tú, ¿que opinas al respecto?

Github para desarrolladores web

Apertura nueva cuenta Github

Hola a todos comunidad de seguidores. En esta ocasión voy a informaros sobre la apertura de mi nueva cuenta Github a la cual iré subiendo a los distintos repositorios que iré creando.

Algunos proyectos personales que pueda hacer públicos serán principalmente los que iré subiendo a los distintos repositorios. Estos proyectos irán documentados además de venir integrados con su código fuente. Os irán muy bien para comenzar a ir trabajando en los diferentes lenguajes de programación y Frameworks relacionados.

Descargar código de otros desarrolladores es fundamental para mejorar nuestros conocimientos. Es algo vital. Además podremos aportar nuestro granito de arena colaborando en otros proyectos.

Pero, ¡si aún no se que es Github!

Para aquellos que hasta el momento no saben que es la plataforma de código abierto para el almacenamiento de repositorios de la comunidad de desarrolladores por excelencia denominada Github, estáis invitados a leer el post de escribí hace tan sólo unos días. Allí podréis saber mas acerca de la plataforma y sus diferentes usos, así como enlaces a la web oficial.

¿Que tipo de proyectos subiré a los repositorios de mi nueva cuenta Github?

La idea principal de la apertura de esta nueva cuenta, es en definitiva que todos los desarrolladores que se encuentren durante el proceso de iniciación e introducción en el desarrollo de Software, puedan apoyarse en estos repositorios para que puedan ir experimentando por ellos mismos la evolución de sus conocimientos y mejorando su nivel de destreza en el desarrollo y diseño de aplicaciones web.

¿Cuantos repositorios existen en mi cuenta de Github actualmente?

En estos momentos, tan sólo he subido un único repositorio que os invito a que visitéis y os descarguéis desde este enlace. Durante los próximos días, iré subiendo nuevos repositorios. Por tanto si consideráis que suba algún tipo de proyecto en concreto, os invito a que me escribáis directamente desde la sección de contacto o me dejéis un comentario al final de esta entrada.

Por hoy esto es todo community developers, espero vuestros comentarios y aportaciones. Pero sobre todo, compartirlo con todos los demás por las redes sociales.

¡Hasta la próxima!

GIT como control de versiones desarrollo web

GIT como control de versiones

GIT como control de versiones

El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante. Si eres diseñador o desarrollador web y quieres mantener siempre de forma segura la evolución de tus proyectos, deberás comenzar a trabajar con GIT como control de versiones.

¿Que es un repositorio GIT?

Cada vez el mundo del desarrollo del Software evoluciona mas rápido. Por ello que necesitamos trabajar con las mejores herramientas de la actualidad.

En esta entrada hablaré sobre los fundamentos iniciales de GIT como control de versiones., ya que es una herramienta imprescindible para poder desarrollar nuestro software entre los diferentes integrantes del equipo técnico que se ocupan de tales cometidos.

GIT es un control de versiones, existen otros como Subversión etc.

Pero y si trabajo sólo, ¿también lo necesito?

Correcto, trabajar con un control de versiones significa trabajar con buenas prácticas. Aunque trabajes solo, es posible que quieras mantener un control total de los cambios que tu aplicación irá sufriendo. Claro está, si trabajas en equipo, no existe otra opción, pues todos y cada uno de lo integrantes del equipo aportará su granito de arena al proyecto, eso significa que todo el proyecto se deberá encontrar siempre en su versión mas evolucionada de forma accesible dentro de un servidor remoto.

Trabajando con repositorios remotos

Todos los cambios que se realizan en cada versión local de cada desarrollador web del proyecto, se deben de subir al servidor remoto para tener siempre accesible la versión mas actual del proyecto. De esta manera, cuando finaliza la jornada, todos los integrantes del equipo o los responsables, suben las ramas realizadas con los cambios al servidor central. Esto se define com hacer un “PUSH” al repositorio remoto. Con ello conseguimos que cuando un desarrollador comienza su jornada, solicita una comprobación de posibles cambios sufridos en el servidor remoto, si existen se los descarga y ya puede comenzar a codificar.

¿Cuales son los repositorios remotos mas conocidos para nuestros proyectos?

En la actualidad existen 2 que son los mas conocidos entre la comunidad de desarrolladores:

  • Github
  • Bitbucket

El primero de ellos es quizás el mas conocido, es gratuito siempre y cuando no te importe que el código fuente del proyecto esté de forma pública a la comunidad de desarrolladores. Si deseas que tu repositorio se encuentre de forma privada y por tanto sólo accesible al equipo de desarrollo seleccionado, deberás de abonar una cuota que ronda desde los 7€ a los 200€ mensuales en función del número de repositorios que necesites en una misma cuenta y el número de desarrolladores web que tendrán acceso al mismo.

La otra opción, Bitbucket. Está opción es totalmente gratuita (Con unas limitaciones) para trabajar con repositorios de forma privada. También tiene su versión de pago, pero sólo será necesario si el número de integrantes o repositorios en una misma cuenta se te queda corto.

Bajo mi punto de vista, según la opción que escojas para mantener tus repositorios, será buena con sus pros y contras.

Git-flow ¿Que es eso?

Implementar git-flow a nuestros proyectos significa trabajar con unas reglas o pautas de ramas de manera sistemática en todos nuestro repositorios. Es una buena práctica trabajar con git-flow ya que el equipo técnico podrá trabajar cómodamente con estas reglas sabiendo en cada momento en que rama debe de trabajar en función del tipo de tarea que se encuentre realizando.

A continuación citaré las diferentes ramas existentes para trabajar con git-flow y su finalidad:

Ramas master y develop

El trabajo se organiza en dos ramas principales:

  • Rama master: cualquier commit que pongamos en esta rama debe estar preparado para subir a producción
  • Rama develop: rama en la que está el código que conformará la siguiente versión planificada del proyecto

Cada vez que se incorpora código a master, tenemos una nueva versión estable.

Además de estas dos ramas, Se proponen las siguientes ramas auxiliares:

  • Feature
  • Release
  • Hotfix

Cada tipo de rama, tiene sus propias reglas, que resumimos a continuación.

Feature

feature branches

  • Se originan a partir de la rama develop.
  • Se incorporan siempre a la rama develop.
  • Nombre: cualquiera que no sea master, develop, hotfix-* o release-*

Estas ramas son utilizadas para el desarrollo de nuevas características de nuestra aplicación. Una vez finalizadas se integran con la rama develop.

Release

  • Se originan a partir de la rama develop
  • Se incorporan a master y develop
  • Nombre: release-*

Estas ramas son utilizadas para preparar nuestra nueva versión de producción. En estas ramas son realizados los últimos ajustes y son corregidos los últimos bugs antes de incorporar las mismas a la rama master.

Hotfix hotfix branches

  • Se origina a partir de la rama master
  • Se incorporan a la master y develop
  • Nombre: hotfix-*

Esas ramas se utilizan para corregir errores y bugs en el código en producción. Funcionan de forma parecida a las Releases Branches, siendo la principal diferencia que los hotfixes no se planifican.

¿Necesitas ayuda para manejar GIT como control de versiones.? Contacta conmigo y te ofreceré un presupuesto personalizado.

Abrir chat
1
Hola ¿En qué puedo ayudarte?
Powered by