🏋 Top Posts

👉 Refresh token là gì? Cách hoạt động có khác gì so với token không?

Ở những bài trước chúng ta đã nói nhiều về JWT là gì? Vì sao phải sử dụng JWT, trong suốt quá trình sử dụng JWT chúng tôi có nhận được nhiều phản hồi về chủ đề JWT. Trong đó có một vấn đề mà có nhiều bạn chưa hiểu đó là 'Refresh token là gì'. Nếu bạn có chung một câu hỏi như vậy thì bài viết này sẽ dành cho bạn.

👉 Javascript performance - remove Duplicates from an Array

Dùng Recude, filter hay indexOf trong javascript để giải quyết remove duplicates from an array. Mỗi bạn một cách khác nhau, nhưng hãy xem những cách nào dưới đây mang lại hiệu quả cao trong cách giải quyết ở trường hợp này.

👉 Tìm hiểu sâu về JavaScript Reduce Method

JavaScript Reduce. Đây chính là một method không phức tạp nhưng thật sự là khó hiểu và không biết áp dụng khi nào trong ứng dụng của developers. Kể cả ngay những coder giỏi đôi khi cũng cảm thấy thực sự bối rối khi sử dụng reduce javascript method.

🏋 New Posts

👉 Promise all và các tình huống ứng dụng phổ biến

Promise all là một phương thức không thể thiếu trong lập trình đồng bộ đối với lập trình viên. Vẫn biết rằng Promise được sử dụng rất rộng rãi nhưng vẫn còn đâu đó những developers vẫn chưa biết vì sao Promise all lại được sủ dụng nhiều như vậy. Bài viết này sẽ làm sáng tỏ những tình huống mà bạn nên sử dụng Promise.

👉 Tối ưu tốc độ website không cần biết nhiều chỉ biết 1 quy tắc này là xong

Tối ưu tốc độ website là một điều rất quan trọng cho nên nhiều lập trình viên cứ nghĩ rằng đó là việc của backend hay việc này của những team khác, vì thế mình là mới ít kinh nghiệm nên chưa cần hoặc chưa cần biết về việc cải thiện hiệu suất của hệ thống. Đúng nhưng bài viết này cũng giúp bạn không phải có kinh nhiệm nhiều nhưng cũng nắm bắt được những điều quan trọng sau đây.

👉 Vì sao coder không hài lòng toán tử || thay vào đó là toán tử ??

Nullish coalescing Operator chính là toán tử ?? được giới thiệu trong ES2020 cách đây không lâu. Nhưng sự hiện diện của ?? làm cho toán tử || đặt ra nhiều nghi vấn. Và có nhiều lập trình viên cho rằng đáng lẽ ra chức năng này phải ra sớm hơn chứ không phải chờ đến ES2020.

👉 webpack là gì? 4 thao tác giúp bạn làm quen với cấu hình của webpack

Webpack là một module bundler cho phép bạn viết bất kỳ định dạng module nào (cũng có thể kết hợp), sau đó biên dịch cho trình duyệt. Webpack phân tách mã dựa trên cách nó được sử dụng trong ứng dụng của bạn và với phân tích trách nhiệm theo module này, việc quản lý, gỡ lỗi, xác minh và kiểm tra mã của bạn trở nên dễ dàng hơn nhiều.

👉 8 thư viện JavaScript để xử lý lưu trữ cục bộ (Local Storage) tốt hơn

Local Storage la gì? Như chúng ta đã biết, HTTP là một giao thức không trạng thái, máy khách khởi tạo một yêu cầu, máy chủ xử lý yêu cầu từ máy khách và sau đó gửi phản hồi lại cho máy khách. Sau khi quá trình trao đổi dữ liệu giữa máy khách và máy chủ hoàn tất, kết nối giữa máy chủ và máy khách sẽ bị đóng lại, máy chủ hầu như không có thông tin để xác định người dùng nào đã gửi yêu cầu cũng như không thể ghi lại chuỗi yêu cầu của người dùng truy cập mỗi khi dữ liệu được trao đổi Cần thiết lập kết nối mới, sau này có người dùng, website muốn hiểu được nhu cầu của người dùng, tuy nhiên theo hiện trường lúc đó thì rõ ràng là không thể đáp ứng được nhu cầu công việc, chính vì vậy việc lưu trữ cục bộ(Local Storage) ra đời có thể bù đắp phần phần nào trạng thái của giao thức HTTP.

