Home Blog Page 16

Ứng dụng của AI vào ngành nhân sự

Như một làn sóng mạnh mẽ, Trí tuệ nhân tạo (AI) đang len lỏi vào mọi ngóc ngách của đời sống, từ sản xuất, y tế, tài chính đến bán lẻ, và ngành Nhân sự cũng không ngoại lệ. Thay vì chỉ đơn thuần hỗ trợ các công việc hành chính, AI mang đến tiềm năng to lớn trong việc nâng cao hiệu quả hoạt động, tối ưu hóa chi phí, và tạo dựng môi trường làm việc sáng tạo cho doanh nghiệp.

Sức mạnh của AI: Nâng tầm quản lý nhân sự

AI bước vào đời sống và mở ra khả năng xử lý dữ liệu khổng lồ một cách nhanh chóng và chính xác, từ đó thổi bùng sức sống vào các quy trình nhân sự vốn thường tẻ nhạt và tốn nhiều thời gian. Nhờ AI, chúng ta có thể:

  • Tự động hóa các tác vụ thủ công: AI giải phóng nhân viên khỏi gánh nặng của những công việc lặp đi lặp lại như quản lý hồ sơ, chấm công, hay sàng lọc ứng viên. Nhờ vậy, họ có thể dành thời gian cho những công việc sáng tạo và mang lại giá trị cao hơn cho doanh nghiệp.
  • Nâng cao hiệu quả tuyển dụng: AI hỗ trợ nhà tuyển dụng tìm kiếm ứng viên phù hợp một cách nhanh chóng và chính xác hơn, dựa trên kỹ năng, kinh nghiệm và sở thích cá nhân. Việc này giúp tiết kiệm chi phí và thời gian cho tuyển dụng, đồng thời nâng cao chất lượng ứng viên.
  • Phát triển nhân tài: AI cung cấp cho nhà quản lý những đánh giá chi tiết về hiệu suất làm việc và tiềm năng phát triển của từng nhân viên. Nhờ vậy, họ có thể xây dựng kế hoạch đào tạo và phát triển phù hợp, giúp nhân viên phát huy tối đa năng lực và gắn bó lâu dài với doanh nghiệp.
  • Tăng cường trải nghiệm nhân viên: AI mang đến cho nhân viên những trải nghiệm tự phục vụ, dễ dàng truy cập thông tin và hỗ trợ họ giải quyết các vấn đề một cách nhanh chóng. Điều này góp phần nâng cao sự hài lòng và gắn kết của nhân viên với doanh nghiệp.

ai in human resource

Giải pháp toàn diện cho mọi nhu cầu nhân sự

Với những ứng dụng đa dạng của AI, một số nhà cung cấp đã có giải pháp toàn diện cho mọi nhu cầu nhân sự của doanh nghiệp, từ tuyển dụng, đào tạo, quản lý hiệu suất đến chấm công, quản lý khen thưởng và kế hoạch kế thừa. Nổi bật trong số đó là:

  • Hệ thống chấm công tự động qua Camera AI: Nhờ công nghệ nhận diện khuôn mặt tiên tiến, giúp chấm công chính xác, loại bỏ gian lận và tiết kiệm thời gian cho cả nhân viên và nhà quản lý.
  • Hệ thống sàng lọc hồ sơ tự động: AI tự động phân loại hồ sơ ứng viên dựa trên tiêu chí tuyển dụng, giúp nhà tuyển dụng nhanh chóng tìm kiếm những ứng viên phù hợp nhất.
  • Hệ thống đề xuất kế hoạch phát triển cá nhân: AI phân tích dữ liệu về hiệu suất làm việc và kỹ năng của nhân viên, đề xuất kế hoạch phát triển phù hợp để họ nâng cao năng lực và phát huy tiềm năng.
  • Hệ thống quản lý khen thưởng và phúc lợi: giúp tự động hóa việc tính toán lương thưởng, khen thưởng và phúc lợi cho nhân viên, đảm bảo tính minh bạch và công bằng.

Bức tranh tương lai: AI định hình ngành nhân sự

Nhìn về tương lai, AI sẽ đóng vai trò ngày càng quan trọng trong việc định hình ngành nhân sự. Với đà tăng trưởng hiện, các nhà cung cấp sẽ tiếp tục tiên phong trong việc ứng dụng AI, mang đến những giải pháp sáng tạo và hiệu quả hơn nữa, giúp các doanh nghiệp:

  • Xây dựng môi trường làm việc thông minh: AI sẽ giúp cá nhân hóa trải nghiệm làm việc, tự động hóa các quy trình và cung cấp cho nhân viên những công cụ cần thiết để họ làm việc hiệu quả nhất.
  • Quản lý nhân tài hiệu quả: AI sẽ hỗ trợ nhà quản lý trong việc tuyển dụng, đào tạo, phát triển và giữ chân nhân tài, đảm bảo nguồn nhân lực chất lượng cao cho doanh nghiệp.
  • Đưa ra quyết định dựa trên dữ liệu: AI cung cấp cho nhà quản lý những thông tin chi tiết và chính xác để họ đưa ra quyết định sáng suốt, hiệu quả hơn.
  • Tăng cường khả năng thích ứng: AI giúp doanh nghiệp nhanh chóng thích ứng với những thay đổi của thị trường và nhu cầu của nhân viên, đảm bảo sự linh hoạt và cạnh tranh trong môi trường kinh doanh đầy biến động.

Kết luận:

Bằng việc sử dụng AI và ứng dụng nó vào trong làm việc, các doanh nghiệp sẽ có thể tối ưu hóa quy trình quản lý nhân sự, nâng cao hiệu quả hoạt động, tạo ra môi trường làm việc thông minh và thu hút, giữ chân nhân tài, từ đó đạt được lợi thế cạnh tranh và thành công trong tương lai.

Top 7 trường đào tạo Công nghệ thông tin tốt tại TPHCM

Trong bối cảnh phát triển mạnh mẽ của công nghệ, ngành Công nghệ Thông tin (CNTT) trở thành một trong những ngành học được nhiều bạn trẻ lựa chọn. TP.HCM là trung tâm kinh tế, giáo dục lớn của Việt Nam, nơi tập trung nhiều trường đại học đào tạo CNTT chất lượng cao. Dưới đây là danh sách 7 trường đại học hàng đầu tại TP.HCM đào tạo ngành CNTT, giúp bạn có cái nhìn tổng quan và lựa chọn phù hợp cho tương lai.

Trường Đại học Bách khoa – Đại học Quốc gia TP.HCM

Trường Đại học Bách khoa – Đại học Quốc gia TP.HCM là một trong những trường đại học hàng đầu tại Việt Nam, đặc biệt nổi tiếng trong lĩnh vực kỹ thuật và công nghệ. Trường đào tạo ngành Công nghệ Thông tin (CNTT) với nhiều chuyên ngành như Khoa học Máy tính và Kỹ thuật Máy tính. Chương trình đào tạo của trường được thiết kế theo tiêu chuẩn quốc tế, cung cấp kiến thức nền tảng vững chắc và kỹ năng thực hành chuyên sâu.

Top trường CNTT TPHCM - Trường Đại học Bách khoa - Đại học Quốc gia TP.HCM
Trường Đại học Bách khoa – Đại học Quốc gia TP.HCM

Theo thông báo từ Trường Đại học Bách khoa TP. Hồ Chí Minh, từ năm 2023 điểm chuẩn được tính theo công thức:

Điểm chuẩn của trường trong ba năm gần nhất dao động từ 25 đến 28 điểm. Năm 2023 với sự thay đổi điểm xét tuyển, điểm hai ngành Khoa học Máy tính, Kỹ thuật Máy tính lần lượt là 86.9 và 85.7

Trường Đại học Bách khoa TP.HCM có mức học phí cho từng chương trình đào tạo áp dụng cho năm học 2023-2024 như sau:

  • Đối với chương trình tiêu chuẩn giảng dạy bằng tiếng Việt, học phí là khoảng 15 triệu đồng mỗi học kỳ, tương đương khoảng 30 triệu đồng mỗi năm (2 học kỳ).
  • Chương trình tài năng, cũng giảng dạy bằng tiếng Việt, có mức học phí tương tự là khoảng 15 triệu đồng mỗi học kỳ, tương đương khoảng 30 triệu đồng mỗi năm (2 học kỳ).
  • Chương trình tiên tiến, giảng dạy hoàn toàn bằng tiếng Anh, có học phí khoảng 40 triệu đồng mỗi học kỳ, tương đương khoảng 80 triệu đồng mỗi năm (2 học kỳ).

Ngoài ra trường còn có các hệ đào tạo liên kết quốc tế, mức học phí tham khảo thêm tại đây.

>> Xem thêm: Không biết gì về tin học có học được CNTT không?

Trường Đại học Khoa học Tự nhiên – Đại học Quốc gia TP.HCM

Trường Đại học Khoa học Tự nhiên – Đại học Quốc gia TP.HCM là một trong những cơ sở giáo dục hàng đầu tại Việt Nam, đặc biệt nổi tiếng trong lĩnh vực khoa học và công nghệ. Thành lập từ năm 1996, trường đã không ngừng phát triển và trở thành trung tâm nghiên cứu và đào tạo chất lượng cao, thu hút đông đảo sinh viên tài năng từ khắp nơi trên cả nước.

Trường Đại học Khoa học Tự nhiên - Đại học Quốc gia TP.HCM
Trường Đại học Khoa học Tự nhiên – Đại học Quốc gia TP.HCM

Ngành Công nghệ Thông tin (CNTT) tại Trường Đại học Khoa học Tự nhiên là một trong những ngành mũi nhọn, được đầu tư mạnh mẽ về cả nhân lực và cơ sở vật chất. Chương trình đào tạo CNTT của trường bao gồm 2 chuyên ngành chính như:

  1. Công nghệ Thông tin: Chương trình này cung cấp kiến thức toàn diện về lập trình, phát triển phần mềm, quản trị hệ thống và cơ sở dữ liệu. Sinh viên được trang bị kỹ năng thực hành vững vàng, sẵn sàng tham gia vào thị trường lao động ngay sau khi tốt nghiệp.
  2. Khoa học Dữ liệu: Đây là một trong những lĩnh vực mới nhưng đầy triển vọng, cung cấp kiến thức về phân tích dữ liệu, học máy và trí tuệ nhân tạo. Chương trình giúp sinh viên nắm bắt các kỹ thuật và công cụ hiện đại để xử lý và phân tích khối lượng lớn dữ liệu.

Tham khảo điểm chuẩn 2023 của các nhóm ngành CNTT tại trường Khoa học Tự nhiên TPHCM:

Mã ngành Tên ngành Điểm chuẩn
7460108 Khoa học dữ liệu 26,40
7480101_TT Khoa học máy tính (Chương trình Tiên tiến) 28,05
7480201_NN Nhóm ngành máy tính và Công nghệ thông tin 26,50

Học phí dự kiến cho năm 2024 là khoảng 30 triệu đồng/năm, tương xứng với các trang thiết bị và điều kiện học tập hiện đại.

Trường Đại học Sư phạm Kỹ thuật TP.HCM

Trường Đại học Sư phạm Kỹ thuật TP.HCM cũng là một trong các trường đại học đi đầu trong ngành CNTT. Chương trình học được thiết kế để cân bằng giữa lý thuyết và thực hành, giúp sinh viên dễ dàng thích nghi với môi trường làm việc sau khi tốt nghiệp.

Trường Đại học Sư phạm Kỹ thuật TP.HCM - Dẫn đầu ngành CNTT
Trường Đại học Sư phạm Kỹ thuật TP.HCM

Các chuyên ngành trong khối ngành CNTT tại trường bao gồm Công nghệ thông tin, Kỹ thuật dữ liệu và Kỹ thuật máy tính. Mỗi chuyên ngành đều được xây dựng với mục tiêu đáp ứng nhu cầu ngày càng cao của thị trường lao động và xu hướng phát triển công nghệ. Đặc biệt, trường thường xuyên cập nhật và đổi mới chương trình giảng dạy, đảm bảo rằng sinh viên luôn được tiếp cận với những kiến thức và công nghệ mới nhất.

Sau đây là điểm chuẩn các ngành thuộc nhóm ngành CNTT hệ đại trà của trường ĐH SPKT TPHCM năm 2023:

Khối thi Tên ngành Điểm chuẩn
A00, A01, D01, D90 Công nghệ thông tin (đại trà) 26.64
A00, A01, D01, D90 Công nghệ kỹ thuật máy tính 26.15
A00, A01, D01, D90 Kỹ thuật dữ liệu 26.81

Học phí năm 2023 – 2024 đã được trường công bố chính thức tại đây, các ngành học có học phí dao động từ 30-40tr/năm tùy vào chương trình đào tạo.

Trường Đại học Công nghệ Thông tin TP.HCM

Trường Đại học Công nghệ Thông tin TP.HCM được thành lập vào năm 2006, được tách từ khoa Công nghệ thông tin của trường KHTN, vì vậy đây là một trong những trường uy tín trong đào tạo ngành CNTT. UIT được thành lập với mục tiêu đào tạo nguồn nhân lực chất lượng cao trong các lĩnh vực liên quan đến công nghệ thông tin và truyền thông, đáp ứng nhu cầu ngày càng tăng của thị trường lao động.

Các chuyên ngành đào tạo chính tại UIT bao gồm Khoa học Máy tính, Kỹ thuật phần mềm, An ninh thông tin, Mạng máy tính và Truyền thông. Chương trình học tại UIT được thiết kế theo chuẩn quốc tế, chú trọng vào việc phát triển kỹ năng thực hành và khả năng nghiên cứu. Sinh viên tại UIT được học tập trong môi trường hiện đại, với các phòng thí nghiệm và trang thiết bị tiên tiến.

Tham khảo điểm chuẩn các ngành CNTT năm 2023 của UIT:

Học phí dự kiến cho năm 2024 là khoảng 24 triệu đồng/năm

Mức học phí thấp nhất tại trường Đại học Công Nghệ thông tin TPHCM là 30tr/năm cho hệ đại trà và cao nhất là 150tr/năm cho hệ đào tạo liên kết nước ngoài.

>> Có thể bạn quan tâm: Học phí ngành công nghệ thông tin 2024 – 2025

Trường Đại học Công nghiệp TP.HCM

Trường Đại học Công nghiệp TP.HCM đào tạo ngành cntt
Trường Đại học Công nghiệp TP.HCM

Trường Đại học Công nghiệp TP.HCM (IUH) là một trong những trường đại học uy tín trong việc đào tạo ngành Công nghệ Thông tin, khác với những trường thuộc khối Đại học quốc gia TPHCM, ĐH Công nghiệp có địa chỉ tại Gò Vấp, trung tâm TPHCM. IUH nổi tiếng với chương trình đào tạo ứng dụng thực tiễn cao, giúp sinh viên dễ dàng thích nghi với môi trường làm việc sau khi tốt nghiệp.

Các chuyên ngành chính trong lĩnh vực CNTT tại IUH bao gồm Công nghệ phần mềm, Hệ thống thông tin và Khoa học máy tính. Chương trình đào tạo của trường kết hợp giữa lý thuyết và thực hành, với nhiều cơ hội thực tập tại các doanh nghiệp công nghệ lớn. Trường cũng đặc biệt chú trọng đến việc phát triển các kỹ năng mềm và kỹ năng làm việc nhóm cho sinh viên.

Điểm chuẩn của IUH trong ba năm gần đây dao động từ 21 đến 25 điểm. Học phí dự kiến cho năm 2024 là khoảng 22 triệu đồng/năm, mức học phí tương thấp hơn một chút so với mặt bằng chung nhưng vẫn đảm bảo cơ sở vật chất và điều kiện giảng dạy tốt nhất cho sinh viên.

>> Xem thêm: Top 10 trường có ngành CNTT tốt nhất cả nước

Đại Học Quốc Tế – Đại Học Quốc Gia TP.HCM

Trường đào tạo IT tại TPHCM - Đại Học Quốc Tế – Đại Học Quốc Gia TP.HCM
Đại Học Quốc Tế – Đại Học Quốc Gia TP.HCM

Đại Học Quốc Tế – Đại Học Quốc Gia TP.HCM (HCMIU) là trường đại học công lập đầu tiên tại Việt Nam sử dụng tiếng Anh làm ngôn ngữ giảng dạy chính trong tất cả các chương trình đào tạo. HCMIU nổi bật với các chương trình đào tạo theo tiêu chuẩn quốc tế, đặc biệt trong lĩnh vực CNTT.

Các chuyên ngành CNTT tại HCMIU bao gồm Khoa học Máy tính, Kỹ thuật Máy tính và Kỹ thuật phần mềm. Chương trình học được xây dựng với sự hợp tác chặt chẽ với các trường đại học và tổ chức quốc tế, đảm bảo sinh viên được tiếp cận với những công nghệ và phương pháp giảng dạy tiên tiến nhất. Sinh viên tại HCMIU cũng có nhiều cơ hội tham gia các chương trình trao đổi và thực tập quốc tế.

Điểm chuẩn trong ba năm gần nhất của HCMIU thường từ 24 đến 28 điểm, cho thấy yêu cầu cao về chất lượng đầu vào. Học phí dự kiến cho năm 2024:

  • Chương trình do trường Đại học Quốc tế cấp bằng: khoảng 50.000.000 VNĐ/năm (học phí này có thể thay đổi dựa trên số tín chỉ thực đăng ký mỗi học kỳ).
  • Các chương trình liên kết: Học phí 2 năm đầu tại Việt Nam khoảng 63.000.000 đến 67.000.000 VNĐ/năm, các năm sau học tại các trường đại học nước ngoài sẽ có mức học phí theo yêu cầu của trường theo học.

Trường Đại học Sài Gòn

Trường Đại học Sài Gòn (SGU) là một trong những trường đại học uy tín tại TP.HCM với nhiều ngành đào tạo đa dạng, trong đó ngành CNTT là một trong những ngành mũi nhọn. SGU chú trọng vào việc cung cấp kiến thức nền tảng vững chắc cùng kỹ năng thực hành cho sinh viên.

Trường Đại học Sài Gòn
Trường Đại học Sài Gòn

Các chuyên ngành CNTT tại SGU bao gồm Công nghệ Thông tin, Khoa học Máy tính và Hệ thống Thông tin. Chương trình đào tạo của SGU được thiết kế để đáp ứng nhu cầu thực tế của thị trường lao động, với nhiều cơ hội thực hành và tham gia các dự án thực tế. Trường cũng thường xuyên tổ chức các hội thảo, hội nghị chuyên ngành để sinh viên có cơ hội học hỏi và trao đổi kinh nghiệm.

Điểm chuẩn trong ba năm qua của SGU thường từ 20 đến 24 điểm, phản ánh mức độ cạnh tranh vừa phải nhưng vẫn đảm bảo chất lượng đầu vào. Học phí dự kiến cho năm 2024 là khoảng 20 triệu đồng/năm, phù hợp với điều kiện kinh tế của nhiều sinh viên và gia đình.

Những trường đại học trên đều là những lựa chọn hàng đầu cho các bạn sinh viên mong muốn theo đuổi ngành CNTT tại TP.HCM. Mỗi trường đều có những điểm mạnh riêng về chương trình đào tạo, cơ sở vật chất và học phí, giúp các bạn có nhiều sự lựa chọn phù hợp với nhu cầu và điều kiện cá nhân. Việc lựa chọn trường phù hợp sẽ là bước khởi đầu quan trọng cho sự nghiệp tương lai trong lĩnh vực công nghệ thông tin.

Việc làm fresher tại TP.HCM

5 lỗi sai cơ bản thường gặp trong C#

Bài viết được sự cho phép bởi tác giả Vũ Thành Nam

#1 Sử dụng kiểu dữ liệu tham chiếu như một kiểu nguyên thuỷ hay kiểu giá trị

Trong lập trình C++ hay nhiều ngôn ngữ khác có sử dụng kiểu dữ liệu tham chiếu, tức là các giá trị cửa kiểu dữ liệu đó tham chiều tới cùng một vùng nhớ. Để hiểu về kiểu dữ liệu nguyên thuỷ (value type hay primitive type) hay kiểu dữ liệu tham chiếu (reference type) bạn cần hiểu đôi chút về vùng nhớ trong đó có heap và stack. Kiểu dữ liệu tham chiếu tuy các giá trị được lưu trên stack nhưng để truy vấn nó thì lại gọi theo heap. Hay tưởng tượng 1 ngôi nhà có địa chỉ và khi gửi thư ta thưởng gửi tới địa chỉ 123/4 chẳng hạn.

Các kiểu int, long, bool, float là kiểu dữ liệu nguyên thuỷ hay kiểu giá trị. Còn object là một loại kiểu dữ liệu tham chiếu nên khi bạn gán giá trị hãy chú ý đến sự tham chiếu của nó nhé. Nhưng Nhưng Nhưng! Đừng tưởng cứ object là tất tần tật như nhau…

Ví dụ:

  Point point1 = new Point(20, 30);
  Point point2 = point1;
  point2.X = 50;
  Console.WriteLine(point1.X);       // 20 (does this surprise you?)
  Console.WriteLine(point2.X);       // 50
  
  Pen pen1 = new Pen(Color.Black);
  Pen pen2 = pen1;
  pen2.Color = Color.Blue;
  Console.WriteLine(pen1.Color);     // Blue (or does this surprise you?)
  Console.WriteLine(pen2.Color);     // Blue

Ví dụ trên thì Point và Pen là object được tạo ra bằng cùng 1 cách, nhưng giá trị của point1 không đổi khi gán một giá trị mới từ point2, trong khi giá trị pen1 lại bị thay đổi khi gán giá trị color mới được gán từ pen2. Chúng ta có thể nhận thấy, point1 và point2 chứa giá trị sao chép đối tượng Point, trong khi pen1 và pen2 lại chỉ chứa tham chiểu tương đồng của đổi tượng Pen.

Đi sâu hơn (f12 sẽ thấy) thì Point là struct (kiểu giá trị) còn Pen là class (kiểu tham chiếu chính gốc đấy nhé).

#2 Hiểu sai về giá trị mặc định khi biến không được khởi tạo giá trị ban đầu

Trong C# kiểu dữ liệu nguyên thuỷ hay kiểu giá trị không thể null. Nhớ nhé khi khai báo 1 object chưa được gán giá trị khởi tạo thì nó là null, nhưng đổi với kiểu giá trị thì nó không null đâu đừng có mà check null biến có kiểu giá trị làm gì.

class Program 
{
      static Point point1;
      static Pen pen1;
      static void Main(string[] args) 
      {
          Console.WriteLine(pen1 == null);      // True
          Console.WriteLine(point1 == null);    // False (huh?)
      }
}

Như đề cập ở trên Point là struct nó không có giá trị mặc định là null mà là (0,0)

Các đạik C# thường dùng hàm extension IsEmpty để check cho các đa số (không phải tất cả) biến kiểu giá trị nhé.

  So sánh C# và C++ - Nên học ngôn ngữ nào?

  Học gì để trở thành C# developer? Những kiến thức quan trọng

#3 Sử dụng sai hay hiểu sai hàm string comparison

Có nhiều cách để so sánh chuỗi string trong C# và đa số khi so sánh lại sử dụng toán tử == Nó thực sự là một phương thức không hề an toàn một chút nào chính bỏi vì nó không hề tường minh khi bạn muốn so sánh chuỗi đi kèm type. Đào sau hơn xem thử có 2 cách so sánh chuỗi trong C# với Equals.

public bool Equals(string value);
public bool Equals(string value, StringComparison comparisonType);

Dấu == chính là ngầm định của kiểu so sánh Equals đầu tiên không sử dụng StringComparison. Thật chẳng có gì xảy ra khi so sánh chuỗi cơ bản các ký tự alphabet, số hay ký tự đặc biệt thông dụng. Tuy nhiên nếu bạn cần dựa trên ngôn ngữ cài đặt trên môi trường chạy (hệ điều hành chẳng hạn) thì một số ký tự sẽ được coi là khác nhau nếu chuyển đổi môi trường khác nhau (CurrentCultrure) nó khác nhau. Chính vì vậy khi so sánh chuỗi sẽ an toàn hơn nếu sử dụng hàm Equals bao gồm comparisonType. Ví dụ dưới đây cho thấy giá trị so sánh sẽ khác nhau tuỳ thuộc vào option của comparisonType.

string s = "strasse";

// outputs False:
Console.WriteLine(s == "straße");
Console.WriteLine(s.Equals("straße"));
Console.WriteLine(s.Equals("straße", StringComparison.Ordinal));
Console.WriteLine(s.Equals("Straße", StringComparison.CurrentCulture));        
Console.WriteLine(s.Equals("straße", StringComparison.OrdinalIgnoreCase));

// outputs True:
Console.WriteLine(s.Equals("straße", StringComparison.CurrentCulture));
Console.WriteLine(s.Equals("Straße", StringComparison.CurrentCultureIgnoreCase));

Không chỉ có phương thức Equals, ngay cả phương thức Compare cũng nên dùng comparisonType nhé. Chỉ dùng ==, >, <, <=, >= đối với so sánh chuỗi khá có thể sẽ gặp rủi ro vào một ngày đẹp trời đó.

Tham khảo việc làm lập trình C hấp dẫn trên TopDev!

#4 Sử dụng vòng lặp thay vì khai báo liệt kê (LINQ) trong collections (kiểu tập hợp)

C# 3.0 mang đến cho chúng ta LINQ (Language Integrated Query) với rất nhiều tiện ích khi làm việc với tập hợp khi truy vấn (queries) và liệt kê chúng. Nhưng đừng nên lạm dụng chúng nhé. LINQ được sinh ra với ý nghĩa đơn giản hoá và làm tương đồng với các hình thức truy vấn database và nó chỉ nên làm việc khi truy vấn database.

Có người cho rằng chúng chẳng làm sai kết quả mà lại gọn gàng dễ hiểu (theo mình cũng chẳng dễ hiểu đâu). Ví dụ:

decimal total = 0;
foreach (Account account in myAccounts) 
{
	if (account.Status == "active") 
	{
		total += account.Balance;
	}
}

//Or

decimal total = (from account in myAccounts
				where account.Status == "active"
				select account.Balance).Sum();

