JavaRush /جاوا بلاگ /Random-UR /GitHub کوڈ تلاش: مزید تلاش کریں، کم تلاش کریں - GitHub نے...

GitHub کوڈ تلاش: مزید تلاش کریں، کم تلاش کریں - GitHub نے ایک سرچ انجن لانچ کیا۔

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

پہلا تاثر

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

آئیے تلاش کے بارے میں مزید تفصیل سے بات کرتے ہیں۔

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

بنیادی تلاش

Image Comparison سب سے آسان تلاش ہے جو فائل کے ناموں اور ان کے مواد میں سوال کے ساتھ بالکل تلاش کرتی ہے۔ یہاں سب کچھ بہت آسان لگتا ہے۔ اگر ہم کلاس کے نام سے واضح طور پر تلاش کرنا چاہتے ہیں، یہ کہاں بتایا گیا ہے اور کہاں استعمال کیا گیا ہے، تو اس طرح کی تلاش ہماری مدد کرے گی۔ جب آپ خالی جگہوں سے الگ کیے گئے متعدد الفاظ داخل کرتے ہیں، تو نتیجہ ان سب کے لیے الگ الگ تلاش ہوگا: Image Comparison ، یعنی یہ Image اور Comparison دونوں کے لیے فائلیں اور کوڈ تلاش کرے گا ۔ اگر آپ کو خالی جگہوں پر مشتمل سٹرنگ تلاش کرنے کی ضرورت ہے، تو آپ کو صرف اقتباسات استعمال کرنے کی ضرورت ہے۔ مثال کے طور پر: "ImageComparison comparison = new Image Comparison()" اور پھر تلاش پوری سٹرنگ سے مماثل ہوگی۔ فرار ہونے کے لیے، ہم ہمیشہ کی طرح "\" استعمال کرتے ہیں۔ اب تک، سب کچھ بدیہی ہے اور اکثر ایسا ہی ہوتا ہے۔ مزید، ہم اس بنیادی تلاش میں فلٹرز شامل کر سکتے ہیں۔ لہذا، ان میں سے ہر ایک کے بارے میں بات کرتے ہیں. یہ ہمارے پہلے سے بنائے گئے فلٹر کے لیے منطقی "ANDs" ہوں گے۔

ذخیرہ کے لحاظ سے فلٹر کریں۔

ایک بار جب ہمارا بنیادی فلٹر تیار ہو جائے تو، ہم اپنی تلاش کو محدود کر سکتے ہیں اور مخصوص ذخیرہ کے ذریعے تلاش کر سکتے ہیں، جو کہ بہت آسان ہے۔ آپ کو یہ دیکھنے کی ضرورت نہیں ہے کہ کلاس کس فولڈر میں واقع ہے، آپ صرف لکھ سکتے ہیں:
repo:romankh3/image-comparison Image ComparisonResult
جہاں ہمیں repo:${user_name}/${repo_name} کی وضاحت کرنے کی ضرورت ہے ۔ آپ صرف ایک OR شامل کرکے متعدد ذخیروں میں بھی تلاش کرسکتے ہیں:
repo:romankh3/image-comparison OR repo:romankh3/usage-image-comparison Image ComparisonResult
جیسا کہ GitHub پر بتایا گیا ہے، اس وقت وہ ایسے ذخیروں میں تلاش کرنے کی حمایت نہیں کرتے جہاں نام کو باقاعدہ اظہار کے طور پر بیان کیا گیا ہے... اس کا مطلب ہے کہ وہ ایسی خصوصیت شامل کرنے کا ارادہ کر رہے ہیں اور اس کا مطلب ہے کہ پروجیکٹ اعلان کردہ وقت پر نہیں رکے گا۔ فعالیت اور مزید ترقی کرے گی۔

تنظیم کے لحاظ سے فلٹر کریں۔

تنظیم یا صارف کی طرف سے تلاش بالکل اسی طرح کی جاتی ہے جس طرح مخزن کے ذریعہ تلاش کی جاتی ہے، صرف کلیدی لفظ نہیں ہوگا repo ، بلکہ org :
org:romankh3 تصویری موازنہ
اور پھر تلاش صارف/تنظیم کے تمام ذخیروں سے گزرے گی۔

پروگرامنگ زبانوں کے ذریعہ فلٹر کریں۔

آپ مخصوص پروگرامنگ زبان میں فائلوں کی تلاش بھی بتا سکتے ہیں۔ یہاں تعمیر وہی ہے جو مخزن اور تنظیم کے لیے ہے، صرف کلیدی لفظ ہے زبان :
زبان:جاوا امیج کا موازنہ
بالکل اسی طرح جیسے ریپوزٹری کے لیے، یہ OR کلیدی لفظ کا استعمال کرتے ہوئے ایک ساتھ کئی زبانوں میں تلاش کرنے کی حمایت کرتا ہے:
زبان:جاوا یا زبان:روبی امیج کا موازنہ
GitHub کے ذریعہ تعاون یافتہ زبانوں کی مکمل فہرست یہاں مل سکتی ہے ۔ مجھے حیرت ہے کہ کیا وہاں BrainFuck ہے؟ 😂

فائل پاتھ کے لحاظ سے فلٹر کریں۔

