ویب ایپلیکیشنز بنانے اور شائع کرنے کے لیے چیک لسٹ

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

یہ مضمون ان لوگوں کی مدد کر سکتا ہے جو صرف ویب ایپلیکیشنز بنانے کی بنیادی باتیں سیکھ رہے ہیں اور بنیادی شرائط اور کنونشنز کے بارے میں تھوڑا سا سمجھنا چاہتے ہیں۔

لہذا، ایپلیکیشنز کی تعمیر کو اب بھی 2 حصوں میں تقسیم کیا جا سکتا ہے: ہر وہ چیز جو ایپلیکیشن کوڈ سے متعلق ہے، اور ہر وہ چیز جس کا تعلق اس ماحول سے ہے جس میں اس کوڈ کو عمل میں لایا جاتا ہے۔ ایپلیکیشن کوڈ، بدلے میں، سرور کوڈ میں بھی تقسیم کیا جاتا ہے (جو سرور پر چلتا ہے، اکثر: کاروباری منطق، اجازت، ڈیٹا اسٹوریج، وغیرہ)، اور کلائنٹ کوڈ (جو صارف کی مشین پر چلتا ہے: اکثر انٹرفیس، اور اس کے ساتھ متعلقہ منطق)۔

آئیے بدھ سے شروع کرتے ہیں۔

کسی بھی کوڈ، سسٹم، یا سافٹ ویئر کے آپریشن کی بنیاد آپریٹنگ سسٹم ہے، اس لیے ذیل میں ہم ہوسٹنگ مارکیٹ کے سب سے مشہور سسٹمز کو دیکھیں گے اور ان کی مختصر تفصیل دیں گے:

ونڈوز سرور - وہی ونڈوز، لیکن سرور کی مختلف حالتوں میں۔ ونڈوز کے کلائنٹ (باقاعدہ) ورژن میں دستیاب کچھ فعالیت یہاں موجود نہیں ہے، مثال کے طور پر، اعداد و شمار اور اسی طرح کے سافٹ ویئر کو جمع کرنے کے لیے کچھ خدمات، لیکن نیٹ ورک انتظامیہ کے لیے یوٹیلیٹیز کا ایک سیٹ، سرورز کی تعیناتی کے لیے بنیادی سافٹ ویئر (ویب، ایف ٹی پی، ...)۔ عام طور پر، ونڈوز سرور عام ونڈوز کی طرح لگتا ہے، عام ونڈوز کی طرح quacks، تاہم، اس کی قیمت اس کے باقاعدہ ہم منصب سے 2 گنا زیادہ ہے۔ تاہم، یہ دیکھتے ہوئے کہ آپ ممکنہ طور پر ایک وقف/ورچوئل سرور پر ایپلیکیشن کو تعینات کریں گے، آپ کے لیے حتمی قیمت، اگرچہ یہ بڑھ سکتی ہے، اہم نہیں ہے۔ چونکہ ونڈوز پلیٹ فارم صارفین کے OS مارکیٹ میں ایک زبردست مقام رکھتا ہے، اس لیے اس کا سرور ایڈیشن زیادہ تر صارفین کے لیے سب سے زیادہ مانوس ہوگا۔

یونیکس- اسی طرح کا نظام. ان سسٹمز میں روایتی کام کے لیے کسی مانوس گرافیکل انٹرفیس کی موجودگی کی ضرورت نہیں ہوتی، صارف کو صرف ایک کنسول بطور کنٹرول عنصر پیش کرتا ہے۔ ایک ناتجربہ کار صارف کے لیے، اس فارمیٹ میں کام کرنا مشکل ہو سکتا ہے، بس ایک ٹیکسٹ ایڈیٹر سے باہر نکلنے کی کیا قیمت ہے جو ڈیٹا میں کافی مقبول ہے۔ طاقت، اس سے متعلق ایک سوال کو 6 سالوں میں پہلے ہی 1.8 ملین سے زیادہ آراء مل چکے ہیں۔ اس خاندان کی اہم تقسیم (ایڈیشنز) یہ ہیں: Debian - ایک مقبول تقسیم، اس میں پیکیج ورژن بنیادی طور پر LTS پر مرکوز ہیں۔طویل مدتی مدد - ایک طویل عرصے تک سپورٹ)، جس کا اظہار سسٹم اور پیکجوں کی کافی زیادہ وشوسنییتا اور استحکام میں ہوتا ہے۔ اوبنٹو - ان کے تازہ ترین ورژن میں تمام پیکجوں کی تقسیم پر مشتمل ہے، جو استحکام کو متاثر کر سکتا ہے، لیکن آپ کو نئے ورژن کے ساتھ آنے والی فعالیت کو استعمال کرنے کی اجازت دیتا ہے۔ Red Hat Enterprise Linux - OS, تجارتی استعمال کے لیے پوزیشن میں ہے، ادا کی جاتی ہے، تاہم، سافٹ ویئر فروشوں، کچھ ملکیتی پیکجوں اور ڈرائیور پیکجوں کی مدد شامل ہے۔ CentOS - اوپن سورس Red Hat Enterprise Linux کی ایک تبدیلی، ملکیتی پیکجز اور سپورٹ کی عدم موجودگی کی خصوصیت۔

ان لوگوں کے لیے جو ابھی اس علاقے میں مہارت حاصل کرنا شروع کر رہے ہیں، میری سفارش سسٹم ہو گی۔ ونڈوز سروریا اوبنٹو. اگر ہم ونڈوز پر غور کریں، تو یہ بنیادی طور پر سسٹم کی واقفیت ہے، اوبنٹو – اپ ڈیٹس کے لیے زیادہ رواداری، اور بدلے میں، مثال کے طور پر، ٹیکنالوجیز پر پروجیکٹ شروع کرتے وقت کم مسائل جن کے لیے نئے ورژن کی ضرورت ہوتی ہے۔

لہذا، OS پر فیصلہ کرنے کے بعد، آئیے ٹولز کے ایک سیٹ کی طرف بڑھتے ہیں جو آپ کو سرور پر ایپلیکیشن کی حالت یا اس کے پرزوں کی تعیناتی (انسٹال)، اپ ڈیٹ اور نگرانی کرنے کی اجازت دیتے ہیں۔

اگلا اہم فیصلہ آپ کی درخواست اور اس کے لیے سرور کی جگہ کا تعین ہوگا۔ اس وقت، سب سے زیادہ عام 3 طریقے ہیں:

  • اپنے طور پر سرور کی میزبانی (رکھنا) سب سے زیادہ بجٹ کے موافق آپشن ہے، لیکن آپ کو اپنے فراہم کنندہ سے ایک جامد IP آرڈر کرنا پڑے گا تاکہ آپ کا وسائل وقت کے ساتھ ساتھ اپنا پتہ تبدیل نہ کرے۔
  • ایک سرشار سرور (VDS) کرایہ پر لیں - اور آزادانہ طور پر اس کا انتظام کریں اور بوجھ کو پیمانہ کریں۔
  • کچھ کلاؤڈ ہوسٹنگ کی سبسکرپشن کے لیے ادائیگی کریں (اکثر وہ آپ کو پلیٹ فارم کی فعالیت کو مفت میں آزمانے کا موقع دیتے ہیں)، جہاں استعمال شدہ وسائل کے لیے ادائیگی کا ماڈل کافی عام ہے۔ اس سمت کے سب سے نمایاں نمائندے: Amazon AWS (وہ خدمات کو استعمال کرنے کا ایک سال مفت دیتے ہیں، لیکن ماہانہ حد کے ساتھ)، گوگل کلاؤڈ (وہ اکاؤنٹ کو $300 دیتے ہیں، جسے سال کے دوران کلاؤڈ ہوسٹنگ سروسز پر خرچ کیا جا سکتا ہے) , Yandex.Cloud (وہ 4000 ماہ کے لیے 2 روبل دیتے ہیں)، Microsoft Azure (ایک سال کے لیے مشہور سروسز تک مفت رسائی، ایک ماہ کے لیے کسی بھی سروس کے لیے + 12 روبل)۔ اس طرح، آپ ایک پیسہ خرچ کیے بغیر ان فراہم کنندگان میں سے کسی کو بھی آزما سکتے ہیں، لیکن فراہم کردہ سروس کے معیار اور سطح کے بارے میں تخمینی رائے حاصل کر سکتے ہیں۔

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

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

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

