1Ц - Добро и зло. Распоред тачака у холиварима око 1Ц

1Ц - Добро и зло. Распоред тачака у холиварима око 1Ц

Пријатељи и колеге, у последње време све су чешћи чланци на Хабреу са мржњом према 1Ц као развојној платформи и говори његових бранилаца. Ови чланци су идентификовали један озбиљан проблем: најчешће га критичари 1Ц критикују са позиције „не савладавања“, грдећи проблеме који се де фацто лако решавају, и, напротив, не дотичући се проблема који су заиста важни, вредни. расправља и не решава их продавац. Верујем да има смисла спровести трезвен и уравнотежен преглед 1Ц платформе. Шта може, шта не може, шта треба да ради, а не ради, и, за десерт, шта ради са праском, а ваши програмери у %тецхнологи_наме% ће радити сто година, бацајући то више од једног годишњег буџета.

Као резултат тога, ви, као менаџер или архитекта, моћи ћете да јасно разумете који задатак ће вам бити од користи да користите 1Ц, а где га треба спалити врућим гвожђем. Као програмер у „не-1Ц“ свету, моћи ћете да видите шта постоји у 1Ц што изазива пометњу. И као 1Ц програмер, моћи ћете да упоредите свој систем са екосистемима других језика и разумете своју локацију у координатном систему развоја софтвера.

Испод реза има доста дебелих напада на 1Ц, на критичаре 1Ц, на Јаву, .НЕТ и уопште... Навијач пун, добродошли!

О мени

Упознат сам са предметом разговора отприлике од 2004. године. Програмирањем се бавим вероватно од своје 6. године, од тренутка када сам добио књигу о професору Фортрану са стриповима о мачки, врапцу и гусеници. Анализирао сам програме које је мачка написао са слика у књизи и сазнао шта су радили. И да, у то време нисам имао прави компјутер, али је био цртеж на раширеној књизи и искрено сам притискао дугмад папира, уносећи команде које сам шпијунирао мачку Кс.

Затим је био БК0011 и БАСИЦ у школи, Ц++ и асемблери на универзитету, па 1Ц, и онда толико других ствари којих сам превише лењ да се сетим. Последњих 15 година углавном сам се бавио 1Ц, не само у смислу кодирања, већ у 1Ц уопште. Постављање задатака, администрација и девопс овде. Последњих 5 година бавим се друштвено корисним активностима у смислу развоја алата за развој и аутоматизацију за друге 1Ц кориснике, писање чланака и књига.

Хајде да одлучимо о предмету расправе

Прво, хајде да дефинишемо о чему ћемо разговарати, пошто слова „1Ц“ могу значити много ствари. У овом случају, под словима „1Ц“ подразумеваћемо искључиво развојни оквир „1Ц: Ентерприсе“ модерне, осме верзије. Нећемо много причати о произвођачу и његовој политици (али ћемо морати мало да се бавимо одређеним апликацијама написаним помоћу овог оквира). Технологија је одвојена, апликације или конфигурације су одвојене.

Архитектура високог нивоа 1Ц: Ентерприсе

Није узалуд што помињем реч „оквир“. Са тачке гледишта програмера, 1Ц платформа је управо оквир. И морате га третирати тачно као оквир. Замислите то као Спринг или АСП.НЕТ, које извршава неко време извршавања (ЈВМ или ЦЛР). Дешава се да је у свету конвенционалног програмирања („не 1Ц“) подела на оквире, виртуелне машине и специфичне апликације природна, због чињенице да ове компоненте обично развијају различити произвођачи. У свету 1Ц није уобичајено да се експлицитно разликује развојни оквир и време извршавања, поред тога, специфичне апликације написане помоћу оквира такође углавном развија сам 1Ц. Као резултат тога, настаје нека конфузија. Стога, у оквиру чланка, мораћемо да размотримо 1Ц са неколико страна одједном и класификујемо га дуж неколико координатних оса. А у сваку координатну осу ставићемо лопату смеђе супстанце и погледати карактеристике, предности и недостатке постојећег решења.

Тачке гледишта на 1Ц

1Ц за купца

Купац купује систем аутоматизације са којим може брзо да реши проблеме аутоматизације сопственог пословања. Предузеће може бити мала тезга или велика холдинг компанија. Јасно је да су потребе ових предузећа различите, али оба су подржана једном основом кода платформе.

За купца 1Ц ово је брзо време за стављање на тржиште. Фаст. Брже од Јава, Ц# или ЈС. Просек. Око болнице. Јасно је да ће веб локација са визит картама која користи Реацт бити боља, али ће позадинска страна ВМС система брже покренути на 1Ц.

1Ц као алат

