
Amigos e colegas, recentemente em artigos de Habré com um chapéu contra o 1C, como plataforma para o desenvolvimento, e os discursos de seus advogados se tornaram mais frequentes. Esses artigos destacaram um problema sério: na maioria das vezes, os críticos da 1C o criticam da perspectiva de "não o ter dominado", criticando problemas que são de fato fáceis de resolver e, pelo contrário, sem tocar nos problemas que são realmente importantes, há discussões e não são resolvidos pelo fornecedor . Acredito que faz sentido conduzir uma revisão sóbria e equilibrada da plataforma 1C. O que ela sabe como, o que ela não sabe, o que deve fazer, mas não faz e, do lado doce, o que ela faz com um estrondo, e seus desenvolvedores em% technology_name% fazem cem anos, jogando fora mais de um orçamento anual.
Como resultado, você, como líder ou arquiteto, será capaz de obter um entendimento claro - de que tarefa será rentável para você tomar 1C e onde deve ser queimada com um ferro quente. Como desenvolvedor do mundo "not 1C", você pode ver o que há no 1C por causa do barulho. E como desenvolvedor 1C, você pode comparar seu sistema com ecossistemas de outros idiomas e entender sua localização no sistema de coordenadas de desenvolvimento de software.
Sob o corte - muitos esboços grossos para 1C, para críticos 1C, para Java, .NET e em geral ... O ventilador está funcionando, seja bem-vindo!
Sobre mim
Eu conheço o assunto desde 2004. Provavelmente estou programando desde os 6 anos, desde o momento em que recebi um livro sobre o professor Fortran com quadrinhos sobre um gato, um pardal e uma lagarta. Eu desmontei os programas que o gato escreveu nas fotos do livro e descobri o que eles estavam fazendo. E sim, eu não tinha um computador de verdade naquele momento, mas fui desenhado na página e pressionei honestamente os botões de papel, inserindo os comandos espionados pelo gato X.
Havia BK0011 e BASIC na escola, C ++ e montadores na universidade, depois 1C e tantas coisas que é muito preguiçoso para lembrar. Nos últimos 15 anos, participei principalmente de 1C, não apenas em termos de codificação, mas em geral 1C. Definindo objetivos, administração e devops aqui. Nos últimos 5 anos, participei de atividades socialmente úteis em termos de desenvolvimento de ferramentas de desenvolvimento e automação para outros apelidos 1C, escrevo artigos e livros.
Decida sobre o assunto da discussão
Para começar, vamos decidir o que será discutido, pois as letras "1C" podem entender muitas coisas. Nesse caso, pelas letras "1C" queremos dizer exclusivamente a estrutura de desenvolvimento de "1C: Enterprise" da oitava versão moderna. Não falaremos muito sobre a empresa de manufatura e sua política (mas terá que ser um pouco) .Não discutiremos aplicativos específicos escritos usando essa estrutura. Tecnologia separadamente, também conhecidas como aplicativos de configuração - separadamente.
Arquitetura de alto nível 1C: Enterprise
Menciono conscientemente a palavra "estrutura". Do ponto de vista do desenvolvedor, a plataforma 1C é precisamente a estrutura. E você precisa tratá-lo como uma estrutura. Considere Spring ou ASP.NET executado por algum tempo de execução (JVM ou CLR, respectivamente). Aconteceu que no mundo da programação comum (“não 1C”), a separação em estruturas, máquinas virtuais e aplicativos específicos é natural, devido ao fato de que esses componentes geralmente são desenvolvidos por diferentes fabricantes. No mundo da 1C, não é habitual alocar explicitamente uma estrutura de desenvolvimento e, na verdade, um tempo de execução, além disso, aplicativos específicos escritos usando a estrutura também são basicamente desenvolvidos pela própria 1C. Como resultado, surge alguma confusão. Portanto, dentro da estrutura do artigo, teremos que considerar 1C de vários lados ao mesmo tempo e classificá-lo de acordo com vários eixos de coordenadas. E em cada eixo de coordenadas nós coloque uma pá de substância marrom considere os recursos, vantagens e desvantagens da solução existente.
Pontos de vista 1C
1C para o comprador
O comprador adquire um sistema de automação no qual ele pode resolver rapidamente os problemas de automatizar seu próprio negócio. Uma empresa pode ser uma pequena barraca ou uma grande exploração. É claro que as necessidades dessas empresas são diferentes, mas ambas são suportadas por uma única base de código da plataforma.
Para o comprador, 1C é um rápido tempo de colocação no mercado. Rápido. Mais rápido que Java, C # ou JS. Em média No hospital. É claro que o site do cartão de visita na reação ficará melhor, mas o back-end do sistema WMS começará mais rápido no 1C.
1C como uma ferramenta
Cada solução tecnológica tem limites de aplicabilidade. 1C não é uma linguagem de uso geral, não vive separadamente de sua estrutura. É recomendável aplicar 1C quando você precisar:
- aplicação servidor
- aplicação financeira
- com interface do usuário pronta, ORM, relatórios, XML / JSON / COM / PDF / YourDataTransferingFormat
- com suporte para processos e tarefas em segundo plano
- com segurança baseada em função
- com lógica de negócios programável
- com protótipo rápido e baixo tempo de colocação no mercado
1C você não precisa se quiser:
- aprendizado de máquina
- Cálculos de GPU
- computação gráfica
- cálculos matemáticos
- Sistema CAD
- processamento de sinal (som, vídeo)
- alta carga de chamadas http com centenas de milhares de rps
1C como uma empresa de fabricação
Vale a pena entender qual é o negócio da 1C, como fabricante de software. A empresa 1C vende soluções para problemas de negócios através da automação. Um negócio diferente, grande ou pequeno, mas vende exatamente isso. Os meios para conseguir isso são aplicativos de negócios. Para contabilidade, contabilidade de folha de pagamento, etc. Para escrever esses aplicativos, a empresa usa sua própria plataforma para desenvolver aplicativos de negócios. Especialmente adaptado para as tarefas comuns desses mesmos aplicativos de negócios:
- contabilidade financeira
- fácil personalização da lógica de negócios
- amplas oportunidades de integração em cenários de TI heterogêneos
Como fabricante, a 1C acredita que esta é a estratégia que permite trabalhar com parceiros e clientes no modo ganha-ganha. Você pode argumentar com isso, mas algo assim a empresa promove a si mesma: soluções prontas para problemas de negócios que podem ser rapidamente personalizadas pelos parceiros e incorporadas a qualquer cenário de TI.
Todas as reivindicações ou a lista de desejos para 1C, como estrutura, devem ser consideradas exclusivamente por esse prisma. "Queremos OOP em 1C", dizem os desenvolvedores. "Quanto custará para suportar o OOP na plataforma, isso nos ajudará a aumentar as vendas de caixas?", Diz 1C. Abre seu "prisma" de vender soluções de negócios:
"Ei pessoal, você quer POO no seu 1C?"
"Isso vai me ajudar a resolver meus problemas?"
- Como saber ...
- Então não precisa
Essa abordagem pode ser boa ou ruim, dependendo de quem está olhando, mas é exatamente isso. Falando sobre o fato de não haver recurso X em 1C, é necessário entender que ele não existe por um motivo, mas no contexto de escolher "custo de implementação versus tamanho do lucro".
Classificação tecnológica
"De fato, os odnosniks estão usando os melhores padrões, cuidadosamente selecionados por metodólogos e desenvolvedores da plataforma 1C.
Quando você escreve seu código burro para um formato simples e gerenciável, na verdade, usa o model-view-controller com ligação de dados de duas vias em um mecanismo de aplicativo de dados de três camadas , com sabor de mapeamento de relação de objeto de alto nível com base em metadados declarativos descrição , que possui sua própria linguagem de consulta independente de plataforma , com interface de usuário declarada orientada a dados, serialização transparente completa e linguagem de programa orientada a domínio .
Como os desenvolvedores da 1C diferem de seus colegas ocidentais é no PR. Eles gostam de dar um grande nome a qualquer besteira e apressam-se a fazê-lo como em um saco escrito ".
A. Orefkov
A plataforma 1C possui uma arquitetura clássica de três camadas, no centro da qual existe um servidor de aplicativos (ou sua emulação por pouco dinheiro para pequenos lojistas). Como DBMS, o MS SQL ou o Postgres são usados. Também há suporte para Oracle e IBM DB2, mas isso é mais esotérico, ninguém sabe o que acontecerá se você implementar o 1C nessas bases sob carga média e alta. Acredito que a própria empresa 1C também não saiba disso.
A parte do cliente é um thin client instalado na máquina do usuário ou um web client. A principal característica é que os programadores não escrevem 2 códigos diferentes, eles escrevem um aplicativo, em um idioma e você pode configurá-lo no navegador se houver um desejo ou uma necessidade. Quem queria uma pilha completa autêntica e um idioma único para o front-end e back-end, node.js? Eles não conseguiram fazer exatamente o mesmo até o fim. Existe uma pilha completa real, mas você precisará escrever em 1C. Ironia do destino, essas coisas :)
No modo navegador, a solução SaaS 1C: nuvem fresca também funciona, na qual você não pode comprar 1C, mas aluga uma pequena base e mantém um registro das vendas da shawarma por lá. Apenas no navegador, sem instalar ou configurar nada para si mesmo.
Além disso, há um cliente herdado, que em 1C é chamado de "aplicativo regular". Legado, é Legado, bem-vindo ao mundo dos aplicativos em 2002, mas ainda estamos falando sobre o estado atual do ecossistema.
O lado do servidor 1C suporta cluster e escalas adicionando novas máquinas ao cluster. Aqui, algumas cópias estão quebradas e, sobre isso, haverá uma seção separada no artigo. Em resumo, isso não é o mesmo que adicionar duas exatamente as mesmas instâncias por trás do HAProxy.
A estrutura de desenvolvimento de aplicativos usa sua própria linguagem de programação, que se assemelha a um VB6 ligeiramente aprimorado, traduzido para o russo. Para as pessoas odeio tudo russo quem não acredita que "se" é traduzido como "se", é sugerida uma segunda sintaxe. I.e. se desejado, 1C pode ser escrito para que na aparência não se diferencie do VB.

Essa linguagem de programação é o principal motivo do apelido 1C para sua plataforma. Francamente, não sem razão. A linguagem foi concebida da maneira mais simples possível, projetada para cumprir pelo menos o mantra "DESENVOLVEDORES, DESENVOLVEDORES" em uma escala da CEI. A essência comercial de tal solução, na minha opinião, é claramente visível: mais desenvolvedores, mais cobertura de mercado. Segundo várias estimativas, isso se tornou realidade de 45% a 95%. Devo dizer imediatamente que escrever na língua em que você acha realmente mais fácil. E eu conheço muitas linguagens de programação.
Vamos começar com o idioma.
Linguagem de programação 1C
Ao mesmo tempo, os pontos fortes e fracos do sistema. Fornece entrada fácil, legibilidade. Por outro lado, não foi atualizado desde o lançamento da versão 8 em 2002 e está desatualizado. Alguém dirá "a principal falha - não há OOP" e estará errado. Em primeiro lugar, a OLP não gosta apenas de Nuraliev, mas também de Torvalds. E segundo, OOP ainda existe.
Do ponto de vista do desenvolvedor, ele tem à sua disposição uma estrutura com as classes base exibidas no DBMS. O desenvolvedor pode pegar a classe base "Diretório" e herdar dela o diretório "Clientes". Ele pode adicionar novos campos de classe a ele, por exemplo, TIN e Endereço, e também, se necessário, pode substituir os métodos da classe base, por exemplo, o método OnWrite / Prizapisi.
A estrutura é projetada de tal maneira que raramente é necessária uma herança mais profunda, e a limitação no POO, na minha opinião, faz sentido. A 1C se concentra no desenvolvimento orientado a domínio e faz você pensar, antes de tudo, na área de assunto da solução que está sendo desenvolvida, e isso é bom. Não há apenas a tentação, mas também a necessidade de escrever 10 DTO e ViewModel diferentes apenas para mostrar alguns dados do domínio em algum lugar. O desenvolvedor 1C sempre opera com uma entidade, sem entupir o contexto de percepção com dezenas de classes com nomes semelhantes representando a mesma entidade, mas do outro lado. Qualquer aplicativo .NET, por exemplo, necessariamente conterá cinco ou dois ViewModel e DTO para serialização em JSON e transferência de dados do cliente para o servidor. E cerca de 10 a 15% do código do seu aplicativo mudará os dados de uma classe para outra com canetas ou muletas como o AutoMapper. Esse código precisa ser escrito e os programadores precisam pagar por sua criação e manutenção.
Acontece que a linguagem 1C é difícil de desenvolver sem complicar ao nível das linguagens convencionais, perdendo assim a vantagem da simplicidade. Qual é, de fato, a tarefa do fornecedor que está sendo resolvida: emitir uma solução padrão que possa ser personalizada por qualquer aluno pego na rua com o nível de qualidade adequado (isto é, o caso de cobertura da barraca até a grande fábrica). Se você é uma barraca - leve um aluno, se você é uma fábrica - pegue um guru de um parceiro de implementação. O fato de os parceiros de implementação venderem os alunos pelo preço de um guru não é um problema básico. Arquiteturalmente, a estrutura deve resolver os problemas de ambos, o código das configurações padrão (que vendemos para a empresa com a promessa de personalização) deve ser entendido pelo aluno e o guru entenderá o que você deseja.
Na minha opinião, o que realmente falta é o idioma, o que me obriga a escrever mais do que pude, depois queima com o tempo pago pelo cliente.
- A possibilidade de digitar no nível de, por exemplo, TypeScript (como resultado, meios mais desenvolvidos de análise de código no IDE, refatoração, batentes menos ofensivos)
A presença de funções como objetos da primeira classe. Um conceito um pouco mais complexo, mas o número de códigos padrão dos padrões poderia ser bastante reduzido. A compreensão do código por um estudante, IMHO, aumentaria mesmo devido à redução no volume - Literais de coleções universais, inicializadores. A mesma coisa - reduzindo a quantidade de código que precisa ser escrito e / ou visualizado através dos olhos. O preenchimento de coleções é superior a 9000% do tempo de programação para 1C. Escrever sem açúcar sintático é longo, caro e propenso a erros. Em geral, o número de LOCs nas soluções 1C excede todos os limites concebíveis em comparação com as estruturas abertas disponíveis e, em geral, todo o Java corporativo combinado. A linguagem é detalhada e degenera em volume de dados, memória, freios IDE, tempo, dinheiro ....
- finalmente construções Eu tenho uma hipótese de que essa construção está faltando devido ao fato de elas não terem obtido uma tradução bem-sucedida para o russo :)
- Tipos de dados próprios (sem OOP), tipo análogos do VB6. Permite que você não tipifique estruturas usando comentários no BSP e os métodos mágicos que constroem essas estruturas. Temos: menos código, uma dica direta, uma solução mais rápida para o problema, menos erros de erros de digitação e propriedades de estrutura ausentes. Agora, a tipificação das estruturas do usuário é inteiramente da equipe de desenvolvimento da Biblioteca de Subsistemas Padrão, que, para meu crédito, escreve cuidadosamente comentários sobre as propriedades esperadas das estruturas de parâmetros transferidas.
- Falta de açúcar ao trabalhar com chamadas assíncronas no Web client. Um inferno de retorno de chamada na forma de processamento de alerta é uma muleta temporária causada por uma mudança repentina na API dos principais navegadores, mas você não pode viver assim o tempo todo, a vantagem de "entender pelo aluno" o código assíncrono está perdendo cada vez mais. Adicione qualquer suporte para esse paradigma no IDE principal aqui e as coisas piorarão.
Esta é uma questão premente, é claro que a lista pode ser muito maior, mas não se deve esquecer que ainda não é uma linguagem de uso geral, não há necessidade de multithreading, funções lambda, acesso à GPU e cálculos rápidos de ponto flutuante. Essa é uma linguagem de script de lógica de negócios.
Um programador que trabalhou muito com essa linguagem analisou js ou c # está ficando entediado com a linguagem. Isso é um fato. Ele precisa de desenvolvimento. Do outro lado da balança, o fornecedor tem o custo de vender esses recursos versus o aumento da receita após sua implementação. Aqui não tenho informações sobre o que é superado aos olhos da empresa no momento.
Ambiente de desenvolvimento
Tudo aqui também não é bom. Existem dois ambientes de desenvolvimento. O primeiro é o configurador incluído na entrega. O segundo é o ambiente Enterprise Development Tools, desenvolvido com base no Eclipse, abreviado EDT.
O configurador fornece uma gama completa de tarefas de desenvolvimento, suporta todos os recursos e é o principal ambiente do mercado. Também é moralmente desatualizado, não se desenvolve, segundo os rumores - devido ao volume de dívida técnica em si. A abertura da API interna poderia melhorar a situação (na forma de amizade com Snegopat A. Orefkov ou de forma independente), mas não é. A prática demonstrou que a comunidade arquivará para si um recurso no IDE, se apenas o fornecedor não interferir. Mas nós temos o que temos. O configurador era bonito em 2004-2005, era muito parecido com o Visual Studio daqueles tempos, em locais que era ainda mais legal, mas ficou preso naqueles tempos.
Além disso, o volume da solução padrão média aumentou várias vezes desde então e hoje o IDE estupidamente não lida com a quantidade de código que é alimentada. Os recursos de usabilidade e refatoração nem estão no zero, estão no vermelho. Tudo isso não acrescenta entusiasmo aos desenvolvedores e eles sonham em jogá-lo em outros ecossistemas e continuar cagando por lá, mas em um ambiente agradável que não cuspa no rosto de seu comportamento.
Como alternativa, é proposto um IDE baseado em Eclipse, gravado do zero. Lá, as fontes, como em qualquer outro software, vivem na forma de arquivos de texto, são armazenadas no GIT, ramos de solicitação por solicitação, tudo isso. Dos pontos negativos - há muitos anos que ele não saiu do status beta, embora a cada versão tudo esteja melhorando. Não vou escrever sobre os contras da EDT, que hoje é menos, amanhã é um recurso fixo. A relevância dessa descrição desaparecerá rapidamente. Hoje é possível desenvolver no EDT, mas incomum, você precisa estar preparado para vários erros de IDE.
Se você observar a situação através do mencionado “prisma 1C”, obtém algo assim: o lançamento do novo IDE não aumenta a venda de caixas, mas o fluxo de saída dos DEVELOPERS pode ser reduzido. É difícil dizer o que aguarda o ecossistema do ponto de vista do conforto do desenvolvedor, mas a Microsoft já definiu o perfil de desenvolvedores móveis oferecendo seus serviços a eles tarde demais.
Gerenciamento de desenvolvimento
, , , , , 1 git, blame, code-review, , etc. , . , , , . -, KDiff- . gitconverter , , , gitsync , -. open-source 1 . API , , IDE.
, 1 git Jira, Crucible, Allure 1 SonarQube — , , , 1.
Administração
. -, , - ( 1). , , , , — highload — , " ". , , 1 - . , , . .
, . , 1: , , . , , ELK , , — . . , 1 — . , . , , , 1- , , . SAP. , , , - . . SAP . - 1 , . Isso é uma falácia.
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. ?
Tudo isso é apenas um punhado de exemplos quando limitar a funcionalidade ou implementar com compromissos é uma importante vantagem arquitetônica no futuro. Mesmo um compromisso ou não é a opção mais eficaz - ele já está na caixa e é um dado adquirido. Sua implementação independente será impossível (porque essas decisões precisam ser tomadas no início do projeto, e não antes, e geralmente não há arquiteto), ou várias iterações caras. Em cada um desses itens (e essa não é uma lista completa de soluções de arquitetura), é possível nakosyachit e estabelecer restrições que bloqueiam a escala. De qualquer forma, você, como empresário, precisa garantir que seus programadores, criando um "sistema do zero", tenham braços retos e farão bons momentos no sistema imediatamente.
Sim, como em qualquer outro sistema complexo, o próprio 1C possui soluções que bloqueiam o dimensionamento de uma maneira ou de outra. No entanto, repito, pela combinação de fatores, pelo custo de propriedade, pelo número de problemas já resolvidos antecipadamente - não vejo um concorrente digno no mercado. Pelo mesmo preço, você obtém uma estrutura de aplicativos financeiros, um servidor balanceado em cluster, com uma interface do usuário e um focinho da web, com um aplicativo móvel, com relatórios, integração e muito mais. No mundo Java, você contrata uma equipe de front-end e back-end, depura batentes de baixo nível de código de servidor auto-gravado e paga separadamente por 2 aplicativos móveis para 2 sistemas operacionais móveis.
Não estou dizendo que o 1C resolverá todos os casos, mas para um aplicativo corporativo interno, quando você não precisa marcar a interface do usuário, o que mais é necessário?
Voar na pomada
Provavelmente, parece que o 1C salvará o mundo e todas as outras maneiras de escrever sistemas corporativos estão erradas. Isto não é de todo verdade. Do ponto de vista de um empresário, se você escolher 1C, além de uma rápida colocação no mercado, deverá levar em consideração as seguintes desvantagens:
- Confiabilidade do servidor Requer especialistas verdadeiramente de alta qualidade, capazes de garantir seu bom funcionamento. Não conheço o programa de treinamento concluído para esses especialistas do fornecedor. Existem cursos para se preparar para passar no exame "Expert", mas isso, na minha opinião, não é suficiente.
- Suporte. Veja o parágrafo anterior. Para ter suporte do fornecedor, você precisa comprá-lo. Por alguma razão, isso não é aceito na indústria 1C. E com a SAP, é quase necessário comprar e não incomoda ninguém. Sem suporte corporativo e sem um especialista no estado - com as falhas da 1C, você pode permanecer um a um.
- Ainda assim, no 1C você não pode fazer nada. Esta é uma ferramenta e, como toda ferramenta, possui limites de aplicabilidade. Em um cenário com 1C, é muito desejável ter um arquiteto de sistema "não 1C-nut".
- Bons apelidos 1C não são mais baratos que bons programadores em outros idiomas. Embora programadores ruins sejam caros para contratar, independentemente do idioma que escrevem.
Vamos pontilhar
- 1C é uma estrutura para o rápido desenvolvimento de aplicativos (RAD) para negócios e é adaptado para isso.
- Três links com suporte para o DBMS principal, interface do cliente, ORM e relatórios muito bons
- Amplas oportunidades de integração com sistemas que podem fazer o que a 1C não faz. Se você quiser aprendizado de máquina, obtenha o Python e mescle o resultado no 1C via http ou RabbitMQ
- Não se esforce para fazer tudo em 1C, você precisa entender seus pontos fortes e usá-los para seus próprios fins
- Os desenvolvedores que estão inclinados a procurar estruturas tecnológicas - gadgets e refazer a cada N anos em um novo mecanismo - estão entediados no 1C. Tudo é muito conservador lá.
- Os desenvolvedores estão entediados por causa da pouca preocupação do fabricante. Linguagem chata, IDE fraco. Eles exigem modernização.
- Por outro lado, os desenvolvedores que não conseguem encontrar diversão através da aplicação e estudo de outras tecnologias de que gostam são maus desenvolvedores. Eles vão lamentar e ir para outro ecossistema.
- Empregadores que não permitem que seus apelidos 1C amordace algo em Python são maus empregadores. Eles perderão os funcionários com uma mente inquisitiva e entrarão em seu lugar os codificadores de macacos que, tendo concordado com tudo, arrastarão o software corporativo para o pântano. Você ainda precisa reescrevê-lo, então talvez seja melhor investir um pouco mais cedo no Python?
- A 1C é uma empresa comercial e implementa recursos apenas com base em seus próprios interesses e conveniência. Ela não pode ser responsabilizada por isso, uma empresa deve pensar em lucro, como é a vida
- 1C ganha dinheiro vendendo soluções para problemas de negócios, não para os desenvolvedores da Vasya. Esses dois conceitos estão correlacionados, mas a prioridade é exatamente a que eu disse. Quando o desenvolvedor Vasya estiver pronto para pagar por uma licença pessoal para 1C: Resharper - ele aparecerá rapidamente, "Resharper" A. Orefkova confirmará isso. Se o fornecedor o apoiasse, mas não brigasse com ele, você procuraria um mercado de software para desenvolvedores. Agora, existem um jogador e meio nesse mercado com resultados duvidosos, e tudo porque a integração com o IDE é negativa e tudo é feito de muletas.
- A prática de um especialista em múltiplas ferramentas entrará no esquecimento. Os aplicativos modernos são muito volumosos para lembrá-los do lado do código e do lado do uso comercial. O servidor 1C também está se tornando mais complicado, não será possível reter todos os tipos de conhecimento em um funcionário. Isso deve implicar na demanda de especialistas, o que significa a atratividade da profissão 1C-nick e um aumento nos salários. Se antes a Vasya trabalhava três em um por um salário, agora você precisa contratar duas Vasya e a concorrência entre a Vasya pode estimular o crescimento geral de seu nível.
Conclusão
1C é um produto muito digno. Na minha faixa de preço, não conheço nenhum análogo, escreva nos comentários, se houver. No entanto, a saída de desenvolvedores do ecossistema está se tornando mais perceptível e, de qualquer maneira, isso é uma "fuga de cérebros". A indústria está ansiosa por modernização.
Se você é um desenvolvedor - não faça ciclos em 1C e não pense que em outros idiomas tudo é mágico. Enquanto você é junho - talvez. Assim que você precisar resolver algo maior, precisará procurar soluções prontas por mais tempo e concluir com mais intensidade. Pelo nível de qualidade dos "cubos" a partir dos quais você pode criar uma solução - 1C é muito, muito bom.
E, no entanto - se você contratou o apelido 1C, o apelido 1C pode ser colocado com segurança nos analistas líderes. Compreensão da tarefa, área de assunto, habilidades de decomposição que eles desenvolveram perfeitamente. Estou certo de que isso se deve exatamente ao uso forçado de DDD no desenvolvimento 1C. Uma pessoa é treinada para pensar sobre o significado da tarefa, em primeiro lugar, sobre as conexões entre objetos da área de estudo e possui uma formação técnica em tecnologias de integração e formatos de troca de dados.
Esteja ciente de que a estrutura ideal não existe e cuide-se.
Bom para todos!
PS: muito obrigado speshuric por ajudar com este artigo.