SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
Simplicity
Compose modern apps with
efficient practices & tools
1
Rui	
  Carvalho
@rhwy	
  ::	
  rui.fr
About
Development,	
  architecture,	
  	
  
Coaching,	
  Training,	
  Teaching	
  
http://twitter.com/rhwy
http://github.com/rhwy
http://www.rui.fr
http://rui.io
http://www.codedistillers.com
Groups
Write
Work?
2
Func1onal	
  
Programming	
  
in	
  F#
NCRAFTS
organizer	
  of	
  the	
  conference
Pragmatic Web
(no)	
  Frameworks
Tools Patterns
3
Practices
Get the Control back!
Less Pain
4
Background
“Should I really care?”
5
6
Complexity is
everywhere
and making things simple is hard!
7
-1-
8
‘‘The Domain Problem’’
9
10
“ humans need to talk more”
Wrong models cause massive
accidental complexity
Greg Young
11
Customer needs ‘Foo’
12
…You think schema ‘Bar’
13
Don’t think schema too hard…
14
There is no good
but some of them are useful
15
{ Model | Architecture | persistance }
maybe partially
maybe aggregated
but surely in an unique context
16
17
-2-
18
‘’Over Engineered ?’’
19
‘‘The Architecture Problem’’
‘‘you MUST decouple your ugly
monolithic app in LAYERS’’
20
(evil said)
21
22
arg…
Hexagonal, Onion?
23
Yes!
24
Concrete
Application?
25
((You/Me/Them)
misunderstood
Fail
26
27
“Architecture is about an intent, it’s not
about a technical framework”
28
“Architecture is the
art of taking
decisions lately”
29
“Templates, patterns, scaffolding
don’t solve anything”
they are just tools to start faster
30
Avoid dependencies
Use abstractions
Use right naming
31
-3-
32
33
‘’what about design?’’
34
Are You Simple enough?
Solving the wrong problem
- it may happened -
35
36
« It should go faster ! »
37
« Let’s take a more modern engine!… »
all that matters!
Bad Understanding
Poor design
No design
Bad technology locking
38
} Generates
Complexity !
-4-
39
‘’please, help’’
40
‘’What about tools?’’
1-1
Frameworks?
41
… And Libraries
Frameworks?
42
Frameworks	
  ?
43
A framework
>> it calls you
44
45
YOU Call
a Library
OSS ?
oss projects -most of the time-
fit real user needs
tiny oss libraries usually fit one need, but do it well.
46
1
11
Get the shell
back!
47
Curl
Everything	
  you	
  need	
  to	
  test	
  your	
  app	
  is	
  here!
-­‐X	
  [GET|POST…]	
  
-­‐I	
  (include	
  headers)	
  
-­‐d	
  key=value
48
Nuget
Package	
  management	
  is	
  essenPal
Enterprise	
  grade	
  =>	
  build	
  your	
  own
Quite	
  mulP-­‐plaTorm
49
Nuget	
  
curl	
  hUp://nuget.org/nuget.exe	
  -­‐L	
  -­‐k	
  -­‐o	
  nuget.exe
#!/bin/sh	
  
PATH=/usr/local/bin:$PATH	
  
mono	
  -­‐-­‐run1me=v4.0	
  /usr/local/bin/NuGet.exe	
  $*
(for	
  Mac	
  lovers)
50
Chocolatey
@powershell	
  -­‐NoProfile	
  -­‐ExecutionPolicy	
  unrestricted	
  
-­‐Command	
  "iex	
  ((new-­‐object	
  
net.webclient).DownloadString('http://bit.ly/
psChocInstall'))"	
  &&	
  SET	
  PATH=%PATH%;%systemdrive%
chocolateybin
(nuget	
  powered)
>	
  Cinst	
  ruby	
  
51
Nano
«	
  just	
  enough	
  editing	
  capabilities	
  in	
  the	
  shell	
  »
>	
  Cinst	
  nano	
  
52
Gulp/Fake/Bau
«	
  Simple	
  taks	
  based	
  build	
  tools,	
  on	
  your	
  language!	
  »
53
54
55
1
12
See it live!
If you don’t see it live, then it may be dead
56
Glimpse
“Firebug	
  for	
  asp.net”
57
Chrome	
  dev	
  tools
58
Editors
Chose	
  a	
  good	
  tool	
  also	
  for	
  the	
  client	
  side!
Webstorm
59
Online	
  web	
  editors
C9.io
Jsfiddle.com Jsbin.net Plnkr.co Codepen.io
60
61
1
33
Efficient Libs
Do More for Less
jQuery
62
jQuery
63
Angular
Html	
  enhanced	
  for	
  web	
  apps!
64
Angular
Dependency 	
  
Injection
TESTS TDD
Mocks
MVC
Two-way
Data-binding
Templates
…more than that!
65
66
Less	
  css
dotLess	
  for	
  .Net
67
68
1
4
Polyglot over
patterns
and other convention over configuration beauties
Be	
  PolyGlot!
69
Nancy	
  fx
70
Install	
  
PM> Install-Package Nancy	
  
!
!
Write	
  
public class SampleModule : Nancy.NancyModule	
  
{	
  
public SampleModule()	
  
{	
  
Get["/"] = _ => "Hello World!";	
  
}	
  
}	
  
!
!
!
Go!
71
ORM	
  Light
|| MASSIVE
|| DAPPER
72
SignalR
(Socket.io	
  like	
  framework	
  for	
  .Net)
73
So what?
74
75
Simplicity?
What problem are trying to solve?
Always!
76
Avoid coupling
everywhere, from classes to libraries
77
Be Consistent
Readability, Rules, Conventions
78
“if you don’t love it, it gonna fail!”
“stay foolish, stay hungry”
Jobs
79
Get	
  more	
  
Fun
80
All sketches are by me – with the
help of the fabulous iPad application
Paper by 53 – and can be reused under
The creative commons licence
81
@rhwy

Weitere ähnliche Inhalte

Ähnlich wie Simplicity 2.0 - Get the power back

Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
libsys
 
[Mas 500] Intro to Programming
[Mas 500] Intro to Programming[Mas 500] Intro to Programming
[Mas 500] Intro to Programming
rahulbot
 

Ähnlich wie Simplicity 2.0 - Get the power back (20)

Simplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and toolsSimplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and tools
 
Security module for php7 – Killing bugclasses and virtual-patching the rest! ...
Security module for php7 – Killing bugclasses and virtual-patching the rest! ...Security module for php7 – Killing bugclasses and virtual-patching the rest! ...
Security module for php7 – Killing bugclasses and virtual-patching the rest! ...
 
New Jersey Red Hat Users Group Presentation: Provisioning anywhere
New Jersey Red Hat Users Group Presentation: Provisioning anywhereNew Jersey Red Hat Users Group Presentation: Provisioning anywhere
New Jersey Red Hat Users Group Presentation: Provisioning anywhere
 
Building an Empire with PowerShell
Building an Empire with PowerShellBuilding an Empire with PowerShell
Building an Empire with PowerShell
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?
 
Building SuperComputers @ Home
Building SuperComputers @ HomeBuilding SuperComputers @ Home
Building SuperComputers @ Home
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
MIPS-X
MIPS-XMIPS-X
MIPS-X
 
The 3 Things Every New Development Team Needs (and what to avoid like the pla...
The 3 Things Every New Development Team Needs (and what to avoid like the pla...The 3 Things Every New Development Team Needs (and what to avoid like the pla...
The 3 Things Every New Development Team Needs (and what to avoid like the pla...
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
 
Becoming A Php Ninja
Becoming A Php NinjaBecoming A Php Ninja
Becoming A Php Ninja
 
There and Back Again (My DevOps journey) - DevOps Days Copenhagen 2018
There and Back Again (My DevOps journey) - DevOps Days Copenhagen 2018There and Back Again (My DevOps journey) - DevOps Days Copenhagen 2018
There and Back Again (My DevOps journey) - DevOps Days Copenhagen 2018
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
 
DEF CON 23 - Rich Kelley - harness powershell weaponization made easy
DEF CON 23 - Rich Kelley - harness powershell weaponization made easyDEF CON 23 - Rich Kelley - harness powershell weaponization made easy
DEF CON 23 - Rich Kelley - harness powershell weaponization made easy
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large Enterprises
 
[Mas 500] Intro to Programming
[Mas 500] Intro to Programming[Mas 500] Intro to Programming
[Mas 500] Intro to Programming
 

Mehr von Rui Carvalho

Mehr von Rui Carvalho (14)

Agile Feedback Loops
Agile Feedback LoopsAgile Feedback Loops
Agile Feedback Loops
 
NewCrafts 2017 Conference Opening
NewCrafts 2017 Conference OpeningNewCrafts 2017 Conference Opening
NewCrafts 2017 Conference Opening
 
Cqrs Ignite
Cqrs IgniteCqrs Ignite
Cqrs Ignite
 
AltNet fr talks #2016.11 - news
AltNet fr talks #2016.11 - newsAltNet fr talks #2016.11 - news
AltNet fr talks #2016.11 - news
 
Patience, the art of taking his time
Patience, the art of taking his timePatience, the art of taking his time
Patience, the art of taking his time
 
Ncrafts 2016 opening notes
Ncrafts 2016 opening notesNcrafts 2016 opening notes
Ncrafts 2016 opening notes
 
Code Cooking
Code Cooking Code Cooking
Code Cooking
 
Clean up your code with C#6
Clean up your code with C#6Clean up your code with C#6
Clean up your code with C#6
 
Feedback Loops v4x3 Lightening
Feedback Loops v4x3 Lightening Feedback Loops v4x3 Lightening
Feedback Loops v4x3 Lightening
 
Feedback Loops...to infinity, and beyond!
Feedback Loops...to infinity, and beyond!Feedback Loops...to infinity, and beyond!
Feedback Loops...to infinity, and beyond!
 
Simple Code
Simple CodeSimple Code
Simple Code
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
My Git workflow
My Git workflowMy Git workflow
My Git workflow
 
.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?
 

Kürzlich hochgeladen

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Simplicity 2.0 - Get the power back