Getting Started by using Best Practices



Best Practices

The list below represents Best Practices for working on an Application with vFunction:

  1. Set Included Classes correctly in the Analysis Parameters. Include the packages that should be included in the analysis scope. Be careful not to set a general scope like com.. instead of com..
  2. Use Infra Jars but pay attention to the results. Take a Snapshot before making modifications, or use the Undo Action workflow if the Analysis output of a modification is undesirable
  3. Work in the correct Measurement. Use tags to provide additional information about the Measurements, or edit the Measurement names to be more meaningful
  4. Focus on dynamic analysis first. Define the Domain Boundaries and try to improve Dynamic Exclusivity, only then proceed to Static Classes per Domain and then to Resources
  5. Review the classes remaining in the Monolith. Look into the Application (black sphere) Domain Dynamic Classes and see if it has significant Classes that needs to be moved to new or existing domains by creating new entry points
  6. Use the global search (the search in the main pane) to look for key Dynamic Classes. Ensure they are included in the right domain, if not, move / create entry points accordingly
  7. Make decisions about Non-exclusive Dynamic Classes. When you review the non-exclusive dynamic classes consider the following: (1) Move the class / package to common, (2) Leave as non-exclusive, or (3) Click MAKE EXCLUSIVE which will result in the creation of entry points to make the class exclusive to the domain
  8. Make decisions about Non-exclusive Static Classes. When you review the non-exclusive static classes consider the following: (1) Move the class / package to common, (2) Leave as non-exclusive, (3) Mark the class as dead-code, or (4) Click MAKE EXCLUSIVE which will mark the class as dead code in other domains
  9. Consider refactoring High Debt Classes. Focus on Classes with a score of 4 or above
  10. Merge or delete small Domains. Focus on Domains with 1 or 2 Static Classes in their scope
  11. Make sure the Common Library does not contain classes that should belong to domains. It is better to have less exclusivity than to have wrong classes marked as Common
  12. Pay special attention to the usage of tables, DB transactions and beans. Avoid having non-exclusive read-write DB transactions
  13. Download the measurement or create snapshots. This will allow you to backup your work and experiment
  14. Use Ignore Classes/Nodes carefully. Only use this workflow when you are sure that these flows should be excluded