1C - Le bien et le mal. Placement des points dans les holivars autour de 1C

image


Amis et collègues, récemment sur les articles Habré avec un chapeau contre 1C, comme plateforme de développement, et les discours de ses défenseurs sont devenus plus fréquents. Ces articles ont mis en évidence un problème grave: le plus souvent, les critiques de 1C le critiquent du point de vue de "ne pas l'avoir maîtrisé", critiquant des problèmes qui sont de facto faciles à résoudre, et, au contraire, sans toucher aux problèmes qui sont vraiment importants, il y a des discussions et ne sont pas résolus par le vendeur . Je pense qu'il est logique de procéder à un examen sobre et équilibré de la plate-forme 1C. Ce qu'elle sait comment, ce qu'elle ne sait pas, ce qu'elle devrait faire, mais ne le fait pas, et, du bon côté, ce qu'elle fait avec fracas, et vos développeurs sur% technology_name% feront cent ans, en jetant plus d'un budget annuel.


En conséquence, vous, en tant que leader ou architecte, serez en mesure de comprendre clairement - pour quelle tâche il sera rentable pour vous de prendre 1C, et où il devrait être brûlé avec un fer chaud. En tant que développeur du monde «pas 1C», vous pouvez voir ce qu'il y a dans 1C à cause de ce qu'est l'agitation. Et en tant que développeur 1C, vous pouvez comparer votre système avec des écosystèmes d'autres langues et comprendre votre emplacement dans le système de coordonnées du développement logiciel.


Sous la coupe - beaucoup d'esquisses épaisses pour 1C, pour les critiques 1C, pour Java, .NET et en général ... Le ventilateur est en marche, bienvenue!


Ă€ propos de moi


Je connais le sujet depuis 2004 environ. Je programme probablement depuis mes 6 ans, à partir du moment où j'ai reçu un livre sur le professeur Fortran avec des bandes dessinées sur un chat, un moineau et une chenille. J'ai démonté les programmes que le chat a écrits à partir des images du livre et compris ce qu'ils faisaient. Et oui, je n'avais pas de vrai ordinateur à ce moment-là, mais j'étais dessiné sur la page et j'ai honnêtement appuyé sur les boutons en papier, saisissant les commandes espionnées par le chat X.


Ensuite, il y avait BK0011 et BASIC à l'école, C ++ et assembleurs à l'université, puis 1C, et puis tellement que c'est trop paresseux pour se souvenir. Au cours des 15 dernières années, je me suis principalement engagé dans 1C, non seulement en termes de codage, mais en général 1C. Définition des objectifs, de l'administration et des devops ici. Au cours des 5 dernières années, j'ai été engagé dans des activités socialement utiles en termes de développement d'outils de développement et d'automatisation pour d'autres surnoms 1C, j'écris des articles et des livres.


DĂ©cider du sujet de discussion


Pour commencer, décidons de ce qui sera discuté, car les lettres "1C" peuvent comprendre beaucoup de choses. Dans ce cas, par les lettres "1C", nous entendons exclusivement le cadre de développement de "1C: Enterprise" de la huitième version moderne. Nous ne parlerons pas beaucoup de l'entreprise manufacturière et de sa politique (mais cela devra être un peu) Nous ne discuterons pas d'applications spécifiques écrites en utilisant ce framework. Technologie séparément, alias applications de configuration - séparément.


Architecture de haut niveau 1C: Entreprise


Je mentionne sciemment le mot «cadre». Du point de vue du développeur, la plateforme 1C est précisément le framework. Et vous devez le traiter comme un framework. Considérez-le comme Spring ou ASP.NET exécuté par un runtime (JVM ou CLR, respectivement). Il se trouve que dans le monde de la programmation ordinaire («pas 1C»), la séparation en frameworks, machines virtuelles et applications spécifiques est naturelle, du fait que ces composants sont généralement développés par différents fabricants. Dans le monde de 1C, il n'est pas habituel d'allouer explicitement un cadre de développement et en fait un runtime, en outre, des applications spécifiques écrites à l'aide du cadre sont fondamentalement également développées par 1C lui-même. Il en résulte une certaine confusion. Par conséquent, dans le cadre de l'article, nous devrons considérer 1C de plusieurs côtés à la fois et le classer selon plusieurs axes de coordonnées. Et dans chaque axe de coordonnées, nous mettre une pelle de substance brune considérer les caractéristiques, avantages et inconvénients de la solution existante.