Свако технолошко решење има границе применљивости. 1Ц није језик опште намене, он не живи одвојено од свог оквира. Препоручљиво је користити 1Ц када вам је потребно:

  • серверска апликација
  • апликација где се појављују финансије
  • са готовим корисничким интерфејсом, ОРМ, извештавањем, КСМЛ/ЈСОН/ЦОМ/ПДФ/ИоурДатаТрансферингФормат
  • уз подршку за позадинске процесе и послове
  • са безбедношћу заснованом на улози
  • са сцриптабле пословном логиком
  • са могућношћу брзог креирања прототипа и кратким временом за излазак на тржиште

Не треба вам 1Ц ако желите:

  • Машинско учење
  • ГПУ прорачуни
  • рачунарска графика
  • математичких прорачуна
  • ЦАД систем
  • обрада сигнала (звук, видео)
  • хигхлоад хттп позива са стотинама хиљада рпс

1Ц као производна компанија

Вреди разумети шта је посао 1Ц као произвођача софтвера. Компанија 1Ц продаје решења за пословне проблеме путем аутоматизације. Различити послови, велики или мали, али то је оно што она продаје. Средства за постизање овог циља су пословне апликације. За рачуноводство, обрачун зарада итд. За писање ових апликација, компанија користи сопствену платформу за развој пословних апликација. Посебно скројен за уобичајене задатке ових истих пословних апликација:

  • финансијско рачуноводство
  • лако прилагођавање пословне логике
  • широке могућности интеграције у хетерогене ИТ пејзаже

Као произвођач, 1Ц верује да је то стратегија која вам омогућава да радите са партнерима и клијентима у вин-вин моду. Можете се расправљати са овим, али отприлике овако се компанија промовише: готова решења за пословне проблеме која партнери могу брзо прилагодити и интегрисати у било који ИТ пејзаж.

Све тврдње или жеље за 1Ц као оквиром треба посматрати искључиво кроз ову призму. „Желимо ООП у 1Ц“, кажу програмери. „Колико ће нас коштати подршка ООП-а на платформи, да ли ће нам то помоћи да повећамо продају кутија?“ Отвара своју „призму“ продаје решења за пословне проблеме:

- Хеј, посао, да ли желиш ООП у свом 1Ц?
- Хоће ли ми ово помоћи да решим своје проблеме?
- Ко зна...
- Онда нема потребе

Овај приступ може бити добар или лош у зависности од тога ко га гледа, али то је једноставно тако. Говорећи о томе да у 1Ц нема функције Кс, морате схватити да она није ту с разлогом, већ у контексту избора „трошкови имплементације у односу на износ профита“.

Технолошка класификација

„У ствари, Одинесникс дају све од себе да користе најбоље обрасце, пажљиво одабране од стране брижних методолога и програмера 1Ц платформе.
Када напишете свој глупи код за једноставну управљану форму, у стварности то користите модел-виев-контролер с двосмерно везивање података в трослојни мотор апликација за податке, са укусом мапирање објеката високог нивоа на бази декларативни опис метаподатакаимајући своје језик упита независан од платформе, Ц декларативни кориснички интерфејс вођен подацима, потпуна транспарентна серијализација и програмски језик оријентисан на домен.

Оно у чему се 1Ц програмери разликују од својих западних колега је ПР. Они воле да сваком срању дају велико име и трче около с њим као с прљавом врећом."
А. Орефков

1Ц платформа има класичну 3-слојну архитектуру, у чијем средишту је сервер апликација (или његова емулација за мало новца за мале трговце). Као ДБМС се користи МС СКЛ или Постгрес. Такође постоји подршка за Орацле и ИБМ ДБ2, али то је прилично езотерично, нико не зна шта ће се догодити ако имплементирате 1Ц на ове базе података под средњим и високим оптерећењем. Верујем да сам 1Ц то не зна.

Клијентски део је или танки клијент инсталиран на машини корисника или веб клијент. Кључна карактеристика је да програмери не пишу 2 различита кода, већ пишу једну апликацију, на једном језику, а можете је приказати у претраживачу ако постоји жеља или потреба. Ко је тамо желео прави пуни стек и један језик за фронт и позадину, ноде.јс? Никада нису успели да ураде потпуно исту ствар до краја. Прави пуни стек постоји, али ћете га морати написати у 1Ц. Иронија судбине, такве ствари :)

Цлоуд СааС решење 1Ц:Фресх такође ради у режиму прегледача, у којем не можете купити 1Ц, већ изнајмити малу базу података и тамо пратити продају шаварме. Само у претраживачу, без инсталирања или конфигурисања било чега.

Поред тога, постоји и стари клијент, који се у 1Ц назива „редовна апликација“. Легаци је наслеђе, добродошли у свет апликација 2002. године, али још увек говоримо о тренутном стању екосистема.

