1C - اچھائی اور برائی۔ 1C کے ارد گرد ہولیورز میں پوائنٹس کا بندوبست

1C - اچھائی اور برائی۔ 1C کے ارد گرد ہولیورز میں پوائنٹس کا بندوبست

دوستو اور ساتھیوں، حال ہی میں Habré پر ایک ترقیاتی پلیٹ فارم کے طور پر 1C کے خلاف نفرت کے ساتھ اکثر مضامین اور اس کے محافظوں کی تقاریر سامنے آئی ہیں۔ ان مضامین میں ایک سنگین مسئلہ کی نشاندہی کی گئی ہے: اکثر، 1C کے ناقدین اس پر "اس پر عبور حاصل نہ کرنے" کے موقف سے تنقید کرتے ہیں، ایسے مسائل کو ڈانٹتے ہیں جو حقیقت میں آسانی سے حل ہو جاتے ہیں، اور، اس کے برعکس، ان مسائل کو چھونے نہیں دیتے جو واقعی اہم ہیں، قابل قدر بات چیت اور وینڈر کی طرف سے حل نہیں کر رہے ہیں. مجھے یقین ہے کہ 1C پلیٹ فارم کا ایک سنجیدہ اور متوازن جائزہ لینا سمجھ میں آتا ہے۔ یہ کیا کر سکتا ہے، کیا نہیں کر سکتا، اسے کیا کرنا چاہیے لیکن نہیں کرتا، اور، میٹھے کے لیے، یہ ایک دھڑکے کے ساتھ کیا کرتا ہے، اور %technology_name% پر آپ کے ڈویلپرز سو سال کریں گے، اسے پھینک دیں گے۔ ایک سے زیادہ سالانہ بجٹ۔

نتیجے کے طور پر، آپ، بطور مینیجر یا معمار، اس بات کی واضح تفہیم حاصل کر سکیں گے کہ 1C کا استعمال آپ کے لیے کس کام میں فائدہ مند ہوگا، اور اسے کہاں گرم لوہے سے جلانے کی ضرورت ہے۔ "غیر 1C" دنیا میں ایک ڈویلپر کے طور پر، آپ یہ دیکھ سکیں گے کہ 1C میں کیا ہے جو ہنگامہ کھڑا کر رہا ہے۔ اور 1C ڈویلپر کے طور پر، آپ اپنے سسٹم کا دوسری زبانوں کے ماحولیاتی نظام سے موازنہ کر سکیں گے اور سافٹ ویئر ڈویلپمنٹ کے کوآرڈینیٹ سسٹم میں اپنے مقام کو سمجھ سکیں گے۔

کٹ کے نیچے 1C پر، 1C کے ناقدین پر، جاوا، .NET پر اور عام طور پر بہت سے حملے ہو رہے ہیں... پنکھا بھرا ہوا ہے، خوش آمدید!

میرے بارے میں

میں گفتگو کے موضوع سے تقریباً 2004 سے واقف ہوں۔ میں شاید اس وقت سے پروگرامنگ کر رہا ہوں جب میں 6 سال کا تھا، اسی لمحے سے مجھے پروفیسر فورٹرن کے بارے میں ایک کتاب ملی جس میں ایک بلی، ایک چڑیا اور ایک کیٹرپلر کے بارے میں مزاحیہ تحریر تھی۔ میں نے ان پروگراموں کا تجزیہ کیا جو بلی نے کتاب میں موجود تصویروں سے لکھے اور معلوم کیا کہ انہوں نے کیا کیا۔ اور ہاں، اس وقت میرے پاس اصلی کمپیوٹر نہیں تھا، لیکن کتاب کے پھیلاؤ پر ایک ڈرائنگ تھی اور میں نے ایمانداری سے کاغذ کے بٹن دبائے، ان کمانڈز کو داخل کیا جو میں نے بلی X کی جاسوسی کی تھی۔

پھر اسکول میں BK0011 اور BASIC، C++ اور یونیورسٹی میں اسمبلرز، پھر 1C، اور پھر بہت سی دوسری چیزیں تھیں جنہیں یاد کرنے میں میں بہت سست ہوں۔ پچھلے 15 سالوں سے، میں بنیادی طور پر 1C میں شامل رہا ہوں، نہ صرف کوڈنگ کے لحاظ سے، بلکہ عام طور پر 1C میں۔ یہاں کاموں، انتظامیہ اور ڈیوپس کو ترتیب دینا۔ پچھلے 5 سالوں سے میں دوسرے 1C صارفین کے لیے ترقی اور آٹومیشن ٹولز تیار کرنے، مضامین اور کتابیں لکھنے کے حوالے سے سماجی طور پر مفید سرگرمیوں میں مصروف ہوں۔

آئیے بحث کے موضوع پر فیصلہ کرتے ہیں۔

سب سے پہلے، آئیے اس بات کی وضاحت کریں کہ ہم کس چیز کے بارے میں بات کرنے جا رہے ہیں، کیونکہ حروف "1C" کا مطلب بہت سی چیزیں ہو سکتی ہیں۔ اس صورت میں، حروف "1C" سے ہمارا مطلب خصوصی طور پر جدید، آٹھویں ورژن کے ترقیاتی فریم ورک "1C: Enterprise" سے ہوگا۔ ہم مینوفیکچرر اور اس کی پالیسیوں کے بارے میں زیادہ بات نہیں کریں گے (لیکن ہمیں تھوڑا سا کرنا پڑے گا) ہم اس فریم ورک کا استعمال کرتے ہوئے لکھی گئی مخصوص ایپلی کیشنز پر بات نہیں کریں گے۔ ٹیکنالوجی الگ ہے، ایپلی کیشنز عرف کنفیگریشن الگ ہیں۔

اعلی سطحی فن تعمیر 1C: انٹرپرائز

یہ کچھ بھی نہیں ہے کہ میں لفظ "فریم ورک" کا ذکر کرتا ہوں۔ ڈویلپر کے نقطہ نظر سے، 1C پلیٹ فارم قطعی طور پر ایک فریم ورک ہے۔ اور آپ کو اسے بالکل فریم ورک کی طرح برتاؤ کرنے کی ضرورت ہے۔ اس کے بارے میں اسپرنگ یا ASP.NET کے طور پر سوچیں، جو کچھ رن ٹائم (بالترتیب JVM یا CLR) کے ذریعے انجام دیا جاتا ہے۔ ایسا ہوتا ہے کہ روایتی پروگرامنگ کی دنیا میں ("1C نہیں")، فریم ورک، ورچوئل مشینوں اور مخصوص ایپلی کیشنز میں تقسیم فطری ہے، اس حقیقت کی وجہ سے کہ یہ اجزاء عام طور پر مختلف مینوفیکچررز تیار کرتے ہیں۔ 1C کی دنیا میں، ترقیاتی فریم ورک اور رن ٹائم کو واضح طور پر الگ کرنے کا رواج نہیں ہے؛ اس کے علاوہ، فریم ورک کا استعمال کرتے ہوئے لکھی گئی مخصوص ایپلی کیشنز بھی بنیادی طور پر 1C خود تیار کرتی ہیں۔ نتیجے کے طور پر، کچھ الجھن پیدا ہوتی ہے. لہذا، مضمون کے فریم ورک کے اندر، ہمیں ایک ساتھ کئی اطراف سے 1C پر غور کرنا ہوگا اور اسے متعدد محور محور کے ساتھ درجہ بندی کرنا ہوگا۔ اور ہر ایک محور میں ہم بھورے مادے کا بیلچہ ڈالیں گے اور موجودہ محلول کی خصوصیات، فوائد اور نقصانات کو دیکھیں گے۔

1C پر نقطہ نظر

خریدار کے لیے 1C

خریدار ایک آٹومیشن سسٹم خریدتا ہے جس کی مدد سے وہ اپنے کاروبار کو خودکار کرنے کے مسائل کو تیزی سے حل کر سکتا ہے۔ ایک کاروبار ایک چھوٹا اسٹال ہوسکتا ہے، یا یہ ایک بڑی ہولڈنگ کمپنی ہوسکتی ہے۔ یہ واضح ہے کہ ان کاروباروں کی ضروریات مختلف ہیں، لیکن دونوں کو ایک پلیٹ فارم کوڈ بیس سے تعاون حاصل ہے۔

1C خریدار کے لیے یہ ایک فوری وقت سے مارکیٹ ہے۔ تیز. جاوا، C# یا JS سے تیز۔ اوسط ہسپتال کے آس پاس۔ یہ واضح ہے کہ React استعمال کرنے والی بزنس کارڈ کی ویب سائٹ بہتر ہوگی، لیکن WMS سسٹم کا بیک اینڈ 1C پر تیزی سے لانچ ہوگا۔

1C ایک آلے کے طور پر

