1C - خیر و شر. ترتیب نقاط در هولیوارها در حدود 1C

1C - خیر و شر. ترتیب نقاط در هولیوارها در حدود 1C

دوستان و همکاران، اخیراً مقالات مکرر در مورد Habré با نفرت نسبت به 1C به عنوان یک پلت فرم توسعه و سخنرانی های مدافعان آن منتشر شده است. این مقالات یک مشکل جدی را شناسایی کردند: اغلب منتقدان 1C از موضع "تسلط نداشتن به آن" انتقاد می کنند، مشکلاتی را که عملاً به راحتی حل می شوند سرزنش می کنند و برعکس، به مشکلاتی که واقعاً مهم و ارزشمند هستند دست نمی زنند. بحث می کنند و توسط فروشنده حل نمی شوند. من معتقدم انجام یک بررسی هوشیار و متعادل از پلت فرم 1C منطقی است. چه کاری می تواند انجام دهد، چه کاری نمی تواند انجام دهد، چه کاری باید انجام دهد اما انجام نمی دهد، و برای دسر، آنچه را که با صدای بلند انجام می دهد، و توسعه دهندگان شما در %technology_name% صد سال انجام خواهند داد و آن را دور خواهند انداخت. بیش از یک بودجه سالانه

در نتیجه، شما، به عنوان یک مدیر یا معمار، می توانید درک روشنی از اینکه استفاده از 1C برای شما مفید است و در کجا باید با اتوی داغ سوزانده شود، به دست آورید. به عنوان یک توسعه دهنده در دنیای "غیر 1C"، می توانید ببینید چه چیزی در 1C وجود دارد که باعث سر و صدا می شود. و به عنوان یک توسعه دهنده 1C، می توانید سیستم خود را با اکوسیستم های زبان های دیگر مقایسه کنید و موقعیت خود را در سیستم مختصات توسعه نرم افزار درک کنید.

زیر کات حملات ضخیم زیادی به 1C، به منتقدان 1C، به جاوا، دات نت و به طور کلی ... فن پر است، خوش آمدید!

درباره خودم

تقریباً از سال 2004 با موضوع گفتگو آشنا بودم. من احتمالا از 6 سالگی برنامه نویسی کرده ام، از همان لحظه ای که کتابی در مورد پروفسور فرترن با کمیک هایی در مورد گربه، گنجشک و یک کاترپیلار به دستم رسید. من برنامه هایی را که گربه از روی تصاویر کتاب نوشته بود تجزیه و تحلیل کردم و متوجه شدم که آنها چه کار کرده اند. و بله، من در آن زمان یک کامپیوتر واقعی نداشتم، اما یک نقاشی روی گسترش کتاب وجود داشت و من صادقانه دکمه های کاغذ را فشار دادم و دستوراتی را که از گربه X جاسوسی کرده بودم، وارد کردم.

سپس BK0011 و BASIC در مدرسه، C++ و اسمبلرها در دانشگاه، سپس 1C، و پس از آن خیلی چیزهای دیگر وجود داشت که من برای به خاطر سپردن آنها تنبل هستم. در 15 سال گذشته، من عمدتاً درگیر 1C بودم، نه تنها از نظر کدنویسی، بلکه به طور کلی در 1C. تنظیم وظایف، مدیریت و توسعه در اینجا. در 5 سال گذشته من درگیر فعالیت های مفید اجتماعی از نظر توسعه ابزارهای توسعه و اتوماسیون برای سایر کاربران 1C، نوشتن مقاله و کتاب بوده ام.

بیایید در مورد موضوع بحث تصمیم بگیریم

اول، بیایید تعریف کنیم که در مورد چه چیزی صحبت می کنیم، زیرا حروف "1C" می تواند به معنای چیزهای زیادی باشد. در این مورد، با حروف "1C" منظور ما منحصراً چارچوب توسعه "1C: Enterprise" نسخه مدرن و هشتم است. ما زیاد در مورد سازنده و سیاست های آن صحبت نخواهیم کرد (اما باید کمی انجام دهیم) ما در مورد برنامه های کاربردی خاصی که با استفاده از این چارچوب نوشته شده اند صحبت نمی کنیم. فناوری مجزا است، برنامه‌های کاربردی که پیکربندی‌ها نیز نامیده می‌شوند جدا هستند.

معماری سطح بالا 1C: سازمانی

بی جهت نیست که من کلمه "چارچوب" را ذکر می کنم. از دیدگاه توسعه دهندگان، پلتفرم 1C دقیقاً یک چارچوب است. و باید دقیقاً مانند یک چارچوب با آن رفتار کنید. آن را به عنوان Spring یا ASP.NET در نظر بگیرید که توسط مقداری زمان اجرا (به ترتیب JVM یا CLR) اجرا می شود. این اتفاق می افتد که در دنیای برنامه نویسی مرسوم ("نه 1C")، تقسیم به چارچوب ها، ماشین های مجازی و برنامه های خاص طبیعی است، زیرا این اجزا معمولا توسط تولید کنندگان مختلف توسعه می یابند. در دنیای 1C، مرسوم نیست که به صراحت چارچوب توسعه و زمان اجرا را از هم متمایز کنیم؛ علاوه بر این، برنامه های خاص نوشته شده با استفاده از فریم ورک نیز عمدتاً توسط خود 1C توسعه می یابند. در نتیجه، برخی سردرگمی ها ایجاد می شود. بنابراین، در چارچوب مقاله، ما باید 1C را از چند طرف به طور همزمان در نظر بگیریم و آن را در چندین محور مختصات طبقه بندی کنیم. و در هر محور مختصات یک بیل از ماده قهوه ای قرار می دهیم و به ویژگی ها، مزایا و معایب محلول موجود نگاه می کنیم.

نقطه نظر در 1C

1C برای خریدار

خریدار یک سیستم اتوماسیون را خریداری می کند که با آن می تواند به سرعت مشکلات اتوماسیون کسب و کار خود را حل کند. یک کسب و کار می تواند یک غرفه کوچک باشد یا می تواند یک شرکت هلدینگ بزرگ باشد. واضح است که نیازهای این مشاغل متفاوت است، اما هر دو توسط یک پایه کد پلت فرم واحد پشتیبانی می شوند.

برای خریدار 1C این یک زمان سریع برای ورود به بازار است. سریع. سریعتر از جاوا، سی شارپ یا JS. میانگین. اطراف بیمارستان واضح است که یک وب سایت کارت ویزیت با استفاده از React بهتر خواهد بود، اما باطن یک سیستم WMS سریعتر در 1C راه اندازی می شود.

1C به عنوان یک ابزار

