Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rescriptbr/comece-aqui

:rocket: Quer aprender ReScript? Comece aqui
https://github.com/rescriptbr/comece-aqui

bucklescript react rescript rescript-bindings rescript-lang rescript-react

Last synced: 3 months ago
JSON representation

:rocket: Quer aprender ReScript? Comece aqui

Awesome Lists containing this project

README

        

Quer aprender ReScript? Comece aqui 🚀










ReScriptBR Logo



Twitter
Discord







## 💡 Como utilizar este guia
Este guia é mantido pela comunidade ReScript Brasil e tem como objetivo reunir cursos, vídeos, artigos, livros e qualquer outro material que possa te ajudar a iniciar sua jornada de aprendizado em ReScript.

O guia é open-source, portanto, todos podem contribuir adicionando novos materiais, basta [criar um fork deste](https://github.com/rescriptbr/comece-aqui/fork) repositório e abrir um pull request adicionando suas sugestões.

Ao navegar pelos materiais deste guia, você irá perceber que alguns dos materiais estão utilizando a sintaxe _ReasonML_ (a sintaxe utilizada anteriormente pelo ReScript).
No entanto, é possível utilizar esses conteúdos para estudar ReScript, tendo em vista que essa sintaxe ainda é compatível com a linguagem.
> :bulb: Leia mais sobre a diferença entre ReasonML e ReScript, e o rebranding da linguagem [aqui](https://rescript-lang.org/blog/bucklescript-is-rebranding).

Se você estiver utilizando algum material escrito em ReasonML e deseja converter os snippets de código para a sintaxe do ReScript, você pode fazer a conversão de duas formas:
- Converter o código utilizando o playground no site [oficial do ReScript](https://rescript-lang.org/try). Se precisar de ajuda, utilize o [video](https://github.com/rescriptbr/comece-aqui/issues/17) que gravamos com o passo a passo.
Funciona muito bem para testar snippets simples e códigos que você encontra em cursos ou talks.

- Converter os arquivos do projeto que estão na sintaxe antiga (`.re`) em arquivos na sintaxe nova (`.res`). Para isso você pode utilizar a própria cli do ReScript conforme a [documentação oficial](https://rescript-lang.org/docs/manual/latest/migrate-from-bucklescript-reason#upgrade-your-codebase).

## 🔍 Menu
- [📄 Sites & Docs Oficiais](#-sites--docs-oficiais)
- [📝 Cheat Sheets e Cookbooks](#-cheat-sheets-e-cookbooks)
- [🎥 Videos](#-videos)
- [📝 Artigos](#-artigos)
- [📚 Livros](#-livros)
- [🤓 Pessoas da comunidade](#-pessoas-da-comunidade-para-seguir-no-twitter)
- [🚀 Cursos](#-cursos)
- [🚧 Projetos de exemplo](#-projetos-de-exemplo)
- [💡 Dúvidas frequentes?](#-dúvidas-frequentes)

## 📄 Sites & Docs Oficiais

- [Documentação ReScript](https://rescript-lang.org/)
- [Documentação ReScriptReact](https://rescript-lang.org/docs/react/latest/introduction)
- [Fórum Oficial ReScript](https://forum.rescript-lang.org/)
- [ReScript Association](https://rescript-association.org/)

## 📝 Cheat Sheets e Cookbooks

- [ReScript Bindings Cookbook](https://github.com/rescriptbr/rescript-bindings-cookbook): O guia mais completo sobre interoperabilidade e criação de bindings em ReScript.

## 🎥 Videos

- [ReScript e React na prática](https://www.youtube.com/watch?v=pGA1RfNiGho): Talk com live coding sobre utilizar ReScript e React.
- [ReScript: O EcmaScript 2077](https://www.youtube.com/watch?v=Hoed0aZGbJY): Talk introdutória sobre ReScript.
- [Um servidor com ES77 (ReScript)](https://www.youtube.com/watch?v=_VfCjh31okk): Talk sobre utilizar ReScript no servidor com NodeJs.
- [Playlist: Construindo uma aplicação utilizando ReScript e React](https://www.youtube.com/watch?v=hDratuXnfAo&list=PLr4c053wuXU_V-lMfFmDz9yWD5nw_lv_p): Playlist de vídeos construindo uma aplicação real com ReScript e React.
- [O que é ReasonML(ReScript)?](https://www.youtube.com/watch?v=tNgyRo2fhwU): Talk introdutória sobre a linguagem. Aborda tópicos básicos e faz introdução ao ecossistema ReScript.
- [ReScript Pomodoro Timer with React Hooks](https://www.youtube.com/watch?v=8ftCqZ2-7cQ): Construção de um pomodoro timer utilizando ReScript e React. Utiliza `useReducer` e pattern matching em vários momentos.
- [Weather App in ReScript and React](https://www.youtube.com/watch?v=H6X6AJZna98): Construção de um weather app utilizando ReScript. Muito bom para ter um entendi inicial sobre data fetching e fetch API com ReScript.
- [ReScript, Next.js and Apollo Hooks blog](https://www.youtube.com/watch?v=ag4nUteMwkU&list=PLtDL321SUTJiC2BqrSUzoxozH138y4uhM&index=1): Tutorial bem completo de uma integração de ReScript com Next, Apollo Hooks e AWS Appsync.
- [How to set up webpack for ReScript and React](https://www.youtube.com/watch?v=0CMmML7Q6Ds): Setup inicial para usar ReScript com ReScriptReact.
- [ReScript (ReasonML) levado a sério](https://www.youtube.com/watch?v=8Qi_ZoXc2CI): Talk introdutória sobre ReScript.

## 📝 Artigos

- [O que é e por que utilizar ReScript? Parte 1](https://blog.blumenaujs.org/o-que-e-e-por-que-utilizar-reasonml-parte-1): Introdução sobre o que é ReasonML, seu ecossistema e os ambientes
- [O que é e por que utilizar ReScript? Parte 2](https://blog.blumenaujs.org/o-que-e-e-por-que-utilizar-reasonml-parte-2): Artigo sobre porque você deveria adotar ReasonML ao invés de TypeScript ou Flow. Artigo completo sobre o básico de ReasonML, cobrindo tópicos como Pattern Matching, Variants, Funções e etc
- [Rescript, Reason, Typescript, OCAML, Javascript, Help Me Choose!](https://dusty.phillips.codes/2021/12/18/rescript-reason-typescript-ocaml-javascript-help-me-choose/)
- [Let's Talk About Functors In Rescript](https://dusty.phillips.codes/2021/09/18/lets-talk-about-functors-in-rescript/)
- [Fun With Rescript Polymorphic Variants](https://dusty.phillips.codes/2021/09/06/fun-with-rescript-polymorphic-variants/)
- [Parsing JSON in Rescript](https://dusty.phillips.codes/2021/08/14/parsing-json-in-rescript/)
- [Lazy Loading Images With ReScript](https://alexfedoseev.com/blog/post/lazy-loading-images-with-rescript)
- [Cool Things You Can Do with First-Class Modules in ReScriptReact](https://alexfedoseev.com/blog/post/cool-things-you-can-do-with-first-class-modules-in-rescript-react)
- [Safe Routing in ReScript](https://alexfedoseev.com/blog/post/safe-routing-in-rescript)
- [Safe Identifiers in ReScript](https://alexfedoseev.com/blog/post/safe-identifiers-in-rescript)
- [Eliminating Illegal State in ReScript](https://alexfedoseev.com/blog/post/eliminating-illegal-state-in-rescript)
- [ReScript Modules](https://alexfedoseev.com/blog/post/rescript-modules)

## 📚 Livros

- [Exploring ReasonML](http://reasonmlhub.com/exploring-reasonml/toc.html)
_Livro muito completo sobre ReasonML, pode ser considerado um guia prático. Apesar de ser escrito utilizando a síntaxe "antiga" que é ReasonML, todo o conteúdo do livro é válido e reaproveitável._
- [Type-Driven Development with ReasonML](https://www.amazon.com/Learn-Type-Driven-Development-applications/dp/1788838017)
_O livro ensina como desenvolver software guiado a tipos com ReasonML. Aborda diversos detalhes interessantes sobre como a linguagem se comporta e como o sistema de tipos te guia a modelar seu software. Apesar de ser escrito utilizando a síntaxe "antiga" que é ReasonML, todo o conteúdo do livro é válido._

## 📦 Cursos

- [EcmaScript2077 🇧🇷](https://es77.dev/): _Curso completo de ReScript_
- [Learn ReasonML](https://learnreasonml.com/): _O curso utiliza a síntaxe ReasonML, mas serve como um guia para os iniciantes_
- [Get Started with ReasonML](https://egghead.io/courses/get-started-with-reason): _O curso utiliza a síntaxe ReasonML, mas serve como um guia para os iniciantes_

## 🐦 Pessoas da comunidade para seguir no Twitter

- [Hongbo Zhang](https://twitter.com/bobzhang1988): Criador do ReScript compiler.
- [Patrick Ecker](https://twitter.com/ryyppy): Membro do core team do ReScript. Trabalha ativamente na documentação oficial.
- [Cristiano Calcagno](https://twitter.com/ccrisccris): Membro do core team do ReScript. Trabalhava ativamente no compilador.
- [Maxim](https://twitter.com/_binary_search): Membro do core team do ReScript.
- [zth](https://twitter.com/___zth___): Mantenedor de projetos importantes do ecossistema como [rescript-relay](https://github.com/zth/rescript-relay).
- [Ricky Vetter](https://twitter.com/rickyvetter): Membro do core team do ReScript.
- [fakenickels](https://twitter.com/fakenickels): Mago do ReScript 🧙. Criador de várias libs como [ReForm](https://github.com/rescriptbr/reform) e co-criador do curso [EcmaScript2077](https://es77.dev).
- [Marcos Oliveira](https://twitter.com/vmaarcosp): Organizador da comunidade ReScript Brasil e co-criador do curso [EcmaScript2077](https://es77.dev).
- [Diogo Mafra](https://twitter.com/diogomafra_): Moderador da comunidade ReScript Brasil.
- [Jaap Frolich](https://twitter.com/JaapFrolich): Mantenedor do [graphql-ppx](https://github.com/teamwalnut/graphql-ppx)
- [Ciro](https://twitter.com/cironunesdev)
- [Weslen](https://twitter.com/theweslenng)
- [André Lins](https://twitter.com/andrelmlins)

## 🚧 Projetos de exemplo

- [Blog construido com Nextjs e ReScript (ReasonML)](https://github.com/enieber/olha-oque-fiz)
- [FlashLink](https://github.com/andrelmlins/flashlink)
- [Get Shit Done](https://github.com/cironunes/gsd)
- [Pomodoro](https://github.com/tkovs/pomodoro)
- [Timerlab](https://github.com/vmarcosp/timerlab)
- [Conduit](https://github.com/rescriptbr/conduit): Apesar de estar incompleto, possui vários exemplos de formulários, bindings, data fetching, react-query, reform, ancestor, storybook, etc

## 💡 Dúvidas frequentes?
- **Qual a diferença entre ReasonML, BuckleScript e ReScript?**
> _[Leia mais sobre o rebranding entre ReasonML e ReScript](https://rescript-lang.org/blog/bucklescript-is-rebranding)_

- **Alguns conteúdos (artigos, vídeos, livros) utilizam a síntaxe ReasonML ao invés da síntaxe ReScript, devo usar a síntaxe ReasonML ou a síntaxe ReScript?**
> _Anteriormente o compilador do ReScript (BuckleScript) utilizava a sintaxe ReasonML. Com o rebranding, o ReScript passou a ter sua própria sintaxe, no entanto a sintaxe ReasonML ainda é e será suportada por um bom tempo, mas o ideal é que você utilize a sintaxe ReScript em seus novos projetos e/ou migre os seus projetos para a nova sintaxe quando possível._

- **Onde estão os materiais relacionados a ReasonML e OCaml anteriormente listados aqui neste guia?**
> Após o rebranding, esse guia foi atualizado e alterado para agrupar somente materiais relacionados a ReScript. Se você procura pela versão anterior com os conteúdos relacionados a OCaml/ReasonML você pode encontrá-los [aqui](https://gist.github.com/vmarcosp/72c782d8e36044ce8706127c443bd5fe).

## ❓Perguntas?

Caso surja alguma dúvida sobre sintaxe, erros, bindings e etc [basta abrir uma issue](https://github.com/rescriptbr/comece-aqui/issues/new)