7 Habitos de um bom Editor

download 7 Habitos de um bom Editor

of 28

Transcript of 7 Habitos de um bom Editor

  • 8/14/2019 7 Habitos de um bom Editor

    1/28

    7 Hbitosde umBom Editor

    Lisbon Perl Mongers

    Perl Tech Meeting 10 de Julho 2007

  • 8/14/2019 7 Habitos de um bom Editor

    2/28

    Inspirado na apresentaoSeven habits of effective text edit

    2

    Bram MoolenaarMain author of VimWorks at Google

    por Bram Moole

    sponvel on-line um video google da apresentao em:habits For Efective Text Editing 2.0

    http://video.google.com/videoplay?docid=2538831956647446078o powerpoint disponvel em:

    http://www.moolenaar.net/vim.html

  • 8/14/2019 7 Habitos de um bom Editor

    3/28

    Agenda

    IDE vs Editores 7 Hbitos para uma edio mais eficaz

  • 8/14/2019 7 Habitos de um bom Editor

    4/28

    IDE vs Editores

    Editor

    Compilador

    Debuger

    IDEC++

    IDE IDE

    Java Perl

    C++ e Java Perl

    JavaC++ Perl

    viso dos IDEs (Integrated Development environment )

  • 8/14/2019 7 Habitos de um bom Editor

    5/28

    Aproximao rodutividade

    Fonte: http://osteele.com/archives/2004/11

    Evoluo da Linguagem

    Ferramentas desuporte linguagem

    Suporte apenasem modo texto

    uando uma linguagem nova aparece (ou uma verso nova de uma linguagem) o suporte darramentas a essa linguagem comea pelos editores e s mais tarde comeam a aparecerrramentas (IDEs) realmente sofisticados.

    http://osteele.com/archives/2004/11/ideshttp://osteele.com/archives/2004/11/ides
  • 8/14/2019 7 Habitos de um bom Editor

    6/28

    Linguagem1

    IDE

    Linguagem2

    EditorProdutividade

    doprogramador

    uando se tem uma perspectiva mais focada nas linguagens as ferramentas acabam por fazferena menor. Na verdade a linguagem que eu escolho para fazer o desenvolvimento qui tornar mais ou menos produtivo. As pessoas da comunidade Perl, tm tipicamente esta vundo.

  • 8/14/2019 7 Habitos de um bom Editor

    7/28

    Linguagem1

    IDELinguagem2

    EditorProdutividade

    do

    programador

    uando se uma pessoa mais focada nas ferramentas a minha produtividade mais alteradpo, sofisticao e conhecimento que tenho da ferramenta em causa. A linguagem torna-seportante, e foca-mo-nos mais no conhecimento profundo da ferramentas.

    comunidade .Net e Visual Studio, tem tipicamente mais esta viso do mundo.

  • 8/14/2019 7 Habitos de um bom Editor

    8/28

    Conhecimento da linguagem

    Conhecimentodasferramentas

    Ao fim de algum tempo chega-se aomesmo nvel de produtividade mas opercurso diferente

    a verdade em termos de produtividade poder chergar-se (ou no) ao mesmo nvel. O perce diferente.nso que a longo mdio prazo far mais sentido um conhecimento da linguagem. Contudonhecimento das ferramentas tambm importante, pelo que nisso que foco o resto da mresentao.

  • 8/14/2019 7 Habitos de um bom Editor

    9/28

    Porque no usar um IDE(Bem o Randal que diz :-)

    "If you can't program careful enough to not need adebugger, then either slow down your rate ofcoding, or pick a different profession. Please."

    Randal L. Schwartz

    ma crtic interessante do Randal, sobre a demasiada dependncia que as pessoas por vezes ferramentas, e o facto de no nos esforamos muito por usar a cabea.

  • 8/14/2019 7 Habitos de um bom Editor

    10/28

    Como escolher um bom editor

    Ver o que que o craques usam e porqu? Se trabalho em vrias plataformas o meu

    editor deve ser suportado nessas vriasplataformas

    Sinto-me confortvel com o meu editor Ver se o meu editor faz o mnimo do quevamos apresentar de seguida

    r o que os outras programadores que eu admiro usam, ver se me podem ajudar a escolhitor caso ainda o no tenha feito. bom discutir com os outros que editores usam e porqzes da escolham so muito importantes, pois podem no ser as que se adaptam ao meuabalho)

    uem usa: Textmate, Emacs, Vim, outro (qual?)?

    uso vrias plataformas, boa ideia que o meu editor seja suportado nessas plataformas. vestir num editor que j est consolidado no mercado (no vou gastar tempo a aprender u

    isa que corre riscos de desaparecer).gosto do editor que uso, ento no vale a pena mudar.

    o vale a pena entrar numa discusso de qual o melhor editor, pois o melhor editor parade no ser o melhor para ti.

    r vezes pode ser necessrio utilizar editores especficos para fazer tarefas especficas, poemplo ver logs de 1 GB (por exemplo uso joe em unix e ultraedit em windows pois usam mapped files o que os torna mais rpidos a abrir ficheiros gigantes)

  • 8/14/2019 7 Habitos de um bom Editor

    11/28

    Randal Schwartz usa emacs e oDamian Conway usa vim

    "Given that I use the kitchen sink ofprogramming languages (Perl), it onlymakes sense that I use the kitchensink of editors (Emacs)."

    Randal L. Schwartz

    O Larry no tenho ideia....

  • 8/14/2019 7 Habitos de um bom Editor

    12/28

    O problema

    Editamos montes de texto:

    Source code Documentao

    email

    astamos 40% do nosso tempo a editar. Ser que conseguimos melhorar um bocadinho osempenho e ao mesmo tempo tornar a tarefa um pouco mais agradvel?itar significa interagir com texto, por vezes pode ser ler cdigo.

  • 8/14/2019 7 Habitos de um bom Editor

    13/28

    3 passos para melhorar

    Detectar ineficincia Descobrir uma maneira mais rpida

    Tornar um hbito

    rceber o que demoro a fazer, fao muitas vezes, e que se torna repetitivo.escobrir padres no meu trabalho. Por exemplo na prxima hora de trabalho descobrir onsto o meu tempo, o que me atrapalha e atrasa?

    emplo: Se ao escrever tenho dificuldade em encontrar sinnimos, ou correces para o teto sou ineficiente.

    mrio:dentificar os problemas

    Descobrir as soluoUtilizar

    rece simples. E !

  • 8/14/2019 7 Habitos de um bom Editor

    14/28

    Porque os sete hbitos?

    Para estar de acordo com

    ttulo da apresentao e doLivro em que a apresentafoi inspirada.

    Os 7 hbitos de pessoasaltamente eficazes.

    nmero 7 o nmero da perfeio.

    sete hbitos do Covey so:ja Proactivo

    omece com o fim em mente prioridade ao que prioritrionse Ganhar-Ganharocure primeiro compreender para depois ser compreendidoie Sinergias

    fine as suas ferramentas

  • 8/14/2019 7 Habitos de um bom Editor

    15/28

    Hbito 1: Mover-se rapidamentePasso 1: Identificar a ineficincia

    Quando procuramos uma varivel num ficheiro(ou directoria)

    Utilizamos:

    Ctrl-S

    escrevemos a varivel

    Ctrl-S, ....

    conseguirmos ser mais rpidos a encontrar o que procuramos, vamos ganhar muito tempuitas vezes andamos procura de coisas em ficheiros.

    r exemplo estamos a tentar descobrir onde se utiliza uma varivel. uma varivel que um muitos stios.

    o emacs fazemos Ctrl-s e escrevemos o nome da varivel. Depois vamos fazendo Ctrl-S atcontramos o que pretendemos. Isso pode demorar um bocado. H vrias maneiras de aceocesso.

  • 8/14/2019 7 Habitos de um bom Editor

    16/28

    Hbito 1: Mover-se rapidamentePasso 2: Descobrir uma maneira mais rpida

    Ctrl-S, Ctrl-W e ento Ctrl-S e ligar o highlighting.

    O comando list-matching-lines

    Folding

    uando estamos no modo de busca o Ctrl-W permite ir copiando para a zona onde de se debusca aquilo que est no bufer que estamos a editar (a partir do ponto onde est o cursosso a busca no emacs incremental para no primeiro ponto onde encontrou qualquer coisacrescentar letras, pode saltar para a frente. O facto de fazer highlighting a expresso qut a procurar tambm ajuda a ver outros pontos onde est o que pretendemos encontrar. ssibilidade de procurar incrementalmente e utilizando expresses regulares (search-regembm muito interessante (pode ser acedido por Esc-Ctrl-S).

    equivalente em vim o * e o hlsearch

    ma ideia que o Bram d, o da utilizao de folding o emacs suporta isso com o modo outas eu no gosto particularmente (provavelmente uma questo de hbito).

    comando list-matching-lines faz uma espcie de grep sobre o ficheiro onde estamos. Tamuito til.comando list-matching-lines (assim como muitas coisas no emacs) usam expresses rege no sendo exactamente iguais s dos perl, so muito parecidas.

  • 8/14/2019 7 Habitos de um bom Editor

    17/28

    Hbito 1: Mover-se rapidamentePasso 3: Tornar um hbito

    Alterar (criar) .emacs:

    Garantir que o highlighting est ligado

    Associar uma tecla aos comandos mais

    utilizados (global-set-key)

    Activar o modo de outline (caso segoste de utilizar o folding)

    equivalente em vim o * e o hlsearch

    olocar uma global-set-key para o list-matching-lines pode ser muito interessante, pois pode utilizar com muita regularidade.

  • 8/14/2019 7 Habitos de um bom Editor

    18/28

    Hbito 2: No escrever duas vezesPasso 1: Identificar a ineficincia

    difcil escrever :

    XmpCreatePixmapFromData()

    ou

    [email protected] muitas vezes escrevemos mal

    gumas funes, variveis ou emails so muito difceis de escrever. No s so muitas teclacomum fazermos um erro.

    omo que podemos utilizar algo que j escrevemos.

    mailto:[email protected]:[email protected]
  • 8/14/2019 7 Habitos de um bom Editor

    19/28

    Hbito 2: No escrever duas vezesPasso 2: Descobrir uma maneira mais rpida

    O abbrev-mode (minor mode) pode utilizar-se tambm o dynamic abbrev

    Utilizar algum modo de code-completion por exemplo o SEPIA (SimpleEmacs Perl Integration) ou o CEDET (Collection of Emacs DevelopmentEnvironment Tools)

    da a gente usa o tab na shell, porque que no se pode utilizar nos editores (h o tab noitores pode ser utilizado para outras coisas). Mas ser que no podemos utilizar um mtouivalente?

    m o abbreviation-mode ou abbreviation-minor-mode permite utilizar abreviaturas para puito grandes.

    emacs tambm tem um modo que o dynamic-abbreviation, em que se utiliza o bufer q

    t a editar para tentar adivinhar como expandir a abreviatura.c-tabc-tab/

  • 8/14/2019 7 Habitos de um bom Editor

    20/28

    Hbito 2: No escrever duas vezesPasso 3: Tornar um hbito

    gravar as abbreviations mais comunsafinar qual o tamanho ideal paraabreviatura

    nar qual o tamanho ideal para abreviatura (se tem poucos caracteres vai ser difcil acertarreviatura correcta pois comeam a haver muitas colises). As abreviaturas devem ter pelo4 caracteres.

  • 8/14/2019 7 Habitos de um bom Editor

    21/28

    Hbito 3: Corrigir o que est mal

    Passo 1: Identificar a ineficincia Escrevo Ingls/Portugus/Perl com muitos errosPasso 2: Descobrir uma maneira mais rpida Utilizar o ispell(aspell) flyspeel-mode

    mtodo do flyspeel-mode ajuda a identificar logo os erros.eno que o ispell tem vrios dicionrios para portugus. Escolham o correcto.

  • 8/14/2019 7 Habitos de um bom Editor

    22/28

    Hbito 3: Corrigir o que est mal

    Actualizar o dicionrio

    Incluir palavras novas no dicionrio

    Ter vrios dicionrios e dialectos

    Passo 3: Tornar um hbito

  • 8/14/2019 7 Habitos de um bom Editor

    23/28

    Hbito 4: Um ficheiro nunca vem sozinho

    Passo 1: Identificar a ineficincia

    Quando herdamos cdigo muito difcentendermo-nos no emaranhado de cdig(e ficheiros)

    Passo 2: Descobrir uma maneira mais rpida

    tags (etags)grepmanter o desktop

    tags files permitem ao editor descobrir em que ficheiro e linha est definida uma funoarivel).m que se ler o ficheiro de tags no emacs utilizando o comando visit-tags-file.

    bom porque o tags conhece uma data de linguagens:a , asm, c, c++, c*, cobol, erlang, fortran, java, lisp, makefile, pascal, perl, postscript, proolog, python, scheme, tex, texinfo, yacc.

    eno que para o vim utiliza-se o ctags.

    uem que j tinha ouvido falar em tags?

  • 8/14/2019 7 Habitos de um bom Editor

    24/28

    Hbito 5: Vamos trabalhar em conjunto

    Utilizo editores em montes de programas, masno consigo que esses programas utilizem o meueditor

    Passo 1: Identificar a ineficincia

    Passo 2: Descobir uma maneira mais rpida

    difcil depende muito do programa (nem semp possvel ou limpinho)

    Por exemplo possvel utilizar o emacs comoeditor da MailApp mas no fcil

    gum tem uma boa soluo para este problema?

  • 8/14/2019 7 Habitos de um bom Editor

    25/28

    Hbito 5: Vamos trabalhar em conjuntoPasso 2: Descobrir uma maneira maisrpida

    Mas o emacs fala com:

    sistemas de controlo de versescompilador

    debugger

  • 8/14/2019 7 Habitos de um bom Editor

    26/28

    Hbito 6: H muitos padres que repetimos

    Os headers das funes so sempre iguais

    A documentao tem sempre a mesma estrutura

    Passo 1: Identificar a ineficincia

    Passo 2: Descobir uma maneira mais rpida

    Utilizar skeletons com os padres tpicosConfigurar os skeletons que interessam

    skeletons so templates dinmicos que permitem gerar automaticamente um bom peddigo que sempre igual. Ainda no explorei muito esta tecnologia, mas parece-me muitoteressante.

  • 8/14/2019 7 Habitos de um bom Editor

    27/28

    Hbito 6: H muitos padres que repetimos

    Configurar skeletons por linguagem

    Passo 3: Tornar um hbito

  • 8/14/2019 7 Habitos de um bom Editor

    28/28

    Hbito 7: Afiar as ferramentas

    Regularmente fazer uma avaliao dasferramentas que estamos a utilizar (e como asestamos a utilizar)

    Utilizar feedback - Aprender a partir dosproblemas que encontrei (e que os outros

    encontraram)