ہر تکنیکی حل کی لاگو ہونے کی حد ہوتی ہے۔ 1C عام مقصد کی زبان نہیں ہے؛ یہ اپنے فریم ورک سے الگ نہیں رہتی ہے۔ جب آپ کو ضرورت ہو تو 1C استعمال کرنے کا مشورہ دیا جاتا ہے:

  • سرور کی درخواست
  • درخواست جہاں مالیات ظاہر ہوتے ہیں۔
  • ریڈی میڈ UI، ORM، رپورٹنگ، XML/JSON/COM/PDF/YourDataTransfering Format کے ساتھ
  • پس منظر کے عمل اور ملازمتوں کے لیے تعاون کے ساتھ
  • کردار پر مبنی سیکیورٹی کے ساتھ
  • اسکرپٹ قابل کاروباری منطق کے ساتھ
  • فوری طور پر ایک پروٹو ٹائپ بنانے کی صلاحیت اور کم وقت کے لیے مارکیٹ

اگر آپ چاہیں تو آپ کو 1C کی ضرورت نہیں ہے:

  • مشین لرننگ
  • GPU حساب کتاب
  • کمپیوٹر گرافکس
  • ریاضیاتی حسابات
  • CAD سسٹم
  • سگنل پروسیسنگ (آواز، ویڈیو)
  • سیکڑوں ہزاروں آر پی ایس کے ساتھ ایچ ٹی پی کالز کو ہائی لوڈ کریں۔

1C بطور مینوفیکچرنگ کمپنی

یہ سمجھنے کے قابل ہے کہ سافٹ ویئر بنانے والے کے طور پر 1C کا کاروبار کیا ہے۔ 1C کمپنی آٹومیشن کے ذریعے کاروباری مسائل کے حل فروخت کرتی ہے۔ مختلف کاروبار، بڑے یا چھوٹے، لیکن وہ وہی بیچتی ہے۔ اس مقصد کو حاصل کرنے کے ذرائع کاروباری ایپلی کیشنز ہیں۔ اکاؤنٹنگ، پے رول اکاؤنٹنگ وغیرہ کے لیے۔ ان ایپلی کیشنز کو لکھنے کے لیے، کمپنی اپنا بزنس ایپلیکیشن ڈویلپمنٹ پلیٹ فارم استعمال کرتی ہے۔ خاص طور پر ان ہی کاروباری ایپلی کیشنز کے عام کاموں کے لیے تیار کردہ:

  • مالی اکاؤنٹنگ
  • کاروباری منطق کی آسان تخصیص
  • متفاوت IT مناظر میں انضمام کے وسیع امکانات

ایک صنعت کار کے طور پر، 1C کا خیال ہے کہ یہ وہ حکمت عملی ہے جو آپ کو شراکت داروں اور کلائنٹس کے ساتھ جیت کے موڈ میں کام کرنے کی اجازت دیتی ہے۔ آپ اس کے ساتھ بحث کر سکتے ہیں، لیکن تقریباً یہ ہے کہ کمپنی خود کو کس طرح فروغ دیتی ہے: کاروباری مسائل کے لیے تیار حل جو کہ شراکت داروں کے ذریعے تیزی سے اپنی مرضی کے مطابق بنائے جا سکتے ہیں اور کسی بھی IT لینڈ سکیپ میں ضم کر سکتے ہیں۔

فریم ورک کے طور پر 1C کے تمام دعوے یا خواہشات کو اس پرزم کے ذریعے خصوصی طور پر دیکھا جانا چاہیے۔ "ہم 1C میں OOP چاہتے ہیں،" ڈویلپرز کہتے ہیں۔ "پلیٹ فارم میں OOP کو سپورٹ کرنے کے لیے ہمیں کتنا خرچہ آئے گا، کیا اس سے ہمیں بکسوں کی فروخت بڑھانے میں مدد ملے گی؟" 1C کہتے ہیں۔ کاروباری مسائل کے حل کی فروخت کا اپنا "پرزم" کھولتا ہے:

- ارے، کاروبار، کیا آپ اپنے 1C میں OOP چاہتے ہیں؟
- کیا اس سے مجھے اپنے مسائل حل کرنے میں مدد ملے گی؟
- کسے پتا...
’’پھر کوئی ضرورت نہیں۔

یہ نقطہ نظر اچھا یا برا ہو سکتا ہے اس پر منحصر ہے کہ کون اسے دیکھ رہا ہے، لیکن یہ بالکل ایسا ہی ہے۔ اس حقیقت کے بارے میں بات کرتے ہوئے کہ 1C میں کوئی خصوصیت X نہیں ہے، آپ کو یہ سمجھنے کی ضرورت ہے کہ یہ کسی وجہ سے نہیں ہے، بلکہ انتخاب کے تناظر میں "عمل درآمد کی لاگت بمقابلہ منافع کی رقم"۔

تکنیکی درجہ بندی

"درحقیقت، Odinesniks بہترین نمونوں کو استعمال کرنے کے لیے اپنی پوری کوشش کرتے ہیں، جنہیں دیکھ بھال کرنے والے طریقہ کار کے ماہرین اور 1C پلیٹ فارم کے ڈویلپرز نے احتیاط سے منتخب کیا ہے۔
جب آپ اپنا احمقانہ کوڈ ایک سادہ منظم فارم کے لیے لکھتے ہیں، حقیقت میں آپ استعمال کر رہے ہوتے ہیں۔ ماڈل ویو کنٹرولر с ڈبل وے ڈیٹا بائنڈنگ в تین پرتوں والا ڈیٹا ایپ انجن، ذائقہ دار اعلی سطحی آبجیکٹ ریلیشن میپنگ بیس پر اعلانیہ میٹا ڈیٹا کی تفصیلاس کا اپنا ہونا پلیٹ فارم سے آزاد استفسار کی زبان، سی اعلانیہ ڈیٹا سے چلنے والا صارف انٹرفیس، مکمل شفاف سیریلائزیشن اور ڈومین پر مبنی پروگرام کی زبان.

جہاں 1C ڈویلپر اپنے مغربی ساتھیوں سے مختلف ہیں وہ PR میں ہے۔ وہ کسی بھی بدمعاش کو بڑا نام دینا اور اسے گندے تھیلے کی طرح لے کر بھاگنا پسند کرتے ہیں۔
A. Orefkov

1C پلیٹ فارم میں ایک کلاسک 3 درجے کا فن تعمیر ہے، جس کے بیچ میں ایپلیکیشن سرور ہے (یا چھوٹے دکانداروں کے لیے بہت کم رقم کے لیے اس کا ایمولیشن)۔ یا تو MS SQL یا Postgres کو DBMS کے طور پر استعمال کیا جاتا ہے۔ Oracle اور IBM DB2 کے لیے بھی سپورٹ موجود ہے، لیکن یہ باطنی ہے؛ کوئی نہیں جانتا کہ اگر آپ ان ڈیٹا بیس پر درمیانے اور زیادہ بوجھ کے تحت 1C کو نافذ کرتے ہیں تو کیا ہوگا۔ مجھے یقین ہے کہ 1C خود یہ نہیں جانتا ہے۔

کلائنٹ کا حصہ یا تو صارف کی مشین پر نصب ایک پتلا کلائنٹ ہے یا ویب کلائنٹ۔ اہم خصوصیت یہ ہے کہ پروگرامرز 2 مختلف کوڈ نہیں لکھتے، وہ ایک ہی زبان میں ایک ایپلی کیشن لکھتے ہیں، اور اگر آپ چاہیں یا ضرورت ہو تو اسے براؤزر میں ڈسپلے کر سکتے ہیں۔ سامنے اور پسدید، node.js کے لیے وہاں کون ایک حقیقی مکمل اسٹیک اور ایک ہی زبان چاہتا تھا؟ وہ آخر تک بالکل وہی کام کرنے میں کامیاب نہیں ہوئے۔ ایک حقیقی مکمل اسٹیک موجود ہے، لیکن آپ کو اسے 1C میں لکھنا پڑے گا۔ قسمت کی ستم ظریفی، ایسی باتیں :)

کلاؤڈ SaaS سلوشن 1C:Fresh براؤزر موڈ میں بھی کام کرتا ہے، جس میں آپ 1C نہیں خرید سکتے، لیکن ایک چھوٹا ڈیٹا بیس کرایہ پر لے کر وہاں شوارما کی فروخت پر نظر رکھیں۔ صرف براؤزر میں، کسی بھی چیز کو انسٹال یا کنفیگر کیے بغیر۔

اس کے علاوہ، ایک میراثی کلائنٹ ہے، جسے 1C میں "باقاعدہ درخواست" کہا جاتا ہے۔ میراث میراث ہے، 2002 میں ایپلی کیشنز کی دنیا میں خوش آمدید، لیکن ہم اب بھی ماحولیاتی نظام کی موجودہ حالت کے بارے میں بات کر رہے ہیں۔

