{"id":95303,"date":"2019-08-20T13:00:39","date_gmt":"2019-08-20T10:00:39","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=95303"},"modified":"2019-08-19T10:13:28","modified_gmt":"2019-08-19T07:13:28","slug":"need-driven-software-development-using-mocks","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html","title":{"rendered":"Need driven software development using Mocks"},"content":{"rendered":"<p>Excellent\u00a0 <a href=\"http:\/\/jmock.org\/oopsla2004.pdf\">paper <\/a>on mocking framework by jmock author. This paper was written in 2004 that is 18 years ago but has many tips of building maintainable software system.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"638\" height=\"479\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2019\/08\/pycon2016to-mock-or-not-to-mock-that-is-the-questions-1-638.jpg\" alt=\"\" class=\"wp-image-95317\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2019\/08\/pycon2016to-mock-or-not-to-mock-that-is-the-questions-1-638.jpg 638w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2019\/08\/pycon2016to-mock-or-not-to-mock-that-is-the-questions-1-638-300x225.jpg 300w\" sizes=\"(max-width: 638px) 100vw, 638px\" \/><\/figure>\n<\/div>\n<p>In this post i will highlight key ideas from this paper but suggest you to read the paper to get big ideas behind mocking and programming practice.<\/p>\n<p>&nbsp;Mock objects are extension of test driven development.<\/p>\n<p>Mock objects can be useful when we start thinking about writing test first as this allows to mock parts that is still not developed. Think like better way of building prototype system.<\/p>\n<p>Mock object are less interesting as a technique for isolating tests from third-party libraries.<\/p>\n<p>This is common misconception about mock and i have seen\/written many codes using mock like this. This was really eye opening fact that comes from author of mocking framework.<\/p>\n<p>Writing test is design activity<\/p>\n<p>This is so much true but as engineer we take shortcut many time to throw away best part of writing test. Design that is driven from test also gives insights about real problem and it lead to<br \/><i>invention<\/i>&nbsp;because developer has to think hard about problem&nbsp; and avoid over engineering<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Coupling and cohesion&nbsp;<\/p>\n<p>As we start wiring test it gives good idea on coupling &amp; cohesion decision we make. Good software will have low coupling and high cohesion. This also lead to functional decomposition of task.<\/p>\n<p>Another benefit of well design system is that it does not have\u00a0 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Law_of_Demeter\">Law_of_Demeter<\/a>, this is one of the common problem that gets introduced in system unknowingly. Lots of micro services suffer from this anti pattern.<\/p>\n<p>Need driven development<\/p>\n<p>As mocking requires explicit code\/setup, so it comes from need\/demand of test case. You don&#8217;t code based on forecast that some feature will required after 6 months, so this allows to focus on need of customer. All the interfaces that is produce as result of test is narrow and fit for purpose. This type of development is also called top down development.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Quote from paper<\/p>\n<p><i>&#8220;&#8221;&#8221;<\/i><\/p>\n<p><i>We find that Need-Driven Development helps us stay focused\u00a0on the requirements in hand and to develop coherent objects.<\/i><\/p>\n<p><i>&#8220;&#8221;&#8221;<\/i><\/p>\n<\/blockquote>\n<p>Programming by composition<\/p>\n<p>Test first approach allows you to think about&nbsp;Composability of components, every thing is passed as constructor arguments or as method parameter.<\/p>\n<p>Once system is build using such design principal it is very easy to test\/replace part of system.<\/p>\n<p>Mock objects allows to think about&nbsp;Composability so that some parts of system are mocked.<\/p>\n<p>Mock test becomes too complicated<\/p>\n<p>One observation in paper talks about complexity of Mock Test.<\/p>\n<p>If system design is weak then mocking will be hard and complicated. It does amplification of problems like coupling, separation of concern.&nbsp; I think this is best use of mock objects to get feedback on design and use it like motivator to make system better.<\/p>\n<p>Don&#8217;t add behavior to mock<\/p>\n<p>As per paper we should never add behavior to stub and in case if you get the temptation to do that then it is sign of misplaced responsibility.<\/p>\n<p>If you like the post then you can <a href=\"https:\/\/twitter.com\/ashkrit\">follow me on twitter<\/a> to be notified about random stuff that i write.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Java Code Geeks with permission by Ashkrit Sharma, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener noreferrer\">JCG program<\/a>. See the original article here: <a href=\"http:\/\/ashkrit.blogspot.com\/2019\/08\/need-driven-software-development-using.html\" target=\"_blank\" rel=\"noopener noreferrer\">Need driven software development using Mocks<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Excellent\u00a0 paper on mocking framework by jmock author. This paper was written in 2004 that is 18 years ago but has many tips of building maintainable software system. In this post i will highlight key ideas from this paper but suggest you to read the paper to get big ideas behind mocking and programming practice. &hellip;<\/p>\n","protected":false},"author":436,"featured_media":148,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[1924,276,1925],"class_list":["post-95303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-core-java","tag-jmock","tag-tdd","tag-unit-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Need driven software development using Mocks - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Interested to learn about mocking framework? Check our article presenting some tips of building maintainable software system.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Need driven software development using Mocks - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about mocking framework? Check our article presenting some tips of building maintainable software system.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-20T10:00:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ashkrit Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/ashkrit\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashkrit Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html\"},\"author\":{\"name\":\"Ashkrit Sharma\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/a33969e7ad234c75747b6cd427ac72e7\"},\"headline\":\"Need driven software development using Mocks\",\"datePublished\":\"2019-08-20T10:00:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html\"},\"wordCount\":576,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"keywords\":[\"JMock\",\"TDD\",\"Unit Test\"],\"articleSection\":[\"Core Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html\",\"name\":\"Need driven software development using Mocks - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"datePublished\":\"2019-08-20T10:00:39+00:00\",\"description\":\"Interested to learn about mocking framework? Check our article presenting some tips of building maintainable software system.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/08\\\/need-driven-software-development-using-mocks.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Core Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/core-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Need driven software development using Mocks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/a33969e7ad234c75747b6cd427ac72e7\",\"name\":\"Ashkrit Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g\",\"caption\":\"Ashkrit Sharma\"},\"description\":\"Pragmatic software developer who loves practice that makes software development fun and likes to develop high performance &amp; low latency system.\",\"sameAs\":[\"http:\\\/\\\/ashkrit.blogspot.com\",\"http:\\\/\\\/www.linkedin.com\\\/in\\\/ashkrit\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/ashkrit\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ashkrit-sharma\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Need driven software development using Mocks - Java Code Geeks","description":"Interested to learn about mocking framework? Check our article presenting some tips of building maintainable software system.","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:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html","og_locale":"en_US","og_type":"article","og_title":"Need driven software development using Mocks - Java Code Geeks","og_description":"Interested to learn about mocking framework? Check our article presenting some tips of building maintainable software system.","og_url":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2019-08-20T10:00:39+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","type":"image\/jpeg"}],"author":"Ashkrit Sharma","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/ashkrit","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ashkrit Sharma","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html"},"author":{"name":"Ashkrit Sharma","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/a33969e7ad234c75747b6cd427ac72e7"},"headline":"Need driven software development using Mocks","datePublished":"2019-08-20T10:00:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html"},"wordCount":576,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","keywords":["JMock","TDD","Unit Test"],"articleSection":["Core Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html","url":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html","name":"Need driven software development using Mocks - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","datePublished":"2019-08-20T10:00:39+00:00","description":"Interested to learn about mocking framework? Check our article presenting some tips of building maintainable software system.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2019\/08\/need-driven-software-development-using-mocks.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Core Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/core-java"},{"@type":"ListItem","position":4,"name":"Need driven software development using Mocks"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/a33969e7ad234c75747b6cd427ac72e7","name":"Ashkrit Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g","caption":"Ashkrit Sharma"},"description":"Pragmatic software developer who loves practice that makes software development fun and likes to develop high performance &amp; low latency system.","sameAs":["http:\/\/ashkrit.blogspot.com","http:\/\/www.linkedin.com\/in\/ashkrit","https:\/\/x.com\/https:\/\/twitter.com\/ashkrit"],"url":"https:\/\/www.javacodegeeks.com\/author\/ashkrit-sharma"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/95303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/436"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=95303"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/95303\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/148"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=95303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=95303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=95303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}