Comments (2)
Thanks for compiling this. I sure have missed the conversations over there 😄
Proposed changes
I agree with everything. In regards to prefilling the codecs, I think it's okay because by the end of day 1, they would have written a custom encoder. I'm not sure if they ever do write a custom decoder, but it doesn't really matter because doing it once isn't gonna make them remember it anyways, haha.
Presentation changes
Since the presentations aren't open source, it's hard to discuss them in detail, but...
- The 2 endpoint walkthroughs can be consolidated. We can get rid of
HelloWorld
. - Circe encoding: Perhaps we don't teach how to create a
Json
usingJson.obj
here - Circe parsing: Perhaps we can move
strToJson
to the end of the exercise and call itstrToPerson
and just teachdecode[Person](str)
. I just noticed we aren't teaching the handydecode
which goes fromString => A
, bypassingJson
altogether. - Circe decoding: I think there's nothing to thin out here. We start off by teaching the anonymous class approach using
new Decoder
and then tell them how to refactor it to a single abstract method syntax. I think this is useful, lots of people get confused by the single abstract method syntax right off the bat, myself included.
Questions
- I think it's worth thinning out the course in general anyways. That's what I always wanted to do. It's way too hard the way it is currently.
Next steps?
If you want to create separate issues for each of the things we want to change, I'm happy to pick up some of them as we go. I hope to run this course in the next 3 months and I was planning to simplify it in time for it.
from applied-scala.
On second thought, I'm not sure if it will be easy to get rid of HelloWorld
entirely. Showing FetchAllMovies
as the very first endpoint might be a bit overwhelming. HelloWorld
could be a lot shorter though.
I definitely think pre-filling app wiring will save a lot of time. So much time is spent in wiring up in AppRuntime
and then updating AppRoutes
.
from applied-scala.
Related Issues (13)
- Fill in wiring HOT 3
- Fill in Day 2 Codecs HOT 2
- Fill in NewReviewValidator
- Review the `README.md` in each package.
- Add scalafmt HOT 1
- Things TODO for open source HOT 2
- test issue to verify bot HOT 1
- another test issue HOT 1
- ValidationExercisesSpec: should ignore ordering of errors HOT 1
- Move from Travis CI to Github Actions
- Consider moving to Scala 3
- Add wartremover HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from applied-scala.