👉 Logger Nodejs là gì? Sử dụng Winston là phải chuyên nghiệp như thế này

Không nói quá chứ bất kỳ chương trình phần mềm nào cũng cần phải có file quản lý log một cách chuyên nghiệp. Chính vì lẽ đó mỗi ngôn ngữ lập trình đều có những module đi kèm như java thì có Log2j, và trong nodejs thì có rất nhiều chẳng hạn như Winston, log4js, Bunyan. Và trong bài viết này thì tôi chỉ đề cập đến Winston vì ở đó có những tất cả mà một người làm backend như tôi đang tìm kiếm.

👉 Muốn học React JS trong vòng 3 tháng thì 8 điều cơ bản sau phải biết đầu tiên

Lập trình React JS nghe có vẻ cao siêu và tôi chắc chắn rằng sẽ có nhiều cơ hội trong tương lai của bạn. Nhưng để học React JS một cách khôn khéo và nhanh chóng hiểu được những cú pháp trong React JS là không phải ai cũng có thể làm dược trong một thời gian ngắn. Và nếu bạn đọc được bài viết này thì chỉ 3 tháng thôi bạn sẽ có thể vươn lên một bậc rồi.

👉 Speech Recognition API - Chuyển giọng nói thành văn bản javascript

Speech Recognition API - Trên thực tế có hai loại API trong HTML5 về Web Speech đó là (Speech Recognition) và loại còn lại là (Speech Synthesis). Hai thuật ngữ này nghe có vẻ rất cao siêu, nhưng trên thực tế cả hai api này đề cập đến "lời nói thành văn bản" và "văn bản thành lời nói". Nó chỉ vậy mà thôi.

👉 Có bao nhiêu cách tìm một phần tử trong một mảng, Cảm ơn anh đã đến phỏng vấn và xin chào!

Đôi khi chúng ta muốn sử dụng một điều kiện nào đó để tìm xem có phần tử nào trong mảng thỏa mãn điều kiện thay đổi hay không, rồi trả về phần tử hoặc giá trị chỉ số của phần tử. Javascript cung cấp cho chúng ta nhiều phương thức khác nhau, chủ yếu được chia thành tìm kiếm theo giá trị và tìm kiếm theo điều kiện nhất định. Bài viết này giới thiệu các phương pháp này.

👉 Lần trước 24 phương pháp ES6 thực tế đã được đón nhận, lần này thêm 10 phương pháp nữa

Không có nghi ngờ gì khi nói rằng JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất trong phát triển ứng dụng hiện đại bao gồm cả Front-end và back-end. Cho dù bạn đang sử dụng React, Vue hay Angular, nó chỉ là JavaScript. JS xoay quanh một hệ sinh thái quan trọng và rộng lớn và cung cấp vô số khuôn khổ và thư viện có thể giúp chúng tôi phát triển ứng dụng nhanh hơn

👉 Fix lỗi javascript nhanh với hai kỹ thuật hữu ích

fix bug là gì? Fix lỗi javascript trong lập trình là một việc làm kiếm ra tiền cho chúng ta. Thử hỏi nếu một ứng dụng trơn tru quá thì khó mà kiếm tiền từ việc bảo trì. Nhưng việc bảo trì nhanh hay chậm cũng liên quan đến việc fix bug như thế nào? Với hai thủ thuật đơn giản nghĩ là không cần nhưng nó rất cần thiết đối với nhiều developers.

👉 10 tính năng hữu ích của HTML5, có thể bạn chưa sử dụng

