1C - byen ak sa ki mal. Aranjman nan pwen nan holivar alantou 1C

1C - byen ak sa ki mal. Aranjman nan pwen nan holivar alantou 1C

Zanmi ak kòlèg, dènyèman te gen plis atik souvan sou Habré ak rayisman anvè 1C kòm yon platfòm devlopman, ak diskou pa defansè li yo. Atik sa yo idantifye yon pwoblèm grav: pi souvan, moun kap kritike 1C kritike li nan pozisyon nan "pa metrize li", reprimande pwoblèm ki defakto fasil rezoud, epi, okontrè, pa manyen pwoblèm ki vrèman enpòtan, ki vo. diskite epi yo pa rezoud pa vandè a. Mwen kwè ke li fè sans pou fè yon revizyon modere ak ekilibre sou platfòm 1C la. Ki sa li ka fè, ki sa li pa ka fè, ki sa li ta dwe fè men li pa fè, epi, pou desè, sa li fè ak yon bang, ak devlopè ou nan %technology_name% pral fè yon santèn ane, jete li. plis pase yon bidjè anyèl.

Kòm yon rezilta, ou menm, kòm yon manadjè oswa achitèk, yo pral kapab jwenn yon konpreyansyon klè sou ki travay li pral benefisye pou ou sèvi ak 1C, ak ki kote li bezwen boule ak yon fè cho. Kòm yon pwomotè nan mond lan "ki pa 1C", ou pral kapab wè sa ki gen nan 1C ki ap lakòz meli melo. Epi kòm yon pwomotè 1C, ou pral kapab konpare sistèm ou a ak ekosistèm yo nan lòt lang epi konprann kote ou ye nan sistèm kowòdone nan devlopman lojisyèl.

Anba koupe a gen anpil atak epè sou 1C, sou kritik 1C, sou Java, .NET ak an jeneral... Fanatik la plen, akeyi!

Sou tèt mwen

Mwen te abitye ak sijè a nan konvèsasyon depi apeprè 2004. Mwen te pwograme pwobableman depi mwen te gen 6 zan, depi nan moman sa a mwen te resevwa yon liv sou Pwofesè Fortran ak komik sou yon chat, yon zwazo ak yon cheni. Mwen analize pwogram yo ke chat la te ekri nan foto yo nan liv la epi li te jwenn sa yo te fè. Ak repons lan se wi, mwen pa t 'gen yon òdinatè reyèl nan moman sa a, men te gen yon desen sou gaye nan liv la ak onètman mwen peze bouton yo papye, antre nan kòmandman yo mwen te espyone sou chat X la.

Lè sa a, te gen BK0011 ak BASIC nan lekòl la, C++ ak asanblaj nan inivèsite, Lè sa a, 1C, ak Lè sa a, anpil lòt bagay ke mwen twò parese sonje. Pou 15 dènye ane yo, mwen te sitou patisipe nan 1C, pa sèlman an tèm de kodaj, men nan 1C an jeneral. Mete travay, administrasyon ak devops isit la. Pou 5 dènye ane yo, mwen te angaje nan aktivite sosyalman itil an tèm de devlopman ak zouti automatisation pou lòt itilizatè 1C, ekri atik ak liv.

Ann deside sou sijè diskisyon an

Premyèman, ann defini de sa nou pral pale, paske lèt "1C" yo ka vle di anpil bagay. Nan ka sa a, pa lèt "1C" nou pral vle di sèlman kad devlopman "1C: Enterprise" nan modèn, wityèm vèsyon an. Nou pa pral pale anpil sou manifakti a ak règleman li yo (men nou pral gen fè yon ti kras Nou pa pral diskite sou aplikasyon espesifik ki ekri nan kad sa a). Teknoloji separe, aplikasyon aka konfigirasyon yo separe.

Achitekti wo nivo 1C: Enterprise

Se pa pou anyen mwen mansyone mo "cadre". Soti nan pwen de vi yon pwomotè, platfòm la 1C se jisteman yon fondasyon. Epi ou bezwen trete li egzakteman tankou yon kad. Panse a li kòm Spring oswa ASP.NET, egzekite pa kèk ègzekutabl (JVM oswa CLR respektivman). Li rive konsa ke nan mond lan nan pwogram konvansyonèl ("pa 1C"), divizyon an nan kad, machin vityèl ak aplikasyon espesifik se natirèl, akòz lefèt ke eleman sa yo anjeneral devlope pa manifaktirè diferan. Nan mond lan 1C, li pa abitye fè distenksyon klèman kad devlopman ak ègzekutabl tèt li anplis de sa, aplikasyon espesifik ekri lè l sèvi avèk fondasyon an yo tou sitou devlope pa 1C tèt li. Kòm yon rezilta, kèk konfizyon rive. Se poutèt sa, nan kad atik la, nou pral oblije konsidere 1C soti nan plizyè kote nan yon fwa epi klasifye li sou plizyè aks kowòdone. Ak nan chak aks kowòdone nou pral mete yon pèl nan sibstans mawon epi gade nan karakteristik yo, avantaj ak dezavantaj nan solisyon an ki deja egziste.

Pwen de vi sou 1C

1C pou achtè a

Achtè a achte yon sistèm automatisation ak ki li ka byen vit rezoud pwoblèm yo nan automatisation pwòp biznis li. Yon biznis kapab yon ti nòmal, oswa li kapab yon gwo konpayi holding. Li klè ke bezwen biznis sa yo diferan, men tou de yo sipòte pa yon sèl baz kòd platfòm.

Pou achtè a 1C sa a se yon tan-a-mache rapid. Vit. Pi vit pase Java, C# oswa JS. Mwayèn. Bò kote lopital la. Li klè ke yon sit entènèt kat biznis lè l sèvi avèk React pral vin pi byen, men backend nan yon sistèm WMS pral lanse pi vit sou 1C.

1C kòm yon zouti