Rồi để xem nhé, với LINQ kìa nó lấy lên 1 danh sách các balance (1 lần lặp) sau đó duyệt chung và tính tổng (1 lần lặp trong Sum á) vậỵ là 2 lần lặp rồi nhá. Code ngắn vậy thôi nhưng sao nó đang làm tăng độ phức tạp lên kìa, trong khi bên trên ta chỉ có mỗi vòng lặp xử lý. Thêm vào đó LINQ không thể (đúng hơn là rất khó) debug khi gắn logic vào nó. Không tin hả! thử cộng trừ nhân chia trong LINQ và trace kết quả coi. Hãy đơn giản hoá nó và trả nó về với mục đích chính của nó nhé. Đáng cân nhắc phải không?

#5 Những lỗi cơ bản cần cân nhắc trước khi làm việc với LINQ

LINQ làm việc rất tốt đối với việc xử lý đa tiến trình (task) trong tập hợp (collections) liệu rằng chúng có lưu trên bộ nhớ của các đối tượng (objects) bảng cơ sở dữ liệu (database tables) hay xml… Đời không phải lúc nào cũng hoàn hảo, nếu có lỗi trong quá trình truy vấn thì sao, liệu rằng nó sẽ văng (throw) ra exception hay trả về một kết quả khác sai hoàn toàn. Chẳng phải bạn luôn thích try catch trong mọi hàm hay sao 😀

decimal total = (from account in myAccounts
                       where account.Status == "active"
                       select account.Balance).Sum();

Điều gì xảy ra nếu account.Status là “Active” (chữ A lại viết hoa mới đểu), vâng thật tuyệt vời khi myAccounts được lưu trong đối tượng DbSet (phía hạ tầng database) sau khi truy vấn thông qua biểu thức sẽ vẫn khớp với phần tử đó. Tuy nhiên nếu myAccounts lại được lưu trong bộ nhớ đệm của mảng, nó sẽ trả về một giá trị khác đi. Khoan đã nào, ở đây có 2 vấn đề cần được làm rõ. Thứ nhất tại sao không dùng Equals với comparisonType như ở trên nói mà lại dùng ==. Thứ 2, nếu dùng một hàm extension methods ở chỗ điều kiện kia (ví dụ account.Status.LowerCase()  == “active”) và trong hàm đó nó lăn ra chết 😀 (tức là throw exception đó) thì điều gì xảy ra đối với hàm Sum.

Câu trả lời cho điều thứ nhất là do LINQ là ngôn ngữ translate thành câu lệnh TSQL nên việc dùng == ở trường hợp này lại là một cách chính xác. Và cũng chính do nó tuân theo toán tử TSQL nên mọi Extension method đều không dùng được trong LINQ. Nên điều thứ 2 ở trên không thực hiện được đâu trừ khi đổi sang dạng lambda với extension mà .Net hỗ trợ sẵn khi đó nó mới tuân theo C# rule. Tham khảo tại đây: https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable?redirectedfrom=MSDN&view=netframework-4.7.2  và https://www.c-sharpcorner.com/article/linq-extension-methods/

Nói tóm lại là LINQ là ngôn ngữ chuyển đổi thành TSQL nó tuân theo luật rừng của TSQL nên khi đúng cần chú ý nhé!

Bài viết gốc được đăng tải tại ntechdevelopers.com

Xem thêm:

Tham khảo ngay việc làm IT mọi cấp độ trên TopDev!

Tổng hợp 100+ công cụ AI hữu ích cho mọi ngành nghề (P3)

Với tiềm năng vượt trội, AI đang dần thay đổi cách chúng ta làm việc, giao tiếp và phát triển. Trong bài viết này, chúng ta sẽ tiếp tục khám phá hơn 100 công cụ AI hữu ích, hứa hẹn sẽ mang đến những công cụ và phương pháp tiên tiến, phục vụ cho mọi ngành nghề một cách hiệu quả.

Sản xuất và Công nghiệp 4.0

41. Bảo trì dự đoán

AI dự đoán hỏng hóc máy móc, giảm thiểu thời gian ngừng hoạt động và chi phí bảo trì. Một số công cụ và nền tảng sử dụng AI cho Bảo trì dự đoán:

  • IBM Watson IoT Predictive Maintenance: IBM Watson cung cấp một nền tảng IoT dựa trên AI giúp các doanh nghiệp dự đoán hỏng hóc thiết bị bằng cách phân tích dữ liệu cảm biến. Nền tảng này cung cấp các thông tin và đề xuất bảo trì có giá trị.
  • Microsoft Azure IoT: Azure IoT sử dụng AI và học máy để phân tích dữ liệu từ các thiết bị và thiết bị kết nối. Nền tảng này cung cấp các giải pháp bảo trì dự đoán giúp các tổ chức xử lý các vấn đề về thiết bị một cách chủ động.
  • SAP Predictive Maintenance and Service: Giải pháp bảo trì dự đoán của SAP kết hợp AI và IoT để phân tích dữ liệu thiết bị theo thời gian thực. Nền tảng này cung cấp phân tích dự đoán và đề xuất bảo trì để cải thiện độ tin cậy của tài sản.
  • GE Digital’s Predix: Nền tảng Predix của GE Digital sử dụng AI và IoT để dự đoán hỏng hóc máy móc và tối ưu hóa lịch trình bảo trì. Nền tảng này được thiết kế cho các ngành công nghiệp như sản xuất, năng lượng và y tế.
Microsoft Azure IoT
Microsoft Azure IoT

42. Kiểm soát chất lượng

Hệ thống AI kiểm tra sản phẩm để phát hiện lỗi và đảm bảo tiêu chuẩn chất lượng. Một số công cụ và nền tảng sử dụng AI cho Kiểm soát chất lượng:

  • Cognex: Cognex cung cấp một loạt các hệ thống thị giác máy và phần mềm dựa trên AI cho kiểm soát chất lượng công nghiệp. Nền tảng này chuyên về thị giác máy và phân tích hình ảnh để nhận diện lỗi và đảm bảo chất lượng sản phẩm.
  • Inspekto S70: Inspekto’s S70 là một hệ thống thị giác máy tự động dựa trên AI được thiết kế cho kiểm tra chất lượng trong sản xuất. Nền tảng này có thể được triển khai dễ dàng trên dây chuyền sản xuất để nhận diện lỗi theo thời gian thực.
  • Sight Machine: Sight Machine cung cấp một nền tảng phân tích sản xuất dựa trên AI. Nền tảng này cung cấp phân tích dữ liệu theo thời gian thực để giám sát quy trình sản xuất và đảm bảo chất lượng sản phẩm.

43. Thiết kế sản phẩm sáng tạo

AI hỗ trợ trong việc thiết kế sản phẩm bằng cách tạo ra các khái niệm và nguyên mẫu thiết kế. Một số công cụ và nền tảng sử dụng AI cho Thiết kế sản phẩm sáng tạo:

  • Autodesk Generative Design: Autodesk cung cấp một công cụ thiết kế sáng tạo sử dụng thuật toán AI để khám phá hàng nghìn khả năng thiết kế, giúp các kỹ sư và nhà thiết kế tạo ra các thiết kế sản phẩm tối ưu và sáng tạo.
  • SolidWorks xDesign: SolidWorks cung cấp một nền tảng CAD dựa trên đám mây với khả năng thiết kế sáng tạo sử dụng AI. Nền tảng này giúp người dùng tạo ra các mô hình 3D tham số và khám phá các biến thể thiết kế một cách nhanh chóng.
  • Siemens NX Generative Design: Siemens NX cung cấp phần mềm thiết kế sáng tạo sử dụng AI để tối ưu hóa thiết kế sản phẩm cho các ngành công nghiệp khác nhau, từ ô tô đến hàng không, bằng cách xem xét các vật liệu, hiệu suất và ràng buộc sản xuất.

44. Tối ưu hóa chuỗi cung ứng

AI tối ưu hóa logistics chuỗi cung ứng, giảm thiểu chi phí và cải thiện hiệu quả. Một số công cụ và nền tảng sử dụng AI cho Tối ưu hóa chuỗi cung ứng:

  • IBM Sterling Supply Chain Suite: IBM’s Sterling Supply Chain Suite sử dụng AI và công nghệ blockchain để cung cấp khả năng kiểm soát và tầm nhìn toàn diện đối với hoạt động chuỗi cung ứng. Nền tảng này cung cấp các giải pháp tối ưu hóa hàng tồn kho, quản lý đơn hàng và lập kế hoạch logistics.
  • SAP Integrated Business Planning: Giải pháp SAP Integrated Business Planning (IBP) sử dụng AI và học máy để nâng cao dự báo nhu cầu, tối ưu hóa mức tồn kho và cải thiện khả năng đáp ứng chuỗi cung ứng. Nền tảng này giúp các tổ chức điều chỉnh chuỗi cung ứng của họ với các mục tiêu kinh doanh.
  • Llamasoft Supply Chain Guru: Llamasoft’s Supply Chain Guru là một nền tảng thiết kế và mô hình chuỗi cung ứng sử dụng AI để phân tích các kịch bản khác nhau và tối ưu hóa thiết kế mạng lưới chuỗi cung ứng. Nền tảng này giúp đưa ra các quyết định thông minh về vị trí kho, cơ sở sản xuất và tuyến đường vận chuyển.
  • Oracle Cloud SCM: Oracle Cloud Supply Chain Management (SCM) cung cấp các giải pháp dựa trên AI cho dự báo nhu cầu, quản lý hàng tồn kho và mua sắm. Nền tảng này giúp các tổ chức tối ưu hóa quy trình chuỗi cung ứng và giảm thiểu chi phí.

45. Quản lý hàng tồn kho

AI quản lý mức hàng tồn kho, tối ưu hóa kho và giảm thiểu các vấn đề thừa hàng/thấp hàng. Một số công cụ và nền tảng sử dụng AI cho Quản lý hàng tồn kho:

  • Oracle Inventory Management Cloud: Oracle’s Inventory Management Cloud sử dụng AI và học máy để cung cấp thông tin chi tiết theo thời gian thực về mức tồn kho và dự báo nhu cầu. Nền tảng này giúp các tổ chức tối ưu hóa mức tồn kho, giảm chi phí lưu kho và ngăn ngừa tình trạng hết hàng hoặc thừa hàng.
  • Infor Nexus: Infor Nexus cung cấp một nền tảng quản lý chuỗi cung ứng dựa trên AI bao gồm các tính năng tối ưu hóa hàng tồn kho. Nền tảng này cung cấp tầm nhìn về hàng tồn kho trên toàn bộ chuỗi cung ứng và sử dụng các thuật toán AI để cân bằng mức tồn kho, giảm thiểu hàng tồn kho dư thừa và cải thiện khả năng hoàn thành đơn hàng.
Oracle Inventory Management Cloud
Oracle Inventory Management Cloud

46. Tối ưu hóa quy trình

AI tối ưu hóa quy trình sản xuất để đạt hiệu quả và sử dụng tài nguyên tối đa. Một số công cụ và nền tảng sử dụng AI cho Tối ưu hóa quy trình:

  • Siemens Opcenter: Siemens Opcenter cung cấp một bộ giải pháp quản lý hoạt động sản xuất toàn diện sử dụng AI và phân tích. Nền tảng này cung cấp tầm nhìn theo thời gian thực về các quy trình sản xuất, giúp xác định các nút thắt cổ chai và tối ưu hóa các hoạt động sản xuất.
  • Rockwell Automation FactoryTalk Analytics: FactoryTalk Analytics của Rockwell Automation sử dụng AI và học máy để cải thiện các quy trình sản xuất. Nền tảng này cung cấp khả năng bảo trì dự đoán, kiểm soát chất lượng và tối ưu hóa quy trình để giảm thiểu thời gian ngừng hoạt động và cải thiện việc sử dụng tài nguyên.

47. Phát hiện lỗi

AI nhận diện các lỗi trong máy móc và thiết bị, ngăn ngừa tai nạn và hỏng hóc. Một số công cụ và nền tảng sử dụng AI cho Phát hiện lỗi:

  • Bosch IoT Insights: Bosch IoT Insights là một nền tảng IoT công nghiệp sử dụng AI và học máy để giám sát tình trạng thiết bị và phát hiện lỗi. Nền tảng này cung cấp phân tích theo thời gian thực và khả năng bảo trì dự đoán để ngăn ngừa sự cố.
  • Schneider Electric EcoStruxure Machine Advisor: EcoStruxure Machine Advisor của Schneider Electric cung cấp bảo trì dự đoán dựa trên AI cho máy móc công nghiệp. Nền tảng này sử dụng dữ liệu cảm biến và các thuật toán AI để phát hiện các bất thường và dự đoán hỏng hóc thiết bị.
  • GE Digital Predix APM: GE Digital’s Predix Asset Performance Management (APM) sử dụng AI và phân tích công nghiệp để giám sát tình trạng của tài sản và thiết bị. Nền tảng này cung cấp phát hiện lỗi sớm, phân tích nguyên nhân gốc rễ và cải thiện độ tin cậy của tài sản.

  Sự khác nhau giữa AI, Machine Learning và Deep Learning

  5 công cụ AI hữu ích trong năm 2024 dành cho Developer

48. Lập lịch sản xuất

AI tạo ra lịch sản xuất để tối đa hóa sản lượng và đáp ứng nhu cầu. Một số công cụ và nền tảng sử dụng AI cho Lập lịch sản xuất:

  • PLEX Systems Manufacturing Execution: PLEX Systems cung cấp một hệ thống điều hành sản xuất (MES) dựa trên AI bao gồm các khả năng lập lịch sản xuất. Nền tảng này sử dụng AI và học máy để tối ưu hóa lịch sản xuất dựa trên dữ liệu thời gian thực, dự báo nhu cầu và các ràng buộc tài nguyên.
  • GAINSystems: GAINSystems cung cấp phần mềm tối ưu hóa nhu cầu và tồn kho dựa trên AI với các tính năng lập lịch sản xuất. Nền tảng này tối ưu hóa lịch sản xuất để phù hợp với nhu cầu và mục tiêu tồn kho trong khi xem xét các ràng buộc khác nhau.

49. Hiệu suất năng lượng

AI tối ưu hóa việc sử dụng năng lượng, giảm chi phí và bảo vệ môi trường. Một số công cụ và nền tảng sử dụng AI cho Hiệu suất năng lượng:

  • Siemens EnergyIP: Siemens EnergyIP sử dụng AI và phân tích để tối ưu hóa quản lý năng lượng công nghiệp. Nền tảng này cung cấp tầm nhìn về tiêu thụ năng lượng, tối ưu hóa sử dụng tài nguyên năng lượng và giảm chi phí năng lượng.
  • Schneider Electric EcoStruxure Energy Management: EcoStruxure của Schneider Electric là một nền tảng quản lý năng lượng dựa trên AI giúp các tổ chức tối ưu hóa sử dụng năng lượng, cải thiện hiệu quả và giảm lượng khí thải carbon. Nền tảng này cung cấp khả năng giám sát năng lượng theo thời gian thực và phân tích tiên đoán.

50. Hợp tác robot – người (Cobots)

Robot AI làm việc cùng con người trong dây chuyền sản xuất để tăng cường năng suất. Một số công cụ và nền tảng sử dụng AI cho Hợp tác robot – người (Cobots):

  • Universal Robots: Universal Robots cung cấp các cobot có thể lập trình và sử dụng dễ dàng để làm việc cùng con người trong các môi trường sản xuất. Các cobot của Universal Robots có khả năng cảm nhận và điều chỉnh chuyển động để đảm bảo an toàn và hiệu quả.
  • ABB Robotics: ABB Robotics cung cấp các giải pháp cobot sử dụng AI để làm việc cùng con người trong sản xuất và lắp ráp. Các cobot của ABB được thiết kế để dễ dàng lập trình và triển khai, giúp tăng cường hiệu suất và năng suất.
  • Fanuc CRX: Fanuc cung cấp dòng cobot CRX có khả năng làm việc an toàn và hiệu quả cùng con người. Các cobot CRX của Fanuc sử dụng công nghệ cảm biến và AI để đảm bảo an toàn và tối ưu hóa quy trình sản xuất.

Bền vững về môi trường

51. Mô hình hóa khí hậu

AI giúp dự đoán các biến đổi khí hậu và tác động của chúng. Một số công cụ và nền tảng sử dụng AI cho Mô hình hóa khí hậu:

  • The Weather Company by IBM: The Weather Company của IBM cung cấp các giải pháp mô hình hóa thời tiết và khí hậu được tăng cường bằng AI. Nền tảng này kết hợp AI và học máy với dữ liệu khí hậu rộng lớn để cung cấp các dự đoán khí hậu chính xác cho nhiều ngành công nghiệp, bao gồm nông nghiệp và năng lượng.
  • Climate.ai: Climate.ai là một nền tảng sử dụng AI để mô hình hóa và dự đoán các tác động của biến đổi khí hậu ở quy mô khu vực và toàn cầu. Nền tảng này hỗ trợ các nhà nghiên cứu, nhà hoạch định chính sách và tổ chức hiểu các xu hướng khí hậu và phát triển các chiến lược giảm thiểu và thích ứng.
  • Earth-Now by NASA: Nền tảng Earth-Now của NASA kết hợp AI và dữ liệu vệ tinh để giám sát và mô hình hóa các biến đổi khí hậu. Nền tảng này cung cấp quyền truy cập vào dữ liệu khí hậu theo thời gian thực và các công cụ trực quan hóa cho các nhà nghiên cứu và công chúng để hiểu các tác động khí hậu.

The Weather Company by IBM

52. Bảo tồn đa dạng sinh học

AI hỗ trợ giám sát và bảo tồn các loài có nguy cơ tuyệt chủng. Một số công cụ và nền tảng sử dụng AI cho Bảo tồn đa dạng sinh học:

  • Wildbook: Wildbook là một nền tảng dựa trên AI tập trung vào giám sát và bảo tồn động vật hoang dã. Nó sử dụng thị giác máy tính và học máy để nhận dạng và theo dõi các cá thể động vật dựa trên dấu vết và đặc điểm riêng của chúng. Các nhà nghiên cứu và bảo tồn có thể sử dụng Wildbook để thu thập dữ liệu về các loài có nguy cơ tuyệt chủng và đánh giá xu hướng dân số.
  • Instant Wild: Instant Wild là một ứng dụng di động và nền tảng cho phép người dùng đóng góp vào giám sát động vật hoang dã. Nền tảng này sử dụng các thuật toán AI để phân tích ảnh được người dùng chụp trong tự nhiên. Ứng dụng giúp nhận dạng và tài liệu hóa các loài, cung cấp dữ liệu có giá trị cho các nỗ lực bảo tồn.

53. Giảm thiểu lượng khí thải carbon

AI nhận diện các cơ hội để giảm lượng khí thải carbon trong các ngành công nghiệp khác nhau. Một số công cụ và nền tảng sử dụng AI cho Giảm thiểu lượng khí thải carbon:

  • Ecolane: Ecolane là một nền tảng tối ưu hóa giao thông sử dụng AI. Nó hỗ trợ các cơ quan và tổ chức vận tải tối ưu hóa tuyến đường, lịch trình và bảo trì phương tiện để giảm lượng khí thải từ các đội xe của họ. Nền tảng sử dụng các thuật toán AI để cải thiện hiệu quả vận tải và giảm thiểu lượng khí thải carbon.
  • CarbonCure: CarbonCure là một giải pháp dựa trên AI cho ngành xây dựng. Nó sử dụng AI để tối ưu hóa quy trình sản xuất bê tông, giảm lượng khí thải carbon bằng cách tiêm carbon dioxide (CO2) đã được thu giữ vào hỗn hợp bê tông. Cách tiếp cận sáng tạo này giúp các công ty xây dựng giảm thiểu lượng khí thải carbon của họ.

54. Dự đoán thảm họa thiên nhiên

AI dự đoán và theo dõi các thảm họa thiên nhiên, hỗ trợ cảnh báo sớm và ứng phó. Một số công cụ và nền tảng sử dụng AI cho Dự đoán thảm họa thiên nhiên:

  • Earth Networks: Earth Networks cung cấp các giải pháp phát hiện thời tiết và sét tiên tiến được hỗ trợ bởi AI. Công nghệ của họ bao gồm mạng lưới toàn cầu các trạm thời tiết và cảm biến, cung cấp dữ liệu cho các thuật toán AI, cho phép dự đoán và theo dõi các sự kiện thời tiết khắc nghiệt, bao gồm cả giông bão và lốc xoáy.
  • RapidSOS: RapidSOS cung cấp một nền tảng ứng phó khẩn cấp dựa trên AI tích hợp với các hệ thống 911. Nó sử dụng các thuật toán AI để cung cấp thông tin vị trí chính xác trong các tình huống khẩn cấp, chẳng hạn như thảm họa thiên nhiên. Điều này hỗ trợ các nhân viên ứng phó nhanh chóng đến các khu vực bị ảnh hưởng.

55. Giám sát ô nhiễm

AI giám sát chất lượng không khí và nước, giúp giảm thiểu ô nhiễm. Một số công cụ và nền tảng sử dụng AI cho Giám sát ô nhiễm:

  • PollutionTracker: PollutionTracker là một nền tảng AI tập trung vào giám sát khí thải công nghiệp. Nó sử dụng các thuật toán AI để phân tích dữ liệu khí thải từ các nhà máy và khu công nghiệp. Điều này giúp các ngành công nghiệp tối ưu hóa quy trình của họ để giảm ô nhiễm và tuân thủ các quy định môi trường.
  • WaterBot: WaterBot là một hệ thống giám sát chất lượng nước sử dụng AI cho các nguồn nước như hồ và sông. Nó sử dụng AI để phân tích dữ liệu nước và xác định các nguồn ô nhiễm. Điều này hỗ trợ các cơ quan và tổ chức môi trường thực hiện các biện pháp cải thiện chất lượng nước.

56. Theo dõi động vật hoang dã

AI theo dõi chuyển động và hành vi của động vật hoang dã để hỗ trợ các nỗ lực bảo tồn. Một số công cụ và nền tảng sử dụng AI cho Theo dõi động vật hoang dã:

  • Movebank: Movebank là một nền tảng toàn cầu sử dụng AI để theo dõi chuyển động của động vật hoang dã, bao gồm chim, động vật có vú và các loài biển. Các nhà nghiên cứu có thể tải lên và phân tích dữ liệu theo dõi từ các thiết bị khác nhau, cho phép nghiên cứu các mô hình di cư, hành vi và nhu cầu bảo tồn.
  • eMammal: eMammal là một nền tảng được hỗ trợ bởi AI cho việc theo dõi các loài động vật có vú trên cạn. Các nhà nghiên cứu triển khai các bẫy camera trong tự nhiên và AI giúp nhận dạng và theo dõi các loài động vật dựa trên hình ảnh được chụp. Điều này hỗ trợ nghiên cứu về dân số và hành vi của động vật có vú.

57. Tối ưu hóa năng lượng

AI tối ưu hóa tiêu thụ năng lượng trong các tòa nhà và quy trình công nghiệp. Một số công cụ và nền tảng sử dụng AI cho Tối ưu hóa năng lượng:

  • GridPoint: GridPoint cung cấp một nền tảng quản lý năng lượng thương mại và công nghiệp dựa trên AI. Nó sử dụng phân tích dữ liệu theo thời gian thực và các thuật toán AI để tối ưu hóa tiêu thụ năng lượng, giảm chi phí và tăng cường bền vững. GridPoint cung cấp thông tin chi tiết về việc sử dụng năng lượng trên các cơ sở, giúp dễ dàng xác định và thực hiện các biện pháp tiết kiệm năng lượng.
  • BuildingIQ: BuildingIQ cung cấp một nền tảng quản lý năng lượng dựa trên AI cho các tòa nhà thương mại. Nó liên tục phân tích dữ liệu tòa nhà, dự báo thời tiết và mô hình sử dụng để tối ưu hóa các hệ thống HVAC. Điều này giúp tiết kiệm năng lượng mà không ảnh hưởng đến sự thoải mái.

58. Dự báo chất lượng không khí

AI dự báo chất lượng không khí, hỗ trợ quy hoạch đô thị và các sáng kiến y tế. Một số công cụ và nền tảng sử dụng AI cho Dự báo chất lượng không khí:

  • Plume Labs’ Air Report: Plume Labs cung cấp ứng dụng Air Report, sử dụng AI để cung cấp dự báo chất lượng không khí và dữ liệu theo thời gian thực cho các thành phố trên toàn thế giới. Người dùng có thể nhận thông báo và khuyến nghị dựa trên điều kiện chất lượng không khí hiện tại và dự báo. Ứng dụng cũng giúp cá nhân lập kế hoạch cho các hoạt động ngoài trời và giảm tiếp xúc với ô nhiễm.
  • IBM Watson Environmental Insights: IBM’s Watson Environmental Insights sử dụng AI và các cảm biến IoT để giám sát và dự báo chất lượng không khí trong các thành phố. Nó cung cấp thông tin chi tiết cho các nhà quy hoạch đô thị, giúp họ tối ưu hóa quản lý giao thông, các dự án xây dựng và giao thông công cộng để giảm thiểu khí thải và cải thiện chất lượng không khí.

59. Quản lý tài nguyên nước

AI quản lý tài nguyên nước và dự đoán các vấn đề liên quan đến nước. Một số công cụ và nền tảng sử dụng AI cho Quản lý tài nguyên nước:

  • WaterSmart Software: WaterSmart Software cung cấp các giải pháp dựa trên AI cho các tiện ích nước và người tiêu dùng. Nền tảng của họ sử dụng học máy để phân tích các mô hình tiêu thụ nước và phát hiện các bất thường. Nó cung cấp các tiện ích nước với thông tin chi tiết để cải thiện quản lý tài nguyên và giúp người tiêu dùng tiết kiệm nước.
  • IBM Watson Decision Platform for Agriculture: Mặc dù chủ yếu tập trung vào nông nghiệp, IBM’s Watson Decision Platform có thể được điều chỉnh cho quản lý tài nguyên nước. Nền tảng này kết hợp AI, dữ liệu thời tiết, cảm biến IoT và thông tin lịch sử để cung cấp thông tin chi tiết về sử dụng nước và thực hành tưới tiêu. Nó giúp tối ưu hóa tài nguyên nước trong nông nghiệp, giảm lãng phí nước.

60. Phân tích đất