هر راه حل تکنولوژیکی محدودیت هایی برای کاربرد دارد. 1C یک زبان همه منظوره نیست، جدا از چارچوب خود زندگی نمی کند. توصیه می شود در صورت نیاز از 1C استفاده کنید:

  • برنامه سرور
  • برنامه ای که در آن امور مالی ظاهر می شود
  • با UI آماده، ORM، گزارش، XML/JSON/COM/PDF/YourDataTransferingFormat
  • با پشتیبانی از فرآیندهای پس زمینه و مشاغل
  • با امنیت مبتنی بر نقش
  • با منطق تجاری قابل اسکریپت
  • با قابلیت ایجاد سریع نمونه اولیه و زمان کم برای عرضه به بازار

اگر می خواهید به 1C نیاز ندارید:

  • فراگیری ماشین
  • محاسبات GPU
  • گرافیک کامپیوتری
  • محاسبات ریاضی
  • سیستم CAD
  • پردازش سیگنال (صوت، ویدئو)
  • بارگذاری تماس های http با صدها هزار rps

1C به عنوان یک شرکت تولیدی

ارزش درک این را دارد که تجارت 1C به عنوان یک تولید کننده نرم افزار چیست. شرکت 1C راه حل هایی را برای مشکلات تجاری از طریق اتوماسیون می فروشد. مشاغل مختلف، بزرگ یا کوچک، اما این چیزی است که او می فروشد. ابزار دستیابی به این هدف، کاربردهای تجاری است. برای حسابداری، حسابداری حقوق و دستمزد و... برای نوشتن این اپلیکیشن ها، این شرکت از پلتفرم توسعه اپلیکیشن های تجاری خود استفاده می کند. به‌ویژه برای وظایف رایج همین برنامه‌های تجاری طراحی شده است:

  • حسابداری مالی
  • سفارشی سازی آسان منطق کسب و کار
  • امکان ادغام گسترده در مناظر ناهمگن فناوری اطلاعات

به عنوان یک سازنده، 1C معتقد است که این استراتژی است که به شما امکان می دهد با شرکا و مشتریان در حالت برد-برد کار کنید. شما می توانید با این بحث کنید، اما این تقریباً همان روشی است که شرکت خود را تبلیغ می کند: راه حل های آماده برای مشکلات تجاری که می توانند به سرعت توسط شرکا سفارشی شوند و در هر چشم انداز فناوری اطلاعات ادغام شوند.

تمام ادعاها یا خواسته ها برای 1C به عنوان یک چارچوب باید منحصراً از طریق این منشور مشاهده شود. توسعه دهندگان می گویند: "ما OOP را در 1C می خواهیم." 1C می‌گوید: «حمایت از OOP در پلتفرم چقدر هزینه دارد، آیا این به ما کمک می‌کند فروش جعبه‌ها را افزایش دهیم؟» "منشور" خود را در فروش راه حل برای مشکلات تجاری باز می کند:

- هی، کسب و کار، آیا OOP را در 1C خود می خواهید؟
- آیا این به من کمک می کند تا مشکلاتم را حل کنم؟
- کی میدونه...
- پس نیازی نیست

این رویکرد بسته به اینکه چه کسی به آن نگاه می‌کند، می‌تواند خوب یا بد باشد، اما همین‌طور است. صحبت در مورد این واقعیت است که هیچ ویژگی X در 1C وجود ندارد، باید بدانید که به دلیل وجود ندارد، بلکه در زمینه انتخاب "هزینه اجرا در مقابل مقدار سود" وجود دارد.

طبقه بندی تکنولوژیکی

"در واقع، Odinesniks تمام تلاش خود را می کند تا از بهترین الگوها استفاده کند، که با دقت توسط روش شناسان دلسوز و توسعه دهندگان پلت فرم 1C انتخاب شده اند.
وقتی کد احمقانه خود را برای یک فرم مدیریت شده ساده می نویسید، در واقع از آن استفاده می کنید مدل-نما-کنترلر с اتصال داده دو طرفه в موتور اپلیکیشن سه لایه داده، طعم دار نگاشت رابطه شی سطح بالا روی پایه توضیحات فراداده اعلامیخود را دارد زبان پرس و جو مستقل از پلتفرم، C رابط کاربری اعلامی مبتنی بر داده، سریال سازی شفاف کامل و زبان برنامه دامنه محور.

تفاوت توسعه دهندگان 1C با همکاران غربی خود در روابط عمومی است. آن‌ها دوست دارند به هر مزخرفی یک اسم بزرگ بدهند و مثل یک کیسه کثیف با آن بدورند.»
A. Orefkov

پلت فرم 1C دارای معماری کلاسیک 3 لایه است که در مرکز آن سرور برنامه (یا شبیه سازی آن برای پول کمی برای مغازه داران کوچک) قرار دارد. از MS SQL یا Postgres به عنوان DBMS استفاده می شود. همچنین از Oracle و IBM DB2 پشتیبانی می‌شود، اما این کاملاً باطنی است؛ هیچ‌کس نمی‌داند اگر 1C را در این پایگاه‌های داده تحت بار متوسط ​​و زیاد پیاده‌سازی کنید، چه اتفاقی می‌افتد. من معتقدم که خود 1C این را نمی داند.

بخش کلاینت یا یک تین کلاینت نصب شده بر روی ماشین کاربر یا یک سرویس گیرنده وب است. ویژگی کلیدی این است که برنامه نویسان 2 کد مختلف نمی نویسند، آنها یک برنامه را به یک زبان می نویسند و در صورت تمایل یا نیاز می توانید آن را در مرورگر نمایش دهید. چه کسی در آنجا یک فول استک واقعی و یک زبان واحد برای قسمت جلویی و باطن، node.js می‌خواست؟ آنها هرگز نتوانستند دقیقاً همان کار را تا پایان انجام دهند. یک پشته کامل واقعی وجود دارد، اما شما باید آن را در 1C بنویسید. طنز سرنوشت، اینجور چیزا :)

راه حل ابری SaaS 1C:Fresh همچنین در حالت مرورگر کار می کند، که در آن نمی توانید 1C بخرید، اما یک پایگاه داده کوچک اجاره کنید و فروش شاورما را در آنجا پیگیری کنید. فقط در مرورگر، بدون نصب یا پیکربندی چیزی.

علاوه بر این، یک مشتری قدیمی وجود دارد که در 1C به آن "برنامه معمولی" می گویند. Legacy یک میراث است، به دنیای برنامه های کاربردی در سال 2002 خوش آمدید، اما ما هنوز در مورد وضعیت فعلی اکوسیستم صحبت می کنیم.

بخش سرور 1C از خوشه بندی و مقیاس بندی با افزودن ماشین های جدید به خوشه پشتیبانی می کند. نسخه های بسیار زیادی در اینجا شکسته شده است و در این مقاله بخش جداگانه ای در این مورد وجود خواهد داشت. به طور خلاصه، این کاملاً مشابه اضافه کردن چند نمونه دقیقاً مشابه در پشت HAProxy نیست.

چارچوب توسعه برنامه از زبان برنامه نویسی خود استفاده می کند که تقریباً شبیه یک VB6 کمی بهبود یافته است که به روسی ترجمه شده است. برای افرادی که از همه چیز روسی متنفرند، و باور ندارند که "اگر" به "اگر" ترجمه شده است، گزینه نحو دوم ارائه می شود. آن ها در صورت تمایل می توانید آن را در 1C طوری بنویسید که از VB قابل تشخیص نباشد.

1C - خیر و شر. ترتیب نقاط در هولیوارها در حدود 1C

همین زبان برنامه نویسی دلیل اصلی نفرت نام مستعار 1C نسبت به پلتفرم خود است. بگذریم، نه بی دلیل. این زبان به ساده ترین شکل ممکن تصور شد و برای تحقق شعار "توسعه دهندگان، توسعه دهندگان" در مقیاسی حداقل در کشورهای مستقل مشترک المنافع طراحی شد. به نظر من ماهیت تجاری چنین راه حلی به وضوح قابل مشاهده است: توسعه دهندگان بیشتر، پوشش بازار بیشتر. طبق برآوردهای مختلف از 45٪ تا 95٪، این به حقیقت پیوست. من فوراً می گویم که نوشتن به زبانی که فکر می کنید واقعاً ساده تر است. و زبان های برنامه نویسی زیادی بلدم.

بیایید با زبان شروع کنیم.

زبان برنامه نویسی 1C

در عین حال نقطه قوت و ضعف سیستم. ورود آسان و خوانایی را فراهم می کند. از طرفی از زمان انتشار نسخه 8 در سال 2002 به روز رسانی نشده و از نظر اخلاقی قدیمی است. کسی خواهد گفت "اشکال اصلی این است که OOP وجود ندارد" و آنها اشتباه خواهند کرد. اولا، ساف نه تنها نورالیف، بلکه توروالدز را نیز دوست ندارد. و ثانیا، OOP هنوز وجود دارد.

از دیدگاه توسعه دهنده، او چارچوبی با کلاس های پایه نمایش داده شده در DBMS در اختیار دارد. توسعه دهنده می تواند کلاس پایه "Directory" را بگیرد و دایرکتوری "Clients" را از آن به ارث ببرد. می تواند فیلدهای کلاس جدیدی را به آن اضافه کند، به عنوان مثال، INN و Address، و همچنین، در صورت لزوم، می تواند متدهای کلاس پایه، به عنوان مثال، متد OnWrite/AtRecord را نادیده بگیرد.

چارچوب به گونه ای طراحی شده است که به ندرت به وراثت عمیق تر نیاز است و به نظر من محدودیت در OOP منطقی است. 1C روی Domain Driven Development تمرکز می کند و باعث می شود قبل از هر چیز در مورد حوزه موضوعی راه حل در حال توسعه فکر کنید و این خوب است. نه تنها هیچ وسوسه ای وجود ندارد، بلکه نیازی به نوشتن 10 DTO و ViewModel های مختلف نیست تا برخی از داده ها را از دامنه در جایی نشان دهید. توسعه‌دهنده 1C همیشه با یک موجودیت کار می‌کند، بدون اینکه زمینه ادراک را با ده‌ها کلاس با نام‌های مشابه، که همان موجودیت را نشان می‌دهند، درهم و برهم بزند، اما از سمتی متفاوت. به عنوان مثال، هر برنامه دات نت لزوماً حاوی پنج یا دو ViewModel و DTO برای سریال سازی به JSON و انتقال داده از مشتری به سرور است. و تقریباً 10-15٪ از کد برنامه شما صرف انتقال داده ها از یک کلاس به کلاس دیگر با استفاده از قلم یا عصا مانند AutoMapper می شود. این کد باید نوشته شود و برای ایجاد و نگهداری آن به برنامه نویسان پول پرداخت شود.

به نظر می رسد که توسعه زبان 1C بدون پیچیده کردن آن به سطح زبان های رایج دشوار است، بنابراین مزیت سادگی را از دست می دهد. تکلیف فروشنده اساساً در حال حل شدن است: ارائه یک راه حل استاندارد که هر دانش آموزی که در خیابان گرفتار می شود می تواند با سطح کیفی مورد نیاز آن را سفارشی کند (یعنی پوشش موردی از یک غرفه تا یک کارخانه بزرگ تکمیل شده است). اگر دکه هستید، دانش آموز بگیرید، اگر کارخانه هستید، از شریک اجراکننده خود یک گورو بگیرید. این واقعیت که شرکای اجرا کننده دانش آموزان را به قیمت یک استاد می فروشند مشکلی با چارچوب نیست. از لحاظ معماری، چارچوب باید مشکلات هر دو را حل کند، کد تنظیمات استاندارد (که با وعده سفارشی‌سازی به کسب‌وکارها فروخته‌ایم) باید برای یک دانش‌آموز قابل درک باشد، و یک معلم باید بتواند هر چیزی را که می‌خواهید بفهمد.

چیزی که به نظر من واقعاً در زبان کم است، چیزی که شما را مجبور می کند بیشتر از آنچه می توانید بنویسید، چیزی است که زمان پرداخت شده توسط مشتری را تلف می کند.

  • امکان تایپ در سطح، به عنوان مثال، TypeScript (در نتیجه، ابزارهای تجزیه و تحلیل کد توسعه یافته تر در IDE، refactoring، کاهش تعداد دفعات توهین آمیز)
    در دسترس بودن توابع به عنوان اشیاء درجه یک. یک مفهوم کمی پیچیده تر، اما مقدار کد معمولی دیگ بخار را می توان تا حد زیادی کاهش داد. درک دانش آموز از کد، IMHO، حتی به دلیل کاهش حجم افزایش می یابد
  • کلمات کلکسیون جهانی، مقداردهی اولیه. همان چیزی است - کاهش مقدار کدی که باید نوشته شود و/یا با چشمان خود به آن نگاه کنید. پر کردن مجموعه ها بیش از 9000 درصد از زمان برنامه نویسی 1C را به خود اختصاص می دهد. نوشتن این بدون قند نحوی طولانی، پرهزینه و مستعد خطا است. به طور کلی، مقدار LOC در راه‌حل‌های 1C در مقایسه با چارچوب‌های باز موجود و به طور کلی، مجموع همه جاواهای سازمانی شما از تمام محدودیت‌های قابل تصور فراتر می‌رود. زبان پرمخاطب است، و این به مقدار داده، حافظه، ترمزهای IDE، زمان، پول و ... تبدیل می شود.
  • در نهایت ساخت و سازها من این فرضیه را دارم که این ساخت و ساز به دلیل اینکه ترجمه موفقی از آن به روسی پیدا نکردند گم شده است :)
  • انواع داده های خود (بدون OOP)، آنالوگ های Type از VB6. این به شما این امکان را می دهد که ساختارها را با استفاده از نظرات در BSP و روش های جادویی که این ساختارها را می سازند تایپ نکنید. ما دریافت می کنیم: کد کمتر، یک اشاره از طریق یک نقطه، راه حل سریع تر برای مشکل، خطاهای کمتر به دلیل اشتباهات تایپی و ویژگی های از دست رفته ساختارها. اکنون تایپ ساختارهای کاربر کاملاً بر عهده تیم توسعه کتابخانه زیرسیستم استاندارد است که به اعتبار خود، نظراتی را در مورد ویژگی‌های مورد انتظار ساختارهای پارامتر تصویب شده می‌نویسد.
  • هنگام کار با تماس‌های ناهمزمان روی کلاینت وب، بدون شکر. callback-hell در قالب ProcessingNotifications یک عصا موقت است که به دلیل تغییر ناگهانی در API مرورگرهای اصلی ایجاد می شود، اما شما نمی توانید همیشه به این شکل زندگی کنید؛ مزیت "درک دانش آموزان" از کدهای ناهمزمان در حال از بین رفتن است. بیشتر و بیشتر. هیچ پشتیبانی برای این پارادایم در IDE اصلی اضافه نکنید و اوضاع بدتر می شود.

این یکی از مشکلات اساسی است، واضح است که لیست می تواند بسیار بزرگتر باشد، اما نباید فراموش کنیم که این یک زبان همه منظوره نیست، نیازی به چند رشته، عملکردهای لامبدا، دسترسی به GPU و سریع ندارد. محاسبات ممیز شناور این یک زبان برنامه نویسی منطق تجاری است.

برنامه نویسی که قبلاً زیاد با این زبان کار کرده است، به js یا c# نگاه می کند، در چارچوب این زبان خسته می شود. این یک واقعیت است. او نیاز به توسعه دارد. در طرف دیگر مقیاس برای فروشنده، هزینه اجرای ویژگی های مشخص شده در مقابل افزایش درآمد پس از اجرای آنها است. در اینجا من هیچ اطلاعاتی در مورد آنچه که در حال حاضر از نظر شرکت بیشتر است ندارم.

محیط توسعه

اینجا هم اوضاع به آرامی پیش نمی رود. دو محیط توسعه وجود دارد. اولین مورد پیکربندی موجود در تحویل است. دوم محیط Enterprise Development Tools یا به اختصار EDT است که بر اساس Eclipse توسعه یافته است.

پیکربندی کننده طیف کاملی از وظایف توسعه را فراهم می کند، از همه ویژگی ها پشتیبانی می کند و محیط اصلی در بازار است. همچنین از نظر اخلاقی منسوخ است ، طبق شایعات - به دلیل میزان بدهی فنی درون خود - در حال توسعه نیست. وضعیت را می توان با باز کردن یک API داخلی (به شکل دوستی با آدم برفی A. Orefkova یا بر اساس مستقل)، اما این مورد نیست. تمرین نشان داده است که تا زمانی که فروشنده مداخله نکند، جامعه ویژگی های خود را در IDE می نویسد. اما آنچه را که داریم داریم. پیکربندی در سال های 2004-2005 عالی بود، بسیار یادآور ویژوال استودیو آن زمان ها بود، در برخی جاها حتی سردتر بود، اما در آن زمان ها گیر کرده بود.

علاوه بر این، حجم راه حل استاندارد متوسط ​​از آن زمان چندین بار افزایش یافته است و امروزه IDE به سادگی نمی تواند با مقدار کدی که با آن تغذیه می شود کنار بیاید. قابلیت استفاده و refactoring حتی صفر نیست، آنها در قرمز هستند. همه اینها شور و شوقی را به توسعه دهندگان اضافه نمی کند و آنها رویای رفتن به اکوسیستم های دیگر و ادامه کدنویسی شیت در آنجا را در سر می پرورانند، اما در محیطی دلپذیر که با رفتار خود به صورت شما تف نمی دهد.

به عنوان یک جایگزین، یک IDE نوشته شده از ابتدا، ساخته شده بر روی Eclipse، ارائه شده است. در آنجا، منابع، مانند هر نرم افزار دیگری، به صورت فایل های متنی زندگی می کنند، در GIT ذخیره می شوند، شاخه های درخواستی، همه اینها. از جنبه منفی، اکنون چندین سال است که وضعیت بتا را ترک نکرده است، اگرچه با هر انتشار بهتر می شود. من در مورد معایب EDT نمی نویسم، امروز یک منهای است، فردا یک ویژگی ثابت است. ارتباط چنین توصیفی به سرعت محو خواهد شد. امروزه امکان توسعه در EDT وجود دارد، اما غیرعادی است؛ شما باید برای تعداد معینی از اشکالات IDE آماده باشید.

اگر از طریق "منشور 1C" فوق الذکر به وضعیت نگاه کنید، چیزی شبیه به این دریافت می کنید: انتشار IDE جدید فروش جعبه ها را افزایش نمی دهد، اما ممکن است خروج DEVELOPERS کاهش یابد. گفتن اینکه چه چیزی در انتظار اکوسیستم از نظر راحتی توسعه دهندگان است دشوار است، اما مایکروسافت قبلاً توسعه دهندگان تلفن همراه را با ارائه خدمات خود با تاخیر بسیار به آنها خراب کرده است.

مدیریت توسعه

همه چیز در اینجا به طور قابل توجهی بهتر از نوشتن کد است، به خصوص اخیرا، زمانی که تلاش های جامعه مشکلات اتوماسیون مدیریت را آشکار کرد، نمونه های اولیه راه اندازی شد که خواستار پرتاب مخزن 1C به سطل زباله و استفاده از git، سرزنش سریع، بررسی کد هستند. ، تجزیه و تحلیل استاتیک، استقرار خودکار و غیره ویژگی های زیادی به پلتفرم اضافه شده است که سطح اتوماسیون وظایف توسعه را افزایش می دهد. با این حال، همه این ویژگی‌ها تنها و منحصراً برای توسعه محصولات بزرگ خودمان اضافه شدند، زمانی که آشکار شد که بدون اتوماسیون نمی‌توانیم کار کنیم. ادغام خودکار، مقایسه سه طرفه با KDiff و همه اینها وجود داشت. در Github راه اندازی شد gitconverter، که صادقانه بگویم، از نظر ایدئولوژیک از پروژه دور شد gitsync، اما برای مطابقت با فرآیندهای شرکت فروشنده اصلاح شده است. به لطف افراد سرسخت منبع باز، اتوماسیون توسعه در 1C شروع به کار کرد. یک API باز برای پیکربندی، IMHO، عقب ماندگی اخلاقی IDE اصلی را نیز تغییر می‌دهد.

