{"id":147,"date":"2007-07-14T11:29:08","date_gmt":"2007-07-14T17:29:08","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=147"},"modified":"2007-07-14T11:29:08","modified_gmt":"2007-07-14T17:29:08","slug":"programando-proyectos-en-capas-de-abstraccion","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=147","title":{"rendered":"Programando Proyectos en Capas de abstracci\u00f3n"},"content":{"rendered":"<p>En el blog de Julio, el Michoacano, encontr\u00e9 un articulo llamado <strong>I LOVE JAVA<\/strong><\/p>\n<blockquote><p>Creo que este lenguaje me encanta no tanto por su sintaxis o la manera en que se programa, si no por que tiene cosas que en otros lenguajes no se podr\u00eda hacer o no seria tan f\u00e1cil. A veces tienes que hacer cosas que en otros tendr\u00edas que cambiar el codigo fuente, en JAVA solo cambias la manera en que se ejecuta.<\/p><\/blockquote>\n<p>Ten\u00eda la intenci\u00f3n de RE-Redactar un art\u00edculo del tema, pero como es fin de semana, creo que mejor rescato lo que comente en su blog.<\/p>\n<p>Pero Julio, Java no es el \u00fanico lenguaje que permite hacer eso, b\u00e1sicamente todos los lenguajes pueden y no solo con las conexiones TCP, en cualquier rubro. Cualquier lenguaje programado en capas de abstracci\u00f3n permite sin menor esfuerzo adaptarle nuevo c\u00f3digo, pero se necesita mucha disciplina para programar en ese estilo.<\/p>\n<p>El uso m\u00e1s com\u00fan de las capas de abstracci\u00f3n se usa en programas que usaran bases de datos y que pudieran ser cualquiera de las que hay disponibles, l\u00e9ase Mysql, Posgress, Oracle, MSSQL, etc, etc.<\/p>\n<p>De esa forma en todo tu c\u00f3digo te refieres a insertar un campo y al pasar a la siguiente capa tu programa usara las funciones correctas de acuerdo a la base de datos a la que se esta conectado.<\/p>\n<p>Tu solo usar\u00edas int insertar (String Valor); sin importar la DB y en otro modulo de tu programa deber\u00e1s desambiguar la funci\u00f3n insertar para que realmente se inserte en la DB seleccionada y devolver un valor diferente a cero si fallo la inserci\u00f3n, de hecho esto es que tu programa soporte APIS e incluso terceros puedan agregarle m\u00f3dulos si documentas bien las APIs de tu programa.<br \/>\nComo ya te imaginas, no es programaci\u00f3n de un rato, ni de flojos, requiere, conocimientos de programaci\u00f3n estructuradas, mucha paciencia y por supuesto c\u00f3digo elegante, el resultado final ser\u00e1 un programa 100% escalable por ti y por otros que decidan programar m\u00f3dulos para agrandar tu programa original.<\/p>\n<p>Todos los proyectos grandes sin importar en que lenguaje los escribas deber\u00edan estar dise\u00f1ados en capas de abstracci\u00f3n, incluso los de JAVA, por que la misi\u00f3n de JAVA es compilar una vez y correr siempre, pero eso no resuelve el problema de hacer proyectos grandes. Para darte una idea de c\u00f3mo funciona y en JAVA, visita la pagina de www.compiere.org es un ERP escalable 100% Java<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el blog de Julio, el Michoacano, encontr\u00e9 un articulo llamado I LOVE JAVA Creo que este lenguaje me encanta no tanto por su sintaxis o la manera en que se programa, si no por que tiene cosas que en otros lenguajes no se podr\u00eda hacer o no seria tan f\u00e1cil. A veces tienes que&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-147","post","type-post","status-publish","format-standard","hentry","category-programacion"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=147"}],"version-history":[{"count":0,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/147\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}