Full stack development

23
Full-stack development A bit about everything

Transcript of Full stack development

Page 1: Full stack development

Full-stack developmentA bit about everything

Page 2: Full stack development

The layers of the stack

Page 3: Full stack development

A webapp : simple full-stack software

Page 4: Full stack development

Android : A complex stack

Page 5: Full stack development

First impressions matter. The UI should look good●●UI != UX. Good UX needs good UI. But just good UI doesn’t

ensure good UX.●●Do not overdesign. The best UIs are the simplest ones.●●UX is a tool to make the user do what you want. But without him

knowing this. (dark and light patterns).

The front-end : UI/UX

Page 6: Full stack development
Page 7: Full stack development
Page 8: Full stack development
Page 9: Full stack development
Page 10: Full stack development
Page 11: Full stack development

Speed : Computers are faster than humans. Keep it that way. And users are impatient.●●Information : Show what is needed. Hide what isn’t. Users

aren’t developers. They don’t need ‘under-the-hood’ stats.●●Depending on the platform, decide the tradeoff between client

and server side processing. (eg. Autodesk Pixlr)●●Handle crashes gracefully. Stay with the user. Do not bail out.

The front-end : functionality

Page 12: Full stack development

●Speed of development matters.●Validate everything that the user enters in forms or

otherwise.●MVP first, scale later●Learn and embrace new tech like Docker

Containers.

The Server Side Stuff

Page 13: Full stack development

Use a robust platform. Check its forums, find out if the platform and it’s providers have downtimes, or issues.●●Do not become dependent on the platform or the host. Always

keep bags packed and ready to move. ●●First MVP with a easy to set up platform. Then move to more

native platform when scaling.●●Use containers, servlets, docklets, VM images. These are

portable and adaptable.

The server platform

Page 14: Full stack development

Performances of common server containers

Page 15: Full stack development

Forget Windows/Mac. Learn Linux. Forget GUI. You’re now in command (pun intended)●●Bash/Shell scripting = your single largest tool. ●●Learn managing a VPS. Learn setting up OpenStack,

OpenCloud, AWS, GAE, Heroku etc instances.●●Use monitoring tools like Nagios. Learn network fundamentals.

DNS, iptables etc.

Managing the backend : SysAdmin

Page 16: Full stack development

It’s not just coding

●Writing code●Testing and debugging●Version control ●Managing the databases●Sysadmin for the backend ●Designing UI for frontend●Marketing and publicity

Page 17: Full stack development

Reach MVP first. Optimize later.●●Use comments. Especially //TODO, //FIXME lines. ●●Run & test often. At least once after adding every 100 lines.●●Code may be poetry. But it needs proofreading.

Good practices : coding

Page 18: Full stack development

Good practices : testing

Test like your granny would (no offense). Press all the buttons. Do everything that can crash the app. Trust me, your users will too.●●Test under worst conditions. Slow internet, corrupt data, throw

everything at it. ●●Test all the cases. Especially the improbable ones. Remember

Murphy’s law.

Page 19: Full stack development

Good practices : debugging

Learn to log your code. Learn to read the logs. Developing is >50% of debugging.●●Bug hunting skills are more important coding. Many people can

build stuff. Few can fix things when they are broken. ●●Investigate bugs systematically. Change one component at a

time. Pinpoint the portion that causes the bug. ●●DO NOT duct tape your bugs. Solve them properly.

Page 20: Full stack development
Page 21: Full stack development

Good practices : data modelsIt’s very difficult to change data model after 5000 people have started using your product. Choose wisely from the start.●● Work out the flow of data. In your mind, on a paper, on the drawing board. The data

model should be made accordingly. ●● Reduce iterations. Reduce number of passes your functions make through each

table. ●● Cache the data that is repetitively used. Make sensitive data redundant.●● If your data model depends on your language or framework or platform, you’re

probably doing it wrong. You might need to change your platform or language tomorrow.

Page 22: Full stack development

General suggestions for a FSDIdentify your strong suite. No one can be a true all rounder. Go deep with that. Spread thin on other areas.●● Use ready-to-use solutions for your weaker base. (eg. Ionic/Titanium for client side,

Parse/Firebase for backend) ●● Make friends with other FSDs. Especially with non-intersecting strengths. ●● Keep working on new technologies. Follow well known developers. Track some

awesome github projects.●● Use cross-end languages in hobby projects. Eg. Python, javascript, java etc which

can be used to make both front and back ends easily.

Page 23: Full stack development

Tools Used for development

+ Server Side : Python(Flask)

+ Web APP : Bootstrap,Angular JS

+ Android and iOS app : Ionic framework

Tools used for marketing

+ Facebook Ads

+ Twitter and facebook bots

+ Setting up a content writing team.

Full Stack in Action: Orch.in