Setting Up Dev Environment with Webpack 3

JavaScript
Setting Up Dev Environment with Webpack 3
Image generated by ChatGPT (DALL·E)

I observe as some people still write ancient ES5 syntax of JavaScript and it’s disheartening. I wonder what keeps them from moving forward. Some must be driven by psychological inertia, but some likely just find it to complex to make their new syntax running in a wide range of browsers. In fact, nowadays we may not fear about it anymore. One can set up a dev environment where tools decide what transformations requires the code and what polyfills to load depending on selected target (list of user agents to support).

Leveraging HTML5.2 for More Functional and Interactive Web Apps

HTML5
Leveraging HTML5.2 for More Functional and Interactive Web Apps
Image generated by ChatGPT (DALL·E)

What do you do when you need a widget-like functionality? At the present there is a whole generation of developers who with as a rule are googling for ready-made jQuery plugin. Can’t we do better than that? With advance of web-components we are expected to compose UIs from these building blocks. They are many. One can find one for almost any task. They are highly customizable. One can reuse the functionality, but with own original representation.

JavaScript Modules in 2017: Where We Stand and What’s Next

JavaScript
JavaScript Modules in 2017: Where We Stand and What’s Next

Before modules Historically JavaScript had neither a module system, nor facilities to load sources from within the code. In order to understand what have now, let’s take a retrospective look. I remember in the past a number of libraries where the code-base was split into a separate files which were concatinating during the build process. As simply as that it didn’t help with module isolation, but improved maintainability by organizing the code in files of meaningful names.

My book `Cross-platform Desktop Application Development Electron, Node, NW.js, and React` is out

Books
My book `Cross-platform Desktop Application Development Electron, Node, NW.js, and React` is out

I always fancied to write a book that would combine most of my programming experience gathered over two decades. Packtpub gave a chance that I embraced gratefully. And here we are, half a year of efforts paid off and my book is live - https://www.packtpub.com/web-development/cross-platform-desktop-application-development-electron-node-nwjs-and-reactI split the book in four tutorials, starting with basics and advancing progressively though more and more complex aspects. So the first part guides on creating a file-explorerapplication built with pure JavaScriptand NW.

Bringing Angular 2+ Development Experience into Backbone

TypeScript
Bringing Angular 2+ Development Experience into Backbone

I’ve been working with Backbone for years and it suited me pretty well. I do love its conciseness. It gives the desired abstraction and yet leaves you at the full control of your app. When you need to know what exactly is happening in your app behind your code, it’s matter of minutes to go though the Backbone annotated sources and figure out the flow. That’s something you hardly can afford with other frameworks such as Angular, React, Vue or Amber.

Stop Bugs Before They Happen: Function Guards in JavaScript

JavaScript
Stop Bugs Before They Happen: Function Guards in JavaScript

As developers we spend a lot of our time on debugging and particularly on spotting the source of a problem. DevTools guides us though the call stack, but the tracing process can be still pretty time consuming, especially on a cascade of asynchronous calls. The remedy here is early problem reporting. Let’s say we have a function to search trough a multidimensional structure for the elements containing a given string. We make a call that looks like legit:

Nightmare of End-to-End Testing

How to
Nightmare of End-to-End Testing

Modern application get complex, we cannot go without automated testing. The canonical agile testing quadrants are split to technology-facing and business-facing tests. As for technology-facing testing I believe nowadays everybody has dealt with unit-tests. Thus we make sure that the smallest parts of the system act as intended in isolation. Also we use component tests to verify the behavior of large parts of the system and integration tests to check if communication between object isn’t broken.

Writing Backbone Applications in TypeScript

TypeScript
Writing Backbone Applications in TypeScript

Nowadays JavaScript evolves fast. We have ECMAScript 6th and 7th editions released over just 2 years. the current support of ES6 specification in major browsers is close to 100%. So the language changed, and changed for better. It has become more expressive, much more concise and readable. It is tempting to jump into, but what about older browsers? Transpilers can translate ES.Next into the old-good JavaScript of ECMAScript 5th edition.

Enhancing User Experience: Missing chapter of my book `Unlocked JavaScript`

HTML5
Enhancing User Experience: Missing chapter of my book `Unlocked JavaScript`

My book “Unlocked JavaScript” (https://www.packtpub.com/web-development/javascript-unlocked) has been released on December 7, 2015. This book is for developers already familiar with JavaScript who want to level up to get the most out of the language. The book is practice–oriented and would be most helpful for those who is used to learn by doing as the topics are thoroughly covered with real-life examples and tutorials. This is an extract of a chapter not included in the book.

Responsive Web Design: Best Practices for Improving Performance

RWD
Responsive Web Design: Best Practices for Improving Performance
Image generated by ChatGPT (DALL·E)

User are impatient. Majority would leave a resource if it failed delivering the core user experience in 1-3 seconds. Today when mobile overtakes fixed Internet access you need to think of how the app loads on a low bandwidth, what images must requested on what devices, how stylesheets and JavaScript are cached e.t.c. Fortunately there a number of amazing tools such as PageSpeed Insights, WEBPAGETEST, Pingdom Website Speed Test. So you can find out what’s wrong with your app in terms of web-performance.

Automated CSS Regression Testing in Action: A Developer’s Guide

CSS
Automated CSS Regression Testing in Action: A Developer’s Guide
Image generated by ChatGPT (DALL·E)

We write unit-tests tests for server-side source code and for JavaScript. Even when putting aside benefits of TDD approach it gives us a priceless thing – early problem reporting during refactoring. So you make change, you run tests and you will know at once if anything broke. What about CSS? You encapsulate a declaration set into a separate rule, look through the site pages where dependent classes used and satisfied proceed with refactoring.

Modularizing and Packaging JavaScript for Scalable, High Performance Web Apps

JavaScript
Modularizing and Packaging JavaScript for Scalable, High Performance Web Apps
Image generated by ChatGPT (DALL·E)

Modules in JavaScript With the advance of MV* frameworks you can observe as JavaScript evolves ahead of official specs towards large scale development. It requires even higher level of maintainability and one of the first focuses here is encapsulation and information hiding. We need the code-base to be organized into independent, interchangeable components so that each of them contained code implementing only one aspect of desired functionality. Here comes to help the Module pattern.