Points de vue 1C


1C pour l'acheteur


L'acheteur acquiert un système d'automatisation sur lequel il peut rapidement résoudre les problèmes d'automatisation de sa propre entreprise. Une entreprise peut être un petit stand ou une grande exploitation. Il est clair que les besoins de ces entreprises sont différents, mais les deux sont pris en charge par une seule base de code de la plate-forme.


Pour l'acheteur, 1C est un time-to-market rapide. Vite. Plus rapide que Java, C # ou JS. En moyenne. A l'hôpital. Il est clair que le site de carte de visite sur la réaction se révélera mieux, mais le backend du système WMS démarrera plus rapidement sur 1C.


1C comme outil


Chaque solution technologique a des limites d'applicabilité. 1C n'est pas un langage à usage général, il ne vit pas séparément de son cadre. 1C est conseillé d'appliquer lorsque vous avez besoin:


  • application serveur
  • demande de financement
  • avec interface utilisateur prĂŞte, ORM, Reporting, XML / JSON / COM / PDF / YourDataTransferingFormat
  • avec prise en charge des processus et des travaux en arrière-plan
  • avec une sĂ©curitĂ© basĂ©e sur les rĂ´les
  • avec une logique mĂ©tier scriptable
  • avec prototype rapide et temps de mise sur le marchĂ© rĂ©duit

1C vous n'avez pas besoin si vous voulez:


  • apprentissage automatique
  • Calculs GPU
  • infographie
  • calculs mathĂ©matiques
  • Système de CAO
  • traitement du signal (son, vidĂ©o)
  • charger des appels http avec des centaines de milliers de rps

1C en tant qu'entreprise manufacturière


Il vaut la peine de comprendre quelle est l'activité de 1C, en tant que fabricant de logiciels. La société 1C vend des solutions aux problèmes commerciaux grâce à l'automatisation. Une entreprise différente, grande ou petite, mais elle vend juste cela. Les moyens d'y parvenir sont les applications métier. Pour la comptabilité, la comptabilité des salaires, etc. Pour écrire ces applications, l'entreprise utilise sa propre plateforme pour développer des applications métiers. Spécialement adapté aux tâches courantes de ces mêmes applications métier:


  • comptabilitĂ© financière
  • personnalisation simple de la logique mĂ©tier
  • de vastes possibilitĂ©s d'intĂ©gration dans des environnements informatiques hĂ©tĂ©rogènes

En tant que fabricant, 1C estime que c'est cette stratégie qui vous permet de travailler avec des partenaires et des clients en mode gagnant-gagnant. Vous pouvez contester cela, mais quelque chose comme cela, la société se promeut: des solutions prêtes à l'emploi aux problèmes commerciaux qui peuvent être rapidement personnalisées par les partenaires et intégrées dans n'importe quel paysage informatique.


Toutes les réclamations ou liste de souhaits pour 1C, en tant que cadre, doivent être considérées exclusivement à travers ce prisme. "Nous voulons une POO en 1C", disent les développeurs. "Combien cela coûtera-t-il pour soutenir OOP dans la plate-forme, cela nous aidera-t-il à augmenter les ventes de boîtes?", Déclare 1C. Ouvre son "prisme" de vente de solutions métiers:


"Salut les affaires, voulez-vous OOP dans votre 1C?"
"Cela m'aidera-t-il à résoudre mes problèmes?"
- Comment savoir ...
- Alors pas besoin


