JavaRush /مدونة جافا /Random-AR /بحث كود GitHub: ابحث عن المزيد، ابحث أقل - أطلق GitHub مح...
Roman Beekeeper
مستوى

بحث كود GitHub: ابحث عن المزيد، ابحث أقل - أطلق GitHub محرك بحث

نشرت في المجموعة
مرحبا بالجميع أيها الأصدقاء الأعزاء! باعتباري من محبي الميزات الجديدة على GitHub، كنت مهتمًا جدًا بمعرفة أننا سنكون قادرين قريبًا على البحث بسرعة وكفاءة في قاعدة أكواد GitHub. يمكن أن يكون هذا أمرًا مريحًا للغاية، خاصة إذا كنت بحاجة إلى إيجاد طريقة متطورة لاستخدام إحدى الأدوات. "بحث كود GitHub: ابحث عن المزيد، ابحث أقل" - أطلق GitHub محرك بحث - 1يتردد هذا بشكل خاص مع حقيقة افتتاح منافس مستقبلي لـ GitHub في روسيا. لذلك، من المؤكد أن GitHub لا ينبغي أن يعتمد على أمجاده، على الرغم من حقيقة أنهم بلا شك رواد السوق. نحن بحاجة إلى المضي قدمًا والتطور، وإلا فلن تمر ساعة حتى يلحق المنافسون بالركب ويكتسحوننا. ودع الأمر لا يبدو مذهلاً. على سبيل المثال: كم عدد الأشخاص الذين ما زالوا يستخدمون هواتف نوكيا؟ من يعرف حتى أنهم صنعوا الهواتف؟ في وقت ما، كانوا ببساطة قادة السوق بلا منازع ولا يمكن الوصول إليهم. والآن يظهرون في مكان ما في عالم الخطأ الإحصائي.

الانطباع الأول

أنشأ GitHub مشروعًا يمكنك من خلاله البحث عن التعليمات البرمجية الخاصة بك والتنقل فيها وتحليلها ومليارات الأسطر من التعليمات البرمجية المنشورة على GitHub. من المهم ملاحظة أن البحث قابل للتطوير وسريع ودقيق. تم إنشاؤه من الصفر خصيصًا للبحث عن التعليمات البرمجية. يعمل التنقل مع 10 لغات برمجة رئيسية بدون إعدادات (نأمل أن تنمو القائمة في المستقبل). يمكنك البحث باستخدام التعبير العادي، وهو أمر رائع جدًا. تتوفر أيضًا مرشحات أخرى:
  • حسب المنظمة؛
  • في لغات البرمجة؛
  • من قبل مالك محدد؛
  • عن طريق امتداد الملف؛
  • عن طريق التعبير العادي
القائمة مثيرة للإعجاب بالفعل! اتضح أن محرك البحث يمنحنا الفرصة لإنشاء استعلامات بحث معقدة يمكننا من خلالها تحديد الحدود التي يلزم البحث من خلالها بوضوح. الجزء الثاني المهم من المحرك هو التنقل بالكود 😳 ما هي بيئات التطوير الملائمة ولماذا يدفع الناس المال مقابلها؟ لأنها تجعل حياتنا أسهل، وتساعدنا على التنقل عبر الكود، بحيث تزيد سرعة تطوير الكود وقراءته. ويقدم لنا GitHub الآن هذه الميزة الرائعة. هذا أمر لا يصدق. نعم، أعلم أنه في الوقت الحالي يوجد بالفعل شيء مشابه للتنقل في GitHub، لكن الوظيفة لا تزال قصيرة جدًا وخامًا. وهذا هو، بدون بيئة تطوير، يمكنك البحث عن مكان استخدام طرق معينة، حيث تم تعريفها. إنه أمر رائع. جيثب أنت تجعلني سعيدا. التنقل للواردات في الفصول الدراسية متاح أيضًا. يؤدي هذا إلى حل العديد من المشكلات في البحث عن مكتبة معينة ودراستها على GitHub. الآن تم تسريع هذه العملية عدة مرات. وكل هذا مجاني. ممتاز فقط. هل سيكون في الطلب؟ أنا متأكد من نعم!

دعونا نتحدث بمزيد من التفاصيل حول البحث

