{"id":298,"date":"2007-12-21T01:51:20","date_gmt":"2007-12-21T06:51:20","guid":{"rendered":"http:\/\/www.phpied.com\/fancy-formatting\/"},"modified":"2007-12-21T01:51:20","modified_gmt":"2007-12-21T06:51:20","slug":"fancy-formatting","status":"publish","type":"post","link":"https:\/\/www.phpied.com\/fancy-formatting\/","title":{"rendered":"Fancy formatting"},"content":{"rendered":"<p>Writing readable code means proper indentation. Usually you'd tab (or use 2 or 4 or 3 spaces) after every curly bracket. Something like this:<\/p>\n<div class=\"hl-main\">\n<pre><span class=\"hl-reserved\">if<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-brackets\">(<\/span><span class=\"hl-reserved\">true<\/span><span class=\"hl-brackets\">)<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-brackets\">{<\/span><span class=\"hl-code\">\r\n    <\/span><span class=\"hl-comment\">\/\/<\/span><span class=\"hl-comment\"> indent<\/span><span class=\"hl-comment\"><\/span><span class=\"hl-code\">\r\n    <\/span><span class=\"hl-reserved\">if<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-brackets\">(<\/span><span class=\"hl-reserved\">false<\/span><span class=\"hl-brackets\">)<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-brackets\">{<\/span><span class=\"hl-code\">\r\n        <\/span><span class=\"hl-comment\">\/\/<\/span><span class=\"hl-comment\"> another indent<\/span><span class=\"hl-comment\"><\/span><span class=\"hl-code\">\r\n        <\/span><span class=\"hl-comment\">\/\/<\/span><span class=\"hl-comment\"> and some more<\/span><span class=\"hl-comment\"><\/span><span class=\"hl-code\">\r\n    <\/span><span class=\"hl-brackets\">}<\/span><span class=\"hl-code\">\r\n<\/span><span class=\"hl-brackets\">}<\/span><\/pre>\n<\/div>\n<p>Same goes when you have a bigger hash\/object sort of thing:<\/p>\n<div class=\"hl-main\">\n<pre><span class=\"hl-reserved\">var<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-identifier\">memememe<\/span><span class=\"hl-code\"> = <\/span><span class=\"hl-brackets\">{<\/span><span class=\"hl-code\">\r\n    <\/span><span class=\"hl-identifier\">name<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stoyan<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">family_name<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stefanov<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">blog<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">https:\/\/www.phpied.com<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">kids_count<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-number\">2<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">books_count<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-number\">3<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">occupation<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">programmer<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">\r\n<\/span><span class=\"hl-brackets\">}<\/span><\/pre>\n<\/div>\n<p>Sometimes I find myself going a little fancy and aligning all the values in the name\/value pairs:<\/p>\n<div class=\"hl-main\">\n<pre><span class=\"hl-reserved\">var<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-identifier\">memememe<\/span><span class=\"hl-code\"> = <\/span><span class=\"hl-brackets\">{<\/span><span class=\"hl-code\">\r\n    <\/span><span class=\"hl-identifier\">name<\/span><span class=\"hl-code\">:        <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stoyan<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">family_name<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stefanov<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">blog<\/span><span class=\"hl-code\">:        <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">https:\/\/www.phpied.com<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">kids_count<\/span><span class=\"hl-code\">:  <\/span><span class=\"hl-number\">2<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">books_count<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-number\">3<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">occupation<\/span><span class=\"hl-code\">:  <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">programmer<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">\r\n<\/span><span class=\"hl-brackets\">}<\/span><\/pre>\n<\/div>\n<p>But recently, inspired by Firebug's Net panel way of presenting header information, I tried aligning the keys to the right in addition to aligning the values to the left. So I ended up with something like this:<\/p>\n<div class=\"hl-main\">\n<pre><span class=\"hl-reserved\">var<\/span><span class=\"hl-code\"> <\/span><span class=\"hl-identifier\">memememe<\/span><span class=\"hl-code\"> = <\/span><span class=\"hl-brackets\">{<\/span><span class=\"hl-code\">\r\n          <\/span><span class=\"hl-identifier\">name<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stoyan<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n   <\/span><span class=\"hl-identifier\">family_name<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stefanov<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n          <\/span><span class=\"hl-identifier\">blog<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">https:\/\/www.phpied.com<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">kids_count<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-number\">2<\/span><span class=\"hl-code\">,\r\n   <\/span><span class=\"hl-identifier\">books_count<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-number\">3<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-identifier\">occupation<\/span><span class=\"hl-code\">: <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">programmer<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">\r\n<\/span><span class=\"hl-brackets\">}<\/span><\/pre>\n<\/div>\n<p>Fancy, eh? I liked the way it looks. But then I thought that when writing maintainable code, anything fancy suggests uncommon, uncommon suggests that other team members won't be using it, so it means breaking the rule #1 of writing maintainable code: <em>be predictable<\/em>. (this also happens to be rule #1 of other common activities, such as driving on the highway and designing usable web sites)<\/p>\n<p>This type of formatting is also not easy to type in an editor, so it will require a little more effort. Those two drawbacks are enough, I believe, to dismiss this idea. But I can't help myself liking the way the code looks. Here's a piece of PHP, which looks even better than javascript, because even more characters are centered.<\/p>\n<div class=\"hl-main\">\n<pre><span class=\"hl-inlinetags\">&lt;?php<\/span><span class=\"hl-code\">\r\n<\/span><span class=\"hl-var\">$memememe<\/span><span class=\"hl-code\"> = <\/span><span class=\"hl-reserved\">array<\/span><span class=\"hl-brackets\">(<\/span><span class=\"hl-code\">\r\n          <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">name<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\"> =&gt; <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stoyan<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n   <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">family_name<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\"> =&gt; <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">Stefanov<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n          <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">blog<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\"> =&gt; <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">https:\/\/www.phpied.com<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">kids_count<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\"> =&gt; <\/span><span class=\"hl-number\">2<\/span><span class=\"hl-code\">,\r\n   <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">books_count<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\"> =&gt; <\/span><span class=\"hl-number\">3<\/span><span class=\"hl-code\">,\r\n    <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">occupation<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\"> =&gt; <\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-string\">programmer<\/span><span class=\"hl-quotes\">'<\/span><span class=\"hl-code\">\r\n<\/span><span class=\"hl-brackets\">)<\/span><span class=\"hl-code\">;\r\n<\/span><span class=\"hl-inlinetags\">?&gt;<\/span><\/pre>\n<\/div>\n<p>Ain't that cool?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Writing readable code means proper indentation. Usually you&#8217;d tab (or use 2 or 4 or 3 spaces) after every curly bracket. Something like this: if (true) { \/\/ indent if (false) { \/\/ another indent \/\/ and some more } } Same goes when you have a bigger hash\/object sort of thing: var memememe = [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,54,40],"tags":[],"_links":{"self":[{"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/posts\/298"}],"collection":[{"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/comments?post=298"}],"version-history":[{"count":0,"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/posts\/298\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/media?parent=298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/categories?post=298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.phpied.com\/wp-json\/wp\/v2\/tags?post=298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}