Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Breaking the programming community silos for the greater good

Breaking the programming community silos for the greater good

How JavaScript has evolved from an ugly language allowing creepy animations inside the browser to a solid and structured, one of the most widespread language, running everywhere?

Simply by importing the best practices from other languages, unit testing, type checking, solid object-oriented programming, as well as new paradigms like functional programming.

Nowadays, the JavaScript community is spreading these principles and best practices back to other languages and development environments, showing that there should be nothing like competition or judgement between communities but only contributions... for the greater good.

Nicolas Cuillery

January 10, 2019
Tweet

More Decks by Nicolas Cuillery

Other Decks in Programming

Transcript

  1. Consulting Performance - Studies - Audit - Prototyping - Technology

    watch Realization Business analysis and design - Software architecture - Development and testing - Deployment Training Inter / intra company schedule - Customized cycle / tailored - Specific coaching 3 https://www.zenika.ca
  2. WHAT IF I TOLD YOU... All developers use a dedicated

    social network on a daily basis 5
  3. WHAT IF I TOLD YOU... All developers use a dedicated

    social network on a daily basis 6
  4. MEETUPS ⊗ After-work talks (1, 2 or 3 speakers) ⊗

    Less formal than conferences ⊗ Free PHP: 2,083 Meetups in 781 cities, 93 countries https://www.meetup.com 8
  5. COMMUNITIES ⊗ Language communities ⊚ PHP, Java, C# ⊗ Best

    practices communities ⊚ Agile, craftmanship ⊗ Others ⊚ Android, MySQL, ... 10
  6. COMMUNITIES ⊗ Language communities ⊚ PHP, Java, C# ⊗ Best

    practices communities ⊚ Agile, craftmanship ⊗ Others ⊚ Android, MySQL, ... 11
  7. 12 '3' - 1 // --> 2 '3' + 1

    // --> '31' typeof NaN // --> 'number' https://wtfjs.com
  8. COFFEESCRIPT 14 Example: adding “n” to all items in the

    array “nums” addToAll = (n, nums) -> for i in nums i + n
  9. 15 doStuff = (scope) -> for k, v of ngOnboardingDefaults

    if curStep[k] == undefined scope[k] = v for k, v of curStep scope[k] = v doSomethingElse()
  10. 16 doStuff = (scope) -> for k, v of ngOnboardingDefaults

    if curStep[k] == undefined scope[k] = v for k, v of curStep scope[k] = v doSomethingElse() # Out of doStuff (╯°□°)╯︵ ┻━┻
  11. 17

  12. SOLID principles ⊗ Single responsibility ⊗ Open-closed ⊗ Liskov substitution

    ⊗ Interface segregation ⊗ Dependency inversion 23
  13. AngularJS ⊗ MVC pattern ⊗ Bi-directional binding ⊗ Unit testing

    ⊗ Dependency injection 24 angular .module('App') .controller('InvoiceCtrl', function($scope, $http) { ... }
  14. 26

  15. 29