Recently we had an excellent talk from Fred George. I very much enjoyed the unconventional start to the talk. As it was unplanned he started with a question to the audience which was ‘what would you like me to talk about’. My favourite most meta question was from one of the cohort below ours. 'What is the answer to the question I don’t yet know how to ask?’. It turns out the answer to that question was clojure. The other topics covered everything from advice for people starting out to what are you top three languages. Unfortunately I can’t remember the answers but I think Smalltalk was included.
When certain developers talk about small-talk it reminds me of oceans 11 or 13. 'You should know better you shook Sinatra’s hand’. There is an understanding among Smalltalk developers
As the title suggest microservices most caught my attention.
What is a microservice?
It is an extension of the idea of separating code that starts with OOP and MVC. With cheap accessible servers available through providers like Heroku code can be disassembled into separately deployable apps. Depending on context these apps can though various api’s. Micro-services are something that can be half followed and this is a good article explains all the features that make a system a true micro-service.
what are the benefits?
- Each service can be a different technology stack and the most appropriate for that task can be chosen
- Services can more easily be migrated to new technologies as only one part at a time need to be upgraded
- Small services perform one task only and perform it well and are simpler to understand
what are the costs?
- Requires low network latency
- Others I have yet to discover
Initially is seamed to me that there would always need to be some level of controller. Next day Fred was back in the office, probably to work, so thanks for more of his time which he took to answer all the questions I had.
It is possible to eliminate the controller entirely. For example to break a webpage to microservices separate Javascript files can import content for different services and display them in designated areas of the page. At no point does knowledge need to be shared amongst the code.
For our final project I have developed a microservice to serve a users CV from github. It provides the Javascript it needs and can be used by incorporating one target element and one script tag