About

Mi nombre se Juan José González Faúndez, nací el 17 de abril de 1978, actualmente me dedico a la docencia y a prestar servicios de consultoría entregando soluciones basadas en Tecnologías de la Información, puntualmente dentro de las áreas de la Ingeniería de Software, usando tecnologías tales como:

* Microsoft .NET Framework 3.5 and over
* Microsoft ASP.NET MVC
* Microsoft SQL Server and T-SQL
* Oracle database and PL/SQL
* Entity Framework Code First and Hibernate
* C#/Java/Scala OOP Developer
* CSS
* Javascript/Jquery
* AngularJS
* Ionic for cross platform development (iOS and Android)
* PHP MVC Framework
* Mysql Database
* Arduino (basic) for IOT applications
* Hadoop/Spark for Large Databases
* Node.JS

Desde mis inicios en los estudios, como a muchos les a pasado, pasé por muchas inquietudes a la hora de elegir la carrera con la cual me iba a desempeñar por el resto de mi vida.  Por esas casualidades y producto de que me gustaba mucho la música, un día domingo vi en un diario la carrera de Ingeniería en Sonido, y me llamó mucho la atención, tanto que comencé a investigar al respecto del tema y se los hice saber a mis padres.  Cuando les presenté los aranceles semestrales y anuales casi se van de espaldas, la verdad es que la carrera en esos tiempos era bastante cara (Estamos hablando del 2002 aprox.), hoy en día han bajado los aranceles un poco, y además hay otras alternativas de universidades e institutos..  en fin…

Después de darme el gusto y haber estudiado Tecnología en sonido y haberme titulado, comenzó la ardua labor de buscar trabajo.  2 años pasaron sin poder encontrar una pega (La carrera era relativamente nueva…), así que en fin, después en unos de esos días donde estas con el control remoto haciendo zapping por doquier, tocan el timbre de mi casa y era una señora que estaba ofreciendo unos cursos de Microsoft Office básico (a todo esto yo no tenía idea de programas y computadores, excepto por algunos ramos en sonido donde usábamos un MAC para grabar algunas cosillas), y mi querida Madre me dice, ¿Te interesa tomar alguno de estos cursos? (Porque ni $$$ tenía para pagármelo yo mismo ja ja ja), yo le digo que bueno..    y comencé con el curso básico de Microsoft Word.  Me gustó el tema y seguí con Excel, después el curso completo (Office suite + Internet + Correo).  Al año siguiente el profesor renunció por temas que no vale la pena mencionar, y me contrataron a mi para seguir con la misma linea de cursos.  Mismo año en que proponen empezar a exponer clases de programación (Visual Basic 5.0), y mientras yo hago clases normales de Office, me dispongo a tomar el curso de programación en Visual Basic 5.0 con Access.  Aquí comienza mi travesía por el mundo de la informática..   y sin pensarlo 2 veces..   después de terminar el curso de programación..   Decido entrar a estudiar Ingeniería en Informática (Gestión al principio), pero como a mi me gusta meter las manos en programación, a los 2 años..  me cambié de malla por Ingeniería en Informática (No ejecución ni gestión, solo informática), durante mis estudios comencé a trabajar como desarrollador hasta que terminé los estudios..   hice mi tesis ..    trabajé 1 año mas y comencé a desarrollar mi Magister en Ingeniería Informática.  Con el tiempo he adquirido habilidades de la Ingeniería de Software que me gustan mucho, he desarrollado algunos trabajos como Arquitecto de Software y Gerente de Proyectos TI.

Actualmente ya estoy titulado en el Magister en Ingeniería Informática con mención en Ingeniería de Software obtenido en la Universidad Andrés Bello, entidad dentro de la cual también desarrollé labores de docencia para alumnos de Computación e Informática y Civil Informática desde el 2010 en las áreas de: Ingeniería de software, sistemas de información, bases de datos, estructuras de datos y diseño orientado a objetos.  El año 2014 la Universidad Tecnológica de Chile me dio la oportunidad de dictar la cátedra: Arquitectura de Tecnología Empresarial.  Arquitectura de tecnología empresarial es una asignatura lectiva de especialidad, que orienta al alumno a reconocer la organización lógica de los procesos principales del negocio y las capacidades de TI, consolidados en un conjunto de principios, políticas y plataformas técnicas, reflejado en requerimientos de integración y estandarización del modelo operativo de la empresa.  En palabras más sencillas: alineamiento estratégico.

