1C - Alus jeung jahat. Susunan titik dina holivars sabudeureun 1C

1C - Alus jeung jahat. Susunan titik dina holivars sabudeureun 1C

Babaturan sareng kolega, nembe aya tulisan anu langkung sering ngeunaan Habré kalayan kebencian ka 1C salaku platform pangembangan, sareng pidato ku pembela na. Artikel ieu ngaidentipikasi hiji masalah serius: paling sering, kritik 1C ngritik eta tina posisi "teu ngawasaan éta", scolding masalah anu de facto gampang direngsekeun, sarta, sabalikna, teu noel kana masalah anu bener penting, patut. ngabahas sareng henteu direngsekeun ku anu ngajual. Kuring yakin yén éta masuk akal pikeun ngalaksanakeun tinjauan anu sober sareng saimbang tina platform 1C. Naon anu tiasa dilakukeun, naon anu teu tiasa laksanakeun, naon anu kedah dilakukeun tapi henteu laksanakeun, sareng, pikeun dessert, naon anu dilakukeun ku bang, sareng pamekar anjeun di %technology_name% bakal ngalakukeun saratus taun, ngalungkeunana leuwih ti hiji anggaran taunan.

Hasilna, anjeun, salaku manajer atanapi arsiték, bakal tiasa ngartos naon tugas bakal mangpaat pikeun anjeun ngagunakeun 1C, sarta dimana eta perlu dibeuleum kaluar ku beusi panas. Salaku pamekar di dunya "non-1C", anjeun bakal tiasa ningali naon anu aya dina 1C anu ngabalukarkeun fuss. Sareng salaku pamekar 1C, anjeun bakal tiasa ngabandingkeun sistem anjeun sareng ékosistem basa sanés sareng ngartos lokasi anjeun dina sistem koordinat pamekaran parangkat lunak.

Dina cut aya loba serangan kandel on 1C, on kritik 1C, on Java, .NET sarta sacara umum ... kipas pinuh, wilujeng sumping!

ngeunaan Kuring

Kuring geus wawuh jeung topik obrolan saprak kira 2004. Kuring geus programming meureun saprak kuring 6 taun heubeul, ti pisan moment kuring meunang buku ngeunaan Professor Fortran kalawan komik ngeunaan ucing, manuk sparrow jeung hileud a. Kuring nganalisa program anu nyerat ucing tina gambar dina buku sareng mendakan naon anu aranjeunna lakukeun. Sareng enya, kuring henteu gaduh komputer nyata dina waktos éta, tapi aya gambar dina panyebaran buku sareng kuring jujur ​​​​mencét tombol kertas, ngalebetkeun paréntah anu kuring nénjo ucing X.

Lajeng aya BK0011 sarta BASIC di sakola, C ++ sarta assemblers di universitas, lajeng 1C, lajeng jadi loba hal séjén nu Abdi teuing puguh apal. Salila 15 taun ka tukang, kuring utamana kalibet dina 1C, henteu ngan dina hal coding, tapi dina 1C sacara umum. Nyetél tugas, administrasi sareng devops di dieu. Pikeun 5 taun ka tukang kuring parantos kalibet dina kagiatan anu mangpaat sacara sosial dina hal ngembangkeun alat-alat pangwangunan sareng automation pikeun pangguna 1C anu sanés, nyerat tulisan sareng buku.

Hayu urang mutuskeun dina subyek sawala

Mimiti, hayu urang ngartikeun naon anu bakal urang bahas, sabab hurup "1C" tiasa hartosna seueur hal. Dina hal ieu, ku hurup "1C" urang bakal hartosna éksklusif kerangka ngembangkeun "1C: Enterprise" tina modern, versi kadalapan. Kami moal seueur ngobrol ngeunaan produsén sareng kabijakanana (tapi urang kedah ngalakukeun sakedik). Téknologi misah, aplikasi alias konfigurasi misah.

Arsitéktur tingkat luhur 1C: Perusahaan

Teu keur nanaon kuring nyebut kecap "kerangka". Tina sudut pandang pamekar, platform 1C mangrupikeun kerangka. Sareng anjeun kedah ngubaranana persis sapertos kerangka. Pikirkeun éta salaku Spring atanapi ASP.NET, dieksekusi ku sababaraha runtime (masing-masing JVM atanapi CLR). Éta kajadian yén di dunya programming konvensional ("teu 1C"), division kana frameworks, mesin virtual jeung aplikasi husus alam, alatan kanyataan yén komponén ieu biasana dikembangkeun ku pabrik béda. Di dunya 1C, teu biasa ngabedakeun sacara eksplisit kerangka pangwangunan sareng runtime sorangan, salian ti éta, aplikasi khusus anu ditulis nganggo kerangka ogé dikembangkeun ku 1C sorangan. Hasilna, sababaraha kabingungan timbul. Ku alatan éta, dina kerangka artikel urang kudu mertimbangkeun 1C ti sababaraha sisi sakaligus tur mengklasifikasikan eta sapanjang sababaraha sumbu koordinat. Sarta dina unggal sumbu koordinat urang nempatkeun sekop zat coklat sarta kasampak di fitur, kaunggulan jeung kalemahan solusi aya.

Sudut pandang dina 1C

1C pikeun nu meuli

Anu mésér mésér sistem otomatisasi dimana anjeunna tiasa gancang ngabéréskeun masalah otomatisasi bisnisna. Usaha tiasa janten lapak leutik, atanapi tiasa janten perusahaan anu ageung. Éta jelas yén kabutuhan usaha ieu béda, tapi duanana dirojong ku dasar kode platform tunggal.

Pikeun anu mésér 1C ieu mangrupikeun waktos gancang ka pasar. Gancang. Langkung gancang ti Java, C # atanapi JS. Rata-rata. Sabudeureun rumah sakit. Éta jelas yén halaman wéb kartu bisnis anu nganggo React bakal langkung saé, tapi backend sistem WMS bakal diluncurkeun langkung gancang dina 1C.

1C salaku alat

