🏋 Top Posts

👉 Hệ thống eventloop trong Node.js: Cách hoạt động và cách sử dụng với lời giải thích cặn kẽ.

Eventloop là một phần quan trọng của hệ thống runtime của Node.js, nó liên quan đến callback, thread nhưng để hiểu khái niệm này không đơn giản. Bài viết này phân tích rất kỹ về vấn đề này.

👉 Array javascript với Emojis lớp 1 cũng hiểu

Giá như lúc mới học Array mà biết được bài viết sử dụng Emojis để hiểu về JavaScript Array Methods thì quá tuyệt vời. Còn gì bằng.

👉 Tư duy lập trình qua một ví dụ đơn giản? Và Bạn đang ở đâu?

Lập trình là một khái niệm rộng cho tất cả những ai đang đi theo con đường lập trình viên. Tư duy lập trình cũng bao gồm trong đó, bởi thế những nhà tuyển dụng họ thường đánh giá cao khả năng tư duy của các ứng viên.

🏋 New Posts

👉 Nghệ thuật ổn định của hệ thống và tính sẵn sàng cao của một backend (beginer-> junior -> senior -> level 5)

Lập trình viên đề cập đến hệ thống ai cũng nghĩ về kiến trúc với 3 điều sau. Một tính sẵn sàng cao, hai đồng thời cao, và ba là hiệu suất cao. 3 yếu tố này bắt buộc phải hiểu nếu bạn là một Backend phải xem xét trong quá trình làm việc với dự án. Trong bài viết này, chúng ta sẽ nói những điều này cũng là điều mà chúng ta thường gọi là tính ổn định của hệ thống.

👉 Cách connect redis vs nodejs này cực kỳ hiệu quả và giám sát tốt nhất

Cách connect redis này là một cách tạo độ tin cậy và giám sát hệ thống một cách hiệu quả trong kiến trúc microservice, đến nay chúng tôi vẫn sử dụng cách này triển khai cho nhiều dự án.

👉 Redis và Mysql phân tích tính nhất quán dữ liệu đồng thời cao trong hệ thống (Backend Level 4, 5)

Đối với Lập Trình Viên Backend lâu năm không cần phải giải thích tính quan trọng của cache (redis, memcached) nó được sử dụng rộng rãi trong các dự án do tính đồng thời cao và hiệu suất cao không phải bàn cãi, nhưng nó có nhược điểm đó là tính nhất quán.

👉 Redis và Memcached sự khác biệt là gì?

Redis và Memcached vốn dĩ rất thân thuộc với nhiều lập trình viên backend, chúng đều là cơ sở dữ liệu dựa trên bộ nhớ và thường được sử dụng làm bộ nhớ đệm (cache) trong ứng dụng hiện nay, và cũng có nhiều kịch bản để áp dụng.

👉 Nói về khóa phân tán với hai levels lập trình backend

"Khóa phân tán" là một phương pháp phổ biến được sử dụng để giải quyết "xung đột đồng thời" trong các ứng dụng phân tán hiện nay. Ở đây chúng ta sẽ phân tích các kịch bản và cách triển khai về phương pháp này.

👉 Lộ trình lập trình backend: Nói về redis các tình huống và kịch bản trong thực tế cũng như phỏng vấn.

Redis String là một trong những cấu trúc dữ liệu cơ bản nhất trong Redis, nó có thể lưu trữ bất kỳ loại dữ liệu nào, bao gồm number, text, object được tuần tự hóa, v.v. String trong Redis có thể lưu trữ tới 512MB dữ liệu.

👉 Sự đánh đổi hiệu suất và tính nhất quán trong hệ thống backend

Khi chúng ta nói về tính nhất quán nhất là các hệ thống phân tán, thì sách vở chỉ có phân hai loại, nhất quán yếu và nhất quán mạnh. Nhưng thực tế thì phải có 3 loại tính nhất quán.

👉 Lập trình phía Backend - hiểu stream trong Node.js tối ưu hệ thống

