Lâm Đỗ

@lamdn

Joined on Apr 27, 2023

  • Sau quãng thời gian dài làm việc với Ruby on Rails ở nhiều dự án khác nhau, mình đã đúc kết được một số kinh nghiệm coding mà nếu áp dụng theo, nó có thể giúp cho code của bạn dễ đọc và dễ dàng bảo trì hơn. Naming Convension Readable and meaningfull Việc rút gọn tên biến có thể làm cho đoạn code trở nên ngắn gọn nhứng bộ não của chúng ta lại dễ dàng ghi nhớ những từ có nghĩa hơn. Vì vậy, nếu bạn đặt tên biến là một từ vô nghĩa thì khi đọc code, bạn sẽ có cảm giác không thoải mái và khó hiểu: Bad: posts.each_with_object([]) do |p, r| next if p.draft?
     Like  Bookmark
  • Angular cung cấp tính năng View Encapsulation với mục đích đóng gói và làm tăng khả năng tái sử dụng của các components. Shadow DOM Đây là một API của HTML, cho phép tạo ra các phần tử độc lập trên trang web. Chúng không thể bị can thiệp bởi stylesheet hay JS từ bên ngoài và ngược lại. Ví dụ thẻ <video>, <iframe>...là một trong những shadow DOM. Một shadow DOM sẽ bao gồm các thành phần: Shadow host: Là một phần tử DOM thông thường, nơi mà shadow DOM được gắn vào. Shadow tree: Bao gồm toàn bộ nội dung HTML (DOM tree) của shadow DOM. Shadow boundary: Giới hạn phạm vi của một shadow DOM.
     Like  Bookmark
  • Data binding là cơ chế đồng bộ dữ liệu giữa model và view, để hiểu rõ hơn về phần này chúng ta cần làm rõ các khai niệm bên dưới. HTML attributes và DOM properties HTML attributes hiểu đơn giản là các thuộc tính của một phần tử trên trang web, chúng ta có thể nhìn thấy và thao tác trực tiếp bằng việc inspect element trên Chrome. Trong một vài trường hợp, dù đã thay đổi giá trị attribute nhưng chúng ta vẫn thấy hiển thị của phần tử đó trên màn hình không có gì thay đổi cả. Xem ví dụ dưới đây: <input type="text" value="LamDN"> Ban đầu attribute value được set giá trị là LamDN, chúng ta thấy trên màn hình hiển thị giá trị tương ứng. Khi chúng ta nhập vào một giá trị mới là Angular và kiểm tra lại bằng inspect element hoặc sử dụng input.getAttribute('value') thì sẽ thấy value của input không hề thay đổi và vẫn là LamDN. Từ đây chúng ta có thể thấy, thuộc tính của một element không phải lúc nào cũng phản ánh đúng giá trị hiện tại của nó. Thứ phản ánh giá trị hiện tại của một HTML attributes chính là DOM properties.
     Like  Bookmark
  • Angular là một frontend framework, cung cấp các cấu trúc và thành phần để phát triển một giao diện website phức tạp. Việc sử dụng TypeScript giúp cho nó chặt trẽ và rõ ràng, tuy nhiên cũng làm cho quá trình tích hợp trở nên khó khăn và tốn nhiều thời gian phát triển. Cấu trúc của Angular dựa trên component hay còn gọi là based-component structure. Các thành phần trên trang web sẽ được chia nhỏ thành các component khác nhau, điều này làm tăng khả năng tái sử dụng, dễ dàng mở rộng và bảo trì. Vì vậy, Angular thích hợp hơn với các dự án vừa và lớn. Component Giống như khi lắp ghép một ngôi nhà, component trong Angular đóng vai trò như những module xây dựng trong kiến trúc của dự án. Nó chứa các thông tin riêng và các phương thức để tương tác với người dùng cũng như với các component khác. Mỗi một component có thể được định nghĩa trong một file duy nhất nhưng để dễ bảo trì, nên tách các thành phần khác nhau ra các file riêng, tất cả nằm trong cùng một folder: ├── app/
     Like  Bookmark