Skip to content

Commit

Permalink
Updates, 2016-07-02
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Jul 2, 2016
1 parent 5e597a2 commit 00fca8e
Show file tree
Hide file tree
Showing 20 changed files with 313 additions and 55 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Curated tutorial and resource links I've collected on React, Redux, ES6, and mor

Another important resource is the Reactiflux community on Discord, which has chat channels dedicated to discussion of React, Redux, and other related technologies. There's always a number of people hanging out and answering questions, and it's a great place to ask questions and learn. The invite link is at https://www.reactiflux.com.

You might also want to check out my categorized list of Redux-related addons, libraries, and utilities, at [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links).
You might also want to check out my categorized list of Redux-related addons, libraries, and utilities, at [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links). Other useful resource lists include [Awesome React]https://github.com/enaqx/awesome-react), [Awesome React Native](https://github.com/jondot/awesome-react-native), and [Awesome Redux](https://github.com/xgrommx/awesome-redux).


## Table of Contents
Expand Down
37 changes: 24 additions & 13 deletions basic-concepts.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
### Basic Concepts, Terms, and Overviews

- **React How-To**
https://github.com/petehunt/react-howto
Pete Hunt, one of React's creators, gives a high-level suggested order to use when learning React-related technologies (React, NPM, bundlers, ES6, routing, and Flux/Redux)


#### Modern Javascript Terms and Tooling Overviews

- **State of the Javascript Landscape in 2016**
http://www.infoq.com/articles/state-of-javascript-2016
A very high-level summary of the important terms and technologies that are used in modern Javascript development.
Expand All @@ -15,10 +14,28 @@
- **State of the Art Javascript in 2016**
https://medium.com/javascript-and-opinions/state-of-the-art-javascript-in-2016-ab67fc68eb0b
An opinionated list of what tools and libraries a modern JS development stack should include, plus links to further resources.

- **The Hitchhiker's Guide to the Modern Front End Development Workflow**
http://marcobotto.com/the-hitchhikers-guide-to-the-modern-front-end-development-workflow/
A useful overview of the many categories and types of tools used in modern web development.

- **Simplified Javascript Jargon**
http://jargon.js.org/
An alphabetical list of common terms in the JS world, with very short definitions in the main list and slightly longer descriptions linked for each term.


#### React Learning Guidelines

- **React How-To**
https://github.com/petehunt/react-howto
Pete Hunt, one of React's creators, gives a high-level suggested order to use when learning React-related technologies (React, NPM, bundlers, ES6, routing, and Flux/Redux)

- **Timeline for Learning React**
https://daveceddia.com/timeline-for-learning-react/
Another high-level suggested timeline for how to approach learning React and related technologies.


#### General Suggestions for Learning

- **Learn the Javascript Ecosystem one package at a time**
http://andrewhfarmer.com/npm-sandboxing/
Expand All @@ -28,12 +45,6 @@
http://wesbos.com/overwhelmed-with-web-development/
Wes Bos gives advice on how to cut down on noise, avoid "new shiny" syndrome, and still improve your web dev skills

- **The Hitchhiker's Guide to the Modern Front End Development Workflow**
http://marcobotto.com/the-hitchhikers-guide-to-the-modern-front-end-development-workflow/
A useful overview of the many categories and types of tools used in modern web development.

- **Simplified Javascript Jargon**
http://jargon.js.org/
An alphabetical list of common terms in the JS world, with very short definitions in the main list and slightly longer descriptions linked for each term.


- **How to Learn Web Frameworks**
https://medium.com/shopify-ux/how-to-learn-web-frameworks-9d447cb71e68
Some great advice on how to approach learning web development and frameworks, especiialy if you're a junior developer.
12 changes: 12 additions & 0 deletions boilerplates-and-starter-kits.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@
https://github.com/cesarandreu/web-app
Another very good learning resource. Heavily commented Webpack config, good default settings.

- **React Laboratory**
https://github.com/tstringer/react-laboratory
An absolute bare-minimum project. One tiny Webpack config, one JS file, one component. Pretty much the smallest possible setup to use React and JSX with Webpack.

- **Hipster Boilerplate**
https://github.com/Jordaanm/hipster-boilerplate
A learning-oriented repo that builds up a small project config step-by-step. Each commit adds one new feature or capability (Babel+ES6, Webpack bundling, a small Redux app, LESS styling, routing, and hot-reloading).



#### Full-Featured Starter Kits
Expand Down Expand Up @@ -66,3 +74,7 @@
- **React Starter Project Search Tool**
http://andrewhfarmer.com/starter-project/
Search for starter kits with/without specific libraries and sort by GitHub stars, number of dependencies, or recently updated.

- **Awesome React Boilerplates**
http://habd.as/awesome-react-boilerplates/
Another good curated list of boilerplates for both React and React Native
12 changes: 11 additions & 1 deletion es6-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@
http://rainsoft.io/when-not-to-use-arrow-functions-in-javascript/
An in-depth look at when you should stick with standard JS functions instead of arrow functions

#### Specific Features

- **Powering Javascript with Generators**
http://appendto.com/2016/06/powering-javascript-with-generators
A useful introduction to the generators feature in ES6.


#### Techniques

Expand All @@ -56,4 +62,8 @@

- **Functional Mixins in ECMAScript 2015**
http://raganwald.com/2015/06/17/functional-mixins.html
Another approach at combining mixins and classes
Another approach at combining mixins and classes

- **Selective transpilation for modern Javascript environments**
https://medium.com/@adamrackis/selective-transpilation-for-modern-javascript-environments-15bde6b75cfd
An investigation into ways to offer up differently-compiled bundles for different platforms with various levels of JS feature support.
8 changes: 8 additions & 0 deletions functional-programming.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,11 @@
- **Learning Functional Programming with Javascript**
https://youtu.be/e-5obm1G_FY
A great talk by Anjana Vakil. Covers several basic concepts of functional programming, including some very nice examples of map/filter/reducer, a clear fdefinition of side effects, and an explanation of how specialized immutable data libraries work.

- **Thinking in Ramda**
http://randycoulman.com/blog/categories/thinking-in-ramda/
A series of articles digging into techniques to use with the Ramda FP utility library

- **Functional Programming Isn't the Answer**
http://degoes.net/articles/fp-is-not-the-answer
A reminder that while FP has potential benefits, it's ultimately just a tool, and the end goal is useful software.
33 changes: 22 additions & 11 deletions git-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,32 @@
http://think-like-a-git.net/
A tutorial for "advanced beginners" who know the basic commands, but want to better understand Git's concepts

- **Git from the Inside Out**
https://codewords.recurse.com/issues/two/git-from-the-inside-out
An explanation of how Git works, by describing the internal data structures and the graph that they form.


#### Tips and Useful Info

- **How to Write a Git Commit Message**
http://chris.beams.io/posts/git-commit/
Great advice for how to write a succinct, informative, and useful commit message.

- **Advance Git**
https://medium.com/@jstats/advance-git-dfe557bdbe59
Gives advice for good commit messages, and describes the options and usage for several advanced Git commands (`add --patch`, `rebase`, `reflog`, and more).

- **Git Useful Tips**
http://ericdouglas.github.io/2016/04/01/Git-Useful-Tips/
A useful reference to commands and concepts.

- **19 Tips for Everyday Git Use**
http://www.alexkras.com/19-git-tips-for-everyday-use
A variety of practical commands for different scenarios.

- **Git Tips**
https://github.com/git-tips/tips
A large collection of Git tips and tricks.

#### E-Books

Expand Down Expand Up @@ -90,17 +111,7 @@
http://ndpsoftware.com/git-cheatsheet.html
A clickable page that shows how various commands move data between different parts of Git's storage (working copy, index, local repo, remote repo)

- **Git Useful Tips**
http://ericdouglas.github.io/2016/04/01/Git-Useful-Tips/
A useful reference to commands and concepts.

- **19 Tips for Everyday Git Use**
http://www.alexkras.com/19-git-tips-for-everyday-use
A variety of practical commands for different scenarios.

- **Git Tips**
https://github.com/git-tips/tips
A large collection of Git tips and tricks.


#### Desktop GUI Clients

Expand Down
10 changes: 9 additions & 1 deletion immutable-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
- **Immutable Javascript using ES6 and Beyond**
http://wecodetheweb.com/2016/02/12/immutable-javascript-using-es6-and-beyond/
Describes ways to handle data immutably using "just" built-in Javascript functions

- **Immutability is Not Enough**
https://codewords.recurse.com/issues/six/immutability-is-not-enough
A look at how using an immutable data approach doesn't magically prevent all bugs.



Expand Down Expand Up @@ -47,4 +51,8 @@

- **Painless Immutability**
https://guigrpa.github.io/2016/06/16/painless-immutability/
A somewhat opinionated article from the author of a new immutable data library comparing different options, but still well-written and informative about the pros and cons of each.
A somewhat opinionated article from the author of a new immutable data library comparing different options, but still well-written and informative about the pros and cons of each.

- **Immutable.js**
http://seanamarasinghe.com/developer/immutable-js/
An introduction to the API and use cases for Immutable.js
7 changes: 6 additions & 1 deletion javascript-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ While this list is primarily focused on learning React and Redux, and generally

- **Mozilla Developer Network: Javascript**
https://developer.mozilla.org/en-US/docs/Web/JavaScript
Mozilla maintains a fantastic set of developer resources for Web technologies, including a comprehensive reference to the Javascript language and a number of associated tutorials.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
Mozilla maintains a fantastic set of developer resources for Web technologies, including a comprehensive reference to the Javascript language and a number of associated tutorials. Their "reintroduction to Javascript" article is a great overview of what the language looks like.


- **Eric Elliott's Javascript Resource Lists**
Expand Down Expand Up @@ -63,6 +64,10 @@ While this list is primarily focused on learning React and Redux, and generally
https://www.sitepoint.com/inner-workings-javascripts-this-keyword/
https://www.sitepoint.com/mastering-javascripts-this-keyword/
A two-part article on the ins and outs of `this`.

- **Let's Settle `this`, Part One**
https://medium.com/@nashvail/lets-settle-this-part-one-ef36471c7d97
Another look at `this`, with a number of examples and explanations



Expand Down
10 changes: 9 additions & 1 deletion pros-cons-discussion.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,12 @@ similar structures in ClojureScript.

- **"I'm a web dev who uses jQuery for a large app - How can I convince my bosses a JS framework is the way to go?"**
https://www.reddit.com/r/javascript/comments/3v43qf/im_a_web_developer_who_uses_jquery_to_write_a/
Another long, in-depth discussion thread on the merits of JS frameworks, as well as "big-bang" rewrites
Another long, in-depth discussion thread on the merits of JS frameworks, as well as "big-bang" rewrites

- **"Why isn't AJAX present in Many examples of React/Flow/Redux?"**
https://www.reddit.com/r/reactjs/comments/4pbq2x/why_isnt_ajax_present_in_many_examples_of/
A long discussion thread that covers several topics related to tutorials, articles, and official docs, and various approaches. Includes a couple comments from Dan Abramov on the limited size and scope of the React team.

- **"How can I better market my Javascript library?"**
https://news.ycombinator.com/item?id=11833301
The developer of a Redux wrapper library asks how to get more attention online. I offer a pretty long reply comment describing the various network effects involved in any addon library, and critique his specific library from a Redux user's perspective.
10 changes: 7 additions & 3 deletions react-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
http://kelle.co/react-perf-slides/
A slideshow that walks through the core concepts of managing good React performance.



- **Optimizing React Performance using keys, component lifecycle, and performance tools**
http://jaero.space/blog/react-performance-1
http://jaero.space/blog/react-performance-2
Expand Down Expand Up @@ -85,6 +83,10 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
https://github.com/jurassix/react-immutable-render-mixin/issues/19#issuecomment-222567064
Immutable.js author Lee Byron comments on a performance discussion, giving advice on suggested Immutable.js usage patterns

- **"Immutable perf tip: avoid toJS"**
https://twitter.com/leeb/status/746733697093668864
Another suggestion from Lee Byron to avoid use of Immutable.js's data conversion functions based on performance reasons.

#### Redux Performance

- **High Performance Redux**
Expand All @@ -103,5 +105,7 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
https://github.com/reactjs/redux/issues/1751
Discussion of several factors that affect Redux performance


- **Improving React and Redux Performance with Reselect**
http://blog.rangle.io/react-and-redux-performance-with-reselect/
Covers how to use Reselect to define memoized "selector" functions that can cut down on duplicate work

32 changes: 32 additions & 0 deletions react-redux-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,22 @@
https://css-tricks.com/learning-react-container-components/
Describes the container component pattern and how to use it to split up responsibilities between fetching and displaying data.

- **Finding `state`'s place with React and Redux**
https://medium.com/@adamrackis/finding-state-s-place-with-react-and-redux-e9a586630172
A look at when and how using React component state may be useful, even when using Redux for primary app state

- **Dataflow through React**
https://jurassix.gitbooks.io/dataflow-through-react/content/index.html
An online book that covers a number of topics on React components and data flow.

- **A case for setState**
https://medium.com/@zackargyle/a-case-for-setstate-1f1c47cd3f73
An article arguing that React component state still has a number of uses.

- **Smart and Dumb Components in React**
http://jaketrent.com/post/smart-dumb-components-react/
Another look at ways to conceptually categorize components based on responsibilities, and some ways you can organize your code based on those concepts.


#### React and AJAX

Expand Down Expand Up @@ -134,6 +150,18 @@
https://medium.com/@thejenniekim/two-way-data-binding-and-form-validation-in-react-9d0b15123176
Another demonstration of building a form with some logic and validation.

