Pergunta

Para linguagens de script, qual é a maneira mais eficaz de utilizar um console durante o desenvolvimento?Existem maneiras de ser mais produtivo com um console do que com uma linguagem apenas de "compilar e executar"?

Esclarecimento adicionado:Estou pensando mais na linha de Ruby, Python, Boo, etc.Linguagens que são usadas para aplicativos completos, mas também têm uma maneira de executar pequenos trechos de código em um console.

Foi útil?

Solução

Estou pensando mais na linha de Ruby, ...

Bem, para Ruby, o irb o prompt interativo é uma ótima ferramenta para "praticar" algo simples.Aqui estão as coisas que mencionarei sobre o irb para lhe dar uma ideia de seu uso eficaz:

  • Automação.Você tem permissão para .irbrc arquivo que será executado automaticamente ao iniciar o irb.Isso significa que você pode carregar suas bibliotecas favoritas ou fazer qualquer que seja você deseja em Ruby completo automaticamente.Para ver o que quero dizer, confira alguns deles em dotfiles.org.

  • Preenchimento automático.Isso torna ainda mais fácil escrever código.Não me lembro daquele método de string para remover novas linhas? "".ch<tab> produz picar e mastigar. OBSERVAÇÃO:você mesmo precisa ativar o preenchimento automático para irb

  • Dividir e conquistar.irb torna as pequenas coisas realmente fáceis.Se você estiver escrevendo uma função para manipular strings, a capacidade de testar o código interativamente diretamente no prompt economizará muito tempo!Por exemplo, você pode simplesmente abrir o irb e começar a executar funções em uma string de exemplo e ter o código funcional e testado já pronto para sua biblioteca/programa.

  • Aprendendo, experimentando e hackeando.Algo assim levaria muito tempo para ser testado em C/C++, até mesmo em Java.Se você tentar testá-los todos de uma vez, poderá falhar e ter que começar de novo.

    Aqui estou apenas aprendendo como o String#[] função funciona.

    joe[~]$ irb
    >> "12341:asdf"[/\d+/]
    # => "12341"  
    >> "12341:asdf"[/\d*/]
    # => "12341"  
    >> "12341:asdf"[0..5]
    # => "12341:"  
    >> "12341:asdf"[0...5]
    # => "12341"  
    >> "12341:asdf"[0, ':']
    TypeError: can't convert String into Integer
      from (irb):5:in `[]'
      from (irb):5
    >> "12341:asdf"[0, 5]
    # => "12341"  
    
  • Teste e benchmarking.Agora eles são bonitos e fáceis de executar. Aqui é ideia de alguém emular o Unix time função para benchmarking rápido.Basta adicioná-lo ao seu .irbrc arquivo e está sempre lá!

  • Depuração - Eu não usei muito isso, mas sempre existe a capacidade de depurar código assim.Ou retire algum código e execute-o no irb para ver o que realmente está fazendo.

Tenho certeza que estou perdendo algumas coisas, mas acertei nos meus pontos favoritos.Você realmente não tem limitação em shells, então está limitado apenas pelo que pode pensar em fazer.Quase sempre tenho alguns shells em execução.Bash, Javascript e irb de Ruby, para citar alguns.Eu os uso para muitas coisas!

Outras dicas

Acho que depende do console.A utilidade de um console CMD no Windows é menor em comparação com um console Powershell.

Você não disse qual sistema operacional está usando, mas no Linux estou usando um gerenciador de janelas com guias (wmii) há cerca de um ano e mudou radicalmente a maneira como uso os aplicativos - consoles ou outros.

Muitas vezes tenho quatro ou mais consoles e outros aplicativos em uma área de trabalho virtual e com o wmii não preciso me preocupar em redimensionar janelas para alinhar tudo corretamente.Posso reorganizá-los trivialmente em colunas verticais, empilhá-los verticalmente, fazer com que compartilhem quantidades iguais de espaço vertical ou horizontal e movê-los entre as telas.

Digamos que você abra dois consoles em sua área de trabalho.Você conseguiria isso (com desculpas pela arte do cronkey):

 ----------------
|                |
|       1        |
|                |
 ----------------
 ----------------
|                |
|       2        |
|                |
 ----------------

Agora eu os quero lado a lado.Eu insiro SHIFT-ALT-L na janela 2 para movê-la para a direita e criar duas colunas:

 -------  -------
|       ||       |
|       ||       |
|   1   ||   2   |
|       ||       |
|       ||       |
 -------  -------

Agora eu poderia abrir outro console e obter

 -------  -------
|       ||   2   |
|       ||       |
|       | -------
|   1   | -------
|       ||   3   |
|       ||       |
 -------  -------

Então, quero visualizar temporariamente o console 3 em altura total, então clico em ALT-s e obtenho:

 -------  -------
|       | -------
|       ||       |
|   1   ||   3   |
|       ||       |
|       ||       |
 -------  -------

Os consoles 2 e 3 estão empilhados agora.

Eu também poderia fornecer tags do Windows.Por exemplo, no console 2 eu poderia dizer ALT-SHIFT-twww+dev e esse console ficaria visível nos desktops virtuais 'www' e 'dev'.(Os desktops são criados se ainda não existirem.) Melhor ainda, o console pode estar em uma configuração visual diferente (por exemplo, empilhado e em tela cheia) em cada um desses desktops.

De qualquer forma, não posso fazer justiça aos gerenciadores de janelas com guias aqui.Não sei se é relevante para o seu ambiente, mas se você tiver a chance de experimentar essa forma de trabalhar, provavelmente não olhará para trás.

Adicionei um atalho à minha combinação de teclas Control-Shift-C para abrir meu console do Visual Studio 2008.Só isso já me economizou incontáveis ​​segundos quando precisei registrar uma dll ou executar qualquer outro comando.Imagino que se você aproveitar isso com outra ferramenta de comando, poderá ter alguns aumentos massivos de produtividade.

Você está brincando?

No meu ambiente Linux, o console é minha força vital.Sou proficiente em scripts bash, então, para mim, um console é muito parecido com um REPL para Python ou Lisp.Você pode literalmente fazer qualquer coisa.

Na verdade, eu escrevo ferramentas usadas pela minha equipe no bash, e o console é o lugar perfeito para fazer esse desenvolvimento.Na verdade, só preciso de um editor como suporte para as coisas à medida que as descubro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top