Learn

  • Viết E2E test cho Angular bằng Cypress

    Viết E2E test cho Angular bằng Cypress

    Lý do viết E2E test 🛠️ 1. Thiết lập Cypress và viết test đầu tiên ✅ Các bước chính: 🧪 Viết test đầu tiên: // src/support/app.po.tsexport const getHeaderTitle = () => cy.get(‘.toolbar__title’);// src/e2e/app.cy.tsdescribe(‘ng-cypress-starter’, () => { beforeEach(() => cy.visit(‘/’)); it(‘should display the correct header title’, () => { getHeaderTitle().should(‘contain.text’,’Your first Cypress test in Angular’); });});…

  • Cách Team Lead ở Google dùng để dẫn dắt

    Cách Team Lead ở Google dùng để dẫn dắt

    📋 TL;DR – Bản tóm tắt bullet “xương sống” cho người bận rộn ❌ Đừng làm: ✅ Nên làm: Không có team nào hoạt động hiệu quả nếu thiếu người lãnh đạo. Ở Google – nơi mọi kỹ sư đều làm việc nhóm – vai trò lãnh đạo là bắt buộc. Nhưng Google chia rõ…

  • Quản lý State bên trong Angular bằng NgRx

    Quản lý State bên trong Angular bằng NgRx

    NgRx là hệ sinh thái quản lý state reactive trong Angular. Chương này giúp bạn nắm vững cách sử dụng các phần chính của NgRx để xây dựng ứng dụng có cấu trúc rõ ràng, dễ kiểm soát và mở rộng. Các kỹ thuật được trình bày: ✅ 1. Store đầu tiên với Actions &…

  • Data-Intensive Application: Lựa chọn mô hình dữ liệu and ngôn ngữ truy vấn

    Data-Intensive Application: Lựa chọn mô hình dữ liệu and ngôn ngữ truy vấn

    📘 Tư tưởng chủ đạo: Wittgenstein nói: “The limits of my language mean the limits of my world”. Trong hệ thống dữ liệu, mô hình dữ liệu chính là “ngôn ngữ” mô tả thế giới đó. Việc chọn mô hình nào sẽ ảnh hưởng lớn đến cách ta tư duy, thiết kế và tối ưu…

  • Angular & RxJS: Sự kết hợp lý tưởng

    Angular & RxJS: Sự kết hợp lý tưởng

    Bài này cung cấp nhiều công thức (recipes) thực chiến về cách sử dụng kết hợp Angular và RxJS để xử lý dữ liệu theo mô hình reactive. Các kỹ thuật bao gồm gọi HTTP tuần tự/ song song, xử lý nhiều stream cùng lúc, tránh memory leak, dùng async pipe, transform dữ liệu với…

  • Kỹ năng học nhanh bất kỳ kỹ năng nào

    Kỹ năng học nhanh bất kỳ kỹ năng nào

    🧠 1. Giới thiệu & Sai lầm chết người: Theory Overload Tác giả đã dành hơn 10 năm nghiên cứu cách học kỹ năng nhanh và dễ nhất. Trong quá trình dạy và đọc các nghiên cứu, tác giả phát hiện một sai lầm khiến gần như 100% người học thất bại: 👉 “Theory Overload”…

  • Monitoring & Alerting – Giám sát hệ thống – All in One

    Monitoring & Alerting – Giám sát hệ thống – All in One

    📊 Business KPIs – Các chỉ số hiệu suất kinh doanh Những câu hỏi mà ban giám đốc quan tâm thường là: 🧩 Một số KPI quan trọng: ⛔ Một số dữ liệu có thể không dễ thu thập, nhưng vẫn cần hiểu rõ các KPI này để đồng bộ tư duy với ban lãnh…

  • DDD: Phần 13 (cuối) – Những thực tiễn thức tỉnh

    DDD: Phần 13 (cuối) – Những thực tiễn thức tỉnh

    Đây là một trong những phần thực tiễn và “thức tỉnh” nhất của toàn bộ nội dung DDD — vì nó trả lời câu hỏi “DDD áp dụng được không trong dự án lộn xộn?” Câu trả lời là hoàn toàn có thể, và thậm chí còn nên áp dụng, miễn là từng bước một…

  • DDD: Phần 12 – EventStorming – Mô hình hóa nghiệp vụ bằng cộng tác

    DDD: Phần 12 – EventStorming – Mô hình hóa nghiệp vụ bằng cộng tác

    “EventStorming là một hoạt động low-tech nhưng mang lại hiệu quả high-value.” 🎯 Mục tiêu của EventStorming 🧠 EventStorming là gì? 👥 Ai nên tham gia? 🔑 Chỉ nên từ 5–10 người để đảm bảo mọi người đều có thể đóng góp hiệu quả. 🧰 Cần chuẩn bị gì? Thành phần Vai trò 📄 Tường/bảng…

  • DDD: Phần 11 – Tiến hóa quá trình ra quyết định

    DDD: Phần 11 – Tiến hóa quá trình ra quyết định

    “The only constant in life is change.” — Heraclitus DDD không chỉ là thiết kế cho hiện tại mà còn phải chuẩn bị sẵn cho tương lai, cho sự thay đổi đến từ: 🧱 1. Thay đổi loại Subdomain Kiểu chuyển đổi Động lực chuyển đổi Ví dụ Core → Generic Mất tính cạnh tranh…