GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — WeakMap and WeakSet by diogoosz · Pull Request #463 · javascript-tutorial/pt.javascript.info Conversation
Contributor
Tradução do artigo "WeakMap and WeakSet" para o português, incluindo os dois exercícios. Conforme comentado na #1.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
| // therefore it won't be garbage-collected | ||
| // we can get it as array[0] | ||
| // o objeto anteriormente referenciado por john está guardado dentro do array, | ||
| // por isso ele não será coletado pelo garbage collector |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
"garbage collector" aparece em várias partes deste artigo (linhas 36, 41, 59, 104, 116, 125, 152, 213, 244 e 291) e também em 02-recipients-when-read/task.md:19. As diretrizes de tradução pedem para evitar palavras estrangeiras quando existe um termo em português, e o capítulo linkado no começo do artigo (info:garbage-collection) se chama "Coleta de lixo". Que tal usar "coletor de lixo"?
| // por isso ele não será coletado pelo garbage collector | |
| // por isso ele não será removido pelo coletor de lixo |
Nas outras ocorrências, "coletado pelo coletor de lixo" fica repetitivo; "removido pela coleta de lixo" ou "removido da memória pela coleta de lixo" soam mais naturais.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| ``` | ||
|
|
||
| Now, if we use an object as the key in it, and there are no other references to that object -- it will be removed from memory (and from the map) automatically. | ||
| Agora, se usamos um objeto como chave nele, e não existe mais nenhuma outra referência a esse objeto -- ele será removido da memória (e do map) automaticamente. |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
"map" e "set" aparecem como substantivos comuns no texto (linhas 80, 93, 125 e 252, e 01-recipients-read/solution.md:30). Sugiro usar o nome do tipo em código ou traduzir:
| Agora, se usamos um objeto como chave nele, e não existe mais nenhuma outra referência a esse objeto -- ele será removido da memória (e do map) automaticamente. | |
| Agora, se usamos um objeto como chave nele, e não existe mais nenhuma outra referência a esse objeto -- ele será removido da memória (e do `WeakMap`) automaticamente. |
WeakMap"Map"WeakSet"WeakSet"
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| ## Caso de uso: cache | ||
|
|
||
| Another common example is caching. We can store ("cache") results from a function, so that future calls on the same object can reuse it. | ||
| Outro exemplo comum é o cache. Podemos guardar ("cachear") os resultados de uma função, para que chamadas futuras sobre o mesmo objeto possam reaproveitá-los. |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
"cachear" é um anglicismo. Sugestão:
| Outro exemplo comum é o cache. Podemos guardar ("cachear") os resultados de uma função, para que chamadas futuras sobre o mesmo objeto possam reaproveitá-los. | |
| Outro exemplo comum é o cache. Podemos guardar em cache os resultados de uma função, para que chamadas futuras sobre o mesmo objeto possam reaproveitá-los. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| - Like `Set`, it supports [`add`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Weakset/add), [`has`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Weakset/has) and [`delete`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Weakset/delete), but not `size`, `keys()` and no iterations. | ||
| - É análogo ao `Set`, mas só podemos adicionar objetos ao `WeakSet` (não primitivos). | ||
| - Um objeto existe no set enquanto for alcançável de algum outro lugar. | ||
| - Assim como o `Set`, ele suporta [`add`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Weakset/add), [`has`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Weakset/has) e [`delete`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Weakset/delete), mas não `size`, `keys()`, e não há iterações. |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
(Opcional) Detalhe que já vem do original: os links dos métodos do WeakSet usam Weakset (com "s" minúsculo) no caminho. Funciona por causa do redirecionamento do MDN, mas já que a linha foi mexida, dá pra corrigir para Global_Objects/WeakSet/add, /has e /delete. Se quiser, também dá pra apontar para pt-BR em vez de en-US, mas o repositório usa os dois, então fica a seu critério.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| Seu código pode acessá-lo, mas as mensagens são gerenciadas pelo código de outra pessoa. Mensagens novas são adicionadas, as antigas são removidas regularmente por esse código, e você não sabe os momentos exatos em que isso acontece. | ||
|
|
||
| Now, which data structure could you use to store information about whether the message "has been read"? The structure must be well-suited to give the answer "was it read?" for the given message object. | ||
| Agora, qual estrutura de dados você poderia usar para guardar a informação de que a mensagem "já foi lida"? A estrutura precisa ser bem adequada para responder "ela foi lida?" para um determinado objeto de mensagem. |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
"guardar a informação de que a mensagem 'já foi lida'" dá a ideia de registrar um fato já conhecido. O original ("whether the message has been read") fala em guardar se a mensagem foi lida ou não, ou seja, uma resposta sim/não, que é a ideia da solução com WeakSet.
| Agora, qual estrutura de dados você poderia usar para guardar a informação de que a mensagem "já foi lida"? A estrutura precisa ser bem adequada para responder "ela foi lida?" para um determinado objeto de mensagem. | |
| Agora, qual estrutura de dados você poderia usar para guardar a informação sobre se a mensagem "já foi lida"? A estrutura precisa ser bem adequada para responder "ela foi lida?" para um determinado objeto de mensagem. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
|
||
| // answer: was the message[0] read? | ||
| // resposta: a message[0] foi lida? | ||
| alert("Read message 0: " + readMessages.has(messages[0])); // true |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Esta string ficou em inglês, mas outras strings dos exemplos foram traduzidas (como "documentos secretos" no artigo):
| alert("Read message 0: " + readMessages.has(messages[0])); // true | |
| alert("Mensagem 0 lida: " + readMessages.has(messages[0])); // true |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Obrigado pela revisão, @gabifs! Apliquei tudo: troquei "garbage collector" por "coletor de lixo"/"coleta de lixo" (variando pra não repetir) em todas as ocorrências do artigo e do segundo exercício, troquei "map"/"set" genéricos por |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.