پروجیکٹ میں ہر فائل کا اپنا راستہ ہوتا ہے اور آپ فلٹر شامل کرکے بھی اس میں تلاش کرسکتے ہیں۔ مثال کے طور پر، ایک فائل ہے ImageComparisonResult ، اس کا راستہ ہے:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
لہذا، ان تمام کلاسوں کو تلاش کرنے کے لیے جن کا راستہ src/main/java/com/github/romankh3/image سے شروع ہوتا ہے ، آپ کو ضرورت ہے:
راستہ: src/main/java/com/github/romankh3/image
ان صورتوں میں کارآمد ہو سکتا ہے جہاں ہم نہیں چاہتے کہ ٹیسٹ کلاسز کو ہمارے تلاش کے نتائج سے باہر رکھا جائے۔ یا اس کے برعکس، صرف ٹیسٹ۔ یہ آپ کی تلاش کو مزید لچکدار بناتا ہے۔ ریگولر ایکسپریشن کا استعمال کرتے ہوئے فائل پاتھ کے لحاظ سے ایک فلٹر کی وضاحت کی جا سکتی ہے۔ مثال کے طور پر، ہمیں تلاش کرنے کی ضرورت ہے
پاتھ: src/*/*.js

بولین آپریشنز

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

ایک چھوٹا سا اعتکاف

جب کہ ہماری خوشی ابھی ٹھنڈی نہیں ہوئی ہے، میں 2018 میں واپس جانا چاہوں گا اور کچھ یاد رکھنا چاہوں گا... یاد رکھیں، جب سب کو پتہ چلا کہ مائیکروسافٹ GitHub خرید رہا ہے، تو سب نے سوچا کہ یہ پروجیکٹ دفن ہو جائے گا؟ کہ اس کا مقدر دوسرے اسکائپ کا راستہ ہے؟ ہر کسی نے اپنے پروجیکٹس کو GitLab میں کیسے منتقل کرنا شروع کیا؟ لیکن آئیے ایماندار بنیں ، اس ہائپ کے تناظر میں میں نے کچھ پیدا کیا اور کچھ برداشت کیا۔ لیکن سچ پوچھیں تو، میں نے کبھی بھی اس جگہ کا دورہ نہیں کیا جہاں میں نے پروجیکٹس کو دوبارہ منتقل کیا تھا۔ اور کسی نہ کسی طرح میں نہیں چاہتا۔ اور کیوں؟ اس بارے میں بھی خیالات ہیں۔ میں آپ کو یاد دلاتا ہوں کہ بل گیٹس کو گِٹ ہب کی فروخت کے بعد، پراجیکٹ نے مفت میں پرائیویٹ ریپوزٹریز رکھنے کی صلاحیت کو شامل کیا، گِٹ ہب ایکشنز کو CI/CD عمل کے لیے جاری کیا گیا، اور بہت کچھ۔ اور اب ایک طاقتور سرچ انجن بھی۔ یہ پروجیکٹ کو ڈوبنے کی خواہش کی طرح نہیں لگتا ہے۔ یہ ایسا ہی ہے جیسے مائیکروسافٹ منافع پر ٹیکس ادا نہیں کرنا چاہتا تھا اور اس نے سال کے آخر تک 9 بلین ڈالر سے زیادہ کی کامیاب خریداری کی 😁 اور پھر اس سب کے بعد انہوں نے اس پروجیکٹ کو تیار کرنے کا فیصلہ کیا۔ اور یہ سچ ہے کہ اوپن سورس ڈویلپر کے لیے یہ اپنے کوڈ کو اسٹور کرنے کے لیے ایک بہترین جگہ ہے۔ آپ GitHub کو چھوڑے بغیر اپنی مصنوعات کو مکمل طور پر تیار کر سکتے ہیں۔

آخر میں

میں نے ایک ہی بار میں مضمون لکھا۔ میں واقعی اس سے محبت کرتا ہوں جب الفاظ اور جذبات صرف گیزر کی طرح بہتے ہیں۔ یہی چیز ٹیکنالوجی کو آگے بڑھاتی ہے۔ اس لیے ہم نبض پر انگلی رکھتے ہیں اور حالات کو ہاتھ سے جانے نہیں دیتے۔ مجھے یقین ہے کہ ہم میں سے ہر ایک کو اسے استعمال کرنا سیکھنا چاہیے۔ ہر اس شخص کے لیے جس نے GitHub کے لیے سائن اپ نہیں کیا ہے، میں ایسا کرنے کی انتہائی سفارش کرتا ہوں۔ یہ اس کے قابل ہے. ہمیشہ کی طرح، دوستو، میرے ٹیلیگرام چینل کو سبسکرائب کرنا نہ بھولیں ، جس میں میں اپنی تمام عوامی سرگرمیوں کو یکجا کرتا ہوں۔ ان مضامین کے علاوہ جو میں یہاں شائع کرتا ہوں، میں وہاں چھوٹی چھوٹی پوسٹس لکھتا ہوں جس میں میں ان موضوعات کو چھوتا ہوں جو ترقی اور عمومی طور پر آئی ٹی کی دنیا سے میری دلچسپی رکھتے ہیں۔ وہاں پہلے ہی 800 سے زیادہ سبسکرائبرز موجود ہیں! اور، یقیناً، میرا GitHub اکاؤنٹ ، جہاں میں مضامین کے لیے تمام ڈیمو پروجیکٹس شائع کرتا ہوں، اپنی لائبریریوں کو اپ ڈیٹ کرتا ہوں اور اوپن سورس تنظیمیں تیار کرتا ہوں۔ بس اتنا ہی، پڑھنے کے لیے آپ سب کا شکریہ، آئیے الوداع نہ کہیں۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION