Em 12/09/2012 15:57, Guimarães Faria Corcete DUTRA, Leandro escreveu:
> 2012/9/12 Flávio Alves Granato <flavio.gran...@gmail.com>:
>> Você trabalha quebrando um conceito que é o SoC ( Separation of Concerns
>> ), basicamente "cada macaco no seu galho".
> Mas esse conceito não é válido aqui.  Como ele se aplicaria ao caso?
> Parece mais uma regrinha generalizada…
>
>
>> Me baseio nesta discussão [1]
>> pois concordo plenamente com a última opinião.
> Extremamente desinformada, como tentarei demonstrar.
>
>
>> "1. Violação de princípios – Regra no banco viola o principio que
>> chamamos de Soc (separation os concern)
> Chamam incorretamente.
>
> Separação de aspectos (ou de escopo) é um conceito do Dijkstra.  Tanto
> o autor quanto o conceito são amplamente mal interpretados.  No caso,
> vem de _On the role of scientific thought_
> <http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD447.html>.
>  A Wikipædia <http://en.wikipedia.org/wiki/Separation_of_concerns#Origin>
> cita:
>
> ‘Let me try to explain to you, what to my taste is characteristic for
> all intelligent thinking. It is, that one is willing to study in depth
> an aspect of one's subject matter in isolation for the sake of its own
> consistency, all the time knowing that one is occupying oneself only
> with one of the aspects. We know that a program must be correct and we
> can study it from that viewpoint only; we also know that it should be
> efficient and we can study its efficiency on another day, so to speak.
> In another mood we may ask ourselves whether, and if so: why, the
> program is desirable. But nothing is gained —on the contrary!— by
> tackling these various aspects simultaneously. It is what I sometimes
> have called "the separation of concerns", which, even if not perfectly
> possible, is yet the only available technique for effective ordering
> of one's thoughts, that I know of. This is what I mean by "focusing
> one's attention upon some aspect": it does not mean ignoring the other
> aspects, it is just doing justice to the fact that from this aspect's
> point of view, the other is irrelevant. It is being one- and
> multiple-track minded simultaneously.’
>
> Para traduzir o essencial:
>
> “…para meu gosto é característico de todo pensamento inteligente…
> dispõe‐se a estudar profundamente um aspecto do sujeito isolado para
> sua própria consistência, sempre sabendo que se ocupa apenas com um
> dos aspectos.  Sabemos que um programa tem de ser correto e podemos
> estudá‐lo somente desse ponto de vista; também sabemos que deve ser
> eficiente e podemos estudar sua eficiência noutro dia, por assim
> dizer.  …o programa é desejável.  Mas nada se ganha —pelo contrário!—
> ao abordar esses vários aspectos simultaneamente.  É o que às vezes
> chamei ‘a separação das preocupações’ que, mesmo não perfeitamente
> possível, é ainda a única técnica efetiva disponível que conheço para
> organizar os pensamentos.  Isso é o que quero dizer com ‘focar a
> atenção nalgum aspecto’: não significa ignorar os outros aspectos, é
> só fazer justiça ao fato de que do ponto de vista deste aspecto, o
> outro é irrelevante.  É ser focado e ter mente aberta
> simultaneamente.”
Entendo, mal interpretação minha.

Mas para mim,
>
>
>> 2. Falta de portabilidade – Regra no banco não tem garantias de
>> portabilidade entre diferentes vendores de SGDB.
> Certo, mas isso é um problema dos SGBDs proprietários e (ou) ruins,
> que não implementam os padrões…
>
>
>> Vale lembrar que hoje
>> SGDB já considerando LEGADO advento do NoSql.
> O que mostra que o autor é uma toupeira no que se refere a dados, além
> de não saber escrever.
Não tem necessidade dessa agressividade, como eu já disse em outro
momento, vai existir de tudo sempre, até pessoas que acham que SGBD é
legado...
>
>
>> ## resalto que até a
>> chegada do PostgreSQL 9.2 - Flávio Granato ##
> Isso nunca foi verdade.  O PostgreSQL 9.2 simplesmente implementa mais
> tipos, diminuindo ainda mais os já ínfimos casos em que usar algo
> prerrelacional (que é o que o NoSQL é, no fundo) valia a pena.
concordo. Mas por isso ressaltei... NoSQL é recalque de programador que
acha que base de dado deva ser algo burro, do tipo toma e me dá...
>
>
>> 3. Programação Pobre – regras no banco de dados não é OO e nem
>> funcional, sendo assim não tem como usar recursos como classes,
>> encapsulamento, agregação, composição, associação, herança e polimorfismo.
> Isso não é verdade há anos em PostgreSQL.  Temos várias linguagem OO,
> funcionais e até OO e funcionais.
Alguém realmente usa? Se o padrão de fato é PL/PgSQL, então concordo e
concordo também que é uma generalização, se não usam as linguagens citas
como alternativas, ai são outros quinhetos.
>
>
>> 4. Performance Ruim – soluções com grande numero de acessos simultâneos
>> podem facilmente derrubar um SGDB, uma vez que um banco de dados não tem
>> todos os gerenciamentos de recursos e as otimizações devidas encontradas
>> em MIDDLEWARE como resources pooling, passivation, clustering, etc…" por
>> Fernando Franzini.
> Outra inverdade.  Vide, por exemplo, pg_pool e XC.
Conhecimentos que estou adquirindo, mas em empresas que passei tem
adotado escalar a aplicação e não o SGBD.
>
>
>> estou com um projeto nas mãos que
>> tudo, literalmente tudo é uma procedure no banco, desde inserts a
>> updates e selects mais "trabalhosos" e digo que não é nada produtivo
> E isso nada tem a ver com a lógica estar na base.  A lógica deve ser
> preferencialmente declarativa, e só quando limitações seja no padrão
> SQL, seja em nossa implementação, impedirem implementar
> declarativamente é que se deve recorrer a procedimentos.  O uso
> generalizado de procedimentos indica falta de conhecimento.
Concordo e ainda bem que não foi eu, normalmente não o faço assim.
Haha... uso ORM... tanto que é o motivo desta thread que abri... não
criticar o não uso, mas saber quando é melhor o "não uso" e começo a
entender, nem precisa enfatizar que o melhor uso de ORM é nunca, ou ao
menos não por enquanto...
>
>
>> pois tudo tem que se criar uma procedure e desenvolver, "se" fosse por
>> conta do desenvolvedor orientado pelo DBA ( em nosso projeto não existe
>> mais o chapéu de DBA ) seria muito mais produtivo, pois paralelizaria o
>> desenvolvimento e não concentraria somente em uma pessoa, estamos
>> falando de equipe pequena 4 pessoas e de uma empresa que seu fim é
>> desenvolver software para outras empresas. Não sei se me fiz entender bem.
> Esse é apenas um problema de organização, nada tem a ver com o que 
> discutíamos…
esse é uma parte do texto que podemos dizer, enchimento de linguiça nem
precisava ser levado em consideração... hehehe
>
>
>> Lembro-vos que não estamos discutindo a opinião do Fernando Franzini...
>>
>> 1 http://www.tectura.com.br/topics/regras_de_negocio_banco_x_oo
> Uai, mas se o que fizeste foi colocá‐la na discussão…
O que eu quero dizer é, o texto é dele e compartilho da opinião, logo as
críticas podem ser dirigidas a mim. Não foi bem explicado.

Para meu entendimento, o que seria SGBD conter toda a lógica de
negócios? Normalmente tenho feito de maneira que o SGBD confirme( check,
constraints... ) as regras desenvolvidas na aplicação e não levando a
aplicação a ser uma visão da base.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a