Encapsulation in Redux: the Right Way to Write Reusable Components |
Redux is one of the most discussed JavaScript front-end technologies. It has defined few paradigms that vastly improve developer efficiency and give us a solid foundation for building apps in a simple yet robust way. No framework is perfect though, and even Redux has its drawbacks.
Redux has the special
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/Pw0JfrLHuXw/
|
The Human Brain is a Vital Front-End Component |
It was around 2011 and I was working for a small company with the ambitious goal of building the world's sexiest cloud CRM product. To build a great product, you need great technologies. Fortunately, one of my colleagues was a tech maven who tried hard to stay on top of
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/0CmtDOabkMs/
|
Fine-Tuning AirBnB's ESLint Config |
ESLint was launched in June 2013 and has rapidly become the most popular JavaScript linter. It offers a number of advantages over other linters including fine-grained, configurable rules and plugin support. This flexibility can also be a weakness, however, as you can easily get lost in the multitude of options.
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/E96awfihiKo/
|
Flux: Reduce Your Side Effects |
(Note: we're using "reduce" strictly in the computer science sense in this article, lest anyone be confused.)
Flux is awesome but there are still numerous open questions. One of the toughest, which everyone has to face sooner or later is: where do API calls belong?
I am not really sure
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/5RKibzR32SA/
Метки: matthew@salsitasoft.com |
Library of The Month: merge2 |
First a bit of administrivia: we've decided to move to a monthly pace for our periodic looks at interesting JavaScript libraries, so from now on this series will be entitled... wait for it... "Library of the Month".
With that in mind, let's take a closer look this month at the
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/um1HXh5z3wY/
|
Flux: No More Stores, Meet Reducer |
Flux has been with us for a while, and there are now countless frameworks based on the architecture. Some of them are just "syntactic sugar" while others depart significantly from the original idea. Personally I have never been a fan of any framework based on the Flux architecture, as its
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/kDJPFdx1jDI/
|
Library of The Week: Egg.js |
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/aJ8Jl9Xt1rw/
|
So Remind Me Again, Why Do We Need the npm Registry? |
While working on Supercomments, I regularly came across third-party Node.js packages whose version in the npm registry was not the one I wanted. In most cases this was because the maintainer hadn't updated the version for a while, although in at least one instance it was because the code
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/2269awfoQe0/
|
Library of The Week: Humane.js |
Having covered Vex and SweetAlert, this week's topic is yet another notification library: Humane.js. Humane has a slightly different purpose from the other two, which are relatively similar to each other. Whereas Vex and SweetAlert create modal dialogs, Humane is focused on non-blocking notifications similar to classic desktop notifications.
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/75eyxSYH1ks/
Метки: matthew@salsitasoft.com |
Library of The Week: Jailed |
In the JavaScript world there is broad consensus about how to describe and exchange data: JSON. But some classes of application need more. In particular, you may need to describe and exchange behavior as well as data.
It isn't easy to find a simple real-world example because you tend to
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/jCpvi10slVE/
|
Library of The Week: SweetAlert |
I have already written about Vex, a library for creating modal dialogs. This week let's take a look at SweetAlert, which is very similar to Vex.
SweetAlert bills itself as "a beautiful replacement for JavaScript's 'alert'", but the word "alert" in this statement is a bit misleading. For me, an
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/fjZ4CVYBbGg/
|
Library of The Week: Highland.js |
A few weeks ago, writing about the increasingly obsolete Async.js, I promised to talk about Highland.js. This library is by Caolan McMahon, who also wrote Async.js, and can be considered its successor.
Highland can be used as an alternative to promises for handling asynchronous actions, but its
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/c4rG6v7hTMY/
|
Library of The Week: spin.js |
The spinning throbber is a standard UI element displayed on many websites when waiting for Ajax responses or other long-running operations. For a design-heavy marketing website, your graphic designer will probably tailor a fancy custom loading indicator. In other cases, a stock component is good enough.
One solution is use
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/gGrw50-ZdB8/
|
Library of the Week: Autosize |
Among other things, good user interface design means choosing the right size for form elements. Make a textarea
too small, and the user won't have an overview of the text they are entering. It is especially hard to navigate around the text and modify it in this case. On the
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/3KOdbw0ryEM/
|
Library of The Week: Packery |
Arranging differently sized items in a grid has been always a challenge. This is especially true if you want column-based layout because document flow is inherently row-oriented. There is promising solution that uses pure CSS: Flexbox. The only problem is that it only works in modern browsers. To support older
http://feedproxy.google.com/~r/justdiscourse/browsing/~3/SBTHLobzEHM/
|