HTML5 không phải là một điều gì quá mới đối với developers. Chúng tôi đã sử dụng một số tính năng của nó kể từ lần phát hành đầu tiên (tháng 1 năm 2008). Như một phần sáng kiến cảu dự án #100DaysOfCode, tôi đã xem xét kỹ lại danh sách tính năng HTML5. Xem những gì tôi tìm thấy? Tôi đã không thực sự sử dụng chúng cho đến bây giờ!

👉 Kinh nghiệm học lập trình - tôi ghé thăm code của một bạn có kinh nghiệm 3 năm và cái kết

Kinh nghiệm lập trình là một cụm từ được mỗi người định nghĩa khác nhau. Nhưng với tôi thì kinh nghiệm lập trình có nhiều yếu tố hình thành nên. Và hầu hết mọi người đều chỉ ra kinh nghiêm lập trình qua thời gian, chưa đủ, và bai viết này tôi sẽ nói lên quan điểm của tôi về vấn đề này.

👉 Transaction là gì? Thực hành trên MongoDB 4.0 đơn giản và dễ hiểu

Transaction là gì? Tôi tin rằng những lập trình viên đã sử dụng cơ sở dữ liệu quan hệ chính thống không quá xa lạ với Transaction. Nhiều hoạt động dữ liệu can thiệp vào nhau và khi xảy ra lỗi trong bất kỳ hàm thực thi nào thì giao dịch sẽ bị hủy bỏ và dữ liệu sẽ được khôi phục, đảm bảo tính nhất quán của dữ liệu khi sửa đổi dữ liệu trong nhiều bảng cùng một lúc đó chính là Transaction.

👉 Tôi có kinh nghiệm trong bảo mật hệ thống? Nổ cho to vào? bạn có xấu hổ không?

Hệ thống web hay ứng dụng của bạn có thực sự an toàn không? Mỗi ngày có gần 2K users vào trang tips javascript. Ở đây đa số là hiện tại là những lập trình viên và cũng có thể là những developers tương lai. Nhưng có một điểm chung như thế này đó là việc ai cũng mong muốn viết code làm sao cho xong ứng dụng của mình mà quên đi việc nó có an toàn về bảo mật cho hệ thống mình hay chưa?

👉 Moment.js thông báo rằng nó đã ngừng phát triển, chúng ta nên sử dụng gì bây giờ?

Moment.js đã chính thức đưa ra thông báo ngừng phát triển và đi vào trạng thái bảo trì. Moment.js là một thư viên ngày và giờ lớn và đầy đủ tính năng nhất, tạo điều kiện rất nhiều cho nhiều dự án tính toán ngày và giờ trong JavaScript. Nó có hơn 12 triệu lượt tải xuống mỗi tuần và đã được sử dụng thành công trong hàng triệu dự án.

👉 OAuth 2.0 là gì? Tìm hiểu cơ chế và cách hoạt động đăng nhập - phần 4 (cuối)

OAuth 2.0 là gì? OAuth 2.0 là một giao thức tiêu chuẩn mở cho phép các ứng dụng truy cập vào dữ liệu được người thông qua những ứng dụng khác. Ví dụ: một trò chơi có thể lấy thông tin người dùng trong Facebook hoặc app theo dõi location có thể lấy thông tin người dùng trong Foursquare.

👉 Lập trình viên sớm muộn gì bạn cũng phải biết về cơ chế đăng nhập SSO (Single SignOn) - Phần 3

SSO là gì? Tên tiếng Anh đầy đủ của SSO là Single SignOn, hay còn gọi là cơ chế đăng nhập một lần nhưng có thể sử dụng khắp mọi nơi. SSO có trong nhiều hệ thống ứng dụng. Người dùng chỉ cần đăng nhập một lần để truy cập vào tất cả các hệ thống ứng dụng đáng tin cậy lẫn nhau. Nó bao gồm một cơ chế có thể ánh xạ thông tin đăng nhập chính này với các ứng dụng khác để đăng nhập cùng một người dùng. Nó là một trong những giải pháp phổ biến nhất được sử dụng rộng rãi hiện nay. Và nếu bạn là một lập trình viên thì bạn cần nên hiểu nó.

👉 Cơ chế đăng nhập với token hơn cookie và session như thế nào? - Phần 2