AI phân tích thành phần và chất lượng đất cho nông nghiệp và nghiên cứu môi trường. Một số công cụ và nền tảng sử dụng AI cho Phân tích đất:

  • Agrible’s Morning Farm Report: Agrible’s Morning Farm Report là một nền tảng dựa trên AI được thiết kế cho nông nghiệp chính xác. Nó sử dụng học máy để phân tích dữ liệu đất, điều kiện thời tiết và thông tin cây trồng để cung cấp các thông tin có thể hành động cho nông dân. Nền tảng giúp tối ưu hóa lịch trình trồng, tưới tiêu và sử dụng phân bón dựa trên điều kiện đất.
  • Terralytic’s Soil Testing Sensors: Terralytic cung cấp dịch vụ kiểm tra đất bao gồm các cảm biến đất sử dụng AI. Các cảm biến này được đặt trong đất và liên tục giám sát các điều kiện đất, cung cấp dữ liệu theo thời gian thực về độ ẩm, nhiệt độ và dinh dưỡng. Các thuật toán AI phân tích dữ liệu này để tạo ra các báo cáo chi tiết về đất cho nông dân và các nhà nghiên cứu.
  • SoilCares Scanner: SoilCares cung cấp một máy quét đất dựa trên AI có thể phân tích mẫu đất tại chỗ. Nông dân và các nhà nghiên cứu có thể sử dụng thiết bị cầm tay này để nhanh chóng đánh giá các điều kiện đất, bao gồm mức độ dinh dưỡng, pH và hàm lượng chất hữu cơ. Phần mềm AI giải thích kết quả quét và cung cấp các khuyến nghị cho quản lý đất.
Xem thêm tuyển dụng IT mới nhất tại TopDev

Pagination là gì? Các loại phân trang thường gặp

Bài viết được sự cho phép của tác giả Duy Phan

Phân trang – một thành phần không thể thiếu trong các ứng dụng có lượng dữ liệu lớn. Tuy nhiên, bạn hiểu được bao nhiêu về nó?

Phân trang là gì?

Đơn giản nó là cách chúng ta chunk dữ liệu thành từng page nhỏ trong trường hợp lượng dữ liệu lớn và hầu như không thể hiển thị hết trên một trang.

Về phía backend, khi có quá nhiều mục cần tải sẽ làm quá tải hệ thống, gây ảnh hưởng tới kết nối của những người dùng khác. Đây là một vấn đề lớn về hiệu suất.

Các loại phân trang thường gặp

Theo kinh nghiệm sử dụng của mình thì mình chia pagination thành 3 loại.

1. Numbered pages

Hay còn gọi là phân trang có đánh số. Google Search đang sử dụng cách phân trang này.

Numbered pages

Phân trang đánh số này thường được sử dụng trong trường hợp các dữ liệu thường không có sự thay đổi quá thường xuyên.

Khi bạn nói với ai đó “Ồ, tôi đang mở trang thứ 3” thì bạn đang mong muốn dữ liệu ở trang thứ 3 này nhất quán ở cả phía bạn và người khác.

Hình thức phân trang này cũng có cái lợi là người dùng sẽ biết được trang cuối cùng là bao nhiêu (mặc dù mình nghĩ chẳng bao giờ họ navigate tới tận trang cuối đó).

2. Sequential pages

Hay còn gọi là phân trang tuần tự.

Sequential pages

Thường sử dụng cho các trang web hay ứng dụng trên điện thoại do không gian nhỏ, hoặc khi mà dữ liệu người dùng thay đổi nhanh đến mức việc đánh số trang chẳng có ý nghĩa gì nữa.

  Kỹ thuật phân trang với PHP và MySQL

  Thư viện Driver.js tạo hướng dẫn tương tác trang web

3. Infinite scroll

Cuộn, cuộn, cuộn và cuộn.

Hình thức này kết hợp với Loading Skeleton tạo ảo giác trang của bạn rất dài, và nội dung được hiển thị liên tục.

Lúc này, người dùng không còn quan tâm tới việc đang ở trang nào, họ chỉ cần cuộn để có thêm nội dung.

Ví dụ đơn giản nhất là các trang Twitter, Facebook, Reddit, Tiktok…

Infinite scroll

Có vẻ như hầu hết các ứng dụng hiện đại ngày nay đều sử dụng cách 2 hoặc 3 (đôi khi kết hợp chúng với nhau) khi mà có càng nhiều thuật toán render dữ liệu người dùng thay đổi liên tục, điều này khiến cho việc đánh số trang càng ngày càng mất ý nghĩa.

Mặc dù cách phân trang đánh số thứ tự thường không hữu dụng mấy cho các ứng dụng hiện đại so với các mô hình phân trang còn lại, tuy nhiên nó lại là cách dễ triển khai nhất trong các hệ thống cơ sở dữ liệu 😀

Xem thêm tuyển dụng PHP lương cao trên TopDev

Numbered pages

Ai đã dùng SQL trước đây đều biết cách implement nó một cách đơn giản như sau:

// Chúng ta muốn load nội dung cho page thứ 3, giới hạn mỗi page 100 phần tử
// ==> Chúng ta cần load 100 phần tử, bắt đầu từ sau phần tử thứ 200
SELECT * FROM users ORDER BY id DESC LIMIT 100 OFFSET 200;

Khi bạn muốn biết tổng số phần tử của các trang, bạn có thể thực hiện thêm một câu truy vấn khác:

SELECT COUNT(*) AS total_items FROM users;

Khá là đơn giản đúng không 😀

Nhiều ứng dụng vẫn sử dụng cách phân trang này cho dù nó không có bao nhiêu ý nghĩa. Thử nghĩ mà xem, bạn chỉ cần cung cấp 2 tham số skip và limit là xong chuyện.

Để triển khai với REST, bạn chỉ cần thêm 1 tham số page vào query params là xong (mặc định Laravel dùng cách này).

GET http://localhost:3008/users?page=2

Để triển khai với GraphQL cũng khá đơn giản:

{
  users(page: 2) {
    id
    name
    roles {
      id
      name
    }
  }
}

Hạn chế của việc đánh số trang

Đối với các nội dung tĩnh hoặc ít khi thay đổi, đánh số trang là phương pháp tuyệt vời. Nhưng đối với các ứng dụng hiện đại ngày nay, việc đánh số trang đã không còn phù hợp. Các items đôi khi được thêm vào hoặc dịch chuyển đi mất trong khi người dùng đang nhảy tới các trang khác nhau.

  • Bỏ qua một vài items quan trọng: đôi khi người dùng sẽ bỏ qua mất một vài mục quan trọng khi mà chúng được thêm vào hoặc chuyển đi trong khi người dùng đang nhảy qua các trang.
  • Hiển thị một mục 2 lần: tương tự, do nội dung giữa các trang có thể bị thay đổi khi chúng ta thêm vào hoặc xóa đi một vài items, người dùng có thể thường xuyên gặp tình trang nhìn thấy một số items nhiều lần.

Có một giải pháp nào tốt nhất không?

Thực ra, không có cách nào là tốt nhất cả. Cái bạn cần quan tâm là đối tượng sử dụng ứng dụng của bạn là ai, và lúc này bạn sẽ lựa chọn hướng xử lý tốt nhất về UX cho các đối tượng đó.

Như blog này của mình, dữ liệu đâu được bao nhiêu, vậy nên mình vẫn sử dụng cách đơn giản nhất là phân trang có đánh số :D.

Trên tất cả, cần có một sự cân bằng giữa việc đơn giản hoá quá trình thực hiện – cải thiện hiệu suất – cũng như UX đẹp mắt, dễ sử dụng.

Bài viết gốc được đăng tải tại duypt.dev

Xem thêm:

Tìm việc làm IT mới nhất trên TopDev

Không biết gì về máy tính có nên học CNTT (Giải đáp chi tiết)

Hiện nay, ngành Công nghệ Thông tin (CNTT) đang trở thành một trong những lĩnh vực được quan tâm hàng đầu. Với sự phát triển nhanh chóng của công nghệ, nhiều người – đặc biệt là các bạn trẻ đang cân nhắc về việc học CNTT, kể cả những người chưa có kiến thức nền tảng về máy tính. Câu hỏi “Không biết gì về máy tính có nên học CNTT?” ngày càng xuất hiện nhiều trên các diễn đàn và cộng đồng trực tuyến.

Đây là một quyết định quan trọng, đòi hỏi sự cân nhắc kỹ lưỡng. Bài viết này sẽ đi sâu vào phân tích các khía cạnh của vấn đề, từ cơ hội và thách thức trong ngành CNTT, đến những lợi thế và khó khăn khi bắt đầu từ con số 0. Chúng ta sẽ cùng tìm hiểu xem liệu việc thiếu kiến thức về máy tính có thực sự là rào cản, hay đó có thể là một cơ hội để bắt đầu một hành trình mới đầy hứa hẹn trong thế giới công nghệ.

Không biết gì về máy tính có nên học CNTT

Những cơ hội cho người theo học CNTT

Ngành Công nghệ thông tin (CNTT) đang là một trong những ngành học nóng hổi và thu hút đông đảo sinh viên theo học bởi những tiềm năng phát triển và cơ hội việc làm rộng mở. Nếu bạn đang quan tâm đến ngành học này, hãy cùng khám phá những cơ hội tuyệt vời mà CNTT mang lại:

Cơ hội nghề nghiệp đa dạng

Ngành CNTT mang đến cho bạn nhiều lựa chọn nghề nghiệp phong phú. Nếu bạn yêu thích phát triển phần mềm, bạn có thể trở thành lập trình viên, kỹ sư phần mềm hoặc kiểm thử phần mềm. Trong lĩnh vực quản trị hệ thống và mạng, bạn có thể trở thành quản trị hệ thống, quản trị mạng hoặc chuyên viên an ninh mạng. Những ai đam mê dữ liệu có thể theo đuổi các vị trí như chuyên viên phân tích dữ liệu hay kỹ sư dữ liệu. Thiết kế và phát triển web cũng là một lĩnh vực hứa hẹn với các vị trí lập trình viên web, chuyên viên UI/UX, và game design. Ngoài ra, còn rất nhiều cơ hội khác trong quản lý dự án CNTT, tư vấn CNTT, giảng dạy và nghiên cứu.

Mức lương hấp dẫn

Một trong những yếu tố hấp dẫn nhất của ngành CNTT là mức lương cạnh tranh. Ngay cả đối với những vị trí entry-level, mức lương khởi điểm thường cao hơn đáng kể so với nhiều ngành nghề khác. Hơn nữa, với sự phát triển của kỹ năng và kinh nghiệm, mức lương có thể tăng nhanh chóng. Các chuyên gia CNTT có kinh nghiệm và kỹ năng cao thường nhận được những gói đãi ngộ rất hấp dẫn, bao gồm cả lương thưởng và các phúc lợi khác.

NHU CẦU NHÂN LỰC IT TẠI VIỆT NAM 2018 - 2025(NGÀNH PHẦN MỀM)
NHU CẦU NHÂN LỰC IT TẠI VIỆT NAM 2018 – 2025 (NGÀNH PHẦN MỀM)

Nhu cầu nhân lực cao

Theo báo cáo thị trường IT Việt Nam năm 2023 do TopDev phát hành, Việt Nam sẽ thiếu hụt khoảng 200.000 nhân lực trong ngành CNTT vào năm 2025. Điều này cho thấy nhu cầu tuyển dụng nhân lực cho ngành CNTT trong thời gian tới là rất cao, mở ra nhiều cơ hội việc làm cho những người theo học ngành này.

Cơ hội làm việc toàn cầu

CNTT là một ngành có tính quốc tế cao. Kỹ năng trong lĩnh vực này có thể áp dụng ở bất kỳ đâu trên thế giới, mở ra cơ hội làm việc tại nước ngoài hoặc làm việc từ xa cho các công ty quốc tế. Điều này không chỉ mang lại trải nghiệm văn hóa đa dạng mà còn tạo cơ hội phát triển sự nghiệp trên phạm vi toàn cầu. Nhiều chuyên gia CNTT có thể làm việc cho các dự án quốc tế mà không cần rời khỏi đất nước của mình.

Khả năng làm việc từ xa

Ngành CNTT đặc thù với tính linh hoạt, đặc biệt là khả năng làm việc từ xa. Với sự hỗ trợ của công nghệ, bạn có thể làm việc từ bất cứ đâu trên thế giới mà không cần phải đến văn phòng. Điều này không chỉ giúp bạn tiết kiệm thời gian di chuyển mà còn tạo ra sự cân bằng tốt hơn giữa cuộc sống cá nhân và công việc. Khả năng làm việc từ xa cũng mở ra nhiều cơ hội làm việc cho các công ty quốc tế mà không cần phải di chuyển.

Cơ hội khởi nghiệp

Ngành CNTT cung cấp nhiều cơ hội khởi nghiệp cho những ai có ý tưởng sáng tạo và muốn tự lập. Bạn có thể tạo ra các sản phẩm công nghệ mới, từ ứng dụng di động, phần mềm đến các dịch vụ công nghệ đột phá. Khởi nghiệp trong lĩnh vực CNTT không chỉ mang lại cơ hội tài chính lớn mà còn giúp bạn thỏa sức sáng tạo và phát triển cá nhân.

  Học IT có khó không? 6 khó khăn khi theo học ngành CNTT

  Lộ trình học công nghệ thông tin hiệu quả cho người mới bắt đầu

Những thách thức khi theo đuổi ngành CNTT

Bên cạnh những cơ hội hấp dẫn, ngành Công nghệ thông tin (CNTT) cũng đặt ra một số thách thức cho người theo học. Dưới đây là một số thách thức phổ biến nhất:

Cạnh tranh khốc liệt

Ngành CNTT luôn thu hút nhiều người, từ sinh viên mới ra trường đến những chuyên gia đã có kinh nghiệm. Điều này tạo ra môi trường cạnh tranh rất cao. Để nổi bật và có cơ hội thăng tiến, bạn cần phải không ngừng nâng cao kỹ năng, tích lũy kinh nghiệm thực tế và chứng tỏ khả năng của mình. Việc này đôi khi có thể gây áp lực lớn và yêu cầu bạn phải nỗ lực hết mình.

Những thách thức khi theo đuổi ngành CNTT

Yêu cầu học hỏi liên tục

Ngành CNTT phát triển với tốc độ chóng mặt, đòi hỏi người làm việc phải không ngừng cập nhật kiến thức và kỹ năng mới. Công nghệ, ngôn ngữ lập trình, và xu hướng mới xuất hiện thường xuyên, có thể khiến kiến thức hiện tại nhanh chóng trở nên lỗi thời. Việc phải liên tục học hỏi có thể gây áp lực và đôi khi cảm giác quá tải cho nhiều người.

Áp lực công việc cao

Dự án CNTT thường có deadline gấp gáp và yêu cầu kỹ thuật phức tạp. Nhiều chuyên gia phải làm việc ngoài giờ để hoàn thành dự án đúng hạn. Áp lực này có thể dẫn đến stress và ảnh hưởng đến cân bằng giữa công việc và cuộc sống cá nhân.

Yêu cầu kỹ năng mềm cao

Mặc dù kỹ năng chuyên môn rất quan trọng, nhưng các kỹ năng mềm cũng không thể thiếu khi làm việc trong ngành CNTT. Bạn cần phải có khả năng làm việc nhóm, giao tiếp hiệu quả, quản lý thời gian và giải quyết vấn đề nhanh chóng. Việc phát triển các kỹ năng này đôi khi gặp khó khăn, đặc biệt đối với những người có xu hướng làm việc độc lập hoặc ít kinh nghiệm làm việc nhóm.

Việc làm IT Fresher dành cho bạn

Không biết gì về máy tính có nên học CNTT không?

Câu trả lời là hoàn toàn có thể! Ngành Công nghệ thông tin (CNTT) chào đón tất cả những ai đam mê với công nghệ, mong muốn học hỏi và phát triển bản thân, bất kể bạn có nền tảng về máy tính hay không.

Trong quá trình học tập bạn sẽ được đào tạo từ cơ bản đến nâng cao, thông qua nhiều bài học khác nhau giúp bạn nhanh chóng làm quen và thành thạo. Quan trọng hơn hết, CNTT là một lĩnh vực khác hoàn toàn với tin học văn phòng bạn được dạy ở trường, nên việc bạn không biết gì về máy tính sẽ không thành vấn đề.

Không biết gì về máy tính có nên học CNTT không?

Tuy nhiên, để thành công trong lĩnh vực này, bạn cần lưu ý một số điều sau:

Xác định đam mê và sự quyết tâm: Điều quan trọng nhất là bạn phải có niềm đam mê thực sự với CNTT. Nếu bạn không thực sự yêu thích lĩnh vực này, bạn sẽ khó có thể vượt qua những khó khăn và thử thách trong quá trình học tập và làm việc.

  • Sẵn sàng học hỏi: Ngành CNTT luôn thay đổi và phát triển không ngừng, vì vậy bạn cần có tinh thần học hỏi suốt đời. Hãy luôn chủ động tìm kiếm kiến thức mới, cập nhật xu hướng công nghệ mới nhất và trau dồi kỹ năng của bản thân.
  • Thực hành là chìa khóa: Lý thuyết là quan trọng, nhưng thực hành còn quan trọng hơn. Hãy tham gia các dự án thực tế, làm bài tập, và thực hành viết mã hàng ngày. Thực hành không chỉ giúp bạn củng cố kiến thức mà còn giúp bạn phát hiện ra các vấn đề thực tiễn và cách giải quyết chúng.
  • Tận dụng tài nguyên học tập: Có rất nhiều tài nguyên học tập miễn phí và trả phí dành cho người học CNTT. Các nền tảng như Coursera, Udemy, edX, Khan Academy, và Codecademy cung cấp các khóa học từ cơ bản đến nâng cao. Hãy tận dụng những tài nguyên này để học tập và nâng cao kiến thức của mình.
  • Kiên nhẫn và không bỏ cuộc: Học CNTT có thể rất khó khăn và đòi hỏi nhiều thời gian, công sức. Đừng nản lòng khi gặp phải những thử thách ban đầu. Hãy kiên nhẫn, cố gắng vượt qua khó khăn và không ngừng học hỏi. Thành công sẽ đến với những ai không bỏ cuộc.

Kết luận

“Không biết gì về máy tính có nên học CNTT?” câu trả lời chắc chắn là “CÓ” nếu bạn có đam mê và quyết tâm theo đuổi ngành CNTT. Mặc dù bạn sẽ đối mặt với nhiều thử thách, nhưng cơ hội và tiềm năng phát triển trong lĩnh vực này là rất lớn. Từ việc phát triển các kỹ năng tư duy logic, khả năng giải quyết vấn đề, đến việc tiếp cận với những cơ hội nghề nghiệp hấp dẫn và môi trường làm việc đa dạng, CNTT mang lại cho bạn một tương lai đầy hứa hẹn. Với sự nỗ lực và đam mê, bạn hoàn toàn có thể thành công trong lĩnh vực CNTT, bất kể điểm xuất phát của mình là gì.

Xem thêm:

Xem thêm việc làm IT hấp dẫn tại TopDev

Tuyển tập 25 câu hỏi phỏng vấn PostgreSQL thường gặp

Bài viết được sự cho phép của tác giả Nguyễn Thành Nam

I. Giới thiệu PostgreSQL

PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ và đối tượng (object-relational database management system) miễn phí và nguồn mở (RDBMS) tiên tiến nhất hiện nay, khả năng mở rộng cao và tuân thủ các tiêu chuẩn kỹ thuật. Nó được thiết kế để xử lý một loạt các khối lượng công việc lớn, từ các máy tính cá nhân đến kho dữ liệu hoặc dịch vụ Web có nhiều người dùng đồng thời.

PostgreSQL được phát triển dựa trên POSTGRES 4.2 tại phòng khoa học máy tính Berkeley, Đại học California.

PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy nhiên, PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.

PostgreSQL là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do. Theo đó, bạn sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức.

PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định cao. Do đó, nếu bạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn so với các hệ thống quản trị dữ liệu khác.

II. Câu hỏi phỏng vấn về PostgreSQL

1. Các tính năng trong PostgreSQL?

  • Toàn vẹn dữ liệu: Là ràng buộc loại từ, khóa khuyến nghị, Primary Keys, Foreign Keys,…
  • Kiểu dữ liệu: cấu trúc, nguyên hàm, hình học và tùy chỉnh
  • Hiệu suất, đồng quy: Những tính năng lập danh mục, lập danh mục nâng cao và trình lập kế hoạch,… chúng đều được thực hiện một cách tự động.
  • Các chức năng bảo mật: Bảo mật, xác thực, hệ thống kiểm soát truy cập mạnh mẽ, bảo mật cấp độ cột và hàng.
  • Khả năng tìm kiếm văn bản: Tìm kiếm đầy đủ những văn bản, hệ thống bao gồm các kỳ tự quốc tế thông qua ICU collations.
  • Khả năng mở rộng: PostgreSQL có phương pháp lưu trữ, ngôn ngữ thủ tục, tính năng kết nối cơ sở dữ liệu hoặc luồng khác với giao diện SQL chuẩn cùng với nhiều tính năng mở rộng vượt trội khác.

2. Multi-version Concurrency Control trong Postgres là gì?

Một trong những tính năng nổi bật của Postgres đó là cách mà nó thực hiện điều khiển tương tranh giữa các transaction, nghĩa là read sẽ không bao giờ chặn write và ngược lại. Nói một cách dễ hình dung hơn, nếu hai transaction thực thi cùng một lúc thì nguyên tắc thực thi là thực thi độc lập, Postgres thực hiện được điều này là nhờ một cơ chế gọi là Multi Version Concurrency Control (MVCC).

3. Làm thế nào để đánh chỉ mục trong Postgres?

Chỉ mục (Indexex) là các hàm có sẵn trong Postgres được sử dụng cho các truy vấn tìm kiếm để đạt hiệu quả cao hơn đối với một bảng trong cơ sở dữ liệu. Giả sữ rằng bạn có một bảng với hàng ngìn bản ghi và câu truy vấn của bạn thì chỉ có vài bản ghi là phù hợp với điều kiện, như vậy sẽ mất rất nhiều thời gian để tìm và trả về nững hàng thoả mã điều kiện này vì nó phải thực hiện hoạt động tìm kiếm trên từng hàng đơn lẻ.

Điều này chắc chắn không hiệu quả đối với một hệ thống xử lý dữ liệu khổng lồ. Bây giờ nếu hệ thống này có một chỉ mục trên cột mà chúng ta đang áp dụng tìm kiếm, nó có thể sử dụng một phương pháp hiệu quả để xác định các hàng phù hợp bằng cách chỉ đi qua một vài cấp độ. Đây được gọi là lập chỉ mục (indexing).

SELECT * FROM some_table WHERE table_col=120

4. Làm thế nào để thay đổi kiểu dữ liệu của cột?

Có thể sử dụng lệnh ALTER TABLE như bên dưới

ALTER TABLE tname
ALTER COLUMN col_name [SET DATA] TYPE new_data_type;

5. Tạo cơ sở dữ liệu trong Postgres?

Cú pháp tạo cơ sở dữ liệu trong Postgres trong psql là:

CREATE DATABASE db_name;

6. Cách để khởi động, dừng và khởi động lại trong PostgreSQL Server?

  • Để khởi động Postgres server:
service postgresql start
  • Sau khi server khởi động thành công, sẽ có thông báo như sau:
Starting PostgreSQL: ok
  • Để khởi động lại Postgres server:
service postgresql restart
  • Nếu khởi động lại thành công:
Restarting PostgreSQL: server stopped
ok
  • Để dừng server, ta chạy lệnh:
service postgresql stop
  • Nếu dừng thành công:
Stopping PostgreSQL: server stopped
ok

7. Các kiểu partioned table?

Partitioned table là một cấu trúc logic được dùng cho chia một bảng lớn thành các cấu trúc nhỏ hơn gọi là partition. Cách tiếp cận này được dùng để tăng hiệu suất truy vấn khi làm việc với bảng cơ sở dữ liệu lớn. Để tạo một partition, một khoá gọi là khoá phân vùng được dùng cho các cột hoặc biểu thức, và một phương thức phân vùng cần định nghĩa. Có 3 kiểu phương thức phân vùng có sẵn được cung cấp bởi Postgres:

  • Range Partitioning: Phương pháp này được thực hiện bằng cách phân vùng dựa trên một loạt các giá trị. Phương pháp này được sử dụng phổ biến nhất dựa trên các trường ngày tháng để lấy dữ liệu hàng tháng, hàng tuần hoặc hàng năm. Trong trường hợp như giá trị thuộc phần cuối của phạm vi, ví dụ: nếu phạm vi của phân vùng 1 là 10-20 và phạm vi của phân vùng 2 là 20-30 và giá trị đã cho là 10, thì 10 thuộc về đến phân vùng thứ hai chứ không phải phân vùng đầu tiên.
  • List Partitioning: Phương pháp này được sử dụng để phân vùng dựa trên danh sách các giá trị đã biết. Thường được sử dụng nhất khi chúng ta có key có giá trị phân loại. Ví dụ: nhận dữ liệu bán hàng dựa trên các khu vực được chia thành quốc gia, thành phố hoặc tiểu bang.
  • Hash Partitioning: Phương pháp này sử dụng một hàm băm trên khoá phân vùng. Điều này được thực hiện khi không có yêu cầu cụ thể nào đối với việc phân chia dữ liệu và được sử dụng để truy cập dữ liệu riêng lẻ. Ví dụ: bạn muốn truy cập dữ liệu dựa trên một sản phẩm cụ thể, thì việc sử dụng phân vùng băm sẽ dẫn đến tập dữ liệu đã yêu cầu.

Loại khoá phân vùng và loại phương pháp được sử dụng để phân vùng xác định mức độ tích cực của hiệu suất và mức độ quản lý của bảng được phân vùng.

  Dùng Python viết hàm xử lý dữ liệu dưới tầng database cho PostgreSQL

  So sánh RDBMS và NoSQL. Nên sử dụng loại CSDL nào cho dự án của bạn?

8. Token trong Postgres?

Token trong Postgres là một từ khoá, tên định danh, hằng, hay bất kỳ ký hiệu nào cho tính riêng biệt. Nó có thể được phân chia (hoặc không) bằng khoảng trắng, tab hay xuống dòng. Nếu token là từ khoá, nó thường là một lệnh hữu ích. Token có thể được tạo bằng bất kỳ code PostgreSQL nào.

9. Câu lệnh TRUNCATE là gì?

Lệnh TRUNCATE TABLE name_of_table xoá dữ liệu một cách hiệu quả và nhanh chóng khỏi bảng.

TRUNCATE TABLE name_of_table
RESTART IDENTITY;

Ta còn có thể dùng lệnh cho xoá nhiều bảng cùng lúc như sau:

TRUNCATE TABLE
   table_1,
   table_2,
   table_3;

10. Dung lượng của một bảng trong Postgres?

