
Amigos y colegas, recientemente sobre artículos de Habré con un sombrero contra 1C, como plataforma para el desarrollo, y los discursos de sus defensores se han vuelto más frecuentes. Estos artículos identificaron un problema grave: la mayoría de las veces, los críticos de 1C lo critican desde la posición de "no haber dominado", criticando los problemas que son de facto fáciles de resolver y, por el contrario, sin tocar los problemas que son realmente importantes, hay discusiones y el vendedor no los resuelve . Creo que tiene sentido realizar una revisión sobria y equilibrada de la plataforma 1C. Lo que sabe cómo, lo que no sabe, lo que debe hacer, pero no hace y, por lo dulce, lo que hace con una explosión, y sus desarrolladores en% technology_name% harán cien años, tirando a la basura Más de un presupuesto anual.
Como resultado, usted, como líder o arquitecto, podrá obtener una comprensión clara: para qué tarea le será rentable tomar 1C y dónde debe quemarse con una plancha caliente. Como desarrollador del mundo "no 1C", puede ver lo que hay en 1C debido a lo que es el alboroto. Y como desarrollador de 1C, puede comparar su sistema con ecosistemas de otros idiomas y comprender su ubicación en el sistema de coordenadas del desarrollo de software.
Bajo el corte: muchos bocetos gruesos para 1C, para críticos 1C, para Java, .NET y en general ... El ventilador está funcionando, ¡bienvenido!
Sobre mi
Conozco el tema desde aproximadamente 2004. Probablemente estoy programando desde que tenía 6 años, desde el momento en que recibí un libro sobre el profesor Fortran con cómics sobre un gato, un gorrión y una oruga. Desarmé los programas que el gato escribió a partir de las imágenes del libro y descubrí lo que estaban haciendo. Y sí, no tenía una computadora real en ese momento, pero fui atraído por la página y honestamente presioné los botones de papel, ingresando los comandos espiados por el gato X.
Luego estaban BK0011 y BASIC en la escuela, C ++ y ensambladores en la universidad, luego 1C, y luego tanto que es demasiado vago para recordar. Durante los últimos 15 años, me he dedicado principalmente al 1C, no solo en términos de codificación, sino en general al 1C. Establecer objetivos, administración y devops aquí. Durante los últimos 5 años he estado involucrado en actividades socialmente útiles en términos de desarrollo de herramientas de desarrollo y automatización para otros apodos de 1C, escribo artículos y libros.
Decidir sobre el tema de discusión.
Para comenzar, decidamos lo que se discutirá, ya que las letras "1C" pueden comprender muchas cosas. En este caso, por las letras "1C" nos referimos exclusivamente al marco de desarrollo de "1C: Enterprise" de la octava versión moderna. No hablaremos mucho sobre la compañía de fabricación y su política (pero tendrá que ser un poco). No discutiremos aplicaciones específicas escritas usando este marco. Tecnología por separado, también conocida como aplicaciones de configuración, por separado.
Arquitectura de alto nivel 1C: Enterprise
A sabiendas menciono la palabra "marco". Desde el punto de vista del desarrollador, la plataforma 1C es precisamente el marco. Y debe tratarlo como un marco. Considérelo Spring o ASP.NET ejecutado por algún tiempo de ejecución (JVM o CLR, respectivamente). Sucedió que en el mundo de la programación convencional ("no 1C"), la separación en marcos, máquinas virtuales y aplicaciones específicas es natural, debido a que estos componentes generalmente son desarrollados por diferentes fabricantes. En el mundo de 1C, no es habitual asignar explícitamente un marco de desarrollo y, de hecho, un tiempo de ejecución, además, las aplicaciones específicas escritas usando el marco también son desarrolladas básicamente por el propio 1C. Como resultado, surge cierta confusión. Por lo tanto, dentro del marco del artículo, tendremos que considerar 1C desde varios lados a la vez y clasificarlo de acuerdo con varios ejes de coordenadas. Y en cada eje de coordenadas nosotros poner una pala de sustancia marrón considere las características, ventajas y desventajas de la solución existente.
Puntos de vista 1C
1C para el comprador
El comprador adquiere un sistema de automatización en el que puede resolver rápidamente los problemas de la automatización de su propio negocio. Un negocio puede ser un puesto pequeño, o puede ser una gran tenencia. Está claro que las necesidades de estas empresas son diferentes, pero ambas están respaldadas por una única base de código de la plataforma.
Para el comprador, 1C es un tiempo de comercialización rápido. Rápido Más rápido que Java, C # o JS. En promedio En el hospital Está claro que el sitio de la tarjeta de presentación en la reacción resultará mejor, pero el backend del sistema WMS comenzará más rápido en 1C.
1C como herramienta
Cada solución tecnológica tiene límites de aplicabilidad. 1C no es un lenguaje de propósito general, no vive separado de su marco. Se recomienda aplicar 1C cuando necesite:
- aplicación de servidor
- solicitud de financiación
- con interfaz de usuario lista, ORM, informes, XML / JSON / COM / PDF / YourDataTransferingFormat
- con soporte para procesos y trabajos en segundo plano
- con seguridad basada en roles
- con lógica de negocios programable
- con prototipo rápido y bajo tiempo de comercialización
1C no necesitas si quieres:
- aprendizaje automático
- Cálculos de GPU
- gráficos de computadora
- cálculos matemáticos
- Sistema CAD
- procesamiento de señal (sonido, video)
- llamadas http de alta carga con cientos de miles de rps
1C como empresa manufacturera
Vale la pena entender cuál es el negocio de 1C, como fabricante de software. La compañía 1C vende soluciones a problemas comerciales a través de la automatización. Un negocio diferente, grande o pequeño, pero vende exactamente eso. Los medios para lograr esto son las aplicaciones comerciales. Para contabilidad, contabilidad de nómina, etc. Para escribir estas aplicaciones, la compañía usa su propia plataforma para desarrollar aplicaciones comerciales. Especialmente diseñado para las tareas comunes de estas mismas aplicaciones comerciales:
- contabilidad financiera
- fácil personalización de la lógica empresarial
- amplias oportunidades de integración en paisajes heterogéneos de TI
Como fabricante, 1C cree que esta es la estrategia que le permite trabajar con socios y clientes en modo ganar-ganar. Puede discutir esto, pero algo como esto la empresa se promueve a sí misma: soluciones listas para problemas comerciales que los socios pueden personalizar rápidamente e incorporar en cualquier entorno de TI.
Todas las reclamaciones o Lista de deseos para 1C, como marco, deben considerarse exclusivamente a través de este prisma. "Queremos OOP en 1C", dicen los desarrolladores. "¿Cuánto costará apoyar a OOP en la plataforma, nos ayudará a aumentar las ventas de cajas?", Dice 1C. Abre su "prisma" de venta de soluciones empresariales:
"Hola negocio, ¿quieres OOP en tu 1C?"
"¿Me ayudará a resolver mis problemas?"
- Cómo saber ...
- Entonces no hay necesidad
Este enfoque puede ser bueno o malo, dependiendo de quién lo esté mirando, pero es solo eso. Hablando sobre el hecho de que no hay una característica X en 1C, debe comprender que no está allí por una razón, sino en el contexto de elegir "costo de implementación versus tamaño de ganancia".
Clasificación tecnológica
"De hecho, los odnosniks están usando los mejores patrones, cuidadosamente seleccionados por los metodólogos y desarrolladores de la plataforma 1C.
Cuando escribe su código tonto para una forma simple y manejable, en realidad usa un controlador de vista de modelo con enlace de datos de doble vía en un motor de aplicación de datos de tres capas , aromatizado con mapeo de relaciones de objeto de alto nivel basado en metadatos declarativos descripción , que tiene su propio lenguaje de consulta independiente de la plataforma , con interfaz de usuario declarativa basada en datos, serialización transparente completa y lenguaje de programa orientado al dominio .
La diferencia entre los desarrolladores de 1C y sus homólogos occidentales es en relaciones públicas. Les gusta dar un gran nombre a cualquier mierda y apresurarse con ella como con una bolsa escrita ".
A. Orefkov
La plataforma 1C tiene una arquitectura clásica de 3 niveles, en cuyo centro se encuentra un servidor de aplicaciones (o su emulación por poco dinero para pequeños comerciantes). Como DBMS, se usa MS SQL o Postgres. También hay soporte para Oracle e IBM DB2, pero esto es más esotérico, nadie sabe qué sucederá si implementa 1C en estas bases bajo carga media y alta. Creo que la compañía 1C en sí misma tampoco lo sabe.
La parte del cliente es un cliente ligero instalado en la máquina del usuario o un cliente web. La característica clave es que los programadores no escriben 2 códigos diferentes, escriben una aplicación, en un idioma, y puede configurarla en el navegador si hay un deseo o una necesidad. ¿Quién quería una pila completa auténtica y un solo idioma para el front-end y el back-end, node.js? No lograron hacer exactamente lo mismo hasta el final. Existe una pila completa real, pero tendrá que escribir en 1C. La ironía del destino, tales cosas :)
En el modo de navegador, la solución 1C: Fresh cloud SaaS también funciona, en la que no puede comprar 1C, sino alquilar una pequeña base y mantener un registro de las ventas de shawarma allí. Solo en el navegador, sin instalar o configurar nada por ti mismo.
Además, hay un cliente Legacy, que en 1C se denomina "aplicación normal". Legacy, es Legacy, bienvenido al mundo de las aplicaciones en 2002, pero todavía estamos hablando del estado actual del ecosistema.
El lado del servidor 1C admite la agrupación en clúster y las escalas agregando nuevas máquinas al clúster. Aquí hay bastantes copias rotas, y sobre esto habrá una sección separada en el artículo. En resumen, esto no es lo mismo que agregar un par de las mismas instancias detrás de HAProxy.
El marco de desarrollo de aplicaciones utiliza su propio lenguaje de programación, que se asemeja a un VB6 ligeramente mejorado, traducido al ruso. A las personas odio todo ruso quienes no creen que "si" se traduce como "si" se sugiere una segunda sintaxis. Es decir si se desea, se puede escribir 1C de modo que, en apariencia, no se distinga de VB.