امروزه، ذخیره منابع 1C در git با تعهدات مرتبط با مسائل در Jira، بررسی ها در Crucible، دکمه فشاری Jenkins و Allure در مورد آزمایش کد در 1C و حتی گزارش می دهند. تجزیه و تحلیل استاتیک در SonarQube - این دور از اخبار است، اما در شرکت هایی که توسعه 1C زیادی وجود دارد، جریان اصلی است.

اداره

اینجا چیزهای زیادی برای گفتن وجود دارد. در مرحله اول، این، البته، یک سرور (خوشه سرور 1C) است. یک چیز فوق العاده است، اما به دلیل این واقعیت که این یک جعبه کاملا سیاه است که با جزئیات کافی مستند شده است، اما به روشی خاص - تسلط بر راه اندازی عملیات بدون وقفه در حالت بارگذاری بالا در چندین سرور، تعداد معدودی منتخب است که یک مدال با کتیبه "کارشناس مسائل فناوری". شایان ذکر است که اصولاً مدیریت سرور 1C با مدیریت سرورهای دیگر تفاوتی ندارد. این یک برنامه مبتنی بر شبکه و چند رشته ای است که حافظه، CPU و منابع دیسک را مصرف می کند. فرصت های زیادی را برای جمع آوری و تشخیص تله متری فراهم می کند.

مشکل اینجاست که فروشنده هیچ چیز خاصی از نظر راه حل های آماده برای این تشخیصی ارائه نمی دهد. بله، 1C: Instrumentation and Control Center وجود دارد، حتی بسیار خوب هستند، اما بسیار گران هستند و همه آنها را ندارند. تعدادی پیشرفت در جامعه برای اتصال Grafana، Zabbix، ELK و موارد دیگر از مجموعه مدیریت استاندارد وجود دارد، اما هیچ راه حل واحدی وجود ندارد که برای اکثریت مناسب باشد. کار در انتظار قهرمان خود است. و اگر کسب‌وکاری هستید که قصد راه‌اندازی در کلاستر 1C را دارید، به یک متخصص نیاز دارید. خودت از درون یا از بیرون، اما به آن نیاز داری. طبیعی است که یک نقش جداگانه با صلاحیت ها برای عملکرد سرور وجود دارد، هر کاربر 1C نباید این را بداند، فقط باید درک کنید که چنین نقشی مورد نیاز است. بیایید به عنوان مثال SAP را در نظر بگیریم. در آنجا، یک برنامه نویس، به احتمال زیاد، اگر از او خواسته شود چیزی را در سرور برنامه پیکربندی کند، حتی از روی صندلی خود بلند نمی شود. او ممکن است فقط احمق باشد و شرمنده نباشد. در روش SAP یک نقش کارمند جداگانه برای این وجود دارد. به دلایلی، در صنعت 1C اعتقاد بر این است که این باید در یک کارمند با همان حقوق ترکیب شود. این یک توهم است.

معایب سرور 1C

دقیقا یک منهای وجود دارد - قابلیت اطمینان. یا اگر ترجیح می دهید غیرقابل پیش بینی بودن. رفتارهای عجیب و غریب ناگهانی سرور در حال حاضر به بحث شهر تبدیل شده است. یک راه حل جهانی - توقف سرور و پاک کردن تمام حافظه های پنهان - حتی در کتابچه راهنمای متخصص توضیح داده شده است، و حتی یک کتاب دسته ای توصیه می شود که این کار را انجام دهد. اگر سیستم 1C شما شروع به انجام کاری کرد که حتی از نظر تئوری هم نباید انجام دهد، وقت آن رسیده است که حافظه پنهان جلسه را پاک کنید. طبق برآورد من، تنها سه نفر در کل کشور هستند که می دانند چگونه یک سرور 1C را بدون این روش کار کنند و اسرار را به اشتراک نمی گذارند، زیرا ... آنها از این زندگی می کنند. شاید راز آنها این است که داده های جلسه را پاک می کنند، اما به کسی در مورد آن چیزی نمی گویند، دوست.

در غیر این صورت، سرور 1C همان برنامه کاربردی دیگری است و تقریباً به همان روش، با خواندن اسناد و ضربه زدن به تنبور مدیریت می شود.

کارگر بارانداز

سودمندی استفاده از سرور 1C کانتینری در تولید هنوز ثابت نشده است. سرور صرفاً با افزودن گره‌ها در پشت متعادل‌کننده خوشه‌بندی نمی‌شود، که مزایای کانتینری‌سازی تولید را به حداقل می‌رساند و عملکرد موفقیت‌آمیز در کانتینرها در حالت بارگذاری بالا ثابت نشده است. در نتیجه، فقط توسعه دهندگان از Docker+1C برای راه اندازی محیط های آزمایشی استفاده می کنند. در آنجا بسیار مفید است ، کاربردی است ، به شما امکان می دهد با فناوری های مدرن بازی کنید و از ناامیدی پیکربندی استراحت کنید.

جزء تجاری

از نقطه نظر سرمایه گذاری، 1C به شما امکان می دهد مشکل راه اندازی سریع ایده های تجاری را به دلیل قابلیت های گسترده کلاس های برنامه حل کنید. 1C خارج از جعبه گزارش بسیار مناسبی را ارائه می دهد، ادغام با هر چیزی، مشتری وب، سرویس گیرنده تلفن همراه، برنامه تلفن همراه، پشتیبانی از DBMS های مختلف، از جمله. رایگان، کراس پلتفرم هر دو بخش سرور و سرویس گیرنده نصب شده. بله، رابط کاربری برنامه ها زرد خواهد بود، گاهی اوقات این یک منفی است، اما نه همیشه.
با انتخاب 1C، یک کسب‌وکار مجموعه‌ای از راه‌حل‌های نرم‌افزاری را دریافت می‌کند که به آن‌ها اجازه می‌دهد طیف بسیار گسترده‌ای از برنامه‌ها را بسازند، همچنین بسیاری از توسعه‌دهندگان در بازار که پول کمتری نسبت به جاوایست‌ها می‌خواهند و در عین حال سریع‌تر نتیجه می‌دهند.

