E-Dobavki - جاوا اور اسپرنگ بوٹ میں فوڈ ایڈیٹیو تلاش کرنے کے لیے ایک ویب سروس، جو میرے طلباء نے لکھی ہے۔

تعارف

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

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

یہاں میں اپنے آخری گروپ کی تربیت کی کہانی سنانا چاہتا ہوں۔ وہ تربیت شروع کرنے سے لے کر ورکنگ ویب سروس لکھنے تک کیسے گئے۔ غذائی سپلیمنٹس تلاش کرنے کے لیے ایک مفید ویب سروس۔ مفت، کوئی اشتہار نہیں، رجسٹریشن اور SMS۔

سروس خود یہاں ہے - ای ڈوباوکی ڈاٹ کام.

E-Dobavki - جاوا اور اسپرنگ بوٹ میں فوڈ ایڈیٹیو تلاش کرنے کے لیے ایک ویب سروس، جو میرے طلباء نے لکھی ہے۔

یہ منصوبہ تعلیمی ہے اور اس میں کوئی اشتہار نہیں ہے۔ جیسا کہ میں سمجھتا ہوں۔ اس اشاعت، آپ اس طرح کے منصوبوں کے لنکس فراہم کر سکتے ہیں۔

اس منصوبے کو خود بیان کرنے سے پہلے، میں آپ کو گروپ کے سیکھنے کے عمل کے بارے میں کچھ بتاؤں گا؛ اس کے بغیر تصویر نامکمل ہوگی۔

9 ماہ کی تربیت

جس اسکول میں میں پڑھاتا ہوں وہاں جاوا کورس کو 2 حصوں میں تقسیم کیا گیا ہے۔ مجموعی طور پر، کورس میں تقریباً 9 مہینے لگتے ہیں، تمام وقفوں کے ساتھ (نئے سال کی تعطیلات، انٹرمیڈیٹ پروجیکٹ لکھنے کا وقت)۔

پہلا حصہ طلباء کو زبان کے بنیادی تصورات سے متعارف کراتا ہے۔ متغیرات، طریقے، OOP کی بنیادی باتیں اور وہ تمام چیزیں۔

کورس کا دوسرا حصہ یہ فراہم کرتا ہے کہ طالب علم پہلے سے ہی کم و بیش یہ سمجھتا ہے کہ جاوا میں کیسے لکھنا ہے، اور اسے "بالغ" ٹیکنالوجی کا اسٹیک دیا جا سکتا ہے۔ یہ سب SQL، پھر JDBC، ہائبرنیٹ سے شروع ہوتا ہے۔ پھر HTTP، servlets. اگلا موسم بہار ہے، گٹ اور ماون کے بارے میں تھوڑا سا۔ اور طلباء فائنل پروجیکٹ لکھتے ہیں۔

تمام تربیت کو ماڈیولز میں تقسیم کیا گیا ہے۔ میں ہفتے میں دو بار کلاس لیتا تھا۔ ایک سبق کا دورانیہ دو گھنٹے ہے۔

سیکھنے کا میرا نقطہ نظر

میں نے 5 گروپ جاری کیے ہیں۔ ایسا لگتا ہے کہ دو سالوں کے لئے بہت کچھ ہے، لیکن میں نے ہمیشہ متوازی طور پر 2 گروپوں کی قیادت کی۔

میں نے مختلف طریقے آزمائے ہیں۔

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

دوسرا آپشن جس پر میں آیا ہوں اور جس پر میں اب کام کر رہا ہوں وہ یہ نہیں ہے کہ پورے جوڑے کو تھیوری کے لیے وقف کیا جائے۔ اس کے بجائے، میں تھیوری کے مختصر حصوں کو 5-10 منٹ کے لیے ملاتا ہوں، اور فوری طور پر عملی مثالوں سے ان کو تقویت دیتا ہوں۔ یہ نقطہ نظر بہتر کام کرتا ہے۔

اگر کافی وقت ہو تو میں طلبہ کو اپنی جگہ بلاتا ہوں، انہیں اپنے لیپ ٹاپ پر بٹھاتا ہوں، اور وہ خود عملی مثالیں دیتے ہیں۔ یہ بہت اچھا کام کرتا ہے، لیکن بدقسمتی سے اس میں کافی وقت لگتا ہے۔

