30 years of experience have not dulled the fascination Gil Tayar has with software development. From the olden days of DOS, to the contemporary world of Software Testing, Gil was, is, and
always will be, a software developer. He has in the past co-founded WebCollage, survived the bubble collapse of 2000, and worked on various big cloudy projects at Wix.
His current passion is figuring out how to test software, a passion which he has turned into his main job as Evangelist and Senior Architect at Applitools. He has religiously tested all his software, from the early days as a junior software developer to the current days at Applitools, where he develops tests for software that tests software, which is almost one meta layer too many for him.
In his private life, he is a dad to two lovely kids (and a cat), an avid reader of Science Fiction, (he counts Samuel Delany, Robert Silverberg, and Robert Heinlein as favorites) and a passionate film buff. (Stanley Kubrick, Lars Von Trier, David Cronenberg, anybody?)
Unfortunately for him, he hasn’t really answered the big question of his life – he still doesn’t know whether static languages or dynamic languages are best.
On December 2015, during an internal Wix Hackathon, we decided to rewrite our aging Micro-services infrastructure. This is our story. In this story, we will see how to build a modern infrastructure that enables you to deploy a self-servicing grid of computers on which micro-services can run and discover one another.
Will we see the best way to build a Micro-services infrastructure? No, but we will be seeing how easy it is to build using off the shelf components like Mesos, Node, and Nginx. Through describing the process of building one for a Hackathon, you will understand, in a more visceral way, what consists a Micro-services infrastructure, and what you will need to think about when you will build one: deployment, routing, service-discovery, load-balancing, RPC infrastructure, staging environments, and finally an admin tool that ties everything together.
Are you unfamiliar with NodeJS, and are curious to learn about this fascinating environment? Do you have the NodeJS basics, but would like to tighten your understanding and learn a little more? If so, then this workshop is for you. During the workshop you will learn the basics of Node.
You will learn about the unique asynchronous nature of Node, learn how to use callbacks, how to use APIs like the filesystem API, how to create node modules, and how to build web applications using express.
Since we are in 2017, you will also learn how to leverage ES2015 to make your code nicer and more concise, and to leverage Promises to make asynchronous programming bearable.
Given that I am a firm believer in testing your code, you will also learn about how to write tests in Node using Mocha – unit tests, integration tests, and end to end tests.
• Lesson #1 – Intro
o Synchronous programming
o Async programming
o The filesystem API
o Handling errors
o Modules and NPM
o Express Middleware
• Lesson #2 – ES2015
o Arrow functions and their use in Node
o Simplified object syntax
• Lesson #3 – Testing
o Mocha and Chai
o Async testing
o Unit testing
o Integration testing
o End to end testing
• DIY. In the DIY sessions, you will gradually build the server code for the classic TodoMVC application:
• Exercise #1 – Writing the db layer for the app
• Exercise #2 – Serving front-end code, and rewriting the db layer using promises
• Exercise #3 – Ajax handlers for the TodoMVC client code