1Ц серверски део подржава груписање и скалирање додавањем нових машина у кластер. Овде је поломљено доста копија и биће посебан одељак у чланку о томе. Укратко, ово није сасвим исто као додавање неколико потпуно истих инстанци иза ХАПроки-а.

Оквир за развој апликација користи сопствени програмски језик, који отприлике личи на мало побољшани ВБ6 преведен на руски. За људе који мрзе све руско, који не верују да је „ако“ преведено као „ако“, нуди се друга опција синтаксе. Оне. Ако желите, можете га написати у 1Ц на такав начин да се не разликује од ВБ.

1Ц - Добро и зло. Распоред тачака у холиварима око 1Ц

Управо овај програмски језик је главни разлог мржње 1Ц надимака према њиховој платформи. Да се ​​разумемо, не без разлога. Језик је замишљен што једноставнији, осмишљен да испуни мантру „ДЕВЕЛОПЕРС, ДЕВЕЛОПЕРС“ барем у ЦИС-у. Комерцијална суштина оваквог решења, по мом мишљењу, је јасно видљива: више програмера, већа покривеност тржишта. То се и обистинило, према различитим проценама од 45% до 95%. Одмах ћу рећи да је писање на језику за који мислите да је заиста лакше. И знам доста програмских језика.

Почнимо са језиком.

1Ц програмски језик

У исто време и јака и слаба тачка система. Омогућава лак унос и читљивост. С друге стране, није ажуриран од издавања верзије 8 2002. године и морално је застарео. Неко ће рећи „главни недостатак је то што нема ООП“ и погрешиће. Прво, ПЛО не воли не само Нураљева, већ и Торвалдса. И друго, ООП и даље постоји.

Са становишта програмера, он има на располагању оквир са основним класама приказаним на ДБМС-у. Програмер може узети основну класу „Дирецтори“ и наследити директоријум „Цлиентс“ из ње. Може да јој дода нова поља класе, на пример, ИНН и Аддресс, а такође, ако је потребно, може да замени (замени) методе основне класе, на пример, метод ОнВрите/АтРецорд.

Оквир је дизајниран тако да је дубље наслеђивање ретко потребно, а ограничење у ООП-у, по мом мишљењу, има смисла. 1Ц се фокусира на развој вођен доменом и тера вас да размислите, пре свега, о предметној области решења које се развија, и то је добро. Не само да нема искушења, већ нема потребе да пишете 10 различитих ДТО-ова и ВиевМодела само да бисте негде приказали неке податке из домена. Програмер 1Ц увек ради са једним ентитетом, без затрпавања контекста перцепције са десетак класа са сличним именима, које представљају исти ентитет, али са друге стране. Свака .НЕТ апликација, на пример, ће нужно садржати пет или два ВиевМодела и ДТО за серијализацију у ЈСОН и пренос података са клијента на сервер. И отприлике 10-15% вашег кода апликације ће се потрошити на пренос података из једне класе у другу користећи оловке или штаке као што је АутоМаппер. Овај код мора бити написан и програмери морају бити плаћени да га креирају и одржавају.

Испоставило се да је 1Ц језик тешко развити а да се не компликује на ниво маинстреам језика, чиме се губи предност једноставности. Шта је задатак продавца у суштини решаван: да изда стандардно решење које сваки ученик затечен на улици може да прилагоди са потребним нивоом квалитета (тј. завршено је покривање кућишта од тезге до велике фабрике). Ако сте тезга, узмите студента ако сте фабрика, узмите гуруа од свог партнера за имплементацију; Чињеница да имплементациони партнери продају студенте по цени гуруа није проблем са оквиром. Архитектонски, оквир мора да реши проблеме и једног и другог, код стандардних конфигурација (који смо продали предузећима уз обећање прилагођавања) треба да буде у стању да разуме ученик, а гуру би требало да буде у стању да разуме шта год желите.

