Skip to content

Commit afcfe08

Browse files
authored
[skip netlify] PUBLISHER #128
* PUSH NOTE : Dùng null khi chắc chắn là người dùng chắc chắn nói là không có giá trị cho việc đó. Còn lại dùng undefined.md * PUSH NOTE : Luôn dùng ===. Nếu không có lý do hợp lý thì đừng dùng ==.md * PUSH NOTE : Dùng export default cho lớp, hàm của component, và export thường cho những thứ còn lại.md * PUSH NOTE : URL.toString() hoặc URL.href() sẽ luôn thêm dấu chéo vào sau.md * PUSH NOTE : object Object xảy ra khi một vật thể bị chuyển sang dạng chuỗi.md * PUSH NOTE : String(x) giống x.tostring(), nhưng không gây ra lỗi nếu x là null hoặc undefined.md * PUSH NOTE : Number(undefined) === NaN. Number(null) === 0.md * PUSH NOTE : MBR dùng cho BIOS, GPT dùng cho UEFI.md * PUSH NOTE : JSON.stringify(new Error()) trả về một vật thể rỗng.md * PUSH NOTE : Sự bất đồng bộ có tính lây lan. Bất kỳ hàm nào gọi hàm bất đồng bộ đều trở thành hàm bất đồng bộ.md * PUSH NOTE : Promise.md * PUSH NOTE : Để lấy được giá trị state và result của promise, cần dùng các phương thức then và catch.md * PUSH NOTE : Vật thể promise có 2 thuộc tính là state và result, và 3 phương thức là then, catch, và finally.md * PUSH NOTE : Kết quả của promise chỉ có thể được lấy ở trong then, và phải ở dạng hàm.md * PUSH NOTE : Nếu có nhiều then nối với nhau là bởi vì trong promise có promise khác.md * PUSH NOTE : Hàm được dùng làm đối số đầu tiên của then sẽ chạy khi hàm resolve được gọi. Hàm được dùng làm đối số thứ hai của then sẽ chạy khi hàm reject được gọi.md * PUSH NOTE : Promise được sinh ra là để không phải dùng if lồng quá nhiều.md * PUSH NOTE : Promise chỉ là một vật thể để việc lập trình được tiện hơn, không phải là một tính năng mà những phiên bản JS trước không làm được.md * PUSH NOTE : resolve, reject là hai hàm được JS cung cấp sẵn để làm đối số cho hàm thực thi.md * PUSH NOTE : Khi resolve được gọi, vật thể promise sẽ cập nhật kết quả trả về từ resolve, và hàm được dùng làm đối số đầu tiên của then sẽ được chạy.md * PUSH NOTE : Đối số của Promise là một hàm. Nó được gọi là hàm thực thi (executor).md * PUSH NOTE : Chạy nhiều promise song song và tuần tự.md * PUSH NOTE : await với async là cách để viết hàm bất đồng bộ với tư duy khi viết hàm tuần tự.md * PUSH NOTE : Nếu không dùng hàm bất đồng bộ để gọi tiến trình khác, thì JS sẽ tiếp tục chạy các lệnh sau đó mà không chờ tiến trình chạy xong.md * PUSH NOTE : Có 2 loại kiểu - kiểu nguyên thuỷ và kiểu tham chiếu.md * PUSH NOTE : Biến được tạo mà không có từ khoá khai báo (var, let, const) luôn là biến toàn cục, kể cả khi được tạo trong hàm.md * PUSH NOTE : Biến được so sánh với nhau bằng địa chỉ bộ nhớ, không phải giá trị thực sự của biến.md * PUSH NOTE : Bundler dùng để gom hết tất cả các script lại vào làm một.md * PUSH NOTE : Viết chương trình bằng Rust giống như sống trong mối quan hệ bạo hành.md * PUSH NOTE : Rust.md * PUSH NOTE : Rust phù hợp khi code đã ổn định rồi.md * PUSH NOTE : Mỗi lần refactor là một cực hình.md * PUSH NOTE : Crate là file, package là tập hợp nhiều crate.md * PUSH NOTE : cargo giống npm hay pip.md * PUSH NOTE : Việc đặt tên không có tiền tố gì sẽ tiện khi nó thường được dùng thường xuyên ở những nơi khác, ở trong một danh sách, hoặc khi dùng để liệt kê các thuộc tính.md * PUSH NOTE : Thay vì comment, hãy document. Thay vì giải thích cách code hoạt động, hãy hướng dẫn cách sử dụng nó.md * PUSH NOTE : Quy ước đặt tên biến.md * PUSH NOTE : Nên dùng comment để giải thích về thuật toán, các đánh đổi trong việc ra quyết định hoặc dẫn nguồn.md * PUSH NOTE : Hãy viết code sao cho mình khỏi comment.md * PUSH NOTE : Comment cũng có bug, nhưng không giống như code, không có chương trình nào hỗ trợ debug được nó.md * PUSH NOTE : Comment có thể cho thông tin sai, nhưng code thì không.md * PUSH NOTE : Block comment dành cho việc giải thích ý tưởng của code, viết doc. Line comment để debug hoặc hướng dẫn editor đọc code của mình (directive).md * PUSH NOTE : Bản thân việc lập trình bằng ngôn ngữ bậc cao đã là một dạng comment.md * PUSH NOTE : Tránh dùng hàm lồng để làm giảm sự couple.md * PUSH NOTE : Đường cú pháp là những loại cú pháp giúp việc đọc dễ dàng hơn. Muối cú pháp là những loại cú pháp giúp việc viết sai trở nên khó khăn hơn.md * PUSH NOTE : Có những đoạn code có cùng cyclomatic complexity nhưng lại khác cognitive complexity.md * PUSH ATTACHMENT : Cognitive_Complexity_Sonar_Guide_2023.pdf * PUSH NOTE : Mỗi đường cơ sở trong biểu đồ dòng tương ứng với một testcase.md * PUSH NOTE : Thay vì dùng số nút và cạnh để tính độ phức tạp chu trình, hãy đếm số miền bị chia ra.md * PUSH NOTE : Các lý do làm tăng cyclomatic complexity.md * PUSH NOTE : Cyclomatic complexity đánh giá độ phức tạp khi viết kiểm thử. Cognitive complexity đánh giá độ phức tạp trong việc đọc.md * PUSH NOTE : Singleton hay được dùng trong các trình quản lý plugin.md * PUSH NOTE : Việc biến đổi dữ liệu chủ yếu là để người dùng đọc cho tiện, và để máy kiểm tra dữ liệu.md * PUSH NOTE : Dạng vật thể thường là tiện cho người, dạng mảng thường là tiện cho máy.md * PUSH NOTE : Kiểu động làm cho việc học lập trình dễ hơn. Kiểu yếu giúp ngôn ngữ được tự do ép kiểu để đoán ý người dùng dễ hơn.md * PUSH NOTE : Thời điểm xét kiểu quyết định độ động tĩnh của nó. Cách kiểu được xét quyết định độ mạnh yếu của nó.md * PUSH NOTE : Sự xuất hiện của language server giúp ta có thể bắt kiểu trước cả lúc biên dịch cho những ngôn ngữ chỉ bắt kiểu lúc chạy.md * PUSH NOTE : Thường mọi người dùng compile time đồng nghĩa với devtime.md * PUSH NOTE : Ngôn ngữ và động cơ thường trùng tên.md * PUSH NOTE : Runtime là lúc chạy, runtime environment là môi trường thực thi. Nhưng nhiều lúc runtime environment được gọi tắt là runtime.md * PUSH NOTE : Kiểu động là kiểu được kiểm tra vào lúc chạy. Kiểu tĩnh là kiểu được kiểm tra lúc biên dịch (trước lúc chạy).md * PUSH NOTE : Lỗi runtime là lỗi logic, khi chạy mới thấy. Lỗi compile time là lỗi cú pháp, khi biên dịch là thấy ngay.md * PUSH NOTE : Compile time là lúc chuyển từ ngôn ngữ lập trình mà người hiểu sang ngôn ngữ máy chỉ có máy mới hiểu. Runtime là lúc máy chạy mã máy.md * PUSH NOTE : Vật thể là dạng dữ liệu có những thuộc tính thành phần.md * PUSH NOTE : Vật thể ngoài tự nhiên không chứa hướng dẫn để sử dụng nó. Vật thể trong máy tính có hướng dẫn sử dụng nó.md * PUSH NOTE : Việc đóng gói (encapsulation) giúp ta không cần quan tâm vật thể lưu dữ liệu thế nào, mà chỉ cần quan tâm tới thuộc tính và phương thức của nó.md * PUSH NOTE : Từ điển là vật thể được dùng để tra cứu dữ liệu theo từ khoá chứ không phải là để thao tác và thay đổi thuộc tính bằng phương thức.md * PUSH NOTE : Những vật thể đơn giản dùng để tra cứu dữ liệu theo từ khoá gọi là từ điển.md * PUSH NOTE : Mảng giống vật thể nhưng tất cả các thuộc tính đều là số. Từ điển giống vật thể nhưng tất cả các thuộc tính đều là chuỗi.md * PUSH NOTE : Thay vì ta thao túng trực tiếp dữ liệu, ta điều khiển vật thể qua phần giao tiếp của nó với bên ngoài.md * PUSH NOTE : this, self là cách để nói rằng hành động mà phương thức sẽ làm sẽ phải gắn lên một vật thể cụ thể của lớp, thứ mà bây giờ chưa được tạo ra.md * PUSH NOTE : Phương thức phải gắn lên một vật thể cụ thể nào đó để có tác dụng.md * PUSH NOTE : Phương thức là một thuộc tính của vật thể.md * PUSH NOTE : Phương thức cho ta biết mình có thể làm gì với vật thể.md * PUSH NOTE : Các vật thể tương tác với nhau qua phương thức và không trực tiếp làm thay đổi giá trị của nhau.md * PUSH NOTE : Thuộc tính nguyên thủy là những thuộc tính có sẵn mình không cần tạo.md * PUSH NOTE : Chưa rõ lý do vì sao lại dịch object ra thành đối tượng chứ không phải vật thể.md * PUSH NOTE : Lớp là một cái khuôn để tạo các vật thể cho nhanh.md * PUSH NOTE : Không cần biết vật thể chứa dữ liệu gì, chỉ cần quan tâm nó làm được gì.md * PUSH NOTE : Dùng lớp khi ta có logic nghiệp vụ thực sự cần được thực thi. Dùng giao diện để tạo ràng buộc kiểu cho biến.md * PUSH NOTE : Nên để dư một dấu phẩy ở phần tử cuối cùng khi tạo vật thể hoặc mảng.md * PUSH NOTE : Việc hiển thị nội dung dữ liệu như thế nào là do công cụ quyết định, không phải ngôn ngữ quyết định.md * PUSH NOTE : Map, dictionary, associative array, hash, hash table là những cái tên cho cùng một thứ.md * PUSH NOTE : Việc dùng export chính là đang tạo API. API là các vật thể được export.md * PUSH NOTE : Package và library là những cái tên khác nhau cho cùng một thứ.md * PUSH NOTE : Khi import một hàm thì cả file chứa hàm đó sẽ được chạy. Các import của file đó cũng sẽ chạy theo, dù là để import vào một hàm khác mình không import.md * PUSH NOTE : Nên tách bạch code hỗ trợ cho client và server vào những mô đun khác nhau.md * PUSH NOTE : API là giao diện của một chương trình.md * PUSH NOTE : 4 đặc điểm của lập trình hướng vật thể.md * PUSH NOTE : Ý tưởng của lập trình hướng vật thể là gom nhiều hàm và dữ liệu vào trong một đơn vị gọi là vật thể.md * PUSH NOTE : Để tránh phụ thuộc lòng vòng (circular dependency) có thể dùng hàm.md * PUSH NOTE : Việc tách một khối code thành một hàm khiến cho việc đọc từng dòng trở thành đọc từng bước.md * PUSH NOTE : Hàm vô danh, hàm mũi tên, lambda là những cái tên khác nhau cho cùng một thứ.md * PUSH NOTE : Hàm cũng là vật thể.md * PUSH NOTE : f(a)(b) để gọi hàm f(a) có chứa hàm con f1(b).md * PUSH NOTE : Biểu thức (expression) là những thứ trả lại một giá trị nào đó.md * PUSH NOTE : Hoạt động trung tâm của lập trình hướng vật thể là phân loại.md * PUSH NOTE : Biến là dữ liệu, hàm là thuật toán. Biến là danh từ, hàm là động từ.md * PUSH NOTE : Các chương trình trên Linux hướng đến việc làm tốt đúng một nhiệm vụ duy nhất, và làm tốt việc làm cùng nhau.md * PUSH NOTE : Dùng chương trình Linux cho người không biết gì về nó.md * PUSH NOTE : Đường dẫn đến tệp ngoài trong một script phụ thuộc vào cwd, không phải đường dẫn tới script mình đang viết.md * PUSH NOTE : pwd là thư mục mà tiến trình sẽ chạy. cwd là thư mục mà mình đang ở đó.md * PUSH NOTE : Việc có khoảng trắng trong tên file sẽ khiến việc xử lý code phức tạp hơn.md * PUSH NOTE : Những chương trình cũ sẽ dễ gặp vấn đề về dấu cách hơn những chương trình mới.md * PUSH NOTE : Dùng absolute path cho lành.md * PUSH NOTE : Sự khác biệt giữa Windows và Android, Mac trong tên file.md * PUSH NOTE : Cách các đường dẫn ở những nơi khác nhau xử lý dấu cách và ký tự phi ASCII.md * PUSH NOTE : Terminal, console, shell và command line thường được dùng lẫn lộn với nhau.md * PUSH NOTE : Terminal là cái chương trình để làm việc với shell.md * PUSH NOTE : Lệnh con thì không có gạch. Cờ thì có gạch.md * PUSH NOTE : Windows Terminal có thể được kích hoạt trong Explorer.md * PUSH NOTE : Profile.md * PUSH NOTE : powershell.exe, PowerShell 5, Windows PowerShell là một. pwsh.exe, PowerShell 6, PowerShell Core là một.md * PUSH NOTE : cmd vẫn được dùng để chạy exe.md * PUSH NOTE : -contains là giống hoàn toàn. -match mới là giống một nửa.md * PUSH NOTE : Windows không ship phiên bản dotnet Core mới nhất để tránh việc dotnet phải hỗ trợ phiên bản Windows đó cho tới khi nào phiên bản đó bị chính thức ngừng hỗ trợ.md * PUSH NOTE : Windows rất lằng nhằng trong việc thiết lập cấu hình.md * PUSH NOTE : Local app data.md * PUSH NOTE : Các lệnh để chạy khi cài win mới.md * PUSH NOTE : Chương trình là một đoạn mã được lưu trên ổ đĩa. Tiến trình là khi đoạn mã đó được nạp vào RAM và được CPU đọc.md * PUSH NOTE : Chương trình = Cấu trúc dữ liệu + thuật toán.md * PUSH NOTE : env của người dùng được ưu tiên hơn env của hệ thống. Nhưng với biến path thì ngược lại.md * PUSH NOTE : PATH là đường dẫn mặc định tới những tập tin nhị phân (binary).md * PUSH NOTE : Biến môi trường giúp ta điền những giá trị lặp đi lặp lại nhanh hơn.md * PUSH NOTE : Test trong VS Code.md * PUSH NOTE : Dễ xem kết quả các giá trị trong console debug hơn là ở Variables.md * PUSH NOTE : Dùng test khi muốn biết code chạy có đúng không. Dùng debug khi muốn biết code chạy sai chỗ nào.md * PUSH NOTE : Việc dựng image được thiết lập qua dockerfile.md * PUSH NOTE : Nếu dựng lại image mà đánh tag giống nhau thì image cũ sẽ thành dangling image.md * PUSH NOTE : Docker.md * PUSH NOTE : Có vẻ như ngày xưa engine với daemon là một.md * PUSH NOTE : Làm quen Deno Deploy cho người mới.md * PUSH NOTE : Tất cả web service là API, nhưng nó khác với web API của JS.md * PUSH NOTE : GraphQL phù hợp cho app điện thoại, gRPC phù hợp khi cần tốc độ cao với ít tài nguyên.md * PUSH NOTE : Endpoint.md * PUSH NOTE : Build service object.md * PUSH NOTE : GraphiQL.md * PUSH NOTE : Collection.md * PUSH NOTE : When you get an entity object, by default, only the primitive fields and any to-one relations are included in the fields returned. If you want to get the collection fields (to-many relations) you have to query specifically for them..md * PUSH NOTE : Cung cấp 2 biến args và context.md * PUSH NOTE : Dùng fibery-script-management để viết được trên IDE của mình.md * PUSH NOTE : Chỉ cho chạy tối đa 1 giây.md * PUSH NOTE : Việc tạo ra hỗn loạn và khuếch tán giúp giảm khả năng bị dò ra khoá trong trường hợp một bản rõ đã bị lộ.md * PUSH NOTE : ❓OAuth là cấp phép cho ai, token là cấp phép được làm cái gì.md * PUSH NOTE : Việc kiểm tra xem người dùng được phép truy cập dữ liệu ở mức độ nào được gọi là cấp phép (authorization).md * PUSH NOTE : Thông tin xác thực (credential) bao gồm client ID và client secret.md * PUSH NOTE : Mật khẩu, vân tay, 2FA, SSO là những cách để người dùng xác thực (authentication).md * PUSH NOTE : Client ID là để máy cấp quyền biết client nào là client nào, còn client secret là để nó đảm bảo rằng client này chính là client đó.md * PUSH NOTE : Auth không phải là xác thực (authenticate), mà là cấp phép (authorize).md * PUSH NOTE : Khi token truy cập hết hạn, client gửi refresh token đến máy chủ cấp quyền để được cấp token truy cập mới.md * PUSH NOTE : Một token truy cập có thể truy cập được một vài API với những quyền nhất định trong một khoảng thời gian nhất định.md * PUSH NOTE : Client nào có thông tin xác thực thì sẽ được nhận token truy cập từ máy chủ cấp quyền.md * PUSH NOTE : Client gửi token truy cập đến máy cấp quyền để được truy cập tài nguyên.md * PUSH NOTE : Scope là những phạm vi của các dữ liệu mà ứng dụng được truy cập.md * PUSH NOTE : Redirect URI là nơi máy xác thực trả xác thực.md * PUSH NOTE : OAuth, access token.md * PUSH NOTE : OAuth định nghĩa cách token được truyền, JWT định nghĩa cách token được định dạng.md * PUSH NOTE : OAuth là cách để cấp quyền truy cập dữ liệu mà người dùng không phải cấp mật khẩu.md * PUSH NOTE : Client là ứng dụng muốn truy cập vào dữ liệu của người dùng.md * PUSH NOTE : which are meant to be input by users and verified by matching, secret keys are usually read from storage and are an active part of an algorithm to decrypt the protected information..md * PUSH NOTE : Véc tơ khởi tạo (iv) dùng để đảm bảo những bản rõ giống nhau không tạo ra bản mã giống nhau.md * PUSH NOTE : Phép thay thế tăng độ hỗn loạn. Phép hoán vị tăng độ khuếch tán.md * PUSH ATTACHMENT : SubstitutionPermutationNetwork-en.svg 1.png * PUSH NOTE : Trước đây các trình duyệt có tạo API Crypto. Sau này được chuẩn hoá thì dùng SubtleCrypto.md * PUSH NOTE : Véc tơ khởi tạo (iv) dùng để đảm bảo những bản rõ giống nhau không tạo ra bản mã giống nhau.md * PUSH NOTE : Việc tạo ra hỗn loạn và khuếch tán giúp giảm khả năng bị dò ra khoá trong trường hợp một bản rõ đã bị lộ.md * PUSH NOTE : Phép thay thế tăng độ hỗn loạn. Phép hoán vị tăng độ khuếch tán.md * PUSH ATTACHMENT : SubstitutionPermutationNetwork-en.svg 1.png * PUSH NOTE : Khoá one-time pad không thể bị bẻ, nhưng khóa cần được chia sẻ trước, có độ dài tối thiểu bằng bản rõ và chỉ được dùng một lần.md * PUSH NOTE : Mã hoá từng khối ký tự một sẽ khó đoán hơn việc mã hoá từng ký tự một.md * PUSH NOTE : Khoá là một chuỗi bit, không phải là các ký tự ASCII.md * PUSH NOTE : P là các bài toán giải được trong thời gian đa thức. NP là các bài toán kiểm tra lời giải được trong thời gian đa thức.md * PUSH NOTE : Hàm một chiều là hàm giúp sinh ra một bài toán khó giải từ lời giải của nó.md * PUSH NOTE : Độ an toàn của khoá bây giờ không nằm ở việc giữ bí mật của khoá, mà ở việc rất khó để giải mã.md * PUSH NOTE : Hệ mã đối xứng dùng chung khoá cho cả lúc mã hoá và giải mã. Hệ mã bất đối xứng có khoá để mã hoá và giải mã khác nhau.md * PUSH NOTE : DES muốn an toàn thì phải chạy lâu.md * PUSH NOTE : Khoá là một chuỗi bit, không phải là các ký tự ASCII.md * PUSH NOTE : Mã hoá từng khối ký tự một sẽ khó đoán hơn việc mã hoá từng ký tự một.md * PUSH NOTE : Bởi vì AES đã trở thành tiêu chuẩn rộng rãi, nên các CPU đã được thiết kế cho riêng nó để giảm thiểu việc chạy lỗi cũng như bị tấn công.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Bấm F12 để biết thêm thông tin về biến.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Bấm dấu . để mở VS Code bản web ngay trên GitHub.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Các biểu tượng dùng trong VS Code.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Dùng snippet để viết tắt code.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Giao diện VS Code.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Hằng là xanh lợt, biến là xanh đậm.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Language server là thứ khiến cho IDE hỗ trợ tốt hơn việc lập trình.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Nhiều người có thể cùng chỉnh sửa cùng lúc như Google Docs.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Phím tắt trong VS Code.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Plugin hay cho người mới.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/VS Code chỉ là code editor, không phải IDE.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/VS Code nhiều khi không tìm hết file được do tên quá dài.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Video hướng dẫn.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Vim.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/launch.json dùng để thiết lập debugger.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/setting.json giúp tuỳ chỉnh thiết lập theo ý mình.md * DELETE FILE : docs/✍️Lập trình/Công cụ/IDE (VS Code)/Đường dẫn trong launch.json là cwd.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Component hàm không có trạng thái (stateless). Component lớp có trạng thái (stateful).md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Component là những hàm hoặc lớp trả về một khối JSX.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Dùng fetch dạng promise chứ đừng await trong component.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/JSX, props/JSX là cách để viết JS như thể viết HTML.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/JSX, props/Phải viết JSX trong .jsx hoặc .tsx.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/JSX, props/Props giúp việc thêm property cho DOM giống như thêm attribute cho HTML.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/JSX, props/Props là viết tắt của property, nghĩa gốc là tài sản. Tài sản của cha mẹ thì con dùng được, nhưng tài sản của con thì cha mẹ không đụng được.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/JSX, props/Props là đối số đầu tiên của hàm component, dùng để truyền giá trị các thuộc tính của nó.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/JSX, props/key là một thuộc tính đặc biệt của vật thể props để việc render được hiệu quả hơn.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Không có async component vì hiệu suất quá tệ.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Những hàm được export default và được viết hoa ký tự đầu tiên là component.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Nếu truyền HTML làm giá trị biến thì cần dùng dangerouslySetInnerHTML, nếu không thì sẽ bị mã hoá hết.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Component, render, JSX/Render là quá trình chuyển đổi dữ liệu và code sang HTML.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Fresh dùng Preact cho UI.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Fresh và Astro đều cung cấp khả năng render island lần đầu tại server và những lần sau tại client.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Fresh đối với Preact cũng giống như Next.js đối với React. React với Preact cung cấp khả năng render (làm framework), còn Fresh hay Next xử lý những thứ còn lại (làm meta-framework).md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/JS là để tăng trải nghiệm người dùng. Framework là để tăng trải nghiệm lập trình viên.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Lịch sử phát triển framework JavaScript.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Next.js, Remix, Gatsby là những framework mà chính React giới thiệu là nên dùng.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Preact chỉ là một thư viện render. Nó không có biết gì về server hay routing cả.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/React nên được alias thành preact-compat.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/React được sinh ra để làm việc với trạng thái.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/form.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Fresh, Preact, React/Ở Preact, onInput sẽ kích hoạt ngay trong lúc nhập, còn onChange chỉ kích hoạt khi người dùng đổi focus.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/Component nằm trong thư mục island sẽ được render lần đầu ở server, còn những lần sau đều ở client.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/Các hàm được môi trường thực thi cung cấp không hoạt động được ở island.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/Island là những component ở trong thư mục islands.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/Island với partial hydration là một.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/Khi một vật thể được đổ dữ liệu vào, nó được gọi là được tưới nước.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/Mỗi khi state thay đổi thì islands được render lại.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Island, state/State giúp cập nhật dữ liệu mà không cần tải lại trang.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Context/Giá trị trả về của useContext() là giá trị được truyền vào thuộc tính value của provider.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Context/createContext() nằm ngoài global, useContext() nằm trong component.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Context/useContext() là cách để không phải dùng Consumer.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Context/Đối số của createContext() quyết định kiểu của value của Context.Provider.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Chính vì setState render lại cả component, nên với những file component muốn tách ra nhiều hàm độc lập, và state.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Các hàm set của hook sẽ kích hoạt việc render lại component nơi nó được khai báo.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Cách dùng useEffect với useState.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Dùng setState gọn hơn signal nếu không phải truyền setter qua nhiều hàm khác nhau.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Không dùng mảng hoặc vật thể trong setState được.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Phải viết hook trong component. Không viết trong loop hoặc if được.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/Trong useEffect chỉ dùng được promise, không dùng async được.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Hook/useEffect được sinh ra là để side effect không tự động chạy mỗi khi component được render.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Signal/Signal chỉ render lại mỗi phần tử HTML chứa giá trị của nó.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Signal/Signal giúp giải quyết các vấn đề do useState hoặc Context tạo ra.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Quản lý state/Signal/effect khác computed ở chỗ một cái có return, một cái không có return.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Có một số hàm ở server sẽ không serialize được.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Khi có một yêu cầu tới một route, handler được gọi trước, sau đó tới component.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Kết quả được trả về ctx.render(arg) của handler sẽ được truyền lại vào props.data của component.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Nếu viết handler dưới dạng vật thể thì chỉ những phương thức là động từ HTTP mới được dùng. Nếu viết dưới dạng hàm thì cái hàm đó sẽ trở thành handler luôn.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Route cần có ít nhất một handler hoặc một component.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Route không bao giờ được gửi đến client. Island được chạy ở cả server và client.md * DELETE FILE : docs/✍️Lập trình/Web/Framework/Route, handler/Serialize là cách duy nhất để truyền dữ liệu từ server tới client và ngược lại.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Sắp chữ, thiết kế/Sắp chữ/TeX/Quản lý trích dẫn (Biber, BiBTeX)/Biber và BibTeX là các bộ máy để đọc tệp bib.md
1 parent fec5182 commit afcfe08