به عنوان مثال، وظیفه ارسال فاکتور PDF برای مشتری را می توان در یک ساعت کار دانشجویی حل کرد. همین مشکل در دات نت را می توان با خرید یک کتابخانه اختصاصی یا چند روز یا چند هفته کدنویسی توسط یک توسعه دهنده سخت گیر و ریش دار حل کرد. گاهی، هر دو در یک زمان. و بله، من فقط در مورد تولید PDF صحبت می کردم. ما نگفتیم که این لایحه از کجا می آید. وب پیشانی باید فرمی ایجاد کند که اپراتور داده ها را وارد کند، پشتیبان باید مدل های dto را برای انتقال JSON، مدل هایی برای ذخیره سازی در پایگاه داده، ساختار خود پایگاه داده، مهاجرت به آن، تشکیل یک گرافیک ایجاد کند. نمایش همین حساب، و تنها پس از آن - PDF. در 1C، کل کار، از ابتدا، دقیقا در یک ساعت تکمیل می شود.

یک سیستم حسابداری تمام عیار برای یک غرفه کوچک با یک فرآیند تجاری خرید/فروش در 3 ساعت انجام می شود.با گزارش فروش، حسابداری کالا به قیمت خرید و فروش، تفکیک شده بر اساس انبار، کنترل حقوق دسترسی، مشتری وب و اپلیکیشن موبایل . خوب، من در مورد برنامه را فراموش کرده ام، با برنامه نه در 3 ساعت، در شش.

این کار چقدر طول می کشد تا یک توسعه دهنده دات نت از نصب ویژوال استودیو روی یک کامپیوتر تمیز تا نمایش آن به مشتری؟ در مورد هزینه توسعه چطور؟ همین مورد

نقاط قوت 1C به عنوان یک پلت فرم

1C قوی است نه به این دلیل که چیز خاصی در مورد آن وجود دارد که بهترین در جهان است. برعکس، در هر زیرسیستم فردی می توانید آنالوگ جالب تری را در نرم افزارهای دنیا پیدا کنید. با این حال، بر اساس ترکیبی از عوامل، من پلتفرمی مشابه 1C نمی بینم. اینجاست که موفقیت تجاری نهفته است. مزایای پلت فرم در سراسر آن پراکنده است و زمانی که می بینید این کار در سایر پلتفرم ها چگونه انجام می شود به وضوح قابل مشاهده است. اساساً، اینها حتی ویژگی نیستند، بلکه برعکس - رد ویژگی ها به نفع یک پارادایم خاص. چند مثال:

  1. یونیکد. چه چیزی می تواند ساده تر باشد؟ در سال 2019 نیازی به استفاده از کدهای ASCII تک بایتی نیست (به جز ادغام با کدهای قدیمی قدیمی). هرگز. اما نه. به هر حال، شخصی در برخی از جدول ها از یک varchar تک بایتی استفاده می کند و برنامه با رمزگذاری مشکل خواهد داشت. در سال 2015، مجوز LDAP gitlab به دلیل کار نادرست با رمزگذاری‌ها ناموفق بود؛ JetBrains IDE هنوز با سیریلیک در نام فایل‌ها در همه جا کار نمی‌کند. 1C جداسازی با کیفیتی از کد برنامه را از لایه پایگاه داده فراهم می کند. در آنجا تایپ جداول در سطح پایین غیرممکن است و در آنجا جابجایی جوانان نالایق در سطح پایگاه داده غیرممکن است. بله، ممکن است مشکلات دیگری در مورد نوجوانان بی کفایت وجود داشته باشد، اما تنوع مشکلات بسیار کمتر است. اکنون به من خواهید گفت که برنامه شما به درستی طراحی شده است و لایه دسترسی به پایگاه داده همانطور که باید جدا شده است. نگاهی دیگر به برنامه جاوا سفارشی شرکت خود بیندازید. از نزدیک و صادقانه. آیا وجدان شما را آزار می دهد؟ پس من برای شما خوشحالم.
  2. شماره گذاری اسناد/کتاب های مرجع. در 1C قطعا منعطف ترین و بهترین نیست. اما کاری که آنها در نرم افزارهای بانکی و در سیستم های حسابداری خود نوشته انجام می دهند - خوب، این فقط تاریکی است. یا هویت در آن گیر می کند (و سپس "اوه، چرا ما سوراخ داریم")، یا برعکس، آنها یک ژنراتور می سازند که با قفل در سطح DBMS کار می کند (و تبدیل به یک گلوگاه می شود). در واقع، انجام این کار به ظاهر ساده بسیار دشوار است - یک شمارشگر سرتاسر موجودیت ها، با یک بخش منحصر به فرد بر اساس مجموعه خاصی از کلیدها، پیشوند، به طوری که پایگاه داده را در هنگام ورود داده های موازی مسدود نمی کند. .
  3. شناسه رکوردها در پایگاه داده 1C با اراده قوی تصمیم گرفت - همه شناسه های پیوند کاملاً مصنوعی هستند و تمام. و هیچ مشکلی با پایگاه داده های توزیع شده و تبادل وجود ندارد. توسعه‌دهندگان سیستم‌های دیگر سرسختانه چیزی شبیه هویت ایجاد می‌کنند (کوتاه‌تر است!)، آن‌ها را به داخل رابط کاربری گرافیکی می‌کشند تا زمان ایجاد چندین نمونه مرتبط (و سپس کشف شوند). اینو نداری؟ صادقانه؟
  4. لیست ها 1C مکانیسم های کاملاً موفقی برای صفحه بندی در لیست های (بزرگ) و پیمایش در آنها دارد. اجازه دهید فوراً رزرو کنم - با استفاده صحیح از مکانیسم! به طور کلی، موضوع کاملاً ناخوشایند است، نمی توان آن را به طور ایده آل حل کرد: یا بصری و ساده است (اما خطر ثبت رکوردهای بزرگ برای مشتری) یا صفحه بندی یک یا آن کج بودن است. کسانی که پیجینگ را انجام می دهند اغلب این کار را کج انجام می دهند. کسانی که یک اسکرول صادق درست می کنند یک پایگاه داده، یک کانال و یک مشتری اضافه می کنند.
  5. فرم های مدیریت شده بدون شک، در وب کلاینت اینترفیس کاملاً کار نمی کند. اما کار می کند. اما برای بسیاری از سیستم های حسابداری و بانکی دیگر، ایجاد یک محل کار از راه دور یک پروژه در سطح سازمانی است. سلب مسئولیت: خوشبختانه برای کسانی که در ابتدا آن را در وب ساخته اند، این تأثیری نخواهد داشت.
  6. اپلیکیشن موبایل. اخیراً می‌توانید برنامه‌های تلفن همراه را در همان اکوسیستم بنویسید. اینجا کمی پیچیده‌تر از یک کلاینت وب است؛ ویژگی‌های دستگاه‌ها شما را مجبور می‌کند که به‌طور خاص برای آن‌ها بنویسید، اما، با این وجود، تیم جداگانه‌ای از توسعه‌دهندگان موبایل را استخدام نمی‌کنید. اگر به یک برنامه کاربردی برای نیازهای داخلی یک شرکت نیاز دارید (زمانی که یک راه حل تلفن همراه برای یک مشکل شرکتی مهمتر از طراحی رابط کاربری زرد است)، شما به سادگی از همان پلتفرم خارج از جعبه استفاده می کنید.
  7. گزارش نویسی. منظور من از این کلمه یک سیستم BI با داده های بزرگ و تاخیر در فرآیند ETL نیست. این به گزارش های کارکنان عملیاتی اشاره دارد که به شما امکان می دهد وضعیت حسابداری را اینجا و اکنون ارزیابی کنید. ترازها، تسویه حساب های متقابل، درجه بندی مجدد و غیره 1C با یک سیستم گزارش دهی با تنظیمات انعطاف پذیر برای گروه بندی، فیلترها و تجسم در سمت کاربر از جعبه بیرون می آید. بله، آنالوگ های خنک تری در بازار وجود دارد. اما نه در چارچوب یک راه حل همه کاره و با قیمتی که گاهی اوقات بالاتر از یک راه حل همه کاره است. و بیشتر اوقات حتی برعکس است: فقط گزارش، اما گرانتر از کل پلتفرم، و از نظر کیفیت بدتر.
  8. فرم های قابل چاپ خوب، برای حل مشکل ارسال فیش حقوقی به صورت PDF برای کارکنان از طریق ایمیل، از دات نت استفاده کنید. و حالا وظیفه چاپ فاکتور. در مورد ذخیره کپی های آنها در همان پی دی اف چطور؟ برای نام مستعار 1C، خروجی هر طرح بندی به پی دی اف 1+ خط کد است. این به معنای + 40 ثانیه زمان کار، به جای روزها یا هفته ها به زبان دیگر است. طرح‌بندی‌های فرم چاپ شده در 1C به‌طور باورنکردنی آسان هستند و به اندازه کافی قدرتمند هستند تا با همتایان پولی خود رقابت کنند. بله، احتمالاً فرصت‌های تعاملی زیادی در اسناد صفحه‌گسترده 1C وجود ندارد؛ شما نمی‌توانید به سرعت نمودار سه‌بعدی را با مقیاس‌بندی با استفاده از OpenGL دریافت کنید. اما آیا واقعا لازم است؟

اینها تنها نمونه های انگشت شماری هستند که در آن محدود کردن عملکرد یا اجرای مصالحه به یک مزیت مهم معماری در آینده تبدیل می شود. حتی یک سازش یا نه موثرترین گزینه - در حال حاضر در جعبه است و بدیهی است. اجرای مستقل آن یا غیرممکن خواهد بود (چون چنین تصمیماتی باید در ابتدای پروژه گرفته شود و زمانی برای آن وجود ندارد و اصلاً معمار وجود ندارد) یا چندین تکرار پرهزینه. در هر یک از نکات ذکر شده (و این یک لیست کامل از راه حل های معماری نیست)، می توانید محدودیت هایی را ایجاد کنید که مقیاس بندی را مسدود می کند. در هر صورت، شما، به عنوان یک تاجر، باید مطمئن شوید که برنامه نویسان، هنگام ساختن یک «سیستم از ابتدا»، دستان مستقیمی دارند و مسائل ظریف سیستم را فوراً به خوبی انجام خواهند داد.

بله، مانند هر سیستم پیچیده دیگری، خود 1C نیز راه‌حل‌هایی دارد که مقیاس‌پذیری را در جنبه‌های خاصی مسدود می‌کند. با این حال، تکرار می کنم، بر اساس ترکیبی از عوامل، هزینه مالکیت و تعداد مشکلاتی که قبلاً حل شده است، رقیب شایسته ای در بازار نمی بینم. با همان قیمت، یک چارچوب برنامه مالی، یک سرور متعادل خوشه ای، با رابط کاربری و رابط وب، با یک برنامه تلفن همراه، با گزارش، یکپارچه سازی و یکسری موارد دیگر دریافت می کنید. در دنیای جاوا، شما یک تیم فرانت‌اند و بک‌اند استخدام می‌کنید، مجموعه‌ای از کدهای سرور خانگی نوشته‌شده را در سطح پایین اشکال‌زدایی می‌کنید و برای ۲ برنامه تلفن همراه برای ۲ سیستم‌عامل موبایل به‌طور جداگانه پرداخت می‌کنید.

من نمی گویم که 1C همه موارد را حل می کند، اما برای یک برنامه داخلی شرکتی، زمانی که نیازی به مارک UI نیست - چه چیز دیگری لازم است؟

پرواز در پماد

احتمالاً این تصور را دارید که 1C جهان را نجات خواهد داد و سایر روش‌های نوشتن سیستم‌های شرکتی اشتباه هستند. اصلا شبیه به آن نیست. از دیدگاه یک تاجر، اگر 1C را انتخاب کنید، علاوه بر زمان سریع به بازار، باید معایب زیر را نیز در نظر بگیرید:

  • قابلیت اطمینان سرور به متخصصان واقعاً باکیفیتی نیاز است که بتوانند از عملکرد بدون وقفه آن اطمینان حاصل کنند. من از یک برنامه آموزشی آماده برای چنین متخصصانی از فروشنده مطلع نیستم. دوره هایی برای آمادگی برای آزمون Expert وجود دارد، اما به نظر من این کافی نیست.
  • حمایت کردن. نکته قبلی را ببینید. برای داشتن پشتیبانی از فروشنده، باید آن را خریداری کنید. به دلایلی این مورد در صنعت 1C پذیرفته نمی شود. و با SAP، تقریباً یک خرید ضروری است و کسی را آزار نمی دهد. بدون پشتیبانی شرکتی و بدون متخصص در کارکنان، می‌توانید با مشکلات 1C تنها بمانید.
  • با این حال، شما نمی توانید مطلقاً همه چیز را با 1C انجام دهید. این یک ابزار است و مانند هر ابزاری محدودیت هایی برای کاربرد دارد. در چشم انداز 1C، داشتن یک معمار سیستم "غیر 1C" بسیار مطلوب است.
  • نام مستعار خوب 1C ارزان تر از برنامه نویسان خوب در زبان های دیگر نیست. اگرچه، استخدام برنامه نویسان بد صرف نظر از زبانی که به آن می نویسند، گران است.

