¿Cómo evitar la filtración del código fuente del software desarrollado en Ruby?
En Java, el código para encontrar el valor absoluto de un número es el siguiente.
int c = math . ABS(-20);
En el lenguaje Ruby, todo es un objeto, lo que significa que el número "-20" también es un objeto. Por tanto, el código Ruby para encontrar el valor absoluto de un número es el siguiente.
C=-20. ¿Es más vívido escribir código como ABS?
El framework Rails es un framework de desarrollo web más práctico y eficiente. Rails combina las ventajas del sistema PHP (desarrollo rápido) y el sistema Java (programación convencional).
Rails es un marco MVC completo. En otras palabras, todos los niveles del patrón MVC se pueden implementar a través de Rails y pueden funcionar juntos sin problemas.
En el desarrollo real de un proyecto de aplicación web modelo MVC, si se usa Java para el desarrollo, se deben usar marcos como Struts, Hibernate y Spring, y el contenido desarrollado por los tres marcos debe usarse integrarse adicionalmente. Al desarrollar el mismo proyecto en Ruby, solo se requiere el marco Rails.
La eficiencia de RoR es definitivamente un orden de magnitud mayor que la de Java. Esto es de hecho un hecho, y es al menos varias veces mayor que la de PHP. Esto también es un hecho y no lo abordaré en este artículo, pero también quiero compartir mi opinión sobre por qué la eficiencia del desarrollo es tan alta, lo cual, por supuesto, es inmaduro:
Primero, La razón principal es que la gramática del idioma Ruby es muy complicada. Recuerdo que Zhuang Biaowai dijo un punto de vista: "El marco es fortalecer la gramática", lo que significa que la gramática es débil, por lo que se necesitan N marcos. Si la gramática es sólida, habrá menos marcos. Esto ha sido probado en Java y Ruby.
1. Las clases abiertas de Ruby VS AOP de Java, reflexión, proxy dinámico, mejora de código de bytes y otras tecnologías comenzaron a introducir la reflexión, lo que abrió la caja de Pandora de Java, un lenguaje de tipado estático. en sintaxis de tipo dinámico. Luego, la tecnología de proxy dinámico, la tecnología de mejora de código de bytes y la tecnología AOP estática y dinámica comenzaron a surgir sin cesar. ¿Por qué? Es necesario cambiar dinámicamente el comportamiento del objeto mientras se ejecuta el programa. Pero para Ruby, es una clase abierta que admite la modificación del comportamiento de los objetos a nivel de sintaxis, por lo que las funciones que requieren la implementación de tecnología compleja en Java son muy simples para Ruby.
2. Escritura del pato de Ruby frente al IoC de Java, no hace falta decir que el IoC genérico de Java, los genéricos también se usan ampliamente a nivel de biblioteca. IoC ensambla objetos en función de su comportamiento, mientras que los genéricos determinan la interacción de los objetos pero no el comportamiento de los objetos. Sin embargo, el comportamiento del objeto de Ruby se determina en tiempo de ejecución, por lo que es universal y su comportamiento no es estático, por lo que no se requiere IoC.
3. Bloque de Ruby, cierre VS clase interna anónima de Java. Todo el mundo debe quedar impresionado con las plantillas de Spring, pero este es el uso del estándar Ruby, por lo que admite la liberación de varios recursos y el manejo de excepciones a nivel de sintaxis, y es muy simple de hacer.
4.La metaprogramación de Ruby VS Java carece del conocido mecanismo de pérdida de método. Java no tiene una metaprogramación tan fuerte y mucha magia de Ruby no se puede realizar.
5. Lenguaje de scripting versus lenguaje compilado. Esto también es una gran ventaja. El scripting es realmente rápido.
En segundo lugar, el marco de Rails es realmente genial.
1 y full-stackrails son un framework fullstack con el mismo concepto. No sé por qué, en el mundo Java, solo Rife se puede comparar con RoR, pero la implementación de Rife no es buena (el autor se transfirió de PHP y comenzó una guerra de palabras con DHH). Sin embargo, el marco RoR no se puede crear en Java debido a la compatibilidad diferente de la sintaxis subyacente. Entonces, algunas personas usan Groovy para hacer Grails, pero estas personas no están a la altura.
2. No hace falta decir que, CoC, muchos mvcs de primavera han comenzado a absorber esto.
3. Crear un buen desarrollo web requiere el uso de varias tecnologías, lo cual es absolutamente considerado. Si usa Java, estas cosas deben ser integradas o implementadas por usted mismo, lo que le ahorra muchos problemas.
4. Desarrollo, pruebas e implementación rápidos, sin mencionar esto, las desventajas de Java son demasiado obvias.
En cuanto a la cuestión de "la fuente de mejora de la eficiencia", tengo entendido que el ROR reduce la complejidad cuadrática al extremo. Para decirlo sin rodeos, no es que ROR sea demasiado inteligente, sino que hemos hecho demasiadas cosas estúpidas antes. Varios xml, taglib, pruebas unitarias son difíciles...
Cualquiera que haya participado en un proyecto sabe que estas pequeñas complejidades son fatales en muchos casos. ROR no reduce la complejidad inherente del software, que es el problema empresarial. Sin embargo, reduce la complejidad al infinito y se acerca a la complejidad empresarial. Algunas personas llaman a ROR el DSL para el desarrollo web. Y en la resolución de problemas empresariales es donde entran en juego los talentos de las personas. ROR no puede reemplazar a las personas, pero puede rescatarlas del atolladero de la complejidad secundaria.
Materiales de referencia:
Tecnología de la información Nanjing Saiwei