Qué desarrollar Oracle para un desarrollador en 2019 (y después)

Hace algún tiempo, una vez más cambié mi trabajo. El nuevo empleador fue tan amable que me permitió elegir cualquier IDE que me gustara y pagar la licencia (pero dentro de límites razonables). Además (por una vez) tenía derechos de administrador en una computadora que funcionaba, así que podía instalar cualquier cosa y probar tantas como quisiera. Intenté: Oracle SQL Developer, TOAD, Alt SQL Developer y (SUDDENLY!) IntelliJ IDEA (PL / SQL Developer no lo intentó, pero trabajó mucho antes). Si escribe regularmente código PL / SQL, o al menos hace solicitudes a la base de datos Oracle de vez en cuando, creo que será interesante que lea las conclusiones a las que he llegado.


Quiero advertirte de inmediato. No puedo decir que estudié cada IDE a fondo, y PL / SQL Developer, entre otras cosas, lo vi por última vez hace 5 años. Por lo tanto, siempre puede resultar que cuando digo "esto no está en el IDE", de hecho está allí, simplemente no lo encontré. Y cuando hablo de PL / SQL Developer, quiero decir que la versión parece ser 8 (que escribí hace 5 años). Es posible que mucho haya cambiado allí, y no necesariamente para mejor.


Competidores


Entonces, ¿qué tenemos? En primer lugar, esto es lo que se puede llamar los tres grandes del desarrollo de Oracle: TOAD, PL / SQL Developer y Oracle SQL Developer. Estos productos han estado en el mercado desde hace mucho tiempo, todos los conocen, cada producto tiene su propio ejército de fanáticos. Varias veces me encontré con la opinión de que TOAD se parece más a DBA, y PL / SQL Developer se parece más a los desarrolladores. Sobre Oracle SQL Developer, no he escuchado nada como esto, y el ejército de sus fanáticos, aparentemente, consiste principalmente en gerentes, y esto es solo porque es gratis.


Además, decidí incluir Alt SQL Developer (un producto, mucho tiempo, y quizás aún desarrollado por UNA persona) e IntelliJ IDEA (también conocido como Dios, él es Goga, él es DataGrip).


Para aquellos que no conocen el diseño de los productos JetBrains

El sistema hay algo como esto: hay IntelliJ IDEA Community Edition, es gratis para Java. Existen varios productos pagos similares (alrededor de un par de cientos de dólares / euros): RubyMine para Ruby, DataGrip para bases de datos, etc. Y está IntelliJ IDEA Ultimate Edition, que es la más cara (al parecer, alrededor de 650), pero combina la funcionalidad de todos los productos JetBrains. Todos estos productos tienen una interfaz idéntica y son muy similares, lo que facilita el cambio de uno a otro, incluso más fácil que de una versión de Excel a otra.
Por lo tanto, más adelante en el texto decimos IDEA, nos referimos a DataGrip, decimos DataGrip, nos referimos a IDEA.


Desarrollador PL / SQL


Comencé a trabajar con Oracle en 2011, y este fue el primer IDE que encontré. Dio la casualidad de que los siguientes tres años, donde sea que trabajé, se utilizó PL / SQL Developer. Lo estudié bastante bien y me pareció una gran herramienta. Y aunque 2014 fue el último año cuando lancé este IDE, incluso ahora me parece una buena opción. El principal inconveniente es que solo funciona en Windows.


Oracle SQL Developer


IDE gratuito lanzado por Oracle. Además de gratis, hay otra ventaja: multiplataforma. Puedes correr en Linux y en amapolas. Pero, tal vez, las ventajas terminan allí. Comencé a usarlo por primera vez este año en 2015. Funciona razonablemente bien, pero hay toneladas de pequeñas cosas molestas. Barato y alegre.


Sapo


Traté de comenzar a trabajar con TOAD varias veces en mi carrera. Cada vez que lo ejecuté, e inmediatamente tuve una pregunta, ¿y luego qué? ¿Dónde hacer clic para comenzar a trabajar? ¡La última vez fue hace unas semanas, y finalmente la dominé! Descubrí dónde está qué botón, dónde está qué marcador. Este IDE es bastante poderoso, pero de alguna manera estúpidamente organizado, en mi humilde opinión. Un montón de ventanas y marcadores que se confunden. Y también solo bajo Windows.