بیایید نقطه ها را نقطه گذاری کنیم

  • 1C یک چارچوب توسعه سریع برنامه (RAD) برای تجارت است و برای این کار طراحی شده است.
  • پیوند سه لایه با پشتیبانی از DBMS های اصلی، رابط کاربری مشتری، یک ORM بسیار خوب و گزارش
  • امکانات گسترده برای ادغام با سیستم هایی که می توانند کاری را که 1C نمی تواند انجام دهند. اگر می خواهید یادگیری ماشینی داشته باشید، پایتون را بگیرید و نتیجه را از طریق http یا RabbitMQ به 1C ارسال کنید
  • نیازی به تلاش برای انجام همه کارها با استفاده از 1C نیست، باید نقاط قوت آن را درک کنید و از آنها برای اهداف خود استفاده کنید.
  • توسعه دهندگانی که به جستجوی ابزارهای چارچوب تکنولوژیکی و طراحی مجدد هر N سال یک موتور جدید می پردازند، از 1C خسته شده اند. آنجا همه چیز بسیار محافظه کارانه است.
  • توسعه دهندگان نیز حوصله دارند زیرا نگرانی بسیار کمی از سوی سازنده برای آنها وجود دارد. زبان خسته کننده، IDE ضعیف. آنها نیاز به مدرن سازی دارند.
  • از سوی دیگر، توسعه دهندگانی که نمی توانند از طریق استفاده و یادگیری فناوری دیگری که از آن لذت می برند، سرگرمی پیدا کنند، توسعه دهندگان بدی هستند. آنها ناله می کنند و به اکوسیستم دیگری می روند.
  • کارفرمایانی که به نام مستعار 1C خود اجازه نمی دهند چیزی در پایتون بنویسند، کارفرمایان بدی هستند. آنها کارمندانی با ذهن کنجکاو را از دست خواهند داد و به جای آنها کدنویسان میمونی خواهند آمد که در عین اینکه با همه چیز موافق هستند، نرم افزارهای شرکتی را به باتلاق خواهند کشاند. هنوز هم باید بازنویسی شود، پس شاید بهتر باشد کمی زودتر روی پایتون سرمایه گذاری کنیم؟
  • 1C یک شرکت تجاری است و ویژگی ها را تنها بر اساس منافع و مصلحت خود پیاده سازی می کند. شما نمی توانید او را به خاطر این موضوع سرزنش کنید، تجارت باید به فکر سود باشد، زندگی همین است
  • 1C با فروش راه حل برای مشکلات تجاری، نه برای مشکلات توسعه دهندگان Vasya، درآمد کسب می کند. این دو مفهوم با هم مرتبط هستند، اما اولویت دقیقاً همان چیزی است که گفتم. هنگامی که توسعه دهنده Vasya آماده پرداخت برای مجوز شخصی برای 1C: Resharper است، به سرعت ظاهر می شود، "Resharper" توسط A. Orefkova گواه این امر است. اگر فروشنده از آن پشتیبانی می کرد و با آن مبارزه نمی کرد، بازاری برای نرم افزار برای توسعه دهندگان ظاهر می شد. اکنون یک و نیم بازیکن در این بازار با نتایج مشکوک وجود دارد و همه به این دلیل است که ادغام با IDE منفی است و همه چیز با عصا انجام می شود.
  • تمرین یک اپراتور چند ماشینی به فراموشی سپرده خواهد شد. برنامه های کاربردی مدرن آنقدر بزرگ هستند که هم از طرف کد و هم از سمت استفاده تجاری نمی توانند به خاطر بسپارند. سرور 1C نیز پیچیده‌تر می‌شود؛ نگهداری انواع تخصص در یک کارمند غیرممکن خواهد بود. این باید مستلزم تقاضای متخصصان باشد که به معنای جذابیت حرفه 1C و افزایش حقوق است. اگر قبلاً واسیا سه در یک با یک حقوق کار می کرد، اکنون باید دو واسیا را استخدام کنید و رقابت در بین واسیاها می تواند باعث رشد کلی سطح آنها شود.

نتیجه

1C یک محصول بسیار ارزشمند است. در محدوده قیمت من، من اصلا آنالوگ نمی شناسم، اگر وجود دارد در نظرات بنویسید. با این حال، خروج توسعه دهندگان از اکوسیستم بیشتر و بیشتر قابل توجه است، و مهم نیست که چگونه به آن نگاه کنید، "فرار مغزها" است. این صنعت تشنه نوسازی است.
اگر توسعه‌دهنده هستید، تلفن 1C را قطع نکنید و فکر نکنید که همه چیز در زبان‌های دیگر جادویی است. در حالی که شما یک جوان هستید، شاید. به محض اینکه چیزی بزرگتر باید حل شود، راه حل های آماده باید برای مدت طولانی تری جستجو شوند و با شدت بیشتری تکمیل شوند. از نظر کیفیت "بلوک"هایی که می توان از آنها راه حل ساخت، 1C بسیار بسیار خوب است.

و یک چیز دیگر - اگر نام مستعار 1C برای استخدام به سراغ شما بیاید، نام مستعار 1C را می توان با خیال راحت به سمت تحلیلگران اصلی منصوب کرد. درک آنها از کار، حوزه موضوعی و مهارت های تجزیه عالی است. من مطمئن هستم که این دقیقاً به دلیل استفاده اجباری از DDD در توسعه 1C است. فرد آموزش می بیند که قبل از هر چیز به معنای کار فکر کند، در مورد ارتباطات بین اشیاء حوزه موضوعی، و در عین حال دارای پیشینه فنی در فن آوری های یکپارچه سازی و فرمت های تبادل داده است.

آگاه باشید که چارچوب ایده آل وجود ندارد و مراقب خود باشید.
همه چیز خوب است!

ن: خیلی ممنون اسپشوریک برای کمک در تهیه مقاله

فقط کاربران ثبت نام شده می توانند در نظرسنجی شرکت کنند. ورود، لطفا.

آیا در شرکت خود 1C دارید؟

  • ٪۱۰۰اصلا.71

  • ٪۱۰۰وجود دارد، اما فقط در بخش حسابداری جایی. سیستم های اصلی در سایر پلتفرم ها162

  • ٪۱۰۰بله، فرآیندهای اصلی کسب و کار روی آن کار می کنند221

  • ٪۱۰۰1C باید بمیرد، آینده متعلق به %technology_name%80 است

534 کاربر رای دادند. 99 کاربر رای ممتنع دادند.

منبع: www.habr.com

اضافه کردن نظر