awesome-code-reading
awesome-code-reading copied to clipboard
Spectrum
Link to the codebase
https://github.com/withspectrum/spectrum
Which release/version did you read?
The latest
Why it is a good project to read?
It's a complete project with lots of contributors. I like it for various reasons:
- It's written in JavaScript which needs quite a few decisions in order to create a maintainable and extensible codebase. They have everything sorted out though, the linter, the test suite, the type system, etc.
- It's a monorepo which I love working on one rather than on many many different repositories.
- It uses async workers to delegate tasks to other services. The separation of concerns is very good and they have avoided bloating the backbone from the get-go.
Yes, agree
@kbariotis thanks for the contribution. I will try to add a little more information since it looks like a fairly large project. Do you mind if I edit this issue?
I looked into it a little bit more, and I have to agree that it's a good project to read. I like how the project is neatly structured. From the README:
spectrum/
├── api # API server
├── athena # Worker server (notifications and general processing)
├── chronos # Worker server (cron jobs)
├── desktop # desktop apps (build with electron)
├── docs
├── email-templates
├── hermes # Worker server (email sending)
├── hyperion # Server rendering server
├── mercury # Worker server (reputation)
├── mobile # Mobile apps
├── public # Public files used on the frontend
├── shared # Shared JavaScript code
├── src # Frontend SPA
└── vulcan # Worker server (search indexing; syncing with Algolia)
As said by @kbariotis, each sub-folder has its own concern and can be run separately.
I looked at a few files in the api server and they seems to be pretty clean and well-written. I think this will be a good project for someone who wants to learn how to implement chat.
I will read it a little more when I get a chance. There are a lot of interesting stuff in the repo. I can probably learn a ton from the mobile app and the Frontend SPA.
I am adding this to the list. Thanks again @kbariotis and @francishero for sharing it.