5 Respuestas a “About

  1. Buen día juan, navegando por la web buscando temas sobre arquitectura de software, he dado con tu blog, me surgieron algunas dudas sobre como manejas la arquitectura de 3 capas, y me gustaría que compartas conmigo tu experiencia como arquitecto.

    Te comento Soy ingeniero en sistemas computacionales, vivo en campeche México, soy recién egresado pero ya tengo unos años de experiencia como desarrollador, el tema es que ahora se me esta presentando una oportunidad como arquitecto de software. El hecho es que ya he desarrollado varios sistemas en 3 capas pero aveces tengo la sensacion de que hay algo que no encaja en mis proyectos, entonces vi que utilizas una capa DOM y me surgio la duda de para que utilizas esta capa DOM??

    bueno gracias de antemano por tomarte el tiempo de leer mi comentario, y por hacer el aporte de tu conocimiento en un blog.

    • jjegonzalezf

      Estimado Roberto, es un gusto poder compartir experiencias contigo.

      Voy a partir abordando un poco tu pregunta acerca de la capa DOM. Primero que todo, “DOM” es solo una abreviación que significa Domain Object Model, y se corresponde con todos aquellos objetos que pertenecen a la lógica de dominio de la aplicación. Microsoft por ejemplo, dentro de su especificación para el desarrollo de una Arquitectura en 3 capas, recomienda ponerle como abreviación a esa capa intermedia de negocio, “BLL” (Business Logic Layer). Lo mas importante de todo es usar una que permita identificar a los objetos de esa capa como objetos propios del negocio (cuando me refiero a objetos, hablo de clases), y depende directamente del como tu desarrolles la especificación para la organización la cual trabajas, aunque siempre es bueno tener presente las buenas prácticas que recomienda la industria.

      Respecto de la Arquitectura en 3 capas (Three Layers), es solo uno más de los diferentes estilos arquitectónicos que son parte del ciclo de vida del producto de la Ingeniería de Software. Lo mas importante de todo, es saber reconocer e identificar un concepto que he notado conversando con otros Arquitectos y desarrolladores que está un poco desvirtuado. Layers (capas lógicas) y Tiers (capas físicas), es una pequeña pero gran diferencia que denota el deploy de los componentes ya sea en una misma capa física o en varias (servidores de aplicación), eso justamente es lo que hace la diferencia entre los estilos arquitectónicos “Three layes” y “n-Tiers”. Por ejemplo, la definición de una Arquitectura distribuida usando tecnología WCF por ejemplo, indica que ciertas capas de tu aplicación serán distribuidas (valga la redundancia) en diferentes capas físicas usando un medio de comunicación (XML) a través de un protocolo bien definido (http, tcp, soap, etc.).

      Respecto del estilo en capas lógicas, voy a poner como ejemplo el patrón arquitectónico MVC (Model View Controller), que permite realizar una pequeña separación de la interfaz de usuario del negocio de tu aplicación, cuando digo pequeña, me refiero a que no separa completamente la interfaz de la lógica del negocio, ya que la vista siempre depende de un controlador (Alto acoplamiento). Caso contrario por ejemplo, lo que sucede con el patrón MVP (Model View Presenter), donde independizamos completamente la user interface de la lógica de negocio de tu aplicación a través de Interfaces (NO user interfaces) bien definidas, lo que te permitiría por ejemplo poder migrar fácilmente tu aplicación Windows Forms y llevarla a un ambiente Web o inclusive a tu iPhone o Blackberry. La mezcla entre MVP (como patrón arquitectónico) y una aplicación en 3 capas lógicas (Three Layers), separando la lógica de acceso a datos del negocio, haría que una aplicación fuera robusta, estructurada y escalable.

      Creo que ahí tienes varios conceptos por donde comenzar a investigar. Cualquier duda cuenta conmigo, cuando algo no lo sepa, podemos investigar. Lo importante es no quedarse con la duda y ser honesto…

      Espero haberme explicado lo mas claramente posible. Mucha suerte y gracias por participar de mi Blog de Ingeniería de Software.

      Saludos,
      Juan José

  2. Hola juan, me gustaría hacerte una pregunta. ¿Existe la posibilidad de que me des tu mail, para hacerte llegar mi inquietud?

  3. Hola Juan, buscando información acerca de Arquitectura de Software di con tu blog, el cual me parece muy interesante ya que actualmente me encuentro estudiando la carrera de Ing. Desarrollo de Software en la modalidad de abierta y a distancia (UNAD México). Hay muchas cosas que desconozco en este ramo del software, a pesar de que me encuentro en el área de desarrollo de aplicaciones de una empresa dedicada a la propiedad industrial e intelectual, mi ingreso a esta área es por mi inquietud de aprender a programar y sobre todo al interés de conocer las bases de datos, también por esa inquietud mi decisión de realizar la Ingeniería en Desarrollo de Software.

    Gracias por compartir tu experiencia y conocimiento

    Saludos
    Eric Márquez

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s