Desarrollador Alt SQL


El conocimiento de este IDE comenzó con un tema en el foro . Un tipo vino al foro y dijo que estaba escribiendo su desarrollador PL / SQL con blackjack y prostitutas. Nunca usé este IDE en serio, simplemente lo instalé e intenté trabajar un día hace un par de semanas. Parece un desarrollador PL / SQL, desde el cual se arrojó toda la basura innecesaria. Desafortunadamente, a pesar de los siete años de historia, todavía está húmedo. No recuerdo exactamente qué encontré allí, pero desafortunadamente, para trabajar en mi proyecto actual no es aplicable. Y en general, el pensamiento se arrastra en que el autor abandonó el desarrollo. Pero es una pena, para un producto desarrollado por una persona, este es un resultado muy valioso. Respeto, respeto y apoyo a los rayos! De nuevo, solo Windows, pero en este caso no discutiremos.


Intellij IDEA


En realidad, al principio solo quería aprender un poco de Java y escribí en este IDE. Y luego, para uno de mis proyectos de pasatiempo, necesitaba construir una base de datos PostgreSQL, ¡y resultó que IDEA también hace un gran trabajo! En el proyecto actual, comenzó a trabajar estrechamente con este IDE y, en general, estaba satisfecho. Es cierto, una mosca en la pomada no estaba exenta: me encontré con un error que estropeaba seriamente la sangre (el IDE dejó de mostrar objetos de uno de los esquemas, en problemas, uno de los más necesarios). Escribió un informe de error, se aconsejó una solución en el foro de JetBrains después de un par de días, y antes de eso tuve que sufrir.


De qué están hablando los desarrolladores

En una conversación con colegas, una vez mencioné que hace algún tiempo decidí comenzar a aprender Java, bueno, básicamente por mí mismo. Comencé con Eclipse, solo porque escuché sobre este IDE antes. Y luego, después de un año o dos, un amigo me aconsejó IDEA, lo probé, y fue amor a primera vista. Este IDE parecía entenderme y casi leía mentes. Entonces uno de los colegas preguntó:
"¿Por qué te enganchó tanto?"
- Bueno, incluso al menos puramente estético, hay un tema de diseño oscuro, por ejemplo.
"¡Pero Eclipse también tiene un tema oscuro!"
"No, no lo entiendes". Descargué la Idea, la instalé, y la primera vez que comenzó, lo primero que mostró fueron dos imágenes una al lado de la otra. Tema oscuro o claro: elige.
En este momento, nuestro trabajador front-end levantó el dedo y dijo intencionadamente:
- ¡BOOOOOOT! Experiencia de usuario!


Precio de emisión


Los precios se toman de sitios oficiales, basados ​​en un desarrollador. Como regla general, todos tienen paquetes para una gran cantidad de desarrolladores, y aún así es más barato.


Desarrollador PL / SQL: $ 216 + 60 soporte anual.
Oracle SQL Developer: Gratis.
TOAD: 1054 euros (LOLSTO ??? ¿Quizás acabo de buscar en el lugar equivocado?)
Desarrollador Alt SQL: $ 99
DataGrip: 199 euros el primer año, 159 segundos y 119 posteriores.


Desarrollo PL / SQL en el IDE


Escribir un código


En primer lugar, el proceso de desarrollo consiste en leer y escribir código. Bueno, está claro: resaltado de sintaxis, autocompletado, navegación, información sobre herramientas y todo eso. ¿Cómo hacen frente los competidores a esta tarea?


