{"id":12,"date":"2007-03-21T05:16:08","date_gmt":"2007-03-21T10:16:08","guid":{"rendered":"http:\/\/mariusbancila.ro\/blog\/?p=12"},"modified":"2007-03-21T09:44:52","modified_gmt":"2007-03-21T14:44:52","slug":"the-importance-of-good-code-conventions","status":"publish","type":"post","link":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/","title":{"rendered":"Make Your Code Readable!"},"content":{"rendered":"<p>One of the most important qualities of code is, or at least should be, readability. The simple fact that it works\u00a0is not enough. If it&#8217;s not readable, it definitelly ain&#8217;t maintainable. Thus, our mission, as programmers, is\u00a0to right code, that above being correct, is also readable and understandable. When a new programmer joins a team it takes time to familiarize with the\u00a0application domain, language or code or all. To reduce that time, companies use\u00a0code convension, that in theory should\u00a0make the code readable, but\u00a0unfortunatelly in reality, in many cases, does the oposite.\u00a0<\/p>\n<p>A long time ago, in a galaxy far, far away there were no rich IDEs and no Intellisense. Programmers had to knew by memory all the types, functions, and variable names. Moreover they had to new the type of variables, parameters or returned values. Thus, naming conventions helped in taming the beast. Probably one of the most famous (and infamous at the same time) convention, at least\u00a0for C and C++,\u00a0is the so called Hungarian notation, invented almost 3 decades ago by Charles Simonyi, a chief architect at Microsoft. It was named so because it made code looked like written in a foreign language, and Simonyi was of Hungarian origins. Nowadays there are a lot of variations of the Hungarian notations, but in the beginning was one called Apps Hungarian, named after the group Simonyi was working in, called Applications, that was in charged with developing Word and Excel. Later, the group that developed the Windows barrowed the convention without understanding it, and developed a second version called System Hungarian. That was evangelized by Charles Petzold in his bestseller &#8220;Programming Windows&#8221;, probably the bible of windows programmers.<\/p>\n<p>Though Simonyi had some good intentions and ideas, they were misinterpreted, and that led to a bad convention style. All because he used the term &#8220;type&#8221; when he actually meant &#8220;kind&#8221;. In a paper, written in an academic style, he wrote:<\/p>\n<p><em>&#8220;The basic idea is to name all quantities by their type.&#8221;<\/em><\/p>\n<p>Though he used to quote the word <em>type<\/em>, and tries to explain that a type is defined by a set of operators that apply to a quantity, people did not correctly undestand what he was saying. He used <em>rgX<\/em> to indicate an array of X or &#8220;range X&#8221;, <em>cX<\/em>, to count the instances of X, or <em>dX<\/em> for the difference between two instances of type X.\u00a0Apps Hungarian was used for Excel and Word, where\u00a0<em>rowWidth<\/em> could be an integer variable specifying the width of a row, and <em>dX<\/em> also an integer variable but specifying the number of selected colums. In his Apps Notation it didn&#8217;t make any sense for instance to add <em>dX<\/em> to <em>rowWidth<\/em>, though these were both integers, which\u00a0has an operator + defined. They have the same <em>type<\/em>, but they are not of same <em>kind<\/em>. The original paper of Charles Simonyi was published in 1999 in MSDN: <a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/aa260976(VS.60).aspx\">http:\/\/msdn2.microsoft.com\/en-us\/library\/aa260976(VS.60).aspx<\/a>.\u00a0<\/p>\n<p>The Apps Hungarian focused on the semantic of quantities (variables, functions). In Systems Hungarian, however, the focus was moved on type. With <em>p<\/em> indicating pointer, <em>ch<\/em> characters, <em>dw<\/em> double words, <em>ar<\/em> arrays, <em>sz<\/em>, null-terminated strings,\u00a0or <em>lp<\/em> far pointers, you could see variables named like <em>lpszName<\/em> (long pointer to null-terminted string specifing a name), <em>dwI<\/em> (double word index), <em>arx<\/em> (array of X), but also things like <em>lpararszID<\/em> (long pointer to an array of arrays of null terminated strings). Now imagine hundred of thousand on lines of code written line that. It simply makes my head ache. Such\u00a0notations <em>cannot<\/em> make the code more readable. Only the oposite.<\/p>\n<p>If you look up on the web, you&#8217;ll see a lot of notation conventions for the same language. Even for the Hungarian notations, there are plenty of variants. Here are just two that\u00a0I picked-up randomly with a google search:<br \/>\n<a href=\"http:\/\/web.umr.edu\/~cpp\/common\/hungarian.html\">http:\/\/web.umr.edu\/~cpp\/common\/hungarian.html<\/a><br \/>\n<a href=\"http:\/\/www.gregleg.com\/oldHome\/hungarian.html\">http:\/\/www.gregleg.com\/oldHome\/hungarian.html<\/a><\/p>\n<p>I say enough with bad style programming! The days of such notations are long gone. Today Intellisense help you writing the code. When you use an object and type . or -> it automatically shows you the list of functions, variables, properties, etc.\u00a0it has.\u00a0When you write a function name it shows you the prototype, with all the overloads, parameters type and name, and even comments. And many other features\u00a0that replace the need to\u00a0prefix your variables with a long string of letters that you can barely read. Joel Spolsky wrote a very good article called <a href=\"http:\/\/www.joelonsoftware.com\/articles\/Wrong.html\">Making Wrong Code Look Wrong<\/a>, where among others he explains why the Hungarian notation fell into disgrace and was replaced at Microsoft with a new one with the release of the .NET framework.<\/p>\n<p>I&#8217;m not going to delve into proposing good convention styles, there are plenty available. I just want to make some points: often, what you think it&#8217;s good for you, it proves the oposite in reality. Using bad naming convension is like deeling with a lot of birocrary: too many paper work, no real benefit. Thus I will restrain myself to just a few points:<\/p>\n<ul>\n<li>variables (whether local, global, parameters, etc.) should be named in such a way that the focus is on the kind (the meaning of the variable) not\u00a0the type. <em>dwCnt<\/em> doesn&#8217;t tell me anything, except that its a double word value, but <em>countOfItems<\/em> indicates that this variable is used to count items, regardless it&#8217;s a single or double word. That&#8217;s much more valuable for someone reading and trying to understand your code. When you have two variables <em>dwCnt<\/em> and <em>dwNr<\/em>, perhaps in a given context you may wonder why they are not summed together, but if they were called <em>countOfItems<\/em> and n<em>umberOfBuyers<\/em>, you could immediatelly understand why.<\/li>\n<li>context should not be added aritificially. Tim Ottinger makes a very good point on this matter in his article called <a href=\"http:\/\/www.objectmentor.com\/resources\/articles\/naming.htm\">Ottiger&#8217;s Rules for Variables and Class Naming<\/a>. The company I work for uses a very bad naming convention that adds unnecessary context to variables. They use to prefix the names of types, functions, even variables with the name of the module. For instance if a module is called &#8220;Cluster Display Framework&#8221; (a name invented by me), they prefix everything with <em>CDF<\/em>: variable names, function, parameters,\u00a0types, everything starts with the module name. Such context is totally unnecessary. Prefixing all your entities in a module with the module name does not add any kind of value to the code of that module, because you simply ignore that context. When you write in languages such C++, C#, Java, etc. you have the mechanism of namespaces available. You can put functions,\u00a0classes, etc.\u00a0that belong together inside a namespace, instead of prefixing everything.<\/li>\n<li>unnecessary comments should be avoided. Don&#8217;t write comments just for the sake of writing. That doesn&#8217;t help. Polluting the code with redundant comments is unnecessary. If you have a variable of type string called <em>nameOfUser<\/em>, don&#8217;t add a comment to it, saying it specifies the user name. That is already known from the name of the variable. And that\u00a0leads back\u00a0to the first point I made above. Comments should be used to explain algorithms, or decision makings (why something is called in a particular context). As for the rest, the code should be self-commenting.\u00a0That is a very good point made by\u00a0Rober Fowler in his\u00a0book &#8220;Refactoring&#8221;.<\/li>\n<\/ul>\n<p>With all that being said, I just want to add that perhaps the best naming convension I know is the one use in the .NET framework (you can read about it here <a href=\"http:\/\/www.akadia.com\/services\/naming_conventions.html\">http:\/\/www.akadia.com\/services\/naming_conventions.html<\/a>). I tend to use it lately even in C++, though C++ is not a language\u00a0targeting the framework. It&#8217;s simple and meaningful.\u00a0<\/p>\n<p>To conclude, make sure that when you write code, you do it in such a way that it doesn&#8217;t take a lot of time and head aches to understand it. Keep it simple. Keep it readable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the most important qualities of code is, or at least should be, readability. The simple fact that it works\u00a0is not enough. If it&#8217;s not readable, it definitelly ain&#8217;t maintainable. Thus, our mission, as programmers, is\u00a0to right code, that above being correct, is also readable and understandable. When a new programmer joins a team &#8230; <a title=\"Make Your Code Readable!\" class=\"read-more\" href=\"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/\" aria-label=\"Read more about Make Your Code Readable!\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[9],"tags":[],"class_list":["post-12","post","type-post","status-publish","format-standard","hentry","category-articles_and_tutorials"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Marius Bancila\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Marius Bancila&#039;s Blog | About code. Mostly on C++\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Make Your Code Readable!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2007-03-21T10:16:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2007-03-21T14:44:52+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Make Your Code Readable!\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#article\",\"name\":\"Make Your Code Readable!\",\"headline\":\"Make Your Code Readable!\",\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"},\"datePublished\":\"2007-03-21T05:16:08+02:00\",\"dateModified\":\"2007-03-21T09:44:52+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#webpage\"},\"articleSection\":\"Articles &amp; Tutorials\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/articles_and_tutorials\\\/#listItem\",\"name\":\"Articles &amp; Tutorials\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/articles_and_tutorials\\\/#listItem\",\"position\":2,\"name\":\"Articles &amp; Tutorials\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/articles_and_tutorials\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#listItem\",\"name\":\"Make Your Code Readable!\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#listItem\",\"position\":3,\"name\":\"Make Your Code Readable!\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/articles_and_tutorials\\\/#listItem\",\"name\":\"Articles &amp; Tutorials\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Marius Bancila\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Marius Bancila\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#webpage\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/\",\"name\":\"Make Your Code Readable!\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2007\\\/03\\\/21\\\/the-importance-of-good-code-conventions\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2007-03-21T05:16:08+02:00\",\"dateModified\":\"2007-03-21T09:44:52+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Make Your Code Readable!","description":"","canonical_url":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#article","name":"Make Your Code Readable!","headline":"Make Your Code Readable!","author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"},"datePublished":"2007-03-21T05:16:08+02:00","dateModified":"2007-03-21T09:44:52+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#webpage"},"isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#webpage"},"articleSection":"Articles &amp; Tutorials"},{"@type":"BreadcrumbList","@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/mariusbancila.ro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/articles_and_tutorials\/#listItem","name":"Articles &amp; Tutorials"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/articles_and_tutorials\/#listItem","position":2,"name":"Articles &amp; Tutorials","item":"https:\/\/mariusbancila.ro\/blog\/category\/articles_and_tutorials\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#listItem","name":"Make Your Code Readable!"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#listItem","position":3,"name":"Make Your Code Readable!","previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/articles_and_tutorials\/#listItem","name":"Articles &amp; Tutorials"}}]},{"@type":"Organization","@id":"https:\/\/mariusbancila.ro\/blog\/#organization","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","url":"https:\/\/mariusbancila.ro\/blog\/"},{"@type":"Person","@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author","url":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/","name":"Marius Bancila","image":{"@type":"ImageObject","@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g","width":96,"height":96,"caption":"Marius Bancila"}},{"@type":"WebPage","@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#webpage","url":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/","name":"Make Your Code Readable!","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/#breadcrumblist"},"author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"datePublished":"2007-03-21T05:16:08+02:00","dateModified":"2007-03-21T09:44:52+02:00"},{"@type":"WebSite","@id":"https:\/\/mariusbancila.ro\/blog\/#website","url":"https:\/\/mariusbancila.ro\/blog\/","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","inLanguage":"en-US","publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Marius Bancila's Blog | About code. Mostly on C++","og:type":"article","og:title":"Make Your Code Readable!","og:url":"https:\/\/mariusbancila.ro\/blog\/2007\/03\/21\/the-importance-of-good-code-conventions\/","article:published_time":"2007-03-21T10:16:08+00:00","article:modified_time":"2007-03-21T14:44:52+00:00","twitter:card":"summary","twitter:title":"Make Your Code Readable!"},"aioseo_meta_data":{"post_id":"12","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-18 21:03:35","updated":"2025-12-12 07:06:04","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"author_meta":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"featured_img":null,"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"One of the most important qualities of code is, or at least should be, readability. The simple fact that it works\u00a0is not enough. If it&#8217;s not readable, it definitelly ain&#8217;t maintainable. Thus, our mission, as programmers, is\u00a0to right code, that above being correct, is also readable and understandable. When a new programmer joins a team&hellip;","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/articles_and_tutorials\/\" class=\"advgb-post-tax-term\">Articles &amp; Tutorials<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Articles &amp; Tutorials<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 20 years ago","modified":"Updated 20 years ago"},"absolute_dates":{"created":"Posted on March 21, 2007","modified":"Updated on March 21, 2007"},"absolute_dates_time":{"created":"Posted on March 21, 2007 5:16 am","modified":"Updated on March 21, 2007 9:44 am"},"featured_img_caption":"","series_order":"","jetpack_shortlink":"https:\/\/wp.me\/pYNdv-c","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":0,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"wp:attachment":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}