Este lenguaje de programación es la razón principal del sombrero de apodo 1C hacia su plataforma. Francamente, no sin razón. El lenguaje fue concebido de la manera más simple posible, diseñado para cumplir el mantra "DESARROLLADORES, DESARROLLADORES" en una escala CIS al menos. La esencia comercial de tal solución, en mi opinión, es claramente visible: más desarrolladores, más cobertura de mercado. Según diversas estimaciones, esto se hizo realidad del 45% al 95%. Debo decir de inmediato que escribir en el idioma en el que crees que es realmente más fácil. Y conozco muchos lenguajes de programación.
Comenzaremos con el idioma.
Lenguaje de programación 1C
Al mismo tiempo, los puntos fuertes y débiles del sistema. Proporciona entrada fácil, legibilidad. Por otro lado, no se ha actualizado desde el lanzamiento de la versión 8 en 2002 y está desactualizado. Alguien dirá "la falla principal: no hay POO" y estará equivocado. En primer lugar, a la OLP no solo le gustan Nuraliev, sino también Torvalds. Y en segundo lugar, OOP todavía existe.
Desde el punto de vista del desarrollador, tiene a su disposición un marco con las clases base que se muestran en el DBMS. El desarrollador puede tomar la clase base "Directorio" y heredar de ella el directorio "Clientes". Puede agregarle nuevos campos de clase, por ejemplo, TIN y Dirección, y también, si es necesario, puede anular los métodos de la clase base, por ejemplo, el método OnWrite / Prizapisi.
El marco está diseñado de tal manera que rara vez se requiere una herencia más profunda, y la limitación en OOP, en mi opinión, tiene sentido. 1C se centra en el desarrollo impulsado por dominio y le hace pensar, en primer lugar, sobre el área temática de la solución que se está desarrollando, y esto es bueno. No solo existe la tentación, sino también la necesidad de escribir 10 DTO y ViewModel diferentes solo para mostrar algunos datos del dominio en alguna parte. El desarrollador de 1C siempre opera con una entidad, sin obstruir el contexto de percepción con docenas de clases con nombres similares que representan la misma entidad, pero desde el otro lado. Cualquier aplicación .NET, por ejemplo, necesariamente contendrá cinco o dos ViewModel y DTO para la serialización en JSON y la transferencia de datos desde el cliente al servidor. Y alrededor del 10-15% del código en su aplicación cambiará los datos de una clase a otra con bolígrafos o muletas como AutoMapper. Este código necesita ser escrito y los programadores deben pagar por su creación y mantenimiento.
Resulta que el lenguaje 1C es difícil de desarrollar sin complicarlo al nivel de los idiomas principales, perdiendo así la ventaja de la simplicidad. ¿Cuál es, de hecho, la tarea del vendedor que se está resolviendo? Si usted es un puesto, tome un estudiante, si es una fábrica, tome un gurú de un socio implementador. El hecho de que los socios implementadores vendan estudiantes por el precio de un gurú no es un problema marco. Arquitectónicamente, el marco debe resolver los problemas de ambos, el estudiante debe comprender el código de configuraciones típicas (que vendimos a la empresa con la promesa de personalización), y el gurú entenderá lo que quiere.
Lo que, en mi opinión, realmente falta en el idioma, lo que me obliga a escribir más de lo que podría, luego se quema a través del tiempo pagado por el cliente.
- La posibilidad de escribir a nivel de, por ejemplo, TypeScript (como resultado, medios de análisis de código más desarrollados en el IDE, refactorización, jambas menos ofensivas)
La presencia de funciones como objetos de primera clase. Un concepto un poco más complejo, pero el número de códigos repetitivos de los estándares podría reducirse considerablemente. La comprensión del código por parte de un estudiante, en mi humilde opinión, incluso aumentaría debido a la reducción en el volumen - Literales de colecciones universales, inicializadores. Lo mismo: reducir la cantidad de código que debe escribirse y / o verse a través de los ojos. Llenar colecciones es más del 9000% del tiempo de programación para 1C. Escribirlo sin azúcar sintáctico es largo, costoso y propenso a errores. En general, el número de LOC en las soluciones 1C excede todos los límites concebibles en comparación con los marcos abiertos disponibles y, en general, todos los Java de su empresa combinados. El lenguaje es detallado y degenera en volumen de datos, memoria, frenos IDE, tiempo, dinero ...
- finalmente construcciones Tengo la hipótesis de que falta esta construcción debido al hecho de que no obtuvieron una traducción exitosa al ruso :)
- Tipos de datos propios (sin OOP), análogos de tipo de VB6. Le permite no tipificar estructuras utilizando comentarios en el BSP y los métodos mágicos que construyen estas estructuras. Obtenemos: menos código, una pista sobre el punto, una solución más rápida al problema, menos errores en errores tipográficos y propiedades de estructura faltantes. Ahora, la tipificación de las estructuras de los usuarios recae completamente en el equipo de desarrollo de la Biblioteca de Subsistemas Estándar, que, para mi crédito, escribe cuidadosamente los comentarios sobre las propiedades esperadas de las estructuras de parámetros transferidos.
- Falta de azúcar cuando se trabaja con llamadas asincrónicas en el cliente web. Un infierno de devolución de llamadas en forma de procesamiento de alertas es una muleta temporal causada por un cambio repentino en la API de los principales navegadores, pero no se puede vivir así todo el tiempo, la ventaja de "la comprensión por parte del alumno" del código asincrónico es perder más y más. Agregue cualquier soporte para este paradigma en el IDE principal aquí y las cosas empeorarán.
Este es un problema apremiante, está claro que la lista puede ser mucho más grande, pero no se debe olvidar que todavía no es un lenguaje de propósito general, no hay necesidad de múltiples hilos, funciones lambda, acceso a la GPU y cálculos rápidos de coma flotante. Este es un lenguaje de script de lógica de negocios.
Un programador que ha trabajado mucho con este lenguaje ha examinado js o c # se está aburriendo del lenguaje. Esto es un hecho El necesita desarrollo. En el otro lado de la balanza, el proveedor tiene el costo de vender estas características frente al aumento de los ingresos después de su implementación. Aquí no tengo información sobre lo que se pesa a los ojos de la empresa en este momento.
Entorno de desarrollo
Todo aquí tampoco es sencillo. Hay dos entornos de desarrollo. El primero es el Configurador incluido en la entrega. El segundo es el entorno de Herramientas de desarrollo empresarial, desarrollado sobre la base de Eclipse, abreviado EDT.
El configurador proporciona una gama completa de tareas de desarrollo, admite todas las características y es el entorno principal del mercado. También está moralmente desactualizado, no se desarrolla, según los rumores, debido al volumen de deuda técnica dentro de sí mismo. La apertura de la API interna podría mejorar la situación (en forma de amistad con Snegopat A. Orefkov o de forma independiente), pero esto no es así. La práctica ha demostrado que la comunidad presentará una característica en el IDE, si solo el proveedor no interfiere. Pero tenemos lo que tenemos. El configurador fue hermoso en 2004-2005, era muy similar a Visual Studio de aquellos tiempos, en lugares donde era aún más genial, pero se atascó en esos tiempos.
Además, el volumen de la solución estándar promedio ha crecido varias veces desde entonces y hoy el IDE no soporta estúpidamente la cantidad de código que se alimenta. Las capacidades de usabilidad y refactorización ni siquiera están en cero, están en rojo. Todo esto no agrega entusiasmo a los desarrolladores y sueñan con arrojarlo a otros ecosistemas y continuar cagando allí, sino en un ambiente agradable que no escupe en la cara con su comportamiento.
Como alternativa, se propone un IDE basado en Eclipse escrito desde cero. Allí, las fuentes, como en cualquier otro software, viven en forma de archivos de texto, se almacenan en GIT, ramas de solicitud de extracción, todo esto. De los inconvenientes, desde hace muchos años no ha pasado el estado beta, aunque con cada lanzamiento todo está mejorando. No escribiré sobre las desventajas de EDT, que hoy es una desventaja, mañana una característica fija. La relevancia de tal descripción se desvanecerá rápidamente. Hoy en día es posible desarrollar en EDT, pero inusual, debe estar preparado para una serie de errores IDE.
Si observa la situación a través del mencionado "prisma 1C", obtiene algo como esto: el lanzamiento del nuevo IDE no aumenta la venta de cajas, pero la salida de DESARROLLADORES puede reducirse. Es difícil decir qué le espera al ecosistema desde el punto de vista de la comodidad del desarrollador, pero Microsoft ya una vez describió a los desarrolladores móviles ofreciéndoles sus servicios demasiado tarde.
Gestión del desarrollo
, , , , , 1 git, blame, code-review, , etc. , . , , , . -, KDiff- . gitconverter , , , gitsync , -. open-source 1 . API , , IDE.
, 1 git Jira, Crucible, Allure 1 SonarQube — , , , 1.
Administración
. -, , - ( 1). , , , , — highload — , " ". , , 1 - . , , . .
, . , 1: , , . , , ELK , , — . . , 1 — . , . , , , 1- , , . SAP. , , , - . . SAP . - 1 , . Esto es una falacia.
1
— . , , . . — , . 1 , — . , , 1 — , .. . , , , , .
, 1 , , .
Docker
1 . , , highload — . , +1 . , , .
— 1 - . 1 Reporting, , -, , , , .. , , . , UI , , .
1, , , , .
, PDF . .NET , . , . , PDF. , . - , , dto- JSON, , , , — PDF. 1, , .
- / 3. , , , , - . , , 3 , .
.NET visual studio ? ? - .
1 - . , . , 1. . , , . -, , — . :
- Unicode. , , ? 2019 ASCII ( legacy). . . - - varchar . 2015 gitlab LDAP- - , JetBrains IDE . 1 . . , , . , - . Java- . . ? .
- /. 1 . — . identity ( ", "), , , ( ). , , , — , , , .
- . 1 — . . - identity ( !), GUI, ( ). ? ?
- . 1 () . — ! , : ( ), . , . , — , .
- . , - . . — . : , .
- . , . , -, , , — . ( UI) — .
- Reporting. BI- ETL-. , . , , .. 1 , , . , . -- , --. : reporting, , , .
- . - .NET PDF . . PDF? 1- PDF +1 . + 40 , . 1 , . , , 1 , 3D OpenGL. ?
Todo esto es solo un puñado de ejemplos cuando limitar la funcionalidad o implementar con compromisos es una ventaja arquitectónica importante en el futuro. Incluso un compromiso o no la opción más efectiva: ya está en la caja y se da por sentado. Su implementación independiente será imposible (porque tales decisiones deben tomarse al comienzo del proyecto, y no antes, y en general no hay arquitecto), o varias iteraciones costosas. En cada uno de estos elementos (y esta no es una lista completa de soluciones arquitectónicas), puede nakosyachit y establecer restricciones que bloqueen la escala. En cualquier caso, usted, como hombre de negocios, debe asegurarse de que sus programadores, al hacer un "sistema desde cero", tengan los brazos rectos y hagan buenos momentos del sistema de inmediato.
Sí, como en cualquier otro sistema complejo, 1C tiene soluciones que bloquean la escala de una forma u otra. Sin embargo, repito, por la combinación de factores, por el costo de propiedad, por el número de problemas ya resueltos de antemano: no veo un competidor digno en el mercado. Por el mismo precio, obtienes un marco de aplicación financiera, un servidor equilibrado en clúster, con una interfaz de usuario y un bozal web, con una aplicación móvil, con informes, integración y mucho más. En el mundo de Java, contrata a un equipo front-end y back-end, depura jambas de bajo nivel de código de servidor autoescrito y paga por separado por 2 aplicaciones móviles para 2 SO móviles.
No estoy diciendo que 1C resolverá todos los casos, pero para una aplicación corporativa interna, cuando no necesita marcar la interfaz de usuario, ¿qué más se necesita?
Volar en la pomada
Probablemente, parece que 1C salvará al mundo y todas las otras formas de escribir sistemas corporativos están mal. Esto no es del todo cierto. Desde el punto de vista de un hombre de negocios, si elige 1C, además de un rápido tiempo de comercialización, debe tener en cuenta las siguientes desventajas:
- Fiabilidad del servidor Requiere especialistas verdaderamente de alta calidad, capaces de garantizar su buen funcionamiento. No conozco el programa de capacitación terminado para tales especialistas del vendedor. Hay cursos para prepararse para aprobar el examen "Experto", pero esto, en mi opinión, no es suficiente.
- Apoyo. Ver el párrafo anterior. Para contar con el respaldo del proveedor, debe comprarlo. Por alguna razón, esto no es aceptado en la industria de 1C. Y con SAP, es casi necesario comprar y no molesta a nadie. Sin soporte corporativo y sin un experto en el estado, con fallas de 1C puede mantenerse uno a uno.
- Aún así, en 1C no puedes hacer nada en absoluto. Esta es una herramienta y, como todas las herramientas, tiene límites de aplicabilidad. En un paisaje con 1C, es muy deseable tener un arquitecto de sistemas "no 1C-nut".
- Los buenos apodos de 1C no son más baratos que los buenos programadores en otros idiomas. Sin embargo, los malos programadores son caros de contratar independientemente del idioma que escriben.
Vamos a puntear
- 1C es un marco para el desarrollo rápido de aplicaciones (RAD) para empresas y está diseñado para esto.
- Tres enlaces con soporte para el DBMS principal, la interfaz de usuario del cliente, ORM bastante bueno e informes
- Amplias oportunidades para la integración con sistemas que pueden hacer lo que 1C no hace. Si desea aprendizaje automático, obtenga Python y combine el resultado en 1C a través de http o RabbitMQ
- No se esfuerce por hacer todo en 1C, debe comprender sus puntos fuertes y utilizarlos para sus propios fines.
- Los desarrolladores que se inclinan por profundizar en los marcos tecnológicos, los gadgets y rehacer cada N años en un nuevo motor, se aburren en 1C. Todo es muy conservador allí.
- Los desarrolladores están aburridos debido a la muy poca preocupación del fabricante por ellos. Lenguaje aburrido, IDE débil. Requieren modernización.
- Por otro lado, los desarrolladores que no pueden encontrar diversión a través de la aplicación y el estudio de otras tecnologías que les gustan son malos desarrolladores. Se quejarán e irán a otro ecosistema.
- Los empleadores que no permiten que sus apodos de 1C ardan algo en Python son malos empleadores. Perderán empleados con una mente inquisitiva, y los codificadores de mono vendrán en su lugar, quienes, habiendo acordado con todo, arrastrarán el software corporativo al pantano. Todavía tiene que reescribirlo, así que ¿tal vez sería mejor invertir un poco antes en Python?
- 1C es una empresa comercial e implementa características únicamente en función de sus propios intereses y conveniencia. No se le puede culpar por esto, una empresa debe pensar en las ganancias, así es la vida
- 1C gana dinero vendiendo soluciones a problemas comerciales, no los problemas de desarrollador de Vasya. Estos dos conceptos están correlacionados, pero la prioridad es exactamente la que dije. Cuando el desarrollador Vasya esté listo para pagar una licencia personal para 1C: Resharper, aparecerá con bastante rapidez, "Resharper" A. Orefkova confirmará esto. Si el vendedor lo apoyara, pero no peleara con él, vería que habría un mercado de software para desarrolladores. Ahora hay un jugador y medio en este mercado con resultados dudosos, y todo porque la integración con el IDE es negativa y todo se hace con muletas.
- La práctica de un especialista en herramientas múltiples quedará en el olvido. Las aplicaciones modernas son demasiado voluminosas para recordarlas desde el lado del código y desde el lado del uso comercial. El servidor 1C también se está volviendo más complicado, no será posible retener todo tipo de experiencia en un solo empleado. Esto debería implicar la demanda de especialistas, lo que significa el atractivo de la profesión de 1C-nick y un aumento de los salarios. Si antes Vasya trabajaba tres en uno por un salario, ahora necesita contratar dos Vasya y la competencia entre Vasya puede estimular el crecimiento general de su nivel.
Conclusión
1C es un producto muy digno. En mi rango de precios, no conozco ningún análogo, escriba los comentarios si los hay. Sin embargo, el flujo de salida de los desarrolladores del ecosistema es cada vez más notable, y esto es una "fuga de cerebros", de todos modos. La industria está ansiosa por la modernización.
Si es desarrollador, no vaya en ciclos en 1C y no piense que en otros idiomas todo es mágico. Mientras estés en junio, tal vez. Tan pronto como necesite resolver algo más grande, deberá buscar soluciones preparadas por más tiempo y terminar con mayor intensidad. Por el nivel de calidad de los "cubos" a partir de los cuales puede construir una solución: 1C es muy, muy bueno.
Y, sin embargo, si viniste a contratar 1C-nickname, entonces 1C-nickname se puede poner de forma segura en los analistas principales. Comprensión de la tarea, área temática, habilidades de descomposición que han desarrollado perfectamente. Estoy seguro de que esto se debe precisamente al uso forzado de DDD en el desarrollo 1C. Una persona está capacitada para pensar sobre el significado de la tarea en primer lugar, sobre las conexiones entre los objetos del área temática y tiene una formación técnica sobre tecnologías de integración y formatos de intercambio de datos.
Tenga en cuenta que el marco ideal no existe y cuídese.
Bueno para todos!
PD: muchas gracias speshuric por ayudar con este artículo.