Si tomamos el lado práctico del problema, entonces los buques insignia seguirán con confianza. Autocompletado y navegación, en mi humilde opinión, funcionó mejor en PL / SQL Developer. En TOAD e IDEA, es un poco peor, pero Oracle SQL Developer no logró forzar el autocompletado de la manera que me es conveniente (y además, la configuración en él vuela constantemente hacia mí, por alguna razón no se guardan en absoluto). Por separado, quiero señalar un matiz tan pequeño: si la ventana de sugerencias para la finalización automática ya se ha cerrado por algún motivo, entonces el Desarrollador PL / SQL puede mostrarlo nuevamente mediante Ctrl + Espacio. Y también información sobre herramientas con nombres y tipos de argumentos de función. El resto de los IDE no saben cómo, y si lo saben, entonces no sé qué tecla y cómo se llaman estas opciones en la configuración, tampoco lo sé.


Además, PL / SQL Developer tenía algunos trucos geniales necesarios específicamente para trabajar con SQL: generar una lista de un solo clic de todos los campos de la tabla, separados por comas, buscar por código en ALL_SOURCE, un modo especial para mostrar resultados seleccionados cuando los campos van en columnas, y en columna adyacente una fila de datos. Es MUY conveniente cuando necesita ver qué campos y aproximadamente qué datos hay en una tabla desconocida. De todo esto, de los competidores, solo encontré en la búsqueda de códigos IDEA y la generación de listas de columnas de tabla.


Las opciones de formato para SQL y PL / SQL también son compartidas por todos, más o menos lo mismo en potencia, y también hay una vista previa. A menos que en TOAD sean de alguna manera demasiado complicados de formular.


Pero los buques insignia hacen frente al lado estético del problema de alguna manera no muy. Si IDEA tiene un tema completamente oscuro, en el resto puede maximizar el fondo oscuro en el editor de código. El fondo en otras ventanas permanecerá blanco (en PL / SQL Developer, recuerde, esto también es parcialmente personalizable, pero todo está en diferentes lugares, puede tintinear anteojos, el resto no tiene nada que hacer). Oracle SQL Developer es el único que tiene varios conjuntos de colores listos para resaltar sintaxis, incluido un conjunto con un fondo oscuro. El resto de los IDEs por defecto tienen simplemente esquemas de color de alto contraste vyrviglaznyh y la nueva fuente Courier: en mi humilde opinión, la fuente monoespacial más fea de esta parte del Universo. IDEA usa la fuente Consolas, de alguna manera es más agradable. TOAD (tengo la versión 11.5) se distingue por separado: hay un error debido al cual los caracteres%, &, * y ^ (y los primeros tres se usan muy a menudo en PL / SQL) no entran en ningún conjunto de caracteres en la configuración, lo que conduce a la imposibilidad de establecer el color de fuente para ellos. Es decir, siempre permanecen negros, y un tema oscuro significa dolor y sufrimiento. ¿Y es este un producto para un pedazo de verduras? Es un fraile hermano.


Consultas, bloques PL / SQL y scripts


Todo es sorprendentemente suave. El trabajo se ve más o menos igual para todos, aunque no puede prescindir de pequeñas sorpresas. En Oracle SQL Developer, es muy incómodo incluir resultados en la consola (necesita más de un clic del mouse), e IDEA muestra marcas de tiempo que no están deshabilitadas; esto dificulta la depuración de procedimientos que usan SQL dinámico.


TOAD e IDEA también pueden exportar datos de una tabla en forma de expresiones INSERT.


PL / SQL Developer tenía un modo de emulación honesto SQL * Plus, una ventana separada donde puede escribir comandos como en el propio SQL * Plus, con la salida allí mismo. El resto puede simplemente ejecutar estúpidamente scripts, y la salida se escupe en la siguiente ventana.


Otra cosa que vale la pena mencionar es la capacidad de determinar los límites de las consultas SQL. Oracle SQL Developer, PL / SQL Developer y Alt SQL Developer requieren que separe las consultas con un punto y coma (y los bloques PL / SQL con una barra inclinada), de lo contrario no entienden dónde terminó una consulta y comenzó otra. IDEA a este respecto es un poco más inteligente (y TOAD, al parecer, también): allí puede escribir dos consultas válidas sin separarlas entre sí con un punto y coma, colocar el cursor en una de ellas y ejecutarla. Además, IDEA rodea la solicitud reconocida con un borde verde antes de iniciarla, asegurándose además de que se ejecute exactamente lo que se necesita.


Otro punto importante es la depuración paso a paso, pero parece tener el mismo aspecto para todos los IDE, comenzando casi con TurboPascal 7.0. Y sí, hace solo una semana, en el foro de JetBrains, escribieron que la depuración paso a paso de PL / SQL en IDEA estaba lista. La gente ya está probando en su totalidad.


Navegador de objetos


Los navegadores de objetos más convenientes son PL / SQL Developer y Alt SQL Developer. Tienen un panel a la izquierda con un navegador, y a la derecha puede escribir código, y PL / SQL Developer, además, tenía la capacidad de buscar y filtrar objetos en el mismo panel. Oracle SQL Developer es casi tan bueno, pero me gusta un poco menos. En TOAD, no me gusta el hecho de que si miras el navegador de objetos, en el panel izquierdo se muestran los objetos en sí, y a la derecha, en el resto de la pantalla, se muestran sus numerosas propiedades. Pero hacer que los objetos a la izquierda y el editor de código a la derecha fallen. Es decir, TOAD brinda información aún más, pero la usabilidad no es su punto fuerte. IDEA tiene un buscador de objetos: el punto más débil, con menos tres puntos. Por un lado, pueden entenderse, no un solo Oracle, o incluso una sola base de datos relacional, DataGrip está vivo, pero por el otro: se llama carga - subir a la caja.


Pero IDEA puede dibujar diagramas ER para tablas que ya existen en la base de datos, y esta función se llama desde el navegador de objetos. Por esto, ella es una gran ventaja.


Control de versiones


Con el control de versiones, la situación es difícil. Históricamente ha sucedido (no sé cómo, pero es un hecho) que las personas que trabajan con Oracle, en su mayor parte, están bastante dormidas en cuestiones de organización de procesos de desarrollo en un equipo. ¿Te imaginas un desarrollador senior de Java (o C / C ++ / front-end) que nunca ha trabajado con ningún sistema de control de versiones en su vida? Pero el desarrollador senior de Oracle se puede encontrar con bastante facilidad: el último de estos no lo vi más que el año pasado. No es necesario hablar sobre las pruebas (en mi trabajo anterior, le mostré a nuestro líder de desarrollo APEX una simple prueba Java + Selenium, y él me respondió: "¡De ninguna manera! ¡Sin pruebas! Esto es el doble de trabajo, y pruebas y código para apoyar! "), pero por la expresión" Integración continua ", parece que me habrían matado allí (por lo tanto, no me expresé).
Por esta razón, no pude probar realmente las capacidades de trabajar con los sistemas de control de versiones PL / SQL Developer y Oracle SQL Developer.


Pero un poco lo intenté

Antes de escribir este artículo, lancé Oracle SQL Developer en la computadora de mi casa. Me conecté al repositorio, hice un clon, cambié el archivo, miré los cambios en la ventana de comparación de versiones, presioné commit ... Obtuve la excepción de Java firmado . Pero tengo una versión antigua, hace dos o tres años. Ella está fresca en el trabajo, pasó esta prueba con honor. Jaja


Trabajé en IDEA con git, e IDEA es perfecta en este sentido. Mis colegas usan SourceTree para trabajar con git (yo uso esto y aquello), y puedo decir que IDEA está reproduciendo SourceTree en su propio campo, a pesar de que SourceTree no puede hacer nada más.


Para el resto de los IDE, el elemento del menú para trabajar con sistemas de control de versiones está nominalmente presente, pero no sé nada más.


Conclusiones que hice por mí mismo


En términos de relación precio / calidad, Oracle SQL Developer gana por un amplio margen: si dividiera cero por algún número, sería cero;) Y si dejamos de lado las bromas, entonces multiplataforma y gratis son casi sus únicas ventajas. Y puramente desde un punto de vista ideológico: si observa las capacidades financieras de los desarrolladores de los IDE enumerados, entonces Oracle es la empresa más rica. Sin embargo, si tomamos la funcionalidad y usabilidad reales, su software es el más miserable.