ہر کوئی اسے انجام تک نہیں پہنچاتا

میرے لیے ایک انکشاف یہ تھا کہ پورا گروپ کورس کے اختتام تک نہیں پہنچتا۔

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

وہ مختلف وجوہات کی بنا پر چلے جاتے ہیں۔

پہلی پیچیدگی ہے۔ اس سے کوئی فرق نہیں پڑتا ہے کہ وہ کیا کہتے ہیں، جاوا سب سے آسان زبان نہیں ہے۔ یہاں تک کہ آسان ترین پروگرام لکھنے کے لیے، آپ کو کلاس کے تصور، ایک طریقہ کو سمجھنا ہوگا۔ اور یہ سمجھنے کے لیے کہ آپ کو لکھنے کی ضرورت کیوں ہے۔ عوامی جامد باطل مین (String[] arg) سمجھنے کے لیے کچھ اور تصورات ہیں۔

اس کا موازنہ ٹربو پاسکل سے کریں، جس کے ساتھ بہت سے لوگوں نے شروع کیا، بشمول مجھ:

begin
    writeln("Первая программа");
end.

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

اور دوسری وجہ نیچے دی گئی تصویر کی طرح ہے۔

E-Dobavki - جاوا اور اسپرنگ بوٹ میں فوڈ ایڈیٹیو تلاش کرنے کے لیے ایک ویب سروس، جو میرے طلباء نے لکھی ہے۔

لوگ اکثر سوچتے ہیں کہ پروگرامنگ بہت زیادہ ٹیکسٹ ٹائپ کرنے اور اس کے لیے بہت سارے پیسے حاصل کرنے کے بارے میں ہے۔ کاپی رائٹر کی طرح، صرف زیادہ رقم۔

حقیقت تھوڑی مختلف ہے۔ بہت سارے روٹین کوڈ، غیر واضح کیڑے، ایک مستقل سیکھنے کا عمل۔ یہ دلچسپ ہے، لیکن سب کے لیے نہیں۔

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

خدمت کا خیال۔

ایک بار جب طالب علموں نے پورا کورس مکمل کر لیا، تو یہ آخری پروجیکٹ لکھنے کا وقت تھا۔ مختلف خیالات تھے۔ انہوں نے ToDo شیٹس، پروجیکٹ مینجمنٹ پروجیکٹس، اور کچھ اور پیش کیا۔

میں کچھ آسان لیکن مفید کام کرنا چاہتا تھا۔ میرا معیار آسان تھا - آیا میں اور میرے دوست اسے استعمال کرسکتے ہیں۔ کھانے میں اضافے کی تلاش کے لیے ایک ویب سروس نے ان ضروریات کو پورا کیا۔

خیال سادہ ہے۔ جب آپ اسٹور میں کوئی پروڈکٹ خریدتے ہیں، تو آپ کو کمپوزیشن میں کسی قسم کا E-additive نظر آتا ہے۔ کوڈ سے یہ واضح نہیں ہے کہ یہ کتنا خطرناک ہے یا نہیں (اور اس میں خطرناک اضافی چیزیں بھی ہیں جن پر بہت سے ممالک میں پابندی ہے)۔

آپ ویب سائٹ کھولیں، ضمیمہ کا نام درج کریں (نمبر، متبادل ناموں میں سے ایک)، اور ضمیمہ کا خلاصہ حاصل کریں:

E-Dobavki - جاوا اور اسپرنگ بوٹ میں فوڈ ایڈیٹیو تلاش کرنے کے لیے ایک ویب سروس، جو میرے طلباء نے لکھی ہے۔

اسی طرح کے منصوبے ہیں۔ آپ آسانی سے گوگل میں additive ٹائپ بھی کر سکتے ہیں، حالانکہ یہ ہمیشہ معلومات کو صحیح طریقے سے نہیں دکھاتا ہے۔

لیکن چونکہ یہ منصوبہ تعلیمی ہے، اس لیے اوپر کی مشکلات نے ہمیں نہیں روکا :)

Реализация

سب نے جاوا میں لکھا، Github پر پروجیکٹ کا سورس کوڈ.

مجھ سمیت 7 لوگ تھے۔ ہر ایک نے پل کی درخواست کی، اور میں، یا گروپ کے کسی اور شخص نے پل کی اس درخواست کو قبول کیا۔

اس منصوبے کے نفاذ میں تقریباً ایک مہینہ لگا - اس خیال کو ظاہر کرنے سے لے کر اس ریاست تک جو آپ اب دیکھ رہے ہیں۔

additives کو پارس کرنا

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

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

اسپرنگ بوٹ آپ کو متعدد پروفائلز بنانے کی اجازت دیتا ہے۔ پروفائل سیٹنگز والی فائل ہے۔

دیو ماحول کے لیے، ہم نے مقامی H2 DBMS اور ڈیفالٹ HTTP پورٹ (8080) کے ساتھ ایک پروفائل استعمال کیا۔ اس طرح، جب بھی ایپلی کیشن لانچ کی گئی، ڈیٹا بیس کو صاف کیا گیا۔ اس معاملے میں تجزیہ کار وہ چیز تھی جس نے ہمیں بچایا۔

تلاش اور فلٹرنگ

ایک اہم نکتہ تلاش اور فلٹرنگ ہے۔ سٹور میں موجود شخص کو فوری طور پر ضمیمہ کے کوڈ، یا کسی ایک نام پر کلک کرنا چاہیے اور نتیجہ حاصل کرنا چاہیے۔

لہذا، Additive ہستی کے کئی شعبے ہیں۔ یہ اضافی کوڈ، متبادل نام، تفصیل ہے۔ تلاش ایک ہی وقت میں تمام شعبوں میں لائیک کا استعمال کرتے ہوئے کی جاتی ہے۔ اور اگر آپ [123] یا [amaranth] میں داخل ہوتے ہیں تو آپ کو وہی نتیجہ ملے گا۔

ہم نے یہ سب کچھ تفصیلات کی بنیاد پر کیا۔ یہ بہار کا ایک حصہ ہے جو آپ کو تلاش کے بنیادی حالات (جیسے کچھ فیلڈ، مثال کے طور پر) کو بیان کرنے کی اجازت دیتا ہے، اور پھر ان شرائط (OR یا AND) کو یکجا کریں۔

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

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

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

سلامتی

یہ آسان ہے. ADMIN کردار کے حامل صارفین ہیں - وہ اضافے میں ترمیم کر سکتے ہیں، انہیں حذف کر سکتے ہیں، اور نئے شامل کر سکتے ہیں۔

اور دوسرے صارفین ہیں (رجسٹرڈ یا نہیں)۔ وہ صرف additives کی فہرست کو براؤز کر سکتے ہیں اور اپنی ضرورت کی تلاش کر سکتے ہیں۔

اسپرنگ سیکیورٹی کا استعمال حقوق کو الگ کرنے کے لیے کیا گیا تھا۔ صارف کا ڈیٹا ڈیٹا بیس میں محفوظ ہے۔

صارفین رجسٹر کر سکتے ہیں۔ اب یہ کچھ نہیں دیتا۔ اگر طلباء سروس کو تیار کرتے رہیں اور کچھ ذاتی نوعیت کے فنکشنز متعارف کراتے رہیں، تو رجسٹریشن کام آئے گی۔

ردعمل اور بوٹسٹریپ

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

سی ایس ایس کا شکار نہ ہونے کے لیے، ہم نے بوٹسٹریپ لیا۔ سستا، خوش مزاج، اور مہذب نظر آتا ہے۔

میں انٹرفیس کو مثالی نہیں کہہ سکتا۔ مرکزی صفحہ اس سے بھی کم ہے، اور اضافی کی تفصیلی وضاحت کے لیے صفحہ تنگ ہے؛ موبائل فونز پر اسے وسیع کرنے کی ضرورت ہے۔

میں صرف اتنا کہہ سکتا ہوں کہ میں نے کام میں کم سے کم مداخلت کرنے کی کوشش کی۔ یہ اب بھی طالب علم کا منصوبہ ہے۔ اور ظاہر ہے، لوگ بعد میں اس طرح کے لمحات کو درست کرنے کے قابل ہو جائیں گے.

SEO آپٹیمائزیشن کا ایک منٹ

