f.strazzullo@ideato.it
@TheStrazz86
https://github.com/francesco-strazzullo
https://medium.com/@TheStrazz86
https://slides.com/francescostrazzullo
Welcome changing requirements, even late in
development
Welcome changing requirements, even late in
development
Welcome changing requirements, even late in
development
...architectures should be driven by the underlying technical requirements of the system, rather than speculative planning for a future that may change.
Thoughtworks Technology Radar
Essentially it means accepting now that in a few years time you'll (hopefully) need to throw away what you're currently building.
Martin Fowler
duplication is far cheaper than the wrong abstraction
Sandi Metz
(Maybe next time)
export default (param) => {
console.log(param);
};
import logger from './logger';
class DummyButton extends React.Component {
render() {
return (
<div onClick={() => {logger('This is a Value!'}}>
Click Me Bro!
</div>
);
}
}
import EventBus from 'EventBus';
class DummyButton extends React.Component {
onButtonClick() {
EventBus.dispatch('SOMETHING_HAPPENED','This is a Value!');
}
render() {
return (
<div onClick={() => {onButtonClick()}}>
Click Me Bro!
</div>
);
}
}
import EventBus from 'EventBus';
export default {
init:{
EventBus.on('SOMETHING_HAPPENED',(param) => {
console.log(param);
});
}
};
app.factory('getUsers',['$http',function($http){
return $http.get('api/v1/users');
});
app.controller('home',[
'$scope',
'getUsers',
function(
$scope,
getUsers){
getUsers().then(function(response){
$scope.users = response.data;
});
}]);
export default () => {
return fetch('api/v1/users').then(function (response) {
return response.json();
});
};
import getUsers from './getUsers';
app.controller('home',[
'$scope',
function(
$scope){
getUsers().then(function(users){
$scope.users = users;
});
}]);
Martin Fowler
Sacrificial Architecture, sometimes it’s the fastest way to learn things