Alt SQL Developer también es un programa bastante simple y, en mi humilde opinión, no vale ni siquiera esos 99 dólares que lo piden. Pero árboles de palo: en primer lugar, hace cosplay de PL / SQL Developer de forma bastante cualitativa, y en segundo lugar, fue escrito por una persona en su tiempo libre , y no por una corporación con un valor multimillonario. Mencione en la misma fila con los buques insignia, ella definitivamente se lo merecía.


TOAD es un software potente, pero con una interfaz inhumanamente inconveniente y un costo prohibitivo. No sé cómo puede pagar un poco de dinero por ello (todavía espero haber mirado en la dirección equivocada). 200 - hubiera pensado y aun así no lo compraría .


Desarrollador PL / SQL: era mi ideal antes del advenimiento de IDEA. Después de leer este artículo, me di cuenta de que PL / SQL Developer tenía incluso cinco años mejor que la mayoría de sus competidores ahora.


¿Qué IDE elegí?


Elegí IntelliJ IDEA en este momento y quiero tratar de explicar por qué. Parece que ella sabe algunas cosas peor que sus competidores (buscador de objetos), pero el resto es más o menos lo mismo. Pero, sin embargo, IDEA tiene varias características increíbles que superan con creces las deficiencias. Sobre ellos un poco más.


Plantilla en vivo. Es absolutamente imposible no mencionar una de las características más importantes de IDEA: Live Template. ¿Qué es una plantilla de código? Todo el mundo sabe más o menos, y en todos los IDE de Oracle lo es. Escribe una abreviatura condicional, y el IDE la reemplaza por una larga. Por ejemplo, puede configurar el IDE para reemplazar "sft" con "select * from". IDEA fue más allá, y esta característica se llama Live Template. Puede insertar expresiones especiales enmarcadas por los signos "$" dentro de la plantilla, e IDEA no solo realizará el reemplazo automático, sino que al presionar Intro moverá el cursor a los lugares donde se encontraban estas expresiones.


Un pequeño ejemplo para aquellos que no trabajaron en IDEA

Suponga que tiene una variable MY_COL que contiene una colección. Necesita escribir código PL / SQL para manejar esta colección. ¡Solo puedes escribir, o puedes hacer una plantilla! Vaya a Configuración, busque el elemento Plantilla en vivo, haga clic en el signo más a la derecha.
Complete: Abreviatura - bueno, por ejemplo, "fori". Descripción - opcional. Texto de plantilla: ingrese lo siguiente allí:


 for i in $collection$.first .. $collection$.last loop $END$ end loop; 

A continuación, aún debe seleccionar el contexto aplicable. Esto es necesario para que se puedan usar las mismas abreviaturas para diferentes idiomas. Haz clic en Aceptar. Ahora en el editor: escriba fori, luego presione TAB. Aparece una plantilla de código y aparecen un marco rojo y un cursor en lugar de $ collection $. Ahora necesita escribir "my_col" y presionar Enter. Deberías poder:


 for i in my_col.first .. my_col.last loop end loop; 

Y preste atención: el cursor aparecerá en lugar de $ END $, es decir, no después de su diseño, sino en algún lugar dentro, ¡usted controla este comportamiento!
Puede que esto no esté muy claro en la descripción, por lo que es mejor poner un IDE y practicar. Te garantizo que te gustará.


Refactorización Es solo que todos tienen un texto de reemplazo automático, incluso en un cuaderno, probablemente. Pero lo que los Tres Grandes no tienen es un reemplazo automático un poco más inteligente. Si tiene varias funciones en un paquete que usan variables o parámetros con el mismo nombre (e incluso si tal combinación de caracteres se usa en otro lugar), Autocorrección los cambiará de nombre a todos. Y si necesita cambiar el nombre de una variable en una de las funciones, tendrá que seguir y reemplazar automáticamente en modo semiautomático. IDEA resolvió este problema: con Shift + F6 puede cambiar el nombre exactamente de lo que necesita. Y estas son solo flores, la refactorización es algo un poco más complicado.


Y también ...