Cette approche peut être bonne ou mauvaise, selon la personne qui la regarde, mais c'est juste cela. En parlant du fait qu'il n'y a pas de fonctionnalité X dans 1C, vous devez comprendre qu'elle n'est pas là pour une raison, mais dans le contexte du choix "coût d'implémentation par rapport à la taille du profit".


Classification technologique


"En fait, les odnosniks utilisent les meilleurs modèles, soigneusement sélectionnés par des méthodologistes attentionnés et des développeurs de la plate-forme 1C.
Lorsque vous écrivez votre code muet pour un formulaire simple et gérable, vous utilisez en fait un contrôleur de vue de modèle avec une liaison de données à double sens dans un moteur d'application de données à trois couches , aromatisé avec un mappage de relation d'objet de haut niveau basé sur des métadonnées déclaratives description , qui possède son propre langage de requête indépendant de la plate-forme , avec une interface utilisateur déclarative pilotée par les données, une sérialisation transparente complète et un langage de programme orienté domaine .

La différence entre les développeurs 1C et leurs homologues occidentaux réside dans les relations publiques. Ils aiment donner un grand nom à n'importe quelle connerie et se précipiter avec elle comme avec un sac écrit. "
A. Orefkov

La plate-forme 1C a une architecture classique à 3 niveaux, au centre de laquelle se trouve un serveur d'applications (ou son émulation pour peu d'argent pour les petits commerçants). En tant que SGBD, MS SQL ou Postgres est utilisé. Il existe également une prise en charge d'Oracle et d'IBM DB2, mais il s'agit davantage d'un comportement ésotérique, personne ne sait ce qui se passera si vous implémentez 1C sur ces bases sous une charge moyenne et élevée. Je crois que la société 1C elle-même ne le sait pas non plus.


La partie client est soit un client léger installé sur la machine de l'utilisateur, soit un client Web. La caractéristique clé est que les programmeurs n'écrivent pas 2 codes différents, ils écrivent une application, dans une langue, et vous pouvez le définir dans le navigateur s'il y a un désir ou un besoin. Qui voulait une pile complète authentique et une seule langue pour le front et le backend, node.js? Ils n'ont pas réussi à faire exactement la même chose jusqu'à la fin. Une vraie pile complète existe, mais vous devrez écrire en 1C. Ironie du sort, de telles choses :)


En mode navigateur, la solution 1C: Fresh cloud SaaS fonctionne Ă©galement, dans laquelle vous ne pouvez pas acheter 1C, mais louer une petite base et y enregistrer les ventes de shawarma. Juste dans le navigateur, sans rien installer ni configurer par vous-mĂŞme.


En outre, il existe un client hérité, qui dans 1C est appelé une "application régulière". Legacy, c'est Legacy, bienvenue dans le monde des applications en 2002, mais nous parlons encore de l'état actuel de l'écosystème.


Le côté serveur 1C prend en charge le clustering et évolue en ajoutant de nouvelles machines au cluster. Ici, plusieurs exemplaires sont cassés, et à ce sujet, il y aura une section distincte dans l'article. En bref, ce n'est pas tout à fait la même chose que d'ajouter quelques instances exactement les mêmes derrière HAProxy.


Le cadre de développement d'applications utilise son propre langage de programmation, qui ressemble à peu près à un VB6 légèrement amélioré, traduit en russe. Aux gens déteste tout russe qui ne croient pas que "si" est traduit par "si" une deuxième syntaxe est suggérée. C'est-à-dire si vous le souhaitez, 1C peut être écrit de sorte qu'en apparence il ne se distingue pas de VB.


image


Ce langage de programmation très est la principale raison du chapeau de surnom 1C vers sa plate-forme. Franchement, non sans raison. Le langage a été conçu aussi simple que possible, conçu pour répondre au mantra "DEVELOPERS, DEVELOPERS" à l'échelle CIS au moins. L'essence commerciale d'une telle solution, à mon avis, est clairement visible: plus de développeurs, plus de couverture du marché. Selon diverses estimations, cela est devenu vrai de 45% à 95%. Je dois dire tout de suite que l'écriture dans la langue dans laquelle vous pensez est vraiment plus facile. Et je connais pas mal de langages de programmation.