Оно што, по мом мишљењу, заиста недостаје језику, оно што вас тера да пишете више него што бисте могли, је оно што губи време које муштерија плаћа.

  • Могућност куцања на нивоу, на пример, ТипеСцрипт (као резултат тога, развијенији алати за анализу кода у ИДЕ-у, рефакторисање, мање увредљивих заглављивања)
    Доступност функција као првокласних објеката. Мало сложенији концепт, али количина типичног шаблонског кода би се могла знатно смањити. Учениково разумевање кода, ИМХО, би се чак и повећало због смањења обима
  • Универзални литерали колекције, иницијализатори. Иста ствар – смањење количине кода који треба да се напише и/или погледа очима. Попуњавање колекција заузима преко 9000% времена програмирања 1Ц. Писати ово без синтаксичког шећера је дуго, скупо и подложно грешкама. Уопштено говорећи, количина ЛОЦ-а у 1Ц решењима премашује све замисливе границе у поређењу са доступним отвореним оквирима и, уопште, свим Јава-овима вашег предузећа заједно. Језик је опширан, а то се дегенерише у количину података, меморије, ИДЕ кочница, времена, новца...
  • коначно конструкције Имам хипотезу да ова конструкција недостаје због чињенице да нису нашли успешан превод на руски :)
  • Сопствени типови података (без ООП), аналози типа из ВБ6. То ће вам омогућити да не куцате структуре користећи коментаре у БСП-у и магичне методе које конструишу ове структуре. Добијамо: мање кода, наговештај кроз тачку, брже решење проблема, мање грешака због грешака у куцању и недостајућих својстава структура. Сада је куцање корисничких структура у потпуности на развојном тиму библиотеке стандардних подсистема, који, по свој прилици, пажљиво пише коментаре на очекивана својства прослеђених структура параметара.
  • Без шећера када радите са асинхроним позивима на веб клијенту. цаллбацк-хелл у облику ПроцессингНотифицатионс је привремена штака узрокована изненадном променом АПИ-ја главних претраживача, али не можете стално да живите тако да се губи предност „разумевања“ асинхроног кода све више и више. Не додајте подршку за ову парадигму у главном ИДЕ-у и ствари ће постати још горе.

Ово је један од горућих проблема, јасно је да би листа могла бити много већа, али не смемо заборавити да ово још увек није језик опште намене, не захтева мултитхреадинг, ламбда функције, приступ ГПУ-у и брз прорачуни са помичним зарезом. Ово је скриптни језик пословне логике.

Програмеру који је већ доста радио са овим језиком, загледао се у јс или ц#, постаје досадно у оквиру овог језика. Чињеница је. Потребан му је развој. На другој страни скале за добављача је трошак имплементације наведених функција у односу на повећање прихода након њихове имплементације. Овде немам никакве информације о томе шта је тренутно надјачано у очима компаније.

Развојно окружење

Ни овде ствари не иду глатко. Постоје два развојна окружења. Први је конфигуратор укључен у испоруку. Друго је окружење Ентерприсе Девелопмент Тоолс, или скраћено ЕДТ, развијено на бази Ецлипсе-а.

Конфигуратор пружа читав низ развојних задатака, подржава све функције и представља главно окружење на тржишту. Такође је морално застарео, не развија се, према гласинама - због количине техничког дуга у себи. Ситуација би се могла побољшати отварањем интерног АПИ-ја (у облику пријатељства са Снеско Белиц А. Орефкова или на независној основи), али то није случај. Пракса је показала да ће заједница писати своје карактеристике у ИДЕ, све док се произвођач не меша. Али имамо оно што имамо. Конфигуратор је био одличан 2004-2005, веома је подсећао на Висуал Студио из тог времена, на неким местима је био и хладнији, али је заглавио у тим временима.

Поред тога, обим просечног стандардног решења је од тада порастао неколико пута, а данас ИДЕ једноставно не може да се носи са количином кода којим се храни. Употребљивост и могућности рефакторисања нису ни на нули, оне су у минусу. Све ово не улива ентузијазам програмерима и они маштају да се преселе у друге екосистеме и тамо наставе да кодирају срања, али у пријатном окружењу које вам својим понашањем не пљује у лице.

Као алтернатива, нуди се ИДЕ написан од нуле, изграђен на Ецлипсе-у. Тамо извори, као иу сваком другом софтверу, живе у облику текстуалних фајлова, чувају се у ГИТ-у, гране захтева за повлачење, све ово. Са друге стране, није напустио бета статус већ много година, иако постаје све бољи са сваким издањем. Нећу писати о недостацима ЕДТ-а, данас је минус, сутра је фиксна карактеристика. Релевантност таквог описа ће брзо нестати. Данас је могуће развијати у ЕДТ-у, али то је необично, морате бити спремни за одређени број ИДЕ грешака.

Ако погледате ситуацију кроз поменуту „1Ц призму“, добијате нешто овако: издавање новог ИДЕ-а не повећава продају кутија, али се може смањити одлив ДЕВЕЛОПЕРА. Тешко је рећи шта чека екосистем у смислу удобности програмера, али Мицрософт је већ зезнуо програмере мобилних уређаја нудећи им своје услуге прекасно.

Управљање развојем

