Cómo aprender JAVA
Java: una leyenda en el desarrollo de software informático en los últimos 10 años, su estatus en los corazones de muchos desarrolladores es como la "Espada asesina del dragón" y la "Espada eterna".
Java es una plataforma. Solo quiero hablar sobre mis puntos de vista sobre cómo aprender bien Java. Espero que sea útil para los principiantes.
1. Piénsalo
Antes de aprender Java, no seas impaciente, cálmate y piensa bien:
1) ¿Estás interesado en aprender Java?
2) ¿Puedes calmarte y estudiar con perseverancia?
Bueno, esta es una pregunta fácil pero que nunca debe ignorarse. ¿Estás seguro de que estás interesado en Java? y Sólo si estás preparado para soportar las dificultades podrás aprender bien Java. Si cumples con estas dos condiciones, continúa leyendo...
2. ¡Esté preparado!
¡Por favor, no lo hagas! El camino hacia el aprendizaje de Java debe tratarse por separado de otras tecnologías informáticas. Los vínculos entre tecnologías a menudo están inextricablemente vinculados. Debe dominar algunos conocimientos básicos relacionados con el aprendizaje de Java. Para "Cómo configurar CLASSPATH", "Rogar por el JDK". dirección de descarga "No deberías hacer estas preguntas, porque hay demasiadas respuestas en Internet. Para decirlo de otra manera, ¿no eres apto para aprender a programar directamente?
1) Compra un libro de aprendizaje de Java .
La versión oficial de JDK 6 acaba de ser lanzada. No puede comprar libros JDK6 en el mercado por el momento, pero aún así le recomiendo que compre un libro Java adecuado para principiantes y más nuevo. Versiones JDK Entonces, ¿qué eliges ahora? Todavía existen condiciones para un libro introductorio sobre JDK5. Podría recomendarte algunos libros de introducción, pero no lo voy a hacer, porque lo que es de mi gusto puede no serlo para ti. Pero en cualquier caso, "Thinking In Java" nunca debería ser su primer libro para comenzar con Java.
Recuerde, hay muchos recursos para aprender Java en Internet, pero básicamente no son lo suficientemente sistemáticos. Es importante tener una introducción a Java. Los libros son la base para su aprendizaje sistemático de Java.
2) Preparar un entorno de aprendizaje de Java.
Preparar su entorno de aprendizaje es muy simple. Instale JDK6 y luego use un editor de texto como UltraEdit y EditPlus para configurar su entorno de aprendizaje. Hay muchos artículos en Internet sobre cómo configurarlo. Si es nuevo en Java, no se recomienda utilizar herramientas IDE. Al escribir el código línea por línea, encontrará muchos problemas. Solo así podrá aprender a resolver problemas y profundizar su comprensión de Java.
¡Cuando estés listo, comienza el apasionante viaje de aprender Java!
3. El camino hacia el aprendizaje básico de Java
Aunque el proceso de aprender Java es más Difícil, ¡pero hay cosas maravillosas en todas partes! Debes mantenerte concentrado durante el proceso de aprendizaje. Hay "PK" entre idiomas en Internet. ¡No te dejes afectar por la impetuosidad! Supera tus demonios internos y persevera al final serás recompensado.
El sistema Java se divide en Java SE, Java EE y Java ME (antes de JDK 5.0, se llamaban J2SE, J2EE y J2ME respectivamente. El trampolín hacia Java es Java SE, que es lo que usted). Debe comenzar con Java SE, independientemente del campo del sistema que elija como dirección de desarrollo en el futuro.
Aprenda Java SE y establezca una buena base en Java. Si desea aprender Java EE (lo siento, no entiendo JavaME, por lo que no puedo cubrir el contenido relacionado con JavaME), ¿es necesario? ¿Aprende AWT y Swing? Personalmente, creo que todavía necesitas saber por qué, especialmente su modo de procesamiento de eventos. Recomiendo encarecidamente que los principiantes comprendan otros desarrollos específicos. Después de todo, el contenido de AWT. y Swing es suficiente para usar varios libros grandes. Por supuesto, solo un libro grande puede describirlo en detalle, si su trabajo es desarrollar AWT y Swing, esa es una historia diferente.
I/O y Thread son una de las bases.
4. Ruta de aprendizaje de Java EE
Aprender Java SE es solo el primer paso para completar la "Larga Marcha".
A continuación, elija aprender Java EE o Java ME (o si desea continuar aprendiendo JavaSE en profundidad, siempre que lo desee, puede continuar profundizando, como se mencionó anteriormente, no lo haré). hable sobre el aprendizaje de Java ME); se estima que más estudiantes elegirán Java EE. JavaEE implica muchas tecnologías, considerando el nivel de aceptación de los principiantes, intentaré presentarlo desde la perspectiva más utilizada.
Al aprender Java EE, no se recomienda utilizar un editor de texto en el entorno de desarrollo. Creo que NetBeans 5.5 (la versión oficial más alta actualmente) es muy adecuado para principiantes. Si te gusta usar otro IDE como Eclipse, no hay problema, depende de lo que te guste.
4.1 Aprendizaje de JSP/Servlet
La versión más alta de Java EE es actualmente la versión 5.0.
En JavaEE, primero debe aprender la tecnología JSP/Servlet (combinada con Tomcat, MySQL). Se recomienda dominar el conocimiento de JSP1.2/2.X. Después de todo, muchos sistemas en uso lo son. todavía basado en JSP1 .2 Para aprender JSP, también debe dominar algunas tecnologías de extensión, como: también debe dominar el conocimiento básico de HTML, y es mejor dominar algo de JavaScript (una de las tecnologías AJAX más populares actualmente). y tecnologías CSS, y comprender XML es indispensable (al menos la información de configuración descriptiva se describe a través de XML). En el proceso de aprendizaje de JSP/Servlet, se debe combinar el aprendizaje de JDBC y la tecnología de desarrollo de bases de datos. Después de todo, la mayoría de los proyectos web Java están estrechamente integrados con las bases de datos.
4.2 Aprenda la tecnología de desarrollo de bases de datos
Aquí quiero centrarme en la tecnología de desarrollo de bases de datos. La tecnología de bases de datos es una habilidad esencial para construir sistemas empresariales Java. Los desarrolladores web deben dominar las declaraciones SQL como mínimo. ¡Uso! La tecnología de base de datos se puede dividir aproximadamente en tecnología DBA y tecnología de desarrollo de bases de datos. Para el desarrollo, debe centrarse en la tecnología de desarrollo de bases de datos y también debe dominar las operaciones básicas de la base de datos. Las bases de datos de uso común incluyen DB2, Oracle, SQLServer, MySQL, etc. Puede elegir una base de datos según sus necesidades reales y hacer grandes esfuerzos para dominar su tecnología de desarrollo.
Recuerde, aprender tecnología de desarrollo de bases de datos y aprender Java EE son relativamente independientes. Puede aprender tecnología de desarrollo de bases de datos (como declaraciones SQL, etc.) mientras aprende JSP/Servlet, o aprender primero la tecnología de desarrollo de bases de datos. luego aprenda JSP/Servlet.
4.3 Aprenda otras tecnologías de desarrollo de Java EE
En el futuro, podrá adquirir algunos conocimientos de EJB. La última versión de EJB es actualmente 3.0. Hay una gran diferencia. Teniendo en cuenta que EJB2.X todavía tiene un gran mercado de aplicaciones, se recomienda estudiar EJB 2.X/3.0 en combinación.
En el proceso de aprendizaje de EJB, también debe dominar el uso de un servidor de aplicaciones de nivel empresarial (como WebSphere, Weblogic, Sun Application Server o JBOSS, etc. Actualmente, tanto Sun Application Server9.X como JBOSS pueden admitir EJB 3.0). .
En estudios posteriores se irá ampliando paulatinamente a otras tecnologías Java EE.
5. Después
Cuando tenga algunos conocimientos sobre Java EE, naturalmente querrá continuar ampliando sus conocimientos. En este momento, podrá aprender Spring, Hibernate y varios. Un framework web (como Struts, JSF, Webwork o Tapestry, etc.).
Con la acumulación continua de tecnología y experiencia, se concentrará gradualmente en conocimientos de nivel superior, como análisis y diseño. En este momento, podrá aprender más UML, patrones y otros conocimientos relacionados (acumulados). cantidad de experiencia, usted mismo puede hacer arreglos para aprender este conocimiento).
6. Resumen
Recuerda siempre: de principio a fin, la práctica es una parte extremadamente importante del proceso de aprendizaje de la tecnología Java. ¡Es imposible aprender tecnología sin práctica!
Todavía no existe una solución mágica para el aprendizaje y la práctica de Java. Además, hay mucho que aprender paso a paso, ¡y la diligencia es de oro!
Sea bueno aprovechando los numerosos recursos de Internet y aprenda más de las experiencias de otras personas.
Diseño de arquitectura JAVA:
Diseño de arquitectura Java
La arquitectura de software como concepto se refleja tanto en aspectos tecnológicos como comerciales.
Desde una perspectiva técnica: La arquitectura del software actualiza continuamente su contenido con innovaciones tecnológicas. La arquitectura del software se basa en la tecnología actual y en algunos principios básicos.
Hablemos primero de algunos principios básicos:
Principio de estratificación: la estratificación es una idea clave que se utiliza para reducir la profundidad y la complejidad del software. Así como la sociedad tiene clases, el software tiene jerarquía.
Principio de modularidad: la modularización es un medio inevitable para resolver la amplitud y complejidad del software. El propósito de la modularización es permitir que el software divida el trabajo.
Con la mejora continua del principio de separación de la implementación de la interfaz, la programación orientada a la interfaz en lugar de la programación orientada a la implementación puede permitir que un software cada vez más complejo reduzca el acoplamiento entre módulos, haciendo que cada módulo sea más consistente. Partiendo de este principio, el software también se ha estandarizado cuidadosamente desde una perspectiva micro.
Hay dos principios más pequeños pero muy importantes:
El principio de ocultación de detalles obviamente simplifica problemas complejos y oculta detalles feos, lo que puede hacer que la estructura del software sea más clara. De hecho, este principio se usa con mucha frecuencia. El principio de encapsulación en el lenguaje Java/C y el modo Fachada (apariencia) en el patrón de diseño pueden encarnar el espíritu de este principio.
Principio de inversión de dependencia Con el mayor desarrollo de la estructura del software, la dependencia entre capas y módulos se ha profundizado gradualmente, y los requisitos de conectabilidad dinámica de capas y módulos han aumentado sin razón. El principio de inversión de dependencia puede verse como la profundización del principio de separación de implementación de interfaces. Según el espíritu de este principio, el software ha entrado en la era de las herramientas. Este principio es algo similar a la conocida regla de Hollywood: no nos llames, nosotros te llamaremos.
Los principios anteriores establecen los indicadores de valor de nuestra arquitectura de software. Pero, después de todo, la arquitectura del software se basa en la tecnología actual. Y cada generación de tecnología tiene patrones arquitectónicos. No hablemos más del pasado. Echemos un vistazo a las tecnologías populares actuales y las arquitecturas que podemos adoptar actualmente.
Debido a que la orientación a objetos es actualmente la tecnología de desarrollo más popular, y el uso extensivo de patrones de diseño ha hecho que la orientación a objetos madure, y la base de datos es actualmente la estructura de almacenamiento más efectiva, y la interfaz web es actualmente la interfaz de usuario más popular. Por lo tanto, la arquitectura de tres capas más típica actual se basa en las tecnologías anteriores, utilizando la base de datos como capa de almacenamiento, la orientada a objetos para implementar la capa empresarial y la web como capa de interfaz de usuario. Comencemos con la arquitectura de tres niveles:
Debido a que la tecnología orientada a objetos y la tecnología de base de datos no son compatibles, agregamos una capa de persistencia de datos a la arquitectura estándar de tres niveles para administrar el mapeo bidireccional O-R, pero hay Actualmente no existe una tecnología de implementación óptima. Las tecnologías cmp y Entity Bean están a punto de ser eliminadas debido a su compleja implementación y sus limitadas perspectivas funcionales. JDO e hibernación son los últimos en llegar al mapeo o, especialmente hibernación, que tiene funciones bastante completas. Recomendado como primera opción para la capa de persistencia
En la capa empresarial, debido a que el negocio actual está cada vez más cargado y cambia con frecuencia, debemos tener una tecnología lo suficientemente ágil para asegurar nuestra capacidad de adaptarnos a los cambios en el estándar. Sistema j2ee, sesión El bean es responsable del procesamiento comercial y tiene un buen rendimiento. Sin embargo, el uso del sistema ejb cambia demasiado el modelo de arquitectura comercial, es complejo y costoso y tiene poca portabilidad del código comercial. Spring, como arquitectura liviana para la configuración de beans y una hermosa implementación del modo IOC, tiene poco impacto en la arquitectura empresarial, por lo que se recomienda como marco empresarial de nivel medio.
En la capa de estructura del usuario, aunque servlet/jsp/jstl/javaBean puede implementar la arquitectura MVC, después de todo es demasiado tosco. La implementación de Struts de la arquitectura MVC es relativamente perfecta. Taperstry también implementa muy bien la arquitectura MVC y adopta un enfoque basado en eventos, lo cual es muy atractivo, pero aún no está lo suficientemente maduro. Todavía recomendamos struts como infraestructura de capa de interfaz de usuario. .
Debido a que la capa empresarial es la más decisiva de la arquitectura de tres capas, volvamos a la capa empresarial y analicémosla en detalle. En empresas complejas, a menudo necesitamos uno o más de los siguientes servicios básicos. : Servicio de coherencia de transacciones ácido (herramienta: jta/jts), servicio de bloqueo concurrente concurrente&lock, caché del servicio de gestión de grupos, servicio de control de acceso (herramienta: jaas), flujo de trabajo del servicio de control de procesos, servicio de implementación dinámica IOC, servicio de mensajes en serie (herramienta: jms), servicio de equilibrio de carga, etc. Si no utilizamos servidores de aplicaciones pesados (como weblogic, websphere, jboss, etc.) y componentes pesados (EJB), debemos implementar algunos de estos servicios nosotros mismos. Aunque en la mayoría de los casos no necesitamos todos estos servicios, no es fácil implementarlos. Afortunadamente, tenemos una gran cantidad de código de implementación de código abierto, pero adoptar código fuente abierto a menudo no es una tarea fácil.
A medida que xml se vuelve cada vez más importante como transmisión y almacenamiento de información estructurada, el uso de algunas herramientas de manipulación de documentos xml (DOM, Digester, SAX, etc.) se vuelve cada vez más importante, y con la herramienta de enlace java del esquema xml (JAXB). Existe una tendencia creciente a utilizar xquery como lenguaje de consulta para bases de datos xml. Hay otra tendencia recientemente: Microsoft, IBM, etc. han desarrollado una gran cantidad de software intermedio como (InfoPath de Microsoft Office), que puede generar directamente páginas de entrada y otras funciones muy prácticas a partir del esquema XML.
Y la aplicación generalizada de servicios web tendrá un impacto muy significativo en la arquitectura del software. En cuanto a las perspectivas de la arquitectura orientada a servicios (SOA) y cuándo la arquitectura de tres niveles pasará a la historia, todavía es difícil de determinar.
El desarrollo de aop también tendrá un profundo impacto en la arquitectura de software. Sin embargo, en la arquitectura orientada a objetos, ya sea aspecto J o jboss-aop o aspecto Werks y nanning, tienen sus propios problemas graves: la capacidad de mantenimiento es muy baja. Malo, por lo que será difícil llegar lejos. Quizás sea una buena idea que se utilice en servicios web.
Como lenguajes icónicos del modelo semántico del W3C, es difícil imaginar que rdf y owl tendrán un gran impacto en la arquitectura empresarial actual. Pero si hace lo que dice, cambia ampliamente la estructura de la información. También tendrá un profundo impacto en la arquitectura del software.
Aquí puedo recomendar Yingcai Tianyi a aquellos que quieran aprender este conocimiento. Esta escuela es bastante buena. Sin embargo, es la institución profesional de mayor nivel en China que se enfoca en capacitar a desarrolladores de software de diseño de arquitectura. Esta escuela tiene requisitos relativamente altos para el ingreso de estudiantes. Si está interesado, puede consultar su escuela en línea.
Algunos consejos sobre diseño arquitectónico:
Intente construir una capa de objetos persistentes completa. Puede obtener altos rendimientos.
Intente superponer y bloquear cada función. El módulo se basa en la apariencia supuesta de otros módulos.
No puede confiar en datos estáticos para implementar el modo IOC. Debe confiar en la interfaz de función de datos. Los datos estáticos son solo uno de los métodos de implementación de la función de datos. interfaz
Al diseñar la arquitectura, se admite xml en lugar de depender de él. Sin embargo, puede proporcionar la implementación de una única versión xml
Desde una perspectiva empresarial: la arquitectura del software debe ser. Sin embargo, una arquitectura empresarial que refleja profundamente las reglas internas del negocio debido a que el negocio cambia con frecuencia, es difícil que la arquitectura del software permanezca constante, pero los cambios frecuentes en el negocio no deberían ser la razón para cambios frecuentes y a gran escala en. Arquitectura de software. La arquitectura de software debe ser una arquitectura basada en cambios.
Una empresa tiene sus razones para existir estable durante un período de tiempo (no hablemos de eso por ahora). Hay muchos casos de uso dentro de la empresa. Cada caso de uso tiene reglas fijas y cada regla tiene. algunos disponibles Cada uno de los elementos determinados es medible desde una determinada dimensión. Nuestra arquitectura primero debe asegurarse de que se adapta perfectamente a cada elemento y a cada método de medición. Muchas arquitecturas fallidas se deben a los cambios en los métodos de medición de muchos elementos. .
Cada caso de uso tiene reglas. Cuando analizamos los casos de uso empresarial, a menudo asumimos que algunas reglas son a priori y estables. Sin embargo, los cambios comerciales posteriores a menudo demuestran que esta visión es incorrecta. ha pagado un precio irreparable por ello. Una gran cantidad de hechos demuestran que los cambios en las reglas suelen ser la causa fundamental de los cambios en los casos de uso. Por lo tanto, nuestra arquitectura debe adaptarse a los cambios de reglas tanto como sea posible y establecer plantillas de reglas tanto como sea posible.
Cada caso de uso está relacionado con diferentes roles. La generación de cada caso de uso debe deberse al cambio del rol (nota: no reemplazo, sino mejora o debilitamiento), por lo que prestar atención a varias situaciones posibles del rol es de gran importancia para el diseño de la arquitectura. En nuestra arquitectura actual de tres niveles, los roles se corresponden perfectamente con el concepto de interfaz.
En un sistema, muchos casos de uso están relacionados entre sí. Teniendo en cuenta que cada caso de uso puede tener diferentes casos especiales, el principio de inversión de dependencia debe adoptarse tanto como sea posible en el diseño de la arquitectura. Si la arquitectura lo permite, se puede utilizar el modelo de mensajería (JMS). Esto reduce el acoplamiento.
Ahora hablemos del impacto que la estabilidad empresarial tiene como razón de ser en el negocio. La existencia es razonable, lo que ciertamente es cierto en este caso. Los negocios existen gracias a las personas, por lo que preguntar el motivo de la existencia del negocio es preguntar a diferentes roles por qué necesitan este negocio y por qué les gusta o no el caso de uso comercial actual. Todos esos roles deben reservarse en el sistema.
Hay varios principios a considerar en el diseño arquitectónico:
Los casos de uso deben subdividirse tanto como sea posible
Los casos de uso deben ser lo más abstractos posible p>
Los roles deben ser lo más independientes posible
Principio de medición independiente
Buscar la simplicidad
Aquí no se proporcionan ejemplos relevantes, pero se proporcionarán ejemplos. proporcionado en futuras actualizaciones.
La relación entre negocio y patrones
La relación entre algunos casos de uso en el negocio suele ser muy similar a algunos patrones convencionales. Pero a medida que pasó el tiempo, se fue alejando gradualmente del modelo anterior. Este es un fenómeno normal. Sin embargo, esto tiene requisitos muy altos en la arquitectura del sistema, lo que requiere que la arquitectura del sistema pueda adaptarse al reemplazo de algunos modelos. Aquí notamos los cambios de roles mutuos entre casos de uso lo antes posible para prepararnos para las actualizaciones de arquitectura.