MySQL – So sánh dữ liệu trong cùng 1 bảng

Bài viết sẽ hướng dẫn cách so sánh các rows liên tiếp nhau trong cùng 1 table sử dụng kỹ thuật self-join Giả sử bạn có một bảng inventory với cấu trúc như dưới CREATE TABLE inventory( id INT AUTO_INCREMENT PRIMARY KEY, counted_date date NOT NULL, item_no VARCHAR(20) NOT NULL, qty int(11) NOT NULL );…

Serials Javascript Style Guide – jQuery

jQuery Dollar prefix Các đối tượng jQuery bắt đầu với dấu $. // bad const sidebar = $(‘.sidebar’); // good const $sidebar = $(‘.sidebar’); // good const $sidebarBtn = $(‘.sidebar-btn’); Cache Cache jQuery lookups. // bad function setSidebar() { $(‘.sidebar’).hide(); // … $(‘.sidebar’).css({ ‘background-color’: ‘pink’, }); } // good function setSidebar() { const $sidebar =…

Serials Javascript Style Guide – Events

Events Hash Khi đính kèm dữ liệu payloads vào các sự kiện (cho dù là sự kiện DOM hoặc cái gì đó riêng biệt như sự kiện Backbone), thì truyền vào 1 object literal (được biết như là “hash”) thay vì là 1 raw value. Điều này cho phép thêm mới dữ liệu mà không…

Serials Javascript Style Guide – Accessors

Accessors Not required Không bắt buộc hàm truy cập đối với các thuộc tính No getters-setters Không dùng JavaScript getters/setters vì chúng gây ra side effects không mong muốn và khó test, maintain, và vài lý do khác. Vì thế nên sử dụng getVal() và setVal(‘hello’) nếu muốn có hàm truy cập. // bad class…

Serials Javascript Style Guide – Type Casting & Coercion

Serials Javascript Style Guide – Type Casting & Coercion Type Casting & Coercion Explicit Thực hiện ép kiểu ở đầu của câu lệnh. Strings Strings: eslint: no-new-wrappers // => this.reviewScore = 9; // bad const totalScore = new String(this.reviewScore); // typeof totalScore is "object" not "string" // bad const totalScore = this.reviewScore + ”; //…

Serials Javascript Style Guide – Semicolons

Semicolons Required Luôn dùng. eslint: semi Tại sao ư? Khi Javascript gặp 1 dòng mà không có dấu chấm phẩy, thì nó sẽ mặc định sử dụng quy tắc gọi là Automatic Semicolon Insertion để cân nhắc xem đó là kết thúc của câu lệnh hay không, và nó ngầm hiểu là sẽ thêm dấu…

Serials Javascript Style Guide – Commas

Commas Leading trailing Bắt đầu bằng dấu phẩy ư: Không. eslint: comma-style // bad const story = [ once , upon , aTime ]; // good const story = [ once, upon, aTime, ]; // bad const hero = { firstName: ‘Ada’ , lastName: ‘Lovelace’ , birthYear: 1815 , superPower: ‘computers’ }; // good const…

Serials Javascript Style Guide – Whitespace

Whitespace Spaces Sử dụng tab mềm (kí tự khoảng trắng) với 2 khoảng trắng. eslint: indent // bad function foo() { ∙∙∙∙let name; } // bad function bar() { ∙let name; } // good function baz() { ∙∙let name; } Before blocks Thêm 1 khoảng trắng trước khi bắt đầu dấu ngoặc. eslint: space-before-blocks //…