Stream trong Node.js được sử dụng khi xử lý các tình huống với các File lớn hoặc phát trực tiếp liveStream một ứng dụng nào đó. Thật sự nếu kỹ năng chưa đủ thì có lẽ sẽ làm một thảm họa, ví dụ sau đây làm bằng chứng...

👉 Web Worker rất hiệu quả Tôi fix từ CPU 100% xuống 0,5% tăng tốc Web Chứng Khoán

Đa luồng là một công nghệ quan trọng trong phát triển phần mềm hiện đại nhằm nâng cao hiệu suất và khả năng phản hồi của ứng dụng. Tuy nhiên, do tính chất đơn luồng của JavaScript nên điều này không phổ biến trên web.

👉 Promise sử dụng kiểm soát requests đồng thời cao một cách hiệu quả

Hiện tại giao tiếp không đồng bộ với máy chủ là một yêu cầu phổ biến. Tuy nhiên, khi cần gửi nhiều yêu cầu cùng lúc, nếu không được kiểm soát có thể khiến máy chủ tải quá mức và ảnh hưởng đến hiệu suất ứng dụng.

👉 Danh sách đầy đủ về GIT và Các lệnh Git thường được sử dụng

Git hiện là công cụ kiểm soát phiên bản phổ biến nhất và điều quan trọng đối với các lập trình viên là bắt buộc phải thành thạo các lệnh Git. Đây là những thao tác có tần suất sử dụng nhiều nhất cho nên tôi tổng hợp lại cho các Anh Chị.

👉 3 cuộc phỏng vấn Backend Nodejs với ba cấp độ lập trình bắt đầu, trung cấp và cao cấp.

Phỏng vấn backend node.js trước tiên bạn muốn tự tin thì chỉ có cách hãy làm chủ được công nghệ hay tốt nhất là hiểu sâu về ngăn xếp công nghệ của node.js. Đây là một bài viết giới thiệu về ba level khác nhau về các câu hỏi phỏng vấn lập trình Node.js.

👉 Lập trình viên Fullstack lộ trình và hai hướng đi phát triển phần mềm

Vị trí Fullstack (FS) lập trình viên có hai cuộc đời, một là sướng chết cha, hai là khổ chết bà. Sướng và khổ ở đây chưa nói đến lương bổng nha AC. Vì sao để tôi phân tích thêm về vấn đề này.

👉 Node.js mới nhất cho phép sử dụng .env hoàn hảo nhất trong ứng dụng (Store config in the environment)

Ứng dụng đôi khi lưu trữ các biến môi trường (environment) dưới dạng constant trong code của team. Điều đó dễ hiểu vì sao .env phải nghiêm ngặt về sự tách biệt giữa code và environment.

👉 Giải pháp lập trình BackEnd: Các đơn đặt hàng đồng thời cao có cần phải bị khóa để tránh quá bán không?

Một quy trình đặt hàng đơn giản bao gồm xác minh sản phẩm, định giá đơn hàng, khấu trừ hàng tồn kho và lưu đơn hàng. Trong số đó, vấn đề đồng thời khấu trừ hàng tồn kho là mắt xích rắc rối và phức tạp nhất trong toàn bộ quá trình, tôi giải quyết thế này.

👉 Cấu trúc dữ liệu và giải thuật học ở đâu? học như thế nào? Và áp dụng như thế nào để tăng level và lương.

Cấu trúc dữ liệu và giải thuật được xem là một tiền đề trong ngành lập trình viên. Tôi nhớ hồi còn đi học, mỗi lần thầy giảng về cấu trúc dữ liệu và giải thuật là cả đống người lăn ra ngủ..

👉 Cách tốt nhất để đồng bộ hóa MySQL với Elasticsearch (ES) ok đấy!

Tại sao chúng ta cần Elasticsearch (ES) khi chúng ta có MySQL? Nếu cần thì việc đồng bộ giữa MySQL và ES như thế nào? Tôi hỏi đây là cách tốt nhất hay không?

