Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PDE Good Practices Ankur Sharma PDE co-lead @ankur_sharma blog.ankursharma.org
#1 Separation of Concerns <ul><li>A plug-in is used to group your code into a modular, extendable and sharable unit. </li>...
#2 bundle-localization <ul><li>Externalize bundle strings </li></ul><ul><li>‘ Usage of non-externalized strings’ preferenc...
 
 
 
 
#3 Lazy-loading <ul><li>Prefer to have lazy loading plug-ins </li></ul><ul><ul><li>Helps reduce memory footprint </li></ul...
#3 Singletons <ul><li>Prefer singleton plug-ins </li></ul><ul><ul><li>but there is a cost involved </li></ul></ul><ul><ul>...
 
 
#4 Use startup code carefully <ul><li>Plug-in startup and constructor </li></ul><ul><li>org.eclipse.ui.startup extension <...
#5 Prefer target over workspace <ul><li>Prefer adding the required plug-ins to Target Platform </li></ul><ul><li>Adding th...
#6 Share target definitions
#7 Keep build.properties synced <ul><li>Export wizard and headless build uses build.properties </li></ul><ul><li>Use build...
 
#8 EE and Java compliance <ul><li>Set the Execution Environments to the lowest required JRE version. </li></ul><ul><li>Set...
#9 Use proper version ranges <ul><li>Use proper version restrictions </li></ul><ul><li>Also helps in catching API leaks </...
#10 Versions are not for marketing <ul><li>Version numbering is very important </li></ul><ul><li>Version numbers are not m...
#11 Define API carefully <ul><li>Put classes in correct packages </li></ul><ul><li>Public, internal and x-friends </li></u...
#12 Use API Tools <ul><li>API Tools will help you with </li></ul><ul><ul><li>#9 Use proper version ranges </li></ul></ul><...
thank you
Upcoming SlideShare
Loading in …5
×

Mr. Ankur Sharma - PDE good practices

861 views

Published on

  • Be the first to comment

  • Be the first to like this

Mr. Ankur Sharma - PDE good practices

  1. 1. PDE Good Practices Ankur Sharma PDE co-lead @ankur_sharma blog.ankursharma.org
  2. 2. #1 Separation of Concerns <ul><li>A plug-in is used to group your code into a modular, extendable and sharable unit. </li></ul><ul><li>Do not create monolithic plug-ins </li></ul><ul><li>Separate the platform/locale code into fragments </li></ul><ul><li>Separate Core, UI, Doc, etc </li></ul>
  3. 3. #2 bundle-localization <ul><li>Externalize bundle strings </li></ul><ul><li>‘ Usage of non-externalized strings’ preference </li></ul>
  4. 8. #3 Lazy-loading <ul><li>Prefer to have lazy loading plug-ins </li></ul><ul><ul><li>Helps reduce memory footprint </li></ul></ul><ul><ul><li>Every plug-in loads with a dependency baggage </li></ul></ul><ul><ul><li>Judiciously make plug-ins reusable </li></ul></ul>
  5. 9. #3 Singletons <ul><li>Prefer singleton plug-ins </li></ul><ul><ul><li>but there is a cost involved </li></ul></ul><ul><ul><li>singleton plug-ins can not be dynamically installed </li></ul></ul>
  6. 12. #4 Use startup code carefully <ul><li>Plug-in startup and constructor </li></ul><ul><li>org.eclipse.ui.startup extension </li></ul>
  7. 13. #5 Prefer target over workspace <ul><li>Prefer adding the required plug-ins to Target Platform </li></ul><ul><li>Adding them to workspace makes it difficult to track and manage. </li></ul>
  8. 14. #6 Share target definitions
  9. 15. #7 Keep build.properties synced <ul><li>Export wizard and headless build uses build.properties </li></ul><ul><li>Use build preferences to keep it in sync with classpath </li></ul><ul><li>This helps avoid “ …but it was working in my workspace! ” situations. </li></ul>
  10. 17. #8 EE and Java compliance <ul><li>Set the Execution Environments to the lowest required JRE version. </li></ul><ul><li>Set the appropriate Java Compiler preferences </li></ul>
  11. 18. #9 Use proper version ranges <ul><li>Use proper version restrictions </li></ul><ul><li>Also helps in catching API leaks </li></ul>
  12. 19. #10 Versions are not for marketing <ul><li>Version numbering is very important </li></ul><ul><li>Version numbers are not meant for marketing </li></ul><ul><li>Stick to major.minor.micro-qualifier </li></ul><ul><li>Bump up the correct number in version on releases. </li></ul>
  13. 20. #11 Define API carefully <ul><li>Put classes in correct packages </li></ul><ul><li>Public, internal and x-friends </li></ul><ul><li>Don’t Re-export everything </li></ul><ul><li>An Eclipse API is forever </li></ul>
  14. 21. #12 Use API Tools <ul><li>API Tools will help you with </li></ul><ul><ul><li>#9 Use proper version ranges </li></ul></ul><ul><ul><li>#10 Versions are not for marketing </li></ul></ul><ul><ul><li>#11 Define API carefully </li></ul></ul>
  15. 22. thank you

×