JavaRush /Blogue Java /Random-PT /Pesquisa de código GitHub: Encontre mais, pesquise menos ...
Roman Beekeeper
Nível 35

Pesquisa de código GitHub: Encontre mais, pesquise menos - GitHub lançou um mecanismo de pesquisa

Publicado no grupo Random-PT
Olá a todos, queridos amigos! Como amante dos novos recursos do GitHub, fiquei muito interessado em saber que em breve todos poderemos pesquisar de forma rápida e eficiente a base de código do GitHub. Isso pode ser muito conveniente, especialmente se você precisar encontrar uma maneira sofisticada de usar uma ferramenta. “GitHub Code Search: Encontre mais, pesquise menos” - GitHub lançou um mecanismo de pesquisa - 1Isto ressoa especialmente com o fato de que um futuro concorrente do GitHub foi aberto na Rússia. Portanto, o GitHub definitivamente não deve descansar sobre os louros, apesar de serem, sem dúvida, os líderes do mercado. Precisamos seguir em frente e nos desenvolver, caso contrário, não demorará nem uma hora e os concorrentes nos alcançarão e nos afastarão. E que não pareça tão incrível. Por exemplo: quantas pessoas ainda usam telefones Nokia? Quem sabe eles fizeram telefones? Houve uma época em que eram líderes de mercado simplesmente inatingíveis e indiscutíveis... E agora aparecem em algum lugar no reino do erro estatístico.

Primeira impressão

GitHub criou um projeto onde você pode pesquisar, navegar e analisar seu código e os bilhões de linhas de código publicadas no GitHub. É importante observar que a pesquisa é escalável, rápida e precisa. Ele foi criado do zero especificamente para pesquisa de código. A navegação funciona para 10 principais linguagens de programação sem configurações (esperamos que a lista cresça no futuro). Você pode pesquisar usando uma expressão regular, o que é muito legal. Outros filtros também estão disponíveis:
  • por organização;
  • por linguagens de programação;
  • por proprietário específico;
  • por extensão de arquivo;
  • por expressão regular.
A lista já impressiona! Acontece que o mecanismo de pesquisa nos dá a oportunidade de criar consultas de pesquisa complexas nas quais podemos definir claramente os limites ao longo dos quais a pesquisa é necessária. A segunda parte importante do mecanismo é a navegação do código. Para que servem os ambientes de desenvolvimento e por que as pessoas pagam por eles? Porque facilitam a nossa vida, ajudam-nos a navegar pelo código, para que aumente a velocidade de desenvolvimento e leitura do código. E o GitHub agora nos oferece esse recurso interessante. Isto é incrível. Sim, eu sei que no momento já existe algo semelhante à navegação no GitHub, mas a funcionalidade ainda é muito curta e rudimentar. Ou seja, sem um ambiente de desenvolvimento, você pode pesquisar onde determinados métodos são utilizados, onde foram definidos. É simplesmente maravilhoso. GitHub você me faz feliz. A navegação para importações em classes também está disponível. Isso resolve muitos problemas de localização e estudo de uma biblioteca específica no GitHub. Agora esse processo é acelerado muitas vezes. E é tudo grátis. Simplesmente excelente. Ele estará em demanda? Tenho certeza que sim!

Vamos falar mais detalhadamente sobre pesquisa

É muito interessante dar uma olhada e tentar procurar por si mesmo: é tão conveniente quanto dizem? Por enquanto, esse recurso não está disponível publicamente e você pode se adicionar à lista de espera através do link . Aí preenchemos todos os pontos, as perguntas são simples, não vou descrevê-las aqui. Como resultado, somos adicionados à lista de espera e seguimos em frente. Como resultado, a resposta será esta: “GitHub Code Search: Encontre mais, pesquise menos” - GitHub lançou um mecanismo de pesquisa - 2basta esperar. Assim que for adicionado, com certeza mostrarei tudo a vocês. Não demore, adicione-se para que você possa descobrir mais tarde e usá-la como quiser) E claro, é uma pena que você não possa experimentar a nova ferramenta imediatamente, então vamos analisar a documentação deles e descrevê-la em mais detalhes como podemos usar esta ferramenta para o nosso trabalho. Agora sobre a pesquisa. Ele usará classes e construções que façam sentido na biblioteca que estou escrevendo. Isso tornará tudo mais claro e fácil para mim e espero que seja mais fácil para você também.

Pesquisa básica

ImageComparison é a pesquisa mais simples que pesquisa exatamente com a consulta nos nomes dos arquivos e em seu conteúdo. Tudo parece muito simples aqui. Se quisermos encontrar claramente pelo nome da classe, onde ela é declarada e onde é usada, tal pesquisa nos ajudará nisso. Quando você insere várias palavras separadas por espaços, o resultado será uma pesquisa por todas elas separadamente: Image Comparison , o que significa que encontrará arquivos e códigos para Image e Comparison . Se você precisar procurar uma string contendo espaços, basta usar aspas. Por exemplo: “Comparação ImageComparison = new ImageComparison()” e então a pesquisa corresponderá à string inteira. Para escapar, usamos “\” como sempre. Até agora, tudo é intuitivo e muitas vezes é assim que se faz. Além disso, podemos adicionar filtros a esta pesquisa básica. Portanto, vamos falar sobre cada um deles. Estes serão “ANDs” lógicos para o filtro que já criamos.