Chak solisyon teknolojik gen limit nan aplikasyon. 1C se pa yon lang jeneral li pa viv apa de kad li. Li rekòmande pou itilize 1C lè ou bezwen:

  • aplikasyon sèvè
  • aplikasyon kote finans parèt
  • ak UI pare, ORM, Rapò, XML/JSON/COM/PDF/YourDataTransferingFormat
  • ak sipò pou pwosesis background ak travay
  • ak sekirite ki baze sou wòl
  • ak lojik biznis scriptable
  • ak kapasite nan byen vit kreye yon pwototip ak ba tan-a-mache

Ou pa bezwen 1C si ou vle:

  • aprantisaj machin
  • Kalkil GPU
  • grafik òdinatè
  • kalkil matematik
  • CAD sistèm
  • pwosesis siyal (son, videyo)
  • Highload apèl http ak dè santèn de milye de rps

1C kòm yon konpayi manifakti

Li vo konprann ki sa biznis la nan 1C kòm yon manifakti lojisyèl se. Konpayi 1C vann solisyon pou pwoblèm biznis atravè automatisation. Diferan biznis, gwo oswa piti, men se sa li vann. Mwayen yo reyalize objektif sa a se aplikasyon biznis. Pou kontablite, kontablite pewòl, elatriye Pou ekri aplikasyon sa yo, konpayi an sèvi ak pwòp platfòm devlopman aplikasyon biznis. Espesyalman pwepare pou travay komen nan menm aplikasyon biznis sa yo:

  • kontablite finansye
  • fasil personnalisation de lojik biznis
  • posiblite entegrasyon lajè nan peyizaj IT eterojèn

Kòm yon manifakti, 1C kwè ke sa a se estrateji ki pèmèt ou travay ak patnè ak kliyan nan yon mòd genyen-genyen. Ou ka diskite ak sa a, men sa a se apeprè ki jan konpayi an ankouraje tèt li: solisyon pare-fè a pwoblèm biznis ki ka byen vit Customized pa patnè ak entegre nan nenpòt jaden flè IT.

Tout reklamasyon oswa volonte pou 1C kòm yon kad ta dwe wè sèlman nan prism sa a. "Nou vle OOP nan 1C," di devlopè yo. "Konbyen sa ap koute nou pou sipòte OOP nan platfòm la, èske sa ap ede nou ogmante lavant bwat yo?" di 1C. Ouvè "prism" li nan vann solisyon a pwoblèm biznis:

- Hey, biznis, èske ou vle OOP nan 1C ou a?
- Èske sa ap ede m rezoud pwoblèm mwen yo?
- Sa k konnen...
- Lè sa a, pa gen okenn bezwen

Apwòch sa a ka bon oswa move selon ki moun ki gade li, men se jis fason li ye. Pale sou lefèt ke pa gen okenn karakteristik X nan 1C, ou bezwen konprann ke li pa la pou yon rezon, men nan yon kontèks chwa "kout aplikasyon an vs kantite lajan pwofi".

Klasifikasyon teknolojik

"An reyalite, Odinesniks fè tout sa yo kapab pou sèvi ak pi bon modèl yo, ak anpil atansyon chwazi pa metodolog ak devlopè platfòm 1C la.
Lè ou ekri kòd estipid ou pou yon fòm senp jere, an reyalite w ap itilize modèl-view-kontwolè с double-fason done obligatwa в twa-kouch-done-app-motè, aromatize wo nivo objè-relasyon-map sou baz la deskripsyon metadata deklaratifgen pwòp li yo langaj rechèch endepandan pou platfòm la, C koòdone itilizatè deklaratif ki baze sou done, serializasyon konplè transparan ak langaj pwogram ki oryante sou domèn.

Ki kote devlopè 1C diferan de kòlèg Lwès yo se nan PR. Yo renmen bay nenpòt vye bagay yon gwo non epi kouri ak li tankou yon sak sal."
A. Orefkov

Platfòm nan 1C gen yon achitekti klasik 3-niveau, nan sant la nan ki se sèvè aplikasyon an (oswa imitasyon li yo pou ti lajan pou ti machann). Swa MS SQL oswa Postgres yo itilize kòm yon DBMS. Genyen tou sipò pou Oracle ak IBM DB2, men sa a se pito esoterik pèsonn pa konnen sa ki pral rive si ou aplike 1C sou baz done sa yo anba chaj mwayen ak segondè. Mwen kwè ke 1C li menm pa konnen sa.

Pati nan kliyan se swa yon kliyan mens enstale sou machin itilizatè a oswa yon kliyan entènèt. Karakteristik kle a se ke pwogramasyon yo pa ekri 2 kòd diferan, yo ekri yon aplikasyon, nan yon sèl lang, epi ou ka montre li nan navigatè a si gen yon dezi oswa bezwen. Ki moun ki te vle yon vrè pil konplè ak yon sèl lang pou devan ak backend, node.js? Yo pa janm rive fè egzakteman menm bagay la jouk nan fen. Yon reyèl pil plen egziste, men ou pral oblije ekri li nan 1C. Iwoni sò a, bagay sa yo :)

Cloud SaaS solisyon 1C:Fresh travay tou nan mòd navigatè, kote ou pa ka achte 1C, men lwe yon ti baz done epi kenbe tras lavant shawarma la. Jis nan navigatè a, san yo pa enstale oswa konfigirasyon anyen.

Anplis de sa, gen yon kliyan eritaj, ki nan 1C yo rele yon "aplikasyon regilye". Legacy se eritaj, akeyi nan mond aplikasyon an nan 2002, men nou toujou ap pale sou eta aktyèl la nan ekosistèm nan.

Pati nan sèvè 1C sipòte gwoupman ak echèl lè yo ajoute nouvo machin nan gwoup la. Byen anpil nan kopi yo te kase isit la epi pral gen yon seksyon separe nan atik la sou sa a. Nan ti bout tan, sa a se pa menm jan ak ajoute yon koup nan egzakteman menm sikonstans yo dèyè HAProxy.

Fondasyon devlopman aplikasyon an sèvi ak pwòp langaj pwogramasyon li yo, ki apeprè sanble ak yon VB6 yon ti kras amelyore tradui an Ris. Pou moun ki rayi tout bagay Ris, ki pa kwè ke "si" se tradui kòm "si," opsyon nan dezyèm sentaks yo ofri. Moun sa yo. Si ou vle, ou ka ekri li nan 1C nan yon fason ke li pa distenge ak VB.

1C - byen ak sa ki mal. Aranjman nan pwen nan holivar alantou 1C

Lang pwogramasyon sa a se rezon prensipal pou rayi ti non 1C anvè platfòm yo. Ann fè fas a li, pa san rezon. Lang lan te vin ansent kòm senp ke posib, ki fèt pou akonpli mantra "DEVLOPÒ, DEVLOPÒ" sou yon echèl omwen nan CIS la. Sans komèsyal la nan yon solisyon konsa, nan opinyon mwen, se klèman vizib: plis devlopè, pi gwo pwoteksyon mache. Sa a te rive vre, dapre estimasyon divès kalite soti nan 45% a 95%. Mwen pral di touswit ke ekri nan lang ou panse a se reyèlman pi fasil. Apre sa, mwen konnen byen yon anpil nan langaj pwogramasyon.

Ann kòmanse ak lang lan.

1C langaj pwogramasyon

An menm tan an pwen fò ak fèb nan sistèm nan. Bay antre fasil ak lizibilite. Nan lòt men an, li pa te mete ajou depi lage vèsyon 8 an 2002 epi li moralman demode. Yon moun pral di "dezavantaj prensipal la se ke pa gen okenn OOP" epi yo pral mal. Premyèman, PLO pa renmen pa sèlman Nuraliev, men tou, Torvalds. Epi dezyèmman, OOP toujou egziste.

Soti nan pwen de vi pwomotè a, li gen a jete li yon kad ak klas de baz parèt sou DBMS la. Pwomotè a ka pran klas debaz "Anyè" epi eritye anyè "Kliyan" nan li. Li ka ajoute nouvo jaden klas nan li, pou egzanp, INN ak Adrès, epi tou, si sa nesesè, li ka pase sou desizyon (anplase) metòd nan klas debaz la, pou egzanp, metòd OnWrite/AtRecord.

Kad la fèt nan yon fason ki pi pwofon eritaj raman bezwen, ak restriksyon nan OOP, nan opinyon mwen, fè sans. 1C konsantre sou Domèn Kondwi Devlopman ak fè ou panse, premye a tout bagay, sou sijè a nan solisyon an ke yo te devlope, e sa a se yon bon bagay. Pa gen sèlman pa gen tantasyon, men tou, pa bezwen ekri 10 DTO diferan ak ViewModels jis montre kèk done ki soti nan domèn nan yon kote. Pwomotè a 1C toujou opere ak yon sèl antite, san yo pa ankonbre kontèks la nan pèsepsyon ak yon douzèn klas ak non menm jan an, ki reprezante menm antite, men ki soti nan yon lòt bò. Nenpòt aplikasyon .NET, pou egzanp, pral nesesèman genyen senk oswa de ViewModels ak DTO pou serializasyon nan JSON ak transfè done soti nan kliyan an sèvè. Epi apeprè 10-15% nan kòd aplikasyon w lan pral depanse pou transfere done soti nan yon klas nan yon lòt lè l sèvi avèk plim oswa beki tankou AutoMapper. Kòd sa a dwe ekri epi pwogramasyon yo dwe peye pou kreye ak kenbe li.

Li sanble ke lang 1C a difisil pou devlope san yo pa konplike li nan nivo lang endikap, kidonk pèdi avantaj senplisite la. Ki sa ki travay machann nan esansyèlman ke yo te rezoud: bay yon solisyon estanda ke nenpòt elèv yo kenbe nan lari a ka Customized ak nivo ki nesesè nan bon jan kalite (sa vle di, yon ka kouvri soti nan yon nòmal nan yon gwo faktori fini). Si ou se yon nòmal, pran yon elèv si ou se yon faktori, pran yon gourou nan men patnè aplikasyon ou a. Lefèt ke patnè aplikasyon yo vann elèv yo nan pri a nan yon gourou se pa yon pwoblèm ak fondasyon an. Achitekti, fondasyon an dwe rezoud pwoblèm yo nan tou de, kòd la nan konfigirasyon estanda (ki nou vann nan biznis ak pwomès la nan personnalisation) ta dwe kapab konprann pa yon elèv, ak yon gourou ta dwe kapab konprann tou sa ou vle.

Sa ki, daprè mwen, vrèman manke nan lang lan, sa ki fòse ou ekri plis pase ou te kapab, se sa ki pèdi tan kliyan an peye.

  • Posiblite pou tape nan nivo a, pou egzanp, TypeScript (kòm yon rezilta, plis devlope zouti analiz kòd nan IDE a, refactoring, mwens jambs ofansif)
    Disponibilite nan fonksyon kòm objè premye klas. Yon konsèp yon ti kras pi konplèks, men kantite tipik boilerplate-kòd ta ka redwi anpil. Konpreyansyon elèv la sou kòd la, IMHO, ta menm ogmante akòz rediksyon nan volim
  • Literal koleksyon inivèsèl, inisyalize. Menm bagay la - diminye kantite kòd ki bezwen ekri ak/oswa gade ak je ou. Ranpli koleksyon yo pran plis pase 9000% tan pwogramasyon 1C. Ekri sa a san sik sentaktik se long, chè ak erè ki gen tandans. An jeneral, kantite LOC nan solisyon 1C depase tout limit li posib konpare ak kad louvri ki disponib epi, an jeneral, tout Java antrepriz ou yo konbine. Langaj la pwolib, e sa dejenere nan kantite done, memwa, fren IDE, tan, lajan...
  • finalman konstriksyon mwen gen yon ipotèz ke konstriksyon sa a manke akòz lefèt ke yo pa t 'jwenn yon tradiksyon siksè nan li nan Ris :)
  • Pwòp kalite done (san OOP), analogue Kalite soti nan VB6. Li pral pèmèt ou pa tape estrikti lè l sèvi avèk kòmantè nan BSP ak metòd majik ki konstwi estrikti sa yo. Nou jwenn: mwens kòd, yon allusion atravè yon pwen, solisyon pi vit nan pwoblèm nan, mwens erè akòz erè tipografi ak pwopriyete ki manke nan estrikti. Koulye a, sezisman estrikti itilizatè yo se antyèman ak ekip devlopman nan Standard Subsystem Library, ki, nan kredi li, ak anpil atansyon ekri kòmantè sou pwopriyete yo espere nan estrikti yo paramèt pase.
  • Pa gen sik lè w ap travay ak apèl asynchrone sou kliyan entènèt la. callback-hell nan fòm ProcessingNotifications se yon beki tanporè ki te koze pa yon chanjman toudenkou nan API a nan navigatè prensipal yo, men ou pa ka viv tankou sa a tout tan tout tan an nan avantaj nan "konpreyansyon elèv" nan kòd asynchrone yo te pèdi plis e plis. Ajoute nan okenn sipò pou paradigm sa a nan IDE prensipal la ak bagay sa yo vin pi mal.

Sa a se youn nan pwoblèm yo ijan, li klè ke lis la ta ka pi gwo, men nou pa dwe bliye ke sa a se toujou pa yon lang jeneral, li pa mande pou multithreading, fonksyon lambda, aksè nan GPU a ak vit. kalkil k ap flote. Sa a se yon langaj scripting lojik biznis.

Yon pwogramè ki te deja travay anpil ak lang sa a, gade nan js oswa c#, vin anwiye nan kad lang sa a. Se yon reyalite. Li bezwen devlopman. Nan lòt bò a nan echèl la pou vandè a se pri a nan aplikasyon karakteristik yo espesifye kont ogmantasyon nan revni apre aplikasyon yo. Isit la mwen pa gen okenn enfòmasyon sou sa ki kounye a depase nan je konpayi an.

Anviwònman devlopman

Bagay yo pa mache byen isit la tou. Gen de anviwònman devlopman. Premye a se Configurator ki enkli nan livrezon an. Dezyèm lan se anviwònman Enterprise Development Tools, oswa EDT pou kout, devlope sou baz Eclipse.

Konfigurateur a bay yon seri konplè nan travay devlopman, sipòte tout karakteristik epi li se anviwònman prensipal la sou mache a. Li se tou moralman demode, pa devlope, dapre rimè - akòz kantite lajan an nan dèt teknik nan tèt li. Sitiyasyon an ta ka amelyore lè w louvri yon API entèn (nan fòm amitye ak Sou entènèt jwèt bonom A. Orefkova oswa sou yon baz endepandan), men sa a se pa ka a. Pratike te montre ke kominote a pral ekri karakteristik pwòp li yo nan IDE a, osi lontan ke vandè a pa entèfere. Men nou gen sa nou genyen. Konfigurateur a te gwo nan 2004-2005, trè okoumansman de Visual Studio nan tan sa yo, nan kèk kote li te menm pi fre, men li te kole nan tan sa yo.

Anplis de sa, volim nan solisyon an mwayèn estanda te grandi plizyè fwa depi lè sa a, ak jodi a IDE a tou senpleman pa ka fè fas ak kantite lajan an nan kòd ak li yo manje. Itilizasyon ak kapasite refactoring yo pa menm zewo, yo nan wouj la. Tout bagay sa a pa ajoute antouzyasm nan devlopè yo epi yo reve pou yo deplase nan lòt ekosistèm ak kontinye kode kaka la, men nan yon anviwònman bèl ki pa krache nan figi ou ak konpòtman li.

Kòm yon altènatif, yo ofri yon IDE ekri nan grafouyen, ki bati sou Eclipse. Gen, sous yo, tankou nan nenpòt ki lòt lojisyèl, ap viv nan fòm lan nan dosye tèks, yo estoke nan GIT, rale branch demann, tout bagay sa yo. Sou inconvénient la, li pa te kite estati beta pou anpil ane kounye a, byenke li ap vin pi bon ak chak lage. Mwen pa pral ekri sou dezavantaj yo nan EDT, jodi a li se yon mwens, demen li se yon karakteristik fiks. Enpòtans yon deskripsyon konsa pral byen vit disparèt. Jodi a li posib pou devlope nan EDT, men li pa nòmal ou bezwen prepare pou yon sèten kantite pinèz IDE.

Si ou gade nan sitiyasyon an nan "1C prism" susmansyone a, ou jwenn yon bagay tankou sa a: liberasyon an nan nouvo IDE a pa ogmante lavant nan bwat, men ekoulman pwodiksyon an nan DEVLOPÒ yo ka redwi. Li difisil pou di sa k ap tann ekosistèm nan an tèm de konfò pwomotè, men Microsoft te deja vise devlopè mobil lè li ofri yo sèvis li yo twò ta.

Jesyon devlopman