Unggal solusi téhnologis boga wates of applicability. 1C sanes basa tujuan umum; Disarankeun ngagunakeun 1C nalika anjeun peryogi:

  • aplikasi server
  • aplikasi mana finances némbongan
  • kalayan UI siap-siap, ORM, Pelaporan, XML/JSON/COM/PDF/YourDataTransferingFormat
  • kalayan dukungan pikeun prosés latar tukang sareng padamelan
  • kalawan kaamanan dumasar-peran
  • kalawan logika bisnis scriptable
  • kalawan kamampuhan pikeun gancang nyieun prototipe sarta low waktu-ka-pasar

Anjeun henteu peryogi 1C upami anjeun hoyong:

  • diajar mesin
  • itungan GPU
  • grafik komputer
  • itungan matematik
  • Sistim CAD
  • ngolah sinyal (sora, video)
  • highload http nelepon kalayan ratusan rébu rps

1C salaku perusahaan manufaktur

Éta patut ngartos naon bisnis 1C salaku produsén software. Perusahaan 1C ngajual solusi pikeun masalah bisnis ngaliwatan otomatisasi. Usaha anu béda, ageung atanapi alit, tapi éta anu dijualna. Cara pikeun ngahontal tujuan ieu nyaéta aplikasi bisnis. Pikeun akuntansi, akuntansi gaji, jsb Pikeun nulis aplikasi ieu, pausahaan ngagunakeun platform ngembangkeun aplikasi bisnis sorangan. Disesuaikeun khusus pikeun tugas umum tina aplikasi bisnis anu sami ieu:

  • akuntansi kauangan
  • kustomisasi gampang tina logika bisnis
  • kamungkinan integrasi lega dina bentang IT hétérogén

Salaku produsén, 1C percaya yén ieu mangrupikeun strategi anu ngamungkinkeun anjeun damel sareng mitra sareng klien dina modeu win-win. Anjeun tiasa ngajawab ieu, tapi ieu kasarna kumaha parusahaan promotes sorangan: solusi siap-dijieun pikeun masalah bisnis nu bisa gancang ngaropéa ku mitra tur terpadu kana sagala bentang IT.

Kabéh klaim atawa kahayang pikeun 1C salaku kerangka kudu dianggap éksklusif ngaliwatan prisma ieu. "Kami hoyong OOP dina 1C," saur pamekar. "Sabaraha biaya pikeun ngadukung OOP dina platform, naha ieu bakal ngabantosan urang ningkatkeun penjualan kotak?" Muka "prisma" na pikeun ngajual solusi pikeun masalah bisnis:

- Hei, bisnis, naha anjeun hoyong OOP dina 1C anjeun?
- Dupi ieu mantuan kuring ngajawab masalah kuring?
- Saha anu terang...
- Lajeng aya teu perlu

Pendekatan ieu tiasa saé atanapi goréng gumantung kana anu ningali, tapi éta waé. Ngomongkeun kanyataan yén teu aya fitur X dina 1C, anjeun kedah ngartos yén éta henteu aya alesan, tapi dina konteks pilihan "biaya palaksanaan vs jumlah kauntungan".

Klasifikasi téhnologis

"Padahal, Odinesniks ngalakukeun anu pangsaéna pikeun ngagunakeun pola anu pangsaéna, dipilih sacara saksama ku metodologi anu paduli sareng pamekar platform 1C.
Lamun anjeun nulis kode bodo anjeun pikeun formulir junun basajan, dina kanyataanana anjeun ngagunakeun modél-view-controller с beungkeutan data dua arah в tilu-lapisan-data-aplikasi-mesin, rasa tingkat luhur obyék-hubungan-pemetaan dina dasarna déskripsi metadata déklaratifngabogaan sorangan basa query platform-bebas, c panganteur pamaké data-disetir déklaratif, serialization transparan lengkep jeung basa program domain-berorientasi.

Dimana pamekar 1C béda ti kolega Kulon maranéhanana dina PR. Aranjeunna resep masihan omong kosong naon waé anu ageung sareng ngajalankeunana sapertos kantong anu kotor.
A. Orefkov

Platform 1C ngagaduhan arsitéktur 3-tingkat klasik, di tengahna nyaéta server aplikasi (atanapi émulasi pikeun artos sakedik pikeun pamilik toko leutik). Boh MS SQL atanapi Postgres dianggo salaku DBMS. Aya ogé rojongan pikeun Oracle na IBM DB2, tapi ieu rada esoteric taya sahijieun weruh naon anu bakal kajadian mun anjeun nerapkeun 1C on database ieu dina beban sedeng sarta luhur. Kuring yakin yén 1C sorangan henteu terang ieu.

Bagian klien boh mangrupa klien ipis dipasang dina mesin pamaké atawa klien web. Fitur konci éta programer teu nulis 2 Konci béda, aranjeunna nulis hiji aplikasi, dina hiji basa, sarta anjeun bisa nembongkeun eta dina browser lamun aya kahayang atawa butuh. Saha anu hoyong tumpukan lengkep sareng basa tunggal pikeun payun sareng tukang, node.js? Aranjeunna pernah junun ngalakukeun persis hal anu sarua nepi ka ahir. Tumpukan pinuh nyata aya, tapi anjeun kedah nyerat dina 1C. Ironi nasib, hal-hal sapertos kitu :)

Solusi awan SaaS 1C: Seger ogé tiasa dianggo dina modeu browser, dimana anjeun moal tiasa mésér 1C, tapi nyéwa database leutik sareng ngalacak penjualan shawarma di dinya. Ngan dina browser, tanpa masang atanapi ngonpigurasikeun nanaon.

Salaku tambahan, aya klien warisan, anu dina 1C disebut "aplikasi biasa". Warisan mangrupikeun warisan, wilujeng sumping di dunya aplikasi dina taun 2002, tapi urang masih ngobrol ngeunaan kaayaan ékosistem ayeuna.

Bagian server 1C ngarojong clustering jeung skala ku nambahkeun mesin anyar pikeun klaster. Cukup seueur salinan anu rusak di dieu sareng bakal aya bagian anu misah dina tulisan ngeunaan ieu. Pondokna, ieu henteu sami sareng nambihan sababaraha instansi anu sami di tukangeun HAProxy.

Kerangka pamekaran aplikasi ngagunakeun basa pamrograman sorangan, anu kasarna nyarupaan VB6 anu rada ningkat ditarjamahkeun kana basa Rusia. Pikeun jalma anu hate sagalana Rusia, anu teu yakin yén "lamun" ditarjamahkeun jadi "lamun," pilihan sintaksis kadua ditawarkeun. Jelema. Upami anjeun hoyong, anjeun tiasa nyerat dina 1C ku cara anu teu tiasa dibédakeun tina VB.

1C - Alus jeung jahat. Susunan titik dina holivars sabudeureun 1C

Basa pemrograman ieu mangrupikeun alesan utama pikeun kabencian tina nicknames 1C kana platformna. Hayu urang nyanghareupan eta, teu tanpa alesan. Basa ieu katimu sasederhana mungkin, dirancang pikeun minuhan mantra "Pamekar, Pamekar" dina skala sahenteuna dina CIS. Intina komérsial tina solusi sapertos kitu, dina pamanggih kuring, jelas katingali: langkung seueur pamekar, sinyalna pasar anu langkung ageung. Ieu leres, numutkeun sababaraha perkiraan tina 45% dugi ka 95%. Kuring bakal langsung nyarios yén nyerat dina basa anu anjeun pikir éta langkung gampang. Sareng kuring terang seueur basa pamrograman.

Hayu urang mimitian ku basa.

1C basa programming

Dina waktu nu sarua titik kuat jeung lemah sistem. Nyadiakeun éntri gampang sareng kabaca. Di sisi anu sanésna, éta henteu acan diropéa saprak sékrési versi 8 taun 2002 sareng sacara moralna tinggaleun jaman. Aya anu bakal nyarios "kakurangan utama nyaéta teu aya OOP" sareng aranjeunna bakal salah. Anu mimiti, PLO henteu ngan ukur resep Nuraliev, tapi ogé Torvalds. Sareng kadua, OOP masih aya.

Tina sudut pandang pamekar, anjeunna gaduh kerangka sareng kelas dasar anu dipidangkeun dina DBMS. Pamekar tiasa nyandak kelas dasar "Diréktori" sareng ngawariskeun diréktori "Klién" ti dinya. Bisa nambahkeun widang kelas anyar ka dinya, contona, INN jeung Alamat, sarta ogé, lamun perlu, bisa override (override) métode kelas dasar, Contona, onWrite / métode AtRecord.

Kerangka ieu dirarancang ku cara anu warisan anu langkung jero jarang diperyogikeun, sareng larangan dina OOP, dina pamanggih kuring, asup akal. 1C museurkeun kana Pangembangan Didorong Domain sareng ngajantenkeun anjeun mikir, mimitina, ngeunaan daérah topik solusi anu dikembangkeun, sareng ieu saé. Aya henteu ngan euweuh godaan, tapi ogé teu kudu nulis 10 DTOs béda jeung ViewModels ngan pikeun nembongkeun sababaraha data ti domain wae. Pamekar 1C salawasna beroperasi kalawan hiji éntitas, tanpa cluttering konteks persepsi jeung belasan kelas kalawan ngaran sarupa, ngalambangkeun éntitas sarua, tapi ti sisi béda. Sakur aplikasi .NET, contona, bakal ngandung lima atawa dua ViewModels na DTOs pikeun serialization kana JSON sarta mindahkeun data ti klien ka server. Sareng sakitar 10-15% tina kode aplikasi anjeun bakal diséépkeun pikeun nransfer data tina hiji kelas ka kelas anu sanés nganggo pulpén atanapi kruk sapertos AutoMapper. Kode ieu kedah ditulis sareng programer kedah dibayar pikeun nyiptakeun sareng ngajaga éta.

Tétéla yén basa 1C hésé dimekarkeun tanpa ngahesekeun kana tingkat basa mainstream, sahingga leungit kauntungan tina kesederhanaan. Naon tugas vendor anu dasarna direngsekeun: ngaluarkeun solusi standar anu mana waé murid anu katangkep di jalan tiasa nyaluyukeun sareng tingkat kualitas anu diperyogikeun (nyaéta, kasus anu nutupan ti lapak ka pabrik ageung parantos réngsé). Upami anjeun lapak, cokot mahasiswa upami anjeun pabrik, cokot guru ti mitra pelaksana anjeun. Kanyataan yén mitra ngalaksanakeun ngajual siswa dina harga guru henteu masalah sareng kerangka. Sacara arsitéktur, kerangka kedah ngabéréskeun masalah duanana, kodeu konfigurasi standar (anu kami dijual ka usaha kalayan janji kustomisasi) kedah tiasa kahartos ku murid, sareng guru kedah tiasa ngartos naon waé anu anjeun pikahoyong.