1C سرور حصہ کلسٹر میں نئی ​​مشینیں شامل کرکے کلسٹرنگ اور اسکیلز کو سپورٹ کرتا ہے۔ یہاں کافی کاپیاں توڑ دی گئی ہیں اور اس کے بارے میں مضمون میں ایک الگ حصہ ہوگا۔ مختصراً، یہ بالکل یکساں نہیں ہے جیسا کہ HAProxy کے پیچھے بالکل ایک جیسی مثالیں شامل کرنا ہے۔

ایپلیکیشن ڈویلپمنٹ فریم ورک اپنی پروگرامنگ لینگویج استعمال کرتا ہے، جو کہ روسی میں ترجمہ کردہ قدرے بہتر VB6 سے مشابہ ہے۔ ان لوگوں کے لیے جو روسی ہر چیز سے نفرت کرتے ہیں، جو یہ نہیں مانتے کہ "if" کا ترجمہ "if" کے طور پر کیا جاتا ہے، دوسرا نحوی اختیار پیش کیا جاتا ہے۔ وہ. اگر آپ چاہیں تو آپ اسے 1C میں اس طرح لکھ سکتے ہیں کہ یہ VB سے الگ نہیں ہے۔

1C - اچھائی اور برائی۔ 1C کے ارد گرد ہولیورز میں پوائنٹس کا بندوبست

یہ پروگرامنگ زبان ان کے پلیٹ فارم کی طرف 1C عرفی ناموں سے نفرت کی بنیادی وجہ ہے۔ آئیے اس کا سامنا کریں، بغیر وجہ کے نہیں۔ زبان کو ہر ممکن حد تک آسان تصور کیا گیا تھا، کم از کم CIS میں ایک پیمانے پر "ڈیولپرز، ڈیولپرز" کے منتر کو پورا کرنے کے لیے ڈیزائن کیا گیا تھا۔ اس طرح کے حل کا تجارتی جوہر، میری رائے میں، واضح طور پر نظر آتا ہے: زیادہ ڈویلپرز، زیادہ مارکیٹ کوریج۔ 45% سے 95% تک مختلف اندازوں کے مطابق یہ سچ ثابت ہوا۔ میں فوراً کہوں گا کہ آپ کے خیال میں جس زبان میں لکھنا واقعی آسان ہے۔ اور میں پروگرامنگ کی بہت سی زبانیں جانتا ہوں۔

آئیے زبان سے شروع کرتے ہیں۔

1C پروگرامنگ زبان

ایک ہی وقت میں نظام کا مضبوط اور کمزور نقطہ۔ آسان اندراج اور پڑھنے کی اہلیت فراہم کرتا ہے۔ دوسری طرف، 8 میں ورژن 2002 کی ریلیز کے بعد سے اسے اپ ڈیٹ نہیں کیا گیا ہے اور یہ اخلاقی طور پر پرانا ہے۔ کوئی کہے گا "بنیادی خرابی یہ ہے کہ کوئی OOP نہیں ہے" اور وہ غلط ہوں گے۔ سب سے پہلے، PLO نہ صرف نورالیف کو پسند کرتا ہے، بلکہ Torvalds کو بھی پسند کرتا ہے۔ اور دوسری بات، OOP اب بھی موجود ہے۔

ڈویلپر کے نقطہ نظر سے، اس کے پاس DBMS پر دکھائے جانے والے بیس کلاسز کے ساتھ ایک فریم ورک ہے۔ ڈویلپر بیس کلاس "ڈائریکٹری" لے سکتا ہے اور اس سے "کلائنٹس" ڈائرکٹری کا وارث بن سکتا ہے۔ یہ اس میں نئی ​​کلاس فیلڈز کا اضافہ کر سکتا ہے، مثال کے طور پر، INN اور ایڈریس، اور اگر ضروری ہو تو، یہ بیس کلاس کے طریقوں کو اوور رائڈ (اوور رائڈ) کر سکتا ہے، مثال کے طور پر، OnWrite/AtRecord طریقہ۔

فریم ورک کو اس طرح سے ڈیزائن کیا گیا ہے کہ گہری وراثت کی شاذ و نادر ہی ضرورت ہوتی ہے، اور OOP میں پابندی، میری رائے میں، معنی رکھتی ہے۔ 1C ڈومین سے چلنے والی ترقی پر توجہ مرکوز کرتا ہے اور آپ کو سوچنے پر مجبور کرتا ہے، سب سے پہلے، حل کے موضوع کے علاقے کے بارے میں، اور یہ اچھا ہے۔ یہاں نہ صرف کوئی لالچ نہیں ہے، بلکہ 10 مختلف DTOs اور ViewModels لکھنے کی بھی ضرورت نہیں ہے صرف ڈومین سے کچھ ڈیٹا دکھانے کے لیے۔ 1C ڈویلپر ہمیشہ ایک ہی ہستی کے ساتھ کام کرتا ہے، ایک جیسے ناموں کے ساتھ درجن بھر کلاسوں کے ساتھ تصور کے سیاق و سباق کو بے ترتیبی میں لائے بغیر، ایک ہی ہستی کی نمائندگی کرتا ہے، لیکن ایک مختلف طرف سے۔ مثال کے طور پر کوئی بھی .NET ایپلیکیشن JSON میں سیریلائزیشن اور کلائنٹ سے سرور تک ڈیٹا کی منتقلی کے لیے لازمی طور پر پانچ یا دو ویو ماڈلز اور ڈی ٹی اوز پر مشتمل ہوگی۔ اور آپ کے ایپلیکیشن کوڈ کا تقریباً 10-15% قلم یا بیساکھی جیسے آٹو میپر کا استعمال کرتے ہوئے ڈیٹا کو ایک کلاس سے دوسری کلاس میں منتقل کرنے میں خرچ کیا جائے گا۔ یہ کوڈ لکھا جانا چاہیے اور اسے بنانے اور برقرار رکھنے کے لیے پروگرامرز کو ادائیگی کرنی چاہیے۔

یہ پتہ چلتا ہے کہ 1C زبان کو مرکزی دھارے کی زبانوں کی سطح تک پیچیدہ کیے بغیر تیار کرنا مشکل ہے، اس طرح سادگی کا فائدہ کھو جاتا ہے۔ بیچنے والے کا کام بنیادی طور پر کیا حل کیا جا رہا ہے: ایک معیاری حل جاری کرنا جسے سڑک پر پکڑا جانے والا کوئی بھی طالب علم مطلوبہ معیار کے ساتھ اپنی مرضی کے مطابق بنا سکتا ہے (یعنی، ایک اسٹال سے لے کر بڑی فیکٹری تک کا کیس مکمل ہو گیا ہے)۔ اگر آپ سٹال ہیں تو ایک طالب علم لیں؛ اگر آپ فیکٹری ہیں تو اپنے نفاذ کرنے والے پارٹنر سے گرو لیں۔ حقیقت یہ ہے کہ نفاذ کرنے والے شراکت دار طلباء کو گرو کی قیمت پر فروخت کرتے ہیں فریم ورک کے ساتھ کوئی مسئلہ نہیں ہے۔ آرکیٹیکچرل طور پر، فریم ورک کو دونوں کے مسائل کو حل کرنا چاہیے، معیاری کنفیگریشن کا کوڈ (جسے ہم نے اپنی مرضی کے مطابق بنانے کے وعدے کے ساتھ کاروباروں کو فروخت کیا) کو ایک طالب علم کے سمجھنے کے قابل ہونا چاہیے، اور ایک گرو کو اس قابل ہونا چاہیے کہ آپ جو چاہیں اسے سمجھ سکیں۔

