Ben Allfree :: Painless Programming

Guaranteed results for your micro-startup from a web designer who knows the difference.

Post-checks for Quality

March 25th, 2009 · 6 Comments

Just like the pre-checks, I also have post-checks to ensure quality. Here they are:

Layout

  • Margins/padding match comp
  • Liquid layout does not introduce gaps on resize
  • Capitalization matches comp
  • Text styling matches comp
  • Coloring matches comp
  • Text leading matches comp
  • Proportions and relative sizes match comp
  • Indentical or downlevel rendering in FF3, Safari, IE7, IE6
  • Navigation does not wrap in small liquid layout
  • Status bar features do not wrap in small liquid layout
  • Links do not wrap in small liquid layout
  • Headings/headers do not wrap in small liquid layout
  • No hard-coded duplicate CSS in views
  • CSS definition blocks are in external files
  • JS functions are included via external links

Wireup

  • All db operations incorporate user id or role in WHERE
  • No input params are trusted to directly control privileged operation
  • Front end is not trusted for security checks
  • JavaScript/Ajax and downlevel compatibility in FF3, Safari, IE7, IE6
  • FireBug console statements are not present or console() function is overridden in case it is not present
  • Database tables, pks, and fks follow mvc-style conventions
  • File uploads stored on disk with UUID referencing database table holding MIME type, original name, posting date, disk file name, and user ID if needed
  • Thumbnails generated dynamically
  • View helpers used where possible
  • Database FK’s indexed
  • No off-screen validation failures are possible
  • Transactions are used only if user’s current work can be restored to the screen upon transaction rollback
  • RESTful routing used
  • Route helpers used for all RESTful paths
  • No hard-coded <a> tags for site paths
  • All calculations in models – none in view or controller
  • Form helpers are used instead of <form> tag
    document.getElementById() is $()

  • Paths to root and core are constants and not hard coded
  • JS functions are included via external links
  • Raw $_REQUEST not used ($params) instead
  • No raw <input> fields
  • No magic values in code
  • File paths refactored and DRY’d into constants
  • TIMESTAMP type not used
  • DATETIME defaults to null if you want it to auto-populate

Tags: , , , , , , , ,

6 responses so far ↓

  • 1 Kelly Evans

    Your website is a good presentation.

  • 2 Peter

    I also put an ad on CL for an iPhone app. Call
    to discuss…

    Thnxs

    Peter
    626.398.6642

  • 3 Michael Jones

    Ben, you talked with our lead a couple of weeks ago. The client has now asked us to get people started ASAP. I would like to talk with you. Please give me a call.

    Thank you,

    Michael

  • 4 David Bergman

    I see you have done work with web portals for health care related sites. Where are you located? What is your time availability? Have you done any work with Electronic Health records or systems integration?

    I ask where you are located as we have short term needs, but are also looking to create some long term partners.

    David

  • 5 J Digman

    Ben,

    Please contact me regarding project work.

    jdigman@matadorconsulting.com

  • 6 Neil Tooch

    Hi Ben,

    You had answered my Ad responding to my website. Please give me a call.

Leave a Comment