Performance is important aspect of web development, especially for ecommerce sites. To have a good performant site, we need to optimize many parts of the applications, on server and client sides. In this article, I will mainly analyze the factors that impact performance from client side, i.e. how does browsers work, and what we can do to improve performance of the sites.

1. General Flow

Figure 1: Network overview

As we see in the image, when browsers need to display a website, at first it has to download resources (usually html files, but can also be pdf, images,..etc) via HTTP requests and then…


Introduction

Clientside development is getting more and more complex, especially with applications that need to interact with multiple domains. The problem in big applications with multiple domains is that it is very easy to add complexity into the growing application. If not careful, it will be unmanageable at some point. In my opinion, we can prevent the problem with good architecture and right structure of the codebase. It is not new to apply Domain driven design (DDD) to clientside, just that there are not many discussions on the topic in the community. We can only find the best solution if more…


1. Introduction

Microservice is increasingly popular in software development nowadays. The idea is to break large, monolithic systems into smaller services so that they can be managed or scaled easily. To work with these services, it is important to understand common server architectures and designs. In this article, I will compare and analyze common server architectures, then discuss popular patterns for microservice.

2. Domain driven design (DDD) for microservice

Softwares exist to solve human problems. How easy it is to develop and maintain applications is key to software design and architecture. DDD is the approach that bridge the gap between technical and business knowledge. It can foster the communication…


Javascript (JS) is very popular due to its ability to run both on servers and on clients (browsers). It is a dynamic language and has support for both object-oriented and functional programming styles. However this flexibility makes developers confused at times, especially when they need to decide whether objects or functions should be used. In addition, for large JS applications, the ways JS code is extracted into modules also cause more headache for programmers. In this article, I will try to analyze objects and modules in JS. What is the relationship between them and how modules are loaded in different…


The result of increasing popularity of Javascript and frontend frameworks like Reactjs, Angular, or Vue.. is more and more application logic is shifted into user browsers. As a consequence, personal data is exposed to greater risks of being exploited by attackers nowadays. For web developers, it’s important to understand all the security fundamentals to protect web application. In this article, I will analyze common security risks and the approaches to prevent them.

1.Overview

Figure 1: Network packages

As we see in Figure 1 networks packages are transferred from servers to clients in order to display content on browsers. Security involves all parts of that process…


To work with Javascript(JS) effectively, you need to get used to the way functions are composed in the language. When I started learning JS, my background in C# made it a bit difficult to understand the way functions are passed around in JS applications. I hope this guide can ease the way for you.

In this article, I will walk you through some basic examples of composing functions, then describe the common use cases of those functions. At the end, to get you familiar with objects and functions in JS, we will try to implement a basic version of Promises.

Definition

ThangLe

Software engineer @ Agoda. Personal blog: thangledev.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store