Skip to content

Commit b097ad2

Browse files
committed
copydesk
1 parent 24920ad commit b097ad2

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

capitulos/cap19.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1405,7 +1405,7 @@ Aquele workshop foi baseado nos últimos quatro capítulos do
14051405
https://fpy.li/19-100[_Designing for Scalability with Erlang/OTP_]
14061406
de Francesco Cesarini e Steve Vinoski (O'Reilly).
14071407

1408-
Desenvolver((("KISS principle"))) sistemas distribuídos é desafiador e excitante, mas cuidado com a
1408+
Desenvolver((("KISS principle"))) sistemas distribuídos é desafiador e empolgante, mas cuidado com a
14091409
https://fpy.li/19-40[_inveja da escalabilidade na web_].
14101410
O https://fpy.li/19-102[princípio KISS] (KISS é a sigla de _Keep It Simple, Stupid_: "Mantenha Isso Simples, Idiota") continua sendo uma recomendação firme de engenharia.
14111411

capitulos/cap20.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@ Sou pago para desenvolver aplicações, não sistemas operacionais. Não preciso
858858
859859
Por isso acho o pacote `concurrent.futures` interessante: ele trata threads, processos, e filas como infraestrutura, algo a seu serviço, não algo que você precisa controlar diretamente. Claro, ele foi projetado pensando em tarefas simples, os assim chamado problemas embaraçosamente paralelos—ao contrário de sistemas operacionais ou servidores de banco de dados, como aponta Simionato naquela citação.
860860
861-
Para problemas de concorrência "não embaraçosos", threads e travas também não são a solução. Ao nível do sistema operacional, as threads nunca vão desaparecer. Mas todas as linguagens de programação que achei excitantes nos últimos muitos anos fornecem abstrações de alto nível para concorrência, como demonstra o excelente livro de Paul Butcher, https://fpy.li/20-24[_Seven Concurrency Models in Seven Weeks_] (_Sete Modelos de Concorrência em Sete Semanas_) (EN). Go, Elixir, e Clojure estão entre elas. Erlang—a linguagem de implementação do Elixir—é um exemplo claro de uma linguagem projetada desde o início pensando em concorrência. Erlang não me excita por uma razão simples: acho sua sintaxe feia. O Python me acostumou mal.
861+
Para problemas de concorrência "não embaraçosos", threads e travas também não são a solução. Ao nível do sistema operacional, as threads nunca vão desaparecer. Mas todas as linguagens de programação que achei empolgantes nos últimos muitos anos fornecem abstrações de alto nível para concorrência, como demonstra o excelente livro de Paul Butcher, https://fpy.li/20-24[_Seven Concurrency Models in Seven Weeks_] (_Sete Modelos de Concorrência em Sete Semanas_) (EN). Go, Elixir, e Clojure estão entre elas. Erlang—a linguagem de implementação do Elixir—é um exemplo claro de uma linguagem projetada desde o início pensando em concorrência. Erlang não me excita por uma razão simples: acho sua sintaxe feia. O Python me acostumou mal.
862862
863863
José Valim, antes um dos contribuidores centrais do Ruby on Rails, projetou o Elixir com uma sintaxe moderna e agradável. Como Lisp e Clojure, o Elixir implementa macros sintáticas. Isso é uma faca de dois gumes. Macros sintáticas permitem criar DSLs poderosas, mas a proliferação de sub-linguagens pode levar a bases de código incompatíveis e à fragmentação da comunidade. O Lisp se afogou em um mar de macros, cada empresa e grupo de desenvolvedores Lisp usando seu próprio dialeto arcano. A padronização em torno do Common Lisp resultou em uma linguagem inchada. Espero que José Valim inspire a comunidade do Elixir a evitar um destino semelhante. Até agora, o cenário parece bom. O invólucro de bancos de dados e gerador de queries https://fpy.li/20-25[Ecto] é muito agradável de usar: um grande exemplo do uso de macros para criar uma DSL—sigla de Domain-Specific Language, _Linguagem de Domínio Específico_—flexível mas amigável, para interagir com bancos de dados relacionais e não-relacionais.
864864

capitulos/cap24.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Este capítulo apresenta as técnicas de metaprogramação de classes em ordem a
3131

3232
[WARNING]
3333
====
34-
Esse é um tópico excitante, e é fácil se deixar levar pelo entusiasmo.
34+
Esse é um tópico empolgante, e é fácil se deixar levar pelo entusiasmo.
3535
Então preciso deixar aqui esse conselho.
3636
3737
Em nome da legibilidade e facilidade de manutenção, você provavelmente deveria evitar as técnicas descritas neste capítulo em aplicações.
@@ -950,7 +950,7 @@ O principal caso de uso para `+__prepare__+` antes do Python 3.6 era oferecer um
950950
Agora que `dict` preserva a ordem de inserção, `+__prepare__+` raramente é necessário.
951951
Veremos um uso criativo para ele no <<metahack_sec>>.
952952

953-
Importar _metalib.py_ no console do Python não é muito excitante.
953+
Importar _metalib.py_ no console do Python não é muito empolgante.
954954
Observe o uso de `%` para prefixar as linhas geradas por esse módulo:
955955

956956
[source, pycon]
@@ -1370,7 +1370,7 @@ A terceira versão de uma fábrica de classes `Checked`, com descritores `Field`
13701370
Por fim, vimos o hack `AutoConst`, inventado por João S. O. Bueno, baseado na brilhante ideia de uma metaclasse com `+__prepare__+` devolvendo um mapeamento que implementa `+__missing__+`.
13711371
Em menos de 20 linhas de código, _autoconst.py_ demonstra o poder da combinação de técnicas de metaprogramação no Python.
13721372

1373-
Nunca encontrei outra linguagem como o Python, fácil para iniciantes, prática para profissionais e excitante para hackers.
1373+
Nunca encontrei outra linguagem como o Python, fácil para iniciantes, prática para profissionais e empolgante para hackers.
13741374
Obrigado, Guido van Rossum e todos que a fazem ser assim.
13751375

13761376

0 commit comments

Comments
 (0)