🏋 Top Posts

👉 Triển khai mô hình microservices và redis là phù hợp với nodejs

Redis là một giải pháp tuyệt vời để tạo các dịch vụ cơ sở hạ tầng như message queue và event stores, nhưng có một số điều bạn cần tính đến khi sử dụng kiến ​​trúc microservices để tạo hệ thống phân tán.

👉 Sự khác biệt giữa for...in, for...of and forEach trong javascript

Nói về iterate trong javascript có rất nhiều cách để chúng ta có thể làm được điều đó như for, for ... in, for ... of. Thậm chí là reduce()... Nhưng bạn có biết vì sao javascript lại cung cấp nhiều method đến vậy, và nó có sự khác biệt gì. Trong bài viết này, chúng ta sẽ làm rõ những điều mà có thể bạn chưa hề biết.

👉 ES6 Arrow Functions Cheatsheet

Arrow function - Như tiêu đề bài viết ES6 Arrow Functions Cheatsheet, chủ đề này rất đơn giản và hầu hết những ai làm reactjs thì cũng tương đối thành thạo về chủ đề này. Nhưng không có nghĩa là tất cả đều biết về các cách viết arrow functions. Vậy thì tại sao không lướt sơ qua một chút phải không nào?

🏋 New Posts

👉 Replay attacks và spoofing Api nếu bạn là một backend thì bạn xử thế nào?

Replay attack là tấn công api theo kiểu gửi lại nguyên vẹn endpoint đã thực hiện trước đó bao gồm hacker và chính người dùng. Spoofing attack chính là tạo ra chữ ký để đánh lừa endpoint trong api.

👉 Làm rõ thuật toán tính lượt views của một bài viết hay video trên youtube và tôi sẽ thuyết phục được bạn?

Cách tính toán lượt views như thế nào? Đó là một trong những câu hỏi mà đã được chọn lọc trong nhiều câu hỏi trong tuần này. Vì đây là thuật toán được nhiều anh em quan tâm, nên tôi làm kỹ vấn đề này.

👉 Regex số điện thoại Việt Nam

Regex phone number vietnam. Chỉ với một số dòng lệnh sau, chúng ta có thể check number phone Việt Nam một cách chính xác và nhanh chóng.

👉 Đôi lúc git pull và push đều vô nghĩa với những trường hợp phổ biến trong team tôi

Hiểu rõ về git có lẽ giờ đây là điều bắt buộc đối với các developers hiện nay. Nhưng hình như đa số anh em chỉ biết mỗi push, pull, merge, rebase và một số thao tác cơ bản khác. Đến khi gặp những tình huống dưới đây mới cảm thấy thiếu hụt về kinh nghiệm sử dụng git.

👉 Git Rebase vs Git Merge và cuộc tranh cãi không có hồi kết - Đàm đạo về Git

Git rebase và merge đều có chung một nhiệm vụ đó là hợp nhất các branch (nhánh) lại với nhau, nhưng có một sự khác biệt rõ ràng đó chính là lịch sử các commit sau khi bạn hợp nhất nhánh này đến nhánh khác.

👉 Api là gì? Lần đầu tiên Reddit phải treo trưởng vì câu trả lời quá xuất sắc.

Api là gì? Câu hỏi được đăng lên Reddit nhưng có lẽ ít ai thấy một phần thưởng Starry Award dành cho người trả lời hay nhất. Những ai phỏng vấn chỉ cần trả lời ngắn gọn và 10 điểm về chỗ.

👉 Shopping carts in Redis vì sao và cách triển khai như amazon store

Giỏ hàng hay Shopping carts là một chức năng mà bất kỳ application thương mại điện tử nào cũng sẽ sử dụng hay nói cách khác là không thể thiếu cho người dùng. Vì sao? và dùng redis như thế nào tất cả sẽ có trong nội dung này.

👉 Firebase chats và cách tổ chức dữ liệu members, messages và bảo mật thông tin chats | Rules Firebase

Giả sử bạn có một ứng dụng trò chuyện mà bạn muốn kích hoạt cuộc trò chuyện riêng tư giữa một nhóm người được chọn or cá nhân và có thể hơn nữa là chia sẻ hình ảnh, video

👉 Các phương pháp hay nhất cho Git trong nhóm - Cách sử dụng Git Flow đúng cách

Là một lập trình viên mới tham gia vào một công ty mới, thì việc code không bàn tới, nhưng cách làm việc nhóm trên git cũng là một điều quan trọng không hề kém. Nếu như bạn không hiểu câu chuyện về sử dụng Git Flow trong một Team

👉 Nếu sử dụng Mongoose để lưu Products thì đây là cách chuẩn nhất cho app TMĐT | DESIGNING AN E-COMMERCE WEBSITE ALICONCON #3

DESIGNING AN E-COMMERCE WEBSITE - Ở bài trước chúng ta đã gửi OTP cho mỗi khách hàng đăng ký thành viên trong ứng dụng aliconcon. Giờ đây chúng ta sẽ phân tích về thiết kế cho Products, Orders và Inventories.

👉 Ứng dụng thương mại ALICONCON đã send OTP cho USER Signup bằng cách này? Part 3

Send OTP đến người dùng là một cách không mới trong những năm gần đây. Nhưng kiến trúc và bảo mật của nó thế nào thì mỗi hệ thống đều có cách triển khai riêng. Chắc chắn rằng không có một hệ thống nào hoàn hảo và bảo mật tuyệt đối.

👉 Mongoose - Statics methods virtual và middleware là gì? Và khi nào nên sử dụng? DESIGNING AN E-COMMERCE WEBSITE ALICONCON

Mongoose statics vs methods chắc hẳn những ai bước vào tìm hiểu NoSQL cụ thể là Mongodb thì đã từng nghe qua về hai khái niệm đó. Và hơn nữa đó là virtual và middleware trong mongoose.

👉 Redis - Các kiểu dữ liệu phổ biến và kịch bản ứng dụng vào cuộc sống phần mềm

Chúng ta đều biết rằng Redis cung cấp vô số kiểu dữ liệu, có 5 kiểu phổ biến là String (chuỗi), Hash (băm), List (danh sách), Set (tập hợp), Zset (tập hợp có thứ tự). Với việc cập nhật phiên bản Redis mỗi ngày tinh vi hơn, thì có 4 kiểu dữ liệu được hỗ trợ thêm đó là

👉 AB Benchmarking Tool - Bài test cuối cùng sau khi triển khai Rest API

AB Benchmarking - Giả sử ta muốn test mô phỏng cho 100 users truy cập cùng một lúc để lấy Voucher trong Shopee. Vì thói quen của users là muốn có nhanh cho nên họ sẽ refresh page liên tục, ta cho là 50 lần. Như vậy ta có 100 người truy cập và tổng số lượng 100 * 50 = 5000 request

👉 Bạn có biết có đến 38 programming languages từ 1949 đến nay và bạn biết bao nhiêu?

Mỗi năm mỗi khác, người đến kẻ đi, và programming languages cũng vậy đến rồi đi hoặc làm bàn đạp cho môn phái lập trình khác. Một số languages thì bất tử theo thời gian.

👉 Hướng dẫn xây dựng Rest API cho thương mại điện tử như thế nào với hàng triệu đơn hàng mỗi ngày - Series Rest Api - FullStack

Hiện nay các ứng dụng thương mại điện tử (TMĐT hay ecommerce) được các nhà lập trình phát triển một cách xuất sắc từ quản lý đơn hàng cho đến chịu tải với hiệu suất cao, tính nhất quán dữ liệu trong khi sử dụng Microservices... Đó là những yếu tố tạo nên một hệ thống bền vững cho các app như Shopee, lazada, alibaba, alimama, và aliconcon.

👉 Học Javascript - Object javascript - Triển khai flatten trong Object

Flatten JavaScript object chính là biến hóa keys và values trong Object đó trở thành một Object có chiều sâu hay còn gọi là deep Object. Ngoài đệ quy thì chúng ta còn cách sau.

👉 Bucket Pattern Mongodb - Một mô hình paging (phân trang) rất hiệu quả nhưng khi nào nên sử dụng?

Với việc sử dụng Bucket Pattern thì chúng ta sẽ tiết kiệm được thời gian khi truy vấn dữ liệu cấp triệu. Đây là một mô hình Group rất hiệu quả khi phân trang nhưng vẫn còn có những nhược điểm cho nên bạn nên cân nhắc khi sử dụng mô hình này.

👉 findOneAndUpdate Mongoose rất quan trọng và khi nào nên sử dụng?

findOneAndUpdate mongoose là một hàm mà được sử dụng trong nhiều trường hợp. Trong Mongodb có nhiều functions để update một document như updateOne, nhưng đôi lúc chúng ta nên làm việc với một hoạt động mà lượng truy cập đồng thời cao, do đó findOneAndUpdate mongodb là một function nên quan tâm.

👉 3 cách phân trang trong databases thể hiện ở dự án stackoverflow, reddit, facebook và hack news

Pagination là một trong những thủ thuật để tối ưu hóa dữ liệu hàng đầu hiện nay. Facebook, reddit đã làm chúng ta mê mẩn đắm chìm trong thế giới của họ, mỗi lần lướt là một quá trình phân trang được thiết kế hoàn hảo. Trong bài này chúng ta sẽ tìm hiểu những thủ thuật đó trong Mongodb.

👉 Sử dụng Socket io trong mô hình MVC Express và Node.js theo 2 (video + source)

Mô hình MVC cho đến thời điểm này thì theo tôi vẫn giữ một vị trí đặc biệt, mặc dù đã có những pattern khác ra đời. MVC giúp chúng ta chia nhỏ modules mà dễ dàng quản lý, và socketio sẽ được tích hợp như thế nào?

👉 MongoDB schema design - One to One (1:1)

Một trong những người mới học về database, bất kể mongodb, mysql hay oracle thì việc xây dựng những lược đồ (schema) là một điều quan trọng. Nếu ngay từ đầu bạn làm tốt thì sau này mọi chuyển trở nên đơn giản cho những người đến sau hoặc hệ thống được nâng cấp.

👉 Node.js 18 mới ra mắt dev nên chú ý chức năng này?

Global fetch API hiện đã có phiên bản mới nhất của JavaScript runtime Node.js. Node.js 18 bao gồm bản cập nhật cho công cụ JavaScript V8, với tính năng fetch được bật theo mặc định và module test.

👉 Redis benchmark đánh giá hiệu suất và khả năng mở rộng của Redis

Redis benchmark là một kỹ thuật giúp những lập trình viên có thể có thể sử dụng để mô phỏng một số lượng khách hàng tùy ý kết nối cùng một lúc và thực hiện các hành động trên máy chủ, xác định được thời gian hoàn thành các nhiệm vụ.

👉 UUID thiếu sót trong lập trình, đối thủ đã phát hiện kinh doanh của chúng tôi [backend service]

UUID đã giúp đối thủ kinh doanh biết bí mật doanh thu của chúng tôi. Trong bài viết này, bạn sẽ nghe một mẩu chuyện có thật và hiểu hơn về UUID với Nodejs như thế nào?

👉 function declaration và function expression khác nhau điểm gì? Chưa khởi động mà rớt cái tạch.

rong javascript thì có nhiều cách khác nhau để tạo một function nhớ không nhầm thì có 8 cách tạo một function. Và trong số đó có ** function declaration và function expression**, vậy nó khác nhau điểm gì.

👉 Full text search Mongodb - Chỉ một bài viết không cần nhiều.

Đầu tiên chúng ta thống nhất với nhau là hiểu khái niệm Full text search là gì? này trước rồi mới tới việc thực hành. Full text search đơn giản chỉ là một hình thức nâng cao việc tìm kiếm dữ liệu trong database mà thôi.

👉 Compare date JavaScript - So sánh 2 ngày trong javascript

So sánh 2 ngày trong javascript, đây là một bài viết nhỏ nhỏ và để tôi kể cho các anh chị nghe một tình huống về một bạn cũng có exp 1 năm rồi, chú ý bài viết chỉ tips khắc phục không có ý định cười. Vì tôi cũng một thời như thế

👉 onload vs onerror trong javascript nên hiểu để làm việc với third-party

Onload vs onerror in javascript. Đôi khi chúng ta cũng phải cần sử dụng một resource của third-party như images, iframes... Như thế này

👉 Object.freeze() Object.seal() và Object.preventExtensions() cần hiểu rõ sự khác nhau trong Object Javascript

JavaScript cung cấp ba methods object sau đây để đáp ứng tất cả các trường hợp này một cách dễ dàng, và trong bài viết này chúng ta sẽ giải thích qua ví dụ cụ thể. Đó là 3 phương thức Object.freeze(), Object.preventExtension() và Object.seal()

👉 Connect with mongoose using async/await

Mongoose has two ways of connecting to a MongoDB database, connect() and createConnection(). You can use these within an async function as follows:

👉 StructuredClone là một tính năng deep-copying chúng ta đã chờ rất lâu.

StructuredClone là một tính năng cho phép những lập trình viên có thể sử dụng để deep-copying. Nhằm thay thế cho các phương pháp cũ như sử dụng object spread operator

👉 3 cách update phiên bản Nodejs mới nhất trên máy Mac

Nodejs đang tung ra phiên bản 17.0.1 có nhiều tính năng được cải tiến. Nếu ai đang sử dụng phiên bản nodejs và đang xài Mac thì nếu muốn upgrade lên thì có thể tham khảo 3 cách dưới đây.

👉 Social Sharing Links không thể thiếu cho developers

Nếu khách hàng của bạn mất thời gian khi phải mở facebook rồi post, xong rồi lại mở reddit rồi post, tiếp theo mở pinterest rồi post. Nó thật phiền phức và mất thời gian. Bạn là một người lập trình và bạn có thể giúp gì?

👉 Triển khai mô hình microservices và redis là phù hợp với nodejs

Redis là một giải pháp tuyệt vời để tạo các dịch vụ cơ sở hạ tầng như message queue và event stores, nhưng có một số điều bạn cần tính đến khi sử dụng kiến ​​trúc microservices để tạo hệ thống phân tán.

👉 Hướng dẫn upload file to Google Drive với Node.js (Kèm video)

Google Drive là một dịch vụ lưu trữ có sẵn cho người dùng Google và cho phép bạn lưu trữ tất cả các loại files. Google api cho phép developers thao tác với API để có thể tạo folders, upload file rất hữu ích như một số trường hợp làm dịch vụ lưu trữ.

👉 Tránh lưu trữ các mảng lớn và cách thay thế hiệu quả trong Mongodb

Một trong những quy tắc chung khi lập mô hình dữ liệu trong MongoDB là dữ liệu được truy cập cùng nhau phải được lưu trữ cùng nhau. Đó là điều quan tâm đầu tiên khi lập trình database.

👉 CÁCH MỚI - Add thuộc tính vào Object với điều kiện cho trước.

Một ví dụ cho bạn thấy đúng là JavaScript có nhiều tính năng mà chúng ta chưa phát hiện và sử dụng hằng ngày. Nó có thể rất mới những người bắt đầu học javascript nhưng tôi nghĩ cũng khá nhiều anh em không biết tính năng này trong đó có mình.

👉 Bao nhiêu năm giờ gói gọn học Elasticsearch nodejs trong một video

Elasticsearch không còn xa lại, một công cụ mạnh mẽ truy vấn dữ liệu. Dể hiểu vì sao các công ty tuyển dụng đều thêm điều kiện "Ưu tiên có kinh nghiệm làm việc với Elasticsearch". Tôi cam đoan bạn sẽ không phí tiền đóng NET để đọc bài viết này.

👉 Hiểu single thread Nodejs với 30 dòng code

Single thread Nodejs sẽ được chứng minh với chỉ 30 dòng code. Bạn sẽ không còn hiểu mập mờ về vấn đề này nữa, đó cũng là một câu hỏi mà nhiều bạn cũng đang thắc mắc.