چونکہ میں ویب سائٹس اور SEO سے متعلق ہر چیز میں دو سال سے زیادہ عرصے سے شامل رہا ہوں، اس لیے میں کم از کم بنیادی SEO آپٹیمائزیشن کے بغیر کوئی پروجیکٹ جاری نہیں کر سکتا۔

درحقیقت، میں نے ہر ایڈ آن کے لیے ٹائٹل اور ڈسکرپشن کی ایک ٹیمپلیٹ جنریشن بنائی ہے۔ URL تقریباً CNC ہے، حالانکہ اسے چھوٹا بنایا جا سکتا ہے۔

میں نے حاضری کے کاؤنٹر بھی شامل کیے ہیں۔ تلاش کے انجنوں سے انتباہات کی نگرانی کے لیے سائٹ کو Yandex Webmaster اور Google Search Console میں شامل کیا۔

یہ کافی نہیں ہے. مکمل اشاریہ سازی کے لیے آپ کو robots.txt اور sitemap.xml بھی شامل کرنے کی ضرورت ہے۔ لیکن ایک بار پھر، یہ ایک طالب علم منصوبہ ہے. میں انہیں بتاؤں گا کہ کیا کرنے کی ضرورت ہے، اور اگر وہ چاہیں گے تو وہ کریں گے۔

آپ کو ایک SSL سرٹیفکیٹ منسلک کرنے کی ضرورت ہے۔ مفت لیٹس انکرپٹ بھی کام کرے گا۔ میں نے یہ اسپرنگ بوٹ کے لیے کیا۔ ایسا کرنا مشکل نہیں ہے اور پی ایس کا اعتماد بڑھتا ہے۔

اس منصوبے کے لیے آگے کیا ہے؟

پھر، حقیقت میں، انتخاب لڑکوں پر منحصر ہے. اس منصوبے کے اصل خیال میں مصنوعات کا ڈیٹا بیس بھی شامل ہے جس میں additives کے لنکس ہیں۔

"Snickers" درج کریں اور دیکھیں کہ اس میں کون سے غذائی اجزاء شامل ہیں۔

یہاں تک کہ پروجیکٹ کے آغاز میں، میں جانتا تھا کہ ہمارے پاس کوئی مصنوعات نہیں ہوں گی :) لہذا، ہم نے صرف additives کے ساتھ شروع کیا.

اب آپ مصنوعات شامل کر سکتے ہیں اور اضافی متعارف کروا سکتے ہیں۔ بنس اگر یہ ایک وسیع ڈیٹا بیس ہے تو وہاں صارفین ہوں گے۔

تعیناتی

پروجیکٹ کو VPS، Aruba Cloud پر تعینات کیا گیا تھا۔ یہ سب سے سستا VPS ہے جو ہمیں مل سکتا ہے۔ میں اس فراہم کنندہ کو اپنے پروجیکٹس کے لیے ایک سال سے زیادہ عرصے سے استعمال کر رہا ہوں، اور میں اس سے خوش ہوں۔

وی پی ایس کی خصوصیات: 1 جی بی ریم، 1 سی پی یو (میں فریکوئنسی کے بارے میں نہیں جانتا)، 20 جی بی ایس ایس ڈی۔ ہمارے منصوبے کے لیے یہ کافی ہے۔

پروجیکٹ کو معمول کے ایم وی این کلین پیکج کا استعمال کرتے ہوئے بنایا گیا ہے۔ نتیجہ ایک موٹی جار ہے - تمام انحصار کے ساتھ ایک قابل عمل فائل۔

اس سب کو تھوڑا سا خودکار کرنے کے لیے، میں نے کچھ بیش اسکرپٹ لکھے۔

پہلا اسکرپٹ پرانی جار فائل کو حذف کر کے ایک نئی بناتا ہے۔

دوسرا اسکرپٹ جمع شدہ جار کو لانچ کرتا ہے، اسے مطلوبہ پروفائل کا نام دے کر۔ یہ پروفائل ڈیٹا بیس کنکشن کی معلومات پر مشتمل ہے۔

DB - اسی VPS پر MySQL۔