Tout bagay isit la se siyifikativman pi bon pase nan ekri kòd, espesyalman dènyèman, lè efò yo nan kominote a te mete nan limyè pwoblèm yo nan automatisation administrasyon an, te lanse pwototip ki mande pou voye jete depo 1C a nan pil fatra a epi sèvi ak git, rapid blame, revizyon kòd. , analiz estatik, oto-deplwaye ak elatriye. Anpil karakteristik yo te ajoute nan platfòm la ki ogmante nivo nan automatisation nan travay devlopman. Sepandan, tout karakteristik sa yo te ajoute sèlman ak sèlman pou devlopman pwòp gwo pwodwi nou yo, lè li te vin evidan ke nou pa t 'kapab fè san yo pa automatisation. Te gen oto-fusion, konparezon twa-fason ak KDiff ak tout sa. Te lanse sou Github gitconverter, ki moun ki, franchman, te trennen ideolojikman lwen pwojè a gitsync, men modifye pou kostim pwosesis konpayi vandè a. Mèsi a mesye yo fè tèt di soti nan sous louvri, automatisation devlopman nan 1C te desann tè a. Yon API ouvè pou konfigirasyon an, IMHO, ta tou chanje bak moral nan IDE prensipal la.

Jodi a, estoke sous 1C nan git ak komèt ki lye ak pwoblèm nan Jira, revize nan Crucible, bouton pouse soti nan Jenkins ak rapò Allure sou tès kòd nan 1C e menm analiz estatik nan SonarQube - sa a se byen lwen soti nan nouvèl, men pito endikap la nan konpayi kote gen yon anpil nan devlopman 1C.

Administrasyon an

Gen anpil bagay pou di isit la. Premyèman, sa a se, nan kou, yon sèvè (1C sèvè gwoup). Yon bèl bagay, men akòz lefèt ke li se yon bwat konplètman nwa, dokimante an detay ase, men nan yon fason espesifik - metrize lansman an nan operasyon san enteripsyon nan mòd highload sou plizyè serveurs se anpil nan yon kèk chwazi ki mete yon. meday ak inscription "Ekspè sou pwoblèm teknolojik". Li se vo anyen ke, nan prensip, administre yon sèvè 1C pa diferan de administre nenpòt lòt sèvè. Li se yon aplikasyon ki baze sou rezo, milti-threaded ki konsome memwa, CPU, ak resous disk. Bay anpil opòtinite pou koleksyon telemetrik ak dyagnostik.

Pwoblèm isit la se ke vandè a pa ofri anyen espesyal an tèm de solisyon pare yo pou sa a trè dyagnostik. Wi, gen 1C: Instrumentation and Control Center, yo menm byen bon, men yo trè chè epi se pa tout moun ki genyen yo. Gen yon kantite devlopman nan kominote a pou konekte Grafana, Zabbix, ELK ak lòt bagay ki soti nan seri admin estanda a, men pa gen yon sèl solisyon ki pral adapte majorite a. Travay la ap tann ewo li yo. Men, si ou se yon biznis ki planifye pou lanse sou yon gwoup 1C, ou bezwen yon Ekspè. Pwòp ou anndan oswa soti deyò, men ou bezwen li. Li nòmal ke gen yon wòl separe ak konpetans pou operasyon sèvè, se pa tout itilizatè 1C ta dwe konnen sa a, ou jis bezwen konprann ke yon wòl sa yo nesesè. Ann pran SAP pa egzanp. Gen, yon pwogramè, gen plis chans, pa pral menm leve soti nan chèz li si li mande yo konfigirasyon yon bagay sou sèvè aplikasyon an. Li ka jis estipid epi li pa pral wont. Nan metodoloji SAP la gen yon wòl anplwaye separe pou sa. Pou kèk rezon, nan endistri a 1C yo kwè ke sa a ta dwe konbine nan yon sèl anplwaye pou menm salè a. Se yon awogans.

Dezavantaj nan sèvè 1C

Gen egzakteman yon sèl mwens - fyab. Oswa, si ou prefere, enprevizib. Gen konpòtman toudenkou etranj nan sèvè a deja vin pale nan vil la. Yon remèd inivèsèl - kanpe sèvè a ak netwaye tout kachèt - se menm dekri nan manyèl ekspè an, e menm yon liv pakèt rekòmande ki fè sa. Si sistèm 1C ou a kòmanse fè yon bagay ke li pa ta dwe menm teyorikman fè, li lè pou netwaye kachèt done sesyon an. Dapre estimasyon mwen an, gen sèlman twa moun nan tout peyi a ki konnen ki jan yo opere yon sèvè 1C san pwosedi sa a epi yo pa pataje sekrè, paske ... yo viv de sa. Petèt sekrè yo se ke yo netwaye done sesyon yo, men yo pa di pèsonn sou li, dude.

Sinon, sèvè a 1C se menm aplikasyon an ak nenpòt lòt epi li administre nan menm jan an, nan li dokiman an epi frape sou tanbourin la.

Koupre

Itilite pou itilize yon sèvè 1C containerized nan pwodiksyon poko pwouve. Sèvè a pa gwoupe pa senpleman ajoute nœuds dèyè balans lan, ki diminye benefis ki genyen nan kontenèrizasyon pwodiksyon nan yon minimòm, ak pratik nan operasyon siksè nan resipyan nan mòd highload pa te etabli. Kòm yon rezilta, sèlman devlopè yo itilize Docker + 1C pou mete sou pye anviwònman tès yo. Gen li trè itil, aplike, pèmèt ou jwe ak teknoloji modèn ak pran yon ti repo nan dekourajman nan konfigurateur la.

Komèsyal eleman

Soti nan yon pwen de vi envestisman, 1C pèmèt ou rezoud pwoblèm nan nan byen vit lanse lide biznis akòz kapasite yo lajè nan klas aplikasyon yo. 1C soti nan bwat la bay rapò trè desan, entegrasyon ak nenpòt bagay, kliyan entènèt, kliyan mobil, aplikasyon mobil, sipò pou divès kalite DBMS, enkli. gratis, kwa-platfòm tou de sèvè ak enstale pati kliyan. Wi, UI aplikasyon yo pral jòn, pafwa sa a se yon mwens, men se pa toujou.
Lè w chwazi 1C, yon biznis jwenn yon seri solisyon lojisyèl ki pèmèt yo bati yon seri aplikasyon trè laj, osi byen ke yon anpil nan devlopè sou mache a ki vle mwens lajan pase Javaists epi an menm tan pwodwi rezilta pi vit.