Naon, dina pamanggih kuring, bener leungit dina basa, naon Angkatan anjeun nulis leuwih ti anjeun bisa, nyaeta naon wastes waktos dibayar ku nasabah.

  • Kamungkinan ngetik dina tingkat, contona, TypeScript (akibatna, alat analisis kode anu langkung maju dina IDE, refactoring, jambs karasa langkung sakedik)
    Kasadiaan fungsi salaku objék kelas munggaran. Hiji konsép rada leuwih kompleks, tapi jumlah boilerplate-kode has bisa greatly ngurangan. Pamahaman murid ngeunaan kode, IMHO, malah bakal ningkat kusabab pangurangan volume
  • Koléksi universal literals, initializers. Hal anu sami - ngirangan jumlah kode anu kedah ditulis sareng / atanapi ditingali ku panon anjeun. Koléksi ngeusian butuh langkung ti 9000% tina waktos program 1C. Nulis ieu tanpa gula sintaksis panjang, mahal sareng rawan kasalahan. Sacara umum, jumlah LOC dina solusi 1C ngaleuwihan sadaya wates anu tiasa dibayangkeun dibandingkeun kerangka kabuka anu sayogi sareng, sacara umum, sadaya perusahaan Java digabungkeun. Basa téh verbose, sarta ieu degenerates kana jumlah data, memori, rem IDE, waktu, duit ...
  • tungtungna constructions Kuring boga hipotesa yén konstruksi ieu leungit alatan kanyataan yén maranéhna teu manggihan tarjamahan suksés kana basa Rusia :)
  • Tipe data sorangan (tanpa OOP), analog tina Tipe ti VB6. Ieu bakal ngidinan Anjeun pikeun henteu ngetik struktur ngagunakeun komentar dina BSP jeung métode magic nu ngawangun struktur ieu. Simkuring meunang: kode kirang, hint ngaliwatan hiji titik, solusi gancang masalah, kasalahan pangsaeutikna alatan typos sarta leungit sipat struktur. Ayeuna ngetikkeun struktur pangguna sapinuhna sareng tim pangembangan Perpustakaan Subsistem Standar, anu, pikeun kiriditna, sacara saksama nyerat koméntar ngeunaan sipat anu dipiharep tina struktur parameter anu diliwatan.
  • Henteu aya gula nalika damel sareng telepon asynchronous dina klien wéb. callback-naraka dina bentuk ProcessingNotifications mangrupakeun crutch samentara disababkeun ku parobahan dadakan dina API tina panyungsi utama, tapi anjeun teu bisa hirup kawas kieu sadaya waktu Kauntungannana "mahasiswa pamahaman" kode Asynchronous keur leungit beuki loba. Tambahkeun dina euweuh rojongan pikeun paradigma ieu dina IDE utama jeung hal meunang malah parah.

Ieu mangrupikeun salah sahiji masalah anu pencét, éta écés yén daptarna tiasa langkung ageung, tapi urang henteu kedah hilap yén ieu masih sanés basa tujuan umum, henteu ngabutuhkeun multithreading, fungsi lambda, aksés ka GPU sareng gancang. itungan floating-point. Ieu mangrupikeun basa skrip logika bisnis.

A programmer anu geus digarap pisan ku basa ieu, ningali kana js atanapi c #, janten bosen dina kerangka basa ieu. Éta kanyataan. Anjeunna peryogi pangwangunan. Di sisi séjén skala pikeun padagang nyaéta biaya palaksanaan fitur anu ditangtukeun versus kanaékan pendapatan saatos palaksanaanna. Di dieu kuring henteu gaduh inpormasi ngeunaan naon anu ayeuna langkung ageung dina panon perusahaan.

Lingkungan pangwangunan

Hal-hal ogé henteu lancar di dieu. Aya dua lingkungan pangwangunan. Anu kahiji nyaéta Configurator anu kalebet dina pangiriman. Anu kadua nyaéta lingkungan Alat Pangembangan Perusahaan, atanapi pondokna EDT, dikembangkeun dumasar kana Eclipse.

Configurator nyadiakeun rentang pinuh ku tugas ngembangkeun, ngarojong sagala fitur sarta mangrupakeun lingkungan utama dina pasaran. Éta ogé luntur sacara moral, henteu berkembang, numutkeun rumor - kusabab jumlah hutang téknis dina dirina. Kaayaan éta tiasa ningkat ku muka API internal (dina bentuk silaturahim sareng Salju A. Orefkova atanapi dina dasar bebas), tapi ieu teu masalahna. Prakték parantos nunjukkeun yén komunitas bakal nyerat fitur sorangan dina IDE, salami anu ngajual henteu ngaganggu. Tapi urang boga naon urang boga. Configurator ieu hébat dina 2004-2005, pisan reminiscent of Visual Studio jaman eta, di sababaraha tempat malah cooler, tapi nyangkut dina eta jaman.

Salaku tambahan, volume solusi standar rata-rata parantos ningkat sababaraha kali ti saprak éta, sareng ayeuna IDE henteu tiasa ngatasi jumlah kode anu disayogikeun. Usability na refactoring kamampuhan henteu malah enol, aranjeunna dina beureum. Sadaya ieu henteu nambihan sumanget ka pamekar sareng aranjeunna ngimpi pindah ka ékosistem anu sanés sareng teras-terasan kode sial di dinya, tapi dina lingkungan anu pikaresepeun anu henteu nyiduh dina ramo anjeun kalayan paripolahna.

Minangka alternatif, IDE ditulis ti scratch, diwangun dina Eclipse, ditawarkeun. Aya, sumber, sakumaha dina sagala software lianna, hirup dina bentuk file téks, disimpen dina GIT, narik cabang pamundut, sadaya ieu. Dina downside, éta teu ninggalkeun status béta salila sababaraha taun ayeuna, sanajan éta meunang hadé kalawan unggal release. Kuring moal nulis ngeunaan kalemahan EDT, dinten éta dikurangan, besok éta fitur tetep. Relevansi pedaran sapertos kitu bakal gancang luntur. Dinten kasebut nyaéta dimungkinkeun pikeun ngamekarkeun dina EDT, tapi teu biasa anjeun kudu disiapkeun pikeun sababaraha bug IDE.

Upami anjeun ningal kaayaan ngalangkungan "prisma 1C" anu kasebat, anjeun nampi sapertos kieu: sékrési IDE énggal henteu ningkatkeun penjualan kotak, tapi aliran kaluar DEVELOPERS tiasa ngirangan. Hésé nyarios naon anu ngantosan ékosistem dina hal kanyamanan pamekar, tapi Microsoft parantos ngaco pamekar sélulér ku nawiskeun jasa éta telat.

manajemén ngembangkeun

Sadayana di dieu sacara signifikan langkung saé tibatan nyerat kode, khususna nembé, nalika usaha masarakat ngabéréskeun masalah-masalah otomatisasi administrasi, ngaluncurkeun prototipe anu nelepon pikeun ngalungkeun gudang 1C kana tumpukan sampah sareng nganggo git, nyalahkeun gancang, ulasan kode. , analisis statik, otomatis nyebarkeun jeung sajabana Seueur fitur anu parantos ditambah kana platform anu ningkatkeun tingkat otomatisasi tugas pangwangunan. Sanajan kitu, sagala fitur ieu ditambahkeun wungkul tur éksklusif pikeun ngembangkeun produk badag urang sorangan, nalika eta janten atra yén urang teu bisa ngalakukeun tanpa automation. Aya ngagabung otomatis, ngabandingkeun tilu arah sareng KDiff sareng sadayana. Diluncurkeun dina Github gitconverter, saha, terus terang, ieu ideologically nyeret jauh ti proyék gitsync, tapi dirobah pikeun nyocogkeun kana prosés pausahaan ngajual. Hatur nuhun ka guys nekad ti open-source, automation ngembangkeun di 1C turun taneuh. API kabuka pikeun configurator, IMHO, ogé bakal mindahkeun backwardness moral tina IDE utama.

