Skip to content

Commit

Permalink
Updates, 2017-11-12
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Nov 12, 2017
1 parent 42e24ac commit 68af57f
Show file tree
Hide file tree
Showing 25 changed files with 266 additions and 15 deletions.
10 changes: 9 additions & 1 deletion framework-comparisons.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,12 @@

- **How to migrate an application from AngularJS to React and Redux**
https://hackernoon.com/how-to-migrate-an-application-from-angularjs-to-react-and-redux-de0e2d1f70aa
Recaps several useful techniques to use when migrating an Angular 1.x app to React and Redux, including moving the build to use Webpack, rendering React components inside of Angular directives, sharing dependencies, and integrating Redux into the application.
Recaps several useful techniques to use when migrating an Angular 1.x app to React and Redux, including moving the build to use Webpack, rendering React components inside of Angular directives, sharing dependencies, and integrating Redux into the application.

- **Octopus Deploy 4.0 - Why we chose React over Angular when rewriting the Octopus 4.0 UI**
https://octopus.com/blog/octopus-v4-angular-to-react
Thoughts on how their original Angular 1 app had become unmaintainable, why they picked React, use of TypeScript, and how they approached architecting the React version.

- **AngularJS migration to React/Redux**
https://hashnode.com/post/angularjs-migration-to-reactredux-cj7t0m67x012ehowugcvjn1xj
Examples of how to approach migrating an Angular 1 app by first switching some components to use React, then adding state management to use Redux.
12 changes: 12 additions & 0 deletions functional-programming.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,15 @@
- **Higher Order Functions and Redux Thunk**
https://medium.com/@joedski/higher-order-functions-and-redux-thunk-1e5983ae6b03
An exploration of ways to wrap behavior around thunks, including composing functions together.

- **Functional Programming Jargon**
https://functional.works-hub.com/blog/Functional-Programming-Jargon
A large list of functional programming terms, with explanations for each and examples of those terms using JS

- **Awesome FP JS**
https://github.com/stoeffel/awesome-fp-js
A collection of links to libraries, tools, and resources for FP usage in JS

- **Currying vs Partial Application**
http://www.datchley.name/currying-vs-partial-application/
A great explanation of the difference between "currying" functions and "partially applying" them
4 changes: 4 additions & 0 deletions git-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,10 @@
- **Visualize Merge History with git log --graph, --first-parent, and --no-merges**
https://redfin.engineering/visualize-merge-history-with-git-log-graph-first-parent-and-no-merges-c6a9b5ff109c
Describes issues with using `git log` to visualize history, and some arguments that can be used to give a potentially better picture of what's actually happened.

- **How to undo (almost) anything with Git**
https://github.com/blog/2019-how-to-undo-almost-anything-with-git
Instructions for undoing and redoing changes in various scenarios.


#### E-Books
Expand Down
3 changes: 3 additions & 0 deletions javascript-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ While this list is primarily focused on learning React and Redux, and generally
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.

- **Modern JS Cheatsheet**
https://github.com/mbeaudru/modern-js-cheatsheet
An extensive list of explanations for syntax and concepts used in modern JS applications

- **Eric Elliott's Javascript Resource Lists**
https://medium.com/javascript-scene/10-priceless-resources-for-javascript-learners-bbf2f7d7f84e
Expand Down
30 changes: 27 additions & 3 deletions pros-cons-discussion.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@
https://daveceddia.com/react-business-value/
Covers several reasons why using React is a good business decision, including ease of maintenance, long-term usefulness, and risk, with a summary of justifications.

- **Why we built our new UI in React, from the ground up**
https://blog.cloud-elements.com/dev-discuss-why-we-built-our-new-ui-in-react-from-the-ground-up
The Cloud Elements team describes why they rewrote their UI in React, and how the React ecosystem worked well for their approach.


#### Redux/Flux Comparisons

Expand Down Expand Up @@ -124,6 +128,10 @@
https://twitter.com/modernserf/status/886426115874717697
Deep and fascinating analysis of how Redux compares to OOP and message-passing, how typical Redux usage can devolve towards Java-like "setter" functions with more boilerplate, and something of a plea for a higher-level "blessed" abstraction on top of Redux to make it easier to work with and learn for newbies. Very worth reading. The author originally wrote a tweetstorm, which I captured in the Storify link, and wrote the blog post to expand on those thoughts. Finally, he followed up with a few more thoughts on abstract vs concrete examples in another shorter tweet thread.

- **Thoughts on Redux and its similarities with OOP**
https://medium.com/@dhruvrajvanshi/thoughts-on-redux-and-its-similarities-with-oop-6d200f34656
Another post that's very similar to "What's So Great About Redux?". with thoughts on the overall benefits of Redux and some potential disadvantages in relation to use of TypeScript. Some good discussion in the comments, too.

- **6 mistakes Reacters make that Re-framers avoid**
https://purelyfunctional.tv/article/react-vs-re-frame/
https://news.ycombinator.com/item?id=15157527
Expand Down Expand Up @@ -267,9 +275,28 @@ similar structures in ClojureScript.
https://news.ycombinator.com/item?id=15344447
A long subthread of the "React 16" announcement post that discusses several aspects of Redux "boilerplate" and abstraction. I answered a lot of questions about how Redux can and should be used, and there were actually some excellent comments about how Redux usage pays off for long-term app maintainability.

- **How Redux can make you a better developer**
https://medium.cobeisfresh.com/how-redux-can-make-you-a-better-developer-30a094d5e3ec
https://www.reddit.com/r/javascript/comments/7buksy/how_redux_can_make_you_a_better_developer/ A blog post recapping aspects of functional programming and immutability in JS and Redux. The Reddit thread has some excellent discussion on pros and cons of using Redux and how it has benefited people.



#### React's PATENTS License

##### License Change to MIT

- **Relicensing React, Jest, Flow, and Immutable.js**
https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/
Facebook's announcement that React and other projects are now using the MIT license

- **4 Lessons from the 'React Patent License' Controversy**
https://hackernoon.com/4-lessons-from-the-react-patent-license-controversy-3da3c4baf3a4
Some reactions to the MIT license change, and thoughts on how it affects React.



##### Prior Patents Discussion

- **Facebook Open Source License FAQ**
https://code.facebook.com/pages/850928938376556
Official answers to questions about the meanings of license phrasing
Expand Down Expand Up @@ -311,9 +338,6 @@ similar structures in ClojureScript.
https://www.reddit.com/r/programming/comments/6nnxir/apache_foundation_bans_use_of_facebook_bsdpatents/dkb3v4p/?context=3
One of the best layman's summaries I've seen about what the patents file actually means and is intended to do.




- **Further discussions**
https://news.ycombinator.com/item?id=12108273
https://news.ycombinator.com/item?id=12108526
Expand Down
6 changes: 5 additions & 1 deletion react-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -277,4 +277,8 @@

- **Three Example React Stacks**
http://andrewhfarmer.com/three-example-react-stacks/
Descriptions of three different application/deployment scenarios, and example React library+tool stacks that would be appropriate for each.
Descriptions of three different application/deployment scenarios, and example React library+tool stacks that would be appropriate for each.

- **Reusable Web Application Strategies: three patterns for running the same app in multiple spots**
https://medium.freecodecamp.org/reusable-web-application-strategies-d51517ea68c8
Looks at how to run an app in reusable ways via iframes, reusable app components, and reusable UI components.
16 changes: 15 additions & 1 deletion react-component-composition.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,15 @@
https://reactrocket.com/post/turn-your-hocs-into-render-prop-components/
Gives examples of how to adapt HOCs for use with the render props pattern.

- **Use a Render Prop!**
https://cdb.reacttraining.com/use-a-render-prop-50de598f11ce
https://news.ycombinator.com/item?id=15651808
Michael Jackson describes why he gave his "Never Write Another HOC" talk, looks at some of the problems with both mixins and HOCs, and how render props can help solve those. There's some related discussion in the HN comments.

- **How to give rendering control to users with prop getters**
https://blog.kentcdodds.com/how-to-give-rendering-control-to-users-with-prop-getters-549eaef76acf
Kent C Dodds describes how "prop getter" functions can be used with render props to provide more control over how rendering behavior is hooked together.


#### Functional Composition

Expand Down Expand Up @@ -164,6 +173,10 @@
https://medium.com/@giuseppemaggiore/a-react-journey-from-vanilla-to-type-safe-to-monadic-41beaa386910
Demonstrates adding TypeScript to a JS React app for type-checking, then using a specialized library called Monadic-React to perform complex and type-safe composition of React components and logic.

- **Using Recompose to build higher-order components**
https://blog.bigbinary.com/2017/09/12/using-recompose-to-build-higher-order-components.html
Examples of refactoring components using the Recompose library, including use of `branch` and `compose`.


#### Comparing Composition Approaches

Expand Down Expand Up @@ -194,4 +207,5 @@

- **Randomness in React Props**
https://medium.com/@joshuawcomeau/randomness-in-react-props-3929c1669f8b
Demonstrates several approaches to structuring logic for generating values and passing them to children, including initialization in a constructor, creating a wrapper component, and using a function-as-a-child.
Demonstrates several approaches to structuring logic for generating values and passing them to children, including initialization in a constructor, creating a wrapper component, and using a function-as-a-child.

12 changes: 12 additions & 0 deletions react-component-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@
https://medium.com/gitconnected/react-component-patterns-ab1f09be2c82
A summary of common React component patterns with short examples.

- **10 React mini-patterns**
https://hackernoon.com/10-react-mini-patterns-c1da92f068c5
Ten useful patterns for working with React components, including data flow, techniques for working with inputs, controlling CSS usage, switching between components, and more.


#### Component Definition Approach Comparisons

Expand Down Expand Up @@ -295,6 +299,10 @@
https://medium.com/@guigonc/refactoring-moving-api-calls-to-a-higher-order-component-53062c086cb
Shows how to progressively refactor fetching logic out of a component and move it into a parent component, then make that parent component reusable.

- **The React + Redux Container Pattern**
https://dev.to/sophiedebenedetto/the-react--redux-container-pattern-bmk
An excellent explanation of what "container components" and "presentational components" are, with discussion of how they fit together and a good sample project implementing the ideas.




Expand Down Expand Up @@ -418,6 +426,10 @@
- **Good React Modals**
https://medium.com/@elsdoerfer/good-react-modals-548cd9c2f7f4
Covers ways to handle issues with modal content not being rendered while doing animations, and side-loading data for a modal while maintaining a loading indicator.

- **Using a React 16 Portal to do something cool**
https://hackernoon.com/using-a-react-16-portal-to-do-something-cool-2a2d627b0202
Demonstrates using React 16's `createPortal` API to control a separate browser window from the original React component tree.


#### Other Component Patterns
Expand Down
4 changes: 4 additions & 0 deletions react-implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@
https://medium.com/@asolove/preact-internals-2-the-component-model-36a05e32957b
https://medium.com/@asolove/preact-internals-3-some-fiddly-little-bits-f353b1ad7abc
A 3-part series that dives into the implementation and concepts of the Preact library codebase.

- **An Interview with the React Team About Wordpress and Project Gutenberg**
https://wpcouple.com/interview-react-team-facebook-wordpress-gutenberg/
A Wordpress community site interviews Dan Abramov, Andrew Clark, and Sophie Alpert about a variety of topics, including how they prioritize features, how React is tested, dealing with breaking changes, downsides of React, and aspects of Wordpress using React for its "Project Gutenberg" tool.


#### React Fiber
Expand Down
18 changes: 17 additions & 1 deletion react-native.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@
- **Offline-First Apps with React Native and Redux**
http://rationalappdev.com/offline-first-apps-with-react-native-and-redux/
A tutorial that builds out a cat GIF app using React Native, Redux, Node, and Express, and includes offline support.

- **Let's Build: Cryptocurrency Native Mobile App with React Native + Redux**
https://medium.com/react-native-training/bitcoin-ripple-ethereum-price-checker-with-react-native-redux-e9d076037092
https://medium.com/@wesharehoodies/tutorial-react-native-redux-native-mobile-app-for-tracking-cryptocurrency-bitcoin-litecoin-810850cf8acc
https://medium.com/@wesharehoodies/learn-how-to-build-a-rn-redux-cryptocurrency-app-chapter-iii-a454dda156b
https://medium.com/@wesharehoodies/learn-how-to-build-a-rn-redux-cryptocurrency-app-chapter-iv-b0e0c5ca2dca
A 4-part tutorial series that shows how to set up a React Native project, add Redux, fetch data with Redux, and display that data with React.


#### Specific aspects
Expand Down Expand Up @@ -87,4 +94,13 @@

- **How we restructured our app with React-Navigation**
https://m.oursky.com/how-we-restructured-our-app-with-react-navigation-98a89e219c26
Describes some of the history of the React-Navigation library, and shows some examples of how to use it with Redux and make a Higher-Order Component to work with it.
Describes some of the history of the React-Navigation library, and shows some examples of how to use it with Redux and make a Higher-Order Component to work with it.

- **A comprehensive guide for integrating React-Navigation with Redux including authentication flow**
https://medium.com/@shubhnik/a-comprehensive-guide-for-integrating-react-navigation-with-redux-including-authentication-flow-cb7b90611adf
An extended tutorial that demonstrates connecting React-Navigation and Redux, and shows how to implement an authentication workflow.