من الممتع جدًا إلقاء نظرة ومحاولة البحث بنفسك: هل هذا مناسب كما يقولون؟ في الوقت الحالي، هذه الميزة غير متاحة للعامة ويمكنك إضافة نفسك إلى قائمة الانتظار باستخدام الرابط . نملأ جميع النقاط هناك، الأسئلة بسيطة، لن أصفها هنا. ونتيجة لذلك، تمت إضافتنا إلى قائمة الانتظار والمضي قدمًا. ونتيجة لذلك، فإن الجواب سيكون كما يلي: "بحث كود GitHub: ابحث عن المزيد، ابحث أقل" - أطلق GitHub محرك بحث - 2عليك فقط الانتظار. بمجرد إضافتي، سأظهر لك كل شيء بالتأكيد. لا تتأخر، أضف نفسك حتى تتمكن من اكتشافها لاحقًا واستخدامها بما يرضيك) وبالطبع، من المؤسف أنه لا يمكنك تجربة الأداة الجديدة على الفور، لذلك دعونا نحلل وثائقها ونشرحها مزيد من التفاصيل كيف يمكننا استخدام هذه الأداة لعملنا. الآن عن البحث. وسوف تستخدم الطبقات والبنيات التي لها معنى في المكتبة التي أكتبها. وهذا سيجعل الأمر أكثر وضوحًا وأسهل بالنسبة لي، وآمل أن يكون أسهل بالنسبة لك أيضًا.

البحث الأساسي

ImageComparison هو أبسط بحث يبحث بدقة مع الاستعلام في أسماء الملفات ومحتوياتها. كل شيء يبدو بسيطًا جدًا هنا. إذا أردنا أن نجد بوضوح اسم الفئة، حيث يتم الإعلان عنه ومكان استخدامه، فإن هذا البحث سيساعدنا في ذلك. عند إدخال كلمات متعددة مفصولة بمسافات، ستكون النتيجة البحث عنها جميعًا بشكل منفصل: مقارنة الصور ، مما يعني أنه سيجد الملفات والتعليمات البرمجية لكل من الصورة والمقارنة . إذا كنت تريد البحث عن سلسلة تحتوي على مسافات، فأنت بحاجة فقط إلى استخدام علامات الاقتباس. على سبيل المثال: "مقارنة ImageComparison = ImageComparison() الجديدة" ومن ثم سيطابق البحث السلسلة بأكملها. للهروب، نستخدم "\" كما هو الحال دائمًا. حتى الآن، كل شيء بديهي، وهذه هي الطريقة التي يتم بها الأمر غالبًا. علاوة على ذلك، يمكننا إضافة مرشحات لهذا البحث الأساسي. لذلك، دعونا نتحدث عن كل واحد منهم. ستكون هذه "ANDs" منطقية للمرشح الذي أنشأناه بالفعل.

التصفية حسب المستودع

بمجرد أن يصبح الفلتر الأساسي الخاص بنا جاهزًا، يمكننا تضييق نطاق البحث والبحث حسب مستودع معين، وهو أمر مريح للغاية. لا تحتاج إلى البحث عن المجلد الذي يوجد فيه الفصل الدراسي، يمكنك فقط كتابة:
الريبو:romankh3/image-comparison ImageComparisonResult
حيث نحتاج إلى تحديد repo:${user_name}/${repo_name} . يمكنك أيضًا البحث عبر مستودعات متعددة ببساطة عن طريق إضافة OR:
الريبو: romankh3/مقارنة الصور أو الريبو: romankh3/مقارنة الصور المستخدمة ImageComparisonResult
كما ورد في GitHub، في الوقت الحالي لا يدعمون البحث في المستودعات التي تم تحديد الاسم فيها كتعبير عادي... وهذا يعني أنهم يخططون لإضافة مثل هذه الميزة ويعني أن المشروع لن يتوقف عند المعلن عنه وظائف وسوف تتطور أكثر.

التصفية حسب المنظمة

يتم البحث حسب المؤسسة أو المستخدم بنفس طريقة البحث عن طريق المستودع، فقط الكلمة الرئيسية لن تكون repo ، ولكن org :
ORG:romankh3 مقارنة الصور
وبعد ذلك سوف يمر البحث عبر جميع مستودعات المستخدم/المؤسسة.

التصفية حسب لغات البرمجة