Commençons par la langue.


Langage de programmation 1C


Dans le même temps, les points forts et les points faibles du système. Fournit une entrée facile, la lisibilité. En revanche, il n'a pas été mis à jour depuis la sortie de la version 8 en 2002 et est obsolète. Quelqu'un dira "le principal défaut - il n'y a pas de POO" et ce sera faux. Premièrement, l'OLP n'aime pas seulement Nuraliev, mais aussi Torvalds. Et deuxièmement, la POO existe toujours.


Du point de vue du développeur, il a à sa disposition un framework avec les classes de base affichées sur le SGBD. Le développeur peut prendre la classe de base "Annuaire" et en hériter le répertoire "Clients". Il peut y ajouter de nouveaux champs de classe, par exemple, TIN et Address, et, si nécessaire, peut remplacer les méthodes de la classe de base, par exemple, la méthode OnWrite / Prizapisi.


Le cadre est conçu de telle manière qu'un héritage plus approfondi est rarement requis, et la limitation dans la POO, à mon avis, est logique. 1C se concentre sur le développement piloté par domaine et vous fait tout d'abord réfléchir au sujet de la solution en cours de développement, et c'est bien. Il n'y a pas seulement la tentation, mais aussi la nécessité d'écrire 10 DTO et ViewModel différents juste pour montrer quelque part des données du domaine. Le développeur 1C fonctionne toujours avec une seule entité, sans obstruer le contexte de perception avec des dizaines de classes avec des noms similaires représentant la même entité, mais de l'autre côté. Toute application .NET, par exemple, contiendra nécessairement cinq ou deux ViewModel et DTO pour la sérialisation en JSON et le transfert de données du client vers le serveur. Et environ 10 à 15% du code de votre application transférera les données d'une classe à une autre avec des stylos ou des béquilles comme AutoMapper. Ce code doit être écrit et les programmeurs doivent payer pour sa création et sa maintenance.


Il s'avère que le langage 1C est difficile à développer sans le compliquer au niveau des langages traditionnels, perdant ainsi l'avantage de la simplicité. En fait, quelle est la tâche du vendeur en cours de résolution: émettre une solution standard qui peut être personnalisée par tout étudiant pris dans la rue avec le bon niveau de qualité (c'est-à-dire que le cas de couverture du stand à la grande usine est réalisé). Si vous êtes un décrochage - prenez un étudiant, si vous êtes une usine - prenez un gourou d'un partenaire de mise en œuvre. Le fait que les partenaires d'exécution vendent des étudiants au prix d'un gourou n'est pas un problème de cadre. Sur le plan architectural, le cadre devrait résoudre les problèmes des deux, le code des configurations typiques (que nous avons vendu à l'entreprise avec la promesse de personnalisation) devrait être compris par l'étudiant, et le gourou comprendra ce que vous voulez.