Kiwari, nyimpen sumber 1C di git kalawan commits numbu ka masalah di Jira, ulasan dina Crucible, tombol push ti Jenkins jeung Allure ngalaporkeun on nguji kode dina 1C komo analisis statik dina SonarQube - ieu tebih ti warta, tapi rada mainstream di pausahaan dimana aya loba ngembangkeun 1C.

Administrasi

Aya seueur anu nyarios di dieu. Anu mimiti, ieu, tangtosna, server (kluster server 1C). Hiji hal éndah, tapi alatan kanyataan yén éta téh kotak lengkep hideung, documented di jéntré cukup, tapi dina cara husus - mastering peluncuran operasi uninterrupted dina modeu highload on sababaraha server nyaeta loba pilih sababaraha anu ngagem hiji. medali kalayan tulisan "Ahli Isu Téknologi". Perlu dicatet yén, prinsipna, ngokolakeun server 1C henteu béda ti ngokolakeun server anu sanés. Éta mangrupikeun aplikasi jaringan, multi-threaded anu nganggo mémori, CPU, sareng sumber disk. Nyadiakeun kasempetan anu cukup pikeun ngumpulkeun telemétri sareng diagnostik.

Masalahna di dieu nyaéta yén padagang henteu nawiskeun naon waé anu khusus dina hal solusi anu siap-siap pikeun diagnostik ieu. Sumuhun, aya 1C: Instrumentation sarta Control Center, aranjeunna malah rada alus, tapi aranjeunna pisan mahal tur teu sadaya jelema boga aranjeunna. Aya sababaraha kamajuan dina komunitas pikeun nyambungkeun Grafana, Zabbix, ELK jeung hal séjén tina susunan admin baku, tapi euweuh solusi tunggal nu bakal cocog mayoritas. Tugas ngantosan pahlawan na. Sareng upami anjeun usaha anu badé ngaluncurkeun kluster 1C, anjeun peryogi Ahli. Anjeun sorangan di jero atawa ti luar, tapi anjeun peryogi eta. Biasana aya peran anu misah sareng kompeténsi pikeun operasi server, henteu unggal pangguna 1C kedah terang ieu, anjeun ngan ukur kedah ngartos yén peran sapertos kitu diperyogikeun. Hayu urang nyandak SAP contona. Di dinya, programmer a, paling dipikaresep, malah moal bangun tina korsi na lamun dipenta pikeun ngonpigurasikeun hal dina server aplikasi. Anjeunna tiasa janten bodo sareng anjeunna moal isin. Dina metodologi SAP aya peran karyawan anu misah pikeun ieu. Kanggo sababaraha alesan, dina industri 1C dipercaya yén ieu kedah digabungkeun dina hiji karyawan pikeun gaji anu sami. Ieu delusion a.

Kalemahan 1C server

Aya persis hiji minus - reliabiliti. Atawa, upami Anjeun hoyong, unpredictability. Ngadadak paripolah aneh server geus jadi obrolan kota. Ubar universal - ngeureunkeun server sareng ngabersihan sadaya cache - bahkan dijelaskeun dina buku panduan ahli, bahkan buku bets disarankeun pikeun ngalakukeun ieu. Upami sistem 1C anjeun mimiti ngalakukeun hal anu henteu kedah dilakukeun sacara téoritis, waktosna pikeun mupus cache data sési. Numutkeun perkiraan kuring, ngan aya tilu jalma di sakumna nagara anu terang kumaha ngajalankeun server 1C tanpa prosedur ieu sareng aranjeunna henteu ngabagi rusiah, sabab ... aranjeunna hirup ti ieu. Panginten rusiahna nyaéta aranjeunna ngabersihan data sési, tapi aranjeunna henteu nyarios ka saha waé ngeunaan éta, dude.

Upami teu kitu, server 1C mangrupikeun aplikasi anu sami sareng anu sanés sareng dikaluarkeun ku cara anu sami, ku maca dokuméntasi sareng ngetok rebana.

Docker

Mangpaat ngagunakeun server 1C containerized dina produksi teu acan kabuktian. Server henteu dikelompokeun ku ngan saukur nambihan titik-titik di tukangeun kasaimbangan, anu ngirangan kauntungan tina containerization produksi ka minimum, sareng prakték operasi anu suksés dina peti dina modeu highload henteu acan didirikeun. Hasilna, ngan ukur pamekar anu nganggo Docker + 1C pikeun nyetél lingkungan tés. Aya éta pohara kapaké, dilarapkeun, ngidinan Anjeun pikeun maénkeun kalayan téknologi modern jeung reureuhan ti despondency of configurator nu.

komponén komérsial

Tina sudut pandang investasi, 1C ngamungkinkeun anjeun pikeun ngajawab masalah gancang ngaluncurkeun ideu bisnis kusabab kamampuan kelas aplikasi anu lega. 1C out of the box méré Pelaporan anu santun, integrasi sareng naon waé, klien wéb, klien mobile, aplikasi mobile, dukungan pikeun sagala rupa DBMS, kalebet. bebas, cross-platform duanana server na dipasang bagian klien. Leres, UI aplikasi bakal konéng, sakapeung ieu mangrupikeun minus, tapi henteu salawasna.
Ku milih 1C, hiji usaha meunang sakumpulan solusi software anu ngamungkinkeun aranjeunna pikeun ngawangun rentang pisan lega tina aplikasi, kitu ogé loba pamekar di pasar anu hoyong kirang duit ti Javaists sarta dina waktos anu sareng ngahasilkeun hasil leuwih gancang.

Contona, tugas ngirim invoice PDF ka klien bisa direngsekeun dina hiji jam gawé murid. Masalah anu sarua dina .NET bisa direngsekeun ku purchasing perpustakaan proprietary, atawa sababaraha poé atawa minggu coding ku buritan, pamekar janggot. Sakapeung, duanana sakaligus. Sareng enya, kuring ngan ukur ngobrol ngeunaan generasi PDF. Kami henteu acan nyarios ti mana RUU ieu asalna. Frontender wéb kedah nyiptakeun formulir dimana operator bakal ngasupkeun data, backender kedah nyiptakeun modél dto pikeun nransferkeun JSON, modél pikeun nyimpen dina pangkalan data, struktur database éta sorangan, migrasi ka dinya, formasi grafis. tampilan akun ieu pisan, sarta ngan lajeng - PDF. Dina 1C, sakabéh tugas, ti scratch, réngsé dina persis hiji jam.

Sistem akuntansi pinuh pikeun lapak leutik sareng hiji prosés bisnis anu dipésér / dijual dilakukeun dina 3 jam Kalayan ngalaporkeun penjualan, akuntansi barang-barang dina harga jual, dirobih ku gudang, kontrol hak aksés, klien wéb sareng aplikasi mobile. . Oke, kuring hilap ngeunaan aplikasina, kalayan aplikasina henteu dina 3 jam, dina genep.

Sabaraha lami tugas ieu bakal nyandak pamekar .NET ti install studio visual dina komputer bersih pikeun demonstrating ka konsumén? Kumaha upami biaya pangwangunan? hal anu sarua.

Kakuatan 1C salaku platform

1C kuat sanés kusabab aya anu khusus ngeunaan éta anu pangsaéna di dunya. Sabalikna, dina unggal subsistem individu anjeun tiasa mendakan analog anu langkung narik dina parangkat lunak dunya. Nanging, dumasar kana kombinasi faktor, kuring henteu ningali platform anu sami sareng 1C. Ieu dimana kasuksésan komérsial perenahna. Kauntungannana platform sumebar di sapanjang éta sareng paling jelas katingali nalika anjeun ningali kumaha ieu dilakukeun dina platform anu sanés. Dasarna, ieu NOT malah fitur, tapi sabalikna - a tampikan fitur dina ni'mat hiji paradigma husus. Sababaraha conto:

  1. Unicode. Naon sih bisa jadi basajan? Henteu kedah nganggo panyandian ASCII bait tunggal dina taun 2019 (iwal integrasi sareng warisan kuno). moal pernah. Tapi henteu. Atoh, batur dina sababaraha tabel nganggo varchar bait tunggal sareng aplikasina bakal ngagaduhan masalah sareng encodings. Dina 2015, otorisasina LDAP gitlab gagal kusabab panyandian anu salah sareng JetBrains IDE masih teu tiasa dianggo sareng Cyrillic dina nami file dimana-mana. 1C nyadiakeun isolasi kualitas luhur kode aplikasi tina lapisan database. Aya mustahil pikeun ngetik tabel dina tingkat anu handap sareng jambs juniors anu teu mampuh dina tingkat database mustahil aya. Sumuhun, meureun aya masalah sejen kalawan juniors teu mampuh, tapi rupa-rupa masalah jauh leuwih leutik. Ayeuna anjeun bakal ngawartosan yén aplikasi anjeun dirarancang leres sareng lapisan aksés database diisolasi sakumaha sakuduna. Tingali deui kana aplikasi Java khusus perusahaan anjeun. Raket jeung jujur. Naha nurani anjeun ngaganggu anjeun? Lajeng Abdi senang pikeun anjeun.
  2. Nomer dokumén / buku rujukan. Dina 1C pasti sanés anu paling fleksibel sareng sanés anu pangsaéna. Tapi naon anu aranjeunna laksanakeun dina parangkat lunak perbankan sareng dina sistem akuntansi anu ditulis nyalira - saé, éta ngan ukur gelap. Boh identitas bakal nyangkut dina (lajeng "oh, naha urang boga liang"), atawa sabalikna, maranéhna bakal nyieun generator anu hade jeung ngonci dina tingkat DBMS (sarta bakal jadi bottleneck a). Kanyataanna, rada hese pikeun ngalakukeun tugas anu katingalina saderhana ieu - enumerator éntitas tungtung-ka-tungtung, kalayan bagian keunikan dumasar kana set konci anu tangtu, prefiksasi, supados henteu ngablokir pangkalan data nalika éntri data paralel. .
  3. Identifiers rékaman dina database. 1C nyandak kaputusan anu kuat - sadaya idéntifikasi tautan leres-leres sintétis sareng éta. Sareng teu aya masalah sareng database anu disebarkeun sareng bursa. Pamekar sistem séjén stubbornly nyieun hal kawas identitas (éta pondok!), Séred kana GUI nepi ka waktuna nyieun sababaraha instansi patali (lajeng maranéhna bakal kapanggih). Naha anjeun teu gaduh ieu? Jujur?
  4. Daptar. 1C gaduh mékanisme anu cukup suksés pikeun paging ngaliwatan daptar (badag) sareng nganapigasi aranjeunna. Hayu atuh nyieun reservasi langsung - kalawan pamakéan bener mékanisme nu! Sacara umum, topikna rada teu pikaresepeun, teu tiasa direngsekeun sacara idéal: éta intuitif sareng saderhana (tapi résiko set rékaman ageung dina klien), atanapi paging mangrupikeun salah sahiji atanapi anu sanés. Jalma anu ngalakukeun paging mindeng ngalakukeun eta bengkung. Jalma anu nyieun hiji scrollbar jujur ​​nambahkeun database a, channel sarta klien.
  5. Bentuk diurus. Taya ragu, dina klien web panganteur teu jalan sampurna. Tapi gawéna. Tapi pikeun seueur sistem akuntansi sareng perbankan sanés, nyiptakeun tempat kerja jauh mangrupikeun proyék tingkat perusahaan. Bantahan: untungna pikeun maranéhanana anu asalna dijieun dina web, ieu moal mangaruhan.
  6. Aplikasi mobile. Anyar-anyar ieu, anjeun ogé tiasa nyerat aplikasi sélulér nalika aya dina ékosistem anu sami. Ieu saeutik leuwih pajeulit di dieu ti ku klien web husus maksakeun anjeun nulis husus pikeun aranjeunna, tapi, Tapi, anjeun teu nyewa tim misah tina pamekar mobile. Upami anjeun peryogi aplikasi pikeun kabutuhan internal perusahaan (nalika solusi mobile pikeun masalah perusahaan langkung penting tibatan desain UI konéng), anjeun ngan ukur nganggo platform anu sami di luar kotak.
  7. Ngalaporkeun. Ku kecap ieu kuring henteu hartosna sistem BI sareng data ageung sareng lag dina prosés ETL. Ieu ngarujuk kana laporan staf operasional anu ngamungkinkeun anjeun pikeun meunteun kaayaan akuntansi di dieu sareng ayeuna. Kasaimbangan, silih padumukan, re-grading, jsb. 1C kaluar tina kotak kalayan sistem pelaporan sareng setélan anu fleksibel pikeun grup, saringan, sareng visualisasi di sisi pangguna. Leres, aya analog anu langkung tiis di pasar. Tapi henteu dina kerangka solusi sadaya-dina-hiji sareng dina harga kadang langkung luhur tibatan solusi sadaya-dina-hiji. Sareng langkung sering éta malah sabalikna: ngan ukur ngalaporkeun, tapi langkung mahal tibatan sadayana platform, sareng kualitasna langkung parah.
  8. bentuk dicitak. Nya, nganggo .NET pikeun ngarengsekeun masalah ngirim slip gaji dina PDF ka karyawan ku email. Sareng ayeuna tugas nyitak invoice. Kumaha upami nyimpen salinanana kana PDF anu sami? Pikeun nickname 1C, ngaluarkeun perenah naon waé kana PDF nyaéta +1 garis kode. Ieu hartosna + 40 detik waktos damel, tibatan dinten atanapi minggu dina basa sanés. Perenah bentuk anu dicitak dina 1C luar biasa gampang dikembangkeun sareng cukup kuat pikeun bersaing sareng mitra anu mayar. Sumuhun, meureun, aya teu loba kasempetan interaktif dina dokumén spreadsheet 1C anjeun moal bisa gancang meunang diagram 3D kalawan skala maké OpenGL. Tapi éta bener diperlukeun?

Ieu ngan sakeupeul conto dimana ngawatesan fungsionalitas atanapi ngalaksanakeun compromises tétéla jadi hiji kauntungan arsitéktur penting dina mangsa nu bakal datang. Malah kompromi atanapi henteu pilihan anu paling épéktip - éta parantos aya dina kotak sareng dipasihkeun. palaksanaan bebas na bakal jadi teu mungkin (sabab kaputusan misalna kudu dilakukeun dina awal proyek, sarta teu aya waktu pikeun éta, sarta teu aya arsiték pisan), atawa sababaraha iterations mahal. Dina unggal titik didaptarkeun (jeung ieu teu daptar lengkep ngeunaan solusi arsitéktur), anjeun tiasa screw up sarta ngenalkeun larangan nu meungpeuk skala. Dina sagala hal, anjeun, salaku pangusaha, kudu mastikeun yén programer anjeun, nalika nyieun "sistem ti scratch," boga leungeun lempeng tur bakal ngalakukeun masalah sistem halus langsung ogé.

Leres, sapertos dina sistem kompleks anu sanés, 1C sorangan ogé ngagaduhan solusi anu ngahalangan skala dina sababaraha aspék. Nanging, kuring ngulang, dumasar kana kombinasi faktor, biaya kapamilikan, sareng jumlah masalah anu parantos direngsekeun sateuacanna, kuring henteu ningali pesaing anu pantes dina pasaran. Pikeun harga anu sami, anjeun kéngingkeun kerangka aplikasi kauangan, server saimbang clustered, kalayan antarmuka UI sareng wéb, sareng aplikasi mobile, kalayan ngalaporkeun, integrasi sareng seueur hal anu sanés. Di dunya Java, Anjeun nyewa tim hareup-tungtung jeung tukang-tungtung, debug shoals tingkat handap kode server home-tulisan jeung mayar misah pikeun 2 aplikasi mobile pikeun 2 mobile OS.

Abdi henteu nyarios yén 1C bakal ngabéréskeun sadaya kasus, tapi pikeun aplikasi perusahaan internal, nalika henteu peryogi merek UI - naon deui anu diperyogikeun?

Hiji sendok tar

Anjeun panginten ngagaduhan gambaran yén 1C bakal nyalametkeun dunya sareng yén sadaya cara sanés nyerat sistem perusahaan salah. Teu kitu pisan. Tina sudut pandang pangusaha, upami anjeun milih 1C, maka salian ti waktos gancang ka pasar, anjeun kedah tumut kana kalemahan di handap ieu:

  • Reliabiliti server. Spesialis anu leres-leres kualitasna diperyogikeun anu tiasa mastikeun operasi anu teu kaganggu. Kuring teu sadar program latihan siap-dijieun pikeun spesialis sapertos ti ngajual. Aya kursus pikeun nyiapkeun ujian Ahli, tapi ieu, dina pamanggih kuring, teu cukup.
  • Ngarojong. Tempo titik saméméhna. Pikeun kéngingkeun dukungan ti anu ngajual, anjeun kedah mésér. Kanggo sababaraha alesan ieu henteu katampa dina industri 1C. Sareng sareng SAP, éta ampir kedah-dibeuli sareng henteu ngaganggu saha waé. Tanpa dukungan perusahaan sareng tanpa ahli dina staf, anjeun tiasa ditinggalkeun nyalira kalayan gangguan 1C.
  • Masih, anjeun moal tiasa ngalakukeun sadayana kalayan 1C. Ieu mangrupikeun alat sareng sapertos unggal alat éta ngagaduhan wates panerapan. Dina bentang 1C, éta pisan desirable boga "non-1C" arsiték sistem.
  • Nicknames 1C anu saé henteu langkung mirah tibatan programer anu saé dina basa sanés. Sanajan, programer goréng téh mahal pikeun nyewa, paduli basa aranjeunna nulis dina.