میری رائے میں، زبان میں واقعی کیا غائب ہے، جو آپ کو آپ سے زیادہ لکھنے پر مجبور کرتی ہے، وہ چیز ہے جو گاہک کی طرف سے ادا کیے گئے وقت کو ضائع کرتی ہے۔

  • سطح پر ٹائپ کرنے کا امکان، مثال کے طور پر، TypeScript (نتیجے کے طور پر، IDE میں مزید ترقی یافتہ کوڈ تجزیہ ٹولز، ری فیکٹرنگ، کم جارحانہ جام)
    فرسٹ کلاس آبجیکٹ کے طور پر فنکشنز کی دستیابی۔ تھوڑا زیادہ پیچیدہ تصور، لیکن عام بوائلر پلیٹ کوڈ کی مقدار بہت کم ہو سکتی ہے۔ طالب علم کی کوڈ، IMHO، کی سمجھ میں حجم میں کمی کی وجہ سے اور بھی اضافہ ہوگا۔
  • یونیورسل کلیکشن لٹریلز، انیشیلائزر۔ ایک ہی چیز - کوڈ کی مقدار کو کم کرنا جسے لکھنے اور/یا اپنی آنکھوں سے دیکھنے کی ضرورت ہے۔ مجموعوں کو بھرنے میں 9000C پروگرامنگ کے %1 سے زیادہ وقت لگتا ہے۔ مصنوعی چینی کے بغیر اسے لکھنا طویل، مہنگا اور غلطی کا شکار ہے۔ عام طور پر، 1C سلوشنز میں LOC کی مقدار دستیاب اوپن فریم ورکس کے مقابلے میں تمام قابل فہم حدود سے تجاوز کر جاتی ہے اور عام طور پر، آپ کے تمام انٹرپرائز Javas کو ملا کر۔ زبان لفظی ہے، اور یہ ڈیٹا، میموری، IDE بریک، وقت، رقم...
  • آخر میں تعمیرات میرے پاس ایک مفروضہ ہے کہ یہ تعمیر اس حقیقت کی وجہ سے غائب ہے کہ انہیں روسی میں اس کا کامیاب ترجمہ نہیں ملا :)
  • اپنے ڈیٹا کی اقسام (OOP کے بغیر)، VB6 سے قسم کے اینالاگ۔ یہ آپ کو بی ایس پی میں تبصروں اور ان ڈھانچے کو بنانے والے جادوئی طریقوں کا استعمال کرتے ہوئے ڈھانچے کو ٹائپ کرنے کی اجازت نہیں دے گا۔ ہمیں ملتا ہے: کم کوڈ، ڈاٹ کے ذریعے اشارہ، مسئلے کا تیز تر حل، ٹائپ کی غلطیوں کی وجہ سے کم غلطیاں اور ڈھانچے کی خصوصیات غائب ہیں۔ اب صارف کے ڈھانچے کی ٹائپنگ مکمل طور پر اسٹینڈرڈ سب سسٹم لائبریری کی ڈیولپمنٹ ٹیم پر منحصر ہے، جو اس کے کریڈٹ پر، پاس شدہ پیرامیٹر ڈھانچے کی متوقع خصوصیات پر احتیاط سے تبصرے لکھتی ہے۔
  • ویب کلائنٹ پر غیر مطابقت پذیر کالوں کے ساتھ کام کرتے وقت کوئی شوگر نہیں۔ ProcessingNotifications کی شکل میں callback-hell مرکزی براؤزرز کے API میں اچانک تبدیلی کی وجہ سے ایک عارضی کرچ ہے، لیکن آپ ہر وقت اس طرح نہیں رہ سکتے؛ غیر مطابقت پذیر کوڈ کی "طلبہ کی سمجھ" کا فائدہ ضائع ہو رہا ہے۔ زیادہ سے زیادہ. مرکزی IDE میں اس تمثیل کے لیے کوئی حمایت شامل نہ کریں اور چیزیں اور بھی خراب ہو جاتی ہیں۔

یہ ایک اہم مسئلہ ہے، یہ واضح ہے کہ فہرست بہت بڑی ہو سکتی ہے، لیکن ہمیں یہ نہیں بھولنا چاہیے کہ یہ اب بھی عام مقصد کی زبان نہیں ہے، اسے ملٹی تھریڈنگ، لیمبڈا فنکشنز، GPU تک رسائی اور تیز رفتار کی ضرورت نہیں ہے۔ فلوٹنگ پوائنٹ حسابات یہ ایک کاروباری منطق کی اسکرپٹنگ زبان ہے۔

ایک پروگرامر جو پہلے ہی اس زبان کے ساتھ بہت کام کر چکا ہے، js یا c# میں دیکھتا ہے، اس زبان کے فریم ورک میں بور ہو جاتا ہے۔ یہ ایک حقیقت ہے۔ اسے ترقی کی ضرورت ہے۔ وینڈر کے لیے پیمانے کی دوسری طرف مخصوص خصوصیات کو لاگو کرنے کی لاگت ہے بمقابلہ ان کے نفاذ کے بعد آمدنی میں اضافہ۔ یہاں میرے پاس اس بارے میں کوئی معلومات نہیں ہے کہ کمپنی کی نظروں میں اس وقت کیا وزنی ہے۔

ترقی کا ماحول

یہاں بھی معاملات آسانی سے نہیں چل رہے ہیں۔ ترقی کے دو ماحول ہیں۔ سب سے پہلے ترسیل میں شامل کنفیگریٹر ہے۔ دوسرا انٹرپرائز ڈویلپمنٹ ٹولز ماحول ہے، یا مختصر طور پر EDT، Eclipse کی بنیاد پر تیار کیا گیا ہے۔

کنفیگریٹر ترقیاتی کاموں کی مکمل رینج فراہم کرتا ہے، تمام خصوصیات کو سپورٹ کرتا ہے اور مارکیٹ میں اہم ماحول ہے۔ یہ بھی اخلاقی طور پر متروک ہے، ترقی پذیر نہیں، افواہوں کے مطابق - اپنے اندر تکنیکی قرض کی مقدار کی وجہ سے۔ اندرونی API (کے ساتھ دوستی کی صورت میں) کھول کر صورتحال کو بہتر بنایا جا سکتا ہے۔ سنو مین A. Orefkova یا آزادانہ بنیادوں پر)، لیکن ایسا نہیں ہے۔ پریکٹس نے دکھایا ہے کہ کمیونٹی IDE میں اپنی خصوصیات لکھے گی، جب تک کہ وینڈر مداخلت نہیں کرتا۔ لیکن ہمارے پاس وہی ہے جو ہمارے پاس ہے۔ کنفیگریٹر 2004-2005 میں بہت اچھا تھا، اس وقت کے ویژول اسٹوڈیو کی بہت یاد دلاتا تھا، کچھ جگہوں پر یہ اور بھی ٹھنڈا تھا، لیکن یہ ان دنوں میں پھنس گیا تھا۔

اس کے علاوہ، اوسط معیاری حل کا حجم اس وقت سے کئی گنا بڑھ چکا ہے، اور آج IDE صرف اس کوڈ کی مقدار کا مقابلہ نہیں کر سکتا جس کے ساتھ اسے کھلایا جاتا ہے۔ استعمال اور ری فیکٹرنگ کی صلاحیتیں بھی صفر نہیں ہیں، وہ سرخ رنگ میں ہیں۔ یہ سب ڈویلپرز میں جوش و خروش نہیں بڑھاتا اور وہ دوسرے ماحولیاتی نظاموں میں جانے اور وہاں کوڈ شِٹ جاری رکھنے کا خواب دیکھتے ہیں، لیکن ایک خوشگوار ماحول میں جو اس کے رویے سے آپ کے چہرے پر تھوکتا بھی نہیں۔

متبادل کے طور پر، شروع سے لکھا ہوا ایک IDE، جو Eclipse پر بنایا گیا ہے، پیش کیا جاتا ہے۔ وہاں، ذرائع، کسی دوسرے سافٹ ویئر کی طرح، ٹیکسٹ فائلوں کی شکل میں رہتے ہیں، جی آئی ٹی میں محفوظ ہیں، درخواست کی شاخیں، یہ سب کچھ۔ منفی پہلو پر، اس نے کئی سالوں سے بیٹا اسٹیٹس نہیں چھوڑا ہے، حالانکہ یہ ہر ریلیز کے ساتھ بہتر ہوتا جا رہا ہے۔ میں EDT کے نقصانات کے بارے میں نہیں لکھوں گا، آج یہ مائنس ہے، کل یہ ایک مقررہ خصوصیت ہے۔ اس طرح کی وضاحت کی مطابقت بہت جلد ختم ہو جائے گی۔ آج EDT میں ترقی کرنا ممکن ہے، لیکن یہ غیر معمولی ہے؛ آپ کو IDE کی ایک مخصوص تعداد کے لیے تیار رہنے کی ضرورت ہے۔

اگر آپ مذکورہ بالا "1C prism" کے ذریعے صورتحال پر نظر ڈالتے ہیں، تو آپ کو کچھ اس طرح ملتا ہے: نئے IDE کے اجراء سے بکسوں کی فروخت میں اضافہ نہیں ہوتا، لیکن DEVELOPERS کا اخراج کم ہو سکتا ہے۔ یہ کہنا مشکل ہے کہ ڈویلپر کے آرام کے لحاظ سے ماحولیاتی نظام کا کیا انتظار ہے، لیکن مائیکروسافٹ نے پہلے ہی موبائل ڈویلپرز کو اپنی خدمات بہت تاخیر سے پیش کر کے ان کو پریشان کر دیا ہے۔

ترقیاتی انتظام

