Manual de análisis del código fuente Jdk
Sólo quiero añadir un punto aquí. Mucha gente empieza a aprender Java con el libro "Pensar en Java", pero creo que este libro no es adecuado para principiantes. Creo que la forma correcta de utilizar este libro es como lectura complementaria. "Pensar en Java" no es una introducción completa a todo el sistema Java, sino un método de escritura avanzado, un método similar a los consejos, que proporciona un análisis y una explicación en profundidad de muchos puntos de conocimiento de Java.
Para los principiantes, es mejor encontrar un libro introductorio sobre Java, pero debe presentar la sintaxis de Java, las características orientadas a objetos, las bibliotecas de clases principales, etc. de una manera relativamente completa y ordenada. Mientras lee este libro, puede leer "Pensar en Java" simultáneamente para profundizar su comprensión de Java y sus principales aplicaciones y, al mismo tiempo, también puede tener una comprensión integral de todo el sistema Java.
En cuanto a los libros de introducción a Java, Cai recomendó "Exploring Java, Second Edition" o "Java in a Nutshell, Second Edition" (C Background) de Oreilly, que no he leído. De hecho, creo que las explicaciones detalladas de "Programación Java 2" o "Java 2 desde el inicio hasta el dominio" de Electronic Industry Press son muy buenas.
Entre todos los libros sobre Java, el más útil no es la serie Java de O'reilly, ¡sino la documentación JDK! Casi todo el conocimiento que desea adquirir está contenido en la documentación. La parte más importante es, por supuesto, la documentación API de la biblioteca de clases básica de Java, que está organizada por paquetes. Cada clase tiene una explicación detallada, su relación de herencia, si implementa una interfaz y dónde se usa habitualmente. También puede conocer todas sus propiedades y métodos públicos, la explicación y significado de cada propiedad, el propósito de cada método, los parámetros de la llamada, el significado de los parámetros y el valor de retorno. Se puede decir que todos los libros sobre programación Java en realidad solo utilizan un lenguaje relativamente fácil de entender y una buena organización para introducir el uso de algunas clases contenidas en un paquete en el documento. Por lo tanto, si es lo suficientemente capaz de aprender la biblioteca de clases de Java directamente a través de la documentación, básicamente no es necesario leer otros libros. Además, la documentación también es un manual imprescindible para la programación. Hay tres accesos directos a documentos en mi escritorio, a saber, J2SDK1.4.1, Servlet2.3 y J2SDKEEE1. Con estos tres documentos no hace falta ningún otro libro.
Para la programación Web Java lo más importante es conocer y dominar el protocolo HTTP, que nada tiene que ver con Java. Una vez que esté familiarizado con el protocolo HTTP, también debe estar familiarizado con la biblioteca de clases Java que implementa el protocolo HTTP, que es la API de Servlet, por lo que lo más importante es la API de Servlet. Por supuesto, es muy difícil para los principiantes aprender programación web directamente a través de la API de Servlet. Para aprender programación web, recomendamos las páginas del servidor Java de O'reilly.
Entre los libros de EJB, "Enterprise JavaBeans, Second Edition" es un libro muy bueno. El umbral de aprendizaje de EJB es relativamente alto y es difícil comenzar, pero este libro reduce por completo la dificultad de aprendizaje. Lo que es particularmente importante es que el aprendizaje de EJB debe combinarse con la implementación específica de un servidor de aplicaciones. Por lo tanto, mientras aprende EJB, también debe aprender algún tipo de servidor de aplicaciones al mismo tiempo, y este libro está relacionado con Weblogic6.1, Websphere4. 0 y JBoss3.0. Este libro presta igual atención a la teoría y la práctica. Al aprender EJB, puedes verlo y hacerlo al mismo tiempo, y aprender EJB será muy fácil.
Pero este libro también tiene un problema, es decir, la versión es relativamente antigua y se centra principalmente en la especificación EJB1.1 y algunas especificaciones EJB2.0.
El libro "Mastering EJB 2.0" escrito por Ed Roman está escrito enteramente de acuerdo con las especificaciones de EJB 2.0. Cubre todos los aspectos de la programación EJB de una manera simple y fácil de entender, y tiene muchos consejos para la experiencia en programación. También es uno de los libros más recomendados para aprender EJB.
Si combinas Weblogic para aprender J2EE, las aplicaciones J2EE y BEA Weblogic Server son definitivamente las primeras opciones. Aunque se trata de Weblogic6.0, vale la pena comprarlo. Este libro está recomendado oficialmente por BEA y el autor también es ingeniero en BEA. Las versiones chinas ahora están disponibles en todas partes. Este libro presenta el desarrollo y la implementación de varias tecnologías J2EE en la plataforma Weblogic, lo que tiene una gran importancia práctica.
Después de dominar los conocimientos básicos de la plataforma Java y J2EE, y aprender más a utilizar métodos OO para diseñar software, debe aprender "patrones de diseño". Sun ha publicado "J2EE Core Model", que es un libro imprescindible para todo arquitecto que desarrolle software de plataforma empresarial Java. Este libro presenta de manera integral varios patrones de diseño de la arquitectura J2EE y es una lectura obligada para los diseñadores.
Proceso de la ruta de aprendizaje de Java (3)
El método de aprendizaje de cada persona es diferente. El enfoque de una persona puede no funcionar para otra. Solo puedo hablar de mis propios métodos de aprendizaje. Debido a que aprendí Java completamente por mi cuenta y nunca le pregunté a nadie más, el proceso de aprendizaje fue básicamente todo por mi cuenta. No sé si este método es mejor, solo puedo brindarles alguna referencia.
El primer paso para aprender Java es instalar JDK y escribir un Hello World. De hecho, aprender JDK no es tan sencillo. Hay dos problemas acerca de JDK que fácilmente preocupan a los programadores de Java: uno es el problema de la ruta de clases. De hecho, en principio, necesitamos descubrir cómo el ClassLoader de JRE carga la clase. Otro problema es el problema del empaquetado y la importación, y cómo encontrar la ruta de la clase; Si estos dos problemas se exploran claramente, se eliminará el mayor obstáculo para aprender Java y usar JDK. Se recomienda leer "Java Deep Adventure" de Wilson para explorar estos dos temas en profundidad.
El segundo paso es aprender la sintaxis de Java. La sintaxis de Java es C. Básicamente, el lenguaje de programación convencional es C o C. No hay nada nuevo, por lo que te llevará aproximadamente medio día aprender la gramática. Lo único a lo que debe prestar atención es al uso de varias palabras clave que no son fáciles de entender, como pública, protegida, privada, estática, cuándo usarlas, por qué usarlas y cómo usarlas. Esto podría requerir que alguien me dé algún consejo. Lo descubrí todo por mi cuenta y me llevó mucho tiempo. Pero luego vi el libro "Pensar en Java", que hablaba de estos conceptos.
El tercer paso es conocer las características del lenguaje de programación orientado a objetos Java. Como herencia de Java, constructores, clases abstractas, interfaces, polimorfismo de métodos, sobrecarga, sobrescritura, mecanismos de manejo de excepciones, etc. Para alguien que no tiene experiencia en lenguajes orientados a objetos, creo que este proceso será relativamente largo, porque no tenía experiencia en C antes de aprender Java, solo experiencia en C. Me tomó aproximadamente un mes comprender a fondo estos conceptos y repetirlo. , revise y pruebe los ejemplos del libro y lea el contenido de esos capítulos más de cinco veces antes de comprenderlos por completo. Pero creo que si tengo experiencia C, uno o dos días deberían ser suficientes. Luego, durante este proceso, puedes leer más sobre el libro "Pensar en Java", que explica muy detalladamente la orientación a objetos. Es una pena que no vi este libro cuando estaba estudiando, así que pasé mucho tiempo intentando aprenderlo yo mismo.
El cuarto paso es familiarizarse con la biblioteca de clases de Java. La biblioteca de clases básica de Java es en realidad el paquete jre\lib\rt.jar en el directorio de instalación de JDK. Aprender la biblioteca de clases básica significa aprender que hay muchas clases en la biblioteca de clases básica rt.jar. Se dice que son más de 3.000, pero no los he contado.
Pero para nosotros, solo hay cuatro núcleos, a saber,
Java .
Java . SQL . *;
El estudio de estos cuatro paquetes se puede escribir en un libro de texto grueso, y O'Reilly hizo precisamente eso. Creo que si tienes poco tiempo, es imposible aprenderlo leyendo cuatro libros. Creo que un mejor método de aprendizaje es este:
Primero, lea todo el marco del paquete y comprenda la estructura de las clases, interfaces y excepciones de todo el paquete. Lo mejor sería encontrar un artículo que presente el marco completo del paquete. Los primeros capítulos de los libros dedicados a los paquetes deberían ser una introducción al marco general.
Para comprender el marco general del paquete, no es necesario estar familiarizado con el uso de cada clase y recordar qué atributos y métodos tiene. No lo recuerdo. En cambio, necesita saber qué aspectos del paquete se componen de clases, cuál es el propósito de esas clases y qué funciones cumplen las clases principales. Cuando entreno a la gente, normalmente hablo de cada paquete uno por uno. Es imposible presentar el uso de cada clase en detalle. Pero he enfatizado repetidamente que el propósito de contarle estos paquetes no es decirle cómo llamar a los métodos de la clase, ni permitirle recordar las llamadas a los métodos de la clase, sino hacerle saber qué clases nos proporciona Java. y cómo utiliza cada clase. Dónde, cuando tengo un problema, sé qué clase o combinación de clases puede resolver mi problema. Cuando escribimos un programa en detalle, basta con que sepas qué clase utilizar para completar tu trabajo. Al codificar, la llamada al método específico es escribir el código y verificar la documentación. Todo está en la documentación para que no tengas que recordarlo. De hecho, no puede recordar el número total de casi 6,5438 millones de llamadas a métodos en más de 3000 clases. Por lo tanto, es extremadamente importante comprender el marco general de cada paquete.
El quinto paso, a través del aprendizaje anterior, si ha aprendido de manera más sólida, habrá sentado una buena base de Java. El trabajo restante es limpiar la documentación para otras clases útiles además de los cuatro paquetes anteriores. Creo que en este punto, la capacidad de autoaprendizaje de Java se ha desarrollado y puede alcanzar el nivel de aprendizaje directo de documentos. Además de la programación GUI, otros paquetes de software útiles en el JDK son:
Java text.*;
Java net.*;
javax. naming. *;
En realidad, solo se utilizan unas pocas clases en estos paquetes, por lo que no lleva mucho tiempo.
El sexto paso es la programación Web Java.
El núcleo de la programación Web es el protocolo HTTP y no tiene nada que ver con Java. Si no está familiarizado con el protocolo HTTP, puede aprender bien a programar Servlet/JSP, pero no puede sacar inferencias de un ejemplo. Por tanto, es necesaria una investigación sobre el protocolo HTTP. Si estoy familiarizado con el protocolo HTTP y tengo una buena base en programación Java, aprender Servlet/JSP es pan comido. Me tomó menos de una semana aprender Servlet/JSP y luego comencé a trabajar en proyectos con JSP.
En el estudio de Servlet/JSP, la documentación de Servlet sigue siendo el foco. Las clases de Servlet API más utilizadas son pocas, por lo que dominarlas requiere menos tiempo. Lea todas estas lecciones e intente escribir algunos ejemplos más. La esencia de la programación Servlet/JSP es llamar a estas clases repetidamente y comunicarse entre el servidor web y el navegador a través del protocolo HTTP. Además, para JSP, es necesario estar familiarizado con varias etiquetas JSP comunes. Si no recuerdas la forma específica de escribirlo, búscalo temporalmente.
Además, el enfoque del aprendizaje de programación web Java debe ser los patrones de diseño de las aplicaciones web, cómo analizar la lógica empresarial y cómo diseñar de manera razonable. De acuerdo con los requisitos del patrón de diseño MVC, Servlet y JSP se utilizan para completar diferentes capas lógicas, así como cómo controlar el proceso y compartir datos entre Servlet y JSP, y cómo configurar e implementar aplicaciones web.
El séptimo paso es la programación J2EE.
Si el proceso de aprendizaje anterior se desarrolla sin problemas, la dificultad aumentará repentinamente en este paso. Dado que el conocimiento anterior solo involucra un aspecto, y las especificaciones centrales de J2EE como EJB, JMS y JTA son a menudo el resultado de la aplicación integral de varias tecnologías Java, son difíciles de dominar.
En primer lugar, debemos aprender bien JNDI. JNDI es un método de búsqueda para localizar recursos del servidor (componentes EJB, Datasouce, JMS) a través de App Server. Si no está familiarizado con JNDI, le resultará difícil aprender EJB y JMS. JNDI es en realidad el paquete javax.naming.*, que es muy sencillo de usar. La dificultad radica en la configuración de los archivos de recursos del servidor. Para la configuración de los archivos de recursos del servidor, debe consultar especificaciones de documentos especiales, como la preparación de web.xml, ejb-jar.xml, etc. También debe estar familiarizado con cada servidor de aplicaciones diferente y con sus propios archivos de configuración de recursos de servicio.
Luego podrás aprender JTA, principalmente para comprender cómo JTA controla las transacciones y dónde utilizar JTA. Aquí se puede dar un ejemplo sencillo. Sabemos que, en general, el control de transacciones (conn.set autocommit (false),..., conn.commit()) se puede realizar como una operación atómica, pero si mi requisito comercial es tratar las operaciones en dos bases de datos diferentes como una sola, ¿es así? ¿Es posible tratarlo como una operación atómica? JTA sólo se puede utilizar en este momento. Suponiendo que el proceso de operación es insertar un registro en la base de datos A y luego eliminar otro registro en la base de datos B, no podemos controlar toda la operación en una operación atómica escribiendo nuestro propio código. Con JTA, el control lo realiza el servidor de aplicaciones.
Antes de aprender EJB, debes aprender la serialización de objetos y RMI, que son la base de EJB. Luego aprenda JMS y EJB. Para EJB, lo más importante es comprender cómo EJB llama a objetos remotos a través de RMI y en qué circunstancias se utiliza EJB.
Después de aprender EJB y JMS, es posible que te des cuenta de que no puedes esperar para aprender dos áreas de conocimiento, una es UML y la otra son patrones de diseño. El diseño del software empresarial Java concede gran importancia al diseño del marco. Un buen marco de software es una condición necesaria para el desarrollo de software exitoso. En este momento, deberíamos comenzar a centrarnos en el estudio de patrones y marcos de diseño, y dominar los patrones de diseño de EJB y los patrones centrales de J2EE a través del aprendizaje y la experiencia práctica en programación.
Además de EJB, JMS, JTA, Servlet/JSP y JDBC, existen muchas tecnologías empresariales en la especificación J2EE, que no se presentarán aquí.
También hay un nuevo campo, los servicios web. No hay nada nuevo acerca de los servicios web. Es como un pegamento que puede unificar diferentes servicios y proporcionar una interfaz de llamadas unificada. Como usuario, sólo necesito obtener el WSDL (Descripción del Servicio) proporcionado por el proveedor del servicio. No sé si el servicio proporcionado por el proveedor del servidor es un componente EJB, un componente .Net, un componente CORBA o cualquier otra implementación, y no necesito saberlo. Lo mejor de los servicios web es que permiten disfrutar de todo el servicio de Internet mediante la prestación e invocación de servicios unificados. Es un campo técnico muy apasionante. Parece que actualmente no existen buenos libros sobre servicios web, pero puede consultar la información en línea y obtener información al respecto.
Método de la ruta de aprendizaje de Java (IV)
Como lenguaje de programación, la mejor manera de aprender Java es escribir código. Cuando aprende una clase, puede escribir un programa de ejemplo simple para ejecutarla y ver cuál es el resultado, y luego llamar a varios métodos de la clase para ver el resultado de la ejecución, de modo que pueda aprender la clase de manera intuitiva y recordarla muy. profundamente. Entonces no deberías conformarte con simplemente modificar el código. Deberías pensar en ello. Si no lo escribo de esta manera, inténtalo de otra manera. Recuerdo que un experto dijo que aprender a programar es un proceso destructivo. Después de leer los ejemplos del libro y los ejemplos escritos en la documentación de autoestudio, seguí intentando implementarlos de diferentes maneras y seguí intentando destruir la estructura del código para ver cuáles serían los resultados.
De esta forma tendrás un dominio completo de Java.
Por ejemplo, todos hemos compilado Hello World.
Clase pública HolaMundo {
Public static void main(String[] args) {
system out . p>
p>
}
}
Muchos principiantes no entienden por qué el método principal debe definirse así: public static void main(string[] argumentos). ¿Puedes escribirlo de otra manera? Incluso cuando aprendí Java por primera vez, también tuve esas preguntas. ¿Quieres saber la respuesta? Es muy simple: cambia el nombre de main y lo ejecuta para ver qué errores se informan, y luego lo analiza en función de la información de error; elimina el público de main y vuelve a intentarlo, y habrá un informe de error estático; ¿Se eliminará la electricidad? No sé si el método principal debe pasar una matriz String[], así que cambie String[] a int[], o pruebe String si no sabe si escribir el nombre del parámetro args, también puede hacerlo; cambie args a otro nombre y vea cuáles son los resultados de la ejecución.
Esto es lo que hice cuando aprendí Java por primera vez. Cambié el programa Hello World siete u ocho veces, seguí ejecutándolo, analicé los resultados de la ejecución y finalmente entendí por qué el método principal estaba definido de esta manera.
Además, no sé mucho sobre estática, pública, privada, excepción, try{ }catch {}finally{}, etc. Al principio, ejecuté con éxito los ejemplos del libro de referencia y luego comencé a destruirlos. Seguí reescribiendo el programa según mis propias dudas para ver si podía ejecutarse, cómo se veía y si podía obtener los resultados esperados. . Aunque esto lleva mucho tiempo, después de que un programa de muestra se haya roto varias veces. He aprendido este conocimiento relevante muy a fondo. A veces incluso escribimos deliberadamente algún código incorrecto y lo ejecutamos para ver si podemos obtener el error de ejecución esperado. Este dominio de la programación es extremadamente profundo.
Vale la pena mencionar especialmente que el JDK tiene una excelente función de depuración, detallada.
Java – Detallado
Javac -verbose y muchas otras herramientas JDK tienen esta opción.
-verbose puede mostrar dónde la JVM carga las clases en secuencia durante la ejecución del comando. A través de esta valiosa información de depuración, podemos ayudarnos a analizar qué hizo la JVM durante la ejecución.
Además, en el proceso de aprendizaje, he escrito muchas rutinas destructivas de este tipo, que deben clasificarse y guardarse conscientemente, y las rutinas típicas acumuladas en el trabajo también deben organizarse periódicamente. Con el tiempo, tuve una base de código. Si encuentra un problema similar, vaya a la base del código y copie y pegue, busque y. Simplemente reemplácelo, lo que mejora enormemente la velocidad de desarrollo. La situación más ideal es abstraer algunas rutinas comunes, formar una biblioteca de clases común y empaquetarlas. Entonces la reutilización es más fuerte.
Así que no creo que haya ninguna necesidad especial de rutinas. La rutina de destrucción que escribiste tú mismo es el mejor ejemplo. Si está realmente preocupado por el código que escribe, le recomiendo encarecidamente que consulte el código fuente de Java de la biblioteca de clases base JDK. Habrá un src.zip en el directorio de instalación del JDK. Puede ver completamente toda la biblioteca de clases básicas JDK, que es el código fuente Java de rt.jar. Puede consultar cómo Sun escribe programas Java y cómo son las especificaciones. Cuando yo mismo estaba aprendiendo la biblioteca de clases de Java, cuando no entendía algo claramente o cuando quería comprender los detalles de la operación más claramente, a menudo abría el código fuente de la clase correspondiente. Después de leer el código fuente, se eliminarán todos los problemas.
Ruta de aprendizaje de Java (5) Recursos
1. /
Sitio web de DeveloperWorks de IBM, vaya directamente al sitio web principal en inglés.
Este no es solo un excelente sitio web de diseño y análisis orientado a objetos, sino también un excelente sitio web de servicios web, Java y Linux. ¡Muy recomendado! ! !
3. /index.jsp
El jardín de desarrolladores de BEA Como el fabricante de servidores de aplicaciones más importante, BEA tiene muchas tecnologías únicas. Los amigos que están desarrollando en Weblogic no deberían perderse.
5.jsp.org/
El sitio web de tecnología JSP tiene muchos artículos y recursos sobre Java.
9.com/book/index.html
========================== =======================================
==== ==================================================== ===========
-
Programador es un trabajo técnico y juega un papel muy importante en el desarrollo de TI. Desde el establecimiento del protocolo de comunicación de hardware subyacente hasta el procesamiento de la capa de transmisión de datos, la construcción del sistema operativo, la construcción de la plataforma de base de datos y la construcción de varias plataformas de marketing de datos en la capa de aplicación, los programadores juegan Un papel importante en ello. El desarrollo de las tecnologías de la información ha contribuido enormemente.
Hay muchas personas en China que son buenas codificando, pero hay muchos malentendidos en la industria del software de China, especialmente en el desarrollo de aplicaciones de red. Es difícil formar capacidades de desarrollo de software y de productos a gran escala. No solo está muy por detrás de Estados Unidos, sino que también es bastante inferior a la India. Estos problemas no residen en el coeficiente intelectual y el arduo trabajo de nuestros programadores, ni en la inversión del país y la gente en el desarrollo, sino en gran medida en algunos malentendidos ideológicos sobre la tecnología, el desarrollo de programas y el diseño de proyectos, que han llevado a las capacidades de producción de la industria del software son insuficientes, las capacidades de investigación y desarrollo de sistemas de reutilización a gran escala y a gran escala son insuficientes. Se puede decir que cambiar los malentendidos es una tarea importante para resolver las limitaciones que plantean el modelo de pequeño taller y el modelo de héroe personal en la industria del software.
Hay muchos niños en China. Tienen 18,9 años o 21,2 años respectivamente. También aprendieron por sí mismos a escribir mucho código. Algunos de ellos están bellamente escritos y otros tienen detalles técnicos sobresalientes y son fáciles de aprender. Sin embargo, se ven afectados por algunos malentendidos y opiniones, y carecen de una comprensión general de los sistemas y procedimientos. Esta gente, un amigo en línea, lo expresó muy bien. De hecho, son solo algunos fanáticos de la codificación y no están calificados para ser programadores, pero hasta donde yo sé, muchos CTO de pequeñas empresas de Internet son fanáticos de la codificación. El salario es aterrador, los proyectos son aterradores y el final. del proyecto suele dar miedo.
Cualidades básicas de un programador:
Ser un programador verdaderamente calificado, o un programador que realmente pueda completar algún trabajo de código, debe poseer todas las cualidades.
1: Espíritu de equipo y capacidad de cooperación
Considerar esto como una cualidad básica no deja de ser importante. Al contrario, es la base más básica e importante para que un programador se establezca y se gane la vida. Decir que los programadores senior son solitarios es una tontería. El poder de cualquier individuo es limitado. Incluso un genio como Linus necesita formar un equipo fuerte para crear milagros. Es impensable para aquellos maestros que escriben núcleos para Linux en todo el mundo sin el espíritu de cooperación. Los Llaneros Solitarios pueden crear un pequeño software rentable y hacer una pequeña fortuna, pero una vez que ingresan al equipo de RD de algunos sistemas grandes y se involucran en las tareas de comercialización y desarrollo de productos, las personas que carecen de esta cualidad quedan completamente descalificadas.
2. Hábitos de grabación
Lo cierto es que los programadores senior nunca escriben documentos. Una buena documentación es una parte muy importante del proceso formal de RD. Como programador de codificación, es normal dedicar el 30% de su tiempo de trabajo a escribir documentación técnica, pero como programador senior y analista de sistemas, esta proporción es mucho mayor.
Sin documentación, un sistema de software carecerá de vitalidad y encontrará grandes problemas en la detección de errores, actualizaciones y reutilización de módulos en el futuro.
3. Hábitos de escritura de código estandarizados y normalizados
Al igual que las reglas de algunas empresas de software extranjeras conocidas, la denominación de las variables en el código, el formato de los comentarios en el código, e incluso la longitud de las líneas anidadas, el número de líneas en blanco entre funciones se especifica claramente. Los buenos hábitos de escritura no sólo ayudan a la portabilidad del código y la corrección de errores, sino que también ayudan a la cooperación entre diferentes personal técnicos.
Algunos entusiastas de la codificación claman que otros nunca entenderán el código escrito por programadores experimentados. Este tipo de clamor sólo demuestra que no merecen llamarse programadores. La buena legibilidad del código es un requisito de calidad básico para los programadores.
Echemos un vistazo a la estructura completa de Linux. Sin estandarización y hábitos de codificación estandarizados, la cooperación global en I+D es absolutamente inimaginable.
4. La capacidad de comprender los requisitos
Los programadores necesitan comprender los requisitos de un módulo. Muchos niños tienden a centrarse únicamente en un requisito funcional cuando escriben programas. Atribuyen todos los indicadores de rendimiento al hardware, el sistema operativo y el entorno de desarrollo, ignorando las consideraciones de rendimiento de su propio código. Alguien se jactó una vez de que escribir un programa de intercambio de anuncios era muy fácil. Estas personas nunca saben cómo se consiguen los indicadores de rendimiento con millones o incluso decenas de millones de visitas. Para un programador así, incluso si le proporciona el sistema de Deep Blue, no podrá lograr las capacidades de acceso paralelo de Tai Chi Chain. Entre los requisitos de rendimiento, son muy importantes la estabilidad, el soporte de acceso paralelo y la seguridad. Como programador, debe evaluar el entorno en el que se ejecutará el módulo, la presión de carga que soportará y la posibilidad de que se produzcan diversos peligros potenciales y ataques maliciosos. En este punto, un programador maduro necesita al menos de 2 a 3 años de experiencia en desarrollo y seguimiento de proyectos antes de tener experiencia.
5. Reutilizabilidad, capacidad de pensamiento modular
A menudo escuchamos a algunos programadores quejarse de que se han convertido en trabajadores calificados después de escribir programas durante varios años. Reescriben código todos los días que no tiene nada nuevo que ofrecer. En realidad, este es el mayor desperdicio de talentos de software chinos. Algunas tareas repetitivas se han convertido en el trabajo principal de programadores expertos, lo cual es completamente evitable.
El diseño reutilizable y el pensamiento modular requieren que los programadores piensen más al completar cualquier módulo funcional o función, no limitándose a ideas simples para completar la tarea actual, sino que piensen si el módulo puede existir independientemente de este sistema. ¿Se puede hacer referencia directamente a él en otros sistemas y entornos de aplicaciones simplemente modificando los parámetros? Esto puede evitar en gran medida la duplicación del trabajo de desarrollo. Si una unidad de RD de software y un grupo de trabajo pueden considerar estos problemas en cada proceso de RD, los programadores no perderán demasiado tiempo en trabajos repetitivos y tendrán más tiempo y energía para invertir en la innovación.
Algunos buenos códigos de módulos de programas, incluso escritos en la década de 1970, ahora se pueden usar como módulos funcionales en algunos sistemas, pero lo que veo ahora es que muchas pequeñas empresas a menudo actualizan o mejoran el software simplemente reescribiéndolo todo. el código, la mayor parte del trabajo repetitivo es una pérdida de tiempo y energía.
Entre las cualidades que deben poseer los programadores
6. Hábitos de prueba
En cuanto a algún desarrollo comercial y estandarizado, los ingenieros de prueba a tiempo completo son esenciales, pero es necesario. no significa que los programadores no necesiten ingenieros de pruebas a tiempo completo para realizar autopruebas como proyecto; una característica muy importante del software RD es que cuanto antes se descubra el problema, menor será el costo de resolverlo; Al probar cuidadosamente cada fragmento de código y cada submódulo, los programadores pueden descubrir y resolver algunos problemas potenciales lo antes posible, garantizando así la eficiencia y confiabilidad de toda la construcción del sistema.
De hecho, las pruebas deben considerar dos aspectos. Por un lado, está la prueba de llamadas normales, que consiste en ver si el programa puede completar funciones básicas en llamadas normales. Esta es la responsabilidad de prueba más básica. Desafortunadamente, se ha convertido en la única tarea de prueba para muchas empresas, pero está lejos de serlo. El segundo aspecto es la prueba de llamadas anormales, como pruebas de estabilidad bajo carga de alto voltaje, pruebas bajo posible entrada anormal del usuario, pruebas del estado afectado del módulo bajo falla parcial de todo el sistema y pruebas de estabilidad del módulo cuando se bloquean solicitudes anormales frecuentes. recursos, etc.
Por supuesto, no es necesario que los programadores realicen pruebas tan completas en cada parte de su código, pero los programadores deben conocer la posición de sus tareas de código en todo el proyecto y los diversos requisitos de rendimiento, llevar a cabo pruebas relevantes de manera específica y descubrirlos lo antes posible y solucionar el problema. Por supuesto, esto requiere la capacidad antes mencionada de comprender las necesidades.
7. La capacidad de aprender y resumir
Los programadores son una profesión donde los talentos se pueden eliminar y dejar atrás fácilmente, porque una tecnología puede estar sólo tres o dos años por delante. Si los programadores quieren ganarse la vida, deben mantenerse al día con las nuevas tecnologías y aprender nuevas habilidades.
Ser bueno aprendiendo es una motivación necesaria para cualquier profesión, y este requisito es aún mayor para los programadores.
Pero aprender también requiere encontrar el objetivo. Algunos jóvenes fanáticos de la codificación también hablaron sobre sus habilidades de aprendizaje. Han estado aprendiendo asp, php, jsp por un tiempo. Usan esto como derecho de fanfarronear para perseguir ciegamente algunas cosas y sustantivos superficiales y superficiales, y realizan programas y aplicaciones de red sin comprender el procesamiento de vectores de interrupción. Estos técnicos, por muchos de los llamados nuevos idiomas que dominen, nunca lo harán.
Ser bueno resumiendo también es reflejo de la capacidad de aprendizaje. Cada vez que se completa una tarea de investigación y desarrollo, cada vez que se completa un fragmento de código, se debe realizar un seguimiento decidido de la aplicación y el uso del programa.