{"id":919,"date":"2013-04-19T02:20:40","date_gmt":"2013-04-19T02:20:40","guid":{"rendered":"http:\/\/garysieling.com\/blog\/?p=919"},"modified":"2013-04-19T02:20:40","modified_gmt":"2013-04-19T02:20:40","slug":"learning-extjs-4-review","status":"publish","type":"post","link":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/","title":{"rendered":"&#8220;Learning ExtJS 4&#8221; Review"},"content":{"rendered":"<p>&#8220;<a href=\"http:\/\/www.packtpub.com\/learning-ext-javascript-4\/book\">Learning ExtJS 4<\/a>&#8221; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven&#8217;t used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the target audience for the book.<\/p>\n<p>In the introductory chapters on setting up Ext, they cover common errors that trip up beginners, a useful insight not necessarily visible in documentation. It has thorough coverage of many useful concepts that allow front-end developers to reason about their code: how the class loader works, object creation lifecycles, component layout lifecycle, how to use selectors, etc.<\/p>\n<p>I found the chapter on the Ext class-loader particularly interesting, even though I&#8217;ve worked with Ext for a while. My personal experience has been maintaining existing code, and this section provided solid background material about the library. In particular, they\u00a0explain how Ext is able to implement inheritance, mix-ins, and singletons as library constructs. They demonstrate how Ext implements multiple names for the same class (class name, xtype, alternate class names) &#8211; though I&#8217;m still not convinced that is a useful feature in the library.<\/p>\n<p>While there is a trend toward small, combinable libraries (e.g. Underscore.js, Backbone.js, handlebars.js), and so on, Ext provides a superset of many of these libaries, which I imagine would be really convenient if you just want a library that gives you everything you need. When Ext is sold, core collections and utility belt APIs are treated as commodity parts, overshadowed by the slick UI features. This book devotes several chapters to architectural details provided by the library, such as MVC functionality and event processing, with a smattering of other similar features sprinkled through the book, like where to find the APIs that duplicate the selectors in jQuery.<\/p>\n<\/p>\n<p>This book extensively covers common the common UI controls in Ext that shine, from basic button controls to grids and charts. For someone deeply familiar with the library, this is probably not that useful, but for a developer with cursory knowledge of Ext, or extensive knowledge of other libraries, this book gives an easy-to-follow introduction to the good parts of Ext.<\/p>\n<p>&#8220;Learning ExtJS 4&#8221; is available through the publisher, <a href=\"http:\/\/www.packtpub.com\/learning-ext-javascript-4\/book\">PacktPub<\/a>, and <a href=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=thesecrelifeo-20&amp;l=as2&amp;o=1&amp;a=1849516847\">Amazon<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Learning ExtJS 4&#8221; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven&#8217;t used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;&#8220;Learning ExtJS 4&#8221; Review&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[2,13],"tags":[213,215,302],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"&quot;Learning ExtJS 4&quot; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven&#039;t used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"gary\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Gary Sieling - Software Engineer\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\u201cLearning ExtJS 4\u201d Review - Gary Sieling\" \/>\n\t\t<meta property=\"og:description\" content=\"&quot;Learning ExtJS 4&quot; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven&#039;t used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2013-04-19T02:20:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2013-04-19T02:20:40+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"\u201cLearning ExtJS 4\u201d Review - Gary Sieling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"&quot;Learning ExtJS 4&quot; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven&#039;t used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#blogposting\",\"name\":\"\\u201cLearning ExtJS 4\\u201d Review - Gary Sieling\",\"headline\":\"&#8220;Learning ExtJS 4&#8221; Review\",\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"},\"datePublished\":\"2013-04-19T02:20:40+00:00\",\"dateModified\":\"2013-04-19T02:20:40+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#webpage\"},\"articleSection\":\"Book Reviews, Javascript Code Examples, extjs, extjs 4, javascript\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/book-reviews\\\/#listItem\",\"name\":\"Book Reviews\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/book-reviews\\\/#listItem\",\"position\":2,\"name\":\"Book Reviews\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/book-reviews\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#listItem\",\"name\":\"&#8220;Learning ExtJS 4&#8221; Review\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#listItem\",\"position\":3,\"name\":\"&#8220;Learning ExtJS 4&#8221; Review\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/book-reviews\\\/#listItem\",\"name\":\"Book Reviews\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/\",\"name\":\"gary\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"gary\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#webpage\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/\",\"name\":\"\\u201cLearning ExtJS 4\\u201d Review - Gary Sieling\",\"description\":\"\\\"Learning ExtJS 4\\\" is a good, practical introduction to ExtJS for beginner ExtJS developers who haven't used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/learning-extjs-4-review\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"datePublished\":\"2013-04-19T02:20:40+00:00\",\"dateModified\":\"2013-04-19T02:20:40+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\u201cLearning ExtJS 4\u201d Review - Gary Sieling","description":"\"Learning ExtJS 4\" is a good, practical introduction to ExtJS for beginner ExtJS developers who haven't used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the","canonical_url":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#blogposting","name":"\u201cLearning ExtJS 4\u201d Review - Gary Sieling","headline":"&#8220;Learning ExtJS 4&#8221; Review","author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"},"datePublished":"2013-04-19T02:20:40+00:00","dateModified":"2013-04-19T02:20:40+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#webpage"},"isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#webpage"},"articleSection":"Book Reviews, Javascript Code Examples, extjs, extjs 4, javascript"},{"@type":"BreadcrumbList","@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.garysieling.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/book-reviews\/#listItem","name":"Book Reviews"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/book-reviews\/#listItem","position":2,"name":"Book Reviews","item":"https:\/\/www.garysieling.com\/blog\/category\/book-reviews\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#listItem","name":"&#8220;Learning ExtJS 4&#8221; Review"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#listItem","position":3,"name":"&#8220;Learning ExtJS 4&#8221; Review","previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/book-reviews\/#listItem","name":"Book Reviews"}}]},{"@type":"Organization","@id":"https:\/\/www.garysieling.com\/blog\/#organization","name":"Gary Sieling","description":"Software Engineer","url":"https:\/\/www.garysieling.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author","url":"https:\/\/www.garysieling.com\/blog\/author\/gary\/","name":"gary","image":{"@type":"ImageObject","@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g","width":96,"height":96,"caption":"gary"}},{"@type":"WebPage","@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#webpage","url":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/","name":"\u201cLearning ExtJS 4\u201d Review - Gary Sieling","description":"\"Learning ExtJS 4\" is a good, practical introduction to ExtJS for beginner ExtJS developers who haven't used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/#breadcrumblist"},"author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"creator":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"datePublished":"2013-04-19T02:20:40+00:00","dateModified":"2013-04-19T02:20:40+00:00"},{"@type":"WebSite","@id":"https:\/\/www.garysieling.com\/blog\/#website","url":"https:\/\/www.garysieling.com\/blog\/","name":"Gary Sieling","description":"Software Engineer","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Gary Sieling - Software Engineer","og:type":"article","og:title":"\u201cLearning ExtJS 4\u201d Review - Gary Sieling","og:description":"&quot;Learning ExtJS 4&quot; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven't used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the","og:url":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/","article:published_time":"2013-04-19T02:20:40+00:00","article:modified_time":"2013-04-19T02:20:40+00:00","twitter:card":"summary_large_image","twitter:title":"\u201cLearning ExtJS 4\u201d Review - Gary Sieling","twitter:description":"&quot;Learning ExtJS 4&quot; is a good, practical introduction to ExtJS for beginner ExtJS developers who haven't used the library, or who have used prior Ext versions. In a couple spots I found myself wishing for deep technical details, e.g. explanations the rationale behind architectural decisions the Ext team made, but that is consistent with the"},"aioseo_meta_data":{"post_id":"919","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2023-02-04 16:12:28","updated":"2026-07-06 00:53:54","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\/category\/book-reviews\/\" title=\"Book Reviews\">Book Reviews<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t\u201cLearning ExtJS 4\u201d Review\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.garysieling.com\/blog"},{"label":"Book Reviews","link":"https:\/\/www.garysieling.com\/blog\/category\/book-reviews\/"},{"label":"&#8220;Learning ExtJS 4&#8221; Review","link":"https:\/\/www.garysieling.com\/blog\/learning-extjs-4-review\/"}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/919"}],"collection":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/comments?post=919"}],"version-history":[{"count":0,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/919\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/media?parent=919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/categories?post=919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/tags?post=919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}