JavaRush /จาวาบล็อก /Random-TH /การค้นหาโค้ด GitHub: ค้นหามากขึ้น ค้นหาน้อยลง - GitHub เป...
Roman Beekeeper
ระดับ

การค้นหาโค้ด GitHub: ค้นหามากขึ้น ค้นหาน้อยลง - GitHub เปิดตัวเครื่องมือค้นหา

เผยแพร่ในกลุ่ม
สวัสดีทุกคนเพื่อนรัก! ในฐานะผู้ชื่นชอบฟีเจอร์ใหม่ๆ บน GitHub ฉันสนใจมากที่จะรู้ว่าอีกไม่นานเราทุกคนจะสามารถค้นหาฐานโค้ด GitHub ได้อย่างรวดเร็วและมีประสิทธิภาพ วิธีนี้จะสะดวกมาก โดยเฉพาะอย่างยิ่งหากคุณต้องการหาวิธีที่ซับซ้อนในการใช้เครื่องมือ “การค้นหาโค้ด GitHub: ค้นหามากขึ้น ค้นหาน้อยลง” - GitHub เปิดตัวเครื่องมือค้นหา - 1สิ่งนี้สะท้อนโดยเฉพาะอย่างยิ่งกับความจริงที่ว่าคู่แข่งในอนาคตของ GitHub เปิดตัวในรัสเซีย ดังนั้น GitHub ไม่ควรหยุดอยู่กับเกียรติยศอย่างแน่นอน แม้ว่าพวกเขาจะเป็นผู้นำในตลาดอย่างไม่ต้องสงสัยก็ตาม เราต้องเดินหน้าและพัฒนา ไม่เช่นนั้นไม่ถึงชั่วโมงคู่แข่งก็จะตามทันและกวาดล้างไป และปล่อยให้มันดูไม่น่าเหลือเชื่อขนาดนี้ ตัวอย่างเช่น มีกี่คนที่ยังคงใช้โทรศัพท์ Nokia? ใครจะรู้ว่าพวกเขาทำโทรศัพท์? ครั้งหนึ่งพวกเขาเป็นเพียงผู้นำตลาดที่ไม่สามารถบรรลุได้และไม่มีปัญหา... และตอนนี้พวกเขาปรากฏที่ไหนสักแห่งในขอบเขตของข้อผิดพลาดทางสถิติ

ความประทับใจแรก

GitHub ได้สร้างโปรเจ็กต์ที่คุณสามารถค้นหา นำทาง และวิเคราะห์โค้ดของคุณ รวมถึงโค้ดนับพันล้านบรรทัดที่เผยแพร่บน GitHub สิ่งสำคัญคือต้องทราบว่าการค้นหาสามารถปรับขนาดได้ รวดเร็ว และแม่นยำ มันถูกสร้างขึ้นตั้งแต่เริ่มต้นสำหรับการค้นหาโค้ดโดยเฉพาะ การนำทางใช้งานได้กับ 10 ภาษาการเขียนโปรแกรมหลักโดยไม่ต้องตั้งค่า (เราหวังว่ารายการจะเติบโตขึ้นในอนาคต) คุณสามารถค้นหาโดยใช้นิพจน์ทั่วไปซึ่งยอดเยี่ยมมาก นอกจากนี้ยังมีตัวกรองอื่นๆ ให้เลือกด้วย:
  • ตามองค์กร
  • โดยภาษาโปรแกรม
  • โดยเจ้าของเฉพาะ
  • ตามนามสกุลไฟล์
  • โดยการแสดงออกปกติ