Овде је све знатно боље него у писању кода, посебно недавно, када су напори заједнице изнели на видело проблеме аутоматизације администрације, лансирали прототипове који позивају на бацање 1Ц репозиторија у смеће и коришћење гит-а, брзог окривљавања, прегледа кода , статичка анализа, ауто-деплои итд. Платформи су додате многе функције које повећавају ниво аутоматизације развојних задатака. Међутим, све ове карактеристике су додате само и искључиво за развој сопствених великих производа, када је постало очигледно да не можемо без аутоматизације. Било је аутоматског спајања, тросмерног поређења са КДифф-ом и свега тога. Покренуто на Гитхуб-у гитцонвертер, који је, искрено, идеолошки одвучен из пројекта гитсинц, али модификован да одговара процесима компаније добављача. Захваљујући тврдоглавим момцима из отвореног кода, аутоматизација развоја у 1Ц је кренула. Отворени АПИ за конфигуратор, ИМХО, такође би померио моралну назадност главног ИДЕ-а.

Данас, складиштење 1Ц извора у гит-у са урезима повезаним са проблемима у Јира, прегледима у Цруцибле-у, дугметом од Јенкинса и Аллуре извештајима о тестирању кода у 1Ц, па чак и статичка анализа у СонарКубе-у - ово је далеко од вести, већ мејнстрим у компанијама у којима се много развија 1Ц.

Администрација

Овде има много тога да се каже. Прво, ово је, наравно, сервер (кластер 1Ц сервера). Дивна ствар, али због чињенице да се ради о потпуно црној кутији, документованој довољно детаљно, али на специфичан начин - савладавање покретања непрекидног рада у режиму високог оптерећења на неколико сервера је део одабраних који носе медаља са натписом „Стручњак за технолошка питања“. Вреди напоменути да се, у принципу, администрирање 1Ц сервера не разликује од администрирања било ког другог сервера. То је мрежна апликација са више нити која троши меморију, ЦПУ и ресурсе диска. Пружа широке могућности за прикупљање и дијагностику телеметрије.

Проблем је што произвођач не нуди ништа посебно у смислу готових решења баш за ову дијагностику. Да, постоји 1Ц: Инструментатион анд Цонтрол Центер, чак су и прилично добри, али су веома скупи и немају их сви. Постоји низ развоја у заједници за повезивање Графана, Заббик, ЕЛК и других ствари из стандардног админ скупа, али не постоји јединствено решење које би одговарало већини. Задатак чека свог хероја. А ако сте предузеће које планира да се покрене на 1Ц кластеру, потребан вам је стручњак. Свој изнутра или споља, али вам треба. Нормално је да постоји посебна улога са компетенцијама за рад сервера, то не треба да зна сваки корисник 1Ц, само треба да схватите да је таква улога потребна. Узмимо за пример САП. Тамо, програмер, највероватније, неће ни устати са столице ако се од њега затражи да нешто конфигурише на серверу апликација. Можда је само глуп и неће се стидети. У САП методологији постоји посебна улога запослених за ово. Из неког разлога, у 1Ц индустрији се верује да ово треба комбиновати у једном запосленом за исту плату. То је заблуда.

Недостаци 1Ц сервера

Постоји тачно један минус - поузданост. Или, ако желите, непредвидљивост. Изненадно чудно понашање сервера је већ постало прича у граду. Универзални лек - заустављање сервера и брисање свих кешова - чак је описан у приручнику стручњака, а препоручује се чак и батцх боок који то ради. Ако ваш 1Ц систем почне да ради нешто што ни теоретски не би требало да ради, време је да обришете кеш података сесије. По мојој процени, у целој земљи постоје само три особе које знају да раде са 1Ц сервером без ове процедуре и не деле тајне, јер... они живе од овога. Можда је њихова тајна у томе што чисте податке о сесији, али никоме о томе не говоре, брате.

Иначе, 1Ц сервер је иста апликација као и свака друга и администрира се на скоро исти начин, читањем документације и куцањем на тамбуру.

лучки радник

Корисност коришћења контејнерског 1Ц сервера у производњи још није доказана. Сервер се не групише једноставним додавањем чворова иза балансера, чиме се предности производне контејнеризације своде на минимум, а пракса успешног рада у контејнерима у режиму високог оптерећења није успостављена. Као резултат тога, само програмери користе Доцкер+1Ц за подешавање окружења за тестирање. Тамо је веома користан, примењен, омогућава вам да се играте савременим технологијама и да се одморите од малодушности конфигуратора.

Комерцијална компонента

Са инвестиционе тачке гледишта, 1Ц вам омогућава да решите проблем брзог покретања пословних идеја због широких могућности класа апликација. 1Ц из кутије даје веома пристојно извештавање, интеграцију са било чим, веб клијент, мобилни клијент, мобилну апликацију, подршку за разне ДБМС, укљ. бесплатни, вишеплатформски и серверски и инсталирани клијентски делови. Да, кориснички интерфејс апликација ће бити жут, понекад је то минус, али не увек.
Одабиром 1Ц, предузеће добија сет софтверских решења која им омогућавају да направе веома широк спектар апликација, као и велики број програмера на тржишту који желе мање новца од Јаваиста и истовремено брже производе резултате.

