Designing for the future Architecting code and systems
- Slides: 27
Designing for the future Architecting code and systems with long-term growth and development in mind Brian Belhumeur Front End Developer, craigslist. org Twitter: @JSArtisan
The most important thing: Meet your users’ needs
Consistency “CRAIG, STOP SCREWING WITH THE FORMAT! YOU IDIOTS CAN'T LEAVE WELL ENOUGH ALONE? ” - CL User Twitter: @JSArtisan
Twitter: @JSArtisan
Program with the programmer in mind ● Comments should explain the purpose of your code USEFUL USELESS Twitter: @JSArtisan
Program with the programmer in mind ● Clarity > tiny bit of efficiency Number(item) vs. +item Boolean(flag) vs. !!flag String(thing) vs. “” + thing ● Weed the garden ● Red diffs ● Read “The Two Pillars of Java. Script” by Eric Elliott Twitter: @JSArtisan
Modularity is a MUST ● Adaptability ● Optimized loading ● Isomorphism ● Testing ● Wide range of implementations Twitter: @JSArtisan
Quasi-Modularity encapsulate expose module interface pass in anything needed from outside scope Twitter: @JSArtisan
Quasi-Modularity Twitter: @JSArtisan
Modularity is a MUST Modularize based on volatility - what’s likely to change O’Reilly webcast: “Zen of Software Architecture” Twitter: @JSArtisan
Computers are smart 2015 2046? Twitter: @JSArtisan
Let machines do what they do best Use templates } Use a build system EJS Twitter: @JSArtisan
Test “wings”: You need just the right size and shape to fly Probability of bug x Cost of bug > Cost of writing, maintaining and running the test? Twitter: @JSArtisan
Growth & Scaling $$$$ $ $$ Twitter: @JSArtisan
Growth & Scaling ● Caching ● Project growth curve and upgrade 12 -18 months out ● Think globally and massive ● Unicode Twitter: @JSArtisan
Growth & Scaling Some things that vary internationally… ● $ vs £ vs € ● 1, 000. 00 vs 1. 000, 00 ● 4: 00 PM vs 16: 00 ● Time zone ● First day of the week ● Pluralization ● Gendered language ● Did you know? vs ¿Sabías? ● Standard vs metric, etc Twitter: @JSArtisan
Growth & Scaling ● Expanding audience ● Changing product scope ● Keep high quality users, drop low quality users ● Build your tools! Twitter: @JSArtisan
Improving user experience Faster is always better. Twitter: @JSArtisan
Improving user experience Twitter: @JSArtisan
Improving user experience Iterative development 1. Make it work (prototype) 2. Make it work right (debug) 3. Make it fast (optimize) 4. Make it pretty (polish) 5. Let it go! (release) Twitter: @JSArtisan
Improving user experience Users want it. . . ● Easier ● More efficient ● Better? ? ? Twitter: @JSArtisan
But what are they actually doing with your product? ● Log parsing ● Analytics ● Real User Measurement ● Social media feedback ● Direct feedback Twitter: @JSArtisan
Users’ expectations change over time ● “Googlization”: Users have been trained not to provide context ● Sharing via all manner of social network ● Maps and location awareness ● Incremental refinement Twitter: @JSArtisan
Users’ expectations change over time Twitter: @JSArtisan
Users’ expectations change over time View modes LOTS of filters Twitter: @JSArtisan Saved searches
Resources Zen of Software Architecture webcast: http: //www. oreilly. com/pub/e/3281 The Two Pillars of Java. Script - Eric Elliott ● Prototypal inheritance https: //medium. com/javascript-scene/the-two-pillars-of-javascript-ee 6 f 3281 e 7 f 3 ● Functional programming https: //medium. com/javascript-scene/the-two-pillars-of-javascript-pt-2 functional-programming-a 63 aa 53 a 41 a 4 Internationalization ● http: //www. localeplanet. com/support/howto-localize-js. html ● https: //github. com/wikimedia/jquery. i 18 n ● http: //formatjs. io/ ● Pluralization http: //alistapart. com/article/pluralization-for-javascript Ilya Grigorik ● Critcal rendering path: https: //developers. google. com/web/fundamentals/performance/critical-renderingpath/index ● High Performance Browser Networking: http: //chimera. labs. oreilly. com/books/1230000000545 Twitter: @JSArtisan
Thanks! Brian Belhumeur Twitter: @JSArtisan
- Future continuous and future perfect examples
- Future continuous and future perfect
- Code commit code build code deploy
- "designing the future of urban farming," by ideo
- Designing embedded systems with pic microcontrollers
- Designing machine learning systems
- Designing device drivers for embedded systems
- Data memory
- Pic architecture diagram
- See future continuous
- Summary tenses
- Future plans and finished future actions
- Future perfect x
- Future continuous and future perfect objasnjenje
- Future perfect
- Tense chart for class 5
- Future nurse programme
- Past and present continuous
- Future plans present continuous
- Iso 22301 utbildning
- Typiska drag för en novell
- Nationell inriktning för artificiell intelligens
- Returpilarna
- Shingelfrisyren
- En lathund för arbete med kontinuitetshantering
- Adressändring ideell förening
- Tidböcker
- A gastrica