Services - Audit Code

We deliver for you!

Looking at the pace at which start-up culture is growing in India. Fafadia Tech can relate with the tyro of start-ups. Company would like to offer its expertise to audit and optimize their code. Currently we audit Python, Django, Java, Javascript, HTML, CSS and J Query code. We gurantee you to keep your code safe and secure and will not be leaked to any third party.

Coding standard

  • Checking line-code's length
  • Checking if variable names are well-formed according to your coding standard
  • Checking if imported modules are used
  • All methods are commented in clear language. If it is unclear to the reader, it is unclear to the user.
  • All class, variable, and method modifiers should be examined for correctness.
  • All public and private APIs are examined for updates.
  • Check if complex algorithms are explained with references. For example, document the reference that identifies the equation, formula, or pattern. In all cases, examine the algorithm and determine if it can be simplified.
  • Check for possible null pointers are always checked before use.

Error Detection

  • Checking if declared interfaces are truly implemented
  • Checking if modules are imported
  • Invalid parameter values are handled properly early in methods.
  • Check that you don't create classes which throw Exception rather than dealing with exception condition.
  • Check that you don't swallow exceptions! For example catch (Exception ignored){}. It should at least log the exception.
  • Check if you have avoided RuntimeException, or sub-classes to avoid making code changes to implement correct error handling.
  • NullPointerException conditions from method invocations are checked.
  • (JDK 7+) Use try-with-resources. (JDK < 7) check to make sure resources are closed.

Thread Safety

  • Global (static) variables are protected by locks, or locking sub-routines.
  • Objects accessed by multiple threads are accessed only through a lock, or synchronized methods.
  • Locks must be acquired and released in the right order to prevent deadlocks, even in error handling code.

Performance

  • Objects are duplicated only when necessary. If you must duplicate objects, consider implementing Clone and decide if deep cloning is necessary.
  • No busy-wait loops instead of proper thread synchronization methods. For example, avoid while(true){ ... sleep(10);...}
  • Avoid large objects in memory, or using String to hold large documents which should be handled with better tools. For example, don't read a large XML document into a String, or DOM.
  • Do not leave debugging code in production code.
  • Avoid System.out.println(); statements in code, or wrap them in a Boolean condition statement like if(DEBUG) {...}
  • "Optimization that makes code harder to read should only be implemented if a profiler or other tool has indicated that the routine stands to gain from optimization. These kinds of optimizations should be well documented and code that performs the same task should be preserved." - UNKNOWN.
Positive SSL Wildcard