На пример, задатак слања ПДФ рачуна клијенту може се решити за сат студентског рада. Исти проблем у .НЕТ-у може се решити куповином власничке библиотеке, или неколико дана или недеља кодирања од стране строгог, брадатог програмера. Понекад, обоје одједном. И да, говорио сам само о генерисању ПДФ-а. Нисмо рекли одакле ће уопште доћи овај рачун. Веб фронтендер мора да направи форму у коју ће оператер уносити податке, бекендер ће морати да креира дто моделе за пренос ЈСОН-а, моделе за складиштење у бази, структуру саме базе података, миграцију на њу, формирање графичког приказ управо овог налога, па тек онда - ПДФ. На 1Ц, цео задатак, од нуле, је завршен за тачно сат времена.

Комплетан рачуноводствени систем за малу тезгу са једним пословним процесом купљен/продат се ради за 3 сата са извештавањем о продаји, књиговодством робе по набавним и продајним ценама, рашчлањеним по магацину, контролом права приступа, веб клијентом и мобилном апликацијом. . Добро, заборавио сам на апликацију, са апликацијом не за 3 сата, за шест.

Колико ће овај задатак трајати .НЕТ програмеру од инсталирања визуелног студија на чист рачунар до демонстрације купцу? Шта је са трошковима развоја? Иста ствар.

Предности 1Ц као платформе

1Ц је јак не зато што у њему постоји нешто специфично што је најбоље на свету. Напротив, у сваком појединачном подсистему можете пронаћи занимљивији аналог у светском софтверу. Међутим, на основу комбинације фактора, не видим платформу сличну 1Ц. Ту лежи комерцијални успех. Предности платформе су разбацане по њој и најјасније су видљиве када видите како се то ради на другим платформама. У суштини, то чак НИСУ особине, већ напротив – одбацивање особина у корист једне специфичне парадигме. неколико примера:

  1. Уницоде. Шта би дођавола могло бити једноставније? Нема потребе за коришћењем једнобајтних АСЦИИ кодирања у 2019. (осим интеграције са старим застарелим кодовима). Никада. Али не. У сваком случају, неко у некој табели користи варцхар од једног бајта и апликација ће имати проблема са кодирањем. 2015. гитлаб-ова ЛДАП ауторизација није успела због погрешног рада са кодирањем ЈетБраинс ИДЕ и даље не ради свуда са ћирилицом у именима датотека. 1Ц обезбеђује висококвалитетну изолацију кода апликације од слоја базе података. Тамо је немогуће куцати табеле на ниском нивоу и ту су немогући добоји неспособних јуниора на нивоу базе података. Да, можда има и других проблема са неспособним јуниорима, али је разноликост проблема много мања. Сада ћете ми рећи да је ваша апликација исправно дизајнирана и да је слој приступа бази података изолован како би требало да буде. Погледајте још једном своју корпоративну прилагођену Јава апликацију. Блиско и искрено. Да ли вас мучи савест? Онда ми је драго због тебе.
  2. Нумерација докумената/приручника. У 1Ц дефинитивно није најфлексибилнији и није најбољи. Али оно што раде у банкарском софтверу и у самописним рачуноводственим системима - па, то је само мрак. Или ће идентитет бити заглављен (и онда „ја, зашто имамо рупе“), или ће напротив направити генератор који ради са закључавањем на нивоу ДБМС (и постаће уско грло). У ствари, прилично је тешко урадити овај наизглед једноставан задатак - енд-то-енд пописивач ентитета, са секцијом јединствености заснованом на одређеном скупу кључева, префиксом, тако да не блокира базу података током паралелног уноса података. .
  3. Идентификатори записа у бази података. 1Ц је донео одлуку снажне воље - сви идентификатори веза су апсолутно синтетички и то је то. И нема проблема са дистрибуираним базама података и разменама. Програмери других система тврдоглаво креирају нешто попут идентитета (краће је!), превлаче их у ГУИ док не дође време за креирање неколико повезаних инстанци (и тада ће бити откривене). Зар немаш ово? Искрено?
  4. Листе. 1Ц има прилично успешне механизме за листање (великих) листа и навигацију кроз њих. Одмах да резервишем - уз правилну употребу механизма! Уопштено говорећи, тема је прилично непријатна, не може се решити идеално: или је интуитивна и једноставна (али ризик од огромних записа на клијенту), или је пејџинг једне или друге криве. Они који раде пејџинг често то раде криво. Они који праве поштену траку за померање додају базу података, канал и клијента.
  5. Управљани обрасци. Без сумње, у веб клијенту интерфејс не ради савршено. Али ради. Али за многе друге рачуноводствене и банкарске системе, стварање удаљеног радног места је пројекат на нивоу предузећа. Одрицање одговорности: на срећу за оне који су то првобитно направили на вебу, то неће утицати.
  6. Апликација за мобилне уређаје. Недавно можете писати и мобилне апликације док сте у истом екосистему. Овде је мало компликованије него са веб клијентом, специфичности уређаја вас приморавају да пишете посебно за њих, али, ипак, не ангажујете посебан тим мобилних програмера. Ако вам је потребна апликација за интерне потребе компаније (када је мобилно решење за корпоративни проблем важније од жутог УИ дизајна), једноставно користите исту платформу из кутије.
  7. Извештавање. Под овом речју не мислим на БИ систем са великим подацима и заостајањем у ЕТЛ процесу. Ово се односи на извештаје оперативног особља који вам омогућавају да процените стање рачуноводства овде и сада. Биланси, међусобна обрачуна, реоцењивање итд. 1Ц излази из кутије са системом извештавања са флексибилним подешавањима за груписање, филтере и визуелизацију на страни корисника. Да, на тржишту постоје хладнији аналоги. Али не у оквиру решења „све у једном“ и по цени која је понекад већа од решења „све у једном“. А чешће је чак и обрнуто: само извештавање, али скупље од целе платформе и лошијег квалитета.
  8. Обрасци за штампање. Па, користите .НЕТ да решите проблем слања платних листића у ПДФ-у запосленима путем е-поште. А сада задатак штампања фактура. Шта је са чувањем њихових копија у истом ПДФ-у? За 1Ц надимак, излаз било ког изгледа у ПДФ је +1 ред кода. То значи + 40 секунди радног времена, уместо дана или недеља на другом језику. Изгледи штампаних образаца у 1Ц су невероватно лаки за развој и довољно моћни да се такмиче са плаћеним колегама. Да, вероватно, нема много интерактивних могућности у 1Ц табеларним документима, не можете брзо добити 3Д дијаграм са скалирањем помоћу ОпенГЛ-а. Али да ли је то заиста неопходно?

