How To Build Website

573 views

Published on

organic the expertise's idea together for reference

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
573
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
18
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

How To Build Website

  1. 1. ORGANIC IDEAS: TO BUILD A LARGE-SCALE WEBSITE Oliver Cai
  2. 2. EXPERTISE SAY: <ul><li>Think of big picture, start small thing. </li></ul><ul><li>Separate, separate, and separate </li></ul><ul><li>Does not reinvent the wheel </li></ul>
  3. 3. WEB2.0 CONCEPTS <ul><li>Blog </li></ul><ul><li>Wiki </li></ul><ul><li>Social network </li></ul><ul><li>PodCast </li></ul><ul><li>RSS </li></ul><ul><li>API (RESTful) </li></ul><ul><li>Mashup </li></ul><ul><li>Widget (Gadget) </li></ul><ul><li>AJAX </li></ul>
  4. 4. WEBSITE PROCEDURE <ul><li>Requirements and features </li></ul><ul><li>Information Architecture </li></ul><ul><li>Technical Architecture & Framework </li></ul><ul><li>Development Architecture </li></ul><ul><li>Test & Deploy </li></ul><ul><li>Fine-tuning, support & maintenance </li></ul>
  5. 5. INFORMATION + ARCHITECTURE <ul><li>I: The communication or reception of knowledge or intelligence </li></ul><ul><li>Text, Images, Music, Video </li></ul><ul><li>A: The art or science of building </li></ul><ul><li>Design, Structure, Space,Function </li></ul>
  6. 6. IA DELIVERABLES <ul><li>Page Flow Diagram </li></ul><ul><ul><li>Interaction diagram </li></ul></ul><ul><ul><li>Flow chart </li></ul></ul><ul><li>Wireframe </li></ul><ul><ul><li>Mockup </li></ul></ul><ul><ul><li>Paper Prototype </li></ul></ul>
  7. 7. TECHNICAL ARCHITECTURE CONSIDERATION <ul><li>Partition everything </li></ul><ul><ul><li>– “ you eat an elephant only one bite at a time” </li></ul></ul><ul><ul><li>– “ If you can’t split it, you can’t scale it” </li></ul></ul><ul><ul><li>Decouple, Separate, Granularity </li></ul></ul><ul><li>Asynchrony for everywhere </li></ul><ul><ul><li>– “ Good things come to those who wait” </li></ul></ul><ul><li>Automate everything </li></ul><ul><ul><li>– “ Automation will save time and eliminate human errors…” </li></ul></ul><ul><li>Assume everything fails </li></ul><ul><ul><li>– “ Be Prepared” </li></ul></ul>
  8. 8. BIG DIFFERENCES FOR A LARGE-SCALE <ul><li>No Database Transactions </li></ul><ul><ul><li>– To guarantee availability and partition-tolerance, trade off consistency (Brewer’s CAP Theorem) </li></ul></ul><ul><ul><li>Functional Segmentation </li></ul></ul><ul><ul><li>– Segment databases into functional areas – user, item, transaction, product, account, feedback </li></ul></ul><ul><ul><li>Horizontal Split </li></ul></ul><ul><ul><li>Absolutely no session state </li></ul></ul><ul><li> – Transient state maintained by URL, Cookie, Scratch database </li></ul>
  9. 9. ASPACTS OF TECH ARCHITECTURE <ul><ul><li>Static Content </li></ul></ul><ul><ul><li>Image Servers </li></ul></ul><ul><ul><li>Database (Agnostic) </li></ul></ul><ul><ul><li>Cache </li></ul></ul><ul><ul><li>Mirror </li></ul></ul><ul><ul><li>Load Balance </li></ul></ul>
  10. 10. TIPS <ul><li>Try and incorporate Horizontal DB partitioning by value from the beginning into your design </li></ul><ul><li>Loosely couple all modules </li></ul><ul><li>Implement a REST-ful framework for easier caching </li></ul><ul><li>Perform application sizing ongoing to ensure optimal utilization of hardware </li></ul>
  11. 11. DEV TEAM INFRASTRUCTURE <ul><li>A development methodology </li></ul><ul><li>Coding standards & name rules </li></ul><ul><li>Source Code Management Systems </li></ul><ul><li>Bug Tracking Systems </li></ul><ul><li>Internal Documentation </li></ul><ul><li>Unit Test & Functional Test </li></ul><ul><li>Tie it all together to create a semi-automated development </li></ul><ul><li>infrastructure to save your developers from boring and </li></ul><ul><li>repetitive tasks. </li></ul>
  12. 12. DEV TEAM INFRASTRUCTURE <ul><ul><li>Automation 1: Changelog Emails </li></ul></ul><ul><ul><li>Use your source code management(SVN, CVS, GIT) “post-commit” hook to send an email to your dev team mailing list whenever a commit is made. </li></ul></ul><ul><ul><li>Automation 2: Bug Closures On Commit </li></ul></ul><ul><ul><li>When developers commit new code to the repo it often fixes a bug, so then the bug itself has to be closed or tagged in the Bug tracking system(Mantis, Bugzilla). </li></ul></ul><ul><ul><li>Automation 3: Rebuilding Docs </li></ul></ul><ul><ul><li>Put your automatically generated internal documentation on a web server somewhere that can be accessed by your dev team. </li></ul></ul><ul><ul><li>Automation 4: Automatic Unit Testing </li></ul></ul><ul><ul><li>Set up test mechanism that can check specific functionality of your code on a test server, then have it triggered on a post-commit hook that updates a local working copy before running the tests </li></ul></ul><ul><ul><li>Automation 5: Release Management </li></ul></ul><ul><ul><li>pull all these things together into an overall workflow management system that controls how your code moves from developers to testing to release. </li></ul></ul>
  13. 13. TESTING ECOSYSTEM Different tests, different objectives
  14. 14. MOVE TO AGILE <ul><li>􀁹 Before </li></ul><ul><ul><li>􀁹 Marketing driven releases </li></ul></ul><ul><ul><li>􀁹 Big feature promises up-front </li></ul></ul><ul><ul><li>􀁹 Committed release date that always slipped </li></ul></ul><ul><li>􀁹 Now </li></ul><ul><ul><li>􀁹 No committed release date </li></ul></ul><ul><ul><li>􀁹 Technical Community Previews (TPC) </li></ul></ul><ul><ul><li>􀁹 Incorporating customer feedback </li></ul></ul>Iterative incremental steps for changeable requirement.
  15. 15. SCRUM (CHICKEN AND PIGS) <ul><li>Team roles </li></ul><ul><ul><li>􀁹 Product Owner </li></ul></ul><ul><ul><li>􀁹 Scrum Master </li></ul></ul><ul><ul><li>􀁹 Team </li></ul></ul><ul><li>Managing requirements </li></ul><ul><ul><li>􀁹 Product backlog </li></ul></ul><ul><ul><li>􀁹 User stories </li></ul></ul>

×