{"id":6320,"date":"2015-08-07T12:15:19","date_gmt":"2015-08-07T09:15:19","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=6320"},"modified":"2015-08-05T14:46:16","modified_gmt":"2015-08-05T11:46:16","slug":"understanding-backbone-js-lens-java-programmer","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/","title":{"rendered":"Understanding Backbone.js from the lens of a Java programmer"},"content":{"rendered":"<p>Let me start this blog in favor of backend or server-side programmers by making the following statement:<\/p>\n<p><i>&#8220;A\u00a0server-side programmer (Java or similar) can understand nuances of javascript client or server-side frameworks or libraries much more quickly than an html developer&#8221;.\u00a0<\/i><\/p>\n<p>There are two key reasons behind the above statement:<\/p>\n<ul>\n<li>Client-side development is not limited to HTML\/CSS rather it has evolved to contain <b>programming &amp; design paradigms<\/b>, which is complex for an html programmer.<\/li>\n<li>Design paradigms including patterns needs to be applied to front-end code to keep it <b>maintainable, performant &amp; scalable <\/b>&#8211; which is greenfield for programmers but not for HTML developers.<\/li>\n<\/ul>\n<p>Having said that, I am writing this blog to exhibit that how easy it is for java programmers to co-relate concepts from java to javascript. I have chosen Backbone.js for the same, which is a popular library for developing singe-page web applications.<\/p>\n<p>There is a major difference between Backbone and AngularJS, which is a framework &amp; Backbone is a library. Frameworks impose more constraints &amp; assumptions and are considered to make life easier but at the cost of being more restrictive and heavy (particularly from size of javascript).<\/p>\n<blockquote><p><i>From a java programmer perspective, a JavaScript library is similar to Apache CommonUtils Library (distributable as JAR) whereas framework is Apache Wicket or Spring framework (distributable as set of JARs).<\/i><\/p><\/blockquote>\n<p>Backbone.js is an implementation of MVP pattern (similar to MVC pattern with slight deviation), which is not a new concept for a java programmer (might be for an HTML developer).<\/p>\n<p>A matrix below can be handy for co-relating conceptual elements between Java &amp; Backbone based components:<\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<td><\/td>\n<th>Java<\/th>\n<th>JavaScript (Backbone)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Model<\/th>\n<td>JPA Entity or POJO Class<\/td>\n<td>To create a Model class extend Backbone.Model.extend(). Backbone also has concept of Collection objects, which are nothing but collection of Model objects.<\/td>\n<\/tr>\n<tr>\n<th>View<\/th>\n<td>JSP or XHTML (with scriplet)<\/td>\n<td>There are two parts to it:<\/p>\n<ul>\n<li>Templates as HTMLs \u2013 Backbone leverages own templates or JS templating libraries like Handlebar<\/li>\n<li>View Rendering Code as JavaScript \u2013 On change of model, invokes relevant code to lookup element in DOM and update HTML using Jquery.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>Controller<\/th>\n<td>POJO Class manipulating Models &amp; updating View<\/td>\n<td>A Backbone Router is similar component but not exactly the same. It maps URLs to Javascript functions.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A logical architecture for a single-page client application can be visualized as below:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/08\/ui-fw-600.gif\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6339\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/08\/ui-fw-600.gif\" alt=\"ui-fw-600\" width=\"600\" height=\"299\" \/><\/a><\/p>\n<p>I have created a very simple application, which lists employees along with few data elements.<\/p>\n<p><a href=\"http:\/\/3.bp.blogspot.com\/-njgmJGIGruU\/Vb8-waADKXI\/AAAAAAAAFig\/XwxgMfw9zA4\/s1600\/screen.gif\"><img decoding=\"async\" src=\"http:\/\/3.bp.blogspot.com\/-njgmJGIGruU\/Vb8-waADKXI\/AAAAAAAAFig\/XwxgMfw9zA4\/s640\/screen.gif\" alt=\"\" width=\"640\" height=\"320\" border=\"0\" \/><\/a><\/p>\n<p>Source code in terms of javascript for above application is below, which demonstrates simplicity of using backbone library.<\/p>\n<pre class=\" brush:php\">\/\/ Namespace our app\r\n   var app = {};\r\n\r\n  \/\/ define employee model\r\n  app.employee = Backbone.Model.extend({\r\n\r\n    defaults: {\r\n      company: \"Lorem Ipsum\",\r\n    }\r\n\r\n  });\r\n\r\n  \/\/ define view rendering logic for employee\r\n  app.employeeView = Backbone.View.extend({\r\n\r\n    tagName: \"article\",\r\n    template: _.template( $(\"#employeeElement\").html() ),\r\n\r\n    render: function() {\r\n      var employeeTemplate = this.template(this.model.toJSON());\r\n      this.$el.html(employeeTemplate);\r\n      return this;\r\n    }\r\n  });\r\n\r\n  \/\/ A group (array) of employee models\r\n  app.employeeCollection = Backbone.Collection.extend({\r\n    \/\/ What type of models are in this collection?\r\n    model: app.employee\r\n  });\r\n\r\n  \/\/ defined rendering logic for employee collection\r\n  app.employeeGroupView = Backbone.View.extend({\r\n\r\n    tagName: \"section\",\r\n\r\n    render: function() {\r\n      this.collection.each(this.addEmployee, this);\r\n      return this;\r\n    },\r\n\r\n    addEmployee: function(employee) {\r\n      var employeeView = new app.employeeView ({ model: employee });\r\n      this.$el.append(employeeView.render().el);\r\n    }\r\n  });\r\n\r\n  \/\/ action for URLs\r\n  app.Router = Backbone.Router.extend({\r\n\r\n  routes :{\r\n    \"\": \"noCopy\",\r\n    \"firstEmployee\" : \"firstEmployeeMessage\",\r\n    \"secondEmployee\": \"secondEmployeeMessage\"\r\n  },\r\n\r\n  noCopy: function() {\r\n    $(\".message\").html(\"\");\r\n  },\r\n\r\n  firstEmployeeMessage: function() {\r\n    $(\".message\").html(\" \r\nMessage for First Employee\r\n\");\r\n  },\r\n\r\n  secondEmployeeMessage: function() {\r\n    $(\".message\").html(\" \r\nMessage for Second Employee\r\n\");\r\n  }\r\n\r\n  });\r\n\r\n  \/\/ create data for 2 employees\r\n  var firstEmployee = new app.employee({\r\n    name: \"Ankur Kumar\",\r\n    location: \"Delhi\",\r\n    link: \"firstEmployee\"\r\n  });\r\n\r\n  var secondEmployee = new app.employee({\r\n    name: \"Jon Garton\",\r\n    location: \"Melbourne\",\r\n    link: \"secondEmployee\"\r\n  });\r\n\r\n  var employeeGroup = new app.employeeCollection([\r\n    firstEmployee, secondEmployee\r\n    ]);\r\n\r\n  \/\/ render employee view\r\n  var employeeGroupView = new app.employeeGroupView({ collection: employeeGroup});\r\n  $(\".allEmployees\").html(employeeGroupView.render().el);\r\n  var employeeRouter = new app.Router();\r\n  \r\n  \/\/ for router\r\n  Backbone.history.start();<\/pre>\n<p>All you need now is following HTML snippet in your page to render the view:<\/p>\n<pre class=\" brush:php\">&lt;div class=\"message\"&gt;&lt;div&gt;\r\n&lt;div class=\"allEmployees\"&gt;&lt;\/div&gt;\r\n&lt;script id=\"employeeElement\" type=\"text\/template\"&gt;\r\n&lt;ul&gt;\r\n&lt;li&gt;&lt;strong&gt;Name:&lt;\/strong&gt; &lt;%= name %&gt;&lt;\/li&gt;\r\n&lt;li&gt;&lt;strong&gt;Location:&lt;\/strong&gt; &lt;%= location %&gt;&lt;\/li&gt;\r\n&lt;li&gt;&lt;strong&gt;Company:&lt;\/strong&gt; &lt;%= company %&gt;&lt;\/li&gt;\r\n&lt;li&gt;&lt;strong&gt;Send Message:&lt;\/strong&gt; &lt;a href=\"#&lt;%= link %&gt;\"&gt;Click Here &lt;\/a&gt;&lt;\/li&gt;\r\n&lt;\/ul&gt;\r\n<\/pre>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/ankurkumar78.blogspot.com\/2015\/08\/understanding-backbonejs-from-lens-of-java.html\">Understanding Backbone.js from the lens of a Java programmer<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/wcg\/\">WCG partner<\/a> Ankur Kumar at the <a href=\"http:\/\/ankurkumar78.blogspot.com\/\">Ankur Kumar&#8217;s Blog<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Let me start this blog in favor of backend or server-side programmers by making the following statement: &#8220;A\u00a0server-side programmer (Java or similar) can understand nuances of javascript client or server-side frameworks or libraries much more quickly than an html developer&#8221;.\u00a0 There are two key reasons behind the above statement: Client-side development is not limited to &hellip;<\/p>\n","protected":false},"author":97,"featured_media":915,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-6320","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backbone-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Backbone.js from the lens of a Java programmer - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Let me start this blog in favor of backend or server-side programmers by making the following statement: &quot;A\u00a0server-side programmer (Java or similar) can\" \/>\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.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Backbone.js from the lens of a Java programmer - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Let me start this blog in favor of backend or server-side programmers by making the following statement: &quot;A\u00a0server-side programmer (Java or similar) can\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-07T09:15:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-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=\"Ankur Kumar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ankur Kumar\" \/>\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:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\"},\"author\":{\"name\":\"Ankur Kumar\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/a957a1417fb204ebf53caa266a1f209d\"},\"headline\":\"Understanding Backbone.js from the lens of a Java programmer\",\"datePublished\":\"2015-08-07T09:15:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\"},\"wordCount\":470,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg\",\"articleSection\":[\"Backbone.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\",\"name\":\"Understanding Backbone.js from the lens of a Java programmer - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg\",\"datePublished\":\"2015-08-07T09:15:19+00:00\",\"description\":\"Let me start this blog in favor of backend or server-side programmers by making the following statement: \\\"A\u00a0server-side programmer (Java or similar) can\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Backbone.js\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/backbone-js\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Understanding Backbone.js from the lens of a Java programmer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/a957a1417fb204ebf53caa266a1f209d\",\"name\":\"Ankur Kumar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4ef4bf5f3c360c4d2477f1fc6617f7d26708539b82a84084c0a7d4c74ac717d3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4ef4bf5f3c360c4d2477f1fc6617f7d26708539b82a84084c0a7d4c74ac717d3?s=96&d=mm&r=g\",\"caption\":\"Ankur Kumar\"},\"sameAs\":[\"http:\/\/ankurkumar78.blogspot.com\/\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/ankur-kumar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding Backbone.js from the lens of a Java programmer - Web Code Geeks - 2026","description":"Let me start this blog in favor of backend or server-side programmers by making the following statement: \"A\u00a0server-side programmer (Java or similar) can","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.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Backbone.js from the lens of a Java programmer - Web Code Geeks - 2026","og_description":"Let me start this blog in favor of backend or server-side programmers by making the following statement: \"A\u00a0server-side programmer (Java or similar) can","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2015-08-07T09:15:19+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg","type":"image\/jpeg"}],"author":"Ankur Kumar","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Ankur Kumar","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/"},"author":{"name":"Ankur Kumar","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/a957a1417fb204ebf53caa266a1f209d"},"headline":"Understanding Backbone.js from the lens of a Java programmer","datePublished":"2015-08-07T09:15:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/"},"wordCount":470,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg","articleSection":["Backbone.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/","name":"Understanding Backbone.js from the lens of a Java programmer - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg","datePublished":"2015-08-07T09:15:19+00:00","description":"Let me start this blog in favor of backend or server-side programmers by making the following statement: \"A\u00a0server-side programmer (Java or similar) can","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/backbonejs-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/backbone-js\/understanding-backbone-js-lens-java-programmer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"Backbone.js","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/backbone-js\/"},{"@type":"ListItem","position":4,"name":"Understanding Backbone.js from the lens of a Java programmer"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/a957a1417fb204ebf53caa266a1f209d","name":"Ankur Kumar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4ef4bf5f3c360c4d2477f1fc6617f7d26708539b82a84084c0a7d4c74ac717d3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4ef4bf5f3c360c4d2477f1fc6617f7d26708539b82a84084c0a7d4c74ac717d3?s=96&d=mm&r=g","caption":"Ankur Kumar"},"sameAs":["http:\/\/ankurkumar78.blogspot.com\/"],"url":"https:\/\/www.webcodegeeks.com\/author\/ankur-kumar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/6320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/97"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=6320"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/6320\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/915"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=6320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=6320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=6320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}