Filtrar por repositório

Assim que nosso filtro básico estiver pronto, podemos restringir nossa pesquisa e pesquisar por repositório específico, o que é muito conveniente. Você não precisa procurar em qual pasta a classe está localizada, basta escrever:
repo: romankh3/image-comparison ImageComparisonResult
Onde precisamos especificar repo:${user_name}/${repo_name} . Você também pode pesquisar em vários repositórios simplesmente adicionando um OR:
repo:romankh3/comparação de imagens OU repo:romankh3/usage-image-comparison ImageComparisonResult
Conforme declarado no GitHub, no momento eles não suportam pesquisa em repositórios onde o nome é especificado como uma expressão regular... Isso significa que eles estão planejando adicionar tal recurso e isso significa que o projeto não irá parar no declarado funcionalidade e se desenvolverá ainda mais.

Filtrar por organização

A busca por organização ou usuário é feita da mesma forma que a busca por repositório, só que a palavra-chave não será repo , mas sim org :
org: romankh3 Comparação de imagens
E então a busca passará por todos os repositórios do usuário/organização.

Filtrar por linguagens de programação

Você também pode especificar uma pesquisa de arquivos em uma linguagem de programação específica. Aqui a construção é a mesma do repositório e organização, apenas a palavra-chave é idioma :
idioma:java ImageComparison
Assim como o repositório, ele suporta pesquisa em vários idiomas ao mesmo tempo usando a palavra-chave OR:
idioma:java OU idioma:ruby ImageComparison
Uma lista completa de idiomas suportados pelo GitHub pode ser encontrada aqui . Eu me pergunto se BrainFuck está aí? 😂

Filtrar por caminho de arquivo

Cada arquivo do projeto tem seu próprio caminho e você também pode pesquisá-lo adicionando um filtro. Por exemplo, existe um arquivo ImageComparisonResult , que possui o caminho:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Portanto, para encontrar todas as classes cujo caminho começa com src/main/java/com/github/romankh3/image , você precisa:
caminho:src/main/java/com/github/romankh3/image
Pode ser útil nos casos em que não queremos que as classes de teste fiquem de fora dos resultados da pesquisa. Ou vice-versa, apenas testes. Isso torna sua pesquisa mais flexível. Um filtro por caminho de arquivo pode ser especificado usando uma expressão regular. Por exemplo, precisamos encontrar
caminho:src/*/*.js

Operações booleanas

E, claro, o ponto culminante de toda a construção de filtros é combinar esse assunto usando operações booleanas. Para isso temos AND, OR e NOT. Acho que isso deveria ser suficiente para nós. Por exemplo, vamos criar uma consulta de pesquisa complexa: código de produção Java ou Kotlin para um usuário/organização específico:
repo:romankh3 AND (idioma:java OR idioma:kotlin) AND NOT caminho:*/test/*
E isso, eu lhe digo, é simplesmente incrível. O pedido de pesquisa é escrito de forma simples, rápida, concisa e clara que não haverá problemas na pesquisa e leitura do pedido.

Um pequeno retiro

Enquanto nossa alegria ainda não esfriou, quero voltar a 2018 e lembrar de uma coisa... Lembra, quando todos descobriram que a Microsoft estava comprando o GitHub, todos pensaram que o projeto seria enterrado? Que o seu destino é o caminho do segundo Skype? Como todos começaram a migrar seus projetos para o GitLab? Mas sejamos honestos, na esteira desse hype eu criei e sofri alguma coisa. Mas para ser sincero, nunca mais visitei o local para onde mudei os projetos. E de alguma forma eu não quero. E porque? Também há pensamentos sobre isso. Deixe-me lembrá-lo que após a venda do GitHub para Bill Gates, o projeto adicionou a capacidade de ter repositórios privados gratuitamente, GitHub Actions foram lançadas para o processo de CI/CD e muito mais. E agora também existe um poderoso mecanismo de busca. Isto não soa como um desejo de afundar o projeto. É mais como se a Microsoft não quisesse pagar impostos sobre os lucros e fizesse uma compra bem-sucedida no final do ano por mais de 9 bilhões de dólares 😁 E depois de tudo isso eles decidiram desenvolver este projeto. E é verdade que para um desenvolvedor de código aberto este é um ótimo lugar para armazenar seu código. Você pode desenvolver totalmente seu produto sem sair do GitHub.

No final

Escrevi o artigo de uma só vez. Eu realmente adoro quando palavras e emoções fluem como um gêiser. É isso que faz a tecnologia avançar. Portanto, mantemos o controle e não abandonamos a situação. Tenho certeza de que cada um de nós deve aprender a usá-lo. Para quem ainda não se inscreveu no GitHub, recomendo fortemente que o faça. Vale a pena. Como sempre, amigos, não esqueçam de se inscrever no meu canal de telegrama , no qual combino todas as minhas atividades públicas. Além dos artigos que publico aqui, escrevo lá posts mais curtos nos quais abordo temas que me interessam do mundo do desenvolvimento e da TI em geral. Já são mais de 800 inscritos lá! E, claro, minha conta GitHub , onde publico todos os projetos de demonstração de artigos, atualizo minhas bibliotecas e desenvolvo organizações de código aberto. Só isso, obrigado a todos pela leitura, não vamos nos despedir 👌
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION