Best Practices ofBest Practices of
Software DevelopmentSoftware Development
www.folio3.com@folio_3
Folio3 – OverviewFolio3 – Overview
www.folio3.com @folio_3
Who We Are
 We are a Development Partner for our customers
 Design software solutions, not just implement them
 Focus on the solution – Platform and technology agnostic
 Expertise in building applications that are:
Mobile Social Cloud-based Gamified
What We Do
 Areas of Focus
 Enterprise
 Custom enterprise applications
 Product development targeting the enterprise
 Mobile
 Custom mobile apps for iOS, Android, Windows Phone, BB OS
 Mobile platform (server-to-server) development
 Social Media
 CMS based websites for consumers and enterprise (corporate, consumer,
community & social networking)
 Social media platform development (enterprise & consumer)
Folio3 At a Glance
 Founded in 2005
 Over 200 full time employees
 Offices in the US, Canada, Bulgaria & Pakistan
 Palo Alto, CA.
 Sofia, Bulgaria
 Karachi, Pakistan
Toronto, Canada
Areas of Focus: Enterprise
 Automating workflows
 Cloud based solutions
 Application integration
 Platform development
 Healthcare
 Mobile Enterprise
 Digital Media
 Supply Chain
Some of Our Enterprise Clients
Areas of Focus: Mobile
 Serious enterprise applications for Banks,
Businesses
 Fun consumer apps for app discovery,
interaction, exercise gamification and play
 Educational apps
 Augmented Reality apps
 Mobile Platforms
Some of Our Mobile Clients
Areas of Focus: Web & Social Media
 Community Sites based on
Content Management Systems
 Enterprise Social Networking
 Social Games for Facebook &
Mobile
 Companion Apps for games
Some of Our Web Clients
Best Practices ofBest Practices of
Software DevelopmentSoftware Development
www.folio3.com @folio_3
Agenda
 Naming/Coding Standard
 Good Programming Practices
 Good Database Practices
Naming/Coding Standard
 Commonly used standards are Pascal & Camal casing.
 Pascal Casing - First character of all words are Upper Case and
other characters are lower case.
 Example: BackColor
 Camel Casing - First character of all words, except the first word
are Upper Case and other characters are lower case.
 Example: backColor
 For complete reference, use language specific coding standard
document available on folio3 portal.
Good Programming Practices
 Avoid writing very long methods
 A method should do only 'one job‘
 Do not hardcode numbers. Use constants instead.
 Convert strings to lowercase or upper case before comparing.
 Use String.Empty instead of “”
Good Programming Practices
 Use member variables in class to store persistent data. Avoid
using member variable for passing data between methods.
 The event handler should not contain the code to perform the
required action. Rather call another method from the event
handler.
 Do not have more than one class in a single file.
 Avoid having very large files.
 If you have a method returning a collection, return an empty
collection instead of null.
Good Programming Practices
 If you are opening database connections, sockets, file stream etc,
always close them in the finally block.
 Do not write comments if the code is easily understandable
without comment.
 If you have to use some complex or weird logic for any reason,
document it very well with sufficient comments.
 If you initialize a numeric variable to a special number other than
0 or -1, document the reason for choosing that value.
Good Programming Practices
 Never do a 'catch exception and do nothing‘.
 In case of exceptions, give a friendly message to the user, but log the actual
error with all possible details about the error, including the time it occurred,
method and class name etc.
 Always catch only the specific exception, not generic exception.
 When you re throw an exception, use the throw statement without specifying
the original exception.
 Do not write try-catch in all your methods. Use it only if there is a possibility
that a specific exception may occur and it cannot be prevented by any other
means.
 Do not write very large try-catch blocks.
Good Database Practices
 Do not use SELECT * in your queries. Always write the required
column names after the SELECT statement.
 Try to avoid wildcard characters at the beginning of a word while
searching using the LIKE keyword.
 Also avoid searching using not equals operators (<> and NOT).
Good Database Practices
 Use 'Derived tables‘ (also known as inline View) wherever
possible, as they perform better.
 Use the more readable ANSI-Standard Join clauses instead of the
old style joins.
 With ANSI joins, the WHERE clause is used only for filtering data.
Where as with older style joins, the WHERE clause handles both
the join condition and filtering data.
Good Database Practices
 If you are using Microsoft SQL Server, never prefix your stored
procedures with 'sp_‘.
 Try to avoid generating unique ID while inserting rows in the db.
If it’s unavoidable, then use techniques to avoid pitfall.
Contact
 For more details about our
services, please get in touch with
us.
contact@folio3.com
US Office: (408) 365-4638
www.folio3.com

Best Practices of Software Development

  • 1.
    Best Practices ofBestPractices of Software DevelopmentSoftware Development www.folio3.com@folio_3
  • 2.
    Folio3 – OverviewFolio3– Overview www.folio3.com @folio_3
  • 3.
    Who We Are We are a Development Partner for our customers  Design software solutions, not just implement them  Focus on the solution – Platform and technology agnostic  Expertise in building applications that are: Mobile Social Cloud-based Gamified
  • 4.
    What We Do Areas of Focus  Enterprise  Custom enterprise applications  Product development targeting the enterprise  Mobile  Custom mobile apps for iOS, Android, Windows Phone, BB OS  Mobile platform (server-to-server) development  Social Media  CMS based websites for consumers and enterprise (corporate, consumer, community & social networking)  Social media platform development (enterprise & consumer)
  • 5.
    Folio3 At aGlance  Founded in 2005  Over 200 full time employees  Offices in the US, Canada, Bulgaria & Pakistan  Palo Alto, CA.  Sofia, Bulgaria  Karachi, Pakistan Toronto, Canada
  • 6.
    Areas of Focus:Enterprise  Automating workflows  Cloud based solutions  Application integration  Platform development  Healthcare  Mobile Enterprise  Digital Media  Supply Chain
  • 7.
    Some of OurEnterprise Clients
  • 8.
    Areas of Focus:Mobile  Serious enterprise applications for Banks, Businesses  Fun consumer apps for app discovery, interaction, exercise gamification and play  Educational apps  Augmented Reality apps  Mobile Platforms
  • 9.
    Some of OurMobile Clients
  • 10.
    Areas of Focus:Web & Social Media  Community Sites based on Content Management Systems  Enterprise Social Networking  Social Games for Facebook & Mobile  Companion Apps for games
  • 11.
    Some of OurWeb Clients
  • 12.
    Best Practices ofBestPractices of Software DevelopmentSoftware Development www.folio3.com @folio_3
  • 13.
    Agenda  Naming/Coding Standard Good Programming Practices  Good Database Practices
  • 14.
    Naming/Coding Standard  Commonlyused standards are Pascal & Camal casing.  Pascal Casing - First character of all words are Upper Case and other characters are lower case.  Example: BackColor  Camel Casing - First character of all words, except the first word are Upper Case and other characters are lower case.  Example: backColor  For complete reference, use language specific coding standard document available on folio3 portal.
  • 15.
    Good Programming Practices Avoid writing very long methods  A method should do only 'one job‘  Do not hardcode numbers. Use constants instead.  Convert strings to lowercase or upper case before comparing.  Use String.Empty instead of “”
  • 16.
    Good Programming Practices Use member variables in class to store persistent data. Avoid using member variable for passing data between methods.  The event handler should not contain the code to perform the required action. Rather call another method from the event handler.  Do not have more than one class in a single file.  Avoid having very large files.  If you have a method returning a collection, return an empty collection instead of null.
  • 17.
    Good Programming Practices If you are opening database connections, sockets, file stream etc, always close them in the finally block.  Do not write comments if the code is easily understandable without comment.  If you have to use some complex or weird logic for any reason, document it very well with sufficient comments.  If you initialize a numeric variable to a special number other than 0 or -1, document the reason for choosing that value.
  • 18.
    Good Programming Practices Never do a 'catch exception and do nothing‘.  In case of exceptions, give a friendly message to the user, but log the actual error with all possible details about the error, including the time it occurred, method and class name etc.  Always catch only the specific exception, not generic exception.  When you re throw an exception, use the throw statement without specifying the original exception.  Do not write try-catch in all your methods. Use it only if there is a possibility that a specific exception may occur and it cannot be prevented by any other means.  Do not write very large try-catch blocks.
  • 19.
    Good Database Practices Do not use SELECT * in your queries. Always write the required column names after the SELECT statement.  Try to avoid wildcard characters at the beginning of a word while searching using the LIKE keyword.  Also avoid searching using not equals operators (<> and NOT).
  • 20.
    Good Database Practices Use 'Derived tables‘ (also known as inline View) wherever possible, as they perform better.  Use the more readable ANSI-Standard Join clauses instead of the old style joins.  With ANSI joins, the WHERE clause is used only for filtering data. Where as with older style joins, the WHERE clause handles both the join condition and filtering data.
  • 21.
    Good Database Practices If you are using Microsoft SQL Server, never prefix your stored procedures with 'sp_‘.  Try to avoid generating unique ID while inserting rows in the db. If it’s unavoidable, then use techniques to avoid pitfall.
  • 22.
    Contact  For moredetails about our services, please get in touch with us. contact@folio3.com US Office: (408) 365-4638 www.folio3.com