รายการโดนใจอยู่แล้ว! ปรากฎว่าเครื่องมือค้นหาเปิดโอกาสให้เราสร้างคำค้นหาที่ซับซ้อนซึ่งเราสามารถกำหนดขอบเขตที่ต้องการการค้นหาได้อย่างชัดเจน ส่วนสำคัญที่สองของเอ็นจิ้นคือการนำทางด้วยโค้ด 😉 สภาพแวดล้อมการพัฒนาสะดวกสำหรับอะไรและทำไมผู้คนถึงจ่ายเงินให้พวกเขา? เพราะมันทำให้ชีวิตของเราง่ายขึ้น ช่วยเรานำทางผ่านโค้ด เพื่อเพิ่มความเร็วในการพัฒนาและอ่านโค้ด และตอนนี้ GitHub ก็นำเสนอฟีเจอร์สุดเจ๋งนี้ให้กับเรา นี่มันเหลือเชื่อมาก ใช่ ฉันรู้ว่าในขณะนี้มีบางอย่างที่คล้ายกับการนำทางใน GitHub อยู่แล้ว แต่ฟังก์ชันการทำงานยังสั้นมากและหยาบมาก นั่นคือ หากไม่มีสภาพแวดล้อมการพัฒนา คุณสามารถค้นหาได้ว่ามีการใช้วิธีใดวิธีหนึ่งอยู่ที่ไหน และกำหนดไว้ที่ไหน มันวิเศษมาก GitHub คุณทำให้ฉันมีความสุข การนำทางสำหรับการนำเข้าในคลาสก็มีให้เช่นกัน วิธีนี้ช่วยแก้ปัญหามากมายในการค้นหาและศึกษาไลบรารีเฉพาะบน GitHub ตอนนี้กระบวนการนี้ถูกเร่งขึ้นหลายครั้ง และทั้งหมดนี้ฟรี ยอดเยี่ยมมาก เขาจะเป็นที่ต้องการหรือไม่? ฉันแน่ใจว่าใช่!

มาดูรายละเอียดเพิ่มเติมเกี่ยวกับการค้นหากัน

การดูและลองค้นหาตัวเองเป็นเรื่องที่น่าสนใจมากสะดวกเหมือนที่พวกเขาพูดไหม? ในขณะนี้ คุณลักษณะนี้ยังไม่พร้อมใช้งานแบบสาธารณะ และคุณสามารถเพิ่มตัวเองลงในรายชื่อรอได้โดยใช้ลิงก์ เรากรอกทุกประเด็นในนั้น คำถามง่าย ๆ ฉันจะไม่อธิบายที่นี่ เป็นผลให้เราถูกเพิ่มเข้าไปในรายการรอและเดินหน้าต่อไป ผลลัพธ์ที่ได้คือ: “การค้นหาโค้ด GitHub: ค้นหามากขึ้น ค้นหาน้อยลง” - GitHub เปิดตัวเครื่องมือค้นหา - 2คุณเพียงแค่ต้องรอ ทันทีที่ฉันถูกเพิ่ม ฉันจะแสดงให้คุณเห็นทุกอย่างอย่างแน่นอน อย่ารอช้า เพิ่มตัวเองเพื่อที่คุณจะได้คิดออกในภายหลังและใช้มันตามความพอใจของคุณ) และแน่นอนว่า เป็นเรื่องน่าเสียดายที่คุณไม่สามารถทดลองใช้เครื่องมือใหม่ได้ทันที ดังนั้นเรามาวิเคราะห์เอกสารประกอบของพวกเขาและอธิบายใน รายละเอียดเพิ่มเติมว่าเราจะใช้เครื่องมือนี้กับงานของเราได้อย่างไร ตอนนี้เกี่ยวกับการค้นหา มันจะใช้คลาสและโครงสร้างที่เหมาะสมในไลบรารีที่ฉันเขียน สิ่งนี้จะทำให้ชัดเจนและง่ายขึ้นสำหรับฉัน และฉันหวังว่ามันจะง่ายขึ้นสำหรับคุณเช่นกัน

การค้นหาขั้นพื้นฐาน

ImageComparisonเป็นการค้นหาที่ง่ายที่สุดที่ค้นหาด้วยคำค้นหาในชื่อไฟล์และในเนื้อหา ทุกอย่างดูเรียบง่ายมากที่นี่ หากเราต้องการค้นหาให้ชัดเจนจากชื่อคลาส ตำแหน่งที่ประกาศ และใช้ตำแหน่งใด การค้นหาดังกล่าวจะช่วยเราในเรื่องนี้ เมื่อคุณป้อนคำหลายคำโดยคั่นด้วย ช่องว่าง ผลลัพธ์จะเป็นการค้นหาคำทั้งหมดแยกกัน: Image comparison ซึ่งหมายความว่าจะค้นหาไฟล์และโค้ดสำหรับทั้งImageและcomparison หากคุณต้องการค้นหาสตริงที่มีการเว้นวรรค คุณเพียงแค่ต้องใช้เครื่องหมายคำพูด ตัวอย่างเช่น: “การเปรียบเทียบ ImageComparison = new ImageComparison()”จากนั้นการค้นหาจะจับคู่สตริงทั้งหมด สำหรับการหลบหนี เราใช้ “\” เช่นเคย จนถึงตอนนี้ ทุกอย่างเป็นไปตามสัญชาตญาณและมักจะเป็นเช่นนั้น นอกจากนี้เรายังสามารถเพิ่มตัวกรองให้กับการค้นหาขั้นพื้นฐานนี้ได้ ดังนั้นเรามาพูดถึงแต่ละเรื่องกัน สิ่งเหล่านี้จะเป็น "และ" แบบลอจิคัลสำหรับตัวกรองที่เราสร้างไว้แล้ว