Kích cỡ lớn nhất cho một bản là 32TB.

Tham khảo việc làm MySQL Hồ Chí Minh hấp dẫn

11. Sequence trong Postgres?

Sequence là một đối tượng dữ liệu trong PostgreSQL, được sử dụng để tạo ra chuỗi các số tự nhiên (integer) theo 1 quy tắc nhất định. Để tạo 1 Sequece chúng ta sử dụng câu lệnh SQL là: CREATE SEQUENCE

CREATE SEQUENCE serial_num START 100;

Để lấy số 101 trong sequence, ta sử dụng phương thức nextval():

SELECT nextval('serial_num');

Ta cũng có thể dùng sequence trong khi chèn bản ghi:

INSERT INTO ib_table_name VALUES (nextval('serial_num'), 'interview');

12. Chuỗi trong Postgres?

Nó là một chuỗi ký tự nằm trong dấu nháy đơn. Nó được dùng trong suốt quá trình thêm hay cập nhật ký tự trong cơ sở dữ liệu.

Chuỗi hằng nằm trong dấu dollar. Cú pháp $tag$<string_constant>$tag$. Thẻ trong hằng là tuỳ chọn và có thể không cần chỉ định, hằng còn được gọi là một vòng lặp chuỗi dollar kép.

13. Hiện thị tất cả cơ sở dữ liệu trong Postgres?

Trong psql dùng lệnh \l để xem tất cả cơ sở dữ liệu.

14. Xoá cơ sở dữ liệu trong Postgres?

Cú pháp xoá cơ sở dữ liệu như sau:

DROP DATABASE database_name;

15. Thuộc tính ACID là gì?

ACID (viết tắt của Atomicity, Consistency, Isolation, Durability) là tính chất trong đó bao gồm tập hợp của 4 đặc tính khác nhau áp dụng cho một database transaction.

  • Atomicity quy định rằng tất các hành động của một transaction cần được thực hiện thành công hoặc ngược lại nếu có một hành động không được thực hiện thì sẽ không có bất cứ hành động nào khác được thực hiện thành công.
  • Consistency quy định tại bất kỳ thời điểm nào, trước hoặc sau một transaction được thực hiện dù lỗi hay không lỗi, thì cơ sở dữ liệu vẫn phải được giữ ở trạng thái hợp lệ (ví dụ dữ liệu phải phù hợp với các quy định được định nghĩa cho cơ sở dữ liệu).
  • Isolation quy định từng transaction khác nhau cần phải được thực hiện trong một môi trường độc lập, nếu có 2 transaction diễn ra tại cùng một thời điểm thì cần một cơ chế đảm bảo transaction này không ảnh hưởng tới transaction khác.
  • Durability quy định rằng khi transaction được diễn ra (thành công hoặc rollback lại khi có lỗi) thì sau đó dù có bất cứ sự cố nào diễn ra với cơ sở dữ liệu (mất điện, server tràn bộ nhớ…) thì khi được khôi phục lại thì dữ liệu được khôi phục sẽ giữ nguyên trạng thái trước khi có sự cố (đảm bảo không có bất cứ transaction trước đó không bị mất).

PostgreSQL tuân theo các thuộc tính ACID.

Thuộc tính ACID

16. Giải thích kiến trúc của Postgres?

  • Kiến trúc Postgres theo mô hình client-server.
  • Phía server bao gồm process manager (đơn vị quản lý tiến trình nền), query processer (trình xử lý truy vấn), utilities processer (trình xử lý đơn vị) và bộ nhớ chung, cùng nhay tạo nên thực thể Postgres cho phép truy cập dữ liệu. Ứng dụng client thực hiện việc kết nối với thực thể này và gửi yêu cầu xử lý dữ liệu đến dịch vụ. Client có thể là GUI hoặc ứng dụng web. Ứng dụng client phổ biến với Postgres là pgAdmin.

kiến trúc của Postgres

17. Lệnh enable-debug là gì?

Lệnh enable-debug được dùng để cho pehsp biên dịch toàn bộ thư viện và ứng dụng. Khi nó được kích hoạt, các tiến trình hệ thống bị cản trở và làm file nhị phân tăng kích thước lên. Do đó, không nên bật nó trong môi trường production. Nó chủ yếu được dùng để debug cho các dev phát hiện ra vấn đề của họ.

18. Cách kiểm tra các hàng bị ảnh hưởng từ transactions trước đó?

Các tiêu chuẩn SQL nêu rõ rằng ba hiện tượng sau nên được ngăn chặn trong khi thực hiện các transactions đồng thời:

  • Dirty Reads điều này xảy ra khi một transaction tiến hành đọc dữ liệu mà chưa được commited. Ví dụ: transaction A cập nhập 1 dữ liệu, transaction B đọc dữ liệu sau khi A cập nhật xong. Nhưng vì lý do nào đó A không commit thành công, dự liệu quay trở lại trạng thái ban đầu, khi đó dữ liệu của B trở thành Dirty.
  • Nonrepeatable reads xảy ra khi một transaction đọc cùng 1 dữ liệu 2 lần nhưng lại nhận được giá trị khác nhau. Ví dụ: transaction A đọc 1 dữ liệu, transaction B cập nhật xóa dữ liệu đó. Nếu A đọc lại dữ liệu đó nó sẽ lấy các giá trị là khác nhau.
  • Phantom reads là rủi ro xảy ra với lệnh read có điều kiện. Ví dụ: giả sử transaction A đọc một tập hợp các dữ liệu đáp ứng một số điều kiện tìm kiếm, transaction B tạo ra một dữ liệu mới khớp với điều kiện được tìm kiếm cho transaction A. Nếu A thực hiện lại với điều kiện như vậy thì nó sẽ nhận dc một tập hợp các dữ liệu là không đồng nhất.

Các tiêu chuẩn SQL xác định 4 cấp độ độc lập transactions để ứng phó với những hiện tượng này. 4 cấp độ theo tiêu chuẩn SQL là:

  • Read uncommitted: khi transaction thực hiện ở mức này, các truy vấn vẫn có thể truy nhập vào các bản ghi đang được cập nhật bởi một transaction khác và nhận được dữ liệu tại thời điểm đó mặc dù dữ liệu đó chưa được commit. Nếu vì lý do nào đó transaction ban đầu rollback lại những cập nhật, dữ liệu sẽ trở lại giá trị cũ. Khi đó transaction thứ hai nhận được dữ liệu sai.
  • Read committed: transaction sẽ không đọc được dữ liệu đang được cập nhật mà phải đợi đến khi việc cập nhật thực hiện xong. Vì thế nó tránh được dirty read như ở mức trên.
  • Repeatable read: mức isolation này hoạt động nhứ mức read commit nhưng nâng thêm một nấc nữa bằng cách ngăn không cho transaction ghi vào dữ liệu đang được đọc bởi một transaction khác cho đến khi transaction khác đó hoàn tất.
  • Serializable: đây là mức cao nhất của isolation levels, đảm bảo read và write locks. Trong trường hợp phép read có mệnh đề điều kiện, Serializable cũng cần đòi hỏi range lock để tránh phantom reads.

Bảng dưới đây mô tả rõ hơn:

Isolation level Dirty Read Phantom Read Non-repeatable read
Read Uncommitted Có thể xảy ra Có thể xảy ra Có thể xảy ra
Read Committed Không thể xảy ra Có thể xảy ra Có thể xảy ra
Repeatable Read Không thể xảy ra Có thể xảy ra Không thể xảy ra
Serializable Không thể xảy ra Không thể xảy ra Không thể xảy ra

19. WAL là gì?

Write Ahead Logging là một tính năng làm tăng độ tin cậy của cơ sở dữ liệu bằng cách ghi log các thay đổi trước khi thực hiện bất kỳ thay đổi nào đối với cơ sở dữ liệu. Điều này đảm bảo rằng ta có đủ thông tin để khi sự cố cơ sở dữ liệu xảy ra (mất điện, process postmaster bị kill) ta có thể xác định xem công việc đã hoàn thành ở điểm nào và đưa ra điểm bắt đầu từ thời điểm nó bị ngừng hoạt động.

20. Hạn chế của lệnh DROP TABLE?

Lệnh DROP TABLE xoá hoàn toàn dữ liệu một bảng cùng với cấu trúc của bảng đó. Trong trường hợp ta chỉ muốn xoá dữ liệu và dùng lại cấu trúc bảng để lưu trữ thì nó rất bất tiện, lời khuyền là dùng TRUNCATE cho những trường hợp này.

21. Tìm kiếm không phân biệt hoa thường trong Postgres?

Để thực hiện tìm kiếm không phân biệt hoá thường với các biểu thức chính thống trong Postgres, ta có thể dùng biểu thức POSIX (~*). Ví dụ:

'interview' ~* '.*INTervIew.*'

22. Backup cơ sở dữ liệu trong Postgres?

Ta có thể thực hiện bằng công cụ pg_dump để kết xuất tất cả nội dụng từ cơ sở dữ liệu vào một file duy nhất. Các bước bao gồm:

Bước 1: Vào thư mục gốc của Postgres:

C:\>cd C:\Program Files\PostgreSQL\10.0\bin

Bước 2: Thực thi chương trình pg_dump để kết xuất dữ liệu:

pg_dump -U postgres -W -F t sample_data > C:\Users\admin\pgbackup\sample_data.tar

Cơ sở dữ liệu được kết xuất sẽ được lưu trữ ở file sample_data.tar ở vị trí cụ thể.

Full-text search (FTS) là một kỹ thuật tìm kiếm kết quả trên cơ sở dữ liệu chứa “toàn bộ” các kí tự (text) của một hoặc một số tài liệu, bài báo,…(document), hoặc là của website. Nó được hỗ trợ trong các hệ thống cơ sở dữ liệu nâng cao như SOLR hoặc ElasticSearch. Tuy nhiên, hiện tại Postgres cũng hỗ trợ khá cơ bản tính năng này.

24. Truy vấn song song trong Postgres?

Là một tính năng được cung cấp trong PostgreSQL để đưa ra các kế hoạch truy vấn có khả năng khai thác nhiều bộ xử lý CPU để thực hiện các truy vấn nhanh hơn.

Truy vấn song song trong Postgres

25. Giải thích về Triggers?

Trigger là một thủ tục SQL được thực thi ở phía server khi có một sự kiện như Insert, Delete, hay Update. Trigger là một loại stored procedure đặc biệt (không có tham số) được thực thi (execute) một cách tự động khi có một sự kiện thay đổi dữ liệu (data modification). Trigger được lưu trữ và quản lý trong Server DB, được dùng trong trường hợp ta muốn kiểm tra các ràng buộc toàn vẹn trong DB.

26. Sự khác biệt giữa commit và checkpoint?

Hành động commit đảm bảo sự nhất quán dữ liệu của transaction được duy trì và nó kết thúc transaction hiện tại. Commit thêm một bản ghi vào log và mô tả là COMMIT trong bộ nhớ. Trong khi đó, checkpoint là cơ chế đồng bộ dữ liệu cập nhật (đã commit) từ bộ nhớ đệm xuống dưới đĩa cứng.

Bài viết gốc được đăng tải tại blog.thanhnamnguyen.dev

Xem thêm:

Đừng bỏ lỡ nhiều việc làm IT hấp dẫn trên TopDev nhé!

.env và những hệ lụy khi sử dụng

Bài viết được sự cho phép của tác giả Tống Xuân Hoài

Vấn đề

Có một lời khuyên là cấu hình nào có thể thay đổi tùy theo môi trường triển khai (deploy) thì nên đưa nó ra thành biến môi trường (Os Environment). Như vậy thì thông thường, chúng ta sẽ có một file .env để lưu trữ lại những biến đó, .env thường được nằm trong .gitignore và nó chỉ được tạo ra khi triển khai ứng dụng lên môi trường Internet hoặc khởi chạy trên máy local. Một tệp .env có thể trông giống như sau:

DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=password
...

Sau này, chúng ta cần .env linh hoạt hơn, có thể thay đổi tùy theo một biến môi trường truyền vào. Ví dụ như nó có thể thay đổi thông qua biến NODE_ENV. Lúc đó ta lại có .env.local, .env.development, .env.production… Mà khi khởi chạy, chỉ cần NODE_ENV=local node index.js thì .env.local sẽ tự động được sử dụng.

Một giải pháp khác so với cách dùng .env là lưu trữ lại cấu hình trong bất kì một tệp nào như là JavaScript, JSON, yml… cách dùng nó cũng tương tự như .env, có điều nó cho phép các cấu hình lồng nhau để dễ dàng phân vùng cấu hình một cách rõ ràng hơn. Nhưng chung quy lại, cả 2 vẫn là tạo ra các tệp lưu trữ biến môi trường.

Hiện tại, tôi vẫn đang sử dụng .env trong một số dự án mình tham gia, không thể phủ nhận được sự tiện lợi của .env. Tuy nhiên .env không phải là không có bất cập.

Đầu tiên là tính bảo mật. Các tệp .env không khác gì một file văn bản không mã hóa, vì thế bất kì ai cũng có thể đọc nó. Thậm chí mọi người thường hay sao chép hoặc gửi trực tiếp .env cho nhau thông qua một ứng dụng nhắn tin nào đó, khiến nội dung có thể bị lộ hoặc cố ý đẩy ra bên ngoài.

Các tệp .env không có phân quyền, nghĩa là bất kì ai cũng có thể truy cập vào được nếu xin phép, điều đó cũng vô tình tiết lộ tất cả nội dụng của tất cả các biến. Ví dụ, một bạn developer xin quyền khởi động project ở dưới máy local trỏ vào môi trường stagging, có thể chúng ta phải gửi toàn bộ nội dung .env ở môi trường stagging cho bạn ấy.

Vì .env là bí mật nên nó thường không được commit vào git. Nghĩa là lịch sử thay đổi các biến trong .env sẽ rất khó để có thể theo dõi thông qua công cụ này được. Hầu hết cách làm của chúng ta sẽ thêm một tệp gì đó như là .env.example để lưu lại những giá trị có thể có trong .env. Tuy nhiên cách làm này chỉ để biết được .env có gì chứ không quản lý được nội dung của .env. Nhiều lúc thêm một biến mới nhưng lại quên cập nhật trong các tệp môi trường khác lại khiến ứng dụng bị lỗi.

Thật tệ hại nếu như chúng ta lỡ tay commit .env vào trong dự án, hoặc quên mất trong .dockerignore… Đây là sai sót có yếu tố con người tuy nhiên lại là một trong những vấn đề gây ra rò rỉ thông tin bảo mật nếu không phát hiện sớm.

Vậy chúng ta có giải pháp nào tốt hơn không?

  Giới thiệu về RedisJSON - Mảnh ghép hoàn hảo cho RediSearch

  Bảo vệ thông tin nhạy cảm trong dự án sử dụng .env

Giải pháp thay thế .env truyền thống

Với những khuyến điểm tồn tại như ở trên, dĩ nhiên chúng ta sẽ có nhiều giải pháp thay thế để quản lý được các biến môi trường một cách hiệu quả hơn. Một trong số đó có thể kể đến như Azure Secrets Manager hay Vault. Tuy nhiên, các công cụ đó có vẻ phù hợp với cấu hình phức tạp và mở rộng hơn sau này. Nếu bạn cần một công cụ đơn giản hơn, chỉ đơn giản tập trung vào quản lý các biến bảo mật thì Infisical là một giải pháp dễ dàng mà tiết kiệm hơn nhiều.

Infisical là một giải pháp mã hóa đầu cuối mã nguồn mở, có thể sử dụng để đồng bộ hóa các biến môi trường trong nhóm và cơ sở hạ tầng. Bằng cách sử dụng Infisical, chúng ta có thể giải quyết được hầu hết các vấn đề nêu ra ở đầu bài viết.

Mã nguồn của Infisical có thể được tìm thấy tại Infisical Github, chúng ta có thể tự triển khai một máy chủ cho riêng mình bằng nhiều cách như sử dụng Docker, AWS, DigitalOcean… Hoặc nếu không, Infisical cung cấp dịch vụ Cloud hoàn toàn miễn phí với một số giới hạn. Bạn đọc quan tâm có thể đăng kí tại Infisical Signup.

Infisical

Infisical hỗ trợ rất nhiều dịch vụ Cloud như AWS, Vercel, Netlify… hoặc các Framework/Library như React, Vue, SvelteKit…

Ví dụ sử dụng trong Node: Sau khi thêm các biến môi trường vào Infisical, bạn có thể khởi động dự án Node.js bằng cách:

$ infisical init
$ infisical run -- npm start

Lúc này các biến môi trường sẽ được truyền vào trong ứng dụng Node.

Để xem đầy đủ các cách tích hợp cũng như sử dụng trong các Project khác, bạn đọc có thể xem tại Infisical Integrations.

Tổng kết

.env là một trong những cách giúp chúng ta quản lý biến môi trường trong triển khai ứng dụng lên nhiều môi trường khác nhau. Tuy nhiên, cách tiếp cận thông qua .env có phần lỗi thời và gây ra nhiều vấn đề cần phải được giải quyết. Infisical có thể được coi là một giải pháp đơn giản mà hiệu quả hơn so với Vault hay Azure Secrets Manager.

Bài viết gốc được đăng tải tại 2coffee.dev

Xem thêm:

Xem thêm việc làm CNTT hấp dẫn trên TopDev

Kinh nghiệm truy xuất giá trị trong object lồng nhau trong Javascript

Bài viết được sự cho phép của tác giả Sơn Dương

Chắc hẳn bạn đã từng rất nhiều lần phải truy xuất giá trị thuộc tính của object để lấy dữ liệu đúng không?

Đặc biệt là làm việc với Javascript, bạn càng thao tác với Object nhiều hơn, từ việc lấy dữ liệu từ server qua API, lưu trữ dữ liệu vào localstorage… đều dùng JSON, mà JSON thì cũng được convert về Object hết.

Vậy, chắc hẳn bạn đã từng gặp trường hợp các object lồng nhau chưa?

Truy xuất giá trị thuộc tính của một Object

Để minh họa cho bài viết, mình giả sử chương trình lấy dữ liệu từ server qua một API. Trong đó, server sẽ trả về dữ liệu JSON có cấu trúc như sau:

let response = {
  data: {
    options: {
      name: "Dương Anh Sơn",
      website: "https://vntalking.com"
    }
  }
};

Giờ bạn cần lấy giá trị website ra để thực hiện công việc nào đó trong Object JSON trên. Bạn sẽ làm thế này phải không?

const website = response.data.options.website;
console.log(website);
// output: https://vntalking.com

Ok, cách làm như này là đúng rồi! Chắc ai cũng phải làm như vậy thôi 😊

Tuy nhiên! Vì một lý do nào đó mà đối tượng response kia không còn đúng với cấu trúc đó nữa. Ví dụ, response không còn tồn thuộc tính options, chỉ còn thế này:

let response = {
  data: {}
};

Lập tức, chương trình sẽ bị crash.

access-undefined-object

Nguyên nhân là bạn truy cập vào thuộc tính undefined. Giờ phải làm sao để xử lý lỗi này cho vẹn toàn nhỉ?

  Đôi điều về Object Reference trong Javascript. Nhiều lúc quên thật phiền toái!

  Deep Clone Objects trong Javascript – Giới thiệu một biện pháp cực mạnh

Cách lấy dữ liệu trong Object kèm kiểm tra Undefined

Thông thường, để tránh bị lỗi crash do truy cập vào thuộc tính bị undefined như ở trên, chúng ta nên kiểm tra thuộc tính đó có bị undefined không, trước khi truy xuất lấy dữ liệu.

Nếu thuộc tính đó bị undefined thì trả về một giá trị mặc định nào đó.

Cách làm “nông dân” nhất là:

const website = "Không biết";
if(response.data && response.data.options && response.data.options.website) {
   website = response.data.options.website;
}

console.log(website);
// output: https://vntalking.com

Nhưng mà nhìn câu điều kiện if(...) lại thấy chán 😊

Dưới đây là hai cách làm hiện đại, “sang xịn mịn” hơn!

Tham khảo tuyển dụng javascript lương cao trên TopDev

Sử dụng Lodash

Nếu bạn chưa biết lodash là gì, mời bạn đọc bài viết này nhé: Lodash – Tiện ích dắt túi của dân lập trình Javascript

Với lodash, họ cung cấp sẵn một hàm lấy giá trị của một thuộc tính, tất nhiên là họ đã check choác các kiểu để không bị crash.

const website = _.get(response, 'data.options.website');
console.log(website);
// output: https://vntalking.com

Sử dụng Optional Chaining có sẵn của JS

Từ phiên bản ES6, bạn không cần dùng tới lodash luôn, chỉ cần optional chaining là đủ. Dưới đây là một cách mà mình hay sử dụng.

const website = response?.data?.options?.website ?? 'Không biết';
console.log(website);
// output: https://vntalking.com

Toán tử ? cho phép một thuộc tính có thể null. Do đó, bạn có thể truy xuất thoải mái, kể cả nó bị null/undefined.

Còn toán tử ?? tương tự như câu điều kiện kiểm tra null và trả về giá

Trên đây là hai cách truy xuất giá trị của object hay dùng nhất, đảm bảo ứng dụng không bị crash dù object có thay đổi cấu trúc bất thình lình đi chăng nữa (điều mà rất hay xảy ra khi chương trình lấy dữ liệu từ server).

Bạn còn giải pháp nào hay hơn không? Chia sẻ cùng mọi người đi nhé.

Bài viết gốc được đăng tải tại vntalking.com

Xem thêm:

Tìm việc làm IT mới nhất trên TopDev

Tổng hợp 100+ công cụ AI hữu ích cho mọi ngành nghề (P2)

Trong kỷ nguyên số hóa hiện nay, trí tuệ nhân tạo (AI) đã trở thành một phần không thể thiếu trong nhiều lĩnh vực của cuộc sống. Từ y tế, giáo dục, tài chính đến nông nghiệp, AI không chỉ giúp tối ưu hóa quy trình làm việc mà còn mang lại những giải pháp sáng tạo, nâng cao hiệu suất và chất lượng công việc.

Với tiềm năng vượt trội, AI đang dần thay đổi cách chúng ta làm việc, giao tiếp và phát triển. Trong bài viết này, chúng ta sẽ tiếp tục khám phá hơn 100 công cụ AI hữu ích, hứa hẹn sẽ mang đến những công cụ và phương pháp tiên tiến, phục vụ cho mọi ngành nghề một cách hiệu quả.

Chatbot và hỗ trợ khách hàng

21. Chatbot Dịch vụ Khách hàng

Chatbots được điều khiển bởi AI cung cấp hỗ trợ khách hàng tức thì, trả lời các câu hỏi thường gặp (FAQs), và xử lý các yêu cầu thường xuyên.

Một số công cụ và nền tảng AI cho Chatbot Dịch vụ Khách hàng:

  • IBM Watson Assistant: IBM Watson Assistant là nền tảng Chatbot mạnh mẽ cho phép doanh nghiệp tạo và triển khai Chatbots trên nhiều kênh khác nhau. Nền tảng này cung cấp khả năng hiểu ngôn ngữ tự nhiên và học máy để tạo ra các tương tác khách hàng cá nhân hóa.
  • Chatfuel: Chatfuel là nền tảng xây dựng Chatbot dễ sử dụng chuyên về tạo Chatbots cho Facebook Messenger. Nó lý tưởng cho các doanh nghiệp muốn tự động hóa hỗ trợ khách hàng và tương tác với khách hàng trên mạng xã hội.

Chatfuel

22. Trợ lý Ảo

Trợ lý ảo được điều khiển bởi AI giúp người dùng với các nhiệm vụ như lên lịch, nhắc nhở và truy xuất thông tin.

Một số công cụ và nền tảng AI cho Trợ lý Ảo:

  • Google Assistant: Google Assistant là trợ lý ảo được sử dụng rộng rãi trên các thiết bị di động và loa thông minh. Nó có thể thực hiện các nhiệm vụ như thiết lập nhắc nhở, trả lời câu hỏi và cung cấp thông tin thời gian thực như cập nhật thời tiết và tin tức.
  • Amazon Alexa: Alexa, trợ lý ảo của các thiết bị Amazon Echo, giúp người dùng thực hiện các nhiệm vụ như tạo danh sách công việc, thiết lập báo thức và điều khiển các thiết bị thông minh trong nhà. Nó cũng hỗ trợ một loạt các kỹ năng bên thứ ba để tăng cường chức năng.

23. Chatbot FAQ

Chatbots có thể tự động hóa phản hồi cho các câu hỏi thường gặp, cải thiện hiệu quả dịch vụ khách hàng.

Một số công cụ và nền tảng AI cho Chatbot FAQ:

  • Intercom Resolution Bot: Intercom’s Resolution Bot được thiết kế để tự động hóa phản hồi cho các câu hỏi khách hàng thường gặp. Nó có thể cung cấp câu trả lời tức thì và chuyển các vấn đề phức tạp cho các nhân viên hỗ trợ khi cần thiết.
  • Chatfuel: Chatfuel là công cụ xây dựng Chatbot dễ sử dụng cho phép doanh nghiệp tạo Chatbots AI cho Facebook Messenger. Nó phù hợp để tự động hóa phản hồi cho các câu hỏi thường gặp và tương tác với khách hàng trên mạng xã hội.

24. Hỗ trợ Đặt chỗ và Đặt phòng

Chatbots hỗ trợ việc đặt chuyến bay, khách sạn, nhà hàng và các dịch vụ khác.

Một số công cụ và nền tảng AI cho Hỗ trợ Đặt chỗ và Đặt phòng:

  • Booking.com: Chatbot của Booking.com hỗ trợ người dùng tìm và đặt chỗ lưu trú, chuyến bay và thuê xe. Nó cung cấp các gợi ý cá nhân hóa dựa trên sở thích của người dùng và cung cấp các tùy chọn đặt chỗ liền mạch.
  • Expedia: Chatbot của Expedia hỗ trợ người dùng đặt chuyến bay, khách sạn và các gói kỳ nghỉ. Nó cung cấp các gợi ý du lịch, chi tiết giá cả và quản lý hành trình thông qua các tương tác ngôn ngữ tự nhiên.

Expedia

25. Giải quyết Khiếu nại

Chatbots điều khiển bởi AI có thể xử lý khiếu nại và các vấn đề của khách hàng một cách nhanh chóng.