عام طور پر، سرور کا بنیادی ڈھانچہ اس طرح لگتا ہے: ہمارے پاس ایک نام نہاد "آرکیسٹریٹر" ہے ("آرکیسٹریشن" کئی سرور مثالوں کو منظم کرنے کا عمل ہے)، جو سرور کی مثال پر ماحولیاتی تبدیلیوں کا انتظام کرتا ہے، ایک ورچوئلائزیشن کنٹینر (اختیاری، لیکن کافی حد تک اکثر استعمال کیا جاتا ہے۔

لہذا، آرکیسٹریشن آپ کو سرورز کی حالت دیکھنے، سرور کے ماحول میں اپ ڈیٹس کو رول آؤٹ یا رول بیک کرنے، وغیرہ کی اجازت دیتا ہے۔ ابتدائی طور پر، اس پہلو سے آپ پر اثر انداز ہونے کا امکان نہیں ہے، کیونکہ کسی بھی چیز کو ترتیب دینے کے لیے، آپ کو کئی سرورز کی ضرورت ہوتی ہے (آپ کے پاس ایک ہو سکتا ہے، لیکن یہ کیوں ضروری ہے؟)، اور متعدد سرور رکھنے کے لیے، آپ کو ان کی ضرورت ہے۔ اس سمت میں ٹولز میں، سب سے زیادہ مقبول ایک Kubernetes ہے، کی طرف سے تیار گوگل.

اگلا مرحلہ OS کی سطح پر ورچوئلائزیشن ہے۔ آج کل، "ڈاکرائزیشن" کا تصور وسیع ہو گیا ہے، جو اس آلے سے آتا ہے۔ میں Docker، جو ایک دوسرے سے الگ تھلگ کنٹینرز کی فعالیت فراہم کرتا ہے، لیکن ایک آپریٹنگ سسٹم کے تناظر میں لانچ کیا جاتا ہے۔ اس کا کیا مطلب ہے: ان میں سے ہر ایک کنٹینر میں آپ ایک ایپلی کیشن، یا ایپلیکیشنز کا ایک سیٹ بھی چلا سکتے ہیں، جو اس مشین پر کسی اور کے وجود پر شک کیے بغیر، پورے OS میں صرف وہی ہیں جو یقین کرے گا۔ یہ فنکشن مختلف ورژنز کی ایک جیسی ایپلی کیشنز، یا محض متضاد ایپلی کیشنز کو لانچ کرنے کے ساتھ ساتھ ایپلیکیشن کے ٹکڑوں کو تہوں میں تقسیم کرنے کے لیے بہت مفید ہے۔ اس پرت کاسٹ کو بعد میں ایک تصویر میں لکھا جا سکتا ہے، جسے استعمال کیا جا سکتا ہے، مثال کے طور پر، کسی ایپلیکیشن کو تعینات کرنے کے لیے۔ یعنی، اس تصویر کو انسٹال کرنے اور اس میں موجود کنٹینرز کو تعینات کرنے سے، آپ کو اپنی ایپلیکیشن چلانے کے لیے تیار ماحول ملتا ہے! پہلے مراحل میں، آپ اس ٹول کو معلوماتی مقاصد کے لیے استعمال کر سکتے ہیں اور ایپلیکیشن منطق کو مختلف پرتوں میں تقسیم کر کے بہت حقیقی فوائد حاصل کر سکتے ہیں۔ لیکن یہاں یہ کہنے کے قابل ہے کہ ہر ایک کو ڈاکرائزیشن کی ضرورت نہیں ہے، اور ہمیشہ نہیں۔ ڈوکرائزیشن کو ان صورتوں میں جائز قرار دیا جاتا ہے جہاں ایپلیکیشن کو "ٹکڑا ہوا"، چھوٹے حصوں میں تقسیم کیا جاتا ہے، ہر ایک اپنے اپنے کام کے لیے ذمہ دار ہوتا ہے، نام نہاد "مائیکرو سروس آرکیٹیکچر"۔

اس کے علاوہ، ماحول فراہم کرنے کے علاوہ، ہمیں ایپلیکیشن کی ایک قابل تعیناتی کو یقینی بنانا ہوگا، جس میں تمام قسم کے کوڈ کی تبدیلی، ایپلیکیشن سے متعلقہ لائبریریوں اور پیکجوں کی تنصیب، ٹیسٹ چلانے، ان کارروائیوں کے بارے میں اطلاعات وغیرہ شامل ہیں۔ یہاں ہمیں "مسلسل انضمام" جیسے تصور پر توجہ دینے کی ضرورت ہے (CI - مسلسل انضمام)۔ اس وقت اس علاقے میں اہم ٹولز جینکنز ہیں (جاوا میں لکھا گیا CI سافٹ ویئر شروع میں تھوڑا پیچیدہ معلوم ہو سکتا ہے)۔ ٹریوس سی آئی (روبی میں لکھا گیا، موضوعی، کچھ آسان جینکنزتاہم، تعیناتی کی ترتیب کے میدان میں کچھ علم ابھی بھی درکار ہے) Gitlab CI (پر لکھا گیا روبی اور جاؤ).

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

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

  • پائیتھن ایک ناتجربہ کار صارف کے لیے کافی دوستانہ زبان ہے، یہ کچھ غلطیوں کو معاف کر دیتی ہے، لیکن یہ ڈویلپر کے ساتھ کافی سخت بھی ہو سکتی ہے تاکہ وہ کچھ برا نہ کرے۔ پہلے سے ہی کافی پختہ اور معنی خیز زبان، جو 1991 میں شائع ہوئی تھی۔
  • گو - گوگل کی ایک زبان، کافی دوستانہ اور آسان بھی ہے، کسی بھی پلیٹ فارم پر ایک قابل عمل فائل کو مرتب کرنا اور حاصل کرنا کافی آسان ہے۔ یہ سادہ اور خوشگوار ہو سکتا ہے، یا یہ پیچیدہ اور سنجیدہ ہو سکتا ہے۔ تازہ اور جوان، نسبتا حال ہی میں، 2009 میں شائع ہوا.
  • زنگ 2006 میں ریلیز ہونے والے اپنے سابق ساتھی سے تھوڑا بڑا ہے، لیکن اپنے ساتھیوں کے مقابلے میں اب بھی کافی جوان ہے۔ زیادہ تجربہ کار ڈویلپرز کا مقصد، اگرچہ یہ اب بھی پروگرامر کے لیے بہت سے نچلے درجے کے کاموں کو حل کرنے کی کوشش کرتا ہے۔
  • جاوا تجارتی ترقی کا تجربہ کار ہے، جسے 1995 میں متعارف کرایا گیا تھا، اور آج انٹرپرائز ایپلی کیشن ڈویلپمنٹ میں سب سے زیادہ استعمال ہونے والی زبانوں میں سے ایک ہے۔ اس کے بنیادی تصورات اور بھاری سیٹ اپ کے ساتھ، رن ٹائم ایک ابتدائی کے لیے کافی مشکل بن سکتا ہے۔
  • ASP.net ایک ایپلیکیشن ڈویلپمنٹ پلیٹ فارم ہے جو مائیکروسافٹ کے ذریعہ جاری کیا گیا ہے۔ فعالیت لکھنے کے لیے، C# زبان (تلفظ C Sharp)، جو 2000 میں شائع ہوئی، بنیادی طور پر استعمال ہوتی ہے۔ اس کی پیچیدگی جاوا اور زنگ کے درمیان کی سطح سے موازنہ ہے۔
  • PHP، اصل میں HTML پری پروسیسنگ کے لیے استعمال کیا جاتا ہے، فی الحال، اگرچہ یہ زبان کی مارکیٹ میں مکمل قیادت رکھتا ہے، استعمال میں کمی کی طرف رجحان ہے۔ اس میں داخلے کی حد کم ہے اور کوڈ لکھنے میں آسانی ہے، لیکن ایک ہی وقت میں، کافی بڑی ایپلی کیشنز تیار کرتے وقت، زبان کی فعالیت کافی نہیں ہوسکتی ہے۔

ٹھیک ہے، ہماری درخواست کا آخری حصہ - صارف کے لیے سب سے زیادہ ٹھوس - فرنٹ اینڈ (فرنٹ اینڈ) - آپ کی درخواست کا چہرہ ہے؛ اس حصے کے ساتھ صارف براہ راست بات چیت کرتا ہے۔

تفصیلات میں جانے کے بغیر، جدید فرنٹ اینڈ صارف انٹرفیس بنانے کے لیے تین ستونوں، فریم ورک (اور اتنا نہیں) پر کھڑا ہے۔ اس کے مطابق، تین سب سے زیادہ مقبول ہیں:

  • ReactJS ایک فریم ورک نہیں بلکہ ایک لائبریری ہے۔ درحقیقت، فریم ورک اپنے قابل فخر عنوان سے صرف کچھ فنکشنز کی غیر موجودگی میں "آؤٹ آف دی باکس" اور انہیں دستی طور پر انسٹال کرنے کی ضرورت میں مختلف ہے۔ اس طرح، اس لائبریری کی "تیاری" کے متعدد تغیرات ہیں، جو منفرد فریم ورک تشکیل دیتے ہیں۔ کچھ بنیادی اصولوں اور تعمیراتی ماحول کے کافی جارحانہ سیٹ اپ کی وجہ سے یہ ایک ابتدائی کے لیے تھوڑا مشکل ہو سکتا ہے۔ تاہم، فوری آغاز کے لیے، آپ "create-react-app" پیکیج استعمال کر سکتے ہیں۔
  • VueJS یوزر انٹرفیس بنانے کا ایک فریم ورک ہے۔ اس تثلیث میں سے، یہ بجا طور پر سب سے زیادہ صارف دوست فریم ورک کا عنوان لیتا ہے؛ Vue میں ترقی کے لیے، داخلے میں رکاوٹ دیگر مذکور بھائیوں کی نسبت کم ہے۔ مزید یہ کہ وہ ان میں سب سے کم عمر ہے۔
  • کونیی کو ان فریم ورک میں سب سے زیادہ پیچیدہ سمجھا جاتا ہے، صرف ایک جس کی ضرورت ہوتی ہے۔ TypeScript (جاوا اسکرپٹ زبان کے لیے ایڈ آن)۔ اکثر بڑے انٹرپرائز ایپلی کیشنز کی تعمیر کے لیے استعمال کیا جاتا ہے۔

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

ماخذ: www.habr.com

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