
{"id":1222,"date":"2014-12-09T23:05:07","date_gmt":"2014-12-09T23:05:07","guid":{"rendered":"http:\/\/www.codergears.com\/Blog\/?p=1222"},"modified":"2014-12-10T10:11:48","modified_gmt":"2014-12-10T10:11:48","slug":"the-passion-is-an-important-ingredient-to-produce-a-code-with-good-quality","status":"publish","type":"post","link":"https:\/\/codergears.com\/Blog\/?p=1222","title":{"rendered":"The passion is an important ingredient to produce a code with  good quality"},"content":{"rendered":"<p>Quality is not something that can be easily added later. It&#8217;s preferable to take care of\u00a0it from the beginning.\u00a0Many companies dedicated a big budget to purchase tools with many thousands of dollars, and called upon\u00a0independent consultants\u00a0to audit their code base and produce some reports. This is\u00a0still a good initiative to improve the code quality.<\/p>\n<p>However, after few years of the analysis of many open source projects developed with C\/C++, Objective C and java\u00a0we can\u00a0confirm that most of them are well designed and implemented despite the fact that the open source contributors do not have resources like companies.\u00a0Most of them work only at night or on\u00a0holidays and they produce a very good\u00a0code.<!--more--><\/p>\n<p>I am not\u00a0talking here only about the open source \u00a0projects sponsored by companies like Google or facebook, where the most of the contributors are employees in these companies. But also about projects developed by independent developers who use their own resources to provide\u00a0us many useful libraries and applications.<\/p>\n<p>Many times after the analysis of an open source project, we discover many\u00a0interesting best practices, and we decide to refactor some pieces of our code to improve it as implemented in these projects. These best practices could not be detected by any tool, or identified by any quality metrics, they need to be identified by developers who care about the quality of their code.<\/p>\n<p><strong>What&#8217;s the secret of the open source contributors?<\/strong><\/p>\n<p>To understand why the open source code is gnerally well implemented, we have to know the contributors motivations. Their goal is not to be rich, maybe some of them could look for the glory. But most of them they love what they do and code with passion, what makes a big difference.<\/p>\n<p>Developing a solution because you have\u00a0to, you are paid for; it&#8217;s not the same thing if you develop it because\u00a0you enjoy producing a good application.<\/p>\n<p>For companies not having a dedicated\u00a0budget for quality, a good solution could be encouraging developers to spend few hours\/week to explore some open source projects and disover some best practices to apply them later in their code.<\/p>\n<p>And even if you purchase the most powerful quality tool, you need to employ developers who love what they do. But the big problem is how to identify them?<\/p>\n<p>Here are some interesting open source projects \u00a0to explore:<\/p>\n<p><strong>C\/C++<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/TTimo\/doom3.gpl\">Doom3<\/a>.<\/li>\n<li><a href=\"http:\/\/loki-lib.sourceforge.net\/\">Loki<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/facebook\/folly\">Folly<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/torvalds\/linux\">Linux<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/git\/git\">Git<\/a><\/li>\n<li><a href=\"http:\/\/pocoproject.org\/\">POCO<\/a><\/li>\n<li><a href=\"http:\/\/clang.llvm.org\/\">LLVM\/Clang<\/a><\/li>\n<li><a href=\"http:\/\/qt-project.org\/\">Qt<\/a><\/li>\n<li><a href=\"http:\/\/www.boost.org\/\">Boost<\/a><\/li>\n<li><a href=\"http:\/\/www.chromium.org\/\">Chromium<\/a><\/li>\n<li><a href=\"http:\/\/www.codeblocks.org\">Code::Blocks<\/a><\/li>\n<\/ul>\n<p><strong>Java<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/commons.apache.org\/\">Apache Commons<\/a>.<\/li>\n<li><a href=\"http:\/\/hadoop.apache.org\/\">Hadoop<\/a>.<\/li>\n<li><a href=\"http:\/\/jruby.org\/\">JRuby<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/libgdx\/libgdx\">libgdx<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/apache\/tapestry-5\">Tapestry<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/spring-projects\">Spring<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/apache\/spark\">Spark<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quality is not something that can be easily added later. It&#8217;s preferable to take care of\u00a0it from the beginning.\u00a0Many companies dedicated a big budget to purchase tools with many thousands of dollars, and called upon\u00a0independent consultants\u00a0to audit their code base and produce some reports. This is\u00a0still a good initiative to improve the code quality. However, &hellip; <a href=\"https:\/\/codergears.com\/Blog\/?p=1222\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The passion is an important ingredient to produce a code with  good quality&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-1222","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts\/1222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1222"}],"version-history":[{"count":28,"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts\/1222\/revisions"}],"predecessor-version":[{"id":1260,"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts\/1222\/revisions\/1260"}],"wp:attachment":[{"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codergears.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}