يمكنك أيضًا تحديد البحث عن الملفات بلغة برمجة معينة. البناء هنا هو نفسه بالنسبة للمستودع والتنظيم، فقط الكلمة الرئيسية هي اللغة :
اللغة: جافا مقارنة الصور
تمامًا كما هو الحال مع المستودع، فهو يدعم البحث بعدة لغات في وقت واحد باستخدام الكلمة الأساسية OR:
اللغة: Java أو اللغة: Ruby ImageComparison
يمكن العثور على قائمة كاملة باللغات التي يدعمها 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

العمليات المنطقية

وبطبيعة الحال، فإن ذروة بناء المرشح هي الجمع بين هذه المسألة معًا باستخدام العمليات المنطقية. لهذا لدينا و، أو، وليس. أعتقد أن هذا ينبغي أن يكون كافيا بالنسبة لنا. على سبيل المثال، لنقم بإنشاء استعلام بحث معقد: كود من إنتاج Java أو Kotlin لمستخدم/مؤسسة محددة:
الريبو:romankh3 و (اللغة: Java أو اللغة: Kotlin) وليس المسار:*/test/*
وأنا أقول لك أن هذا ببساطة أمر لا يصدق. يتم كتابة طلب البحث بكل بساطة وسرعة وإيجاز ووضوح بحيث لن تكون هناك أي مشاكل في البحث عن الطلب وقراءته.

تراجع صغير

على الرغم من أن فرحتنا لم تهدأ بعد، إلا أنني أود العودة إلى عام 2018 وأتذكر شيئًا ما... هل تتذكر، عندما اكتشف الجميع أن Microsoft كانت تشتري GitHub، اعتقد الجميع أن المشروع سوف يتم دفنه؟ أن مصيره هو طريق سكايب الثاني؟ كيف بدأ الجميع في نقل مشاريعهم إلى GitLab؟ لكن لنكن صادقين، في أعقاب هذه الضجة خلقت وعانيت شيئًا ما. لكن لأكون صادقًا، لم أقم بزيارة المكان الذي نقلت فيه المشاريع مرة أخرى. وبطريقة ما لا أريد ذلك. و لماذا؟ هناك أيضا أفكار حول هذا. اسمحوا لي أن أذكركم أنه بعد بيع GitHub إلى Bill Gates، أضاف المشروع القدرة على الحصول على مستودعات خاصة مجانًا، وتم إصدار GitHub Actions لعملية CI/CD، وغير ذلك الكثير. والآن أيضًا محرك بحث قوي. وهذا لا يبدو وكأنه رغبة في إغراق المشروع. يبدو الأمر كما لو أن Microsoft لم ترغب في دفع ضرائب على الأرباح وقامت بعملية شراء ناجحة بنهاية العام بأكثر من 9 مليارات دولار 😁 وبعد كل هذا قرروا تطوير هذا المشروع. وصحيح أنه بالنسبة لمطوري البرامج مفتوحة المصدر، يعد هذا مكانًا رائعًا لتخزين التعليمات البرمجية الخاصة بهم. يمكنك تطوير منتجك بالكامل دون مغادرة GitHub.

في نهايةالمطاف

لقد كتبت المقال دفعة واحدة. أنا حقًا أحب ذلك عندما تتدفق الكلمات والعواطف مثل السخان. وهذا ما يدفع التكنولوجيا إلى الأمام. لذلك نبقي إصبعنا على النبض ولا نترك الوضع. أنا متأكد من أن كل واحد منا يجب أن يتعلم كيفية استخدامه. لأي شخص لم يقم بالتسجيل في GitHub، أوصي بشدة بالقيام بذلك. انه يستحق ذلك. كما هو الحال دائمًا أيها الأصدقاء، لا تنسوا الاشتراك في قناتي على التليجرام ، والتي أجمع فيها جميع أنشطتي العامة. بالإضافة إلى المقالات التي أنشرها هنا، أكتب هناك منشورات أقصر أتطرق فيها إلى مواضيع تهمني من عالم التطوير وتقنية المعلومات بشكل عام. هناك بالفعل أكثر من 800 مشترك هناك! وبالطبع حسابي على GitHub ، حيث أقوم بنشر جميع المشاريع التجريبية للمقالات وتحديث مكتباتي وتطوير المنظمات مفتوحة المصدر. هذا كل شيء، شكرًا لكم جميعًا على القراءة، دعونا لا نقول وداعًا 👌
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION