Rolling Up Your Sleeves
-
Upload
djjackj -
Category
Technology
-
view
394 -
download
0
description
Transcript of Rolling Up Your Sleeves
source spring — jesse jack — [email protected] — 2013 CC licensed
Rolling Up Your [email protected]
www.thesourcespring.com
1
source spring — jesse jack — [email protected] — 2013 CC licensed
Class StructurePart 1 - Options: A whirlwind tour of languages and frameworks (30 mins)
Part 2 - Help: Getting development assistance and managing it (30 mins)
Part 3 - Scaling: Success is a risk (30 mins)
Part 4 - Q&A: Pick my brain (30 mins?)
2
source spring — jesse jack — [email protected] — 2013 CC licensed
Who Are You?Introduce yourself.
What experience in software development do you already have?
What are you hoping to get out of today?
4
source spring — jesse jack — [email protected] — 2013 CC licensed
OptionsA whirlwind tour of languages and frameworks
6
source spring — jesse jack — [email protected] — 2013 CC licensed
Architecture for client/server apps
7
source spring — jesse jack — [email protected] — 2013 CC licensed
LanguagesClient-side vs Server-side
Interpreted vs Compiled
8
source spring — jesse jack — [email protected] — 2013 CC licensed
LanguagesPerl
PHP
Javascript (client-side)
Node.js (server-side Javascript)
Java
Python
Ruby
C / C++ / Objective C
C#
9
source spring — jesse jack — [email protected] — 2013 CC licensed
Frameworks: terminologyWhat is a framework?
DRY (Don’t Repeat Yourself)
MVC (Model–View–Controller)
ORM (Object Relational Model)
Front Pattern (Routes)
10
source spring — jesse jack — [email protected] — 2013 CC licensed
Frameworks: server-sideRuby on Rails
PHP + Symphony
PHP + Wordpress
Python + Django
Node.js + Express.js
Java + Spring/Hibernate/EE/???
C# + .Net
11
source spring — jesse jack — [email protected] — 2013 CC licensed
Frameworks: client-sideJavascript + JQuery / Ember / Angular
Objective C + iOS SDK
Java + Android SDK
12
source spring — jesse jack — [email protected] — 2013 CC licensed
Frameworks: mobile hybridsHTML5 in a wrapper
PhoneGap
Titanium
Adobe AIR
13
source spring — jesse jack — [email protected] — 2013 CC licensed
DatabasesSQL
Postgres, MySQL, Oracle
NoSQL
Mongo, Couch, Cassandra
Keystore
Memcache, Redis
14
source spring — jesse jack — [email protected] — 2013 CC licensed
HostingBare Metal
Rack ’em up
Virtual Servers
Rackspace, Amazon
App Platforms
Heroku, Appfog, Railyard
15
source spring — jesse jack — [email protected] — 2013 CC licensed
ConsiderationsPerformance (Speed vs Latency)
Agility
Maintainability
Cost of ownership
Owning your platform
What you know
What you can learn
Where you can learn it from
Your developers’ knowledge
Ease of finding developers
16
source spring — jesse jack — [email protected] — 2013 CC licensed
HelpGetting development assistance and managing it
18
source spring — jesse jack — [email protected] — 2013 CC licensed
OptionsDIY
Technical Co-Founder
Hiring FTEs
Hiring Contractors
Outsourcing(NB: This may or may not mean offshoring)
Volunteers
Open Source
19
source spring — jesse jack — [email protected] — 2013 CC licensed
ConsiderationsWhat you can offer: cash vs equity
Your savviness
Your ability to manage
Need for agility (how much work can you do up front?)
20
source spring — jesse jack — [email protected] — 2013 CC licensed
AgreementsStatement of work
Intellectual property
Equity or cash
Warranty and maintenance
Handling disputes
Documentation
21
source spring — jesse jack — [email protected] — 2013 CC licensed
Finding DevelopersFriends, LinkedIn and Facebook
AngelList, GitHub
ODesk, Guru, VWorker, ELance
Head hunters
Craigslist
22
source spring — jesse jack — [email protected] — 2013 CC licensed
ProcessAgile / Scrum
The sprint cycle
Writing stories and documenting them
Velocity and points
Test Driven Development
Behavior Driven Development
23
source spring — jesse jack — [email protected] — 2013 CC licensed
Version ControlWhy?
SVN vs Git
Github, Mercurial, Bitbucket, Sourceforge
24
source spring — jesse jack — [email protected] — 2013 CC licensed
QAPainful: they will not do it all for you
Bug tracking
Automated testing
Continuous integration
25
source spring — jesse jack — [email protected] — 2013 CC licensed
Serving AssetsMinification
CDNs - Content Distribution Networks
28
source spring — jesse jack — [email protected] — 2013 CC licensed
CachesBrowser Caching
Page Caching
Fragment Caching
Data Caching (memory, Memcache, Redis)
In-database Caching
29
source spring — jesse jack — [email protected] — 2013 CC licensed
Background TasksWhy do now what you can do later?
30
source spring — jesse jack — [email protected] — 2013 CC licensed
More ConcurrencyRemember hosting?
Bare metal: add more servers behind a load balancer
Virtual servers: add more virtual servers behind a virtual load balancer
App platforms: press a button (in theory)
Failover
Geographic redundancy
Sticky Sessions
31
source spring — jesse jack — [email protected] — 2013 CC licensed
DatabaseAdd indices
(or remove them)
Find and optimize slow queries
Avoid the N+1 problem
Eager loading
Add databases:
Master and slave (and slave and slave)
Clusters
Vertical partitioning
Horizontal partitioning (sharding)
32
source spring — jesse jack — [email protected] — 2013 CC licensed
Case StudyInstagram
http://www.slideshare.net/iammutex/scaling-instagram
33
source spring — jesse jack — [email protected] — 2013 CC licensed
Want more?Startup Engineering: https://www.coursera.org/course/startup
UT on Rails: http://schneems.com/ut-rails
Contact me and ask about deep dives on other topics:
HTML, CSS, SQL, Rails, PHP, Wordpress, payment processing...?
35
source spring — jesse jack — [email protected] — 2013 CC licensed
Thanks! Any [email protected]
www.thesourcespring.com
Liked this class? Please connect with me on LinkedIn and endorse me for teaching!
http://www.linkedin.com/in/jessejack
36