Sau khi bài viết sử dụng Cookie và Session để hoàn tất xác minh đăng nhập, và chúng ta đã phát hiện ra một số vấn đề ở cơ chế đăng nhập này. Thì bầy giờ chúng ta tiếp tục theo dõi và tìm hiểu cơ chế login khi sử dụng token và đây là một phương pháp đang được các dev quan tâm nhất hiện nay.

👉 4 cơ chế đăng nhập, bài viết này là đủ cho dân lập trình - Phần 1

Đăng nhập là chức năng thường được sử dụng trong mọi trang web hay những app hiện nay. Không khó để nhận ra vấn đề này đang được quan tâm nhất bởi vì lướt qua những page về lập trình như tips javascript, hay javascript Việt Nam đều thấy nhiều câu hỏi ở đó. Thật sự bạn có biết khi enter thì cơ chế nó hoạt động như thế nào không? Và hiện nay, những ứng dụng lớn họ triển khai login như thế nào? Hôm nay chúng tôi sẽ giới thiệu một số phương pháp đăng nhập phổ biến nhất

👉 Node.js Series: Bắt đầu!!!

Loạt bài nhập môn Node.js sẽ là tập hợp các bài hướng dẫn tham khảo, bắt đầu từ phần này, chúng ta chính thức gia nhập bộ môn Nodejs. Tôi không dám khẳng định rằng khi học xong những bài viết về Nodejs của chúng tôi bạn sẽ được tăng lương nhưng chúng tôi cam đoan với các bạn rẳng. Bạn sẽ tự tin hơn trước rất nhiều... Vì sao?

👉 Khám phá các nguyên tắc video hình ảnh âm thanh và FFmpeg

Sử dụng FFmpeg trong nodejs. Trong thời đại mà video ngắn phổ biến như tiktok, facebook hay trên Piepme, là một lập trình viên, bạn phải hiểu: các nguyên tắc và kỹ thuật đằng sau việc chỉnh sửa video. Bài viết này mô tả ngắn gọn thành phần của các nguyên tắc của video và các công cụ chỉnh sửa video phổ biến, cũng như cách sử dụng FFmpeg trong NodeJS.

👉 Sự khác biệt giữa map và forEach bao gồm tốc độ và khi nào sử dụng trong javascript

map và forEach là một trong số hàm phổ biến và được sử dụng nhiều nhất trong JavaScript kể từ khi ES6 ra đời. Trong bài viết này, chúng ta sẽ thảo luận về sự khác biệt chính giữa chúng và lần lượt đi qua một số ví dụ về cách sử dụng map và forEach.

👉 Học ngôn ngữ lập trình nào đầu tiên khi có 10 ngôn ngữ mạnh nhất???

Đối với nhiều người mới bắt đầu học lập trình, đặc biệt là các bạn sinh viên năm nhất chuẩn bị nhập học hoặc sinh viên chuẩn bị ra trường, việc lựa chọn ngôn ngữ lập trình nào thực sự là một điều đau đầu. Với nhiều câu hỏi được gửi vào các diễn đàn hay các group trên facebook thì có thể nói đó là một vấn đề rất nan giải cho những bạn ở trường hợp trên. Bài viết này chúng tôi tập trung vào các khía cạnh của những ngôn ngữ và hy vọng bạn sẽ có lựa chọn cho riêng mình sau khi cảm nhận được 10 ngôn ngữ lâu đời và mạnh nhất tại thời điểm này.

👉 Những pha bẻ lái code chất lượng cao javascript - Phần 1

Nghề lập trình ngày nào mà chảng phải kinh qua những cú pháp có điều kiện. Đó là những trường hợp mà chúng ta những devjs thường xuyên gặp phải. Và chính bản thân tôi, tôi cũng thích những tình huống về logic và có điều kiện. Những lúc đó kinh nghiệm sẽ mách bảo ta làm thế nào để bẻ lái cho đàn em đứng sau lưng ta, gật đầu liên tục....

👉 CORS là gì? 15 bức ảnh chuyển động tinh tế giúp bạn hiểu rõ về CORS

CORS là gì? Tên đầy đủ là Cross-Origin Resource Sharing. Hiểu sâu hơn đó chính là chia sẻ tài nguyên có nhiều nguồn gốc khác nhau. Chính sách nguồn gốc giống nhau của trình duyệt là một cơ chế bảo mật quan trọng. Khách hàng từ các nguồn khác nhau không thể truy cập tài nguyên của nhau nếu không được phép. Định nghĩa của tương đồng là giao thức, tên miền và số cổng của liên kết truy cập là giống nhau.

👉 6 Cách remove những phần tử trùng nhau trong mảng javascript

How to Remove Array Duplicates in ES6. Có những câu hỏi tôi thường thấy trên những diễn đàn như reddit hay stackoverflow vấn đề làm sao để loại bỏ những phần tử trùng nhau trong array một cách nhanh gọn mà không làm code của bạn rối tung lên. Sau đây bài viết sẽ giúp bạn làm được điều đó với 6 cách loại bỏ phần tử trùng lặp.

👉 4 cách làm phẳng một mảng (flatten array) với javascript

Flatten an array of arrays - Có nhiều trường hợp chúng ta sẽ gặp những dữ liệu trả về từ API ở một nhà cung cấp nào đó. Có một sự bối rối không hề nhẹ cho những bạn chưa từng sử dụng hay chưa từng biết về khái niệm này. Trong bài viết này, tips javascript sẽ cung cấp cho bạn 4 mẹo đơn giản nhưng vô cùng tiện lợi khi muốn làm phẳng mảng trong javascript.

👉 JSONP là gì? Sự khác biệt giữa JSONP và AJAX

JSONP là gì? JSONP (json with padding) là một phương pháp hay còn gọi là phương tiện giao tiếp giải quyết vấn đề truy cập dữ liệu giữa các domain khác nhau. Do chính sách cùng nguồn gốc chính vì vậy các trang web có thể lấy dữ liệu JSON được tạo động từ các nguồn khác và chế độ sử dụng này được gọi là JSONP. Dữ liệu được thu thập bằng JSONP không phải là JSON, mà là JavaScript tùy ý, được trình thông dịch JavaScript thực thi thay vì được phân tích cú pháp bởi trình phân tích cú pháp JSON.

👉 https là gì và có thực sự an toàn không?

Nếu bạn là một người luôn thích đọc tin tức lập trình mỗi buổi sáng thì tôi cam đoan bạn sẽ không hề quên bài viết trước đây đó là "HTTP là gì? HTTPS là gì? Sự khác biệt giữa HTTPS và HTTP". Ở đó giúp bạn nắm bắt chi tiết hơn về khái niệm đó. Nói một cách đơn giản, https là http + ssl, mã hóa nội dung của giao tiếp http, là phiên bản bảo mật của HTTP và là giao thức HTTP được mã hóa bằng TLS / SSL

👉 Array và array of objects với 10 tình huống xử lý

Làm việc với array thì có thể đơn giản, nhưng khi làm việc với Array of Objects thì nó hoàn toàn khác. Khác ở nhiều khía cạnh, tình huống, kỹ năng, kinh nghiệm. Và tôi tóm lượt lại nhiều câu hỏi trong quá trình làm việc và trên stackoverflow và hy vọng bài viết này có thể giúp bạn giải quyết nhanh các tình huống.

👉 Sử dụng Axios interceptors làm mới token với refresh token trong jwt

Axios interceptor la gi? Tại sao lại được quan tâm nhiều đến vậy, hiệu quả của việc sử dụng interceptors trong Axios như thế nào? Và cơ chế lấy lại token khi token hết hạn khi sử dụng interceptors axios kết hợp với refreshToken.

👉 JSON Web Token (JWT) - Thực hành sử dụng refresh token khi token hết hạn với nodejs và express js

JSON Web Token (JWT) là một cơ chế bảo vệ tài nguyên có thể nói đến bây giờ nó phổ biến rộng rãi đến mức nhà nhà, người người ai cũng biết đến nó. Nhưng hiện tại qua nhiều diễn đàn, vẫn còn đâu đó những câu hỏi như làm sao lấy lại token mới nếu như hết hạn sử dụng refresh token?

👉 15 kỹ thuật lập trình javascript dễ đọc dễ hiểu và dễ bảo trì

Lập trình javascript là quá trình học và hiểu. Hiểu ở đây, không phải là để code chạy đúng là xong, còn nhanh chậm hay code khó đọc cho những người khác thì không quan tâm. Đó là sai lầm lớn nhất trong nghề lập trình. Trong code của bạn, điều quan trọng nhất có ba yếu tố đó là.

👉 Array javascript - học kỹ năng xử lý thông qua người bán sầu riêng

Array trong javascript là một khía cạnh mà thú thật là tips javascript rất thích làm việc với nó. Từ back-end cho tới Front-end đi đâu cũng thấy người ta sử dụng nó song song với Object để giải quyết và lưu trữ dữ liệu. Chính vì vậy trong javascript đã có một sự ưu tiên không hề nhẹ khi liên tiếp bổ sung những method cho array kể từ khi javascript ra đời.

👉 45 hình dạng của css đáng học hỏi

CSS có thể tạo ra nhiều hình dạng khác nhau. Hình vuông và hình chữ nhật rất dễ dàng vì chúng là hình dạng tự nhiên của web. Thêm chiều rộng và chiều cao, và bạn có được hình chữ nhật chính xác mà bạn cần. Thêm bán kính đường viền, bạn có thể biến hình dạng này thành một vòng tròn. Với đủ bán kính đường viền, bạn có thể biến các hình chữ nhật này thành hình tròn và hình elip.

👉 Kỹ năng xử lý chuỗi trong Javascript

Xử lý chuỗi trong javascript là một kỹ năng cơ bản cho những bạn mới bắt đầu học javascript. Vì String, Object, Array được sử dụng rất nhiều trong một ứng dụng javascript. Trong bài viết này, tôi sẽ liệt kệ ra nhiều method dành cho String. Hy vọng sẽ giúp bạn hiểu hơn về String javascript.

👉 Học javascript và những nguyên tắc chung cho mọi level

Học javascript cơ bản hay nâng cao. Hay bạn là người mới học lập trình hay là lâu năm rồi thì cũng phải hiểu trong bất cứ ngành nghề gì thì cũng có những nguyên tắc nhất định cần phải nắm và học một cách thành thạo. Nếu không bạn biết đấy, quy luật đào thải sẽ cuốn đi những người không nắm được những nguyên tắc trong nghề lập trình viên. Nếu là bạn thì bạn sẽ nghĩ về những nguyên tắc đó như thế nào?

👉 Prototype là gì? Lập trình hướng đối tượng (OOP) trong javascript

Trong lập trình hướng đối tượng OOP bao gồm rất nhiều nộ dung và khái niệm như class, Prototype, _proto_, prototype chain, constructor, inheritance... Ngoài ra nó cũng liên quan đến pattern như factory pattern, constructor pattern, prototype pattern. Mối quan hệ giữa các khái niệm này là gì?, mối quan hệ giữa các mô hình là gì?, chúng phát triển như thế nào và chúng hoạt động như thế nào? Bản thân người viết cũng chóng cả mặt chứ huống hồ gì những bạn mới học JS.

👉 Kết thúc cuộc phiêu lưu của Redis Salvatore Sanfilippo - Bài học rút ra cũng giống như flappy bird Nguyễn Hà Đông

Nghe tiêu đề bạn cũng như tôi đều giật mình nếu như bạn là một người luôn đọc về tin tức của các nhà lập trình. Đây không phải vấn đề của Redis mà là người bắt đầu dự án Redis hơn mười năm trước. Và vào ngày 01/07/2020 Salvatore Sanfilippo đã nói lời chào tạm biệt tới Redis cũng giống như cách mà Ryan Dahl đã rời bỏ Node để xây dựng Deno. Nhưng Salvatore Sanfilippo hành động như thế nào khi rời Redis?