programming for non-programmers · apps & applications ... • “document driven...

24
Programming for non-Programmers Nick Moore Mnemote Pty Ltd

Upload: others

Post on 11-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

Programming for non-Programmers!

Nick Moore Mnemote Pty Ltd!

Page 2: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

A whirlwind tour in three parts … 1. Architecture 2. Agility 3. Implementation

AGENDA! 2

Page 3: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

ARCHITECTURE!Programming for non-Programmers!

Page 4: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

4Architecture!

Very Fast … •  Billions of cycles / sec

•  Millions of bytes / sec

•  Thousands of writes / sec

but very dumb

•  Faces

•  Voices

•  Handwriting

•  “Do What I Mean”

Page 5: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

5Architecture!

•  Realistic targets •  … from business plan •  Minimum Viable Product

PERFORMANCE

Page 6: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

6Architecture!

•  Source code is not an asset! •  Divide and conquer

COMPONENTS

Page 7: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

7Architecture!

Front-end

Maps

Credit Cards

Back-end

Database Email

Message Queue

Offline

•  Front / Back •  Database •  Message

Queue •  External

Services

Page 8: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

8Architecture!

WEBSITES & WEBAPPS

•  Static HTML •  HTML Templates & Forms •  HTML5 & AJAX •  Single Page HTML5

Page 9: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

9Architecture!

APPS & APPLICATIONS

•  Native Apps (iOS, Android, Windows Phone) •  PC Applications (Windows, Mac, Linux) •  Hybrid & Mixed Approaches

Page 10: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

DISCUSSION: Technologies!

10 Programming for non-Programmers!

Page 11: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

AGILITY!Programming for non-Programmers!

Page 12: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

12 Agility! AGILE MANIFESTO

•  Individuals and Interactions over processes and tools

•  Working software over comprehensive documentation

•  Customer collaboration over contract negotiation

•  Responding to change over following a plan

Page 13: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

13 Agility!

The word “agile” has been subverted to the point where it is effectively meaningless

– Dave Thomas

AGILE DEVELOPMENT •  Sprints •  Phases •  User Stories •  Standup Meetings •  Index Cards

Page 14: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

14 Agility!

AGILE DEVELOPMENT •  Issue Tracking •  Revision Control •  Review •  Culture

Page 15: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

15 Agility!

DOCUMENTATION •  “Document Driven Development” •  User Stories •  Wireframes •  Requirements •  Specifications

Page 16: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

16 Agility!

TESTING & REGRESSIONS

•  Automated Tools •  Test Driven Development

Page 17: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

DISCUSSION: Projects!

17 INSERT CLASS TITLE!

Page 18: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

IMPLEMENTATION!Programming for non-Programmers!

Page 19: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

19 Implementation!

You can do

anything in any language. You can also eat soup with a knife

− Ville Vainio

•  Operating System •  Languages •  Databases •  Libraries

Page 20: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

20 Implementation!

FRAMEWORKS Python! Django, Tornado!

Ruby! Ruby on Rails!

Javascript! Node.js / Express, ASP …!

PHP! Laravel, …!

Java! Spring, JBoss, Grails, …!

Page 21: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

21 Implementation!

DATABASES

SQL: •  MS-SQL •  Postgres •  MySQL •  SQLite

NoSQL: •  MongoDB •  CouchDB •  Cassandra •  Redis

Page 22: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

22 Implementation!

AUTOMATION •  Configuration Management

Puppet / Ansible / Chef

•  Automate Everything

•  Backups!

Page 23: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

Q&A!

23 Programming for non-Programmers!

Page 24: Programming for non-Programmers · APPS & APPLICATIONS ... • “Document Driven Development” ... ! 16! TESTING & REGRESSIONS • Automated Tools • Test Driven Development. DISCUSSION:

24 References / Contact!

p12: Agile Manifesto http://agilemanifesto.org/ p13: Dave Thomas, co-author of the Agile Manifesto:http://pragdave.me/blog/2014/03/04/time-to-kill-agile/ p18: Ville Vainio on /r/programming:http://reddit.com/r/programming/comments/29syhg/farewell_nodejs/cioaq3o Contact: Nick Moore [email protected] http://mnemote.com/ http://nick.zoic.org/