1. 3 months ago 

    29 technical lessons learned from recent experiences with socialmedian and social networking gadgets

    Some of the following may seem somewhat “basic” to the experienced software developer but in the era of “ship it” early and often, you often have to play catch up and learn even the basics as you go.  Thanks Nishith and team socialmedian/True Sparrow for helping put this together.

    1. Fetching data for your newsfeed (latest activities of your friends) is very costly. Think about a push mechanism instead of pull mechanism.
    2. Storing large chunks of data in database (for example, entire blog post) would hurt us in the long run when the table size increases to million plus records.
    3. Queries: avoid joins. No exceptions to this rule.
    4. FB Connect: authentication problems. Page gets stuck at times. A blank page has to load first and then the logged-in page. Requires a lot of tweaking.
    5. SEO - pay attention to that from the beginning.
    6. Any component/module in site should be UTF-8 enabled.
    7. Pay attention to yslow.
    8. Strictly follow the XHTML standards.
    9. Combine JS and CSS files.
    10. Files like Srciptaculous and Prototype should be loaded directly from the Google Ajax Libraries API
    11. Design the database such that results can be produced using less complex queries. Also pay attention to the number of queries being executed.
    12. While memcaching, try caching the entire final response, since lot of times JSON object creation takes time.
    13. Try to use the browser cache for as many as objects in page as possible. Example: user images should be cached in browser but the newly uploaded image should be fetched from the server. So, it’s always good to store partial image name in the table.
    14. In AJAX response, send just the required fields.
    15. Select/Update queries should fetch or update just the required fields.
    16. Servers: disable logins using passwords. Use RSA or DSA keys only.
    17. Make sure to secure the site against XSS, SQL injections etc.
    18. Unit-testing. Consider test driven development. Run all test cases before code push.
    19. Documentation – follow the RDocs commenting style.
    20. Use monit, munin, exception notifier, slow query log checker
    21. Capistrano recipes to deploy code in different environments
    22. Always minify JS and CSS files.
    23. Always use versioning for JS, CSS and images (not the user images though).
    24. Use combined images.
    25. Completely avoid inline CSS.
    26. Always place the JS files at the end.
    27. Use migrations for any database schema changes.
    28. Keep controllers light weight, as less code as possible. Break the code in smaller logical chunks so that it can be reused.
    29. Page rendering time – always look for the response completion times with any code change and compare with the previous times. Keep logging the rendering times.
  2. Comments
    blog comments powered by Disqus
avatar_128
 
 
betashop is the website of Jason Goldberg, serial entreprenuer, fire starter, ship it! guy.

Currently founder of Fabulis. chief product officer at xing.com, founder of socialmedian, founder of Jobster, advisor and investor in some really cool startups, and a guy who is always learning.

Jason loves working with entrepreneurs and early stage companies and is a passionate believer that it all comes down to the product.

Currently involved with: Fabulis. TweetDeck. onething. blogged. and a few other startups not ready be named yet.
 
 

Following

fabulisstaffalwayscapitalize
 

Tumblr