Os IDEs modernos têm muitos truques nas mangas para ajudar na redação, refatoração e pesquisa de códigos. Tudo isso é muito útil, mas raramente um deles parece uma verdadeira "mágica" e me faz pensar "Uau! Como isso foi descoberto?"
Você pode nomear quaisquer recursos impressionantes de automação de código IDE (ou outros) que impressionaram sua mente na primeira vez em que você os viu?
ide
automation
serg
fonte
fonte
Respostas:
Depuração reversa
O Visual Studio 2010 (e agora 2012) permite depurar com o IntelliTrace.
Nunca mais terei que reviver o momento em que bati no F10 muitas vezes e preciso reiniciar a depuração.
fonte
Conclusão de código
Quando tudo que você vê é um editor de texto, isso é impressionante
fonte
A capacidade do ReSharper de adivinhar o que eu quero que uma variável chamada continue a me surpreender. Aqui está um exemplo muito simples, mas você entendeu.
fonte
foreach(var matche in regex.Matches(str))
. Também definematche
como um emobject
vez de umMatch
, não muito útil.MatchCollection
é uma coleção sem tipo. Para coleções adequadas,var
funciona muito bem. (Eu ainda não gosto)Fiquei muito impressionado com as ferramentas de refatoração do Eclipse quando as encontrei pela primeira vez. A capacidade de extrair métodos (que, quando você está aprendendo um design melhor é uma ocorrência comum) de um grande pedaço de código e de ter tudo tratado para mim foi bastante interessante.
fonte
Bolhas de código. http://www.andrewbragdon.com/codebubbles_site.asp
Eu amo o Visual Studio e o Eclipse pelas ferramentas que eles me oferecem para alterar o código, mas o Code Bubbles realmente me excita por poder navegar e visualizar meu código. Pena que não está disponível ao público = - {
fonte
O ambiente de programação mais impressionante que eu já ouvi falar é o sistema operacional Genera.
Você pode clicar em qualquer widget no sistema de janelas e obter uma leitura completa do código fonte e documentação do item. Sendo uma linguagem de programação dinâmica (Lisp), você pode editar a fonte do widget rapidamente.
O ZMACS do mundo Lisp Machine ainda é considerado um editor melhor do que o Emacs, que é um ambiente de editor sem igual.
fonte
Mostrando visualmente a estrutura do programa (programas / funções / rotinas / ...)
fonte
Capacidade do ReSharper de refatorar.Na divulgação completa, posso estar atrás da curva aqui, pois acho que o Java com Eclipse tem esse tipo de funcionalidade há algum tempo, mas não trabalho regularmente com Java.
O delta de capacidade que o ReSharper adiciona ao Visual Studio é tão grande que é inacreditável. Sei que pareço um anúncio, mas acho que nunca poderia voltar a usar uma instalação padrão do Visual Studio sem o ReSharper na parte superior.
De um modo mais geral, um entendimento semântico do código superaria qualquer editor de texto comum a qualquer dia. Isso leva a coisas como "encontrar usos da variável" ou "função embutida" ou "oportunidade de usar padrão idiomático", etc.
fonte
Depurador do Smalltalk:
É perfeitamente normal no Smalltalk passar a maior parte do tempo escrevendo código de dentro do depurador.
(Lembro-me de ter ficado impressionado executando um método, vendo algo errado, alterando-o e executando o método novamente sem reiniciar o aplicativo no dia anterior com o Visual Age para Java ... porque o VA4J foi escrito no Visual Age para Smalltalk.)
Localizador de métodos de Smalltalk
O Method Finder permite que você pergunte "que mensagem devo enviar para pegar esses parâmetros e obter esse resultado?" Peça
'abc'. 'def'. 'abcdeb'.
e ele lhe diz'abc' , 'def' --> 'abcdef'
. Pergunte#(0 1 2 3)
e ele diz#(0 1 2 3) sum --> 6
. * Remetentes, implementadores - tudo para encontrar todos (*) remetentes de uma mensagem ou todos os objetos que implementam essa mensagem.(*) Exceto quando você faz coisas como criar nomes de mensagens em tempo de execução:
self perform: (#foo, #bar)
para enviar a si mesmo a mensagem#foobar
- nesse caso, você sabe o que está fazendo e não se importa com o potencial de se içar em sua própria petarda.fonte
Whyline
Whyline para Java realmente me impressionou quando o vi. É uma ferramenta de análise dinâmica que permite fazer perguntas sobre a saída do programa, e não apenas texto, mas também gráficos. Por exemplo, você pode perguntar "por que essa linha era vermelha?" ou "por que o método de pintura não foi chamado?"
Ele funciona instrumentando seu programa e gravando uma corrida. Por exemplo, suponha que haja um erro que você possa reproduzir. Você instrumenta seu programa com o Whyline, executa o programa no Whyline para reproduzir o erro e, quando sai do programa, pode usar o Whyline para inspecionar o histórico de execução.
Essa gravação e reprodução não são novas, mas como a Whyline as implementa é muito boa. Você pode visualizar o histórico de acordo com eventos específicos (por exemplo, concentrando-se apenas nos eventos de arrastar o mouse ou apenas nos eventos de pressionamento de tecla). Ele também associa a saída com a parte do programa que foi impressa, para que você possa navegar da saída para o código.
Para funcionar, ele usa a divisão do programa, para que você possa se concentrar nas partes do código que são realmente relevantes. A CMU agora possui uma patente e não sei quais são seus planos, mas espero que possamos ver mais disso em produção. É um porco da memória, mas isso é provável porque é um protótipo e pode melhorar.
Você deve ver a demonstração on-line, mas também deve experimentá-la para obter a experiência completa. As demos online subestimam a ideia.
fonte
Eu acho que o recurso IDE mais impressionante que eu já vi é o SyncEdit , que o AFAIK está disponível apenas no Delphi.
fonte
O que eu gostaria de ver em um IDE são esses recursos:
sheet[A3]
) e desenhos no código e acessá-los como qualquer variável.if
condições complexas de maneira semelhante a uma tabela (ainda pesquisando no link).fonte
Verificação de tipo para idiomas dinâmicos
Contanto que seu código não fique muito 'meta', um IDE para Ruby ou Python poderá executar uma tarefa em segundo plano que:
Ainda não vi um IDE que faça isso.
fonte
Sou um grande fã da capacidade de várias linhas com alt alt na melhor versão do Vs2010 que eu encontrei sobre a nova versão.
fonte
O Auto Build do Eclipse é o recurso que eu mais admiro .... 7 anos atrás. Agora eu apenas tomo como garantido.
fonte
O Xcode 4 corrige ponto-e-vírgula e erros de digitação e usa setas para mostrar como ocorreu um erro.
Por exemplo:
Uma seta será desenhada de
[a release]
para[a length]
para mostrar por que você não pode usar[a length]
.fonte
Modelos de código e expansão, como CodeRush do DevExpress. No C #, a
DependencyProperty
é um grande problema para criar, uma vez que a sintaxe pode ser detalhada, mas simplesmente digitar "dp" traz algo semelhante a um trecho em que você preenche o tipo, nome e valor padrão, e tudo o mais é feito - incluindo adicionando quaisquer instruções "using" necessárias e, possivelmente, referências de projeto se a memória servir.O benefício está na criação de seus próprios modelos, para o código que você geralmente reutiliza ou reescreve, como implementações simples de
INotifyPropertyChanged
propriedades, onde simplesmente fornece ao modelo o nome e o tipo da propriedade (se outro expansor não o tiver manipulado) que você deseja usar e lida com o restante, incluindo a criação da variável de backup.fonte
O Pex faz uma geração automatizada de testes de unidade bastante bacana. Ele rastreia seu código, determina pontos de ramificação, usa um solucionador condicional para gerar entradas que atingem todas as ramificações possíveis e, em seguida, permite exportar os resultados como testes de unidade repetíveis. Ele pode humilhar códigos complexos de manipulação de strings.
fonte
No Eclipse, gerar SEtters e getters automaticamente, da mesma forma, crie métodos na classe implementa a partir de uma interface
fonte
Suporte do IntelliJ Idea à JPA
Mencione que você tem um DatabaseEntity:
agora você tem algumas consultas JPA
depois de algum tempo, você digitou um erro de digitação em sua Entidade e decidiu refatorar o nome da las de las sobrenome .
Esse IDE também refatorará a consulta JPA.
fonte