{"id":734,"date":"2021-10-09T19:22:09","date_gmt":"2021-10-10T00:22:09","guid":{"rendered":"https:\/\/rb-sns.com\/RB\/blog\/?p=734"},"modified":"2021-10-09T19:22:10","modified_gmt":"2021-10-10T00:22:10","slug":"reasons-to-avoid-code-generators","status":"publish","type":"post","link":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/","title":{"rendered":"Reasons To Avoid Code Generators"},"content":{"rendered":"<p><span data-preserver-spaces=\"true\">When one goes looking for reasons to use code generators, the articles tend to skew positive. I guess most people need to be convinced that these are good tools. However, there is a dark side to code generators. Well, that may be a bit over-dramatic. However, there are reasons that a code generator should be avoided and definite drawbacks to using one. Allow me to make the case against these productivity tools.<\/span><\/p>\n<h2><span data-preserver-spaces=\"true\">Ignorance By Abstraction<\/span><\/h2>\n<p><span data-preserver-spaces=\"true\">The first problem we can look at is what I call ignorance by abstraction. This effect happens when we shield people from the underlying process for any task. For example, you look at your watch and read the time. You have no idea how it &#8220;knows&#8221; what time it is. You are ignorant of that functionality or process. Code generators often provide that abstraction. Yes, a developer can always review the source code. However, how often do you see that happening? There may be an initial deep dive into the generated code when the tool is evaluated. That is where it ends in most cases. You<\/span><a class=\"editor-rtfLink\" href=\"https:\/\/rb-sns.com\/RB\/blog\/the-cost-of-technology\/\" target=\"_blank\" rel=\"noopener\"><span data-preserver-spaces=\"true\">\u00a0assess the tool<\/span><\/a><span data-preserver-spaces=\"true\">\u00a0and then trust it. Future developers may blindly use it and never even see the source code.<\/span><\/p>\n<h2><span data-preserver-spaces=\"true\">Confusing Custom With Standard<\/span><\/h2>\n<p><span data-preserver-spaces=\"true\">Frameworks also suffer from this weakness, but code generators hide it better. This situation occurs when a developer gets so used to how a tool helps, they think it is part of the environment. There are many developer tools that fall into this category. The result can be great for productivity but can also end with tool lock-in or limit career moves. I have come across developers that end up stuck in a job because they are so reliant on the tools that the company provides. That may seem like a win for the company, but it can scare away better talent. These environments also deter those that want to focus on learning a language or environment. Instead, your team is just learning tool usage.<\/span><\/p>\n<h2><span data-preserver-spaces=\"true\">Performance And Maintenance Woes<\/span><\/h2>\n<p><span data-preserver-spaces=\"true\">An often overlooked weakness in code generators (and frameworks) is how they provide a general solution. In some cases, this just leads to unused code. On the other hand, it can lead to slow code that is difficult to maintain. It can be frustrating and time-consuming to sort\u00a0<\/span><a class=\"editor-rtfLink\" href=\"https:\/\/develpreneur.com\/three-tips-for-faster-debugging\/\" target=\"_blank\" rel=\"noopener\"><span data-preserver-spaces=\"true\">through excess code while debugging<\/span><\/a><span data-preserver-spaces=\"true\">. There also are performance issues that often arise. The best way to build a code generator that allows for extensible code is through abstraction. However, those abstraction layers take time to process during runtime. That can cause performance issues that cannot be overcome. The generated code provides a baseline that cannot be moved without removing the tool. When you hit those sorts of walls, you will hear a lot of wailing and gnashing of teeth.<\/span><\/p>\n<h2><span data-preserver-spaces=\"true\">Regeneration Nightmares<\/span><\/h2>\n<p><span data-preserver-spaces=\"true\">I worked on code generators early in my career for a tool called Power Builder. We ended up often having more layers on top of the primary tool than it supported. We ended up spending hours each week in generation and regeneration and compiling cycles. I lost track of how many hours were spent in non-productive waiting for a system process to complete. This was not uncommon in those days of application compiles that often took dozens of minutes or more. Nevertheless, we had to be aware of what might be over-written in our code during a regeneration process. Likewise, there are side effects we might have on the same. I am not sure the resulting time savings were worth it.<\/span><\/p>\n<h2><span data-preserver-spaces=\"true\">Scalability and Extension<\/span><\/h2>\n<p><span data-preserver-spaces=\"true\">That leads to another weakness code generators can run into. They do not always scale. I have run into this often with RDBMS object mapping generators. The tools have an approach that makes assumptions that make sense until you get to large or complex solutions. The problems may occur as name collisions, objects with too many properties, tables with too many columns, or overhead that buries the system. Consider what audit information adds when you scale it to large and complex systems. Do you really need audit information for every data lookup item?<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">While some solutions and generators provide configuration or customization, that can also be expensive in both time and performance. There is a chance that an update of the tool or even a new code generation will break custom code. Those changes may also fall outside of the patterns the code generator uses and have a negative impact on application performance. Think of it as the tool plotting a specific course through the generated code. Then, the customization tries to change the course. There is a form of working against yourself that occurs in those situations that can cause maintenance and performance degradation.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.<\/p>\n","protected":false},"author":1,"featured_media":738,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[20],"tags":[34,49],"class_list":["post-734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-building-software","tag-software-development","tag-tools"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reasons To Avoid Code Generators -<\/title>\n<meta name=\"description\" content=\"I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reasons To Avoid Code Generators -\" \/>\n<meta property=\"og:description\" content=\"I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-10T00:22:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-10T00:22:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"341\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rob Broadhead\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rbcposts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Broadhead\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\"},\"author\":{\"name\":\"Rob Broadhead\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/person\/7a90d1b48e7e23c820769e418263da94\"},\"headline\":\"Reasons To Avoid Code Generators\",\"datePublished\":\"2021-10-10T00:22:09+00:00\",\"dateModified\":\"2021-10-10T00:22:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\"},\"wordCount\":788,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png\",\"keywords\":[\"software development\",\"tools\"],\"articleSection\":[\"Building Software\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\",\"url\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\",\"name\":\"Reasons To Avoid Code Generators -\",\"isPartOf\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png\",\"datePublished\":\"2021-10-10T00:22:09+00:00\",\"dateModified\":\"2021-10-10T00:22:10+00:00\",\"description\":\"I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.\",\"breadcrumb\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage\",\"url\":\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png\",\"contentUrl\":\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png\",\"width\":512,\"height\":341,\"caption\":\"Code Generators\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rb-sns.com\/RB\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reasons To Avoid Code Generators\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#website\",\"url\":\"https:\/\/rb-sns.com\/RB\/blog\/\",\"name\":\"\",\"description\":\"Technology That Serves the Business, Not the Other Way Around\",\"publisher\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rb-sns.com\/RB\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#organization\",\"name\":\"RB Consulting, Inc.\",\"url\":\"https:\/\/rb-sns.com\/RB\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2016\/12\/RBLogo.png\",\"contentUrl\":\"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2016\/12\/RBLogo.png\",\"width\":256,\"height\":256,\"caption\":\"RB Consulting, Inc.\"},\"image\":{\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/robbroadhead\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/person\/7a90d1b48e7e23c820769e418263da94\",\"name\":\"Rob Broadhead\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bd120f8660b05d3d93d8889bc23970acf7146d65968ccea2a3f4ff25a38e28f9?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bd120f8660b05d3d93d8889bc23970acf7146d65968ccea2a3f4ff25a38e28f9?s=96&d=mm&r=pg\",\"caption\":\"Rob Broadhead\"},\"description\":\"Rob is a seasoned software developer and technology professional. His background includes over 30 years of development. It includes enterprise systems on a wide variety of system architectures and platforms. His roles have included staff developer, director of development, architect, database administrator, and many points in between. He founded RB Consulting as a software development and implementation consulting company. However, after witnessing a significant number of poorly planned and designed projects, he altered the business focus. The primary focus is on helping customers put together well-designed project plans and navigating the vast sea of technology. This includes building teams\/departments to address IT needs in the future as well as for today. There is also still a software development wing of the company and implementation consulting. Rob received his MBA (with a concentration in e-Business) at the University of Phoenix. He also holds a BS in Computer Science from Rose-Hulman Institute of Technology. He has written and published a semi-biographical book, e-books, and a book on software development careers. He is a podcaster (The Building Better Developers\/Develpreneur podcast) and a regular contributor to Develpreneur, as well as his personal blog on this site.\",\"sameAs\":[\"https:\/\/develpreneur.com\",\"https:\/\/linkedin.com\/robbroadhead\",\"https:\/\/x.com\/rbcposts\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reasons To Avoid Code Generators -","description":"I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.","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:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/","og_locale":"en_US","og_type":"article","og_title":"Reasons To Avoid Code Generators -","og_description":"I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.","og_url":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/","article_published_time":"2021-10-10T00:22:09+00:00","article_modified_time":"2021-10-10T00:22:10+00:00","og_image":[{"width":512,"height":341,"url":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png","type":"image\/png"}],"author":"Rob Broadhead","twitter_card":"summary_large_image","twitter_creator":"@rbcposts","twitter_misc":{"Written by":"Rob Broadhead","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#article","isPartOf":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/"},"author":{"name":"Rob Broadhead","@id":"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/person\/7a90d1b48e7e23c820769e418263da94"},"headline":"Reasons To Avoid Code Generators","datePublished":"2021-10-10T00:22:09+00:00","dateModified":"2021-10-10T00:22:10+00:00","mainEntityOfPage":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/"},"wordCount":788,"commentCount":1,"publisher":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/#organization"},"image":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage"},"thumbnailUrl":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png","keywords":["software development","tools"],"articleSection":["Building Software"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/","url":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/","name":"Reasons To Avoid Code Generators -","isPartOf":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage"},"image":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage"},"thumbnailUrl":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png","datePublished":"2021-10-10T00:22:09+00:00","dateModified":"2021-10-10T00:22:10+00:00","description":"I guess most people need to be convinced that these are good tools. \u00a0However, there is a dark side to code generators.","breadcrumb":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#primaryimage","url":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png","contentUrl":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2021\/10\/CodeGen.png","width":512,"height":341,"caption":"Code Generators"},{"@type":"BreadcrumbList","@id":"https:\/\/rb-sns.com\/RB\/blog\/reasons-to-avoid-code-generators\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rb-sns.com\/RB\/blog\/"},{"@type":"ListItem","position":2,"name":"Reasons To Avoid Code Generators"}]},{"@type":"WebSite","@id":"https:\/\/rb-sns.com\/RB\/blog\/#website","url":"https:\/\/rb-sns.com\/RB\/blog\/","name":"","description":"Technology That Serves the Business, Not the Other Way Around","publisher":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rb-sns.com\/RB\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/rb-sns.com\/RB\/blog\/#organization","name":"RB Consulting, Inc.","url":"https:\/\/rb-sns.com\/RB\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2016\/12\/RBLogo.png","contentUrl":"https:\/\/rb-sns.com\/RB\/blog\/wp-content\/uploads\/2016\/12\/RBLogo.png","width":256,"height":256,"caption":"RB Consulting, Inc."},"image":{"@id":"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/robbroadhead"]},{"@type":"Person","@id":"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/person\/7a90d1b48e7e23c820769e418263da94","name":"Rob Broadhead","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rb-sns.com\/RB\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bd120f8660b05d3d93d8889bc23970acf7146d65968ccea2a3f4ff25a38e28f9?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bd120f8660b05d3d93d8889bc23970acf7146d65968ccea2a3f4ff25a38e28f9?s=96&d=mm&r=pg","caption":"Rob Broadhead"},"description":"Rob is a seasoned software developer and technology professional. His background includes over 30 years of development. It includes enterprise systems on a wide variety of system architectures and platforms. His roles have included staff developer, director of development, architect, database administrator, and many points in between. He founded RB Consulting as a software development and implementation consulting company. However, after witnessing a significant number of poorly planned and designed projects, he altered the business focus. The primary focus is on helping customers put together well-designed project plans and navigating the vast sea of technology. This includes building teams\/departments to address IT needs in the future as well as for today. There is also still a software development wing of the company and implementation consulting. Rob received his MBA (with a concentration in e-Business) at the University of Phoenix. He also holds a BS in Computer Science from Rose-Hulman Institute of Technology. He has written and published a semi-biographical book, e-books, and a book on software development careers. He is a podcaster (The Building Better Developers\/Develpreneur podcast) and a regular contributor to Develpreneur, as well as his personal blog on this site.","sameAs":["https:\/\/develpreneur.com","https:\/\/linkedin.com\/robbroadhead","https:\/\/x.com\/rbcposts"]}]}},"_links":{"self":[{"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/posts\/734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/comments?post=734"}],"version-history":[{"count":4,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/posts\/734\/revisions"}],"predecessor-version":[{"id":739,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/posts\/734\/revisions\/739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/media\/738"}],"wp:attachment":[{"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/media?parent=734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/categories?post=734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rb-sns.com\/RB\/blog\/wp-json\/wp\/v2\/tags?post=734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}