shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Shell clean code :)


From: Julio C. Neves
Subject: Re: [shell-script] Shell clean code :)
Date: Mon, 16 Jan 2012 18:31:37 -0200

Fala PacMan,
sua observação foi fabulosa. Eu estava nme coçando para escrever algo a
respeito, mas, do jeito que sou delicado, tinha medo de descambar para a
trollagem pura. :)

Vc moderou o discurso com toda fineza e esgotou o assunto, não dando chance
a nenhum dos lados retrucar.

Agora, já que vc pediu a minha opinião, eu a darei. Atualmente o custo do
hw é quase o do quilo de banana. O caro é a mão de obra. Assim sendo, qto
mais rápida for o desenvolvimento da solução melhor.

Ainda hj na lista, tem um email do Edgard pedindo ajuda para normatizar
nomes de arquivos e renomeá-los. Como ele me viu no Skype e é meu chapa, me
ligou passando a dúvida.

A solução foi: IFS="
" mv $(paste <(ls) <(regras de normalização))

Desenv rapidinho. Já a performance...

Abcs,
Julio
*Já foi lançado "Bombando o
Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
". *
*Show **de interfaces gráficas sob Shell!*
*
*



Em 16 de janeiro de 2012 18:06, Tiago Peczenyj
<address@hidden>escreveu:

> 2012/1/16 Reinaldo de Carvalho <address@hidden>
>
> > **
> >
> >
> > 2012/1/16 Alysson Gonçalves de Azevedo <address@hidden>:
> >
> > > Amigo, veja bem, tem muitas coisas no seu script que, na minha opinião,
> > não
> > > se justificam. Veja bem...
> > >
> >
> > frase troll.. considerando que há mais 'bons padrões' do que os
> > eventuais problemas que você citou, o oração 'muitas coisas não se
> > justificam' não faz sentido, porque 'muitas' no senso comum denota 'a
> > maioria'.
> >
>
> Meninos...
>
> Eu, pessoalmente, tento fugir do uso de variaveis de ambiente e estruturas
> mais complexas em um shell script pois o shell fica com cara de programa, e
> se eu quero programar posso escolher outra coisa.
>
> Sabendo que hoje em dia o shell possui muitos built-ins interessantes eu
> tento utilizar o máximo deles, evitando pipes desnecessários. As vezes um
> pipe é muito custoso, mas não vou ser paranóico com isso. Porém existem
> varios estilos de shell e um não é melhor do que o outro a longo prazo. Por
> isto existe esta lista, trocamos ideias, experiências, conceitos, temos o
> Julio que produz um conteúdo muito bom com seus livros, palestras e cursos.
>
> Mas definitivamente não estamos aqui para trolagem, seja de que lado for.
> Perceba Reinaldo que o Alysson falou bem claro "na minha opinião", ou seja,
> a experiência dele diz isso. A opinião acaba quando vamos aos fatos. Eu
> tenho a opinião de que quanto menos variaveis em um shell script melhor,
> mas o Julio pode me mostrar que isso não é verdade.
>
> Mas vamos nos tratar como cavalheiros ;-)
>
>
>
> > >/dev/null
> >
> >
> > >
> > > Todas as suas funções de validações podem ser inseridas na função usage
> > >
> > >> function usage() {
> > >>     cleanup
> > >>     case "$1" in
> > >>       "ErrArgNull") echo "Error: arg should't be null";;
> > >>       "ErrFileNE")  echo "Error: $2 file should't exist";;
> > >>       "ErrNFolder")  echo "Error: $2 isn't a folder";;
> > >>        #todos os erros aqui
> > >>     esac
> > >>     echo "Usage: $0"
> > >>     echo "    [ -g | --group groupId |"
> > >>     echo "      -a ... | --artifact groupId artifactId version |"
> > >>     echo "      -j | --show-jars-content |"
> > >>     echo "      -s | --sum-files |"
> > >>     echo "      -p | --extract-pom |"
> > >>     echo "      -ps | --extract-pom-and-sum-files ]"
> > >>     exit
> > >> }
> > >>
> > >
> > > e no lugar que você valida, por exemplo
> > >
> > >> isEmptyAndExit "$1"
> > >> isNotFolderAndExit "$REPOPATH/$1"
> > >> isEmptyAndExit "$2"
> > >> isEmptyAndExit "$3"
> > >>
> >
> > Feito, apesar de que dá trabalho de saber a 'chave' do texto, sendo
> > que a mensagem não será reaproveitada e centralizar o getText só ajuda
> > internacionalização, o que não será o caso.
> >
> >
> > > use
> > > [ -z "$1" -o -z "$2" -o -z "$3" ] && usage "ErrArgNull"
> > > [ ! -d "$1" ] && usage "ErrNFolder" "$TMPFOLDER"
> > >
> >
> > Questão de estilo, pra mim isEmpty é mais claro e evita repetir a lógica.
> >
> >
> > > Na minha opinião, é sempre bom agrupar comandos repetitivos em funções,
> > > porque isso reduz o tamanho do script.
> > > Mas criar uma função de 7 linhas para fazer o que você resolve em 1
> > linha,
> > > não faz sentido nenhum.
> > > Nem mesmo para fins de legibilidade, por que na primeira vez que eu
> ver o
> > > código, eu não sei o que isEmptyAndExit faz, mas vou saber que [ -z
> "$1"
> > ]
> > > && exit verifica se o parâmetro está vazio e, se sim, sai.
> > >
> >
> > isEmptyAndExit poderia tratar varios parametros, evitando chamadas
> > consecutivas.
> >
> >
> > > Fazendo isso que eu comentei, você reduz seu script pela metade, o que
> > > facilita o entendimento do script.
> > > Sem contar que vai usar menos memória para armazenar funções.
> > >
> > > Te mais.
> > >
> > > Alysson Gonçalves de Azevedo
> > > (11) 8491-7730
> > >
> >
> > Aliás, cheguei ao final do e-mail e não vi se quer 'coisas não se
> > justificam' , imagina 'muitas'... Trolagem pura...
> >
> >
> > --
> > Reinaldo de Carvalho
> > http://korreio.sf.net
> > http://python-cyrus.sf.net
> >
> > "While not fully understand a software, don't try to adapt this
> > software to the way you work, but rather yourself to the way the
> > software works" (myself)
> >
> >
> >
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]