یہاں سب کچھ تحریری کوڈ کے مقابلے میں نمایاں طور پر بہتر ہے، خاص طور پر حال ہی میں، جب کمیونٹی کی کوششوں نے ایڈمنسٹریشن آٹومیشن کے مسائل کو سامنے لایا، 1C ریپوزٹری کو ردی کی ٹوکری میں پھینکنے اور گٹ، فوری الزام، کوڈ کا جائزہ لینے کے لیے پروٹوٹائپز کا آغاز کیا۔ ، جامد تجزیہ، خودکار تعیناتی اور وغیرہ۔ پلیٹ فارم میں بہت سی خصوصیات شامل کی گئی ہیں جو ترقیاتی کاموں کے آٹومیشن کی سطح کو بڑھاتی ہیں۔ تاہم، یہ تمام خصوصیات صرف اور صرف ہماری اپنی بڑی مصنوعات کی ترقی کے لیے شامل کی گئیں، جب یہ واضح ہو گیا کہ ہم آٹومیشن کے بغیر نہیں کر سکتے۔ خودکار انضمام تھے، KDiff کے ساتھ تین طرفہ موازنہ اور یہ سب۔ گیتھب پر لانچ کیا گیا۔ gitconverter، جو، واضح طور پر، نظریاتی طور پر اس منصوبے سے دور گھسیٹا گیا تھا۔ gitsync، لیکن وینڈر کمپنی کے عمل کے مطابق ترمیم کی گئی ہے۔ اوپن سورس کے ضدی لڑکوں کا شکریہ، 1C میں ترقیاتی آٹومیشن زمین سے اتر گئی۔ کنفیگریٹر کے لیے ایک کھلا API، IMHO، مرکزی IDE کی اخلاقی پسماندگی کو بھی بدل دے گا۔

آج، جیرا میں مسائل سے منسلک کمٹ کے ساتھ گٹ میں 1C ذرائع کو اسٹور کرنا، کروسیبل میں جائزے، جینکنز سے پش بٹن اور 1C میں کوڈ ٹیسٹنگ پر ایلور رپورٹس اور یہاں تک کہ سونار کیوب میں جامد تجزیہ - یہ خبروں سے بہت دور ہے، بلکہ ان کمپنیوں میں مرکزی دھارے میں شامل ہے جہاں بہت زیادہ 1C ترقی ہے۔

انتظامیہ

یہاں کہنے کو بہت کچھ ہے۔ سب سے پہلے، یہ یقیناً ایک سرور ہے (1C سرور کلسٹر)۔ ایک حیرت انگیز چیز، لیکن اس حقیقت کی وجہ سے کہ یہ ایک مکمل طور پر بلیک باکس ہے، کافی تفصیل کے ساتھ دستاویزی ہے، لیکن ایک مخصوص انداز میں - کئی سرورز پر ہائی لوڈ موڈ میں بلاتعطل آپریشن شروع کرنے میں مہارت حاصل کرنا کچھ منتخب افراد کا بہت بڑا کام ہے۔ "تکنیکی مسائل کے ماہر" کے ساتھ تمغہ۔ یہ بات قابل غور ہے کہ اصولی طور پر، 1C سرور کا انتظام کسی دوسرے سرور کے انتظام سے مختلف نہیں ہے۔ یہ ایک نیٹ ورک پر مبنی، ملٹی تھریڈ ایپلی کیشن ہے جو میموری، CPU، اور ڈسک کے وسائل استعمال کرتی ہے۔ ٹیلی میٹری جمع کرنے اور تشخیص کے لیے کافی مواقع فراہم کرتا ہے۔

یہاں مسئلہ یہ ہے کہ فروش اس انتہائی تشخیصی کے لیے تیار حل کے معاملے میں کچھ خاص پیش نہیں کرتا ہے۔ ہاں، 1C ہے: انسٹرومینٹیشن اینڈ کنٹرول سینٹر، وہ بھی کافی اچھے ہیں، لیکن وہ بہت مہنگے ہیں اور ہر کسی کے پاس نہیں ہے۔ معیاری ایڈمن سیٹ سے Grafana، Zabbix، ELK اور دیگر چیزوں کو جوڑنے کے لیے کمیونٹی میں متعدد پیشرفتیں ہیں، لیکن ایسا کوئی واحد حل نہیں ہے جو اکثریت کے لیے موزوں ہو۔ کام اپنے ہیرو کا منتظر ہے۔ اور اگر آپ ایک ایسا کاروبار ہیں جو 1C کلسٹر پر لانچ کرنے کا ارادہ رکھتا ہے، تو آپ کو ایک ماہر کی ضرورت ہے۔ آپ کا اندر سے ہو یا باہر سے، لیکن آپ کو اس کی ضرورت ہے۔ یہ عام بات ہے کہ سرور کے آپریشن کے لیے قابلیت کے ساتھ ایک الگ کردار ہوتا ہے، ہر 1C صارف کو یہ معلوم نہیں ہونا چاہیے، آپ کو صرف یہ سمجھنے کی ضرورت ہے کہ ایسے کردار کی ضرورت ہے۔ آئیے مثال کے طور پر SAP لیں۔ وہاں، ایک پروگرامر، غالباً، اپنی کرسی سے بھی نہیں اٹھے گا اگر اسے ایپلیکیشن سرور پر کچھ ترتیب دینے کو کہا جائے۔ وہ صرف بیوقوف ہو سکتا ہے اور اسے شرم نہیں آئے گی۔ SAP طریقہ کار میں اس کے لیے ملازم کا الگ کردار ہے۔ کسی وجہ سے، 1C انڈسٹری میں یہ خیال کیا جاتا ہے کہ اسے ایک ہی تنخواہ کے لیے ایک ملازم میں ملایا جانا چاہیے۔ یہ ایک فریب ہے۔

1C سرور کے نقصانات

بالکل ایک مائنس ہے - وشوسنییتا. یا، اگر آپ چاہیں تو، غیر متوقع۔ سرور کا اچانک عجیب رویہ پہلے ہی شہر کا چرچا بن چکا ہے۔ ایک آفاقی علاج - سرور کو روکنا اور تمام کیچز کو صاف کرنا - یہاں تک کہ ماہر کی ہینڈ بک میں بیان کیا گیا ہے، اور یہاں تک کہ ایک بیچ بک کی سفارش کی گئی ہے جو ایسا کرتی ہے۔ اگر آپ کا 1C سسٹم کچھ ایسا کرنا شروع کر دیتا ہے جو اسے نظریاتی طور پر بھی نہیں کرنا چاہیے، تو یہ سیشن ڈیٹا کیش کو صاف کرنے کا وقت ہے۔ میرے اندازے کے مطابق پورے ملک میں صرف تین لوگ ہیں جو جانتے ہیں کہ اس طریقہ کار کے بغیر 1C سرور کیسے چلانا ہے اور وہ راز نہیں بتاتے، کیونکہ... وہ اس سے رہتے ہیں. شاید ان کا راز یہ ہے کہ وہ سیشن کا ڈیٹا صاف کرتے ہیں، لیکن وہ اس کے بارے میں کسی کو نہیں بتاتے، یار۔

بصورت دیگر، 1C سرور وہی ایپلی کیشن ہے جو کسی دوسرے کے طور پر ہے اور دستاویزات کو پڑھ کر اور دف پر دستک دے کر اس کا انتظام بالکل اسی طرح کیا جاتا ہے۔

میں Docker

پیداوار میں کنٹینرائزڈ 1C سرور کے استعمال کی افادیت ابھی تک ثابت نہیں ہوئی ہے۔ سرور کو صرف بیلنسر کے پیچھے نوڈس جوڑ کر کلسٹر نہیں کیا جاتا ہے، جس سے پیداوار کنٹینرائزیشن کے فوائد کم سے کم ہو جاتے ہیں، اور ہائی لوڈ موڈ میں کنٹینرز میں کامیاب آپریشن کی مشق قائم نہیں کی گئی ہے۔ نتیجے کے طور پر، ٹیسٹ کے ماحول کو ترتیب دینے کے لیے صرف ڈویلپرز Docker+1C استعمال کرتے ہیں۔ وہاں یہ بہت مفید ہے، لاگو کیا جاتا ہے، آپ کو جدید ٹیکنالوجی کے ساتھ کھیلنے اور کنفیگریٹر کی مایوسی سے وقفہ لینے کی اجازت دیتا ہے۔

تجارتی جزو

سرمایہ کاری کے نقطہ نظر سے، 1C آپ کو ایپلیکیشن کلاسز کی وسیع صلاحیتوں کی وجہ سے تیزی سے کاروباری آئیڈیاز شروع کرنے کا مسئلہ حل کرنے کی اجازت دیتا ہے۔ 1C آؤٹ آف دی باکس بہت مہذب رپورٹنگ، کسی بھی چیز کے ساتھ انضمام، ویب کلائنٹ، موبائل کلائنٹ، موبائل ایپلیکیشن، مختلف DBMSs کے لیے سپورٹ، بشمول دیتا ہے۔ مفت، کراس پلیٹ فارم دونوں سرور اور انسٹال کلائنٹ کے حصے۔ ہاں، ایپلی کیشنز کا UI پیلا ہوگا، بعض اوقات یہ مائنس ہوتا ہے، لیکن ہمیشہ نہیں۔
1C کا انتخاب کرنے سے، ایک کاروبار کو سافٹ ویئر سلوشنز کا ایک سیٹ ملتا ہے جو انہیں ایپلی کیشنز کی ایک بہت وسیع رینج بنانے کی اجازت دیتا ہے، ساتھ ہی مارکیٹ میں بہت سارے ڈویلپرز جو Javaists سے کم پیسے چاہتے ہیں اور ساتھ ہی ساتھ تیزی سے نتائج بھی دیتے ہیں۔

