JavaRush /Blog Java /Random-VI /Tìm kiếm mã GitHub: Tìm thêm, tìm kiếm ít hơn - GitHub ra...
Roman Beekeeper
Mức độ

Tìm kiếm mã GitHub: Tìm thêm, tìm kiếm ít hơn - GitHub ra mắt công cụ tìm kiếm

Xuất bản trong nhóm
Xin chào tất cả mọi người, các bạn thân mến! Là người yêu thích các tính năng mới trên GitHub, tôi rất muốn biết rằng tất cả chúng ta sẽ sớm có thể tìm kiếm cơ sở mã GitHub một cách nhanh chóng và hiệu quả. Điều này có thể rất thuận tiện, đặc biệt nếu bạn cần tìm một cách phức tạp để sử dụng một công cụ. “Tìm kiếm mã GitHub: Tìm nhiều hơn, tìm kiếm ít hơn” - GitHub ra mắt công cụ tìm kiếm - 1Điều này đặc biệt gây tiếng vang với thực tế là một đối thủ cạnh tranh trong tương lai với GitHub đã được mở ở Nga. Vì vậy, GitHub chắc chắn không nên ngủ quên trên chiến thắng của mình, mặc dù thực tế rằng họ chắc chắn là người dẫn đầu thị trường. Chúng ta cần phải tiếp tục và phát triển, nếu không chưa đầy một giờ nữa các đối thủ sẽ đuổi kịp và bỏ xa. Và hãy để nó không có vẻ quá khó tin. Ví dụ: bao nhiêu người vẫn sử dụng điện thoại Nokia? Ai còn biết họ đã tạo ra điện thoại? Đã có lúc họ đơn giản là những người dẫn đầu thị trường không thể đạt được, không thể tranh cãi... Và bây giờ họ xuất hiện ở đâu đó trong lĩnh vực sai sót thống kê.

Ấn tượng đầu

GitHub đã tạo một dự án nơi bạn có thể tìm kiếm, điều hướng và phân tích mã của mình cũng như hàng tỷ dòng mã được xuất bản trên GitHub. Điều quan trọng cần lưu ý là tìm kiếm có thể mở rộng, nhanh chóng và chính xác. Nó được tạo ra từ đầu dành riêng cho việc tìm kiếm mã. Điều hướng hoạt động với 10 ngôn ngữ lập trình chính mà không cần cài đặt (chúng tôi hy vọng rằng danh sách này sẽ phát triển trong tương lai). Bạn có thể tìm kiếm bằng cách sử dụng biểu thức chính quy, điều này rất thú vị. Các bộ lọc khác cũng có sẵn:
  • theo tổ chức;
  • bằng ngôn ngữ lập trình;
  • bởi chủ sở hữu cụ thể;
  • bằng phần mở rộng tập tin;
  • bằng biểu thức chính quy.
Danh sách này đã rất ấn tượng rồi! Hóa ra công cụ tìm kiếm cho chúng ta cơ hội tạo các truy vấn tìm kiếm phức tạp trong đó chúng ta có thể xác định rõ ràng ranh giới mà việc tìm kiếm là cần thiết. Phần quan trọng thứ hai của công cụ là điều hướng mã 😳 Môi trường phát triển thuận tiện cho việc gì và tại sao mọi người trả tiền cho chúng? Bởi vì chúng làm cho cuộc sống của chúng ta dễ dàng hơn, giúp chúng ta điều hướng trong code, nhờ đó tốc độ phát triển và đọc code tăng lên. Và GitHub hiện cung cấp cho chúng tôi tính năng thú vị này. Điều này thật phi thường. Có, tôi biết rằng hiện tại đã có tính năng tương tự như điều hướng trong GitHub, nhưng chức năng này vẫn còn rất ngắn và thô sơ. Nghĩa là, nếu không có môi trường phát triển, bạn có thể tìm kiếm nơi sử dụng một số phương thức nhất định, nơi chúng được xác định. Nó thật tuyệt vời. GitHub bạn làm tôi hạnh phúc. Điều hướng để nhập trong các lớp cũng có sẵn. Điều này giải quyết được nhiều vấn đề trong việc tìm kiếm và nghiên cứu một thư viện cụ thể trên GitHub. Bây giờ quá trình này được tăng tốc nhiều lần. Và tất cả đều miễn phí. Chỉ là xuất sắc. Liệu anh ấy có được yêu cầu không? Tôi chắc chắn là có!

Hãy nói chi tiết hơn về tìm kiếm

Thật thú vị khi bạn xem và thử tự mình tìm kiếm: nó có tiện lợi như người ta nói không? Hiện tại, tính năng này chưa được cung cấp công khai và bạn có thể thêm mình vào danh sách chờ bằng liên kết . Chúng tôi điền tất cả các điểm ở đó, các câu hỏi rất đơn giản, tôi sẽ không mô tả chúng ở đây. Kết quả là chúng tôi được thêm vào danh sách chờ và đi tiếp. Kết quả là câu trả lời sẽ là: “Tìm kiếm mã GitHub: Tìm nhiều hơn, tìm kiếm ít hơn” - GitHub ra mắt công cụ tìm kiếm - 2Bạn chỉ cần đợi. Ngay khi được thêm vào, tôi chắc chắn sẽ cho bạn thấy mọi thứ. Đừng trì hoãn, hãy thêm chính bạn để sau này bạn có thể tìm hiểu và sử dụng nó một cách thỏa thích) Và tất nhiên, thật đáng tiếc khi bạn không thể dùng thử công cụ mới ngay lập tức, vì vậy hãy cùng phân tích tài liệu của họ và mô tả trong chi tiết hơn về cách chúng ta có thể sử dụng công cụ này cho công việc của mình. Bây giờ về việc tìm kiếm. Nó sẽ sử dụng các lớp và cấu trúc có ý nghĩa trong thư viện mà tôi đang viết. Điều này sẽ làm cho mọi việc trở nên rõ ràng và dễ dàng hơn đối với tôi và tôi hy vọng nó cũng sẽ dễ dàng hơn đối với bạn.

Tìm kiếm cơ bản

ImageComparison là tìm kiếm đơn giản nhất tìm kiếm chính xác với truy vấn về tên tệp và nội dung của chúng. Mọi thứ ở đây có vẻ rất đơn giản. Nếu chúng ta muốn tìm rõ ràng theo tên lớp, nơi nó được khai báo và nơi nó được sử dụng, việc tìm kiếm như vậy sẽ giúp chúng ta điều này. Khi bạn nhập nhiều từ cách nhau bằng dấu cách, kết quả sẽ là tìm kiếm tất cả các từ đó một cách riêng biệt: Image So sánh , nghĩa là nó sẽ tìm thấy các tệp và mã cho cả Hình ảnhSo sánh . Nếu bạn cần tìm kiếm một chuỗi chứa khoảng trắng thì bạn chỉ cần sử dụng dấu ngoặc kép. Ví dụ: “So sánh ImageComparison = new ImageComparison()” và sau đó tìm kiếm sẽ khớp với toàn bộ chuỗi. Để thoát, chúng ta sử dụng “\” như mọi khi. Cho đến nay, mọi thứ đều trực quan và đó thường là cách nó được thực hiện. Hơn nữa, chúng tôi có thể thêm bộ lọc vào tìm kiếm cơ bản này. Vì vậy, hãy nói về từng người trong số họ. Đây sẽ là các “AND” logic đối với bộ lọc mà chúng ta đã tạo.

Lọc theo kho lưu trữ

Khi bộ lọc cơ bản của chúng tôi đã sẵn sàng, chúng tôi có thể thu hẹp tìm kiếm và tìm kiếm theo kho lưu trữ cụ thể, rất thuận tiện. Bạn không cần phải tìm xem lớp đó nằm ở thư mục nào, bạn chỉ cần viết:
repo:romankh3/so sánh hình ảnh ImageComparisonResult
Nơi chúng tôi cần chỉ định repo:${user_name}/${repo_name} . Bạn cũng có thể tìm kiếm trên nhiều kho lưu trữ bằng cách thêm OR:
repo:romankh3/image-comparison HOẶC repo:romankh3/usage-image-comparison ImageComparisonResult
Như đã nêu trên GitHub, hiện tại họ không hỗ trợ tìm kiếm trong các kho lưu trữ nơi tên được chỉ định dưới dạng biểu thức chính quy... Điều này có nghĩa là họ đang có kế hoạch thêm một tính năng như vậy và điều đó có nghĩa là dự án sẽ không dừng lại ở mức đã khai báo chức năng và sẽ phát triển hơn nữa.

Lọc theo tổ chức

Việc tìm kiếm theo tổ chức hoặc người dùng được thực hiện tương tự như tìm kiếm theo kho lưu trữ, chỉ có điều từ khóa sẽ không phải là repo mà là org :
org:romankh3 So sánh hình ảnh
Và sau đó việc tìm kiếm sẽ đi qua tất cả các kho lưu trữ của người dùng/tổ chức.

Lọc theo ngôn ngữ lập trình

Bạn cũng có thể chỉ định tìm kiếm tệp bằng ngôn ngữ lập trình cụ thể. Ở đây cách xây dựng cũng giống như đối với kho lưu trữ và tổ chức, chỉ có từ khóa là ngôn ngữ :
ngôn ngữ:java So sánh hình ảnh
Cũng giống như kho lưu trữ, nó hỗ trợ tìm kiếm bằng nhiều ngôn ngữ cùng lúc bằng từ khóa OR:
ngôn ngữ: java HOẶC ngôn ngữ: Ruby ImageComparison
Bạn có thể tìm thấy danh sách đầy đủ các ngôn ngữ được GitHub hỗ trợ tại đây . Tôi tự hỏi liệu BrainFuck có ở đó không? 😂

Lọc theo đường dẫn tệp

Mỗi tệp trong dự án có đường dẫn riêng và bạn cũng có thể tìm kiếm qua đó bằng cách thêm bộ lọc. Ví dụ có file ImageComparisonResult , nó có đường dẫn:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Vì vậy, để tìm tất cả các lớp có đường dẫn bắt đầu bằng src/main/java/com/github/romankh3/image , bạn cần:
đường dẫn: src/main/java/com/github/romankh3/image
Có thể hữu ích trong trường hợp chúng tôi không muốn các lớp kiểm tra bị loại khỏi kết quả tìm kiếm của chúng tôi. Hoặc ngược lại, chỉ kiểm tra. Điều này làm cho tìm kiếm của bạn linh hoạt hơn. Bộ lọc theo đường dẫn tệp có thể được chỉ định bằng biểu thức chính quy. Ví dụ, chúng ta cần tìm
đường dẫn:src/*/*.js

Các phép toán Boolean

Và tất nhiên, đỉnh cao của tất cả việc xây dựng bộ lọc là kết hợp vấn đề này lại với nhau bằng các phép toán Boolean. Đối với điều này, chúng tôi có VÀ, HOẶC, VÀ KHÔNG. Tôi nghĩ điều này là đủ cho chúng tôi. Ví dụ: hãy tạo một truy vấn tìm kiếm phức tạp: mã từ quá trình sản xuất Java hoặc Kotlin cho một người dùng/tổ chức cụ thể:
repo:romankh3 VÀ (ngôn ngữ:java HOẶC ngôn ngữ:kotlin) VÀ KHÔNG đường dẫn:*/test/*
Và điều này, tôi nói với bạn, đơn giản là không thể tin được. Yêu cầu tìm kiếm được viết sao cho đơn giản, nhanh chóng, chính xác và rõ ràng nên sẽ không gặp khó khăn gì trong việc tìm kiếm và đọc yêu cầu.

Một cuộc rút lui nhỏ

Trong khi niềm vui của chúng tôi vẫn chưa nguội bớt, tôi muốn quay lại năm 2018 và nhớ lại một điều... Bạn còn nhớ, khi biết tin Microsoft mua GitHub, mọi người đều nghĩ rằng dự án sẽ bị chôn vùi? Rằng định mệnh của anh là con đường của Skype thứ hai? Mọi người bắt đầu chuyển dự án của mình sang GitLab như thế nào? Nhưng hãy thành thật mà nói, sau sự cường điệu này, tôi đã tạo ra và phải chịu đựng điều gì đó. Nhưng thành thật mà nói, tôi chưa bao giờ đến thăm nơi tôi đã chuyển dự án nữa. Và bằng cách nào đó tôi không muốn. Và tại sao? Cũng có những suy nghĩ về điều này. Hãy để tôi nhắc bạn rằng sau khi bán GitHub cho Bill Gates, dự án đã bổ sung khả năng có kho lưu trữ riêng miễn phí, GitHub Actions đã được phát hành cho quy trình CI/CD, v.v. Và bây giờ cũng là một công cụ tìm kiếm mạnh mẽ. Điều này nghe có vẻ không giống ý định nhấn chìm dự án. Có vẻ như Microsoft không muốn trả thuế lợi nhuận và đã mua thành công vào cuối năm với giá hơn 9 tỷ đô la 😁 Và sau tất cả những điều này, họ quyết định phát triển dự án này. Và đúng là đối với một nhà phát triển nguồn mở thì đây là nơi tuyệt vời để lưu trữ mã của họ. Bạn hoàn toàn có thể phát triển sản phẩm của mình mà không cần rời khỏi GitHub.

Cuối cùng

Tôi đã viết bài viết trong một lần. Tôi thực sự thích khi lời nói và cảm xúc tuôn chảy như một mạch nước phun. Đây là những gì thúc đẩy công nghệ tiến lên phía trước. Vì vậy, chúng ta luôn theo dõi nhịp đập và không buông bỏ hoàn cảnh. Tôi chắc chắn rằng mỗi chúng ta nên học cách sử dụng nó. Đối với những ai chưa đăng ký GitHub, tôi thực sự khuyên bạn nên làm như vậy. Nó đáng giá. Như mọi khi, các bạn đừng quên đăng ký kênh telegram của tôi , trong đó tôi tổng hợp tất cả các hoạt động công khai của mình. Ngoài các bài viết mà tôi xuất bản ở đây, tôi còn viết những bài viết ngắn hơn, trong đó tôi đề cập đến các chủ đề mà tôi quan tâm trong thế giới phát triển và CNTT nói chung. Hiện đã có hơn 800 người đăng ký ở đó! Và tất nhiên, tài khoản GitHub của tôi , nơi tôi xuất bản tất cả các dự án demo cho các bài viết, cập nhật thư viện của mình và phát triển các tổ chức nguồn mở. Chỉ vậy thôi, cảm ơn mọi người đã đọc, đừng nói lời tạm biệt 👌
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION