Openwest 2017
The Next Revolution in Software Engineering
Companies Treat Developers as cogs
Choose Subjects To Become Experts In
Developer Cogs Are Replaceable And Movable
Experts Are Hard To Replace
Join The Revolution
PostgreSQL
as a JSON store
PostgreSQL MongoDB
| Table | Collection |
| Row | Document |
| Column | Field |
| Secondary Index | Secondary Index |
| Joins | Embedded documents, linking, $lookup & $graphLookup |
| GROUP_BY | Aggregation Pipeline |
MongoDB PostgreSQL
| Rich Data Model | Yes | No |
| Dynamic Schema | Yes | No |
| Data Validation | Yes | Yes for relational data, but none for JSON |
| Typed Data | Yes | Yes |
| Data Locality | Yes | No |
| Field Updates | Yes | Yes for relational data, but limited for JSON |
| Easy for Programmers | Yes | No |
Conclusion:
Use the tool best fit for the job
PostgreSQL having a document store capability is nice but, in no way, does it replace MongoDB
https://www.mongodb.com/compare/mongodb-postgresql
Make Your Own React+Redux
I Focused On Learning About the Virtual DOM
virtual-dom
https://github.com/Matt-Esch/virtual-dom
Heavily inspired by React.js
virtual-dom is a collection of modules designed to provide a declarative way of representing the DOM for your app. So instead of updating the DOM when your application state changes, you simply create a virtual tree or VTree, which looks like the DOM state that you want. virtual-dom will then figure out how to make the DOM look like this efficiently without recreating all of the DOM nodes.
var h = require('virtual-dom/h');
var diff = require('virtual-dom/diff');
var patch = require('virtual-dom/patch');
var createElement = require('virtual-dom/create-element');
// 1: Create a function that declares what the DOM should look like
function render(count) {
return h('div', {
style: {
textAlign: 'center',
lineHeight: (100 + count) + 'px',
border: '1px solid red',
width: (100 + count) + 'px',
height: (100 + count) + 'px'
}
}, [String(count)]);
}
// 2: Initialise the document
var count = 0; // We need some app data. Here we just store a count.
var tree = render(count); // We need an initial tree
var rootNode = createElement(tree); // Create an initial root DOM node ...
document.body.appendChild(rootNode); // ... and it should be in the document
// 3: Wire up the update logic
setInterval(function () {
count++;
var newTree = render(count);
var patches = diff(tree, newTree);
rootNode = patch(rootNode, patches);
tree = newTree;
}, 1000);Openwest 2017
By James Brinkerhoff
Openwest 2017
- 587