مثال کے طور پر، ایک کلائنٹ کو پی ڈی ایف انوائس بھیجنے کا کام طالب علم کے کام کے ایک گھنٹے میں حل کیا جا سکتا ہے۔ .NET میں بھی یہی مسئلہ ایک ملکیتی لائبریری خرید کر، یا ایک سخت داڑھی والے ڈویلپر کے ذریعے چند دنوں یا ہفتوں کی کوڈنگ سے حل کیا جا سکتا ہے۔ کبھی کبھی، دونوں ایک ساتھ۔ اور ہاں، میں صرف پی ڈی ایف جنریشن کی بات کر رہا تھا۔ ہم نے یہ نہیں بتایا کہ یہ بل کہاں سے آئے گا۔ ویب فرنٹنڈر کو ایک فارم بنانا ہوگا جہاں آپریٹر ڈیٹا داخل کرے گا، بیکینڈر کو JSON کی منتقلی کے لیے dto ماڈل بنانا ہوں گے، ڈیٹا بیس میں اسٹور کرنے کے لیے ماڈلز، خود ڈیٹا بیس کی ساخت، اس میں منتقلی، گرافیکل کی تشکیل اسی اکاؤنٹ کا ڈسپلے، اور تب ہی - PDF۔ 1C پر، مکمل کام، شروع سے، بالکل ایک گھنٹے میں مکمل ہو جاتا ہے۔

ایک چھوٹے اسٹال کے لیے ایک مکمل اکاؤنٹنگ سسٹم جس میں ایک کاروباری عمل خریدا/بیچ گیا ہے 3 گھنٹے میں مکمل ہو جاتا ہے۔ سیلز رپورٹنگ کے ساتھ، خرید و فروخت کی قیمتوں پر سامان کا حساب کتاب، گودام سے ٹوٹا ہوا، رسائی کے حقوق کا کنٹرول، ویب کلائنٹ اور موبائل ایپلیکیشن . ٹھیک ہے، میں درخواست کے بارے میں بھول گیا، درخواست کے ساتھ 3 گھنٹے میں نہیں، چھ میں۔

اس کام میں .NET ڈویلپر کو صاف کمپیوٹر پر بصری اسٹوڈیو انسٹال کرنے سے لے کر کسٹمر کو اس کا مظاہرہ کرنے میں کتنا وقت لگے گا؟ ترقی کی لاگت کا کیا ہوگا؟ ایک ہی بات.

ایک پلیٹ فارم کے طور پر 1C کی طاقت

1C مضبوط نہیں ہے کیونکہ اس کے بارے میں کچھ خاص ہے جو دنیا میں بہترین ہے۔ اس کے برعکس، ہر انفرادی سب سسٹم میں آپ کو دنیا کے سافٹ ویئر میں زیادہ دلچسپ اینالاگ مل سکتا ہے۔ تاہم، عوامل کے مجموعہ کی بنیاد پر، مجھے 1C جیسا پلیٹ فارم نظر نہیں آتا۔ یہ وہ جگہ ہے جہاں تجارتی کامیابی مضمر ہے۔ پلیٹ فارم کے فوائد اس میں بکھرے ہوئے ہیں اور سب سے زیادہ واضح طور پر نظر آتے ہیں جب آپ دیکھتے ہیں کہ یہ دوسرے پلیٹ فارمز میں کیسے کیا جاتا ہے۔ بنیادی طور پر، یہ خصوصیات بھی نہیں ہیں، لیکن اس کے برعکس - ایک مخصوص تمثیل کے حق میں خصوصیات کا رد۔ چند مثالیں:

  1. یونیکوڈ اس سے آسان اور کیا ہو سکتا ہے؟ 2019 میں سنگل بائٹ ASCII انکوڈنگز استعمال کرنے کی کوئی ضرورت نہیں ہے (سوائے قدیم میراث کے ساتھ انضمام کے)۔ کبھی نہیں۔ لیکن نہیں. بہر حال، کچھ ٹیبل میں کوئی ایک سنگل بائٹ ورچار استعمال کرتا ہے اور ایپلیکیشن کو انکوڈنگز میں دشواری ہوگی۔ 2015 میں، gitlab کی LDAP کی اجازت انکوڈنگز کے ساتھ غلط کام کی وجہ سے ناکام ہوگئی؛ JetBrains IDE اب بھی ہر جگہ فائل کے ناموں میں Cyrillic کے ساتھ کام نہیں کرتا ہے۔ 1C ڈیٹابیس پرت سے ایپلیکیشن کوڈ کی اعلیٰ معیار کی تنہائی فراہم کرتا ہے۔ وہاں نچلی سطح پر ٹیبلز کو ٹائپ کرنا ناممکن ہے اور ڈیٹا بیس کی سطح پر نااہل جونیئرز کا جمنا وہاں ناممکن ہے۔ ہاں، نااہل جونیئرز کے ساتھ اور بھی مسائل ہو سکتے ہیں، لیکن مسائل کی قسم بہت چھوٹی ہے۔ اب آپ مجھے بتائیں گے کہ آپ کی ایپلی کیشن درست طریقے سے ڈیزائن کی گئی ہے اور ڈیٹابیس ایکسیس لیئر کو الگ تھلگ کر دیا گیا ہے جیسا کہ ہونا چاہیے۔ اپنی کارپوریٹ کسٹم جاوا ایپلیکیشن پر ایک اور نظر ڈالیں۔ قریب سے اور ایمانداری سے۔ کیا آپ کا ضمیر آپ کو پریشان کرتا ہے؟ پھر میں آپ کے لئے خوش ہوں.
  2. دستاویزات / حوالہ جاتی کتابوں کی تعداد۔ 1C میں یہ یقینی طور پر سب سے زیادہ لچکدار اور بہترین نہیں ہے۔ لیکن وہ جو کچھ بینکنگ سافٹ ویئر اور خود تحریری اکاؤنٹنگ سسٹم میں کرتے ہیں - ٹھیک ہے، یہ صرف اندھیرا ہے۔ یا تو شناخت پھنس جائے گی (اور پھر "اوہ، ہمارے پاس سوراخ کیوں ہیں")، یا اس کے برعکس، وہ ایک جنریٹر بنائیں گے جو ڈی بی ایم ایس کی سطح پر لاکنگ کے ساتھ کام کرے گا (اور ایک رکاوٹ بن جائے گا)۔ درحقیقت، یہ بظاہر آسان کام کرنا کافی مشکل ہے - ہستیوں کا ایک آخر سے آخر تک شمار کنندہ، جس میں انفرادیت سیکشن کی بنیاد پر ایک مخصوص سیٹ، سابقہ ​​ہے، تاکہ متوازی ڈیٹا انٹری کے دوران یہ ڈیٹا بیس کو بلاک نہ کرے۔ .
  3. ڈیٹا بیس میں ریکارڈز کی شناخت کرنے والے۔ 1C نے ایک مضبوط ارادے سے فیصلہ کیا - تمام لنک شناخت کنندگان بالکل مصنوعی ہیں اور بس۔ اور تقسیم شدہ ڈیٹا بیس اور تبادلے کے ساتھ کوئی مسئلہ نہیں ہے۔ دوسرے سسٹمز کے ڈویلپرز ضد کے ساتھ شناخت جیسی کوئی چیز تخلیق کرتے ہیں (یہ چھوٹا ہے!)، انہیں GUI میں اس وقت تک گھسیٹیں جب تک کہ متعدد متعلقہ مثالیں بنانے کا وقت نہ ہو جائے (اور پھر انہیں دریافت کیا جائے گا)۔ کیا آپ کے پاس یہ نہیں ہے؟ ایمانداری سے؟
  4. فہرستیں 1C میں (بڑی) فہرستوں کے ذریعے صفحہ بندی کرنے اور ان کے ذریعے نیویگیٹ کرنے کا کافی کامیاب طریقہ کار ہے۔ مجھے فوراً ریزرویشن کرنے دو - طریقہ کار کے صحیح استعمال کے ساتھ! عام طور پر، موضوع کافی ناخوشگوار ہے، اسے مثالی طور پر حل نہیں کیا جا سکتا: یہ یا تو بدیہی اور سادہ ہے (لیکن کلائنٹ پر بہت زیادہ ریکارڈ سیٹ کا خطرہ)، یا صفحہ بندی ایک یا دوسری ٹیڑھی ہے۔ جو لوگ پیجنگ کرتے ہیں وہ اکثر ٹیڑھی کر کے کرتے ہیں۔ جو لوگ ایماندار اسکرول بار بناتے ہیں وہ ایک ڈیٹا بیس، ایک چینل اور ایک کلائنٹ شامل کرتے ہیں۔
  5. منظم فارمز۔ کوئی شک نہیں، ویب کلائنٹ میں انٹرفیس بالکل کام نہیں کرتا۔ لیکن یہ کام کرتا ہے۔ لیکن بہت سے دوسرے اکاؤنٹنگ اور بینکنگ سسٹمز کے لیے، ایک دور دراز کام کی جگہ بنانا ایک انٹرپرائز سطح کا منصوبہ ہے۔ دستبرداری: خوش قسمتی سے ان لوگوں کے لیے جنہوں نے اسے اصل میں ویب پر بنایا، اس سے کوئی فرق نہیں پڑے گا۔
  6. موبائل ایپ۔ حال ہی میں، آپ اسی ماحولیاتی نظام میں رہتے ہوئے بھی موبائل ایپلیکیشنز لکھ سکتے ہیں۔ یہ ویب کلائنٹ کے مقابلے میں یہاں تھوڑا زیادہ پیچیدہ ہے؛ آلات کی تفصیلات آپ کو ان کے لیے خاص طور پر لکھنے پر مجبور کرتی ہیں، لیکن، اس کے باوجود، آپ موبائل ڈویلپرز کی علیحدہ ٹیم کی خدمات حاصل نہیں کرتے ہیں۔ اگر آپ کو کسی کمپنی کی اندرونی ضروریات کے لیے کسی ایپلی کیشن کی ضرورت ہے (جب کسی کارپوریٹ مسئلے کا موبائل حل پیلے رنگ کے UI ڈیزائن سے زیادہ اہم ہوتا ہے)، تو آپ صرف اسی پلیٹ فارم کو باکس سے باہر استعمال کرتے ہیں۔
  7. رپورٹنگ۔ اس لفظ سے میرا مطلب بڑا ڈیٹا والا BI سسٹم نہیں ہے اور ETL عمل میں وقفہ ہے۔ اس سے مراد آپریشنل عملے کی رپورٹس ہیں جو آپ کو یہاں اور اب اکاؤنٹنگ کی حالت کا اندازہ لگانے کی اجازت دیتی ہیں۔ توازن، باہمی تصفیے، دوبارہ درجہ بندی، وغیرہ۔ 1C ایک رپورٹنگ سسٹم کے ساتھ باکس سے باہر آتا ہے جس میں صارف کی طرف گروپ بندی، فلٹرز اور ویژولائزیشن کے لیے لچکدار سیٹنگ ہوتی ہے۔ ہاں، مارکیٹ میں ٹھنڈے ینالاگ موجود ہیں۔ لیکن آل ان ون حل کے فریم ورک کے اندر نہیں اور قیمت پر کبھی کبھی آل ان ون حل سے زیادہ۔ اور اکثر یہ اس کے برعکس ہوتا ہے: صرف رپورٹنگ، لیکن پورے پلیٹ فارم سے زیادہ مہنگی، اور معیار میں بدتر۔
  8. پرنٹ ایبل فارم۔ ٹھیک ہے، ملازمین کو ای میل کے ذریعے پی ڈی ایف میں تنخواہ کی سلپس بھیجنے کے مسئلے کو حل کرنے کے لیے .NET کا استعمال کریں۔ اور اب انوائس پرنٹ کرنے کا کام۔ ان کی کاپیاں اسی پی ڈی ایف میں محفوظ کرنے کے بارے میں کیا خیال ہے؟ 1C عرفیت کے لیے، PDF میں کسی بھی ترتیب کو آؤٹ پٹ کرنا +1 لائن آف کوڈ ہے۔ اس کا مطلب ہے + 40 سیکنڈ کام کرنے کا وقت، دوسری زبان میں دنوں یا ہفتوں کے بجائے۔ 1C میں پرنٹ شدہ فارم لے آؤٹ تیار کرنے میں ناقابل یقین حد تک آسان اور بامعاوضہ ہم منصبوں کے ساتھ مقابلہ کرنے کے لیے کافی طاقتور ہیں۔ ہاں، شاید، 1C اسپریڈشیٹ دستاویزات میں بہت زیادہ انٹرایکٹو مواقع نہیں ہیں؛ آپ OpenGL کا استعمال کرتے ہوئے اسکیلنگ کے ساتھ 3D خاکہ جلدی حاصل نہیں کر سکتے۔ لیکن کیا یہ واقعی ضروری ہے؟