Pou egzanp, travay la nan voye yon fakti PDF bay yon kliyan ka rezoud nan yon èdtan nan travay elèv yo. Pwoblèm nan menm nan .NET ka rezoud lè w achte yon bibliyotèk propriétaires, oswa yon koup la jou oswa semèn nan kodaj pa yon sevè, bab devlopè. Pafwa, tou de an menm tan. Epi wi, mwen te sèlman pale de jenerasyon PDF. Nou pa’n dir ki kote sa bil pou menm sorti. Frontendè entènèt la dwe kreye yon fòm kote operatè a pral antre done yo, backender a ap gen pou kreye modèl dto pou transfere JSON, modèl pou estoke nan baz done a, estrikti baz done a li menm, migrasyon nan li, fòmasyon nan yon grafik. ekspozisyon kont sa a anpil, epi sèlman lè sa a - PDF. Sou 1C, tout travay la, depi nan grafouyen, fini nan egzakteman yon èdtan.

Yon sistèm kontablite konplè pou yon ti nòmal ak yon sèl pwosesis biznis achte/vann fè nan 3 èdtan Avèk rapò lavant, kontablite nan pri acha ak lavant, dekonpoze pa depo, kontwòl dwa aksè, kliyan entènèt ak aplikasyon mobil. . Oke, mwen bliye sou aplikasyon an, ak aplikasyon an pa nan 3 èdtan, nan sis.

Konbyen tan travay sa a pral pran yon pwomotè .NET soti nan enstale estidyo vizyèl sou yon òdinatè pwòp pou demontre li bay kliyan an? Ki sa ki sou pri a nan devlopman? Menm bagay.

Fòs 1C kòm yon platfòm

1C fò pa paske gen yon bagay espesifik sou li ki pi bon nan mond lan. Okontrè, nan chak subsistèm endividyèl ou ka jwenn yon analogue ki pi enteresan nan lojisyèl nan mond lan. Sepandan, baze sou yon konbinezon de faktè, mwen pa wè yon platfòm ki sanble ak 1C. Sa a se kote siksè komèsyal manti. Avantaj ki genyen nan platfòm la yo gaye toupatou nan li epi yo pi klè vizib lè ou wè ki jan sa a se fè nan lòt platfòm. Fondamantalman, sa yo se PA menm karakteristik, men sou kontrè a - yon rejè nan karakteristik an favè yon paradigm espesifik. Kèk egzanp:

  1. Unicode. Ki sa ki lanfè a ta ka pi senp? Pa gen okenn nesesite pou itilize kodaj ASCII yon sèl-octet nan 2019 (eksepte pou entegrasyon ak kodaj ansyen eritaj). Pa janm. Men non. De tout fason, yon moun nan kèk tab sèvi ak yon sèl-byte varchar ak aplikasyon an pral gen pwoblèm ak kodaj. An 2015, otorizasyon LDAP gitlab te echwe akòz travay kòrèk ak kodaj JetBrains IDE toujou pa travay ak sirilik nan non fichye yo toupatou. 1C bay bon jan kalite izolasyon nan kòd aplikasyon nan kouch baz done a. Gen li enposib tape tab nan yon nivo ki ba ak jambs nan juniors enkonpetan nan nivo baz done yo enposib la. Wi, ka gen lòt pwoblèm ak juniors enkonpetan, men varyete pwoblèm yo pi piti anpil. Koulye a, ou pral di m ke aplikasyon w lan fèt kòrèkteman ak kouch aksè baz done a izole jan li ta dwe. Pran yon lòt gade nan aplikasyon Java koutim antrepriz ou a. Byen ak onètman. Èske konsyans ou deranje ou? Lè sa a, mwen kontan pou ou.
  2. Nimero dokiman/liv referans. Nan 1C li definitivman pa pi fleksib la epi li pa pi bon an. Men, sa yo fè nan lojisyèl bankè ak nan sistèm kontablite ekri pwòp tèt ou - byen, li jis fènwa. Swa idantite yo pral kole nan (ak Lè sa a, "oh, poukisa nou gen twou"), oswa okontrè, yo pral fè yon dèlko ki travay ak bloke nan nivo DBMS (epi yo pral vin yon bouch). An reyalite, li se byen difisil fè travay sa a w pèdi senp - yon enimerateur fen-a-fen nan antite, ak yon seksyon singularité ki baze sou yon seri sèten nan kle, prefiksasyon, pou ke li pa bloke baz done a pandan paralèl antre done. .
  3. Idantifye dosye nan baz done a. 1C te pran yon desizyon fò - tout idantifyan lyen yo se absoliman sentetik e se li. Epi pa gen okenn pwoblèm ak baz done distribiye ak echanj. Devlopè lòt sistèm fè tèt di kreye yon bagay tankou idantite (li pi kout!), trennen yo nan entèfas a jiskaske li lè yo kreye plizyè ka ki gen rapò (epi lè sa a yo pral dekouvri). Ou pa genyen sa? Onètman?
  4. Lis. 1C gen mekanis byen siksè pou paging nan lis (gwo) ak navige nan yo. Kite m 'fè yon rezèvasyon touswit - ak itilizasyon kòrèk la nan mekanis la! An jeneral, sijè a se byen dezagreyab, li pa ka rezoud depreferans: li se swa entwisyon ak senp (men risk pou yo gwo dosye dosye sou kliyan an), oswa paging se nan youn oswa yon lòt kwochi. Moun ki fè paging souvan fè li kwochi. Moun ki fè yon scrollbar onèt ajoute yon baz done, yon chanèl ak yon kliyan.
  5. Fòm jere. Pa gen dout, nan kliyan entènèt la koòdone pa travay parfe. Men, li travay. Men, pou anpil lòt sistèm kontablite ak bankè, kreye yon espas travay aleka se yon pwojè nan nivo antrepriz. Limit responsabilite nou: erezman pou moun ki orijinèlman te fè li sou entènèt la, sa a pa pral afekte.
  6. Aplikasyon mobil. Dènyèman, ou ka ekri aplikasyon mobil tou pandan w nan menm ekosistèm nan. Li se yon ti kras pi konplike isit la pase ak yon kliyan entènèt spesifik yo nan aparèy fòse ou ekri espesyalman pou yo, men, kanmenm, ou pa anboche yon ekip separe nan devlopè mobil. Si ou bezwen yon aplikasyon pou bezwen entèn yon konpayi (lè yon solisyon mobil nan yon pwoblèm antrepriz pi enpòtan pase yon konsepsyon UI jòn), ou tou senpleman itilize platfòm la soti nan bwat la.
  7. Rapòte. Pa mo sa a mwen pa vle di yon sistèm BI ki gen gwo done ak yon lag sou pwosesis ETL la. Sa a refere a rapò anplwaye operasyonèl ki pèmèt ou evalye eta a nan kontablite isit la e kounye a. Balans, règleman mityèl, re-klas, elatriye. 1C soti nan bwat la ak yon sistèm rapò ak anviwònman fleksib pou gwoupman, filtè, ak vizyalizasyon sou bò itilizatè a. Wi, gen pi fre analogue sou mache a. Men, pa nan kad yon solisyon tout-an-yon ak nan yon pri pafwa pi wo pase yon solisyon tout-an-yon sèl. Ak pi souvan li nan menm lòt fason alantou: sèlman rapò, men pi chè pase platfòm la tout antye, ak pi mal nan bon jan kalite.
  8. Fòm pou enprime. Oke, sèvi ak .NET pou rezoud pwoblèm nan voye fichye salè nan PDF bay anplwaye yo pa imel. Epi, koulye a travay la nan enprime fakti. E pou sove kopi yo nan menm PDF la? Pou tinon 1C, pwodiksyon nenpòt layout nan PDF se +1 liy nan kòd. Sa vle di + 40 segonn tan travay, olye pou yo jou oswa semèn nan yon lòt lang. Layout fòm enprime nan 1C yo ekstrèmman fasil yo devlope ak ase pwisan pou fè konpetisyon ak tokay peye. Wi, pwobableman, pa gen anpil opòtinite entèaktif nan dokiman fèy kalkil 1C ou pa kapab byen vit jwenn yon dyagram 3D ak dekale lè l sèvi avèk OpenGL. Men, èske li vrèman nesesè?

