Download - Full stack development
Full-stack developmentA bit about everything
The layers of the stack
A webapp : simple full-stack software
Android : A complex stack
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
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
●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
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
Performances of common server containers
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
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
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
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.
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.
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.
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.
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