All Projects → getify → A Tale Of Three Lists

getify / A Tale Of Three Lists

Comparing various async patterns for a single demo

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to A Tale Of Three Lists

R
All Algorithms implemented in R
Stars: ✭ 294 (-53.99%)
Mutual labels:  learning, education
Blog
刘博文(Berwin),花名“玖五”,畅销书《深入浅出Vue.js》作者、Speaker、阿里巴巴集团前端技术专家,天猫双11大促会场消防员、现负责包含天猫双11在内的超大型营销活动的终端渲染架构与专项PM。
Stars: ✭ 3,773 (+490.45%)
Mutual labels:  learning, education
Oppia
A free, online learning platform to make quality education accessible for all.
Stars: ✭ 4,361 (+582.47%)
Mutual labels:  learning, education
swift-algorithms-data-structs
📒 Algorithms and Data Structures in Swift. The used approach attempts to fully utilize the Swift Standard Library and Protocol-Oriented paradigm.
Stars: ✭ 42 (-93.43%)
Mutual labels:  learning, education
Futurecoder
A platform for beginners to learn programming in Python
Stars: ✭ 363 (-43.19%)
Mutual labels:  learning, education
Creed
Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land
Stars: ✭ 265 (-58.53%)
Mutual labels:  async, async-programming
Web Dev For Beginners
24 Lessons, 12 Weeks, Get Started as a Web Developer
Stars: ✭ 39,380 (+6062.75%)
Mutual labels:  learning, education
antares
Digital circuit learning platform
Stars: ✭ 15 (-97.65%)
Mutual labels:  learning, education
Learn Something Every Day
📝 A compilation of everything that I learn; Computer Science, Software Development, Engineering, Math, and Coding in General. Read the rendered results here ->
Stars: ✭ 362 (-43.35%)
Mutual labels:  learning, education
Anki Android
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
Stars: ✭ 4,425 (+592.49%)
Mutual labels:  learning, education
-meta
📗 For goals, architecture of the program, and how-tos.
Stars: ✭ 26 (-95.93%)
Mutual labels:  learning, education
Hypatia
A JavaScript open source LMS (eLearning platform) for MOOCs and online courses
Stars: ✭ 478 (-25.2%)
Mutual labels:  learning, education
awesome-physics
🏄 A list of awesome resources I used to study Physics.
Stars: ✭ 27 (-95.77%)
Mutual labels:  learning, education
Free Courses
A collection of free courses about programming 📖
Stars: ✭ 281 (-56.03%)
Mutual labels:  learning, education
udacity-iOS-nanodegrees
List of iOS Udacity Nanodegree programs with links to the free courses in their curricula
Stars: ✭ 52 (-91.86%)
Mutual labels:  learning, education
Jupyter Edu Book
Teaching and Learning with Jupyter
Stars: ✭ 325 (-49.14%)
Mutual labels:  learning, education
Txtorcon
Twisted-based asynchronous Tor control protocol implementation. Includes unit-tests, examples, state-tracking code and configuration abstraction.
Stars: ✭ 215 (-66.35%)
Mutual labels:  async, async-programming
You Dont Know Js
A book series on JavaScript. @YDKJS on twitter.
Stars: ✭ 147,493 (+22981.85%)
Mutual labels:  async, education
Processing Docs
Processing reference, examples, tutorials, and website
Stars: ✭ 346 (-45.85%)
Mutual labels:  learning, education
Math Worksheet Generator
Create basic addition, subtraction, multiplication and division practice questions with the answer sheet
Stars: ✭ 438 (-31.46%)
Mutual labels:  learning, education

A Tale Of Three Lists

A sorta-sophisticated but still silly async events processing demo.

The demo simulates a feed of data that's sampled at different speeds, filtered into two lists (red and blue). You can select an item from either list and it's added to your saved list in the middle. Selected duplicates are marked off and then removed. Also, both feeds can be paused.

screenshot of demo

more below)

Why

The goal of this project is to sort of be the TodoMVC of async programming. I've seeded the repo with 7 implementations of the same demo, each using a different async pattern.

The code is organized in such a way that there's as much overlap between the implementations as possible. This is intentional. It helps reduce the noise of difference, so that you can focus on only the important things: the different strengths and weaknesses of each async pattern.

I invite all visitors to study the code and do side-by-side comparisons between the different implementations, to see those pros/cons for yourself.

I will also be adding more detailed write-ups of these differences over time, as well as new implementations if there are significant (not just trivial syntax sugar) differences to be illustrated. Suggestions are welcomed!

Compared Patterns

The following patterns are currently implemented for inspection/comparison:

Not A UI/Framework Bikeshed

I use simple jQuery and CSS for the UI of this demo. I don't want that to change. This project is not about comparing different frameworks' approaches to managing and rendering the UI.

That'd be a fun project for you to fork off this one, and compare Angular, React, Backbone, Ember, etc for the UI processing of the lists, kinda like TodoMVC does.

But this project is about exploring the relative merits and shortcomings of each async pattern approach. Any other differences would be unnecessary distracting noise.

To Run Demos Locally

  1. Install from npm with npm install a-tale-of-three-lists. Verify that the node_modules dependencies directory is installed in the root directory.

  2. -OR- Clone this repo, then run npm install from inside the main root directory to install the dependencies.

  3. Now, open any one of the index.html files using the file:// protocol.

  4. -OR- You can run the demos using a local file server (like python or node). Make sure to start the server in each demo's directory, respectively.

License

The code and all the documentation are released under the MIT license.

http://getify.mit-license.org/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].