Ово је само неколико примера где се ограничавање функционалности или примена компромиса испоставља као важна архитектонска корист у будућности. Чак и компромис или не најефикаснија опција - већ је у кутији и подразумева се. Његова самостална имплементација ће бити или немогућа (јер се такве одлуке морају донети на почетку пројекта, а за то нема времена, а архитекта уопште нема), или неколико скупих итерација. У свакој од наведених тачака (а ово није потпуна листа архитектонских решења) можете зезнути и увести ограничења која блокирају скалирање. У сваком случају, ви, као бизнисмен, морате да будете сигурни да ваши програмери, када праве „систем од нуле“, имају равне руке и да ће одмах добро решити суптилне системске проблеме.

Да, као иу сваком другом сложеном систему, сам 1Ц такође има решења која блокирају скалирање у одређеним аспектима. Међутим, понављам, на основу комбинације фактора, цене власништва и броја унапред решених проблема, не видим достојног конкурента на тржишту. За исту цену добијате оквир финансијске апликације, кластеризовани балансирани сервер, са корисничким интерфејсом и веб интерфејсом, са мобилном апликацијом, са извештавањем, интеграцијом и гомилом других ствари. У свету Јава-а, ангажујете фронт-енд и бацк-енд тим, отклањате грешке ниског нивоа кода кода сервера писаног код куће и посебно плаћате 2 мобилне апликације за 2 мобилна ОС.

Не кажем да ће 1Ц решити све случајеве, али за интерну корпоративну апликацију, када нема потребе за брендирањем корисничког интерфејса - шта је још потребно?

Летите у масти

Вероватно сте стекли утисак да ће 1Ц спасити свет и да су сви други начини писања корпоративних система погрешни. То уопште није тако. Са тачке гледишта бизнисмена, ако изаберете 1Ц, онда поред брзог времена за стављање на тржиште, морате узети у обзир и следеће недостатке:

  • Поузданост сервера. Потребни су заиста квалитетни стручњаци који могу да обезбеде његов несметан рад. Не знам за готов програм обуке за такве стручњаке од продавца. Постоје курсеви за припрему за стручни испит, али то, по мом мишљењу, није довољно.
  • Подршка. Види претходну тачку. Да бисте имали подршку од продавца, морате га купити. Из неког разлога ово није прихваћено у 1Ц индустрији. А са САП-ом, то је готово обавезна куповина и никоме не смета. Без корпоративне подршке и без стручњака за особље, можете остати сами са 1Ц грешкама.
  • Ипак, са 1Ц не можете учинити апсолутно све. Ово је алат и као и сваки алат има границе применљивости. У 1Ц пејзажу, веома је пожељно имати архитекту система који није 1Ц.
  • Добри 1Ц надимци нису јефтинији од добрих програмера на другим језицима. Мада, лоши програмери су скупи за запошљавање, без обзира на језик на ком пишу.

