Skip to content

Commit c89b7bb

Browse files
authored
[skip netlify] PUBLISHER #125
* 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 : Khi một hàm được gọi với từ khoá new, nó sẽ được dùng như một constructor.md * PUSH NOTE : Sự kiện.md * PUSH NOTE : Mọi sự kiện đều capture và target, nhưng không phải sự kiện nào cũng bubble.md * PUSH NOTE : Đáng lẽ typeof null phải là 'null'. Nhưng nó lại trả về là 'object' vì đây là một bug lúc JS mới được viết, và việc sửa nó sẽ làm hỏng nhiều script.md * PUSH NOTE : typeof NaN === number.md * PUSH NOTE : Dùng nullish coalescing operator thay cho toán tử OR khi 0, '', NaN cần được trả về true chứ không phải false.md * PUSH NOTE : Mọi phép so sánh với NaN đều trả về false.md * 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 : 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 : object Object xảy ra khi một vật thể bị chuyển sang dạng chuỗ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 : 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 : 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 : 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 : 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 : 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 : Đối số của Promise là một hàm. Nó được gọi là hàm thực thi (executor).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 : 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 : 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 phù hợp khi code đã ổn định rồi.md * PUSH NOTE : Rust.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 : Dùng sleep ở đầu loop tốt hơn là ở cuối loop.md * PUSH NOTE : AutoHotKey.md * PUSH NOTE : AutoHotkey combines 3 concepts into 1 built-in basic object type.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 : Quy ước đặt tên biến.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 : 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 : 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 : Hãy viết code sao cho mình khỏi comment.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 : 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 : Đườ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 : Tránh dùng hàm lồng để làm giảm sự couple.md * PUSH NOTE : Mỗi đường cơ sở trong biểu đồ dòng tương ứng với một testcase.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 : 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 : 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ờ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 : 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 : 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 : 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 : 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 : 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 : 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 : 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 đó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 : 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 : 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 : Vật thể là dạng dữ liệu có những thuộc tính thành phần.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 : Lớp là một cái khuôn để tạo các vật thể cho nhanh.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 : 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 : 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 : 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 : 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 : 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 : 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 : 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 : API là giao diện của một chương trình.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 : 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 : 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 : Ý 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 : 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 : 4 đặc điểm của lập trình hướng vật thể.md * PUSH NOTE : Biểu thức (expression) là những thứ trả lại một giá trị nào đó.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 : Đườ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 : 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 : Sự khác biệt giữa Windows và Android, Mac trong tên file.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 : 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 : 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 : 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 : 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 : Dùng chương trình Linux cho người không biết gì về nó.md * PUSH NOTE : Nên cài Linux hay dùng WSL.md * PUSH NOTE : Shell là cái vỏ bảo vệ nhân của hệ điều hành.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 : 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 : Windows Terminal có thể được kích hoạt trong Explorer.md * PUSH NOTE : PowerShell là một ngôn ngữ shell.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 : Bạn không cần dùng GUI.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 : PATH là đường dẫn mặc định tới những tập tin nhị phân (binary).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 : 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ù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 : Dễ xem kết quả các giá trị trong console debug hơn là ở Variables.md * PUSH NOTE : Đường dẫn trong launch.json là cwd.md * PUSH NOTE : VS Code chỉ là code editor, không phải IDE.md * PUSH NOTE : Vim.md * PUSH NOTE : setting.json giúp tuỳ chỉnh thiết lập theo ý mình.md * PUSH NOTE : Phím tắt trong VS Code.md * PUSH NOTE : Hằng là xanh lợt, biến là xanh đậm.md * PUSH NOTE : Language server là thứ khiến cho IDE hỗ trợ tốt hơn việc lập trình.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 : Có vẻ như ngày xưa engine với daemon là một.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 : 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 : 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 : 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 : 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 : ❓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 : 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 : Thông tin xác thực (credential) bao gồm client ID và client secret.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 : Redirect URI là nơi máy xác thực trả xác thực.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 : 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 : 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 : 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 : 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 : 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 : 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 * 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 : 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 : 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 : 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 : 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 : Khoá là một chuỗi bit, không phải là các ký tự ASCII.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 : 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 : DES muốn an toàn thì phải chạy lâu.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 : Làm quen Deno Deploy cho người mới.md * PUSH NOTE : GH action phải clone về trước.md * DELETE FILE : docs/✍️Lập trình/Khái niệm cơ bản và nguyên lý lập trình/Nguyên lý/Giao diện, giao thức/Giao diện nhấn mạnh vào mô hình dữ liệu, còn giao thức nhấn mạnh vào các quy tắc và thủ tục trong quá trình truyền và trao đổi dữ liệu.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/2 chấm và 3 chấm trong log và diff.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Blob, tree, commit và annotated tag là các object chính.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Bản chất của Git chỉ là những cặp giá trị key – value.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Commitist và treeist.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Các commit được nối với nhau bằng hash.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Có thể hiểu blob là hash của một tệp, tree là hash của một thư mục, còn commit thực ra chỉ là hash của cả thư mục tổng.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Có thể xem nội dung file với hash là như nhau. Nhưng file thì có thể có kích thước vô cùng lớn, còn hash thì luôn chỉ có 40 ký tự.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Key là hash của object, value là nội dung object.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Lệnh sứ là các lệnh dành cho người dùng. Lệnh ống nước là các lệnh lõi để dùng kèm với các lệnh Unix khác.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Ref/Cái nào có ref thì `git gc` sẽ không đụng tới.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Ref/Có 2 chỗ để lưu ref.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Ref/Ref là hệ thống đặt tên các object.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Ref/git reflog giúp xem lại các ref không có trong lịch sử commit.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Ref/git reflog là phao cứu sinh cho những lỗi lầm khi dùng Git.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/@ là viết tắt của HEAD.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/Git không biết gì về folder.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/HEAD là commit hiện tại.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/Khi amend, rebase, push force thì author date vẫn giữ nguyên, còn commit date mới cập nhật.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/Reset soft dùng để gộp nhiều commit lại với nhau. Reset hard dùng để xoá bỏ những gì đã ghi sau commit được chọn.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/Thứ ta đang trực tiếp chỉnh sửa mà ta tưởng là dữ liệu của mình thực chất là thứ được vay mượn từ commit.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/Việc commit giúp ta phá code mà không sợ gì, giống như có đồ bảo hộ rồi thì tha hồ nghịch điện cao thế.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/git log --all chỉ hiện những commit nào tiếp cận được từ một ref.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/git log giúp xem lịch sử các commit.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/stash pop nếu gặp conflict sẽ không pop.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Commit/~ và dấu mũ là để chỉ các commit trước đó.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Fast forward.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/Stage, index, cache/Stage, cache, index là những cái tên khác nhau cho cùng một thứ.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/Stage, index, cache/Untracked, staged, unchanged và unstaged là 4 trạng thái chính của một file.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/Stage, index, cache/git add -A làm cho index giống như ở working directory. git commit -am chỉ áp dụng cho những file đã có sẵn trong index.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/diff/diff does not take into account untracked files.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/diff/git diff chỉ so sánh working tree với index, không phải HEAD. Muốn so sánh với HEAD phải dùng git diff HEAD.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/diff/git diff thường dùng.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/git status giúp xem những file nào đã được vào stage.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/ls-files chỉ làm việc với index.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/File/pathspecs giúp chọn đường dẫn một cách linh hoạt và tinh tế hơn.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Git tag.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/GitHub/Bấm dấu . để mở VS Code bản web ngay trên GitHub.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/GitHub/GitHub Page không nhận ra các thư mục có dash phía trước, chỉ đọc được trong docs.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/GitHub/Template và fork.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/GitHub/Tạo nhánh mới khi tạo PR sẽ dễ quản lý hơn.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/GitHub/Website GitHub giống như là để teamview máy tính của GitHub.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Lưu trữ (snapshotting)/Stash/Dùng commit và branch có nhiều ưu điểm hơn là dùng stash.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/Cây lịch sử có thể được dùng như là bản lưu những gì đã diễn ra, hoặc là một câu chuyện kể về chúng.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/Khi viết tính năng mới nên tạo branch mới.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/Merge, rebase/Khi merge, ours là branch hiện tại. Khi rebase, theirs là branch hiện tại.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/Merge, rebase/Merge dùng để bảo lưu sự song song của các thay đổi đã xảy ra trên code. Rebase dùng để đảm bảo cây lịch sử phản ánh sự tuần tự trong quá trình thay đổi code của mình.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/Merge, rebase/Rebase thích hợp khi phải merge nhiều branch, do nó làm cây lịch sử gọn hơn.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/Merge, rebase/git merge B nên được hiểu là git merge A with B. git rebase A nên được hiểu là git rebase B to A.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/origin, upstream là những cái tên thường dùng cho remote.md * DELETE FILE : docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Repo/pull không lấy file mới về, mà lấy commit mới về.md
1 parent 72c3dff commit c89b7bb

64 files changed

Lines changed: 245 additions & 196 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.
1.43 MB
Loading
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
share: true
33
created: 2023-10-30T14:29
4-
updated: 2025-04-30T22:12
4+
updated: 2025-05-02T00:09
55
---
6-
Với những bạn
7-
- Cần USB để boot máy
8-
- Cần
6+
Với những bạn
7+
- Cần USB để boot máy
8+
- Cần
99
Nguồn::

docs/✍️Lập trình/Khái niệm cơ bản và nguyên lý lập trình/Nguyên lý/Giao diện, giao thức/Giao diện nhấn mạnh vào mô hình dữ liệu, còn giao thức nhấn mạnh vào các quy tắc và thủ tục trong quá trình truyền và trao đổi dữ liệu.md renamed to docs/✍️Lập trình/Khái niệm cơ bản và nguyên lý lập trình/Nguyên lý/Giao diện, giao thức/Giao diện và giao thức đều là những thứ các bên cần tuân thủ để sự giao tiếp được diễn ra, nhưng giao diện nhấn mạnh vào mô hình dữ liệu, còn giao thức nhấn mạnh vào các quy tắc và thủ tục trong quá trình truyền và trao đổi dữ liệu.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
---
22
share: true
33
created: 2023-10-30T14:29
4-
updated: 2025-04-30T22:22
5-
filename: Giao diện nhấn mạnh vào mô hình dữ liệu, còn giao thức nhấn mạnh vào các quy tắc và thủ tục trong quá trình truyền và trao đổi dữ liệu
4+
updated: 2025-05-02T00:09
65
---
7-
[Giao diện là cách để sử dụng vật thể mà không cần biết bên trong nó có gì](../../Kh%C3%A1i%20ni%E1%BB%87m%20c%C6%A1%20b%E1%BA%A3n/M%C3%B4%20%C4%91un/Giao%20di%E1%BB%87n%20l%C3%A0%20c%C3%A1ch%20%C4%91%E1%BB%83%20s%E1%BB%AD%20d%E1%BB%A5ng%20v%E1%BA%ADt%20th%E1%BB%83%20m%C3%A0%20kh%C3%B4ng%20c%E1%BA%A7n%20bi%E1%BA%BFt%20b%C3%AAn%20trong%20n%C3%B3%20c%C3%B3%20g%C3%AC.md). Đây là một ví dụ về giao diện (interface):
8-
9-
```
10-
interface Communicate
11-
{
12-
string SendMessageAndGetResponse(string message);
13-
}
14-
```
15-
16-
[Giao thức là cách để các bên nhận và gửi dữ liệu hiểu nhau](../../../../%F0%9F%96%A5%EF%B8%8FM%E1%BA%A1ng%20m%C3%A1y%20t%C3%ADnh/Giao%20th%E1%BB%A9c/Giao%20th%E1%BB%A9c%20l%C3%A0%20c%C3%A1ch%20%C4%91%E1%BB%83%20c%C3%A1c%20b%C3%AAn%20nh%E1%BA%ADn%20v%C3%A0%20g%E1%BB%ADi%20d%E1%BB%AF%20li%E1%BB%87u%20hi%E1%BB%83u%20nhau.md). Đây là một ví dụ về giao thức (protocol):
17-
18-
> 1. Gửi "Hello"
19-
> 2. Nếu bạn nhận được phản hồi "Hi" thì hãy gửi "How are you?" và phản hồi sẽ là trạng thái
20-
> 3. Nếu bạn nhận được bất kỳ thông tin nào khác ngoài "Hi" từ tin nhắn ban đầu thì hệ thống không hoạt động bình thường và bạn phải gửi tin nhắn "Reboot"
21-
> 4. Sau đó bạn sẽ nhận được "Rebooted!" nếu thành công và bất kỳ thông tin nào khác nếu không thành công
22-
23-
You can explore the relationship between these concepts in [Six Degree of Wikipedia](https://www.sixdegreesofwikipedia.com/?source=Interface+(computing)&target=Communication+protocol):
24-
- Interface to protocol: [![enter image description here](https://i.sstatic.net/pzNMapLf.png)](https://i.sstatic.net/pzNMapLf.png)
25-
- Protocol to interface: [![enter image description here](https://i.sstatic.net/65pL4rSB.png)](https://i.sstatic.net/65pL4rSB.png)
26-
6+
[Giao diện là cách để sử dụng vật thể mà không cần biết bên trong nó có gì](../../Kh%C3%A1i%20ni%E1%BB%87m%20c%C6%A1%20b%E1%BA%A3n/M%C3%B4%20%C4%91un/Giao%20di%E1%BB%87n%20l%C3%A0%20c%C3%A1ch%20%C4%91%E1%BB%83%20s%E1%BB%AD%20d%E1%BB%A5ng%20v%E1%BA%ADt%20th%E1%BB%83%20m%C3%A0%20kh%C3%B4ng%20c%E1%BA%A7n%20bi%E1%BA%BFt%20b%C3%AAn%20trong%20n%C3%B3%20c%C3%B3%20g%C3%AC.md). Đây là một ví dụ về giao diện (interface):
7+
8+
```
9+
interface Communicate
10+
{
11+
string SendMessageAndGetResponse(string message);
12+
}
13+
```
14+
15+
[Giao thức là cách để các bên nhận và gửi dữ liệu hiểu nhau](../../../../%F0%9F%96%A5%EF%B8%8FM%E1%BA%A1ng%20m%C3%A1y%20t%C3%ADnh/Giao%20th%E1%BB%A9c/Giao%20th%E1%BB%A9c%20l%C3%A0%20c%C3%A1ch%20%C4%91%E1%BB%83%20c%C3%A1c%20b%C3%AAn%20nh%E1%BA%ADn%20v%C3%A0%20g%E1%BB%ADi%20d%E1%BB%AF%20li%E1%BB%87u%20hi%E1%BB%83u%20nhau.md). Đây là một ví dụ về giao thức (protocol):
16+
17+
> 1. Gửi "Hello"
18+
> 2. Nếu bạn nhận được phản hồi "Hi" thì hãy gửi "How are you?" và phản hồi sẽ là trạng thái
19+
> 3. Nếu bạn nhận được bất kỳ thông tin nào khác ngoài "Hi" từ tin nhắn ban đầu thì hệ thống không hoạt động bình thường và bạn phải gửi tin nhắn "Reboot"
20+
> 4. Sau đó bạn sẽ nhận được "Rebooted!" nếu thành công và bất kỳ thông tin nào khác nếu không thành công
21+
22+
You can explore the relationship between these concepts in [Six Degree of Wikipedia](https://www.sixdegreesofwikipedia.com/?source=Interface+(computing)&target=Communication+protocol):
23+
- Interface to protocol: [![enter image description here](https://i.sstatic.net/pzNMapLf.png)](https://i.sstatic.net/pzNMapLf.png)
24+
- Protocol to interface: [![enter image description here](https://i.sstatic.net/65pL4rSB.png)](https://i.sstatic.net/65pL4rSB.png)
25+
2726
Nguồn:: [What is the difference between a protocol and an interface in general? - Stack Overflow](https://stackoverflow.com/a/64219055)

docs/✍️Lập trình/Ngôn ngữ/Các ký tự đặc biệt trong các ngôn ngữ khác nhau.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ cssClass: wide-table
1515
| Dấu chéo `\` | | | | | | | | | | |
1616
| Dấu chéo ngược `/` | | | | | | | | | | |
1717
| Dấu sao `*` | | | | | | | | | | |
18-
| Dấu a còng `@` | | | Chèn nhiều tham số vào cùng lúc (splatting) | [HEAD](../../%F0%9F%94%A0K%C3%BD%20t%E1%BB%B1,%20v%C4%83n%20b%E1%BA%A3n.%20Qu%E1%BA%A3n%20l%C3%BD,%20vi%E1%BA%BFt%20v%C3%A0%20xu%E1%BA%A5t%20b%E1%BA%A3n%20n%E1%BB%99i%20dung/%C4%90%E1%BB%93ng%20b%E1%BB%99,%20sao%20l%C6%B0u/Git/Commit/HEAD%20l%C3%A0%20commit%20hi%E1%BB%87n%20t%E1%BA%A1i.md) | | Scope | | | | |
18+
| Dấu a còng `@` | | | Chèn nhiều tham số vào cùng lúc (splatting) | [HEAD](../../%F0%9F%94%A0K%C3%BD%20t%E1%BB%B1,%20v%C4%83n%20b%E1%BA%A3n.%20Qu%E1%BA%A3n%20l%C3%BD,%20vi%E1%BA%BFt%20v%C3%A0%20xu%E1%BA%A5t%20b%E1%BA%A3n%20n%E1%BB%99i%20dung/%C4%90%E1%BB%93ng%20b%E1%BB%99,%20sao%20l%C6%B0u/Git/Blob,%20tree,%20ref.%20B%C3%AAn%20trong%20Git/Ref/HEAD/HEAD%20l%C3%A0%20commit%20hi%E1%BB%87n%20t%E1%BA%A1i.md) | | Scope | | | | |
1919
| Dấu thăng `#` | | | `# comment`. Mẹo: dùng `##` ở trên function | | `#directive` | | | | | |
2020
| Dấu chấm phẩy `;` | | | | | `; comment` | | | | | |
2121
| Dấu gạch đứng `\|` | | | Pipe | | | | | | | |

docs/👏Sản phẩm/`core`, `kernel`, `engine`.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: 2025-02-28T19:28
4-
updated: 2025-04-28T17:11
4+
updated: 2025-05-02T00:09
55
---
66
## `core`
77
## `kernel`

docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Blob, tree, commit và annotated tag là các object chính.md renamed to docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Bên trong Git/Blob, tree, commit và annotated tag là các object chính.md

File renamed without changes.

docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Bản chất của Git chỉ là những cặp giá trị key – value.md renamed to docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Bên trong Git/Bản chất của Git chỉ là những cặp giá trị key – value.md

File renamed without changes.

docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Commitist và treeist.md renamed to docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Bên trong Git/Commitist và treeist.md

File renamed without changes.

docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Các commit được nối với nhau bằng hash.md renamed to docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Bên trong Git/Các commit được nối với nhau bằng hash.md

File renamed without changes.

docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Git internals/Có thể hiểu blob là hash của một tệp, tree là hash của một thư mục, còn commit thực ra chỉ là hash của cả thư mục tổng.md renamed to docs/🔠Ký tự, văn bản. Quản lý, viết và xuất bản nội dung/Đồng bộ, sao lưu/Git/Blob, tree, ref. Bên trong Git/Có thể hiểu blob là hash của một tệp, tree là hash của một thư mục, còn commit thực ra chỉ là hash của cả thư mục tổng.md

File renamed without changes.

0 commit comments

Comments
 (0)