Hayu urang titik titik

  • 1C mangrupikeun kerangka pangembangan aplikasi gancang (RAD) pikeun bisnis sareng disaluyukeun pikeun ieu.
  • Tautan tilu tingkat kalayan dukungan pikeun DBMS utama, UI klien, ORM sareng ngalaporkeun anu saé pisan
  • Kamungkinan lega pikeun integrasi sareng sistem anu tiasa ngalakukeun naon anu teu tiasa 1C. Upami anjeun hoyong diajar mesin, nyandak Python sareng kirimkeun hasilna ka 1C via http atanapi RabbitMQ
  • Henteu kedah narékahan pikeun ngalakukeun sadayana nganggo 1C, anjeun kedah ngartos kakuatanana sareng dianggo pikeun tujuan anjeun nyalira
  • Pamekar anu condong ngagali kana gadget kerangka téknologi sareng ngadesain ulang unggal N taun ka mesin énggal bosen ku 1C. Sagalana pisan konservatif aya.
  • Pamekar ogé bosen sabab aya sakedik perhatian pikeun aranjeunna ti produsén. Basa pikaboseneun, IDE lemah. Aranjeunna merlukeun modernisasi.
  • Di sisi anu sanés, pamekar anu henteu tiasa mendakan kasenangan ku ngagunakeun sareng diajar téknologi sanés anu aranjeunna resep nyaéta pamekar anu goréng. Aranjeunna bakal ngarenghik sareng ngalih ka ékosistem anu sanés.
  • Dunungan anu teu ngidinan nicknames 1C maranéhna nulis hal di Python mangrupakeun dunungan goréng. Aranjeunna bakal leungit pagawé kalawan pikiran hayang weruh, sarta di tempat maranéhanana baris datangna coders monyét anu, bari satuju jeung sagalana, bakal nyered software perusahaan kana rawa. Masih bakal kudu ditulis ulang, jadi meureun nya bakal hadé pikeun investasi saeutik dina Python saeutik saméméhna?
  • 1C nyaéta parusahaan komérsial sarta implements fitur solely dumasar kana kapentingan jeung expediency sorangan. Anjeun teu bisa ngalepatkeun nya pikeun ieu, bisnis kudu mikir ngeunaan kauntungan, éta hirup
  • 1C nyieun duit ku ngajual solusi masalah bisnis, teu masalah pamekar Vasya. Dua konsép ieu aya hubunganana, tapi prioritasna persis anu ceuk kuring. Nalika pamekar Vasya siap mayar lisénsi pribadi pikeun 1C: Resharper, éta bakal muncul rada gancang, "Resharper" ku A. Orefkova bukti ieu. Upami padagang ngadukung éta, sareng henteu ngalawan éta, pasar parangkat lunak pikeun pamekar bakal muncul. Ayeuna aya hiji satengah pamaén di pasar ieu kalawan hasil questionable, sarta sakabeh sabab integrasi jeung IDE négatip jeung sagalana geus rengse on crutches.
  • Praktek operator multi-mesin bakal ngaleungit kana oblivion. Aplikasi modéren ageung teuing pikeun émut boh tina sisi kode sareng tina sisi panggunaan bisnis. Server 1C ogé janten langkung kompleks; éta bakal mustahil pikeun nahan sagala jinis kaahlian dina hiji karyawan. Ieu kedah nyababkeun paménta pikeun spesialis, anu hartosna daya tarik profési 1C sareng paningkatan gaji. Lamun saméméhna Vasya digawé tilu-di-hiji pikeun hiji gaji, ayeuna anjeun kudu nyewa dua Vasyas jeung kompetisi diantara Vasyas bisa spur tumuwuhna sakabéh tingkat maranéhanana.

kacindekan

1C mangrupikeun produk anu pantes pisan. Dina kisaran harga kuring, kuring henteu terang naon waé analogna, nyerat dina koméntar upami aya. Sanajan kitu, outflow of pamekar ti ékosistem jadi beuki loba noticeable, sarta ieu téh "solokan otak", euweuh urusan kumaha anjeun nempo eta. Industri lapar pikeun modernisasi.
Mun anjeun pamekar a, teu meunang ngagantung up on 1C sarta ulah nganggap yén sagalana geus gaib dina basa séjén. Bari keur SMP meureun. Pas hal anu langkung ageung kedah direngsekeun, solusi anu siap-siap kedah dipilarian langkung lami sareng réngsé langkung intensif. Dina watesan kualitas "blok" ti mana solusi bisa diwangun, 1C pohara alus.

Sareng hiji deui - upami nickname 1C sumping ka anjeun pikeun nyewa, maka nickname 1C tiasa aman diangkat kana posisi analis kalungguhan. Pangertosan aranjeunna ngeunaan tugas, daérah subjek, sareng kaahlian dékomposisi anu saé. Kuring yakin yén ieu téh alatan pamakéan kapaksa DDD dina ngembangkeun 1C. Hiji jalma dilatih pikeun mikir ngeunaan harti hiji tugas mimiti sagala, ngeunaan sambungan antara objék wewengkon subjek, sarta dina waktos anu sareng boga latar teknis dina téhnologi integrasi jeung format bursa data.

Sadar yén kerangka idéal henteu aya sareng jaga diri anjeun.
Saé kanggo sadayana!

PS: hatur nuhun pisan speshuric pikeun pitulung dina nyiapkeun artikel.

Ngan pamaké nu kadaptar bisa ilubiung dina survey. Daptar, Punten.

Naha anjeun gaduh 1C di perusahaan anjeun?

  • 13,3%Henteu pisan.71

  • 30,3%Aya, tapi ngan di jurusan akuntansi wae. Sistem inti dina platform séjén162

  • 41,4%Leres, prosés bisnis utama dianggo dina éta221

  • 15,0%1C kedah maot, masa depan milik %technology_name%80

534 pamaké milih. 99 pamaké abstained.

sumber: www.habr.com

Tambahkeun komentar