- **Using React's state to manage data entry**
https://medium.com/@adamrackis/using-reacts-state-to-manage-data-entry-ed92e4fd1a42
Describes how to manage data for forms using React component state and some wrapper components.

- **Handling React Forms with Mobx Observables**
https://blog.risingstack.com/handling-react-forms-with-mobx-observables/
Some examples of working with forms in React, using MobX for the data management.

- **Forms in React and Redux**
http://x-team.com/2016/02/tutorial-forms-in-react-and-redux/
A good example of how to set up form handling in conjunction with a Redux store.


#### Project File Structure

Expand Down Expand Up @@ -164,6 +192,10 @@
- **How to Better Organize Your React Applications?**
https://medium.com/@alexmngn/how-to-better-organize-your-react-applications-2fd3ea1920f1
Another feature-style approach, describing things in terms of "components", "scenes", and "services".

- **Fractal Project Structure**
https://github.com/davezuko/react-redux-starter-kit/wiki/Fractal-Project-Structure
Docs from the React Redux Starter Kit project describing their "Fractal Project Structure" concept, and advice for file and app organization.


#### Redux Architecture
Expand Down
29 changes: 20 additions & 9 deletions react-redux-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
https://github.com/mxstbr/react-boilerplate/blob/v3.0.0/docs/testing/component-testing.md
Useful description of how to use Mocha, Expect, and Enzyme to test React and Redux code

- **Reddit - "Karma/Mocha/Chai/Sinon setup"**
https://www.reddit.com/r/javascript/comments/4217x6/ive_spent_six_hours_attempting_to_set_up/
Reddit user Cody_Chaos describes his approach to running unit tests under Node with Mocha, and integration tests in a browser with Karma. Includes several useful config setup snippets.

- **Testing React Applications**
http://12devsofxmas.co.uk/2015/12/day-2-testing-react-applications/
A long, in-depth article describing approaches and use of Tape, React TestUtils, and Enzyme
Expand All @@ -52,10 +48,6 @@
http://dchambers.github.io/articles/testing-react-components-with-teaspoon-and-unexpected/
A short but useful look at a couple testing libraries and ways to use them.

- **Redux Flow Tutorial**
http://dchambers.github.io/articles/redux-flow-tutorial/
Covers how to set up Flow for type-checking a Redux application

- **Unit Testing React Components and Redux Reducers**
http://pebblecode.com/blog/react-redux-unit-testing/
Some basic examples for testing reducers and components.
Expand All @@ -76,6 +68,25 @@
http://silvenon.com/testing-react-and-redux/
A three-part article that shows how to set up Ava and Babel, then walks through testing Redux code (action creators, reducers, selectors, thunks, and sagas), and React components.


#### General Testing, Tools, and Setup

- **Javascript Testing: Unit vs Functional vs Integration**
https://www.sitepoint.com/javascript-testing-unit-functional-integration/
A comparison of the various levels of tests you can run, and what roles they play in development.

- **Reddit - "Karma/Mocha/Chai/Sinon setup"**
https://www.reddit.com/r/javascript/comments/4217x6/ive_spent_six_hours_attempting_to_set_up/
Reddit user Cody_Chaos describes his approach to running unit tests under Node with Mocha, and integration tests in a browser with Karma. Includes several useful config setup snippets.

- **Setting Up Javascript Testing Tools for ES6**
http://x-team.com/2016/05/setting-up-javascript-testing-tools-for-es6/
Tips on configuring tools to work with ES6 code, and writing tests using ES6
Tips on configuring tools to work with ES6 code, and writing tests using ES6

- **Keep Calm and Love Javascript Unit Tests - Part 2: Asynchronism**
http://www.theodo.fr/blog/2016/06/keep-calm-and-love-javascript-unit-tests-part-2-asynchronism/
Useful tips for testing asynchronous behavior under Mocha.

- **ESLint Part 1: Exploration**
https://blog.scottnonnenberg.com/eslint-part-1-exploration/
A solid look at what ESLint is, how you can use it to help keep your code clean, and a number of useful linting plugins that are available.
8 changes: 8 additions & 0 deletions react-tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@
- **React Enlightenment**
http://www.reactenlightenment.com/
A straightforward, cookbook-style approach to learning React. (Currently a work-in-progress.)

- **ReactJS Tutorial**
http://www.tutorialspoint.com/reactjs/index.htm
A multi-part tutorial covering numerous aspects of React. Each part is short and the writing is a bit awkward, but the topics and info are useful.

- **React Tutorial**
http://www.pshrmn.com/tutorials/react/react/
A very readable intro to React's concepts.


#### Project-Based Tutorials
Expand Down
Loading

0 comments on commit 00fca8e

Please sign in to comment.