👉 Fix: Gitignore not working

Khi bạn sử dụng file `.gitignore` trong thư mục dự án, điều đó không cho phép những files or folders của bạn push lên hệ thống Git. Nhưng cũng có nhiều trường hợp

👉 Git pull và Git fetch tương tự như đính hôn và kết hôn tài sản thuộc về ai?

Git pull về đi em ơi... À khoan git fetch đi em? Cẩn thận chắc cú hơn. Giọng ông anh dõng dạc và lớn tiếng hơn mọi hôm, làm tôi cũng e dè và sợ hãi. Mé có chuyện gì đây...

👉 Fix nhanh gọn: Please commit your changes or stash them before you merge

Please commit your changes or stash them before you merge, nếu bạn gặp một thông báo như thế này trong khi làm việc với Git thì chỉ hai thao tác sau là ok liền.

👉 Tuyệt vời connect pool gồm 96 connects nhanh hơn gấp 50 lần so với 1000 or 4000 connections không dùng pool

Sử dụng Connection pool để làm việc dưới ứng dụng thì tôi đã làm rất nhiều, và đương nhiên nói về hiệu suất thì nó được cải thiện rõ ràng, tôi có một video chứng minh điều đó

👉 Sếp hỏi? Tại sao sử dụng redis vậy em, có nhược điểm gì không? Tôi nói thẳng là...

Tôi cảm thấy rằng việc sử dụng redis trong dự án chủ yếu được xem xét từ hai khía cạnh đó là hiệu suất và đồng thời. Tất nhiên, redis cũng có các chức năng khác như khóa phân tán

👉 ES2023 hay ES14 đã có rồi, học nhanh thôi nào anh em

ES6 được đề xuất vào năm 2015. Theo logic này thì , ES2023 hay ECMAScript 2023 nên được gọi là ES14 cho nó chuẩn. Tháng 6 năm 2023 sẽ chính thức phát hành những tính năng mà đáng ra nó phải cho ra lâu rồi mới đúng.

👉 Tôi đã thiết kế một dự án giống SHOPEE dành cho những bạn sẵn sàng cho tương lai. Chức năng như sau.

Hầu hết mọi người không chuẩn bị nhiều cho tương lai, nhưng kết quả của việc chuẩn bị và không chuẩn bị sẽ rất khác nhau. Tin tôi đi... Bời vì khi 40 tuổi tôi mới nhận ra mình đã mất thời gian để mài VŨ KHÍ như thế nào?

👉 10 lỗi JavaScript phổ biến - Uncaught TypeError: Cannot read property

Error là một phần cốt lõi của việc học và sử dụng bất kỳ ngôn ngữ lập trình nào. Đây là top 10 error khi lập trình được thống kê và fix nhiều nhất. Thông báo của một error giúp bạn hiểu điều gì đã sai ở đâu đó trong code của chúng ta.

👉 Xóa giá trị Null hoặc Undefined từ một Object trong Javascript

Remove Null or Undefined Values from Object in Javascript - Đôi lúc ta muốn xóa dữ liệu bẩn bao gồm null or undefined trong dữ liệu trả về thì có thể sử dụng Object.keys() để xử lý đơn giản như sau.

👉 GPT-4: Hướng dẫn sử dụng MIỄN PHÍ không giới hạn và không cần ĐĂNG KÝ

Chat GPT-3 đã qua. Giờ chúng ta tập trung cho GPT-4. Tôi biết giờ dây đăng ký GPT3 đã khó huống hồ gì GPT-4. Chính vì vậy bài viết này dành cho những bạn nào đang có những lý do sau đây.

👉 Triển khai xác thực Facebook and Google sử dụng passport trong Node.js

Đăng nhập một hệ thống có thể dựa vào nhiều bên thứ ba như Facebook và Google ưu điểm nhanh gọn, thông tin chính xác nhưng tích hợp thế nào khi chúng ta đang sử dụng Node.js

👉 Hệ thống eventloop trong Node.js: Cách hoạt động và cách sử dụng với lời giải thích cặn kẽ.

Eventloop là một phần quan trọng của hệ thống runtime của Node.js, nó liên quan đến callback, thread nhưng để hiểu khái niệm này không đơn giản. Bài viết này phân tích rất kỹ về vấn đề này.

👉 Fixed window rate limiting Node.js

Fixed window là một thuật toán được sử dụng để hạn chế số lần gọi một hàm hoặc thủ tục trong một khoảng thời gian cố định. Điều này có thể được sử dụng để tránh tình trạng quá tải hệ thống hoặc giảm bớt số lần gọi hàm hoặc thủ tục không cần thiết.

👉 How to connect socket.io with node.js use MVC model?

To connect Socket.IO with Node.js using the MVC model, you can follow these steps: 1 - Install the Socket.IO and Express.js packages using npm

👉 Node.js 19 đã phát hành các lập trình viên sẽ chú ý những tính năng nào?

Node.js gần đây đã công bố phát hành phiên bản 19. Phiên bản này có các tính năng mà những lập trình viên phải chú ý như sau đó là node --watch, KeepAlive, WebCrypto. Và đây là cách sử dụng.

👉 Vì sao TOKEN (jwt) lại thay thế SESSION, xem 3 cách giải thích sau.

Video sẽ đưa ra 3 vấn đề cho thấy cách hoạt động của Session có vấn đề (Nếu Anh Chị là dev từ lv1 trở lên thì xem video là hay nhất, còn nếu từ level 0 đến lv1 chưa lo về tiền lương cho lắm thì cứ đọc tóm tắt này là được. Tôi cố gắng làm cả hai.)

👉 Series RabbitMQ Message Queue với NodeJs đầy đủ cho bạn muốn bắt đầu và đi sâu hơn.

Về RabbitMQ, thì tôi đã được tiếp xúc với công nghệ này từ nhiều năm trước, và tôi cũng muốn chia sẻ những điều mình đạt được trong hơn 10 năm làm nghề.

👉 Mysql thiết kế model Products trong eCommerce thế nào? Làm sao giống Mongodb

Thiết kế hệ thống eCommerce trong mysql như thế nào để đơn giản những câu query như chúng ta thiết kế ở bài trước của Mongodb. Đó là vấn đề chúng ta sẽ tìm hiểu trong bài viết này.

👉 Giải thích Cookie và Session giống và khác nhau? Câu hỏi phỏng vấn Nodejs | Fresher và Junior Tập 1 |

Câu hỏi phỏng vấn Nodejs - phân biệt Cookie và Session. Trước tiên hãy xem xét sự giống nhau của Cookie và Session là được sử dụng để theo dõi và xác định danh tính của người dùng.

👉 Mongodb: Group vs sum - Tự học Database

Tự học Mongodb - Bài này giúp các anh chị hiểu về cách sử dụng Group và Sum để có thể làm thống kê trong database.

👉 Mysql tìm hiểu về sự khác biệt giữa varchar và char là gì?

Học mysql phải để ý điểm chung của varchar và char chính là hai kiểu dữ liệu trong MySQL được sử dụng để lưu trữ các String. Và sự khác biệt giữa varchar và char chính là dộ dài sử dụng, khi nào nên sử dụng varchar và khi nào char.

👉 Redis là gì? Không đơn giản là đọc cache, 4 tình huống sau cho thấy bạn hiểu redis tới đâu?

Redis được biết đến là một database được lưu trữ trong memory được sử dụng để triển khai livestream, message queue, cache, và lưu trữ dữ liệu nếu muốn.

👉 Blue green deployment là gì? Câu chuyện thú vị của 2 backends khi triển khai hệ thống eCommerce.

Blue green deployment là gì? Và nếu bạn muốn tiết kiệm tiền nhất có thể khi triển khai và cơ sở hạ tầng cho một web application với 150 nghìn lượt truy cập hàng tháng thì có lẽ bạn nên biết về Blue green.