{"id":921,"date":"2010-06-09T08:37:54","date_gmt":"2010-06-09T15:37:54","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=921"},"modified":"2018-04-12T01:11:26","modified_gmt":"2018-04-12T05:11:26","slug":"dont-snub-the-code-review","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/dont-snub-the-code-review\/","title":{"rendered":"Don&rsquo;t Snub the Code Review"},"content":{"rendered":"<p>The topic of code reviews has always caused much debate in many software shops where I have worked.\\n\\nI am often asked what my opinion of doing code reviews is.\u00a0 My answer might surprise you.\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border: 0px;\" title=\"wtfs_per_minute\" alt=\"code reviews\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute_thumb.jpg\" width=\"484\" height=\"438\" border=\"0\" \/><\/a>\\n\\nI don\u2019t like them.\u00a0 I prefer not to do them.\\n\\nWhat?\\n\\nLet me be more specific.\u00a0 I don\u2019t like code reviews that happen after the work is already done.\\n\\nI do like code reviews that happen continuously as the work is being done.\u00a0 This is called <a href=\"https:\/\/simpleprogrammer.com\/2009\/12\/11\/pair-programming-why\/\">paired programming<\/a>.\u00a0 (This <a href=\"http:\/\/prezi.com\/7syjl9hdcxga\/pair-programming\/\">prezi presentation<\/a> might also be helpful.)\\n\\n<\/p>\n<h2>Paired programming = continuous code review?<\/h2>\n<p>\\n\\nYes.\u00a0 That is exactly what I am saying.\\n\\nThink about it for a second.\u00a0 Can you really have a better, more honest, and more interactive code review than paired programming provides?\u00a0 If two developers are working jointly on a portion of code, it is being reviewed as it is being written.\\n\\nI\u2019m going to divert a bit to talk about some of the common problems that happen in code reviews, then I\u2019m going to talk about how paired programming solves them.\\n\\n<\/p>\n<h2>Code review problems<\/h2>\n<p>\\n\\n<strong>#1.\u00a0 Not telling the truth<\/strong>\\n\\nThere really is no value in a code review where no one says what they really think is wrong with the code and instead picks out some little non-offensive thing like a naming convention that wasn\u2019t followed.\\n\\nAll too often code reviews are dominated by a fear of insulting the person\u2019s code that is being reviewed.\u00a0 This kind of weak code review provides no benefit.\u00a0 I would go so far as to say it is reinforcing the practice of writing bad code because bad code is rubber stamped.\\n\\n<strong>#2.\u00a0 Ego<\/strong>\\n\\nTo have a successful code review everyone has to check their ego at the door.\u00a0 This rarely happens.\u00a0 Code is something that has been creatively designed; not too many people can take a critique of their labor, even fewer of their art.\\n\\nWithout a spirit of humility and openness, code reviews don\u2019t provide any value.\u00a0 It is one thing to point out a problem, it is another thing to do something about it.\\n\\n<strong>#3.\u00a0 Wrong focus<\/strong>\\n\\nOne of the most common errors of code reviews is paying attention to formatting, coding style, or naming conventions.\u00a0 Those topics don\u2019t belong in a code review at all.\\n\\nTools can automatically format the code and statically analyze problems with coding style or naming conventions.\u00a0 <strong>It is a complete and total waste of time to have a human reviewer review any of those things.<\/strong>\\n\\nSeriously, if someone comes into a code review and they haven\u2019t run the auto code formatter on their code and they haven\u2019t run the static analysis tools and fixed the problems found there, don\u2019t be rude, just tell them nicely that their code is not ready for review.\\n\\n<em>Side note here: There is often debate on whether we should enforce code formatting, or enforce coding style, or enforce naming conventions.\u00a0 YES! YES! YES!\u00a0 Consistency is hugely important!\u00a0 Code is read more than written and consistent code is easier to read.\u00a0 Have this discussion once, put together the automated tools to automatically format the code, and automatically check the requirements. <\/em>\\n\\n<em>Don\u2019t spend months making up your special coding standards document.\u00a0 Use some rule sets from any number of static analysis tools and start enforcing them.\u00a0 Make them part of your build, make check-ins fail for formatting problems, make your IDE auto-format on save.\u00a0 Deciding the perfect placement of curly brackets and whitespace is not nearly as important as being consistent.\u00a0 Just pick something and enforce it.<\/em>\\n\\nCode reviews should focus on design, structure, and understandability of the code.\u00a0 <strong>Code reviews should never ever ever ever ever ever ever focus on anything that can be automatically checked or enforced\u2026 ever!<\/strong>\\n\\n<strong>#4.\u00a0 Rush &amp; Inconsistency<\/strong>\\n\\nTeams rarely have or make time for code reviews.\u00a0 If they do, it is inconsistent and not applied to all code, which causes the value to be lost.\u00a0 If you have a huge fence around a perimeter yet a large hole where people can just crawl in, the fence is worthless.\\n\\nThere is no point doing a code review where the code is not reviewed in depth.\u00a0 Just scanning over the code and picking on a few variable names here and there does no good.\u00a0 If you&#8217;re not prepared to fully immerse yourself into the code being reviewed, and dive deep down into understanding exactly what it is doing, don\u2019t bother.\\n\\n<\/p>\n<h2>Paired programming to the rescue<\/h2>\n<p>\\n\\nPaired programming is like just-in-time code reviews.\u00a0 It solves many of these issues by having a common goal and creating a joint ownership in the code.\\n\\nAs you pair up with different members of your team, you are likely to be more honest, be less egotistical, focus on the problem not the conventions, and delve deeply into the code.\\n\\nIt is no secret that my preferred <em>modus operandi <\/em>is no code review, instead paired programming, with everyone monitoring commits to source control, and can flag something and have a discussion if they see something troubling.\\n\\n<\/p>\n<h2>What if paired programming is not an option?<\/h2>\n<p>\\n\\nWell, try to make it one.\u00a0 Paired programming is a great investment.\\n\\n<strong>But, if you are not doing paired programming, you absolutely should be doing code reviews. <\/strong>I might have extolled some of the problems with code reviews and I advocate paired programming, but let\u2019s not mince words here.\\n\\n<strong>Pair programming is a better way of doing continuous or just-in-time code reviews.\u00a0 Not doing any form of code reviews is just plain stupid.<\/strong>\\n\\nIf you had a construction team building your house or your 20 million dollar sky scraper and they told you that they were not doing engineering reviews of the work that was done, you would probably fire that construction company on the spot.\u00a0 Building software is several levels of complexity higher than that of most physical construction projects.\u00a0 <strong>If you call yourself an engineer and you are not subjecting your work to regular review, you are just an amateur playing \u201cengineer.\u201d<\/strong>\\n\\nSo, if you must do the old-fashioned code review, here are some tips I found useful:\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>Encourage people to be honest by doing some exercises where everyone reviews some code that wasn\u2019t written by anyone on your team.\u00a0 Encourage people to be as prejudice as possible when reviewing the code.<\/li>\n<p>\\n    <\/p>\n<li>Set your expectations.\u00a0 Code reviews are not an approval process, they are an improvement process.\u00a0 Make sure the team is aware of this.\u00a0 Code reviews are a place you take your code to make it better, and to better your skills.\u00a0 Foster that kind of thinking.<\/li>\n<p>\\n    <\/p>\n<li>Automate all of the nit-picky stuff and set coding standards, formatting standards, and style standards.\u00a0 Decide what they will be together, or have your experienced people do it, but get it done, make conformance non-optional, and make it automated.<\/li>\n<p>\\n    <\/p>\n<li>Develop consistent standards and practice about doing code reviews.\u00a0 Set aside enough time to delve deeply into the code.\u00a0 Set and enforce standards of when and how code is reviewed.<\/li>\n<p>\\n    <\/p>\n<li>Lead by example.\u00a0 Proactively ask members of your team to look at your code and tell you how to improve it.\u00a0 Ask if this can be done a better way.\u00a0 Show a genuine interest in feedback and improvement, this attitude will catch on.<\/li>\n<p>\\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The topic of code reviews has always caused much debate in many software shops where I have worked.\\n\\nI am often asked what my opinion of doing code reviews is.\u00a0 My answer might surprise you.\\n\\n\\n\\nI don\u2019t like them.\u00a0 I prefer not to do them.\\n\\nWhat?\\n\\nLet me be more specific.\u00a0 I don\u2019t like code reviews that happen after&#8230;<\/p>\n","protected":false},"author":2,"featured_media":919,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[2185,524297,148,264,2148526,31679,5895],"tags":[],"class_list":["post-921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices","category-code-reviews","category-design","category-learning","category-paired-programming","category-process-improvement","category-self-improvement"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Don&#039;t Snub the Code Review<\/title>\n<meta name=\"description\" content=\"An explanation of how pair programming is more effective than standard code reviews. Five tips for improving standard code reviews are included.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Don&#039;t Snub the Code Review\" \/>\n<meta property=\"og:description\" content=\"An explanation of how pair programming is more effective than standard code reviews. Five tips for improving standard code reviews are included.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2010-06-09T15:37:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-12T05:11:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"362\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"John Sonmez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Sonmez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/dont-snub-the-code-review\\\/\"},\"author\":{\"name\":\"John Sonmez\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"headline\":\"Don&rsquo;t Snub the Code Review\",\"datePublished\":\"2010-06-09T15:37:54+00:00\",\"dateModified\":\"2018-04-12T05:11:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/dont-snub-the-code-review\\\/\"},\"wordCount\":1275,\"commentCount\":8,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/wtfs_per_minute.jpg\",\"articleSection\":[\"Best Practices\",\"Code Reviews\",\"Design\",\"Learning\",\"Paired Programming\",\"Process Improvement\",\"Self Improvement\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/dont-snub-the-code-review\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\",\"name\":\"Don't Snub the Code Review\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/wtfs_per_minute.jpg\",\"datePublished\":\"2010-06-09T15:37:54+00:00\",\"dateModified\":\"2018-04-12T05:11:26+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"description\":\"An explanation of how pair programming is more effective than standard code reviews. Five tips for improving standard code reviews are included.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/wtfs_per_minute.jpg\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/wtfs_per_minute.jpg\",\"width\":400,\"height\":362,\"caption\":\"code reviews\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Don&rsquo;t Snub the Code Review\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\",\"name\":\"John Sonmez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"caption\":\"John Sonmez\"},\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/jsonmez\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Don't Snub the Code Review","description":"An explanation of how pair programming is more effective than standard code reviews. Five tips for improving standard code reviews are included.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpleprogrammer.com\/products\/careerguide","og_locale":"en_US","og_type":"article","og_title":"Don't Snub the Code Review","og_description":"An explanation of how pair programming is more effective than standard code reviews. Five tips for improving standard code reviews are included.","og_url":"https:\/\/simpleprogrammer.com\/products\/careerguide","og_site_name":"Simple Programmer","article_published_time":"2010-06-09T15:37:54+00:00","article_modified_time":"2018-04-12T05:11:26+00:00","og_image":[{"width":400,"height":362,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg","type":"image\/jpeg"}],"author":"John Sonmez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Sonmez","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/dont-snub-the-code-review\/"},"author":{"name":"John Sonmez","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"headline":"Don&rsquo;t Snub the Code Review","datePublished":"2010-06-09T15:37:54+00:00","dateModified":"2018-04-12T05:11:26+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/dont-snub-the-code-review\/"},"wordCount":1275,"commentCount":8,"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg","articleSection":["Best Practices","Code Reviews","Design","Learning","Paired Programming","Process Improvement","Self Improvement"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/products\/careerguide#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/dont-snub-the-code-review\/","url":"https:\/\/simpleprogrammer.com\/products\/careerguide","name":"Don't Snub the Code Review","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg","datePublished":"2010-06-09T15:37:54+00:00","dateModified":"2018-04-12T05:11:26+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"description":"An explanation of how pair programming is more effective than standard code reviews. Five tips for improving standard code reviews are included.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/products\/careerguide"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/wtfs_per_minute.jpg","width":400,"height":362,"caption":"code reviews"},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Don&rsquo;t Snub the Code Review"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67","name":"John Sonmez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","caption":"John Sonmez"},"url":"https:\/\/simpleprogrammer.com\/author\/jsonmez\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=921"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/921\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/919"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}