กรองตามพื้นที่เก็บข้อมูล

เมื่อตัวกรองพื้นฐานของเราพร้อมแล้ว เราก็สามารถจำกัดขอบเขตการค้นหาและค้นหาตามพื้นที่เก็บข้อมูลเฉพาะได้ ซึ่งสะดวกมาก คุณไม่จำเป็นต้องค้นหาว่าชั้นเรียนนั้นอยู่ในโฟลเดอร์ใด คุณก็แค่เขียน:
repo:romankh3/image-comparison ImageComparisonResult
โดยที่เราต้องระบุrepo:${user_name}/${repo_name } คุณยังสามารถค้นหาในที่เก็บข้อมูลหลายแห่งได้โดยเพียงเพิ่มหรือ:
repo:romankh3/image-comparison หรือ repo:romankh3/usage-image-comparison ImageComparisonResult
ตามที่ระบุไว้ใน GitHub ในขณะนี้ พวกเขาไม่รองรับการค้นหาในที่เก็บที่ระบุชื่อเป็นนิพจน์ทั่วไป... ซึ่งหมายความว่าพวกเขากำลังวางแผนที่จะเพิ่มคุณสมบัติดังกล่าวและหมายความว่าโครงการจะไม่หยุดอยู่ที่การประกาศ ฟังก์ชั่นและจะพัฒนาต่อไป

กรองตามองค์กร

การค้นหาตามองค์กรหรือผู้ใช้นั้นทำในลักษณะเดียวกับการค้นหาตามพื้นที่เก็บข้อมูล เฉพาะคำหลักเท่านั้นที่จะไม่ใช่repoแต่org :
org: romankh3 การเปรียบเทียบรูปภาพ
จากนั้นการค้นหาจะผ่านพื้นที่เก็บข้อมูลทั้งหมดของผู้ใช้/องค์กร

กรองตามภาษาโปรแกรม

คุณยังสามารถระบุการค้นหาไฟล์ในภาษาการเขียนโปรแกรมเฉพาะได้ ในที่นี้โครงสร้างจะเหมือนกับพื้นที่เก็บข้อมูลและองค์กร คีย์เวิร์ดเท่านั้นคือlanguage :
ภาษา: Java ImageComparison
เช่นเดียวกับพื้นที่เก็บข้อมูล รองรับการค้นหาหลายภาษาพร้อมกันโดยใช้คีย์เวิร์ด 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

การดำเนินการบูลีน

และแน่นอนว่า จุดสุดยอดของการสร้างตัวกรองทั้งหมดคือการรวมเรื่องนี้เข้าด้วยกันโดยใช้การดำเนินการแบบบูลีน สำหรับสิ่งนี้ เรามี AND, OR, AND NOT ฉันคิดว่านี่น่าจะเพียงพอสำหรับเรา ตัวอย่างเช่น มาสร้างคำค้นหาที่ซับซ้อน: โค้ดจากการผลิต Java หรือ Kotlin สำหรับผู้ใช้/องค์กรเฉพาะ:
repo:romankh3 AND (ภาษา:java หรือภาษา:kotlin) และไม่ใช่ path:*/test/*
ฉันบอกคุณแล้วว่าสิ่งนี้ช่างเหลือเชื่อจริงๆ คำร้องขอค้นหาเขียนไว้อย่างเรียบง่าย รวดเร็ว กระชับ และชัดเจน จะได้ไม่มีปัญหาในการค้นหาและอ่านคำร้องขอ

การพักผ่อนเล็กๆ

แม้ว่าความสุขของเรายังไม่หมดลง แต่ฉันก็อยากย้อนกลับไปในปี 2018 และจำอะไรบางอย่าง... จำไว้ว่าเมื่อทุกคนรู้ว่า Microsoft กำลังซื้อ GitHub ทุกคนคิดว่าโครงการนี้จะถูกฝังไว้? ชะตากรรมของเขาคือเส้นทางของ Skype ที่สอง? ทุกคนเริ่มย้ายโปรเจ็กต์ไปที่ 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