En 2009, Alan Cooper, un reconocido especialista en diseño de interfaces, lanzó la tercera edición de su libro "On Interface". Allí, en particular, llamó la atención del lector sobre un hecho tan extraño: cualquier programa de aplicación para procesar al menos algunos datos de usuario (aquí nos referimos a cualquiera de los reales, bueno, hay Word, Excel, bloc de notas, Paint, etc.) cree un archivo, asígnele un nombre, escriba datos en él, etc., pero ninguno (!!!!) puede cambiar el nombre de un archivo ya abierto por el mismo programa, aunque no hay restricciones por parte del sistema operativo. Para cambiar el nombre de un archivo, ciérrelo, póngase en contacto con los servicios del sistema operativo, luego ábralo nuevamente. Usabilidad, sí.


Era un dicho, un cuento de hadas vendrá. ¡Taki IDEA dominó esta función! Menos de 10 años, como dicen. Cambiar el nombre de los archivos es parte de la funcionalidad de refactorización.
Esperando el resto ...


Inspección de código Quienquiera que haya leído a Habr durante mucho tiempo, probablemente vio los artículos que aparecían regularmente de una compañía que desarrollaba su producto para el análisis estático, y probablemente logró penetrar este concepto en sí mismo. Como resultó de repente, IDEA tiene un cierto conjunto de reglas para el análisis PL / SQL. Allí, por supuesto, el conjunto sigue siendo pobre, y voy a lanzarles una Solicitud de funciones con algunas reglas nuevas, pero incluso lo que hay puede ser útil. Habiendo comprobado solo un paquete al azar, encontré una variable no utilizada y cuatro ... uh ... ¿cómo está en ruso? ... declaraciones inalcanzables. Y luego resultó que estas declaraciones inalcanzables se formaron por casualidad cuando se corrigió el texto, y al final fueron los mismos errores.


Ejecución de guiones. IDEA puede ejecutar archivos bat / bash, esto se configura directamente desde el IDE. Es extremadamente simple: abrimos el archivo correspondiente, IDEA ofrece instalar un complemento para trabajar con este tipo de archivo, estamos de acuerdo, el complemento se instala (en unos segundos), configuramos el lanzamiento, trabajamos más. Muy útil si usa scripts para ejecutar SQL * Plus. También utilizamos pruebas unitarias para PL / SQL escritas en Ruby, y de la misma manera que se ejecutan desde el mismo IDE (pero para Ruby ya tiene que instalar IDEA Ultimate Edition, DataGtip no funcionará).


Usabilidad. Al final, IDEA es simplemente conveniente. IDEA tiene toneladas de complementos. Simplemente no sorprenderá a nadie con complementos, están en todas partes. Pero IDEA puede, por ejemplo, determinar por sí mismo que tiene un complemento que puede ayudarlo. Un caso típico: cuando abre un archivo, IDEA muestra el mensaje "hay un complemento para trabajar con este tipo de archivo" y ofrece descargarlo y configurarlo. Y en general, a menudo, cuando ocurre una basura extraña, IDEA muestra un menú emergente con una lista de posibles acciones para corregir esta basura. Muy buena atención al usuario.


IDEA tiene una búsqueda de ayuda. Si conoce el nombre de alguna función del IDE, solo necesita ir a la ayuda y escribir este nombre en la barra de búsqueda, luego el IDE le mostrará dónde está esta función con la flecha.


TL; DR IDEA es un iPhone del desarrollo PL / SQL. Solo puedo desear a los desarrolladores de IDEA un mayor éxito, y quiero recordarles a los desarrolladores de los IDE restantes que los dinosaurios que no pudieron evolucionar se han extinguido.


PD: No pude terminar el artículo por mucho tiempo. Parece que hay tantas funciones en cualquier IDE moderno que puede estudiar y escribir sobre ellas sin cesar, y estudiar 5 IDE diferentes y describir la diferencia entre ellos es aún más interminable. Aquí expuse las cosas más importantes para mí personalmente, y en general describí muchas cosas personales en términos de "me gusta - no me gusta", "conveniente - incómodo", "hermoso - feo". Sin embargo, espero que los lectores tengan una idea general y puedan probar lo que se describe a sí mismos.


PPS JetBrains, tienes una cerveza;)

Source: https://habr.com/ru/post/468299/


All Articles