Giter Club home page Giter Club logo

applied-scala's People

Contributors

lukestephenson avatar lukestephenson-zendesk avatar millyrowboat avatar nicholasnbg avatar shaun-whitely avatar ssanj avatar stilianouly avatar wjlow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

applied-scala's Issues

Fill in Day 2 Codecs

Overview

See issue #10 for context

As part of an effort to streamline the course, it was agreed that filling in the encoders and decoders for day 2 ahead of time would be a positive change.

In Scope

  • Fill out MovieValidationError encoder
  • Fill out NewMovieRequest decoder
  • Fill out NewReviewRequest decoder
  • Fill out ReviewId encoder
  • Fill out ReviewValidationError encoder

Review the `README.md` in each package.

After trimming stuff down, we should review the README for each package to make sure they're still accurate.

And also update the time necessary to complete each section as necessary.

Proposal to lean course content

Overview

After retrospective discussions around feedback received for the last iteration of the course ran at REA, the following code changes were proposed with the aim of "slimming down" the course to help "zoom fatigue", and deliver a more refined course.

Proposed Changes (in no particular order)

  • Pre fill app wiring for all but one route (1 time to discuss dependency injection and learn, rest pre filled to save time)
  • Pre fill decoders/encoders past for 2nd day(?)
  • At end of SaveMovie endpoint (after Traverse and Validation module), go and reimplement getEnrichedMovie endpoint using traverse
  • Pre implement SaveReviewValidator (it is simple, nothing new from previous validations)

Accompanying Presentation Changes/Notes (for context)

  • Http4s presentation might be a bit type heavy first cab off the rank, might need some simplification.
  • We have 2 endpoint walk throughs (HelloWorld, GetAllMovies), can we consolidate?
  • Limit Circe encoder/decoder examples to the main 2 or 3 we actually use, too many ways to do one thing can be confusing.
  • We considered changing the order to teach traverse and validation before getEnrichedMovie to make this endpoint simpler to implement, but agreed that you have to earn traverse!
  • Traverse could use a good diagram, and a little more focus in the Validation preso
  • By pre implementing 'wiring' and some encoders/decoders, we can save a significant amount of time, to eithe redistribute to heavier sections of the course, or finish a bit earlier one or both days.

Questions

  • Should these changes be limited to remote only runs and be reverted to the fleshed out version once being run in person again?

Things TODO for open source

Summary
We would like applied-scala to be open source so that we can share our Scala training tools to the wider tech community.

The precursor to applied-scala is intro-to-scala https://github.com/wjlow/intro-to-scala made by @wjlow

TODO

  • Add contributions guide ( contributing.md )
  • Generalize setup instructions ( as to not be entirely mac focused )
  • Travis CI

Add wartremover

wartremover was in this code base at one point but we had it commented out.

We should put it back and add suppressions where necessary.

Fill in NewReviewValidator

See #10 for context

Overview

We want to fill in this validator to streamline the course, this validator doesn't cover anything that wasn't already covered in the Validated exercises and NewMovieValidator.

In Scope

  • Fill in NewReviewValidator

Consider moving to Scala 3

Scala 3 has some very nice features for beginners (enum keyword, new keywords for implicits). Moreover, most open source libraries support it by now. Perhaps we should think about moving this course over to Scala 3?

Fill in wiring

Overview

See issue #10 for greater context

As part of an effort to streamline the course, it was agreed that filling in the 'wiring' ahead of time would be a positive change. The amount of time currently spent by presenters rushing through and filling making changes to AppRuntime and AppRoutes just adds unnecessary noise to the course and is thought of as 'low impact' in teams of what we are trying to teach students.

In Scope

  • Wiring for GET movies endpoint
  • Wiring for GET movie endpoint
  • Wiring for GET enrichedMovie endpoint
  • Wiring for POST movie endpoint
  • Wiring for POST movie/id/review endpoint

Out of scope

  • Wiring for endpoint ?

Questions

  • What endpoint is most appropriate to not fill in?

  • How can we indicate that we have already filled in the wiring, and point curious students in the right direction?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.