Sa yo se jis yon ti ponyen nan egzanp kote limite fonctionnalités oswa mete ann aplikasyon konpwomi vire soti nan yon benefis achitekti enpòtan nan tan kap vini an. Menm yon konpwomi oswa ou pa opsyon ki pi efikas - li se deja nan bwat la epi li se pran pou yo akòde. Aplikasyon endepandan li yo pral swa enposib (paske desizyon sa yo dwe pran nan kòmansman pwojè a, epi pa gen tan pou sa, epi pa gen okenn achitèk nan tout), oswa plizyè iterasyon chè. Nan chak nan pwen yo ki nan lis (e sa a se pa yon lis konplè sou solisyon achitekti), ou ka vise epi prezante restriksyon ki bloke dekale. Nan nenpòt ka, ou, kòm yon biznisman, bezwen asire w ke pwogramasyon ou yo, lè w ap fè yon "sistèm nan grate," gen men dwat epi yo pral fè pwoblèm sistèm sibtil touswit byen.

Wi, tankou nan nenpòt lòt sistèm konplèks, 1C tèt li tou gen solisyon ki bloke dekale nan sèten aspè. Sepandan, mwen repete, ki baze sou yon konbinezon de faktè, pri a de de an komen, ak kantite pwoblèm ki deja rezoud davans, mwen pa wè yon konkiran merite sou mache a. Pou menm pri a, ou jwenn yon fondasyon aplikasyon finansye, yon sèvè balanse gwoupe, ak yon UI ak koòdone entènèt, ak yon aplikasyon mobil, ak rapò, entegrasyon ak yon pakèt lòt bagay. Nan mond Java a, ou anboche yon ekip front-end ak back-end, debogaj ba nivo kòd sèvè ekri lakay ou epi peye separeman pou 2 aplikasyon mobil pou 2 OS mobil.

Mwen pa di ke 1C pral rezoud tout ka yo, men pou yon aplikasyon antrepriz entèn, lè pa gen okenn bezwen make UI a - ki lòt bagay ki nesesè?

Yon kiyè goudwon

Ou pwobableman te gen enpresyon ke 1C pral sove mond lan e ke tout lòt fason pou ekri sistèm antrepriz yo mal. Se pa konsa ditou. Soti nan pwen de vi yon biznisman, si ou chwazi 1C, Lè sa a, anplis rapid tan-a-mache, ou dwe pran an kont dezavantaj sa yo:

  • Sèvè fyab. Espesyalis vrèman bon jan kalite yo mande ki ka asire operasyon san enteripsyon li yo. Mwen pa okouran de yon pwogram fòmasyon pare pou espesyalis sa yo nan machann la. Gen kou pou prepare pou egzamen Ekspè a, men sa a, nan opinyon mwen, pa ase.
  • Sipò. Gade pwen anvan an. Pou gen sipò nan men vandè a, ou bezwen achte li. Pou kèk rezon sa a pa aksepte nan endistri a 1C. Ak ak SAP, li prèske yon dwe-achte epi li pa deranje pèsonn. San sipò antrepriz ak san yon ekspè nan anplwaye, ou ka rete poukont ou ak pepen 1C.
  • Toujou, ou pa ka fè absoliman tout bagay ak 1C. Sa a se yon zouti ak tankou chak zouti li gen limit nan aplikasyon. Nan jaden flè 1C a, li trè dezirab pou gen yon achitèk sistèm "ki pa 1C".
  • Bon surnon 1C yo pa pi bon mache pase bon pwogramè nan lòt lang. Malgre ke, move pwogramè yo chè pou anboche, kèlkeswa lang yo ekri nan.

Se pou nou pwent yo

  • 1C se yon kad devlopman aplikasyon rapid (RAD) pou biznis epi li pwepare pou sa.
  • Lyen twa-niveau ak sipò pou gwo DBMS, UI kliyan, yon ORM trè bon ak rapò
  • Lajè posiblite pou entegrasyon ak sistèm ki ka fè sa 1C pa kapab. Si ou vle aprantisaj machin, pran Python epi voye rezilta a nan 1C atravè http oswa RabbitMQ
  • Pa gen okenn nesesite fè efò pou fè tout bagay lè l sèvi avèk 1C, ou bezwen konprann fòs li yo epi sèvi ak yo pou pwòp rezon ou.
  • Devlopè ki gravite nan direksyon pou fouye nan gadjèt fondasyon teknolojik ak redesign chak N ane nan yon nouvo motè yo anwiye ak 1C. Tout bagay trè konsèvatif la.
  • Devlopè yo tou anwiye paske gen anpil ti enkyetid pou yo soti nan manifakti a. Lang raz, IDE fèb. Yo mande modènizasyon.
  • Nan lòt men an, devlopè ki pa ka jwenn plezi nan itilize ak aprann yon lòt teknoloji yo jwi yo se move devlopè. Yo pral plenyen epi ale nan yon lòt ekosistèm.
  • Anplwayè ki pa pèmèt ti non 1C yo ekri yon bagay nan Python se move anplwayè. Yo pral pèdi anplwaye ki gen lespri fouye, epi nan plas yo ap vini kode makak ki, pandan y ap dakò ak tout bagay, pral trennen lojisyèl antrepriz nan marekaj la. Li pral toujou gen yo dwe reekri, kidonk petèt li ta pi bon envesti yon ti kras nan Python yon ti kras pi bonè?
  • 1C se yon konpayi komèsyal ak aplike karakteristik sèlman ki baze sou pwòp enterè li yo ak opportunité. Ou pa ka blame li pou sa, biznis dwe panse osijè de pwofi, se lavi
  • 1C fè lajan nan vann solisyon pou pwoblèm biznis, pa nan pwoblèm pwomotè Vasya a. De konsèp sa yo korelasyon, men priyorite a se egzakteman sa mwen te di. Lè pwomotè Vasya pare pou peye pou yon lisans pèsonèl pou 1C: Resharper, li pral parèt byen vit, "Resharper" pa A. Orefkova se prèv sa a. Si vandè a sipòte li, epi li pa t goumen kont li, yon mache pou lojisyèl pou devlopè ta parèt. Koulye a, gen yon sèl ak yon mwatye jwè nan mache sa a ak rezilta dout, ak tout paske entegrasyon an ak IDE a se negatif ak tout bagay se fè sou beki.
  • Pratik la nan yon operatè milti-machin pral disparèt nan oubli. Aplikasyon modèn yo twò gwo pou w sonje tou de bò kòd la ak bò kote itilizasyon biznis. Sèvè a 1C tou ap vin pi konplèks li pral enposib kenbe tout kalite ekspètiz nan yon sèl anplwaye. Sa a ta dwe egzije yon demann pou espesyalis, ki vle di plus de pwofesyon an 1C ak yon ogmantasyon nan salè. Si deja Vasya te travay twa-an-yon sèl pou yon sèl salè, kounye a ou bezwen anboche de Vasyas ak konpetisyon nan mitan Vasyas ka ankouraje kwasans an jeneral nan nivo yo.

Konklizyon

1C se yon pwodwi trè merite. Nan seri pri mwen an, mwen pa konnen okenn analogue ditou, ekri nan kòmantè yo si gen nenpòt. Sepandan, ekoulman devlopè yo soti nan ekosistèm la ap vin pi plis ak plis aparan, e sa a se yon "drenaj sèvo", kèlkeswa jan ou gade nan li. Endistri a grangou pou modènizasyon.
Si ou se yon devlopè, pa jwenn kwoke sou 1C epi pa panse ke tout bagay se majik nan lòt lang. Pandan w se yon jinyò, petèt. Le pli vit ke yon bagay ki pi gwo bezwen rezoud, solisyon pare-fè yo pral gen gade pou pi lontan epi konplete plis entansif. An tèm de bon jan kalite a nan "blòk yo" ki soti nan ki yon solisyon ka bati, 1C se trè, trè bon.

Ak yon lòt bagay - si yon tinon 1C vin jwenn ou anboche, Lè sa a, tinon 1C a ka san danje nonmen nan pozisyon nan analis plon. Konpreyansyon yo genyen sou travay la, matyè, ak konpetans dekonpozisyon yo ekselan. Mwen sèten ke sa a se jisteman akòz itilizasyon fòse DDD nan devlopman 1C. Yon moun resevwa fòmasyon pou reflechi sou siyifikasyon yon travay anvan tout bagay, sou koneksyon ki genyen ant objè nan domèn sijè a, epi an menm tan an gen yon background teknik nan teknoloji entegrasyon ak fòma echanj done.

Ou dwe konnen fondasyon ideyal la pa egziste epi pran swen tèt ou.
Bon nan tout!

PS: mèsi anpil speshuric pou asistans nan prepare atik la.

Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.

Ou gen 1C nan antrepriz ou a?

  • 13,3%Pa ditou.71

  • 30,3%Gen, men se sèlman nan depatman an kontablite yon kote. Sistèm debaz sou lòt platfòm162

  • 41,4%Wi, pwosesis biznis prensipal yo travay sou it221

  • 15,0%1C dwe mouri, tan kap vini an fè pati %technology_name%80

534 itilizatè yo te vote. 99 itilizatè te absteni.

Sous: www.habr.com

Add nouvo kòmantè