Хајде да ставимо тачке

  • 1Ц је оквир за брзи развој апликација (РАД) за пословање и прилагођен је за то.
  • Трослојна веза са подршком за главне ДБМС-ове, кориснички интерфејс клијента, веома добар ОРМ и извештавање
  • Широке могућности за интеграцију са системима који могу да ураде оно што 1Ц не може. Ако желите машинско учење, узмите Питхон и пошаљите резултат у 1Ц преко хттп или РаббитМК
  • Нема потребе да се трудите да радите све користећи 1Ц, морате разумети његове предности и користити их за своје потребе
  • Програмерима који гравитирају ка копању по гаџетама технолошког оквира и редизајнирању сваких Н година на нови мотор досадио је 1Ц. Тамо је све врло конзервативно.
  • Програмерима је такође досадно јер је произвођач врло мало забринут за њих. Досадан језик, слаб ИДЕ. Они захтевају модернизацију.
  • С друге стране, програмери који се не могу забавити коришћењем и учењем друге технологије у којој уживају су лоши програмери. Они ће кукати и прећи у други екосистем.
  • Послодавци који не дозвољавају својим 1Ц надимцима да напишу нешто на Питхон-у су лоши послодавци. Они ће изгубити запослене радозналог ума, а на њихово место доћи ће мајмуни кодери који ће, док се слажу са свиме, одвући корпоративни софтвер у мочвару. Још ће морати да се препише, па би можда било боље да мало раније уложиш у Пајтон?
  • 1Ц је комерцијална компанија и имплементира функције искључиво на основу сопствених интереса и сврсисходности. Не можете је кривити за ово, посао мора мислити на профит, то је живот
  • 1Ц зарађује новац продајом решења за пословне проблеме, а не за Васјине програмерске проблеме. Ова два концепта су у корелацији, али приоритет је управо оно што сам рекао. Када програмер Васиа буде спреман да плати личну лиценцу за 1Ц: Ресхарпер, појавиће се прилично брзо, „Ресхарпер“ А. Орефкова је доказ за то. Ако би га продавац подржавао, а не би се борио против тога, појавило би се тржиште софтвера за програмере. Сада на овом тржишту има један и по играча са упитним резултатима, а све зато што је интеграција са ИДЕ негативна и све се ради на штакама.
  • Пракса руковаоца са више машина ће нестати у заборав. Модерне апликације су превелике да би се запамтиле и са стране кода и са стране пословне употребе. 1Ц сервер такође постаје све сложенији, биће немогуће држати све врсте стручности у једном запосленом. То би требало да подразумева потражњу за специјалистима, што значи привлачност професије 1Ц и повећање плата. Ако је раније Васја радио три у једном за једну плату, сада морате да запослите два Васја и конкуренција међу Васјама може да подстакне укупан раст њиховог нивоа.

Закључак

1Ц је веома вредан производ. У мом ценовном рангу, уопште не знам никакве аналоге, напишите у коментарима ако их има. Међутим, одлив програмера из екосистема је све приметан, а то је „одлив мозгова“, како год гледали. Индустрија је гладна модернизације.
Ако сте програмер, немојте се везати за 1Ц и немојте мислити да је све магично на другим језицима. Док си јуниор, можда. Чим нешто веће треба да се решава, готова решења ће морати да се траже дуже и интензивније довршавају. Што се тиче квалитета „блокова“ од којих се може изградити решење, 1Ц је веома, веома добар.

И још нешто - ако вам 1Ц надимак дође да га запослите, онда се 1Ц надимак може безбедно поставити на позицију водећих аналитичара. Њихово разумевање задатка, предметне области и вештине декомпозиције је одлично. Сигуран сам да је то управо због присилне употребе ДДД-а у развоју 1Ц. Особа је оспособљена да пре свега размишља о значењу задатка, о везама између објеката предметне области, а истовремено има техничку подлогу у технологијама интеграције и форматима размене података.

Будите свесни да идеалан оквир не постоји и водите рачуна о себи.
Добро свима!

ПС: хвала вам пуно спешуриц за помоћ у припреми чланка.

Само регистровани корисници могу учествовати у анкети. Пријавите се, Добродошао си.

Да ли имате 1Ц у свом предузећу?

  • 100%Никако.71

  • 100%Има, али само у рачуноводству негде. Основни системи на другим платформама162

  • 100%Да, главни пословни процеси раде на томе221

  • 100%1Ц мора да умре, будућност припада %тецхнологи_наме%80

534 корисника је гласало. 99 корисника је било уздржано.

Извор: ввв.хабр.цом

Додај коментар