کل پروجیکٹ دوبارہ شروع کرنے میں شامل ہیں:

  • SSH کے ذریعے VPS میں لاگ ان کریں۔
  • تازہ ترین گٹ تبدیلیاں ڈاؤن لوڈ کریں۔
  • local-jar.sh چلائیں۔
  • چلانے والی درخواست کو مار ڈالو
  • launch-production.sh چلائیں۔

اس طریقہ کار میں تین منٹ لگتے ہیں۔ یہ اس طرح کے ایک چھوٹے منصوبے کے لئے میرے لئے ایک زبردست انتخاب کی طرح لگتا ہے.

مشکلات

اس منصوبے کو بنانے میں اہم مشکلات تنظیمی نوعیت کی تھیں۔

ایسے لوگوں کا ایک گروپ ہے جو بظاہر پروگرام کرنا جانتے ہیں، لیکن بہت اچھی طرح سے نہیں۔ وہ کچھ جانتے ہیں، لیکن وہ اب بھی واقعی اس کا اطلاق نہیں کر سکتے۔ اور اب انہیں ایک ماہ میں اس منصوبے کو مکمل کرنے کی ضرورت ہے۔

میں نے اس گروپ میں ایک مشروط ٹیم لیڈر کی نشاندہی کی۔ اس نے کاموں کی فہرست کے ساتھ ایک Google Doc رکھا، کاموں کو تقسیم کیا، اور ان کی قبولیت کو کنٹرول کیا۔ اس نے پل کی درخواستیں بھی قبول کر لیں۔

میں نے طلباء سے یہ بھی کہا کہ وہ ہر شام اس پراجیکٹ پر کیے گئے کام پر ایک مختصر رپورٹ لکھیں۔ اگر آپ نے کچھ نہیں کیا تو ٹھیک ہے، صرف "کچھ نہیں کیا" لکھیں۔ یہ بہت اچھا عمل ہے اور آپ کو تھوڑا سا تناؤ آتا ہے۔ بدقسمتی سے ہر کسی نے اس اصول پر عمل نہیں کیا۔

اس تمام تحریک کا مقصد سادہ تھا۔ مل کر کام کرنے کے لیے، چاہے صرف تھوڑے وقت کے لیے، ایک ٹیم بنائیں۔

میں چاہتا تھا کہ لوگ محسوس کریں کہ ان کا کام اہم ہے۔ سمجھیں کہ وہ خلا میں کروی کوڈ نہیں لکھتے ہیں۔ اور جو کچھ وہ مل کر کر رہے ہیں وہ ایک پروجیکٹ ہے جسے لوگ پھر استعمال کریں گے۔

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

مجھے یقین ہے کہ مقصد حاصل ہو گیا ہے۔ پروجیکٹ ہو گیا، لڑکوں کو ٹیم میں کام کرنے کا تھوڑا سا تجربہ ملا۔ ایک نظر آنے والا، ٹھوس نتیجہ ہے جو دوستوں کو دکھایا جا سکتا ہے اور مزید تیار کیا جا سکتا ہے۔

نتائج

سیکھنا دلچسپ ہے۔

ہر کلاس کے بعد میں جذباتی طور پر مشتعل ہو کر واپس آیا۔ میں ہر جوڑے کو منفرد بنانے کی کوشش کرتا ہوں اور زیادہ سے زیادہ معلومات پہنچانے کی کوشش کرتا ہوں۔

یہ اچھا ہے جب میں جس گروپ کو پڑھاتا ہوں وہ فائنل میں پہنچ جاتا ہے۔ یہ خاص طور پر اچھا ہے جب لوگ لکھتے ہیں "مجھے نوکری مل گئی ہے، سب کچھ ٹھیک ہے، شکریہ۔" یہاں تک کہ اگر یہ ایک جونیئر ہے، یہاں تک کہ اگر یہ پہلے سب سے بڑا پیسہ نہیں ہے۔ لیکن سب سے اہم بات یہ ہے کہ انہوں نے اپنی خواہشات کی طرف ایک قدم اٹھایا، اور وہ کامیاب ہوگئے۔

اگرچہ مضمون کافی بڑا نکلا، لیکن تمام نکات کا احاطہ کرنا یقینی طور پر ممکن نہیں تھا۔ اس لیے کمنٹس میں اپنے سوالات لکھیں۔

ماخذ: www.habr.com

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