Ce qui, à mon avis, fait vraiment défaut dans la langue, ce qui m'oblige à écrire plus que je pourrais, alors ça brûle dans le temps payé par le client.


  • La possibilitĂ© de taper au niveau, par exemple, de TypeScript (en consĂ©quence, des moyens plus dĂ©veloppĂ©s d'analyse de code dans l'EDI, une refactorisation, des montants moins offensants)
    La présence de fonctions comme objets de première classe. Un concept un peu plus complexe, mais le nombre de codes passe-partout des codes standard pourrait être considérablement réduit. La compréhension du code par un étudiant, à mon humble avis, augmenterait même en raison de la réduction du volume
  • LittĂ©raux de collections universelles, initialiseurs. La mĂŞme chose - rĂ©duire la quantitĂ© de code qui doit ĂŞtre Ă©crit et / ou vu Ă  travers les yeux. Le remplissage des collections reprĂ©sente plus de 9000% du temps de programmation pour 1C. L'Ă©crire sans sucre syntaxique est long, coĂ»teux et sujet aux erreurs. En gĂ©nĂ©ral, le nombre de LOC dans les solutions 1C dĂ©passe toutes les limites imaginables par rapport aux frameworks ouverts disponibles et, en gĂ©nĂ©ral, l'ensemble de votre entreprise Java combinĂ©. Le langage est verbeux et dĂ©gĂ©nère en volume de donnĂ©es, mĂ©moire, freins IDE, temps, argent ...
  • enfin les constructions J'ai une hypothèse que cette construction manque car elles n'ont pas rĂ©ussi Ă  traduire en russe :)
  • Propres types de donnĂ©es (sans POO), analogues de type de VB6. Vous permet de ne pas typifier les structures en utilisant les commentaires dans le BSP et les mĂ©thodes magiques qui construisent ces structures. Nous obtenons: moins de code, un indice Ă  travers le point, une solution plus rapide au problème, moins d'erreurs sur les fautes de frappe et les propriĂ©tĂ©s de structure manquantes. DĂ©sormais, la typification des structures utilisateur incombe entièrement Ă  l'Ă©quipe de dĂ©veloppement de la Library of Standard Subsystems, qui, Ă  mon crĂ©dit, rĂ©dige soigneusement des commentaires sur les propriĂ©tĂ©s attendues des structures de paramètres transfĂ©rĂ©es.
  • Manque de sucre lors de l'utilisation d'appels asynchrones sur le client Web. Un enfer de rappel sous forme de traitement des alertes est une bĂ©quille temporaire causĂ©e par un changement soudain de l'API des principaux navigateurs, mais vous ne pouvez pas vivre comme ça tout le temps, l'avantage de la «comprĂ©hension par l'Ă©tudiant» du code asynchrone perd de plus en plus. Ajoutez n'importe quel support pour ce paradigme dans l'IDE principal ici et les choses vont empirer.

Il s'agit d'un problème urgent, il est clair que la liste peut être beaucoup plus longue, mais il ne faut pas oublier qu'il ne s'agit toujours pas d'un langage à usage général, il n'y a pas besoin de multithreading, de fonctions lambda, d'accès au GPU et de calculs rapides en virgule flottante. Il s'agit d'un langage de script de logique métier.


Un programmeur qui a beaucoup travaillé avec ce langage s'est penché sur js ou c # s'ennuie avec le langage. C’est un fait. Il a besoin de développement. De l'autre côté de la balance, le vendeur a le coût de la vente de ces fonctionnalités par rapport à l'augmentation des revenus après leur mise en œuvre. Ici, je n'ai aucune information sur ce qui l'emporte aux yeux de l'entreprise pour le moment.


Environnement de développement


Ici, tout n'est pas lisse non plus. Il existe deux environnements de développement. Le premier est le configurateur inclus dans la livraison. Le second est l'environnement Enterprise Development Tools, développé sur la base d'Eclipse, abrégé EDT.


Le configurateur fournit une gamme complète de tâches de développement, prend en charge toutes les fonctionnalités et constitue l'environnement principal du marché. Il est également moralement dépassé, ne se développe pas, selon les rumeurs - en raison du volume de la dette technique en soi. L'ouverture de l'API interne pourrait améliorer la situation (sous forme d'amitié avec Snegopat A. Orefkov ou sur une base indépendante), mais ce n'est pas le cas. La pratique a montré que la communauté se déposera une fonctionnalité dans l'IDE, si seulement le fournisseur n'interfère pas. Mais nous avons ce que nous avons. Le configurateur était beau en 2004-2005, il était très similaire à Visual Studio à cette époque, à certains endroits c'était encore plus cool, mais il était coincé à cette époque.


De plus, le volume de la solution standard moyenne a augmenté à plusieurs reprises depuis lors et aujourd'hui l'IDE ne supporte pas stupidement la quantité de code qu'il est alimenté. Les capacités d'utilisabilité et de refactoring ne sont même pas à zéro, elles sont dans le rouge. Tout cela n'ajoute pas d'enthousiasme aux développeurs et ils rêvent de le déverser dans d'autres écosystèmes et de continuer à chier là-bas, mais dans un environnement agréable qui ne crache pas en face de son comportement.


Comme alternative, un IDE basé sur Eclipse écrit à partir de zéro est proposé. Là, les sources, comme dans tout autre logiciel, vivent sous forme de fichiers texte, sont stockées dans GIT, branches pull-request, tout cela. Parmi les inconvénients - depuis de nombreuses années, il n'est pas sorti du statut bêta, bien qu'à chaque version, tout s'améliore. Je n’écrirai pas les inconvénients d’EDT, qui est aujourd’hui un inconvénient, demain une fonctionnalité fixe. La pertinence d'une telle description disparaîtra rapidement. Aujourd'hui, il est possible de développer en EDT, mais inhabituel, vous devez vous préparer à un certain nombre de bogues IDE.


Si vous regardez la situation à travers le «prisme 1C» mentionné, vous obtenez quelque chose comme ceci: la sortie du nouvel IDE n'augmente pas la vente de boîtes, mais la sortie des DÉVELOPPEURS peut être réduite. Il est difficile de dire ce qui attend l'écosystème du point de vue du confort des développeurs, mais Microsoft a déjà une fois profilé les développeurs mobiles en leur proposant leurs services trop tard.


Gestion du développement


, , , , , 1 git, blame, code-review, , etc. , . , , , . -, KDiff- . gitconverter , , , gitsync , -. open-source 1 . API , , IDE.


, 1 git Jira, Crucible, Allure 1 SonarQube — , , , 1.


Administration


. -, , - ( 1). , , , , — highload — , " ". , , 1 - . , , . .


, . , 1: , , . , , ELK , , — . . , 1 — . , . , , , 1- , , . SAP. , , , - . . SAP . - 1 , . Ceci est une erreur.


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 - . , . , 1. . , , . -, , — . :


  1. Unicode. , , ? 2019 ASCII ( legacy). . . - - varchar . 2015 gitlab LDAP- - , JetBrains IDE . 1 . . , , . , - . Java- . . ? .
  2. /. 1 . — . identity ( ", "), , , ( ). , , , — , , , .
  3. . 1 — . . - identity ( !), GUI, ( ). ? ?
  4. . 1 () . — ! , : ( ), . , . , — , .
  5. . , - . . — . : , .
  6. . , . , -, , , — . ( UI) — .
  7. Reporting. BI- ETL-. , . , , .. 1 , , . , . -- , --. : reporting, , , .
  8. . - .NET PDF . . PDF? 1- PDF +1 . + 40 , . 1 , . , , 1 , 3D OpenGL. ?

Tout cela n'est qu'une poignée d'exemples lorsque la limitation des fonctionnalités ou la mise en œuvre avec des compromis est un avantage architectural important à l'avenir. Même un compromis ou non l'option la plus efficace - elle est déjà dans la boîte et est tenue pour acquise. Sa mise en œuvre indépendante sera soit impossible (car de telles décisions doivent être prises au début du projet, et pas avant, et en général il n'y a pas d'architecte), soit plusieurs itérations coûteuses. Dans chacun de ces éléments (et ce n'est pas une liste complète des solutions architecturales), vous pouvez nakosyachit et imposer des restrictions qui bloquent la mise à l'échelle. Dans tous les cas, vous, en tant qu'homme d'affaires, devez vous assurer que vos programmeurs, créant un "système à partir de zéro", ont les bras tendus et feront immédiatement de bons moments système.


