Skip to content
This repository was archived by the owner on Jun 21, 2025. It is now read-only.

Commit c141bf0

Browse files
authored
[PT] Appendix, Notation e References. (#10)
* Update config.toml * Create references_pt.md * Create notation_pt.md * Create appendix_pt.md * Tradução notation_pt * Update references_pt.md
1 parent 6463654 commit c141bf0

File tree

4 files changed

+118
-3
lines changed

4 files changed

+118
-3
lines changed

config.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@
6464
#"stats",
6565
#"stats_distributions",
6666
#"stats_vis",
67-
"appendix",
68-
"notation",
67+
"appendix_pt",
68+
"notation_pt",
6969
#"project_management",
70-
"references"
70+
"references_pt"
7171
]

contents/appendix_pt.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Apêndice {#sec:appendix}
2+
3+
## Versões dos Pacotes {#sec:appendix_pkg}
4+
5+
Esse livro foi feito com Julia `jl string(VERSION)` e os seguintes pacotes:
6+
7+
```jl
8+
JDS.pkg_deps()
9+
```
10+
11+
```jl
12+
let
13+
date = today()
14+
hour = Dates.hour(now())
15+
min = Dates.minute(now())
16+
17+
"Build: $date $hour:$min UTC"
18+
end
19+
```

contents/notation_pt.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
## Formatação {#sec:notation}
2+
3+
Neste livro, nós tentamos manter a formatação de código-fonte o mais consistente possível.
4+
Isto permite uma melhor leitura e escrita de código-fonte.
5+
Definimos o padrão de formatação em três partes.
6+
7+
### Julia Style Guide
8+
9+
Primeiramente, nós tentamos aderir as convenções do [Julia Style Guide](https://docs.julialang.org/en/v1/manual/style-guide/).
10+
Mais importante, escrevemos funções e não scripts (veja também @sec:engineering).
11+
Além disso, usamos convenções de nomenclatura consistente com o módulo `base` de Julia:
12+
13+
- Uso de _camelcase_ para módulos: `module JuliaDataScience`, `struct MyPoint`.
14+
(Note que a denominação de _camelcase_ é porque a capitalização das palavras, tais como "iPad" ou "CamelCase", faz com que a palavra se assemelhe que nem as costas de um camelo.)
15+
- Denominação de funções usando caixa baixa (_lowercase_) e separando palavras por _underline_ (`_`).
16+
Também é permitido omitir o separador quando nomeando funções.
17+
Por exemplo, estes nomes de funções são consistentes com as convenções: `my_function`, `myfunction` e `string2int`.
18+
19+
Adicionalmente, evitamos usar parênteses em condicionais, ou seja, escrevemos `if a == b` ao invés de `if (a == b)` e usamos 4 espaços para cada nível de indentação.
20+
21+
### BlueStyle
22+
23+
O [Blue Style Guide](https://github.com/invenia/BlueStyle) adiciona diversas convenções aos padrões do Guia de Estilo de Julia.
24+
Algumas dessas regras podem soar pedantes, mas descobrimos que elas fazem o código ficar mais legível.
25+
26+
Do Blue Style Guide, nós aderimos especificamente à:
27+
28+
- No máximo 92 caracteres por linha em código-fonte (para arquivos Markdown, linhas mais longas são permitidas).
29+
- Quando carregando código com `using`, usar apenas uma declaração por módulo por linha.
30+
- Não há whitespace no fim das linhas.
31+
Whitespace no fim das linhas faz com que a inspeção do código seja mais difícil pois eles não mudam o comportamento do código mas podem ser interpretados como mudanças.
32+
- Evitar espacos adicionais dentro dos parênteses.
33+
Escreva `string(1, 2)` ao invés de `string( 1 , 2 )`.
34+
- Variávies globais devem ser evitadas.
35+
- Tente limitar nomes de funções para apenas uma ou duas palavras.
36+
- Use o ponto-e-virgula para distinção se um argumento é posicional ou de palavra-chave.
37+
Por exemplo, `func(x; y=3)` ao invés de `func(x, y=3)`.
38+
- Evite usar espaços múltiplos para alinhar coisas.
39+
Escreva
40+
```
41+
a = 1
42+
lorem = 2
43+
```
44+
ao invés de
45+
```
46+
a = 1
47+
lorem = 2
48+
```
49+
- Sempre que apropriado, coloque espaços ao redor de operadores binários, por exemplo, `1 == 2` ou `y = x + 1`.
50+
- Indente quotações triplas:
51+
```
52+
s = """
53+
my long text:
54+
[...]
55+
the end.
56+
"""
57+
```
58+
- Não omite zeros in floats (mesmo que Julia permita).
59+
Portanto, escreva `1.0` ao invés de `1.` e escreva `0.1` ao invés de `.1`.
60+
- Use `in` dentro de loops for e não = ou ∈ (mesmo que Julia permita).
61+
62+
### Nossos incrementos ao Blue Style Guide
63+
64+
- No texto, referenciamos uma chamada de função `M.foo(3, 4)` como `M.foo` e não `M.foo(...)` ou `M.foo()`.
65+
- Quando falando sobre pacotes, tais como o pacote DataFrames, nós explicitamente escrevemos sempre `DataFrames.jl`.
66+
Isto faz com que seja fácil reconhecer que estamos nos referindo à um pacote.
67+
- Para nome de arquivos, mantemos a notação como "file.txt" e não `file.txt` ou file.txt, pois é consistente com o código-fonte.
68+
- Para nomes e colunas em tabelas, tais como a coluna `x`, usamos a coluna `:x`, porque é consistente com o código-fonte.
69+
- Não usamos símbolos Unicode fora dos blocos de código.
70+
Isto foi necessário por conta de um bug na geração do PDF.
71+
- A linha antes de cada código de bloco termina com dois pontos (:) para indicar que aquela linha pertence aquele bloco de código.
72+
73+
#### Carregamento de símbolos
74+
75+
Prefira sempre carregar símbolos de maneira explícita, ou seja, prefira `using A: foo` ao invés de `using A` quando não estiver usando o REPL [veja também @jump2021using].
76+
Neste contexto, um símbolo significa um identificado de um objeto.
77+
Por exemplo, mesmo que não parece natural, internamente `DataFrame`, `π` e `CSV` são todos símbolos.
78+
Podemos averiguar isto se usarmos uma função introspectiva de Julia tal como `isdefined`:
79+
80+
```jl
81+
scob("isdefined(Main, :π)")
82+
```
83+
84+
Adjacente de ser explícito no uso de `using`, prefira também `using A: foo` ao invẽs de `import A: foo` porque este último faz com que seja fácil estender acidentalmente `foo`.
85+
Note que isto não é somente aplicável para Julia:
86+
carregament implícito de símbolos por `from <module> import *` também é desencorajado em Python [@pep8].
87+
88+
A razão da importância de ser explícito está relacionada com versionamento semântico.
89+
Com versionamento semântico (<http://semver.org>), o número da versão está relacionado se um pacote possui ou não mudanças _breaking_.
90+
Por exemplo, uma mudança _non-breaking_ que atualiza o pacote `A` se dá quando o pacote migra da versão `0.2.2` para `0.2.3`.
91+
Com tais mudanças _non-breaking_, você não precisa se preocupar se o seu pacote vai quebrar (_break_), em outras palavras, dar um erro ou mudar o comportamento de execução.
92+
Se um pacote `A` migra de versão `0.2` para `1.0`, então esta atualização é _breaking_ e você provavelmente terá que fazer mudanças no seu código para fazer com que o pacote `A` funcione novamente.
93+
**Porém**, exportando símbolos extras é considerado uma mudança _non-breaking_.
94+
Então, com carreamento implícito de símbolos **mudanças _non-breaking_ podem quebrar seu pacote**.
95+
Por isso que é uma boa prática apeans carregar símbolos de maneira explícita.

contents/references_pt.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Referências

0 commit comments

Comments
 (0)