{"id":352,"date":"2016-03-22T16:21:54","date_gmt":"2016-03-22T10:51:54","guid":{"rendered":"https:\/\/www.dhruvsoft.com\/blog\/?p=352"},"modified":"2024-07-26T09:45:20","modified_gmt":"2024-07-26T09:45:20","slug":"habits-of-great-force-com-developers","status":"publish","type":"post","link":"https:\/\/www.dhruvsoft.com\/blog\/habits-of-great-force-com-developers\/","title":{"rendered":"25 Habits of Great Force.com Developers"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-353\" src=\"https:\/\/www.dhruvsoft.com\/blog\/wp-content\/uploads\/2016\/03\/great-salesforce-developer.png\" alt=\"Habits of Great Force.com Developers\" width=\"241\" height=\"239\" srcset=\"https:\/\/www.dhruvsoft.com\/blog\/wp-content\/uploads\/2016\/03\/great-salesforce-developer.png 790w, https:\/\/www.dhruvsoft.com\/blog\/wp-content\/uploads\/2016\/03\/great-salesforce-developer-150x150.png 150w, https:\/\/www.dhruvsoft.com\/blog\/wp-content\/uploads\/2016\/03\/great-salesforce-developer-300x298.png 300w, https:\/\/www.dhruvsoft.com\/blog\/wp-content\/uploads\/2016\/03\/great-salesforce-developer-768x762.png 768w\" sizes=\"auto, (max-width: 241px) 100vw, 241px\" \/>Want to become a &#8220;Great&#8221;\u00c2\u00a0Force.com Developer? One does not become a successful App developer just by training or mere experience. Many of our clients for whom we are developing the Appexchange Apps ask &#8211; &#8220;We want a Great Force.com Developer&#8221;. What makes a Force.com developer great? and other developer not so great. From our experience of over 100 person years of development we realized that to be successful or a great developer you have to learn from the best practices &#8211; and Force.com developers are no exception.<\/p>\n<p>There are some best practice habits that we have seen in all successful Force.com developers. In this post we will be listing\u00c2\u00a0these habits that make a developer &#8211; \u00e2\u20ac\u0153Great\u00e2\u20ac\u009d Force.com developer.<\/p>\n<p><!--more--><\/p>\n<ol>\n<li>They check if they can use declarative methods before starting to write code.<\/li>\n<li>Successful Force.com developers keep the code simple by keeping it clean anc concise.<\/li>\n<li>Do not put the SOQL queries in the loop otherwise it will hit the Salesforce.com limits. Developers should use Maps or relationships to have one SOQL query outside the for loop.<\/li>\n<li>Use Maps to make SOQL queries, DML transactions, and Apex triggers more efficient<\/li>\n<li>Use the object relationships to optimize the queries.<\/li>\n<li>Avoid DML operations like insert, update, delete, undelete, merge inside the loop.<\/li>\n<li>Bulkify the code to making sure the code properly handles more than one record at a time<\/li>\n<li>Use utility or helper methods are efficiently written to handle collections of records. This will avoid unnecessarily executing inefficient queries and DML operations.<\/li>\n<li>Use collections and streamlining the SOQL queries that will result in efficient Apex code and will avoid governor limits.<\/li>\n<li>Use the Limits Apex Methods that can debug more effectively and Avoid Hitting Governor Limits.<\/li>\n<li>Use only one trigger per object.<\/li>\n<li>Keep the logic outside the trigger by calling the apex classes like a trigger handler. They use a Trigger Handler framework wherein the business logic is separated into a separate handler class.<\/li>\n<li>Aim for 100% code coverage.<\/li>\n<li>Write meaningful test classes and write them before you write the code and include all the conditions like null, boundary value etc.<\/li>\n<li>Write test methods to verify the large datasets.<\/li>\n<li>Do not hardcode Ids within the code.<\/li>\n<li>Always have a justified reason before creating a Visualforce page instead of Standard UI.<\/li>\n<li>Escape the URL parameters if they are present in code.<\/li>\n<li>Try to develop code \u00e2\u20ac\u0153With Sharing\u00e2\u20ac\u009d and have a justified reason if they are not doing so.<\/li>\n<li>Use Custom settings for non-dynamic variables in code.<\/li>\n<li>Clean any obsolete classes, properties or methods.<\/li>\n<li>Always do exception handling for SOQL Queries and DML statements.<\/li>\n<li>Follow Code &amp; Naming standards.<\/li>\n<li>Use the helper classes in batch apex use framework for logging DML results<\/li>\n<li>When using Future methd (@future) they invoke it with a batch of records so that it is only invoked once for the records to process.<\/li>\n<\/ol>\n<p>These habits may be hard to form &#8211; but once they become a habit when you are developing &#8211; you are sure to become become a &#8220;Great&#8221;\u00c2\u00a0Force.com Developer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Want to become a &#8220;Great&#8221;\u00c2\u00a0Force.com Developer? One does not become a successful App developer just by training or mere experience. Many of our clients for whom we are developing the Appexchange Apps ask &#8211; &#8220;We want a Great Force.com Developer&#8221;. What makes a Force.com developer great? and other developer not so great. From our experience [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[126,140],"class_list":["post-352","post","type-post","status-publish","format-standard","hentry","category-force-com","tag-force-com","tag-force-com-development","entry"],"_links":{"self":[{"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/posts\/352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=352"}],"version-history":[{"count":0,"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/posts\/352\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/categories?post=352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dhruvsoft.com\/blog\/wp-json\/wp\/v2\/tags?post=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}