I went to the SeattleJS Monthly Meetup in October- I’d never been to one of these before, but I have to say it was an excellent introduction. There were two very good talks about managing time – from using React to eliminate time as a way to bring the code you read and the state the user experiences closer together to using Moment.js to actually make sense out of date and time in Javascript. I’d normally make a time joke here, but it’s a little late for that.
Yeah, sorry. Anyway, the React talk was first. Ryan Florence of React Training gave a talk titled “Mind the Gap with React” – and used a theremin app, no less. My main takeaway was that using React to define state, you can skip a lot of “steps to reproduce” when fixing a bug, because you’ve made it so the code you read and the end user experience with the app are really close to each other – just get the state values which cause the error, plug them in as your default state, and your code and the end user experience are right there – the gap is tiny, the steps to reproduce are basically done automatically, and you can spend your time fixing instead of reproducing. Perhaps an alternate title would be “Make your SDETs like you with React?” – even to a relative React newbie like me, it was easy to follow and pretty neat.
Of course, right after a talk about eliminating time, we had a talk about manipulating time. This did not go unnoticed, let’s say. Maggie Pint gave an excellent talk on Moment.js (and then uploaded her slides afterwards – big thanks!) — the takeaway here is something every JS developer learned the first time they wrote new Date()
…that Date is bad. Moment is not. And it wasn’t just her opinion – when she polled the audience it felt like 90% or more raised their hand at “have you used Moment?”
Aside from a pretty interesting talk about the difference between time and date (calendar date, UTC vs local time, etc) I really appreciated the examples of what was different when trying to manipulate date versus asking Moment to do it. Moment does chaining, for one thing. moment.utc('2016-01-01').date(3).format();
will return a string 2016-01-03T00:00:00Z
… something pretty straightforward and logical to work with. I’m definitely keeping an eye on Moment’s Github.
All in all, a great start to going to SeattleJS meetups. I’ll definitely be back in November! 🙂