Skip to content

gedsaraiva/scala-learning-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 Projeto de Aprendizado Scala

Um projeto completo para aprender os conceitos fundamentais e avançados da linguagem Scala.

📚 Conteúdo

Este projeto contém exemplos práticos e funcionais dos principais conceitos do Scala:

✅ Conceitos Implementados

  1. Fundamentos Básicos (Hello.scala)

    • Sintaxe básica
    • Val vs Var
    • Funções
    • Collections
  2. Dependências e Bibliotecas (ExemploComDependencias.scala)

    • JSON parsing com Circe
    • HTTP requests com STTP
    • Manipulação de dados
  3. Pattern Matching (PatternMatchingExemplo.scala)

    • Sealed traits e case classes
    • Pattern matching avançado
    • Guards e destructuring
  4. Error Handling (ErrorHandlingExemplo.scala)

    • Option, Some, None
    • Either para tratamento de erros
    • Try para exceções
    • For-comprehensions
  5. Implicits e Type Classes (ImplicitsExemplo.scala)

    • Implicit conversions
    • Type classes pattern
    • Context bounds
    • Implicit parameters
  6. Testes (HelloTest.scala, JsonTest.scala)

    • Testes unitários com ScalaTest
    • TDD practices

🚀 Como Executar

Pré-requisitos

  • Java 8 ou superior
  • SBT (incluído no projeto)

Executando os Exemplos

# Compilar o projeto
.\sbt\bin\sbt.bat compile

# Executar exemplos específicos
.\sbt\bin\sbt.bat "runMain Hello"
.\sbt\bin\sbt.bat "runMain PatternMatchingExemplo"
.\sbt\bin\sbt.bat "runMain ErrorHandlingExemplo"
.\sbt\bin\sbt.bat "runMain ImplicitsExemplo"
.\sbt\bin\sbt.bat "runMain ExemploComDependencias"

# Executar testes
.\sbt\bin\sbt.bat test

📦 Dependências

  • Circe: Para manipulação de JSON
  • STTP: Para requisições HTTP
  • ScalaTest: Para testes unitários

🎓 Roteiro de Aprendizado

Este projeto segue uma progressão natural de aprendizado:

  1. Iniciante: Hello.scala
  2. Básico: ExemploComDependencias.scala
  3. Intermediário: PatternMatchingExemplo.scala, ErrorHandlingExemplo.scala
  4. Avançado: ImplicitsExemplo.scala
  5. Prática: Testes unitários

📖 Guia Detalhado

Consulte o arquivo GUIA_APRENDIZADO_SCALA.md para um roteiro completo de estudos.

🛠️ Estrutura do Projeto

scala_project/
├── src/
│   ├── main/scala/
│   │   ├── Hello.scala
│   │   ├── ExemploComDependencias.scala
│   │   ├── PatternMatchingExemplo.scala
│   │   ├── ErrorHandlingExemplo.scala
│   │   └── ImplicitsExemplo.scala
│   └── test/scala/
│       ├── HelloTest.scala
│       └── JsonTest.scala
├── build.sbt
├── GUIA_APRENDIZADO_SCALA.md
└── README.md

🎯 Conceitos Demonstrados

  • Programação Funcional: Map, filter, reduce, for-comprehensions
  • Sistema de Tipos: Type classes, implicits, generics
  • Error Handling: Option, Either, Try
  • Pattern Matching: Destructuring, guards, sealed traits
  • Collections: List, Vector, Set, Map
  • Testing: Unit tests, mocking, property-based testing

👨‍💻 Sobre

Projeto criado como material de estudo para aprender Scala de forma prática e incremental.


Data de Criação: 23 de julho de 2025
Versão do Scala: 2.13.8
Build Tool: SBT 1.9.7

About

Projeto completo para aprender Scala - Fundamentos até conceitos avançados

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published