Oui, comme dans tout autre système complexe, 1C a lui-même des solutions qui bloquent la mise à l'échelle d'une manière ou d'une autre. Cependant, je le répète, par la combinaison de facteurs, par le coût de possession, par le nombre de problèmes déjà résolus à l'avance - je ne vois pas un concurrent digne sur le marché. Pour le même prix, vous obtenez un cadre d'application financière, un serveur équilibré en cluster, avec une interface utilisateur et un museau Web, avec une application mobile, avec des rapports, une intégration et bien plus encore. Dans le monde Java, vous embauchez une équipe front-end et back-end, déboguez des montants bas de code serveur auto-écrit et payez séparément pour 2 applications mobiles pour 2 OS mobiles.


Je ne dis pas que 1C résoudra tous les cas, mais pour une application d'entreprise interne, lorsque vous n'avez pas besoin de personnaliser l'interface utilisateur, que faut-il d'autre?


Voler dans la pommade


Probablement, il semble que 1C sauvera le monde et toutes les autres façons d'écrire les systèmes d'entreprise sont mauvaises. Ce n'est pas vrai du tout. Du point de vue d'un homme d'affaires, si vous choisissez 1C, en plus d'un time-to-market rapide, vous devez considérer les inconvénients suivants:


  • FiabilitĂ© du serveur Il nĂ©cessite des spĂ©cialistes de très haute qualitĂ©, capables d'assurer son bon fonctionnement. Je ne connais pas le programme de formation terminĂ© pour ces spĂ©cialistes du vendeur. Il existe des cours pour se prĂ©parer Ă  passer l'examen "Expert", mais cela, Ă  mon avis, ne suffit pas.
  • Support. Voir le paragraphe prĂ©cĂ©dent. Pour bĂ©nĂ©ficier de l'assistance du fournisseur, vous devez l'acheter. Pour une raison quelconque, cela n'est pas acceptĂ© dans l'industrie 1C. Et avec SAP, il est presque nĂ©cessaire d'acheter et cela ne dĂ©range personne. Sans le soutien de l'entreprise et sans un expert de l'État - avec les problèmes 1C, vous pouvez rester seul.
  • Pourtant, sur 1C, vous ne pouvez rien faire du tout. Il s'agit d'un outil et, comme tout outil, il a des limites d'applicabilitĂ©. Dans un paysage avec 1C, il est très souhaitable d'avoir un architecte système "pas Ă©crou 1C".
  • Les bons surnoms 1C ne sont pas moins chers que les bons programmeurs dans d'autres langues. Cependant, les mauvais programmeurs coĂ»tent cher Ă  embaucher, quelle que soit la langue qu'ils Ă©crivent.

Voyons


  • 1C est un cadre pour le dĂ©veloppement rapide d'applications (RAD) pour les entreprises et est conçu pour cela.
  • Trois liens avec prise en charge du SGBD principal, interface utilisateur client, assez bon ORM et rapports
  • De nombreuses possibilitĂ©s d'intĂ©gration avec des systèmes capables de faire ce que 1C ne fait pas. Si vous voulez un apprentissage automatique, obtenez Python et fusionnez le rĂ©sultat dans 1C via http ou RabbitMQ
  • Ne vous efforcez pas de tout faire en 1C, vous devez comprendre ses forces et les utiliser Ă  vos propres fins
  • Les dĂ©veloppeurs qui sont enclins Ă  creuser dans des cadres technologiques-gadgets, et Ă  refaire tous les N ans sur un nouveau moteur - s'ennuient dans 1C. Tout y est très conservateur.
  • Les dĂ©veloppeurs s'ennuient en raison de la très faible prĂ©occupation pour eux du fabricant. Langage ennuyeux, IDE faible. Ils nĂ©cessitent une modernisation.
  • D'un autre cĂ´tĂ©, les dĂ©veloppeurs qui ne trouvent pas de divertissement par l'application et l'Ă©tude d'autres technologies qu'ils aiment sont de mauvais dĂ©veloppeurs. Ils gĂ©miront et iront dans un autre Ă©cosystème.
  • Les employeurs qui ne permettent pas Ă  leurs surnoms 1C de bâillonner quelque chose en Python sont de mauvais employeurs. Ils perdront des employĂ©s avec un esprit curieux, et des singe-codeurs viendront Ă  leur place, qui, après avoir Ă©tĂ© d'accord avec tout, entraĂ®nera le logiciel d'entreprise dans le marais. Vous devez encore le rĂ©Ă©crire, alors peut-ĂŞtre qu'il serait prĂ©fĂ©rable d'investir un peu plus tĂ´t dans Python?
  • 1C est une sociĂ©tĂ© commerciale et met en Ĺ“uvre des fonctionnalitĂ©s uniquement sur la base de ses propres intĂ©rĂŞts et opportunitĂ©. On ne peut pas lui en vouloir, une entreprise doit penser au profit, telle est la vie
  • 1C gagne de l'argent en vendant des solutions aux problèmes commerciaux, et non les problèmes de dĂ©veloppeur de Vasya. Ces deux concepts sont corrĂ©lĂ©s, mais la prioritĂ© est exactement celle que j'ai dite. Lorsque le dĂ©veloppeur Vasya sera prĂŞt Ă  payer pour une licence personnelle pour 1C: Resharper - il apparaĂ®tra assez rapidement, "Resharper" A. Orefkova le confirme. Si le vendeur le soutenait, mais ne se battait pas avec lui, on pourrait penser qu'il y aurait un marchĂ© de logiciels pour les dĂ©veloppeurs. Maintenant, il y a un acteur et demi sur ce marchĂ© avec des rĂ©sultats douteux, et tout cela parce que l'intĂ©gration avec l'IDE est nĂ©gative et tout se fait avec des bĂ©quilles.
  • La pratique d'un spĂ©cialiste multi-outils passera dans l'oubli. Les applications modernes sont trop volumineuses pour les retenir du cĂ´tĂ© du code et du cĂ´tĂ© de l'utilisation professionnelle. Le serveur 1C devient Ă©galement plus compliquĂ©, il ne sera pas possible de conserver tous les types d'expertise chez un seul employĂ©. Cela devrait entraĂ®ner la demande de spĂ©cialistes, ce qui signifie l'attractivitĂ© de la profession de 1C-nick et une augmentation des salaires. Si avant Vasya travaillait trois en un pour un salaire, vous devez maintenant embaucher deux Vasya et la concurrence entre Vasya peut stimuler la croissance gĂ©nĂ©rale de leur niveau.

Conclusion


1C est un produit très valable. Dans ma gamme de prix, je ne connais aucun analogue, écrivez dans les commentaires s'il y en a. Cependant, la sortie des développeurs de l'écosystème devient plus perceptible, et c'est de toute façon une "fuite des cerveaux". L'industrie a soif de modernisation.
Si vous êtes développeur - n'allez pas en cycles en 1C et ne pensez pas que dans d'autres langues tout est magique. Pendant que vous êtes en juin - peut-être. Dès que vous devez résoudre quelque chose de plus grand, vous devrez chercher des solutions prêtes à l'emploi plus longtemps et terminer de manière plus intensive. Par le niveau de qualité des "cubes" à partir desquels vous pouvez construire une solution - 1C est très, très bon.


Et pourtant - si vous êtes venu embaucher un surnom 1C, alors le surnom 1C peut être mis en toute sécurité sur les analystes principaux. Compréhension de la tâche, du domaine, des compétences de décomposition qu'ils ont parfaitement développées. Je suis sûr que cela est précisément dû à l'utilisation forcée de DDD dans le développement 1C. Une personne est formée pour réfléchir à la signification de la tâche en premier lieu, aux liens entre les objets du domaine et possède une formation technique sur les technologies d'intégration et les formats d'échange de données.


Soyez conscient que le cadre idéal n'existe pas et prenez soin de vous.
Bon Ă  tous!


PS: merci beaucoup pour votre aide avec cet article.

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


All Articles