- **A Year of React Native: Styling**
https://madebymany.com/stories/a-year-of-react-native-styling-part-1
https://madebymany.com/stories/a-year-of-react-native-styling-part-2
Looks at ways that styling in RN differs from styling on the web, and useful patterns for organizing styling logic in RN apps.
4 changes: 4 additions & 0 deletions react-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,10 @@ Also see [Webpack Advanced Techniques](./webpack-advanced-techniques.md)
https://medium.com/@darioghilardi/what-profiling-a-universal-react-redux-app-revealed-c5cc4986353c
Discusses using the Chrome DevTools to debug and do CPU profiling of a Node server process that was doing server-side rendering of a React app.

- **Performance-tuning a React application**
https://medium.com/@joshuawcomeau/performance-tuning-a-react-application-f480f46dc1a2
An excellent case study on improving load time for a small React+Redux app. Describes use of gzipping, image cropping, lazy loading, and more.


#### Immutable Data

Expand Down
6 changes: 5 additions & 1 deletion react-redux-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -352,4 +352,8 @@

- **Write tests. Not too many. Mostly integration.**
https://blog.kentcdodds.com/write-tests-not-too-many-mostly-integration-5e8c7fff591c
Some short thoughts on the value of different kinds of tests, with extensive discussion in the comments.
Some short thoughts on the value of different kinds of tests, with extensive discussion in the comments.

- **Stubbing HTTP Reqeusts with Sinon**
http://mherman.org/blog/2017/11/06/stubbing-http-requests-with-sinon/
An extensive tutorial that discusses the benefits of stubbing behavior in tests, setting up Mocha+Chai+Sinon, and using Sinon's stub functions in integration and unit tests.
15 changes: 14 additions & 1 deletion react-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@
https://css-tricks.com/react-router-4/
A deep look at patterns and strategies for using React-Router v4 successfully.

- **Advanced React Router concepts: recursive path, code splitting, animated transitions, and more**
https://blog.logrocket.com/advanced-react-router-concepts-code-splitting-animated-transitions-scroll-restoration-recursive-17096c0cf9db
A tutorial that demonstrates how to implement a variety of useful features using React-Router v4.

- **React Router 4 Tutorial From Scratch**
https://appdividend.com/2017/09/12/react-router-tutorial-example-scratch/
A short tutorial demonstrating use of React Router v4


#### Routing with Redux

Expand Down Expand Up @@ -123,4 +131,9 @@

- **Preact Authentication Tutorial**
https://auth0.com/blog/preact-authentication-tutorial/
A tutorial that demonstrates how to build an app with Preact, including authentication, and makes some comparisons to doing so in React.
A tutorial that demonstrates how to build an app with Preact, including authentication, and makes some comparisons to doing so in React.

- **How to Implement Authentication for Your React App**
https://medium.appbase.io/how-to-implement-authentication-for-your-react-app-cf09eef3bb0b
https://medium.appbase.io/securing-a-react-web-app-with-server-side-authentication-1b7c7dc55c16
A pair of posts that demonstrate implementing both client-side and server-side authentication behavior for a React/Node app.
6 changes: 5 additions & 1 deletion react-server-rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,8 @@
- **Making CRA apps work with SSR**
https://medium.com/@zhirzh/making-cra-apps-work-with-ssr-part-1-8f5f813d510b
https://medium.com/@zhirzh/making-cra-apps-work-with-ssr-part-2-fb871868216e
A 2-part post that shows how to add SSR to an ejected CRA app, including use of Redux.
A 2-part post that shows how to add SSR to an ejected CRA app, including use of Redux.

- **You might (not) need a Server Side Rendering Framework**
https://adrienharnay.me/you-might-not-need-a-server-side-rendering-framework/
Discusses building a home-grown SSR setup using Webpack, rather than reusing something like Next.js.
4 changes: 4 additions & 0 deletions react-styling.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
https://github.com/FarhadG/ui-react
A free online book that teaches how to modular, extendable, and scalable component-based UIs. Covers best practices, and techniques like CSS preprocessors, CSS modules, inline styles, and more. Chapters available to read for free on Github, and the Leanpub book can be picked up for free as well.

- **All You Need To Know About CSS-in-JS**
https://medium.com/@wesharehoodies/all-you-need-to-know-about-css-in-js-984a72d48ebc
A clear summary of the differences between "inline styles" and "CSS-in-JS", the pros and cons of using CSS-in-JS, and quick examples of using some of the most popular CSS-in-JS libraries.


#### Components and Styling

Expand Down
Loading

0 comments on commit 68af57f

Please sign in to comment.