یہ صرف چند مثالیں ہیں جہاں فعالیت کو محدود کرنا یا سمجھوتوں کو نافذ کرنا مستقبل میں ایک اہم تعمیراتی فائدہ ثابت ہوتا ہے۔ یہاں تک کہ ایک سمجھوتہ یا سب سے مؤثر آپشن نہیں - یہ پہلے سے ہی باکس میں ہے اور اسے قبول کیا جاتا ہے۔ اس کا آزادانہ عمل درآمد یا تو ناممکن ہوگا (کیونکہ اس طرح کے فیصلے پراجیکٹ کے آغاز میں ہونے چاہئیں، اور اس کے لیے کوئی وقت نہیں ہے، اور کوئی معمار بھی نہیں ہے)، یا کئی مہنگے تکرار۔ درج کردہ پوائنٹس میں سے ہر ایک میں (اور یہ آرکیٹیکچرل حل کی مکمل فہرست نہیں ہے)، آپ پیچیدگیاں پیدا کر سکتے ہیں اور ایسی پابندیاں متعارف کروا سکتے ہیں جو سکیلنگ کو روکتی ہیں۔ کسی بھی صورت میں، آپ کو، ایک تاجر کے طور پر، اس بات کو یقینی بنانا ہوگا کہ آپ کے پروگرامرز، جب "شروع سے نظام" بناتے ہیں، تو ان کے ہاتھ سیدھے ہوں اور وہ ٹھیک ٹھیک نظام کے مسائل کو فوراً ٹھیک کر لیں گے۔

ہاں، کسی دوسرے پیچیدہ نظام کی طرح، 1C میں بھی ایسے حل موجود ہیں جو بعض پہلوؤں میں اسکیلنگ کو روکتے ہیں۔ تاہم، میں دہراتا ہوں، عوامل کے امتزاج، ملکیت کی قیمت، اور پہلے سے حل شدہ مسائل کی تعداد کی بنیاد پر، مجھے مارکیٹ میں کوئی قابل حریف نظر نہیں آتا۔ اسی قیمت پر آپ کو ایک مالیاتی ایپلیکیشن فریم ورک، ایک کلسٹرڈ متوازن سرور، ایک UI اور ویب انٹرفیس کے ساتھ، ایک موبائل ایپلیکیشن کے ساتھ، رپورٹنگ، انضمام اور دیگر چیزوں کا ایک گروپ ملتا ہے۔ جاوا کی دنیا میں، آپ فرنٹ اینڈ اور بیک اینڈ ٹیم کی خدمات حاصل کرتے ہیں، گھر میں لکھے ہوئے سرور کوڈ کے نچلے درجے کے شولز کو ڈیبگ کرتے ہیں اور 2 موبائل OS کے لیے 2 موبائل ایپلیکیشنز کے لیے الگ سے ادائیگی کرتے ہیں۔

میں یہ نہیں کہہ رہا ہوں کہ 1C تمام معاملات کو حل کرے گا، لیکن اندرونی کارپوریٹ ایپلی کیشن کے لیے، جب UI کو برانڈ کرنے کی ضرورت نہیں ہے - اور کیا ضرورت ہے؟

مرہم میں اڑنا

آپ کو شاید یہ تاثر ملا کہ 1C دنیا کو بچائے گا اور یہ کہ کارپوریٹ سسٹم لکھنے کے دیگر تمام طریقے غلط ہیں۔ ایسا بالکل نہیں ہے۔ ایک تاجر کے نقطہ نظر سے، اگر آپ 1C کا انتخاب کرتے ہیں، تو مارکیٹ کے لیے تیز رفتار کے علاوہ، آپ کو درج ذیل نقصانات کو بھی مدنظر رکھنا چاہیے:

  • سرور کی وشوسنییتا واقعی اعلیٰ معیار کے ماہرین کی ضرورت ہے جو اس کے بلاتعطل آپریشن کو یقینی بنا سکیں۔ میں وینڈر کی طرف سے ایسے ماہرین کے لیے تیار شدہ تربیتی پروگرام سے واقف نہیں ہوں۔ ماہرین کے امتحان کی تیاری کے لیے کورسز موجود ہیں، لیکن میری رائے میں یہ کافی نہیں ہے۔
  • حمایت. پچھلا پیراگراف دیکھیں۔ وینڈر سے تعاون حاصل کرنے کے لیے، آپ کو اسے خریدنا ہوگا۔ کسی وجہ سے یہ 1C انڈسٹری میں قبول نہیں ہے۔ اور SAP کے ساتھ، یہ تقریباً ایک لازمی خریداری ہے اور یہ کسی کو پریشان نہیں کرتا ہے۔ کارپوریٹ سپورٹ کے بغیر اور عملے کے ماہر کے بغیر، آپ 1C کی خرابیوں کے ساتھ تنہا رہ سکتے ہیں۔
  • پھر بھی، آپ 1C کے ساتھ بالکل سب کچھ نہیں کر سکتے۔ یہ ایک ٹول ہے اور ہر ٹول کی طرح اس میں بھی لاگو ہونے کی حد ہوتی ہے۔ 1C زمین کی تزئین میں، "نان-1C" سسٹم آرکیٹیکٹ کا ہونا بہت ضروری ہے۔
  • اچھے 1C عرفی نام دوسری زبانوں میں اچھے پروگرامرز سے سستے نہیں ہیں۔ اگرچہ، خراب پروگرامرز کی خدمات حاصل کرنا مہنگا ہوتا ہے، چاہے وہ کسی بھی زبان میں لکھیں۔

آئیے نقطوں کو ڈاٹ کرتے ہیں۔

  • 1C کاروبار کے لیے ایک تیز رفتار ایپلیکیشن ڈویلپمنٹ (RAD) فریم ورک ہے اور اس کے لیے تیار کیا گیا ہے۔
  • بڑے DBMSs، کلائنٹ UI، ایک بہت اچھا ORM اور رپورٹنگ کے لیے تعاون کے ساتھ تین درجے کا لنک
  • سسٹمز کے ساتھ انضمام کے وسیع امکانات جو وہ کر سکتے ہیں جو 1C نہیں کر سکتا۔ اگر آپ مشین لرننگ چاہتے ہیں تو Python لیں اور نتیجہ 1C پر HTTP یا RabbitMQ کے ذریعے بھیجیں۔
  • 1C کا استعمال کرتے ہوئے سب کچھ کرنے کی کوشش کرنے کی ضرورت نہیں ہے، آپ کو اس کی خوبیوں کو سمجھنا ہوگا اور اسے اپنے مقاصد کے لیے استعمال کرنا ہوگا۔
  • وہ ڈویلپر جو تکنیکی فریم ورک گیجٹس میں کھودنے اور ہر N سال میں نئے انجن کو دوبارہ ڈیزائن کرنے کی طرف راغب ہوتے ہیں وہ 1C سے بور ہو جاتے ہیں۔ وہاں سب کچھ بہت قدامت پسند ہے۔
  • ڈویلپرز بھی بور ہیں کیونکہ مینوفیکچرر کی طرف سے ان کے لیے بہت کم تشویش ہے۔ بورنگ زبان، کمزور IDE۔ انہیں جدید کاری کی ضرورت ہے۔
  • دوسری طرف، وہ ڈویلپر جو کسی دوسری ٹیکنالوجی کے استعمال اور سیکھنے کے ذریعے مزہ نہیں پا سکتے جس سے وہ لطف اندوز ہوتے ہیں وہ خراب ڈویلپر ہیں۔ وہ چیخیں ماریں گے اور دوسرے ماحولیاتی نظام میں چلے جائیں گے۔
  • وہ آجر جو اپنے 1C عرفی ناموں کو Python میں کچھ لکھنے کی اجازت نہیں دیتے ہیں وہ برے آجر ہیں۔ وہ جستجو کرنے والے دماغ والے ملازمین سے محروم ہو جائیں گے، اور ان کی جگہ بندر کوڈ کرنے والے آئیں گے، جو ہر بات سے اتفاق کرتے ہوئے، کارپوریٹ سافٹ ویئر کو دلدل میں گھسیٹیں گے۔ اسے اب بھی دوبارہ لکھنا پڑے گا، تو شاید یہ بہتر ہو گا کہ ازگر میں تھوڑی دیر پہلے تھوڑی سی سرمایہ کاری کی جائے؟
  • 1C ایک تجارتی کمپنی ہے اور صرف اپنے مفادات اور مصلحت کی بنیاد پر خصوصیات کو نافذ کرتی ہے۔ آپ اس کے لیے اس پر الزام نہیں لگا سکتے، کاروبار کو منافع کے بارے میں سوچنا چاہیے، یہی زندگی ہے۔
  • 1C کاروباری مسائل کے حل بیچ کر پیسہ کماتا ہے، نہ کہ Vasya کے ڈویلپر کے مسائل کو۔ یہ دونوں تصورات آپس میں جڑے ہوئے ہیں، لیکن ترجیح وہی ہے جو میں نے کہا۔ جب ڈویلپر Vasya 1C: Resharper کے ذاتی لائسنس کی ادائیگی کے لیے تیار ہوتا ہے، تو یہ بہت جلد ظاہر ہو جائے گا، A. Orefkova کا "Resharper" اس کا ثبوت ہے۔ اگر وینڈر اس کی حمایت کرتا ہے، اور اس کے خلاف جنگ نہیں کرتا ہے، تو ڈویلپرز کے لیے سافٹ ویئر کا ایک بازار ظاہر ہوگا۔ اب اس مارکیٹ میں قابل اعتراض نتائج کے ساتھ ڈیڑھ کھلاڑی ہیں، اور یہ سب اس لیے کہ IDE کے ساتھ انضمام منفی ہے اور سب کچھ بیساکھیوں پر کیا جاتا ہے۔
  • ملٹی مشین آپریٹر کی مشق فراموشی میں غائب ہو جائے گی۔ جدید ایپلیکیشنز کوڈ سائیڈ اور کاروباری استعمال دونوں طرف سے یاد رکھنے کے لیے بہت بڑی ہیں۔ 1C سرور بھی پیچیدہ ہوتا جا رہا ہے؛ ایک ملازم میں ہر قسم کی مہارت رکھنا ناممکن ہو جائے گا۔ اس میں ماہرین کی مانگ ہونی چاہیے، جس کا مطلب ہے 1C پیشے کی کشش اور تنخواہوں میں اضافہ۔ اگر پہلے واسیا ایک تنخواہ کے لیے تین میں کام کرتے تھے، تو اب آپ کو دو واسیوں کی خدمات حاصل کرنے کی ضرورت ہے اور واسیوں کے درمیان مقابلہ ان کی سطح کی مجموعی ترقی کو بڑھا سکتا ہے۔

حاصل يہ ہوا

1C ایک بہت ہی قابل مصنوعات ہے۔ میری قیمت کی حد میں، میں کسی بھی ینالاگ کو نہیں جانتا، اگر کوئی ہیں تو تبصرے میں لکھیں۔ تاہم، ماحولیاتی نظام سے ڈویلپرز کا اخراج زیادہ سے زیادہ نمایاں ہوتا جا رہا ہے، اور یہ ایک "دماغی نالی" ہے، چاہے آپ اسے کس طرح دیکھیں۔ انڈسٹری جدیدیت کی بھوکی ہے۔
اگر آپ ایک ڈویلپر ہیں، تو 1C کو مت چھوڑیں اور یہ نہ سوچیں کہ دوسری زبانوں میں سب کچھ جادوئی ہے۔ جب کہ آپ جونیئر ہیں، شاید۔ جیسے ہی کسی بڑی چیز کو حل کرنے کی ضرورت ہے، تیار شدہ حلوں کو زیادہ دیر تک تلاش کرنا پڑے گا اور زیادہ شدت سے مکمل کرنا ہوگا۔ "بلاکس" کے معیار کے لحاظ سے جہاں سے حل بنایا جا سکتا ہے، 1C بہت، بہت اچھا ہے۔

اور ایک بات - اگر کوئی 1C عرفی نام آپ کے پاس کرایہ پر لینے کے لیے آتا ہے، تو 1C عرفی نام کو محفوظ طریقے سے لیڈ تجزیہ کاروں کے عہدے پر مقرر کیا جا سکتا ہے۔ کام، موضوع کے علاقے، اور سڑن کی مہارت کے بارے میں ان کی سمجھ بہت عمدہ ہے۔ مجھے یقین ہے کہ یہ 1C کی ترقی میں DDD کے جبری استعمال کی وجہ سے ہے۔ فرد کو سب سے پہلے کام کے معنی کے بارے میں سوچنے کی تربیت دی جاتی ہے، موضوع کے علاقے کی اشیاء کے درمیان روابط کے بارے میں، اور ساتھ ہی ساتھ انضمام ٹیکنالوجیز اور ڈیٹا ایکسچینج فارمیٹس میں تکنیکی پس منظر رکھتا ہے۔

آگاہ رہیں کہ مثالی فریم ورک موجود نہیں ہے اور اپنا خیال رکھیں۔
سب کے لئے اچھا ہے!

PS: بہت بہت شکریہ speshuric مضمون کی تیاری میں مدد کے لیے۔

سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔ سائن ان، برائے مہربانی.

کیا آپ کے انٹرپرائز میں 1C ہے؟

  • 13,3٪ہرگز نہیں۔71

  • 30,3٪وہاں ہے، لیکن صرف اکاؤنٹنگ ڈیپارٹمنٹ میں کہیں. دوسرے پلیٹ فارمز پر بنیادی نظام 162

  • 41,4٪جی ہاں، اہم کاروباری عمل اس پر کام کرتے ہیں 221

  • 15,0٪1C مرنا ضروری ہے، مستقبل %technology_name%80 کا ہے۔

534 صارفین نے ووٹ دیا۔ 99 صارفین غیر حاضر رہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں