7 Habitos de um bom Editor
-
Upload
sergio-luiz-araujo-silva -
Category
Documents
-
view
219 -
download
0
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)