Một số công cụ và nền tảng AI cho Giải quyết Khiếu nại:

  • Freshdesk: Freshdesk cung cấp các Chatbots và tính năng tự động hóa được điều khiển bởi AI cho hỗ trợ khách hàng. Nó có thể xử lý các khiếu nại khách hàng thường gặp, hỗ trợ giải quyết vấn đề và chuyển các yêu cầu phức tạp cho các nhân viên hỗ trợ khi cần thiết.
  • Drift Chatbots: Drift cung cấp các Chatbots được điều khiển bởi AI cho bán hàng và hỗ trợ khách hàng. Nó có thể hỗ trợ xử lý khiếu nại của khách hàng và giải quyết các vấn đề bằng cách cung cấp thông tin chính xác và chuyển các yêu cầu đến các đội phù hợp.

26. Hỗ trợ Đa Ngôn ngữ

Chatbots được trang bị mô hình ngôn ngữ có thể giao tiếp với khách hàng bằng nhiều ngôn ngữ.

Một số công cụ và nền tảng AI cho Hỗ trợ Đa Ngôn ngữ:

  • IBM Watson Language Translator: IBM Watson Language Translator là công cụ mạnh mẽ có thể tích hợp vào Chatbots để cung cấp dịch ngôn ngữ thời gian thực. Nó hỗ trợ một loạt ngôn ngữ và có khả năng dịch cả văn bản và ngôn ngữ nói.
  • Google Cloud Translation: Google Cloud Translation cung cấp dịch vụ dịch máy có thể tích hợp vào Chatbots và ứng dụng. Nó hỗ trợ rất nhiều ngôn ngữ và cung cấp các bản dịch chất lượng cao.

  Sự khác nhau giữa AI, Machine Learning và Deep Learning

  5 công cụ AI hữu ích trong năm 2024 dành cho Developer

27. Hỗ trợ Bán hàng

Chatbots AI có thể hỗ trợ các đội bán hàng bằng cách cung cấp thông tin sản phẩm và xử lý các yêu cầu ban đầu.

Một số công cụ và nền tảng AI cho Hỗ trợ Bán hàng:

  • Salesforce Einstein: Salesforce Einstein là nền tảng AI cung cấp khả năng Chatbot cho các đội bán hàng. Nó có thể giúp tự động hóa quá trình đánh giá khách hàng tiềm năng, trả lời các câu hỏi thường gặp của khách hàng và cung cấp thông tin chi tiết cho các đại diện bán hàng.
  • HubSpot Chatbot: HubSpot cung cấp công cụ xây dựng Chatbot tích hợp với hệ thống CRM và công cụ tiếp thị của nó. Nó hỗ trợ các đội bán hàng bằng cách thu thập thông tin khách hàng tiềm năng, chăm sóc khách hàng tiềm năng và cung cấp thông tin sản phẩm cho khách hàng tiềm năng.

28. Tạo Khách hàng Tiềm năng

Chatbots có thể thu thập thông tin từ khách hàng tiềm năng, tạo ra các khách hàng tiềm năng cho doanh nghiệp.

Một số công cụ và nền tảng AI cho Tạo Khách hàng Tiềm năng:

  • Drift: Nền tảng Chatbot của Drift cung cấp khả năng tạo khách hàng tiềm năng bằng cách tương tác với khách truy cập trang web và thu thập thông tin khách hàng tiềm năng, như tên và địa chỉ email. Nó tích hợp liền mạch với các hệ thống tự động hóa tiếp thị.
  • Intercom: Chatbot của Intercom có thể tương tác với khách truy cập trang web và thu thập thông tin khách hàng tiềm năng. Nó cung cấp các tính năng như đánh giá và chăm sóc khách hàng tiềm năng, giúp doanh nghiệp chuyển đổi khách truy cập thành khách hàng tiềm năng.

Intercom

29. Tạo Cơ sở Kiến thức

AI tạo ra các bài viết và tài liệu cơ sở kiến thức để khách hàng tự phục vụ.

Một số công cụ và nền tảng AI cho Tạo Cơ sở Kiến thức:

  • Zoho Desk: Zoho Desk bao gồm các tính năng điều khiển bởi AI cho việc tạo cơ sở kiến thức. Nó có thể tự động gợi ý các bài viết cho khách hàng dựa trên các yêu cầu của họ và cung cấp phân tích để tối ưu hóa nội dung cơ sở kiến thức.
  • ProProfs Knowledge Base: ProProfs Knowledge Base cung cấp khả năng tạo nội dung điều khiển bởi AI. Nó đơn giản hóa quá trình tạo và duy trì cơ sở kiến thức với các tính năng như gợi ý nội dung tự động.

30. Tương tác giống như con người

Chatbots cố gắng mô phỏng các cuộc trò chuyện giống như con người, nâng cao trải nghiệm người dùng và tương tác.

Một số công cụ và nền tảng AI cho Tương tác giống như con người:

  • Dialogflow: Dialogflow của Google Cloud cung cấp khả năng hiểu ngôn ngữ tự nhiên và quản lý cuộc trò chuyện. Nó cho phép các doanh nghiệp tạo Chatbots có thể tham gia vào các tương tác giống như con người trên nhiều kênh khác nhau.
  • IBM Watson Assistant: IBM Watson Assistant cung cấp các công cụ phát triển Chatbot được điều khiển bởi AI. Nó có thể hiểu và trả lời các câu hỏi của người dùng một cách tự nhiên và giống như con người, làm cho các tương tác trở nên hấp dẫn hơn.

Giáo dục và Đào tạo

31. Tài liệu học tập  được cá nhân hóa

AI điều chỉnh nội dung giáo dục theo nhu cầu cá nhân của từng học sinh, thích nghi với bài học và bài tập.

Một số công cụ và nền tảng sử dụng AI cho tài liệu học tập cá nhân hóa:

  • DreamBox: DreamBox cung cấp một nền tảng toán học dựa trên AI cho học sinh từ mẫu giáo đến lớp 8. Nó cung cấp các bài học toán và hoạt động cá nhân hóa, điều chỉnh mức độ khó để phù hợp với tiến bộ của học sinh.
  • Smart Sparrow: Nền tảng eLearning thích nghi của Smart Sparrow cho phép các nhà giáo tạo ra trải nghiệm học tập cá nhân hóa. Nó điều chỉnh nội dung và đánh giá theo hiệu suất của từng học sinh.
  • Kaltura: Nền tảng video giáo dục của Kaltura sử dụng AI để cá nhân hóa nội dung video. Nó có thể gợi ý các tài nguyên video liên quan đến học sinh dựa trên sở thích và tiến độ học tập của họ.
DreamBox
DreamBox

32. Dịch ngôn ngữ cho giáo dục

AI dịch tài liệu giáo dục, giúp chúng trở nên dễ tiếp cận với khán giả toàn cầu.

Công cụ và nền tảng sử dụng AI cho dịch ngôn ngữ trong giáo dục:

  • DeepL: DeepL được biết đến với dịch thuật chất lượng cao. Nó cung cấp dịch vụ dịch thuật cho nhiều cặp ngôn ngữ và phù hợp để dịch tài liệu giáo dục một cách chính xác.

33. Gia sư và trợ giúp bài tập về nhà

AI hỗ trợ học sinh làm bài tập về nhà, cung cấp giải thích và giải pháp.

Một số công cụ và nền tảng sử dụng AI cho gia sư và trợ giúp bài tập về nhà:

  • Brainly: Brainly là một nền tảng dựa trên cộng đồng nơi học sinh có thể đặt câu hỏi, và các thuật toán AI giúp cung cấp câu trả lời và giải thích. Nó bao gồm nhiều môn học và chủ đề.
  • Chegg Study: Chegg Study cung cấp một bộ công cụ cho học sinh, bao gồm các giải pháp từng bước cho bài tập trong sách giáo khoa và trợ giúp bài tập về nhà dựa trên AI. Nó bao gồm các môn như toán, khoa học và kỹ thuật.
  • Socratic của Google: Socratic là một ứng dụng trợ giúp bài tập về nhà dựa trên AI. Học sinh có thể chụp ảnh câu hỏi hoặc nhập nó, và ứng dụng sẽ cung cấp giải thích và giải pháp, giúp học tập trở nên dễ dàng hơn.

34. Chấm điểm tự động

AI có thể chấm điểm bài tập và bài kiểm tra, giảm bớt gánh nặng cho giáo viên.

Một số công cụ và nền tảng sử dụng AI cho chấm điểm tự động:

  • Turnitin: Turnitin cung cấp các công cụ phát hiện đạo văn và chấm điểm dựa trên AI. Nó có thể đánh giá bài tập viết, cung cấp báo cáo về tính nguyên bản và hỗ trợ chấm điểm.
  • Gradescope: Gradescope cung cấp chấm điểm hỗ trợ AI cho nhiều loại bài tập, bao gồm lập trình, toán và bài viết. Nó giúp tối ưu hóa quy trình chấm điểm và cung cấp đánh giá dựa trên tiêu chí.

35. Đào tạo dựa trên mô phỏng

AI sáng tạo các mô phỏng thực tế cho đào tạo trong các lĩnh vực như hàng không, y tế và quân sự.

Một số công cụ và nền tảng sử dụng AI cho đào tạo dựa trên mô phỏng:

  • Mursion: Mursion cung cấp các mô phỏng dựa trên AI cho đào tạo kỹ năng mềm, như giao tiếp và kỹ năng liên cá nhân. Nó được sử dụng rộng rãi trong các lĩnh vực như giáo dục, y tế và dịch vụ khách hàng.
  • CAE Healthcare: CAE Healthcare cung cấp các giải pháp mô phỏng y tế tăng cường bởi AI. Nó cung cấp cho các nhà giáo dục y tế các mô phỏng bệnh nhân thực tế để đào tạo các chuyên gia y tế.
Mursion
Mursion

36. Tạo nội dung giáo dục

AI tạo ra sách giáo khoa, bảng tính và tài liệu học tập cho các nhà giáo.

Một số công cụ và nền tảng sử dụng AI cho tạo nội dung giáo dục:

  • Articulate Rise: Articulate Rise là một công cụ tạo e-learning sử dụng AI để tối ưu hóa quy trình tạo các mô-đun học tập tương tác và đáp ứng, bao gồm các khóa học và bài thuyết trình.
  • OpenAI GPT-3: GPT-3 của OpenAI có thể tạo ra văn bản giống con người và được các nhà phát triển sử dụng để xây dựng các công cụ tạo nội dung giáo dục. Nó có thể tạo ra các bài tập tùy chỉnh, giải thích và nhiều hơn nữa.

37. Lập kế hoạch bài giảng

AI giúp giáo viên tạo kế hoạch bài giảng, phù hợp với các tiêu chuẩn chương trình giảng dạy.

Một số công cụ và nền tảng sử dụng AI cho lập kế hoạch bài giảng:

  • EdSurge: EdSurge cung cấp một công cụ lập kế hoạch bài giảng dựa trên AI giúp các nhà giáo viên phù hợp kế hoạch bài giảng của họ với các tiêu chuẩn và mục tiêu cụ thể. Nó cung cấp quyền truy cập vào một thư viện rộng lớn các tài nguyên giáo dục.

38. Ứng dụng học ngôn ngữ

Các ứng dụng học ngôn ngữ sử dụng AI cung cấp các bài học và thực hành cá nhân hóa.

Một số công cụ và nền tảng sử dụng AI cho ứng dụng học ngôn ngữ:

  • Duolingo: Duolingo sử dụng AI để tạo các khóa học ngôn ngữ cá nhân hóa. Nó thích nghi với trình độ của người học và cung cấp các bài học và bài tập thực hành ngắn gọn trong một định dạng game hóa.
  • Babbel: Babbel sử dụng AI để cá nhân hóa các bài học ngôn ngữ dựa trên ngôn ngữ mẹ đẻ và mục tiêu của người học. Nó tập trung vào các kỹ năng giao tiếp thực tế và cung cấp các tình huống thực tế.

Duolingo

39. Tạo bài kiểm tra và bài trắc nghiệm

Giáo viên và huấn luyện viên sử dụng AI để tạo các bài kiểm tra và đánh giá.

Một số công cụ và nền tảng sử dụng AI cho tạo bài kiểm tra và bài trắc nghiệm:

  • Quizlet: Quizlet sử dụng AI để giúp các nhà giáo viên tạo các bài kiểm tra và flashcard tùy chỉnh. Nó cũng cung cấp một thư viện rộng lớn của nội dung do người dùng tạo.
  • Edulastic: Edulastic là một nền tảng đánh giá dựa trên AI cho phép giáo viên tạo, chia sẻ và chấm điểm các bài đánh giá. Nó cung cấp nhiều loại câu hỏi và phân tích.

40. Phòng thí nghiệm ảo

AI cung cấp các phòng thí nghiệm ảo cho giáo dục khoa học và kỹ thuật, cho phép các thí nghiệm mà không cần thiết bị vật lý.

Một số công cụ và nền tảng sử dụng AI cho phòng thí nghiệm ảo:

  • Labster: Labster cung cấp một loạt các phòng thí nghiệm ảo dựa trên AI. Các phòng thí nghiệm này bao gồm nhiều ngành khoa học, từ sinh học đến hóa học, và cung cấp các thí nghiệm và mô phỏng tương tác.
  • PhET Interactive Simulations: PhET cung cấp các mô phỏng toán và khoa học tương tác miễn phí. Những mô phỏng này sử dụng AI để tái hiện các thí nghiệm thực tế và cho phép học sinh khám phá các khái niệm trong vật lý, hóa học, sinh học và nhiều hơn nữa.

K-Tech College Job Fair 2024: Code your future in Korea – Ngày hội việc làm do Chính phủ Hàn Quốc tổ chức

K-TECH COLLEGE JOB FAIR 2024

K-TECH COLLEGE JOB FAIR 2024 là sự kiện việc làm dành cho các lập trình viên trẻ, quy tụ nhiều doanh nghiệp Hàn Quốc do Chính Phủ Hàn Quốc phối hợp với Chính Phủ Việt Nam lần đầu tổ chức. Đây là sự kiện đặc biệt để các doanh nghiệp tìm nguồn nhân lực IT chất lượng và cơ hội để các lập trình viên “chọn mặt gửi vàng”. 

K-Tech College Job Fair 2024 sẽ là nơi để các lập trình viên, sinh viên IT Việt Nam giao lưu, kết nối và tìm kiếm các cơ hội việc làm với mức lương và chính sách đãi ngộ cực hấp dẫn tại các công ty công nghệ Hàn Quốc. Không những thế, đây còn là dịp để tìm hiểu thị trường lao động Hàn Quốc, giúp ứng viên tích lũy kỹ năng phỏng vấn với doanh nghiệp nước ngoài và chuẩn bị hồ sơ xin việc cho các đợt tuyển dụng sắp tới.

  • Thời gian: Thứ Năm, ngày 25/07/2024 từ 09:00 ~ 16:00
  • Địa điểm: Phòng Sapphire Ballroom, Tầng 2 Lotte Hotel Saigon, số 2A-4A Đ. Tôn Đức Thắng, Bến Nghé, Quận 1, Hồ Chí Minh

Các hoạt động chính sẽ diễn ra tại Job Fair

  • Tìm hiểu công ty, vị trí công việc & tham gia phỏng vấn với các doanh nghiệp đến từ Hàn Quốc.
  • Cơ hội nhận được lời mời làm việc (ở Hàn Quốc) ngay sau sự kiện.
  • Nhận tư vấn về cách chuẩn bị hồ sơ, viết CV và kỹ năng phỏng vấn.
  • Kết nối với các chuyên gia công nghệ và lập trình viên khác từ khắp Việt Nam.
  • Nhận nhiều phần quà hấp dẫn ngay tại sự kiện
  • Phiên dịch tiếng Hàn hỗ trợ ngay tại bàn phỏng vấn

Lịch trình sự kiện

Thời gian Hoạt động
8:00 ~ 9:00
  • Đón tiếp khách mời & Tham quan
9:00 ~ 9:45
  • Khai mạc Job Fair
9:45 ~ 12:00
  • Networking & Phỏng vấn
  • Tư vấn việc làm
  • Minigame
12:00 ~ 13:00
  • Nghỉ giải lao
13:00 ~ 15:30
  • Networking & Phỏng vấn
  • Tư vấn việc làm
  • Minigame
16:00
  • Bế mạc

Hướng dẫn tham gia sự kiện

Bước 1: Điền form đăng ký và gửi CV

Bước 2: Nhận mail xác nhận đăng ký thành công 

Bước 3: Nhận mail hướng dẫn đến địa điểm diễn ra sự kiện (2 ngày trước sự kiện)

Bước 4: Đến tham gia sự kiện theo mail hướng dẫn

Sau khi điền form đăng ký, doanh nghiệp có thể xem được thông tin của bạn để đánh giá mức độ phù hợp. Do đó bạn nên đăng ký sớm để tạo lợi thế trước các ứng viên khác và gia tăng cơ hội nhận được các cơ hội việc làm hấp dẫn ngay tại sự kiện.

ĐĂNG KÝ NGAY HÔM NAY

* CV CỦA BẠN SẼ ĐƯỢC SCREENING TRƯỚC KHI SỰ KIỆN DIỄN RA

—————–

Hành trình 10 tháng chinh phục trọn bộ 4 level chứng chỉ AWS

Bài viết được sự cho phép bởi tác giả Lê Ngọc Hiếu

Trong bài viết này, mình sẽ chia sẻ kinh nghiệm của mình trong việc ôn thi và đạt được trọn bộ 4 Level của chứng chỉ AWS
  • Foundational: AWS Certified Cloud Practitioner (CP)
  • Associate: AWS Certified Solutions Architect – Associate (SAA)
  • Professional: AWS Certified Solutions Architect – Professional (SAP)
  • Specialty: AWS Certified Security – Specialty (SCS)
Mình đã giành tổng cộng 10 tháng để ôn tập cho cả bốn chứng chỉ này, và hy vọng rằng những gì mình chia sẻ có thể giúp các bạn chuẩn bị cho kỳ thi AWS.
CHỨNG CHỈ AWS

I. AWS Certified Solutions Architect – Associate (SAA)

  • Thời gian ôn tập: 3 tháng
  • Mình bắt đầu ôn luyện chứng chỉ SAA trước, theo mình đây là chứng chỉ quan trọng nhất vì nó đánh dấu bước ngoặt đầu tiên với Cloud và khi có SAA các bạn sẽ có nền tảng tốt để đi lên các chứng chỉ cao hơn
  • Đầu tiên, mình tham gia khóa học huyền thoại của thầy Stephane Maarek trên Udemy-Fsoft, sau đó học các khóa giải đề. Học lý thuyết mất khoảng một tháng, sau đó mình dành ra 2 tháng để giải đề và làm Lab

II. AWS Certified Cloud Practitioner (CP)

  • Thời gian ôn tập: 3 ngày
  • CP là một bước khởi đầu tốt để làm quen với nền tảng AWS. Nhưng nếu bạn có kinh nghiệm làm việc nhiều với Cloud rồi thì có thể bỏ qua CP, hoặc thi SAA trước, nếu có thời gian thì lấy luôn CP
  • Đối với CP thì mình cũng lựa chọn khóa học của thầy Stephane Maarek sau đó giải đề cho tới khi kết quả trung bình 80-90% thì đăng ký thi

III. AWS Certified Solutions Architect – Professional (SAP)

  • Thời gian ôn tập: 5 tháng
  • Bản thân mình thấy kiến thức của AWS SAP rất rộng và đòi hiểu hiểu kĩ về các solution, có rất nhiều services, use cases hay và lạ nhưng lại khó có cơ hội được tiếp cận (ví dụ như các service về migration, hybrid cloud,…).
  • Các giá trị mang lại từ AWS SAP:
  • Có khả năng đưa ra hướng dẫn thực hành tốt nhất về thiết kế kiến trúc trên nhiều ứng dụng và dự án
  • Có khả năng vạch ra các mục tiêu đối với yêu cầu về ứng dụng, kiến trúc
  • Có khả năng đánh giá các yêu cầu của ứng dụng đám mây
  • Có khả năng thiết kế một kiến trúc kết hợp bằng các công nghệ chính của AWS
  • Đưa ra được khuyến nghị về kiến trúc cho khâu thực thi, triển khai và cung cấp ứng dụng trên AWS

Quá trình học:

  • Mình dành khoảng 5 tháng để ôn thi, ôn đều đặn mỗi ngày 2-3 tiếng từ thứ 2 tới thứ sáu, riêng thứ bảy chủ nhật mình dành mỗi ngày 4-8 tiếng để ôn luyện
  • Tháng đầu mình dành thời gian để xem các khóa học trên Udemy Fsoft video và đọc bài giảng, document…
  • Tháng tiếp theo mình tập trung làm Lab trên các diễn đàn Cloud, ôn lại kiến thức cũ và xem thêm các CheatSheet
  • 3 tháng tiếp theo là giai đoạn giải đề và ghi chú lại những điểm chưa biết hoặc dễ nhầm lẫn. Hai tháng đầu của giai đoạn này khá khó khăn, lần đầu làm đề sẽ loanh quanh 50-65 %, mình cần giành thời gian để đọc lại tất cả đáp án, xem vì sao câu này lại đúng, vì sao câu kia sai, và làm cách nào để chỉnh lại các câu sai cho đúng… Trung bình làm và sửa một đề sẽ mất một tuần.
  • Tháng cuối mình dành thời gian giải qua các bộ đề lần cuối, ở giai đoạn này mình làm đề trung bình trên 80, có nhiều đề được 90-100%
  • Mình đánh giá bộ đề của Dojo sát với đề thi thật nhất, đề của Stephane khó hơn một chút. Đề của Neal sẽ dàn trải theo từng chuyên đề (Network, Migrate, Computer…)

  AWS Lambda là gì? Cách hoạt động và ứng dụng của Lambda

  So sánh AWS, Google Cloud và Azure năm 2024

IV. AWS Certified Security – Specialty (SCS)

  • Thời gian ôn tập: 2 tháng
  • Về chứng chỉ SCS mình xin phép chia sẻ chi tiết hơn

1. Tổng quan

Bản thân mình thấy kiến thức của AWS Security Specialty đi sâu về mảng bảo mật, làm sao bảo vệ và ngăn chặn tấn công vào infrastructure, application, data, các phương pháp mã hóa data,… không quá nhiều service như AWS Solution Architect Professional nhưng đòi hỏi hiểu sâu về các security service (IAM, Guard Duty, WAF,…), có rất nhiều use cases hay và lạ và khó có cơ hội được tiếp cận thực tế (ví dụ như các kịch bản bảo mật cho Hybrid Cloud, phòng thủ và ngăn chặn tất công DDOS, TOP 10 OWASP,…). Những bạn đã hiểu và nắm chắc về các service security của AWS, hoặc đã có kinh nghiệm security sẽ có lợi thế.

Đề thi SCS gồm 65 câu với điểm pass là 750 điểm, tổng thời gian làm bài 3h30’ (Được cộng 30 phút theo chính sách của AWS), chi phí thi 300$. Lúc làm bài khá căng thẳng, nhất là những câu chọn nhiều đáp án (2 trong 5, 3 trong 6).

Có nhiều câu lạ và dài, kéo tới 2 màn hình vẫn chưa hết đề. Độ lắt léo đánh võng của đề cũng rất cao. Nhất là những câu hỏi Policy cần để ý kĩ từng dấu từng chữ trong đáp án.

2. Đăng ký & Địa điểm thi

Rút kinh nghiệm từ lần trước, sáng thứ 4 thi thì mình đăng ký từ thứ 2. Không đăng ký quá sớm để tránh lo lắng

Địa điểm thì vẫn chọn Công Ty TNHH Tín Bảo Lan, phòng ốc mát mẻ, yên tĩnh. Thủ tục check-in nhanh gọn, trong lúc thi có thể ra ngoài uống nước và đi vệ sinh. Có điều lần này 3 bạn thi cùng một phòng nên thỉnh thoảng mất tập trung vì… tiếng click chuột

3. Cách học

3.1. Quá trình học:

  • Mình dành 2 tháng để ôn thi, ôn đều đặn mỗi ngày 3-4 tiếng buổi tối từ thứ 2 tới thứ sáu, riêng thứ bảy chủ nhật mình dành mỗi ngày 4-8 tiếng để ôn luyện
  • Tháng đầu tập trung học các khóa học trên Udemy Fsoft và đọc bài giảng, document, và làm Lab
  • Tháng hai chuyển sang giai đoạn giải đề và ghi chú lại những điểm chưa biết hoặc dễ nhầm lẫn
  • Nửa tháng đầu tiên khá khó khăn, lần đầu làm đề sẽ loanh quanh 50-60%, sau khi giải đề sẽ đọc lại tất cả đáp án, xem vì đúng, vì sao sai, và làm sao sửa lại các câu sai cho đúng
  • Nửa tháng tiếp theo sẽ giải lại đề lần 2 lần 3,… cho tới khi nào đạt ít nhất 80%, có nhiều đề được 90-95%
  • Đối với các chứng chỉ khác như AWS SAA, AWS SAP thì đề của Dojo sát với đề thi thật nhất (so với đề của Stephane Marrek và Neal Davis), nhưng với đề AWS SCS thì đề của Stephane Maarek sẽ sát với đề thi thật (bám sát với mã đề mới SCS-C02). Đề của Dojo chưa được cập nhật nhiều, phù hợp với mã đề cũ hơn (SCS-C01). Đề của Neal Davis sẽ dàn trải theo từng chuyên đề (Threat Detection and Incident Response, Security Logging and Monitoring,…).

Tham khảo việc làm Cloud cao, hấp dẫn trên TopDev!

3.2. Cách học:

  • Cách học của mình là ” 3W-1H ” What-Why-When-How
  • Kết hợp với việc mindmap lại kiến thức với nhau
  • Sử dụng Document, Whitepaper, Blog, Re:Invent, FAQ để tìm hiểu các thông tin liên quan service, user-case,…
  • So sánh với các service khác để tìm sự khác nhau trong mỗi use-case
  • Mã hóa data chia làm 3 cách client side, mã hóa trên đường truyền (in-transit), server side (at-rest)
  • Client side mã hóa như nào,…. in-transit sử dụng SSL thì sử dụng ACM như nào hay private cert như nào,….. server side thì dùng S3 hay dùng KMS,…..
  • Note lại kiến thức cần ghi nhớ vào file README hoặc Notion

3.3. Tài liệu:

  • Theo mình khóa hay và đầy đủ nhất vẫn là của Stephane Maarek, trọn bộ lý thuyết theo từng chuyên đề (tuy nhiên hầu như không có Lab)
https://fpt-software.udemy.com/…/learn/lecture/35751276…
  • FAQ trên trang tài liệu của AWS
  • AWS Re:Invent là nguồn tài liệu rất rất tốt để hiểu sâu về 1 dịch vụ, cũng như case study nào đó,….
  • Whitepaper, Document của AWS
  • Skillbuilder cũng cung cấp learning path rất chi tiết cho việc luyện thi chứng chỉ này.

3.4. Hands-on lab:

  • Thực sự thì kiếm được Lab của Security khá khó bởi nó liên quan đến rất nhiều thiết bị, đến các team Redteam, Blue Team, riêng về phần giả lập tấn công DDOS thì khá nhạy cảm vì chính sách của AWS không cho phép DDOS. Dưới đây là một số bài Lab mình sưu tầm được
https://aws.amazon.com/…/2021-aws-security-focused…/
https://awssecworkshops.com/builder-sessions/

3.5. Refers

Tham gia vào Các Group lớn, theo dõi các câu hỏi, các bình luận. Vừa là để học hỏi, vừa là có thể giúp đỡ ai đó nếu mình biết.

  • Viet-AWS (AWSUG | Ho Chi Minh Da Nang Hanoi) https://www.facebook.com/groups/866046214213349
  • AWS Study Group (https://www.facebook.com/groups/660548818043427)
  • Exam guide: (https://aws.amazon.com/certification/certification-prep/)
  • Docs: (https://docs.aws.amazon.com/)

4. Review đề

Bên dưới là phần review mình tham khảo từ nhiều nguồn cũng như kinh nghiệm đi thi của bản thân

4.1 Domain 1 – Incident Response

Trả lời cho câu chuyện Security Engineer cần làm gì khi phát hiện IAM Access Key bị expose, EC2 bị compromises và làm gì để tăng cường bảo mật.
  • GuardDuty: Multi-account, add trusted IP Least (Chú ý Public hay Private Route table)
  • Security Hub: Custom-action trigger Eventbridge để remediate
  • Detective: Xem “who” đã disabled Cloudtrail
  • Về Compromised có đủ 2 loại là EC2 & Credentials (Account): Hiểu rõ các steps cần xử lý.
  • Khi EC2 access keys bị exposed thì cần delete ở `~/.ssh/authorized_keys` chứ không phải EC2 key pairs ngoài EC2 console. (Nếu nhiều EC2 thì dùng SSM Run Command)
  • Connect EC2 Linux khi lost SSH key pair
  • Khi nhận “AWS Abuse Report” thì cần explains step-by-step và đưa ra solution để tránh in the future

4.2 Domain 2 – Logging and Monitoring (Khá nhiều questions)

  • Cấu hình hệ thống log tập trung, các giải pháp collect log tập trung, troubleshoot.
  • Flow enable WAF logs phải đi qua Kinesis Data Firehose thay vì Kinesis Data Stream rồi mới tới S3 được
  • SSM System Manager: Chủ yếu là the best secure way to connect to EC2 without SSH, và có thêm enable logging command for audit purpose
  • CW Agent: Troubleshooting khi instance đột nhiên ngừng push logs
  • CW Logs Metric Filter: Để monitor tới những api call nhiều lần mà bị fail, rồi notify về SNS
  • S3 enabled object logs kết hợp vs Athena và Quicksight to visualize lên dashboard (Bản thân Athena có 1 question riêng là thiếu permission cho Quicksight access tới S3 bucket result của Athena push qua)
  • Cloudtrail cho multi-region existing and future luôn.
  • VPC Traffic Mirroring: đề yêu cầu inspect đc cả pkg info (Nếu chỉ VPC Flow Logs chỉ là IP address info)

4.3 Domain 3 – Infrastructure security

  • Cấu hình security cho các giải pháp như ALB, Route53, CloudFront,…. giả định các case tấn công và biện pháp phòng thủ.
  • Có 1 câu liên quan tới Bastion Host: là cấu hình SG (Chú ý port in/out) cho flow ALB -> App Server -> DB và cần thêm Bastion Host để connect tới private App server cũng như là upgrade DB. (Chú ý diff giữa CIDR vs Company IP Address)
  • Cần cấu hình gì để connect EC2 ở PRIVATE subnets via SSM Session Manager (Lúc này cần đủ các VPC Interface Endpoints như ssm, ssmec2messages, etc..).
  • Chú ý về “Create new NACL” thì by default sẽ deny outbound rules nên cần allow Ephemeral Ports.
  • Cloudfront: đề muốn latency-sensitive và ngăn attack như SQL injection, XSS, … thì gắn thêm WAF
  • OAI thì cũ, không có work native với KMS mà cần tới Lambda@Edge, OAC mới hơn thì có native
  • Motitor các CW metric của Shield (Mình nhớ 1 số metric như DDoSDetected, DDoSAttackRequestsPerSecond) để biết đang có DDoss tấn công
  • Thêm 1 câu DDos mitigation dùng tới Shield & WAF (Thật ra service này chỉ giảm thiểu khi dùng tới Rate-limits rule để tránh multi request for the same IP in short time)
  • Route 53 – Enable DNSSEC: Mô tả các steps trước đó, giờ cần “Add thêm DS record vào PARENT host zone”

4.4 Domain 4 – Identity and Access Management

Liên quan đến cấu hình permission cho IAM, cho các federated, Policy, 3rd party

4.5 Domain 5 – Data Protection

Key concept ở đây là Encryption & Decryption. Yêu cầu hiểu được cách hoạt động của KMS, HSM, ACM, các loại mã hóa client/server side, mã hóa trên đường truyền

4.6 Domain 6 – Management and Security Governance

  • Liên quan đến vấn đề bảo mật cho môi trường Multi-account, đánh giá bảo mật trên Cloud
  • Trong hành trình ôn thi chứng chỉ AWS, mình đã gặp nhiều khó khăn và thách thức, nhưng đó cũng là một quá trình học hỏi đầy giá trị. Hy vọng rằng những chia sẻ và kinh nghiệm của mình trong bài viết này có thể giúp các bạn tự tin hơn khi bước vào hành trình ôn thi chứng chỉ AWS

Hãy nhớ rằng, việc ôn thi AWS không chỉ giúp bạn nâng cao kiến thức và kỹ năng, mà còn mở ra cơ hội mới trong sự nghiệp của bạn. Hãy luôn duy trì sự kiên nhẫn và đam mê trong quá trình học tập. Hãy tự tin, học hỏi và chia sẻ kiến thức của bạn với cộng đồng AWS. Chúc các bạn thành công trong việc ôn thi và đạt được những chứng chỉ quý báu của AWS.

Bài viết gốc được đăng tải tại group GenZ làm IT

Xem thêm:

Vietnam Cloud & Datacenter (Ha Noi) Convention 2024: Sự kiện không thể bỏ lỡ

Vietnam Cloud & Datacenter (HaNoi) Convention 2024 sẽ chính thức diễn ra tại Hà Nội vào tháng 8 này. Đây sẽ là sự kiện hội tụ những chuyên gia hàng đầu trong ngành, hứa hẹn mang đến những buổi thảo luận sâu sắc về các xu hướng và giải pháp tiên tiến trong lĩnh vực Cloud & Datacenter.

Vietnam Cloud & Datacenter (Ha Noi) Convention 2024

Thị trường Cloud & Datacenter tại Việt Nam: Tiềm năng và cơ hội cần được khai phá

Trong bối cảnh cuộc cách mạng chuyển đổi số đang diễn ra mạnh mẽ tại Việt Nam, nhu cầu sử dụng dịch vụ đám mây và lưu trữ dữ liệu ngày càng gia tăng đáng kể. Theo dự báo, ngành công nghiệp này dự kiến sẽ đạt mốc 1,03 tỷ USD vào năm 2028. Mặc dù là một trong những thị trường mới nổi trong khu vực, Việt Nam đã và đang khẳng định vị thế của mình như một điểm đến hấp dẫn cho các hoạt động trung tâm dữ liệu.

Hai thành phố lớn nhất cả nước – Hồ Chí Minh và Hà Nội – đóng vai trò then chốt trong việc thu hút các nhà đầu tư và doanh nghiệp công nghệ hàng đầu, nhờ vào nền tảng hạ tầng phát triển vượt bậc và nguồn nhân lực chất lượng cao. Với tiềm năng to lớn chưa được khai phá hết, thị trường Việt Nam hứa hẹn sẽ mang đến nhiều cơ hội mới cho các doanh nghiệp trong lĩnh vực điện toán đám mây và trung tâm dữ liệu.

Hội nghị Vietnam Cloud & Datacenter Convention 2024 sẽ là cơ hội tuyệt vời để khám phá những xu hướng mới nhất, chia sẻ kiến thức chuyên môn và kết nối với các đối tác tiềm năng trong ngành.

25+ diễn giả chất lượng & các chủ đề hấp dẫn tại Vietnam Cloud & Datacenter Convention 2024

Vietnam Cloud & Datacenter (Ha Noi) Convention 2024 sẽ quy tụ hơn 25 diễn giả chất lượng đến từ các công ty hàng đầu trong lĩnh vực Cloud & Datacenter. Hội nghị sẽ tổ chức các cuộc thảo luận sâu sắc, các bài thuyết trình hấp dẫn và tạo ra các cơ hội giao lưu tập trung vào lĩnh vực máy chủ đám mây, trung tâm dữ liệu và các giải pháp kết nối.

Tại sự kiện này, các đại diện từ các tổ chức, doanh nghiệp, và cơ quan chính phủ sẽ tham gia thảo luận và thực hiện những đối thoại tích cực để tạo ra những giải pháp và hướng đi cụ thể nhằm thúc đẩy chuyển đổi số ở Việt Nam. Điều này không chỉ đánh dấu một bước tiến quan trọng trong việc nâng cao vị thế của Việt Nam trong cộng đồng quốc tế về công nghệ thông tin, mà còn mở ra những triển vọng mới cho sự phát triển bền vững của đất nước trong thời kỳ kỹ thuật số.

Hội nghị sẽ xoay quanh nhiều nội dung đa dạng, mới mẻ và không kém phần hấp dẫn như:

  • Expert Industry Analyst Outlook on Demand for Data Centres 2024 – 2027
  • Meeting Growing Demands: Building Sustainable Hyperscale Capacity in Southeast Asia
  • Unlocking Vietnam’s Potential: How Data Centers Can Fuel Economic Growth
  • Vietnam’s Trusted Partner: How Colocation with a Local Partner Drives Business Success
  • From Ancient City to Data Hub: Why Hanoi is Ideal for Modern Data Centers
  • Accelerating Digital Transformation in Vietnam – The Strategic Advantages of Modular Data Centers

Những chủ đề này sẽ được chia sẻ và thảo luận trực tiếp bởi các chuyên gia đầu ngành như: Damon Lim – Regional Director (Asia Pacific), datacenterHawk; Glen Duncan – Head of Data Centre Research – APAC, JLL Asia Pacific; Stephen Higgins – Head of Capital Markets Vietnam, Cushman & Wakefield; Rahul Shinde – CIO, Coca Cola Beverages Vietnam;…

Hình ảnh sự kiện Vietnam Cloud & Datacenter Convention vào tháng 4/2024 tại TP.HCM

Vì sao bạn nên tham gia Vietnam Cloud & Datacenter Convention 2024 (HNCDC2024)?

Những điểm nổi bật tại Vietnam Cloud & Datacenter Convention 2024 khiến bạn không thể bỏ lỡ:

  • Tập trung đối tượng chuyên gia cấp cao: Hội nghị quy tụ các chuyên gia cấp cao với trung bình 60% người tham dự là giám đốc điều hành cấp C, tạo ra một không gian giao lưu đẳng cấp để chia sẻ tầm nhìn chiến lược, định hướng xu hướng công nghệ và mở ra cơ hội kinh doanh mới.
  • Nội dung tuyển chọn: Các chủ đề trong hội nghị được tuyển chọn một cách tỉ mỉ, tập trung vào những vấn đề mấu chốt và được quan tâm nhất hiện nay. Bạn sẽ được tiếp cận những góc nhìn mới mẻ, giải pháp sáng tạo và kinh nghiệm thực tiễn từ những nhà lãnh đạo tiên phong trong ngành.
  • Cơ hội kết nối: Tại hội nghị, bạn sẽ có cơ hội kết nối với hơn 1000 chuyên gia công nghệ hàng đầu trong lĩnh vực cloud & datacenter, 40% audience quốc tế cùng với cơ hội trải nghiệm sản phẩm và giải pháp mới nhất tại 25+ gian hàng triển lãm.

Vietnam Cloud & Datacenter (Ha Noi) Convention 2024 hứa hẹn sẽ mang đến những buổi thảo luận hữu ích và thú vị, cùng với nhiều cơ hội kết nối với các chuyên gia hàng đầu trong lĩnh vực Cloud & Datacenter. Hãy đăng ký tham gia ngay để không bỏ lỡ sự kiện công nghệ hàng đầu này!

THÔNG TIN SỰ KIỆN

🕛 Thời gian: 15.08.2024 (8:00AM – 3:30PM)

🚦 Địa điểm: Lotte Hotel Hanoi, 54 P. Liễu Giai, Cống Vị, Ba Đình, Hà Nội

📍 Thông tin chi tiết xem tại: https://clouddatacenter.events/events/vietnam-cloud-datacenter-hanoi-convention-2024/

*Đăng ký vé MIỄN PHÍ thông qua kênh của TopDev (số lượng có hạn**): https://meetup.vn/detail/Vietnam-Cloud–Datacenter-Hanoi-Convention2024-443

**Đối tượng tham dự sự kiện: C-level, các cấp quản lý, IT Managers, IT infrastructure and Operations, DevOps, và những nhân sự khác có liên quan đến ngành. Vì số lượng người tham dự có giới hạn, BTC sẽ xem xét thông tin và ưu tiên phản hồi những đăng ký phù hợp với nội dung và mục tiêu của sự kiện.

Cách deploy project của bạn lên Cloudflare Pages

Bài viết được sự cho phép của tác giả Nguyễn Thành Nam

Bài viết này sẽ hướng dẫn bạn deploy project lên Cloudflare Pages một cách đơn giản và miễn phí. Bên cạnh đó, mình sẽ chia sẻ những tính năng nổi bật nhất của Cloudflare.

I. Cloudflare là gì?

Cloudflare là một nền tảng mạng phân phối nội dung (CDN) và bảo mật web phổ biến, cung cấp nhiều tính năng hữu ích cho các nhà phát triển web. Một trong những tính năng nổi bật của Cloudflare là Pages, cho phép bạn triển khai dự án web tĩnh của mình một cách nhanh chóng và dễ dàng.

Cloudflare là gì?

1. Giới thiệu

Ngoài vai trò là một CDN và dịch vụ bảo mật web, Cloudflare còn cung cấp Cloudflare Pages – một nền tảng JAMstack cho phép bạn triển khai website tĩnh một cách nhanh chóng và dễ dàng. Nền tảng này được tích hợp sẵn nhiều tính năng mạnh mẽ, giúp tối ưu hóa hiệu suất, bảo mật và trải nghiệm người dùng cho website của bạn.

2. Tính năng của Cloudflare Pages

  • Tích hợp Git: Kết nối trực tiếp với Git repository của bạn, tự động triển khai website mỗi khi có thay đổi code. Hỗ trợ GitHub, GitLab, Bitbucket và GitLab Pages.
  • Tích hợp Analytics: Có thể xem thống kê số lượng user truy cập, băng thông sử dụng…
  • Hiệu suất vượt trội: Tận dụng mạng lưới phân phối nội dung toàn cầu (CDN) của Cloudflare, đảm bảo website tải nhanh chóng cho mọi người dùng trên thế giới.
  • Bảo mật cao: Trang bị các tính năng bảo mật tiên tiến từ Cloudflare, bảo vệ website khỏi các cuộc tấn công DDoS, bot độc hại và các mối đe dọa khác.
  • Hỗ trợ đa dạng: Cung cấp nhiều tính năng hữu ích như redirects, custom domains, environment variables, build hooks, SEO enhancements, và API integrations.
  • Dễ dàng sử dụng: Giao diện trực quan, dễ thao tác, phù hợp cho cả người mới bắt đầu và lập trình viên dày dặn kinh nghiệm.
  • Miễn phí: Gói miễn phí cho phép triển khai website không giới hạn băng thông, static requests và site. Gói trả phí cung cấp nhiều tính năng nâng cao và dung lượng lưu trữ lớn hơn.

Cloudflare là gì?

Cloudflare Pages là lựa chọn lý tưởng cho:

  • Lập trình viên front-end: Triển khai website JAMstack nhanh chóng và dễ dàng.
  • Website cá nhân: Blog, portfolio, landing page, v.v.
  • Website doanh nghiệp nhỏ: Website giới thiệu, website marketing, v.v.
  • Dự án thử nghiệm: Thử nghiệm ý tưởng mới, phát triển prototype nhanh chóng.

Cloudflare là gì?

3. Chi phí hosting

Có 3 gói chính là Free, Pro và Business. Với những dự án cá nhân thì gói Free quá đủ để sử dụng.

Chi phí hosting

II. Hướng dẫn deploy project

1. Điều kiện tiên quyết

Để deploy project của bạn lên Cloudflare Pages, bạn cần có:

  • Một tài khoản Github
  • Một tài khoản Cloudflare
  • Một repository và đã upload project lên github (repo ở chế độ public hoặc private đều được) hoặc các file tĩnh (HTML, CSS, JS) đã build sẵn.

2. Kết nối dự án

Bước 1: ở sidebar bên trái chọn mục Workers & Pages -> Overview -> tick chọn Create application.

Kết nối dự án

Bước 2: nhấn vào Pages -> ở mục này bạn có thể kết nối với Git repository hoặc upload file tĩnh.

Kết nối dự án

Nếu bạn chọn kết nối với Git repository, bạn chỉ cần thêm tài khoản Github của mình vào, sau khi kết nối thành công:

  • Chọn repo bạn muốn deploy.
  • Nhấn begin setup.
  • Cấu hình frameworks cũng như branch.
  • Deploy và chờ hoàn tất.

Kết nối dự án

III. Tổng kết

Hy vọng các thông tin trên giúp bạn hiểu rõ về CloudflareCloudflare Pages cũng như cách deploy project của bạn lên môi trường internet. Cảm ơn bạn đã đọc bài viết này ❤️

Bài viết gốc được đăng tải tại blog.thanhnamnguyen.dev

Xem thêm:

Đừng bỏ lỡ hàng loạt IT job tại TopDev

9 mẹo và thủ thuật CSS hữu ích có thể bạn chưa biết

Bài viết được sự cho phép của tác giả Bùi Thị Huyền

CSS là Cascading Style Sheets và được sử dụng để mô tả cách các phần tử HTML sẽ hiển thị. Đây là một trong những công nghệ đầu tiên được học sớm nhất để phát triển web, các developer tuyệt đối phải biết cơ bản.

Mặc dù có vẻ như CSS không thể làm được gì nhiều ngoài việc cung cấp màu sắc, vị trí, v.v. của HTML, nhưng nó cũng có thể cho phép chúng ta tạo hình động và mang lại sức sống cho các ứng dụng và trang web của chúng ta. Có lẽ bây giờ nhiều người trong chúng ta quan tâm đến việc thành thạo CSS và học nó rất sâu, nhưng hoàn toàn đáng để biết một số mẹo và thủ thuật hữu ích có thể giúp bạn tạo các trang web tuyệt đẹp!

Bạn đã sẵn sàng để xem 9 mẹo và thủ thuật có thể thay đổi cách sử dụng CSS của bạn từ bây giờ chưa?

Hãy bắt đầu!

1. Vertical align với flex

Từ khi Flexible Box Layout Model xuất hiện, nó trở nên rất phổ biến, bởi vì nó làm cho việc định vị và sắp xếp các element dễ dàng hơn. Sử dụng flex (Flexible Box Layout Model sub-property) giúp căn chỉnh dọc nhanh, đẹp và dễ dàng trước khi chúng ta phải thực hiện một chút trong nhiều trường hợp.

Chúng ta hãy xem ví dụ code cho định vị dọc với flex bởi vì nó cho phép thực hiện nhiều việc căn chỉnh.

Như bạn có thể thấy trong đoạn code trên, chúng ta đã sử dụng display: flex và align-items: centerjustify-content: center để đảm bảo phần tử con của chúng ta sẽ nằm chính xác ở giữa phần tử cha.

Dễ chứ nhỉ?

2. Blend modes

Chúng tôi có thể thực hiện nhiều thứ hay ho trong CSS ngay bây giờ và một trong số đó là blend mode (chế độ hòa trộn).

Có hai thuộc tính cho blend mode:

  • mix-blend-mode: xác định hoà trộn giữa phần tử và phần tử phía sau ,
  • background-blend-mode: định nghĩa hoà trộn giữa hình nền và màu nền của phần tử.

Hãy xem cách nó hoạt động:

Trong đoạn code trên, chúng tôi đặt hình ảnh và tiêu đề bằng text. Text là một yếu tố được pha trộn với hình ảnh. Chúng tôi sử dụng giá trị overlay, nhưng có 15 giá trị khác có thể được sử dụng. Bây giờ, hãy kiểm tra ví dụ code background-blend-mode:

Trong trường hợp này, chúng ta có thể thấy hình ảnh nền đã được pha trộn với màu sắc như thế nào. Hình ảnh đầu tiên là trước khi trộn, và hình ảnh thứ hai là sau khi trộn.

Chúng ta có thể làm gì với CSS không?

3. Parallax scrolling

Parallax là một xu hướng rất phổ biến trong thiết kế web hiện đại. Đó là về việc scroll nội dung background ở tốc độ khác với nội dung background trước khi chúng ta cuộn trang.

Chúng ta hãy xem làm thế nào phép thuật này có thể được thực hiện bằng CSS:

Trong ví dụ này, bạn có thể thấy text và hình nền đang di chuyển khác nhau như thế nào. Chúng tôi đã sử dụng TransformZ, để buộc chặt một yếu tố và làm chậm một yếu tố khác. Có vẻ tốt, phải không?

4. Shape outside

Có một tính năng tuyệt vời khác đi kèm với CSS và nó không phổ biến lắm. đó là thuộc tính shape-outside. Nó quyết định cách nội dung sẽ bao quanh phần tử nổi.

Hãy xem cách nó hoạt động:

Trong đoạn code trên, bạn có thể thấy rằng text tràn ra vòng tròn. Chúng tôi đặt giá trị của shape-outside thành circle 50%, nhưng cũng có thể đặt hình ảnh, hình tam giác, hình vuông, v.v. Hãy kiểm tra và chơi với nó!

  CSS Preprocessor là gì? Cách sử dụng có khó không?

  CSS Loader là gì? Cách sử dụng CSS Loader trong trang Web của bạn

5. Clip path

Đôi khi designer sáng tạo hơn một chút, và bây giờ bạn phải đặt một hình ảnh trong một hình dạng cụ thể, như hình tam giác hoặc khác. Đối với điều này, bạn có thể sử dụng thuộc tính clip-path.

Hãy xem nhanh cách thức hoạt động của nó:

Trong ví dụ trên, tôi đã tạo một hình tròn, nhật thực và hình dạng đa giác tùy chỉnh.

6. Image filters

Chơi với hình ảnh có thể mang lại nhiều hiệu ứng tuyệt vời cho layout và giúp tạo ra kết quả tuyệt đẹp. CSS cho phép sử dụng nhiều filter trên hình ảnh để giúp các developer chơi với đồ họa mà không thay đổi nó trong Photoshop.

Chúng ta hãy xem các filter chúng ta có thể sử dụng:

Trong ví dụ trên, bạn có thể thấy 7 filter khác nhau được sử dụng trong cùng một hình ảnh.

7. CSS animations

Animation có thể thu hút sự chú ý của người dùng trên trang web và đây là lý do tại sao nó được sử dụng trong thiết kế web rất thường xuyên. Tạo nó trong CSS làm cho mọi thứ dễ dàng hơn nhiều, hãy xem xét kỹ hơn một hoạt hình mẫu trong CSS:

Trong đoạn code trên, tôi đã tạo một hình tròn nhỏ thay đổi vị trí và độ mờ cứ sau 25% cho đến khi nó nhận được 100% và sau đó bắt đầu lại. Cũng có thể thay đổi màu sắc và các thuộc tính khác của các yếu tố.

Tham khảo Việc làm lập trình CSS hấp dẫn trên TopDev

8. Element rotation

Một loại animation khác có thể được thực hiện trong CSS là rotation, nó có tính năng động hơn một chút và thật tuyệt vời khi thêm một số phần tử vào element loader, logo hoặc hình ảnh trong bộ sưu tập.

Hãy kiểm tra những gì chúng ta có thể làm với rotation:

Trong ví dụ này, chúng ta có thể thấy một ngôi sao quay bốn lần trong một chu kỳ của animation.

9. Mask

Nếu bạn đã từng làm thiết kế đồ họa, có lẽ bạn biết mask hữu ích như thế nào. Nó cũng có thể sử dụng mask hình ảnh trong CSS. Hãy cùng cố gắng làm masks cho hình ảnh:

Trong ví dụ trên, tôi đã tạo mask gradient hình tròn, nhưng bạn cũng có thể sử dụng đồ họa SVG làm mask, bằng cách thêm URL vào file.

Kết luận

Tôi hy vọng bạn sẽ thấy những mẹo và thủ thuật này hữu ích và hữu ích cho việc code trong tương lai của bạn. Nếu bạn biết bất kỳ thủ thuật thú vị nào trong CSS, hãy chia sẻ yêu thích của bạn với tôi trong các bình luận hoặc trên mạng xã hội, tôi thực sự muốn biết.

Bài viết gốc được đăng tải tại viblo

Xem thêm:

Xem thêm Việc làm IT hấp dẫn tại TopDev

Thiết kế cấu trúc folder HMVC cho Laravel

Bài viết được sự cho phép của tác giả Duy Phan

Ở bài viết này mình sẽ hướng dẫn bạn bắt đầu xây dựng một ứng dụng HMVC với Laravel, và tận dụng sức mạnh của Composer khi quản lí modules.

Tạo mới một dự án Laravel

Khởi tạo một dự án Laravel mới bằng dòng lệnh sau

$ composer create-project --prefer-dist laravel/laravel hmvc-project
$ cd hmvc-project

Lúc này cấu trúc thư mục của chúng ta sẽ có dạng như thế này

|- app/
    |- Console/
    |- Exceptions/
    |- Http/
    |- Providers/
    User.php
|- bootstrap/
|- config/
|- database/
|- public/
|- resources
|- routes/
|- storages/
|- tests/
|- vendor/
...

Khởi tạo thư mục chứa các modules HMVC

Chúng ta sẽ cố gắng không sử dụng cấu trúc thư mục mặc định để tránh tối đa sự xung đột hoặc khó khăn lúc nâng cấp lên các phiên bản cao hơn khi mà Laravel định kỳ release 6 tháng một lần. Điều này cũng giúp bạn đạt được sự thuận tiện tối đa khi tích hợp vào một dự án sẵn có.

Từ thư mục Laravel gốc, bạn tạo các thư mục tương ứng qua các dòng lệnh sau:

$ mkdir platform
$ mkdir platform/core
$ mkdir platform/plugins
$ mkdir platform/themes

Lúc này chúng ta sẽ có cấu trúc thư mục như sau

Khởi tạo thư mục chứa các modules HMVC

Tất cả source code của chúng ta sẽ được gói gọn bên trong folder platform.

  • core: chứa tất cả các modules không thể thiếu để có thể khởi chạy ứng dụng.
  • plugins: chứa các modules được thực thi dưới dạng trình cắm. Khi chúng ta xóa bỏ hoặc vô hiệu hóa chúng ra khỏi composer.json thì chúng sẽ không được khởi chạy, nhưng cũng không ảnh hưởng đến hệ thống hiện tại.
  • themes: chứa danh sách các themes của hệ thống. Một thời điểm chỉ nên có một theme được kích hoạt. Theme sẽ là phần sử dụng các modules core và plugins để hiển thị dữ liệu và thao tác với người dùng.

  Repository Design Pattern và ứng dụng của nó trong Laravel

  Những mẹo nhỏ khi làm việc với Laravel Eloquent

Chỉnh sửa file composer.json

Thêm đoạn khai báo sau vào trong file composer.json từ thư mục gốc của dự án. Đoạn khai báo này giúp composer biết được nơi tìm kiếm các custom module của bạn.

"repositories": [
    {
        "type": "path",
        "url": "./platform/core/*"
    },
    {
        "type": "path",
        "url": "./platform/plugins/*"
    },
    {
        "type": "path",
        "url": "./platform/themes/*"
    }
]

Cấu trúc một module trong dự án sẽ tương tự một Laravel pakage. Bạn có thể tham khảo thêm ở liên kết https://laravel.com/docs/7.x/packages.

Từ thư mục platform/plugins, bạn cần tạo ra cấu trúc thư mục như sau:

cau-truc-package

Việc tạo ra một cấu trúc như vầy khá là tốn công sức, nên mình có viết một Laravel package giúp các bạn thực hiện việc này nhanh chóng ^_^

Bạn mở cửa sổ terminal từ thư mục gốc dự án và thực thi dòng lệnh:

$ composer require duyphan2502/hmvc-tools

Mình có hỗ trợ một số lệnh như:

  • Tạo một module mới
  • Tạo các tập tin thường hay sử dụng, ví dụ như controllerrequestmiddlewaremigrationfacadeview composer

Bạn có thể xem tài liệu hướng dẫn kỹ hơn ở liên kết sau https://github.com/duyphan2502/hmvc-tools.

Để tạo ra module mới, từ cửa sổ terminal bạn thực thi câu lệnh:

$ php artisan module:create test-module

Hệ thống sẽ gợi ý bạn chỉ định loại module mà bạn muốn khởi tạo. Ở đây bạn sẽ chọn plugins.

create-module

Khi mở tập tin composer.json trong thư mục platform/plugins/test-module, bạn sẽ thấy đoạn khai báo sau:

{
    "name": "plugins/test-module",
    "require": {},
    "require-dev": {},
    "autoload": {
        "psr-4": {
            "TestModule\\": "src/"
        }
    },
    "extra": [],
    "minimum-stability": "dev",
    "description": "Test HMVC module"
}

Bạn cũng đừng quên đăng ký provider TestModule\Providers\ModuleServiceProvider:class vào config/app.php trong thư mục gốc.

Nếu bạn không muốn đăng ký một cách thủ công như vậy, bạn có thể đăng ký auto register cho Laravel bằng cách cập nhật lại tập tin platform/plugins/test-module/composer.json.

{
    ...,
    "extra": {
        "laravel": {
            "providers": [
                "TestModule\\Providers\\ModuleServiceProvider"
            ]
        }
    },
}

Tiếp theo, chúng ta sẽ khai báo module này vào composer.json của dự án bằng dòng lệnh:

$ composer require plugins/test-module:*

Khởi tạo một controller mới cho module của chúng ta:

$ php artisan module:make:controller test-module Test --resource

Mở tập tin platform/plugins/test-module/routes/web.php và cập nhật thông tin route:

use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;

$moduleRoute = 'test-module';

Route::group(['prefix' => $moduleRoute], function (Router $router) {
    $router->resource('', 'TestController');
});

Tiếp theo, tạo ra một tập tin platform/plugins/test-module/resources/views/index.blade.php và cập nhật nội dung cho nó như sau

code-for-view

Đến đây, mọi thứ cơ bản đã hoàn thành. Chúng ta bắt đầu kiểm tra xem module mới tạo đã hoạt động đúng chưa.

Xem thêm nhiều chương trình tuyển dụng Laravel hấp dẫn trên TopDev

Từ terminal, thực thi câu lệnh:

$ php artisan serve
Laravel development server started: http://127.0.0.1:8000

Mở trình duyệt của bạn lên và truy cập theo đường dẫn http://127.0.0.1:8000/test-module.

module-render-success

Các bạn có thể tải xuống mã nguồn của bản demo này theo link sau https://github.com/duyphan2502/demo-hmvc.

Tổng kết

Bạn có thể thấy rằng, bản chất của module chính là một ứng dụng Laravel thu nhỏ, với đầy đủ các thành phần như ControllerModelProvider,…

Phía trên chỉ là một ví dụ khá đơn giản, khi mà chỉ có một plugin duy nhất.

Bên dưới là cấu trúc mà CMS mà mình đang xây dựng thực tế (Webed CMS).

webed-cms-structure

Đây cũng là CMS mà blog này đang sử dụng.

Tất cả các core modules sẽ được require bởi module core/basecomposer.json ở thư mục gốc chỉ cần require core/base là đủ. Bạn cũng cần đảm bảo việc các plugins được load sau core modules bằng cách require core/base ở các composer.json của plugins.

Do kiến trúc đã được định nghĩa ngay từ đầu, nên khi có lỗi ở đâu đó xảy ra, mình và đồng nghiệp rất dễ dàng debug và tìm ra root cause. Khi dự án lớn dần thì cũng dễ dàng kiểm soát và mở rộng hơn. Việc merge code giữa các team hoặc thành viên trong nhóm cũng trở nên đơn giản nhiều.

Ví dụ như mình cần một bạn trong nhóm phát triển tính năng tích hợp hệ thống với GHN thì bạn đó sẽ làm việc trên một module riêng biệt, không tác động tới những phần khác. Thậm chí việc loại bỏ một module cũng dễ dàng khi chỉ cần xóa nó ra khỏi composer.json.

Kết thúc chương trình truyền hình đến đây là hết 😀 hẹn gặp lại các bạn trong các series chọc phá laravel sắp tới. Nếu các bạn có ý kiến hay đóng góp về bài viết thì để lại bình luận bên dưới nhé.

Cám ơn các bạn đã theo dõi.

Bài viết gốc được đăng tải tại duypt.dev

Xem thêm:

Tham khảo thêm các vị trí tuyển dụng ngành IT tại Topdev

Top 25+ câu hỏi phỏng vấn Kubernetes mọi cấp độ (P2)

Bài viết được sự cho phép của tác giả Nguyễn Thành Nam

Kubernetes đã trở thành một công nghệ quan trọng trong lĩnh vực điện toán đám mây và DevOps. Để chuẩn bị cho các cuộc phỏng vấn liên quan đến Kubernetes, việc nắm vững các câu hỏi phổ biến là rất cần thiết. Bài viết này TopDev sẽ tổng hợp hơn 25 câu hỏi phỏng vấn Kubernetes ở mọi cấp độ, từ cơ bản đến nâng cao, giúp bạn tự tin hơn trong quá trình tìm kiếm cơ hội nghề nghiệp trong lĩnh vực này.

II. Câu hỏi phỏng vấn về Kubernetes

11. Hoàn thành file thông số cấu hình sau để làm cho nó Ingress?

metadata:
  name: someapp-ingress
spec:

Thực hiện:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
 name: someapp-ingress
spec:
 rules:
 - host: my.host
   http:
     paths:
     - backend:
         serviceName: someapp-internal-service
         servicePort: 8080

12. Cấu hình TLS với Ingress?

Thêm tls và secretName:

spec:
 tls:
 - hosts:
   - some_app.com
   secretName: someapp-secret-tls

13. Có vấn đề gì khi dùng namespace mặc định?

Chỉ sử dụng namespace mặc định, sẽ trở nên khó khăn theo thời gian để có được cái nhìn tổng quan về tất cả các ứng dụng bạn có thể quản lý trong cụm của mình. Namespace giúp dễ dàng tổ chức các ứng dụng thành các nhóm có ý nghĩa, chẳng hạn như namespace của tất cả các ứng dụng giám sát và namespace cho tất cả các ứng dụng bảo mật, v.v.

Namespace cũng có thể hữu ích để quản lý môi trường Blue/Green trong đó mỗi namespace có thể bao gồm một phiên bản ứng dụng khác nhau và cũng chia sẻ tài nguyên trong namespace khác (namespace như logging, giám sát, v.v.).

Một trường hợp sử dụng khác cho namespace là một cụm có nhiều nhóm. Khi nhiều đội sử dụng cùng một cụm, họ có thể dẫm chân lên nhau. Ví dụ: nếu họ kết thúc việc tạo một ứng dụng có cùng tên, điều đó có nghĩa là một trong các nhóm sẽ ghi đè ứng dụng của nhóm kia vì không thể có hai ứng dụng trong Kubernetes có cùng tên (trong cùng một namespace).

14. Cho biết dịch vụ và namespace trong file sau?

apiVersion: v1
kind: ConfigMap
metadata:
  name: some-configmap
data:
  some_url: silicon.chip

Trả lời: Dịch vụ là “silicon”, namespace là “chip”.

15. Operator là gì?

“Các operator là mở rộng phần mềm cho K8s sử dụng các tài nguyên tùy chỉnh để quản lý các ứng dụng và các thành phần của chúng. Các operator tuân theo các nguyên tắc Kubernetes, đặc biệt là vòng điều khiển.”

16. Tại sao lại cần Operator?

Quá trình quản lý các ứng dụng trong Kubernetes không đơn giản như quản lý các ứng dụng không trạng thái, trong đó việc đạt được trạng thái mong muốn và nâng cấp đều được xử lý theo cùng một cách cho mọi bản sao. Trong các ứng dụng trạng thái, việc nâng cấp mỗi bản sao có thể yêu cầu xử lý khác nhau do tính chất trạng thái của ứng dụng, mỗi bản sao có thể ở một trạng thái khác nhau. Do đó, chúng ta thường cần một operator để quản lý các ứng dụng trạng thái. Operator Kubernetes phải hỗ trợ việc này.

Điều này cũng sẽ giúp tự động hóa quy trình tiêu chuẩn trên nhiều cụm Kubernetes

  Một số khái niệm cần biết trong Kubernetes Architecture

  Cách sử dụng Lens để quản lý Kubernetes đỡ vất vả hơn

17. GKE là gì?

GKE là Google Kubernetes Engine dùng cho quản lý và điều phối container Docker. Với sự trợ giúp của Google Public Cloud, ta còn có thể điều phối trên cụm container.

18. Ingress Default Backend là gì?

Nó chỉ định những gì cần làm với một yêu cầu đến cụm Kubernetes không được ánh xạ tới bất kỳ backend nào, tức là phải làm gì khi không có quy tắc nào được xác định cho yêu cầu HTTP đến. Nếu backend mặc định không được xác định, bạn nên xác định nó để người dùng vẫn thấy một số loại thông báo thay vì một lỗi không rõ ràng.

19. Cách để chạy Kubernetes cục bộ?

Kubernetes có thể được thiết lập cục bộ bằng cách sử dụng công cụ Minikube. Nó chạy một nhóm nút đơn trong một máy ảo trên máy tính. Do đó, nó cung cấp một cách hoàn hảo cho người dùng vừa mới học Kubernetes.

20. Cân bằng tải với Kubernetes?

Cân bằng tải là một trong những cách phổ biến và tiêu chuẩn để hiển thị các dịch vụ. Có hai loại cân bằng tải trong K8s và chúng là:

  • Internal load balancer: Loại cân bằng này tự động cân bằng tải và phân bổ các pod với tải đến cần thiết.
  • External load balancer: Loại cân bằng này hướng lưu lượng truy cập từ các tải bên ngoài đến các pod backend.

21. File cấu hình triển khai bên dưới nghĩa là gì?

spec:
  containers:
    - name: USER_PASSWORD
      valueFrom:
        secretKeyRef:
          name: some-secret
          key: password

Giải thích

Biến môi trường USER_PASSWORD sẽ lưu giá trị từ khoá mật khẩu được gọi trong “some-secret”. Nói cách khác bạn tham chiếu một giá trị từ một Kubernetes Secret.

22. Sự khác biệt giữa Docker Swarm và Kubernetes?

  • Quy trình cài đặt của K8s rất phức tạp nhưng nếu nó được cài đặt một lần thì cụm này rất mạnh mẽ. Mặt khác, quá trình cài đặt Docker Swarm rất đơn giản nhưng cụm không mạnh mẽ chút nào.
  • Kubernetes có thể xử lý quy mô tự động nhưng Docker Swarm không thể xử lý tự động mở rộng các nhóm dựa trên tải đến.
  • Kubernetes là một Framework đầy đủ. Vì nó duy trì trạng thái cụm ổn định hơn nên tự động thay đổi tỷ lệ không nhanh như Docker Swarm.

23. Cách khắc phục sự cố nếu POD không lên lịch?

Trong bộ lập lịch của K8 chịu trách nhiệm tạo các pod vào các nút. Có nhiều yếu tố có thể dẫn đến POD không thể khởi động. Phổ biến nhất là hết tài nguyên, hãy sử dụng các lệnh như kubectl description <POD> -n <Namespace> để xem lý do tại sao POD không được khởi động. Ngoài ra, hãy theo dõi kubectl để nhận các sự kiện để xem tất cả các sự kiện đến từ cụm.

24. Cách chạy POD trên một nút cụ thể?

Các cách khác nhau để làm điều đó:

  • nodeName: chỉ định tên của nút trong cấu hình thông số POD, nó sẽ cố chạy POD trên nút đã chỉ định.
  • nodeSelector: Gán một nhãn cụ thể cho nút có tài nguyên đặc biệt và sử dụng cùng một nhãn trong thông số POD để POD sẽ chỉ chạy trên nút đó.
  • nodeaffinitiesWhileSchedulingIgnoredDuringExecutionfavouriteDuringSchedulingIgnoredDuringExecution là các yêu cầu cứng và mềm để chạy POD trên các nút cụ thể. Điều này sẽ thay thế nodeSelector trong tương lai. Nó phụ thuộc vào các nhãn nút.

25. Các cách khác nhau để cung cấp kết nối mạng bên ngoài cho K8 là gì?

Theo mặc định, POD sẽ có thể kết nối với mạng bên ngoài nhưng ngược lại, chúng ta cần thực hiện một số thay đổi. Các tùy chọn sau có sẵn để kết nối với POD từ thế giới bên ngoài.

  • Nodeport (hiển thị cổng trên mỗi nút cho giao tiếp với chúng)
  • Load balancers (Lớp L4 của giao thức TCP/IP)
  • Ingress (Lớp L7 của giao thức TCP/IP)

Một phương thức khác là dùng kube-proxy để hiển thị dịch vụ với IP cụm trên cổng hệ thống cục bộ.

$ kubectl proxy --port=8080

26. Làm thế nào chúng ta có thể chuyển tiếp cổng ‘8080 (container) -> 8080 (service) -> 8080 (ingress) -> 80 (browser) và nó có thể được thực hiện như thế nào?

Ingress đang để lộ cổng 80 ra bên ngoài để trình duyệt truy cập và kết nối với dịch vụ lắng nghe trên 8080. Theo mặc định, ingress sẽ lắng nghe trên cổng 80. “Ingress controller” là một nhóm nhận lưu lượng truy cập bên ngoài và xử lý quá trình ingress và được định cấu hình bởi tài nguyên ingress. Vì vậy, bạn cần phải cấu hình ingress selector và nếu không có ‘ingress controller selector’ được đề cập thì không có bộ ingress controller nào sẽ quản lý quá trình ingress.

Config ingress có thể như sau:

host: abc.org
http:
paths:
backend:
serviceName: abc-service
servicePort: 8080
Then the service will look like
kind: Service
apiVersion: v1
metadata:
name: abc-service
spec:
ports:
protocol: TCP
port: 8080 # port to which the service listens to
targetPort: 8080

Bài viết gốc được đăng tải tại blog.thanhnamnguyen.dev

Xem thêm:

Xem thêm các việc làm CNTT hấp dẫn trên TopDev

Top 25+ câu hỏi phỏng vấn Kubernetes mọi cấp độ (P1)

Bài viết được sự cho phép của tác giả Nguyễn Thành Nam

I. Giới thiệu Kubernetes

Giới thiệu Kubernetes

Kubernetes là công nghệ phân phối mã nguồn mở giúp ta lên lịch và thực thi container ứng dụng trên nhiều cụm. Kubernetes bao gồm hai kiểu tài nguyên:

  • Master: Điều phối tất cả các hoạt động trong cụm. Ví dụ: lập lịch ứng dụng, duy trì trạng thái của ứng dụng, mở rộng ứng dụng và phát hành ra các bản cập nhật mới
  • Node: Một nút là một phiên bản của hệ điều hành đóng vai trò là một worker trong cụm Kubernetes.

Ngoài ra, Node có hai thành phần:

  • Kubelet: Tác nhân quản lý và giao tiếp với master
  • Tool (Docker/container): Công cụ để chạy các hoạt động container

Giới thiệu Kubernetes

Nó được thiết kế dựa trên cơ sở là một tập hợp các container được kết hợp lỏng lẻo, tập trung vào việc triển khai, duy trì và mở rộng khối lượng công việc. Hoạt động như một động cơ để giải quyết trạng thái bằng cách hội tụ trạng thái thực tế và trạng thái mong muốn của hệ thống (tự phục hồi). Ẩn khỏi phần cứng bên dưới của các nút và cung cấp giao diện thống nhất cho khối lượng công việc được triển khai và sử dụng nhóm tài nguyên (phần cứng) được chia sẻ để đơn giản hóa việc triển khai.

Pod là đơn vị nhỏ nhất của các đối tượng có thể được triển khai trên Kubernetes, Kubernetes đóng gói một hoặc nhiều container vào một cấu trúc cấp cao hơn được gọi là pod.

POD luôn chạy trên một nút nhưng chúng chia sẻ một số tài nguyên có thể là volume chung, IP duy nhất của cụm, thông tin về cách chạy từng container. Tất cả các container chứa trong pod sẽ được lập lịch trên một nút tương đương.

Các Service là cách thống nhất để truy cập khối lượng công việc trên các nhóm, Control plane là cốt lõi của Kubernetes, là một máy chủ API cho phép bạn truy vấn, thao tác trạng thái của một đối tượng trong Kubernetes.

Pod_Network

Hình ảnh sau đây mô tả luồng công việc của Kubernetes từ cấp độ cao, trong đó file YAML dùng để mô tả ứng dụng, còn được gọi là file cấu hình hoặc thông số kỹ thuật để có thể triển khai các ứng dụng được đóng gói dưới dạng pod trong cụm hoặc nút.

Kubernetes_Workflow

II. Câu hỏi phỏng vấn về Kubernetes

1. Làm thế nào để thực hiện bảo trì trên nút K8s?

Bất cứ khi nào có sẵn các bản vá bảo mật, quản trị viên Kubernetes phải thực hiện nhiệm vụ bảo trì để áp dụng bản vá bảo mật cho container đang chạy nhằm ngăn nó khỏi lỗ hổng bảo mật, đây thường là một phần không thể tránh khỏi trong quản trị. Hai lệnh sau rất hữu ích để thoát nút K8s một cách an toàn.

kubectl cordon
kubectl drain –ignore-daemon set

Lệnh đầu tiên chuyển node sang chế độ bảo trì hoặc làm cho node không khả dụng, tiếp theo là lệnh kubectl drain sẽ loại bỏ pod khỏi node. Sau khi lệnh thoát thành công, bạn có thể thực hiện bảo trì.

Lưu ý nếu bạn muốn thực hiện bảo trì trên một pod đơn, có thể dùng hai lệnh sau:

  • kubectl get nodes: hiển thị tất cả node
  • kubectl drain <node name>: thoát một node cụ thể

2. Làm cách nào để kiểm soát việc sử dụng tài nguyên của POD?

Ta có thể dùng limit và request:

  • Request: Số lượng tài nguyên đang được yêu cầu cho một container. Nếu một container vượt quá yêu cầu tài nguyên của nó, nó sẽ được điều chỉnh trở lại.
  • Limit: Giới hạn trên đối với các tài nguyên mà một container duy nhất có thể sử dụng. Nếu nó cố gắng vượt quá giới hạn được xác định trước này, nó có thể bị chấm dứt nếu K8 quyết định rằng một container khác cần những tài nguyên này. Nếu bạn nhạy cảm với việc khởi động lại pod, bạn nên đặt tổng tất cả các giới hạn tài nguyên container nhỏ hơn hoặc bằng tổng dung lượng tài nguyên cho cụm của bạn.

Ví dụ:

apiVersion: v1
kind: Pod
metadata:
 name: demo
spec:
 containers:
 - name: example1
 image:example/example1
 resources:
   requests:
     memory: "_Mi"
     cpu: "_m"
   limits:
     memory: "_Mi"
     cpu: "_m"

3. Các dịch vụ K8s khác nhau chạy trên một nút?

Cụm K8 bao gồm hai kiểu nút là executor node và dịch vụ master.

Executor node:

  • Kube-proxy: dịch vụ này có trách nhiệm giao tiếp của pods trong cụm và đến bên ngoài mạng, nó chạy trên mọi nút. Dịch vụ này chịu trách nhiệm duy trì giao thức mạng khi pod của bạn thiết lập một giao tiếp mạng.
  • kubelet: Mỗi nút chạy một dịch vụ kubelet để cập nhật nút đang chạy tương ứng với file cấu hình (YAML hay JSON).

Lưu ý: dịch vụ kubelet chỉ dành cho các container được tạo bởi Kubernetes.

Dịch vụ master

  • Kube-apiserver: Dịch vụ master API hành động như một entry point đến cụm K8.
  • Kube-scheduler: Lập lịch POD theo các tài nguyên có sẵn trên các executor node.
  • Kube-controller-manager: là một vòng điều khiển theo dõi trạng thái được chia sẻ của cụm thông qua apiserver và thực hiện các thay đổi cố gắng di chuyển trạng thái hiện tại sang trạng thái ổn định mong muốn.

  Một số khái niệm cần biết trong Kubernetes Architecture

  Cách sử dụng Lens để quản lý Kubernetes đỡ vất vả hơn

4. PBD là gì?

Quản trị viên Kubernetes có thể tạo một loại triển khai: PodDisruptBudget (PBD) để ứng dụng có tính khả dụng cao, nó đảm bảo rằng số lượng tối thiểu các pods đang chạy được thừa nhận như đã đề cập trong thuộc tính minAvailable. Điều này rất hữu ích khi thực hiện thoát, nơi thoát sẽ tạm dừng cho đến khi PDB được thừa nhận để đảm bảo tính sẵn sàng cao (High Availability) của ứng dụng. Spec sau đây cũng hiển thị minAvailable là 2 ngụ ý số lượng tối thiểu của một pods có sẵn (ngay cả sau cuộc bầu cử).

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
 name: zk-pdb
spec:
 minAvailable: 2
 selector:
   matchLabels:
     app: zookeeper

5. Init container là gì?

Init Containers là các container chạy trước khi container chính chạy với ứng dụng được container hóa của bạn. Chúng thường chứa các script thiết lập chuẩn bị môi trường cho ứng dụng được chứa trong container của bạn. Init Containers cũng đảm bảo môi trường máy chủ rộng hơn đã sẵn sàng để ứng dụng của bạn bắt đầu chạy.

6. Vai trò của cân bằng tải trong Kubernetes?

Load balancer (cân bằng tải) là một cách để phân phối lưu lượng trên nhiều server, nó hữu ích cho việc đảm bảo ứng dụng luôn khả dụng với người dùng.

Vai trò của cân bằng tải trong Kubernetes?

Trong Kubernetes, như hình trên tất cả lưu lượng truy cập đến một địa chỉ IP đơn trên bộ cân bằng tải, để lộ dịch vụ của bạn với internet bên ngoài, nó định tuyến các lưu lượng truy cập đến một pod (thông qua dịch vụ) cụ thể bằng thuật toán Round-Robin. Ngay cả khi bất kỳ pod nào gặp sự cố, cân bằng tải cũng được thông báo để không chuyển lưu lượng truy cập đến nút không khả dụng đó. Do đó, bộ cân bằng tải trong Kubernetes chịu trách nhiệm phân phối một tập hợp các tác vụ (lưu lượng) đến các nhóm.

Xem thêm các việc làm NextJS hấp dẫn trên TopDev

7. Các điều cần biết để bảo mật Kubernetes?

Mặc định, POD có thể giao tiếp với bất kỳ POD nào khác, ta có thể thiết lập chính sách mạng để giới hạn các giao tiếp đó.

  • RBAC (Role-based access control) để thu hẹp các quyền.
  • Dùng namespace để thiết lập ranh giới bảo mật.
  • Thiết lập chính sách điều khiển quản trị để tránh chạy các container đặc quyền.
  • Bật logging kiểm tra.

8. Cách giám sát cụm Kubernetes?

Prometheus dùng cho giám sát Kubernetes. Hệ sinh thái Prometheus bao gồm các thành phần sau:

  • Server chính Prometheus nơi scrape và lưu trữ dữ liệu thời gian
  • Thư viện client cho các lệnh code ứng dụng.
  • Cổng push cho hỗ trợ công việc ngắn hạn.
  • Exporter đặc biệt cho dịch vụ như StatsD, HAProxy, Graphite,…
  • Quản lý cảnh báo để xử lý cảnh báo trên các công cụ hỗ trợ khác nhau.

9. Lấy logs trung tâm của POD?

Kiến trúc này phụ thuộc vào ứng dụng và nhiều yếu tố khác. Sau đây là các mẫu logging phổ biến

  • Node level logging agent.
  • Streaming sidecar container.
  • Sidecar container với logging agent.
  • Xuất trực tiếp logs từ ứng dụng.

Trong quá trình thiết lập, journalbeat và filebeat đang chạy dưới dạng daemonset. Các logs được thu thập bởi những thứ này được chuyển sang kafka, cuối cùng được chuyển vào ngăn xếp ELK.

Điều tương tự cũng có thể thực hiện được bằng cách sử dụng ngăn xếp EFK và fluentd-bit.

10. Làm thế nào để biến dịch vụ trong spec bên dưới thành dịch vụ bên ngoài?

spec:
  selector:
    app: some-app
  ports:
    - protocol: UDP
      port: 8080
      targetPort: 8080

Thêm LoadBalancer và nodePort như bên dưới:

spec:
 selector:
   app: some-app
 type: LoadBalancer
 ports:
   - protocol: UDP
     port: 8080
     targetPort: 8080
     nodePort: 32412

Bài viết gốc được đăng tải tại blog.thanhnamnguyen.dev

Xem thêm:

Xem thêm các việc làm CNTT hấp dẫn trên TopDev

Tổng hợp 100+ ứng dụng AI hữu ích cho mọi ngành nghề (P1)

Khai phá sức mạnh của AI

Các ứng dụng AI tạo sinh đã cách mạng hóa việc tạo nội dung bằng cách sản xuất các nội dung hình ảnh, văn bản và video chỉ trong vài phút.

Sự Tăng Vọt Nhanh Chóng

Kể từ tháng 10 năm 2022, thế giới đã chứng kiến sự tăng vọt chưa từng có về sự quan tâm đến AI tạo sinh, phần lớn nhờ vào sự ra mắt đột phá của ChatGPT.

Dự Đoán Của Gartner

Theo những dự đoán của Gartner, AI tạo sinh sẽ thống lĩnh lĩnh vực dữ liệu. Đến năm 2025, người ta ước tính rằng AI tạo sinh sẽ đóng góp tới 10% tổng số dữ liệu được tạo ra.

Định Hình Bối Cảnh Dữ Liệu

Chúng tôi tại TechNews dự đoán rằng AI tạo sinh sẽ đóng vai trò quan trọng trong cả dữ liệu do máy và con người tạo ra cho đến năm 2025, thể hiện ảnh hưởng sâu rộng của nó đối với các hệ sinh thái dữ liệu.

Xu Hướng Công Nghệ Chiến Lược Của Năm 2023

Trong năm 2023, AI tạo sinh nổi bật như một trong những xu hướng công nghệ chiến lược quan trọng nhất. Các ứng dụng đa dạng của nó mang lại những lợi ích vô giá cho nhiều ngành công nghiệp và nhiều lĩnh vực kinh doanh khác nhau, bao gồm:

  • Chăm Sóc Sức Khỏe: Cách mạng hóa chẩn đoán, khám phá thuốc và chăm sóc bệnh nhân.
  • Marketing: Tạo nội dung cá nhân hóa, cải thiện nhắm mục tiêu quảng cáo và nâng cao trải nghiệm người dùng.
  • Bán Hàng: Tăng cường chiến lược bán hàng với các thông tin dựa trên dữ liệu và sự tương tác với khách hàng.
  • Giáo Dục: Cá nhân hóa tài liệu học tập, tự động hóa việc chấm điểm và cho phép mô phỏng nhập vai.
  • Dịch Vụ Khách Hàng: Nâng cao hỗ trợ khách hàng với ChatBot AI và trợ giúp tức thì.

Khám phá 100+ ứng dụng của AI cho mọi ngành nghề

Trong bài viết này, chúng tôi đã tổng hợp một danh sách hơn 100 ứng dụng AI tạo sinh. Các ứng dụng này bao gồm cả các trường hợp sử dụng chung và cụ thể theo ngành, thể hiện tiềm năng chuyển đổi của công nghệ tiên tiến này.

Nghệ Thuật Sáng Tạo và Thiết Kế

Nghệ Thuật Sáng Tạo và Thiết Kế

1. Nghệ Thuật

AI tạo sinh có thể tạo ra các tác phẩm nghệ thuật, bao gồm tranh vẽ, bản vẽ và nghệ thuật kỹ thuật số. Các nghệ sĩ và nhà thiết kế có thể sử dụng AI để khám phá các hướng sáng tạo mới và tạo ra các tác phẩm độc đáo.

  • DALL-E: Được tạo ra bởi OpenAI, DALL-E chuyên tạo hình ảnh từ mô tả văn bản. Các nghệ sĩ có thể cung cấp các gợi ý văn bản, và AI sẽ tạo ra các hình ảnh tương ứng.
  • DeepDream Generator: Phát triển bởi Google, DeepDream cho phép người dùng biến ảnh thành tác phẩm nghệ thuật siêu thực, mộng mơ. Đây là một công cụ thú vị để thử nghiệm với các hình ảnh do AI tạo ra.
  • DeepArt.io: Nổi tiếng với khả năng chuyển đổi phong cách, DeepArt.io cho phép người dùng áp dụng phong cách của các nghệ sĩ nổi tiếng lên hình ảnh của họ, tạo ra các tác phẩm nghệ thuật có hơi hướng nghệ thuật độc đáo.

2. Thiết Kế Kiến Trúc

AI có thể tạo ra các diễn họa kiến trúc thực tế của các tòa nhà và không gian nội thất, giúp các kiến trúc sư và nhà thiết kế hình dung dự án của họ.

  • Enscape: Enscape là phần mềm thiết kế và trực quan hóa thời gian thực tích hợp với các công cụ thiết kế kiến trúc phổ biến như Revit và SketchUp. Nó cho phép các kiến trúc sư tạo ra các diễn họa tương tác, chân thực của dự án của họ ngay lập tức.

3. Sáng Tác Nhạc

AI có thể sáng tác nhạc trong nhiều thể loại, từ cổ điển đến điện tử, giúp các nhạc sĩ khám phá các bản nhạc mới hoặc tạo nhạc nền cho video.

  • MuseNet của OpenAI: MuseNet của OpenAI là một công cụ sáng tạo âm nhạc dựa trên AI mạnh mẽ có thể sáng tác nhạc trong nhiều thể loại và phong cách. Nó cung cấp cho các nhà soạn nhạc và nhạc sĩ một bộ công cụ sáng tạo để khám phá các bản nhạc và ý tưởng mới.
  • AIVA: AIVA là một nhà soạn nhạc AI chuyên về nhạc cổ điển và dàn nhạc. Đây là một công cụ có giá trị cho các nhà soạn nhạc và nhạc sĩ muốn hợp tác với AI để tạo ra các bản nhạc cổ điển phức tạp và các sắp xếp dàn nhạc.
  • Amadeus Code: Amadeus Code là một trợ lý sáng tác nhạc dựa trên AI giúp các nhạc sĩ tạo ra giai điệu, chuỗi hợp âm và lời bài hát. Nó đặc biệt hữu ích cho các nhạc sĩ đang tìm kiếm cảm hứng và ý tưởng sáng tạo cho các bản nhạc của họ.

4. Thiết Kế Logo

AI có thể tạo logo cho các doanh nghiệp, startup và tổ chức, kết hợp các yếu tố thiết kế và màu sắc để phù hợp với nhận diện thương hiệu của họ.

  • Looka (trước đây là Logojoy): Looka sử dụng AI để tạo các logo tùy chỉnh dựa trên sở thích của người dùng. Nó cung cấp giao diện người dùng thân thiện, nơi bạn có thể nhập chi tiết thương hiệu của mình, và các thuật toán AI sẽ tạo ra các tùy chọn logo phù hợp với yêu cầu của bạn. Người dùng có thể tùy chỉnh và chỉnh sửa các thiết kế theo ý thích.
  • Canva: Canva là một nền tảng thiết kế đa năng bao gồm công cụ tạo logo dựa trên AI. Nó cung cấp một loạt các mẫu, phông chữ và yếu tố thiết kế, cho phép người dùng tạo logo tùy chỉnh nhanh chóng. Canva nổi tiếng với sự dễ sử dụng và tính linh hoạt.

Canva

5. Thiết Kế Thời Trang

Các nhà thiết kế thời trang sử dụng AI để tạo ra các mẫu thiết kế quần áo, hoa văn và thậm chí là các buổi trình diễn thời trang ảo.

  • CLO 3D: CLO 3D là phần mềm thiết kế thời trang mạnh mẽ kết hợp AI để mô phỏng chuyển động của vải và quần áo trong thời gian thực. Nó cho phép các nhà thiết kế tạo các thiết kế quần áo 3D, thử nghiệm với các hoa văn và hình dung cách quần áo sẽ ôm sát và vừa vặn trên các mô hình ảo.
  • NVIDIA Omniverse (trước đây là NVIDIA GauGAN): NVIDIA Omniverse sử dụng AI để tạo ra các môi trường và buổi trình diễn thời trang ảo. Các nhà thiết kế có thể sử dụng AI để xây dựng các bộ diễn thời trang 3D nhập vai, đưa bộ sưu tập của họ vào cuộc sống trong thực tế ảo.

6. Thiết Kế Nội Thất

AI giúp các nhà thiết kế nội thất lập kế hoạch bố trí, chọn đồ nội thất và chọn bảng màu cho các không gian nội thất.

  • Morpholio Board: Morpholio Board là ứng dụng tạo mood board và trình bày thiết kế dựa trên AI dành cho các nhà thiết kế nội thất. Nó giúp các nhà thiết kế tổ chức và hình dung ý tưởng của họ, chọn đồ nội thất và thử nghiệm với các bố trí khác nhau. AI của ứng dụng có thể nhận dạng và gắn thẻ các mục nội thất từ ảnh, giúp dễ dàng tìm nguồn cung cấp sản phẩm.
  • Planner 5D: Planner 5D là công cụ thiết kế nội thất dựa trên AI cho phép các nhà thiết kế tạo sơ đồ sàn 2D và 3D, thử nghiệm với các bố trí đồ nội thất và chọn bảng màu. AI của nó gợi ý các yếu tố thiết kế và cung cấp thiết kế thời gian thực cho trải nghiệm nhập vai.

7. Mô Hình 3D

AI tạo sinh có thể tạo các mô hình 3D của đối tượng, nhân vật hoặc môi trường, mang lại lợi ích cho các ngành như game, kiến trúc và thiết kế sản phẩm.

  • Blender: Blender là phần mềm mô hình 3D mã nguồn mở linh hoạt tích hợp với nhiều plugin và add-on dựa trên AI. Nó cho phép người dùng tạo các mô hình 3D của đối tượng, nhân vật và môi trường trong khi tận dụng AI cho các nhiệm vụ như tạo kết cấu và tạo khung nhân vật.
  • Houdini: Houdini là phần mềm mô hình và hoạt hình 3D mạnh mẽ được sử dụng rộng rãi trong ngành hiệu ứng hình ảnh và game. Nó cung cấp các công cụ tạo mô hình dựa trên quy trình của AI giúp đơn giản hóa việc tạo các môi trường và mô phỏng phức tạp.
  • MODO: MODO là phần mềm mô hình và diễn họa 3D tích hợp AI cho các nhiệm vụ như ánh xạ kết cấu, gỡ lỗi UV và thiết kế dựa trên vật lý. Nó phù hợp với các nhà thiết kế sản phẩm và nghệ sĩ muốn tạo ra các mô hình 3D thực tế.
  • Artbreeder: Artbreeder là nền tảng sáng tạo sử dụng AI tạo sinh để pha trộn và phát triển hình ảnh. Mặc dù nó không phải là công cụ mô hình 3D truyền thống, nhưng nó có thể được sử dụng để tạo các kết cấu, nhân vật và khái niệm môi trường độc đáo có thể được tích hợp vào các dự án mô hình 3D.

8. Thiết Kế Trò Chơi Điện Tử

Các nhà phát triển game sử dụng AI để tạo các cấp độ game, nhân vật và tài sản, tiết kiệm thời gian và mở rộng khả năng game.

  • Unity ML-Agents: Unity ML-Agents là một bộ công cụ dành cho Unity, một trong những công cụ phát triển game phổ biến nhất. Nó cho phép các nhà phát triển game tích hợp máy học và các tác nhân AI vào game của họ. Điều này đặc biệt hữu ích cho việc tạo NPC thông minh và nâng cao tính năng động của trò chơi.
  • Unreal Engine: Unreal Engine cung cấp các khả năng AI và tạo quy trình tiên tiến. Các nhà phát triển game có thể sử dụng các công cụ AI của Unreal Engine để tạo các nhân vật sống động, môi trường động và các hành vi phức tạp cho các yếu tố game. Unreal Engine cũng hỗ trợ thiết kế cấp độ dựa trên AI.

Unreal Engine

9. Kể Chuyện

AI tạo ra các câu chuyện và kịch bản, hỗ trợ các tác giả, nhà biên kịch và người tạo nội dung phát triển cốt truyện và nhân vật.

  • GPT-3 và GPT-4: Các mô hình GPT-3 và GPT-4 của OpenAI là các mô hình xử lý ngôn ngữ tự nhiên linh hoạt có thể tạo văn bản mạch lạc và nhận thức ngữ cảnh. Chúng là các công cụ có giá trị để tạo các câu chuyện, hội thoại và ý tưởng kịch bản. Nhiều nền tảng, chẳng hạn như ChatGPT, tích hợp GPT-3 và GPT-4 để hỗ trợ viết sáng tạo.
  • Sudowrite: Sudowrite là trợ lý viết dựa trên AI cung cấp các gợi ý và cải tiến văn bản trong thời gian thực. Nó có thể giúp các nhà văn tinh chỉnh câu chuyện của họ, cải thiện khả năng đọc và nâng cao sự phát triển của nhân vật bằng cách cung cấp các khuyến nghị nhận thức ngữ cảnh.
  • Reedsy Story Prompt Generator: Reedsy’s Story Prompt Generator là công cụ thân thiện với người dùng cung cấp các gợi ý và ý tưởng câu chuyện do AI tạo ra. Nó bao gồm nhiều thể loại và chủ đề, làm cho nó trở thành tài nguyên hữu ích cho các tác giả tìm kiếm cảm hứng và khái niệm kể chuyện mới.

10. Hoạt Hình

AI hỗ trợ tạo ra các hoạt hình cho phim, hoạt hình và chiến dịch tiếp thị, làm cho việc sản xuất hoạt hình hiệu quả hơn.

  • Adobe Character Animator: Adobe Character Animator sử dụng AI để tạo hoạt hình cho các nhân vật trong thời gian thực bằng cách sử dụng webcam và micro. Nó cho phép các nhà hoạt hình mang nhân vật vào cuộc sống với biểu cảm khuôn mặt, cử chỉ và đồng bộ hóa môi. Nó phổ biến để tạo hoạt hình tương tác và phát trực tiếp.
  • Toon Boom Harmony: Toon Boom Harmony là phần mềm hoạt hình 2D chuyên nghiệp cung cấp các công cụ hỗ trợ AI cho việc tạo khung và hoạt hình nhân vật. Nó được sử dụng rộng rãi trong ngành hoạt hình để tạo các phim hoạt hình và loạt phim hoạt hình.
  • Plotagon: Plotagon là công cụ hoạt hình dựa trên AI đơn giản hóa quy trình tạo ra các câu chuyện và hội thoại hoạt hình. Người dùng có thể viết kịch bản, và AI sẽ tạo các nhân vật và cảnh hoạt hình dựa trên văn bản.

  Sự khác nhau giữa AI, Machine Learning và Deep Learning

  5 công cụ AI hữu ích trong năm 2024 dành cho Developer

Tạo Nội Dung

ai Tạo Nội Dung

11. Viết Bài Blog

AI có thể tạo ra các bài viết blog về nhiều chủ đề khác nhau, tiết kiệm thời gian cho các nhà tiếp thị nội dung và blogger.

Một số công cụ và nền tảng cho việc Viết Bài Blog:

  • Copy.ai: Copy.ai là công cụ viết dựa trên AI đa năng, tạo ra nội dung bài blog, tiêu đề và nội dung quảng cáo. Nó cung cấp nhiều mẫu và tùy chọn để hỗ trợ việc tạo nội dung, rất phù hợp cho các blogger và nhà tiếp thị nội dung.
  • Writesonic: Writesonic sử dụng AI để tạo ra nội dung blog chất lượng cao, mô tả sản phẩm và nhiều nội dung khác. Nó cho phép người dùng nhập từ khóa và gợi ý để tạo ra các bài viết tùy chỉnh, hữu ích cho các blogger muốn tối ưu hóa SEO.

12. Tạo Bài Viết Tin Tức

Các tổ chức tin tức sử dụng AI để tạo bài viết tin tức nhanh chóng, đặc biệt là cho các tin tức nóng và báo cáo tài chính.

Một số công cụ và nền tảng cho việc Tạo Bài Viết Tin Tức:

  • GPT-3 và GPT-4: Các mô hình GPT-3 và GPT-4 của OpenAI là các mô hình xử lý ngôn ngữ tự nhiên linh hoạt có thể tạo ra văn bản mạch lạc và nhận thức ngữ cảnh. Các tổ chức tin tức có thể sử dụng các mô hình này để tự động hóa việc tạo bài viết tin tức, tóm tắt và báo cáo tài chính, đặc biệt khi thời gian là yếu tố quan trọng.

13. Viết Quảng Cáo

AI giúp các nhà tiếp thị tạo ra các bản sao quảng cáo thuyết phục và mô tả sản phẩm.

Một số công cụ và nền tảng cho việc Viết Quảng Cáo:

  • Copy.ai: Copy.ai là công cụ viết đa năng dựa trên AI cung cấp nhiều tính năng cho các nhà tiếp thị. Nó có thể tạo ra các bản sao quảng cáo, mô tả sản phẩm, bài blog và nhiều hơn nữa. Các nhà tiếp thị có thể nhập yêu cầu và gợi ý để tạo ra nội dung hấp dẫn và thuyết phục.
  • ShortlyAI: ShortlyAI sử dụng AI để tạo ra nội dung chất lượng cao, bao gồm bản sao quảng cáo và mô tả sản phẩm. Các nhà tiếp thị có thể cung cấp thông tin như các đặc điểm và lợi ích của sản phẩm, và AI sẽ tạo ra văn bản hấp dẫn phù hợp cho tài liệu quảng cáo.

Việc làm AI lương thưởng hấp dẫn, mới nhất dành cho bạn!

14. Sáng Tác Thơ

AI có thể sáng tác các bài thơ theo nhiều phong cách khác nhau, cung cấp cảm hứng cho các nhà thơ và nhà văn.

Một số công cụ và nền tảng cho việc Sáng Tác Thơ:

  • Poet Assistant by AI21 Labs: Poet Assistant là công cụ AI được thiết kế riêng cho các nhà thơ. Nó có thể tạo ra các bài thơ theo nhiều phong cách, bao gồm sonnet, haiku và thơ tự do. Nó cũng cung cấp các gợi ý và đề xuất để giúp các nhà thơ vượt qua trở ngại khi sáng tác.
  • PoemBot by ChatGPT: PoemBot, sử dụng ChatGPT, có thể hỗ trợ tạo ra thơ theo các gợi ý và yêu cầu. Đây là công cụ nhanh chóng và tiện lợi cho các nhà thơ và nhà văn tìm kiếm cảm hứng ngay lập tức.

15. Tạo Mã Lập Trình

Các nhà phát triển sử dụng AI để tạo ra các đoạn mã lập trình, tăng tốc quá trình phát triển phần mềm.

Một số công cụ và nền tảng cho việc Tạo Mã Lập Trình:

  • Kite: Kite là công cụ hoàn thiện mã và tạo mã lập trình dựa trên AI tích hợp với các trình soạn thảo mã phổ biến như VS Code, PyCharm và Atom. Nó cung cấp các gợi ý mã thông minh, tài liệu và các đoạn mã giúp các nhà phát triển viết mã nhanh hơn và ít lỗi hơn.
  • TabNine: TabNine là công cụ hoàn thiện tự động dựa trên AI hỗ trợ nhiều ngôn ngữ lập trình. Nó sử dụng học sâu để cung cấp các gợi ý mã theo ngữ cảnh và tạo các đoạn mã, làm cho việc lập trình hiệu quả và năng suất hơn.

Kite

16. Tạo Tài Liệu Pháp Lý

AI có thể soạn thảo các tài liệu pháp lý, hợp đồng và thỏa thuận, giảm tải công việc cho các chuyên gia pháp lý.

Một số công cụ và nền tảng cho việc Tạo Tài Liệu Pháp Lý:

  • LawGeex: LawGeex là nền tảng dựa trên AI được thiết kế riêng để tự động hóa việc xem xét và tạo hợp đồng. Nó sử dụng máy học để phân tích và tạo hợp đồng, đảm bảo tuân thủ pháp luật và độ chính xác.
  • PandaDoc: PandaDoc cung cấp nền tảng tự động hóa tài liệu dựa trên AI đơn giản hóa việc tạo hợp đồng, đề xuất và thỏa thuận. Nó bao gồm các mẫu tùy chỉnh và khả năng chữ ký điện tử, tối ưu hóa toàn bộ chu kỳ tài liệu.

17. Nội Dung Quảng Cáo

AI có thể tạo ra nội dung quảng cáo, bao gồm các khẩu hiệu, bản sao quảng cáo và các yếu tố hình ảnh cho các chiến dịch quảng cáo kỹ thuật số.

Một số công cụ và nền tảng cho việc Tạo Nội Dung Quảng Cáo:

  • Phrasee: Phrasee là công cụ tạo bản sao tiếp thị dựa trên AI chuyên tạo ra các dòng tiêu đề email, bản sao quảng cáo và nội dung mạng xã hội hấp dẫn. Nó sử dụng tạo ngôn ngữ tự nhiên để tối ưu hóa thông điệp tiếp thị.
  • Lumen5: Lumen5 là nền tảng tạo nội dung video dựa trên AI. Nó có thể biến nội dung văn bản thành các video quảng cáo hấp dẫn. Đặc biệt hữu ích cho việc tạo video quảng cáo cho các chiến dịch trên mạng xã hội.
  • Rephrase.ai: Rephrase.ai là nền tảng cá nhân hóa video sử dụng AI để tạo ra nội dung video cá nhân hóa cho tiếp thị và quảng cáo. Nó có thể tạo ra các thông điệp video tùy chỉnh để tương tác với khán giả.

18. Chiến Dịch Tiếp Thị Qua Email

Các nhà tiếp thị sử dụng AI để tự động hóa tiếp thị qua email bằng cách tạo ra nội dung email cá nhân hóa.

Một số công cụ và nền tảng cho việc Tạo Chiến Dịch Tiếp Thị Qua Email:

  • Campaign Monitor: Campaign Monitor cung cấp các giải pháp tiếp thị qua email dựa trên AI bao gồm các đề xuất nội dung email cá nhân hóa dựa trên hành vi và sở thích của người đăng ký. Nó cho phép các nhà tiếp thị tạo ra các chiến dịch email mục tiêu cao.
  • Mailchimp: Mailchimp sử dụng AI để cung cấp các đề xuất sản phẩm và nội dung cá nhân hóa cho các chiến dịch tiếp thị qua email. Nó cung cấp các tính năng như phân tích dự đoán và phân đoạn để cung cấp nội dung liên quan cho người đăng ký.
  • HubSpot: Nền tảng tự động hóa tiếp thị của HubSpot bao gồm các khả năng tiếp thị qua email dựa trên AI. Nó cung cấp các đề xuất nội dung email cá nhân hóa, phân đoạn email và quy trình làm việc tự động để nuôi dưỡng khách hàng tiềm năng và tương tác với người đăng ký.

HubSpot

19. Bài Đăng Trên Mạng Xã Hội

AI có thể tạo ra các bài đăng hấp dẫn trên mạng xã hội, tiết kiệm thời gian cho việc quản lý mạng xã hội.

Một số công cụ và nền tảng cho việc Tạo Bài Đăng Trên Mạng Xã Hội:

  • Lumen5: Lumen5 là nền tảng tạo nội dung video dựa trên AI có thể biến nội dung văn bản thành các bài đăng video hấp dẫn trên mạng xã hội. Nó cung cấp các mẫu và tùy chọn tùy chỉnh cho các nền tảng mạng xã hội khác nhau.
  • Quuu: Quuu là công cụ gợi ý nội dung sử dụng AI để đề xuất nội dung phù hợp và được chọn lọc kỹ lưỡng để chia sẻ trên mạng xã hội. Nó giúp các quản lý mạng xã hội khám phá nội dung chất lượng cao để chia sẻ với khán giả.

20. Viết Hồ Sơ Xin Việc

Người tìm việc sử dụng AI để tạo ra hồ sơ xin việc phù hợp với các ứng dụng công việc cụ thể.

Một số công cụ và nền tảng tốt nhất dựa trên AI mà người tìm việc có thể sử dụng để tạo ra hồ sơ xin việc phù hợp cho các ứng dụng công việc cụ thể:

  • Resume.io: Resume.io cung cấp các công cụ xây dựng hồ sơ xin việc dựa trên AI với các mẫu tùy chỉnh và đề xuất nội dung. Nó giúp người dùng tạo ra các hồ sơ xin việc phù hợp với các vai trò công việc và ngành nghề khác nhau.
  • TopCV.com: TopCV cung cấp dịch vụ đánh giá hồ sơ xin việc miễn phí dựa trên AI phân tích hồ sơ hiện tại của bạn và cung cấp phản hồi để cải thiện. Nó cũng cung cấp dịch vụ viết hồ sơ chuyên nghiệp để tạo ra các hồ sơ xin việc phù hợp.
  • ResumeLab: ResumeLab cung cấp các công cụ xây dựng và chỉnh sửa hồ sơ xin việc dựa trên AI. Nó cung cấp các mẫu hồ sơ mục tiêu và tối ưu hóa nội dung để phù hợp với các mô tả công việc cụ thể.

Còn tiếp…

Bài viết gốc được dịch từ TechNews

Xem thêm:

Xem thêm tuyển dụng IT mới nhất tại TopDev

CV Chuẩn ATS, Job Ngon Chốt Hết

promo-7