127 files changed

Lines changed: 1125 additions & 927 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/✍️Lập trình/Cloud, webhook, API/API của từng dịch vụ/Fibery/Automation/Dùng fibery-script-management để viết được trên IDE của mình.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
share: true
33
created: 2023-10-30T14:29
4-
updated: 2025-03-03T18:48
4+
updated: 2025-08-06T21:39
55
---
66
Nguồn:: [GitHub - mblais/fibery-script-management: Remote script management for Fibery.io automations](https://github.com/mblais/fibery-script-management)
7-
[VS Code chỉ code editor, không phải IDE](../../../../C%C3%B4ng%20c%E1%BB%A5/IDE%20(VS%20Code)/VS%20Code%20ch%E1%BB%89%20l%C3%A0%20code%20editor,%20kh%C3%B4ng%20ph%E1%BA%A3i%20IDE.md)
7+
[Do IDE để compile code, nên chính xác mà nói thì không IDE cho JS](../../../../C%C3%B4ng%20c%E1%BB%A5/IDE/Do%20IDE%20l%C3%A0%20%C4%91%E1%BB%83%20compile%20code,%20n%C3%AAn%20ch%C3%ADnh%20x%C3%A1c%20m%C3%A0%20n%C3%B3i%20th%C3%AC%20kh%C3%B4ng%20c%C3%B3%20IDE%20cho%20JS.md)
88

99
Nếu url có ký tự unicode thì cần unescape nó:
1010
```PowerShell
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
share: true
3+
created: 2023-10-30T14:29
4+
updated: 2025-03-03T18:48
5+
---
6+
[Docker mặc định sinh ra IP ngẫu nhiên cho container. Không có DNS hoặc static IP management thì service không thể biết nhau](./Docker%20m%E1%BA%B7c%20%C4%91%E1%BB%8Bnh%20sinh%20ra%20IP%20ng%E1%BA%ABu%20nhi%C3%AAn%20cho%20container.%20Kh%C3%B4ng%20c%C3%B3%20DNS%20ho%E1%BA%B7c%20static%20IP%20management%20th%C3%AC%20service%20kh%C3%B4ng%20th%E1%BB%83%20bi%E1%BA%BFt%20nhau.md)
7+
Nguồn:: https://devops.vn/posts/sai-lam-cua-minh-la-hoc-docker-dau-tien-phai-hoc-load-balancing-va-dns-truoc/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
share: true
3+
created: 2023-10-30T14:29
4+
updated: 2025-03-03T18:48
5+
---
6+
Nguồn:: https://devops.vn/posts/sai-lam-cua-minh-la-hoc-docker-dau-tien-phai-hoc-load-balancing-va-dns-truoc/

docs/✍️Lập trình/Công cụ/Docker/index.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,24 @@ created: 2023-11-10T13:13
44
updated: 2025-03-03T18:48
55
title: Docker
66
---
7-
7+
88
- Docker:
9-
- [Container chỉ là một process](./Container%20ch%E1%BB%89%20l%C3%A0%20m%E1%BB%99t%20process.md)
109
- [Container là phù du](./Container%20l%C3%A0%20ph%C3%B9%20du.md)
10+
- [Container chỉ là một process](./Container%20ch%E1%BB%89%20l%C3%A0%20m%E1%BB%99t%20process.md)
1111
- [Có vẻ như ngày xưa engine với daemon là một](./C%C3%B3%20v%E1%BA%BB%20nh%C6%B0%20ng%C3%A0y%20x%C6%B0a%20engine%20v%E1%BB%9Bi%20daemon%20l%C3%A0%20m%E1%BB%99t.md)
1212
- [Docker Desktop tạo ra một máy ảo để chạy docker engine](./Docker%20Desktop%20t%E1%BA%A1o%20ra%20m%E1%BB%99t%20m%C3%A1y%20%E1%BA%A3o%20%C4%91%E1%BB%83%20ch%E1%BA%A1y%20docker%20engine.md)
13+
- [Docker không dạy bạn cách network hoạt động. Nó chỉ giúp bạn trốn tránh việc phải hiểu nó](./Docker%20kh%C3%B4ng%20d%E1%BA%A1y%20b%E1%BA%A1n%20c%C3%A1ch%20network%20ho%E1%BA%A1t%20%C4%91%E1%BB%99ng.%20N%C3%B3%20ch%E1%BB%89%20gi%C3%BAp%20b%E1%BA%A1n%20tr%E1%BB%91n%20tr%C3%A1nh%20vi%E1%BB%87c%20ph%E1%BA%A3i%20hi%E1%BB%83u%20n%C3%B3.md)
14+
- [Docker mặc định sinh ra IP ngẫu nhiên cho container. Không có DNS hoặc static IP management thì service không thể biết nhau](./Docker%20m%E1%BA%B7c%20%C4%91%E1%BB%8Bnh%20sinh%20ra%20IP%20ng%E1%BA%ABu%20nhi%C3%AAn%20cho%20container.%20Kh%C3%B4ng%20c%C3%B3%20DNS%20ho%E1%BA%B7c%20static%20IP%20management%20th%C3%AC%20service%20kh%C3%B4ng%20th%E1%BB%83%20bi%E1%BA%BFt%20nhau.md)
1315
- [Engine bao gồm CLI client, API và deamon](./Engine%20bao%20g%E1%BB%93m%20CLI%20client,%20API%20v%C3%A0%20deamon.md)
1416
- [exec để chạy lệnh cho một container đang chạy](./exec%20%C4%91%E1%BB%83%20ch%E1%BA%A1y%20l%E1%BB%87nh%20cho%20m%E1%BB%99t%20container%20%C4%91ang%20ch%E1%BA%A1y.md)
1517
- [Image là template để chạy container](./Image%20l%C3%A0%20template%20%C4%91%E1%BB%83%20ch%E1%BA%A1y%20container.md)
16-
- [Mỗi một dòng trong dockerfile sẽ tương ứng với một step khi dựng image](./M%E1%BB%97i%20m%E1%BB%99t%20d%C3%B2ng%20trong%20dockerfile%20s%E1%BA%BD%20t%C6%B0%C6%A1ng%20%E1%BB%A9ng%20v%E1%BB%9Bi%20m%E1%BB%99t%20step%20khi%20d%E1%BB%B1ng%20image.md)
1718
- [Nếu dựng lại image mà đánh tag giống nhau thì image cũ sẽ thành dangling image](./N%E1%BA%BFu%20d%E1%BB%B1ng%20l%E1%BA%A1i%20image%20m%C3%A0%20%C4%91%C3%A1nh%20tag%20gi%E1%BB%91ng%20nhau%20th%C3%AC%20image%20c%C5%A9%20s%E1%BA%BD%20th%C3%A0nh%20dangling%20image.md)
18-
- [Việc dựng image được thiết lập qua dockerfile](./Vi%E1%BB%87c%20d%E1%BB%B1ng%20image%20%C4%91%C6%B0%E1%BB%A3c%20thi%E1%BA%BFt%20l%E1%BA%ADp%20qua%20dockerfile.md)
19+
- [Mỗi một dòng trong dockerfile sẽ tương ứng với một step khi dựng image](./M%E1%BB%97i%20m%E1%BB%99t%20d%C3%B2ng%20trong%20dockerfile%20s%E1%BA%BD%20t%C6%B0%C6%A1ng%20%E1%BB%A9ng%20v%E1%BB%9Bi%20m%E1%BB%99t%20step%20khi%20d%E1%BB%B1ng%20image.md)
1920
- [Volume là cách để đồng bộ dữ liệu giữa máy chủ và máy ảo](./Volume%20l%C3%A0%20c%C3%A1ch%20%C4%91%E1%BB%83%20%C4%91%E1%BB%93ng%20b%E1%BB%99%20d%E1%BB%AF%20li%E1%BB%87u%20gi%E1%BB%AFa%20m%C3%A1y%20ch%E1%BB%A7%20v%C3%A0%20m%C3%A1y%20%E1%BA%A3o.md)
21+
- [Việc dựng image được thiết lập qua dockerfile](./Vi%E1%BB%87c%20d%E1%BB%B1ng%20image%20%C4%91%C6%B0%E1%BB%A3c%20thi%E1%BA%BFt%20l%E1%BA%ADp%20qua%20dockerfile.md)
22+
23+
24+
25+
[Hết dung lượng disk do chạy Docker trong thời gian dài](https://viblo.asia/p/het-dung-luong-disk-do-chay-docker-trong-thoi-gian-dai-oK9Vyze94QR#comment-bXP4WgPr47G)
2026

21-
22-
23-
[Hết dung lượng disk do chạy Docker trong thời gian dài](https://viblo.asia/p/het-dung-luong-disk-do-chay-docker-trong-thoi-gian-dai-oK9Vyze94QR#comment-bXP4WgPr47G)
24-
2527
Tiếng Pháp, phụ đề tiếng Anh: [Understanding Docker in a visual way - YouTube](https://www.youtube.com/playlist?list=PLmw3X80dPdlyRV2EUKnFOvBACs_tcArd0)

docs/✍️Lập trình/Công cụ/IDE (VS Code)/Nhiều người có thể cùng chỉnh sửa cùng lúc như Google Docs.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/✍️Lập trình/Công cụ/IDE (VS Code)/Đường dẫn trong launch.json là cwd.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/✍️Lập trình/Công cụ/IDE (VS Code)/VS Code chỉ là code editor, không phải IDE.md renamed to docs/✍️Lập trình/Công cụ/IDE/Do IDE là để compile code, nên chính xác mà nói thì không có IDE cho JS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
share: true
33
created: 2023-10-30T14:29
4-
updated: 2025-03-03T18:48
4+
updated: 2025-08-06T21:37
55
---
66
An IDE is often just aimed at a few specific compiled languages: there's a bunch of Java IDEs and we have VisualStudio for C# and VB and F#.
77

docs/✍️Lập trình/Công cụ/IDE (VS Code)/Bấm F12 để biết thêm thông tin về biến.md renamed to docs/✍️Lập trình/Công cụ/IDE/VS Code/Bấm F12 để biết thêm thông tin về biến.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
share: true
33
created: 2023-10-30T14:29
4-
updated: 2024-08-18T15:05
4+
updated: 2025-08-06T21:37
55
---
66
Nguồn::

docs/✍️Lập trình/Công cụ/IDE (VS Code)/Bấm dấu . để mở VS Code bản web ngay trên GitHub.md renamed to docs/✍️Lập trình/Công cụ/IDE/VS Code/Bấm dấu . để mở VS Code bản web ngay trên GitHub.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
share: true
33
created: 2023-10-30T14:29
4-
updated: 2025-05-02T17:21
4+
updated: 2025-08-06T21:37
55
---
66
Nguồn::

docs/✍️Lập trình/Công cụ/IDE (VS Code)/Các biểu tượng dùng trong VS Code.md renamed to docs/✍️Lập trình/Công cụ/IDE/VS Code/Các biểu tượng dùng trong VS Code.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
share: true
33
created: 2023-10-24T18:26
4-
updated: 2024-08-18T15:05
4+
updated: 2025-08-06T21:37
55
---
66
| Icon | Name | Symbol type |
77
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ----------------------------------- |

0 commit comments

Comments
 (0)