Codemountain, Paulo Suzart's Blog

Flowchart de apoio a escolha de tipos em Clojure

with 4 comments

Muitas vezes fiquei em dúvida sobre qual forma de definição de tipos em Clojure utilizar. As opçõe são muitas: deftype, defrecord, reify, proxy, e gen-class e é fundamental um bom entendimento de cada uma delas para fazer a melhor escolha sua implementação.

Foi aí que encontrei este post de Chas Emerick, um dos autores de Clojure Programming: Rough Cuts Version. Este livro promete muito e não vejo a hora de tê-lo em mãos.

No post, Chas fala a respeito da tarefa de escolher o tipo certo e mostra um fluxo que ajuda e muito, não só entender os tipos, mas como fazer a melhor escolha. Depois de OGINO Masanori oferecer uma versão em Japonês, me ofereci para fazer uma tradução para português, e Chas aceitou. Assim você pode usar como Wall paper ou fazer impressão bem grande para deixar na parede mais próxima. Clique na imagem para ampliar.

Usando as próprias palavras do autor, a Zona de Interoperabilidade (ou “The ‘Interop Zone’”) do chart, agrega os seguintes casos:

“The ‘Interop Zone’” demarcates use cases (e.g. needing to define multiple constructors) and forms (proxy and gen-class) that are exclusively the domain of Clojure’s JVM interoperability support. Using these forms is fine, but be aware that by doing so, you are stepping outside of Clojure’s “native” abstractions; unless you are defining a type for the express purpose of meeting interoperability requirements, one of Clojure’s simpler type-definition forms may suit your needs better. (Chas Emerick)

Eu já precisei usar um misto de Protocols, types e Proxy como você pode ver aqui. Era justamente um caso de interoperabilidade com classe puramente Java, e obtive um ótimo resultado.

Espero que o flowchart seja útil para você também.

Update 2011-11-17 07:46 pm UTC: Chas teve uma grande ideia! Ele criou um repositório no Github onde é possível contribuir com traduções para este chart, que é dos mais úteis que já vi. Ele me acionou pelo twitter e tive o prazer em fazer a versão em Português para colocar no repo. O chart original estará publicado em seu livro Clojure Programming – que sai no final deste ano.

About these ads

Written by paulosuzart

agosto 22, 2011 at 6:34 pm

Publicado em clojure, coding

Tagged with , ,

4 Respostas

Subscribe to comments with RSS.

  1. [...] 2011-08-23 17:33 UTC — Portuguese translation provided by Paulo Suzart Like this:LikeBe the first to like this post. This entry was posted in [...]

  2. Thank you very much, Paulo. Your translation of the flowchart is most welcome! :-)

    Chas Emerick

    agosto 23, 2011 at 6:37 pm

  3. Paulo: I’ve started a github repository to help others produce translations of the diagram:

    https://github.com/cemerick/clojure-type-selection-flowchart

    I’d love to have your translation included there, please feel free to send a pull request (maybe even with a translated omnigraffle file?).

    Chas Emerick

    novembro 17, 2011 at 2:40 pm


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: