Bỏ qua điều hướng
EN
DTCode Dev Zine75 bài viết

75 Bài
viết.

Danh sách bài viết

46 bài viếtTrang 2/3

Bài số № 63PRO

Đánh giá RAG: recall@k, MRR, nDCG cho truy xuất; faithfulness, context precision/recall cho câu trả lời

Hệ thống RAG hỏng ở hai nơi: tìm sai tài liệu hoặc trả lời sai dù tài liệu đúng. Tự viết recall@k, precision@k, MRR, nDCG; so sánh hai retriever và thấy bộ câu hỏi trùng từ thổi phồng điểm thế nào; đo faithfulness bằng tách mệnh đề, các metric kiểu RAGAS và ma trận chẩn đoán lỗi.

21 phút đọc

Bài số № 64PRO

Công cụ eval: viết eval bằng Inspect AI, khai báo bằng promptfoo và chọn nền tảng theo dõi

Chuyển harness tự viết sang công cụ chuẩn: Inspect AI với Sample, solver, scorer tự viết, epochs, thử bằng mô hình giả mockllm; promptfoo so sánh hai prompt bằng YAML với assertion code và llm-rubric; cách chọn Inspect, promptfoo, DeepEval, Langfuse, Braintrust.

16 phút đọc

Bài số № 65PRO

Dự án cuối loạt cơ bản: pipeline eval cho chatbot hỗ trợ khách hàng, có cổng chặn trong CI

Ghép mọi thứ đã học thành một dự án chạy được: bộ dữ liệu có regression và capability suite, grader cho từng nhóm lỗi, chạy nhiều trial, báo cáo có khoảng tin cậy Wilson và so sánh ghép cặp, cổng chặn phát hành với GitHub Actions, unit test cho chính grader và mẫu báo cáo dạng câu chuyện.

26 phút đọc

Bài số № 44

Java cơ bản #1: Java là gì, cài JDK 25 và chạy chương trình đầu tiên

Bắt đầu học Java đúng cách năm 2026: Java chạy thế nào (mã nguồn → bytecode → JVM), cài JDK 25 LTS, chọn IDE, viết Hello World theo kiểu mới của Java 25 và kiểu truyền thống, thử code nhanh bằng JShell — kèm lộ trình 12 bài của loạt.

11 phút đọc

Bài số № 45

Java cơ bản #2: biến, kiểu dữ liệu, toán tử và ép kiểu

Tám kiểu nguyên thuỷ của Java và khi nào dùng kiểu nào, biến và hằng, var, phép chia nguyên và phần dư, tràn số, so sánh số thực, ép kiểu rộng–hẹp, toán tử logic, độ ưu tiên — kèm các bẫy kinh điển người mới hay mắc.

16 phút đọc

Bài số № 46

Java cơ bản #3: rẽ nhánh if/switch và vòng lặp for, while

Dạy chương trình ra quyết định và lặp lại: if/else if/else, switch expression hiện đại với ->, yield và pattern, for, while, do-while, break/continue có nhãn, vòng lặp lồng nhau — qua các bài toán thật: xếp loại điểm, menu, đoán số, in bảng cửu chương.

Bài số № 47

Java cơ bản #4: mảng, mảng hai chiều và xử lý chuỗi String, StringBuilder

Lưu nhiều giá trị với mảng: khai báo, duyệt bằng for và for-each, Arrays.sort, tìm kiếm, mảng hai chiều; làm chủ String: bất biến, các phương thức hay dùng, equals vs ==, text block, String.format, StringBuilder khi nối chuỗi trong vòng lặp.

16 phút đọc

Bài số № 48

Java cơ bản #5: phương thức — tham số, giá trị trả về, nạp chồng, đệ quy

Chia chương trình thành các phương thức nhỏ, mỗi phương thức một việc: khai báo, tham số và return, vì sao Java luôn truyền tham trị (kể cả với mảng), phạm vi biến, nạp chồng (overload), varargs, đệ quy và khi nào không nên dùng nó.

Bài số № 49

Java cơ bản #6: lớp và đối tượng — constructor, this, đóng gói, static

Bước vào lập trình hướng đối tượng: lớp là bản thiết kế, đối tượng là thực thể; thuộc tính và phương thức, constructor, từ khoá this, đóng gói với private + getter/setter có kiểm tra, static khác gì instance, null và NullPointerException, package và tổ chức file.

Bài số № 50

Java cơ bản #7: kế thừa, đa hình, lớp trừu tượng, interface và sealed

Ba trụ cột còn lại của OOP: kế thừa với extends và super, ghi đè @Override, đa hình (một lời gọi, nhiều hành vi), lớp trừu tượng, interface và default method, instanceof với pattern matching, sealed + switch pattern, và nguyên tắc ưu tiên kết hợp (composition) hơn kế thừa.

17 phút đọc

Bài số № 51

Java cơ bản #8: record, enum và equals, hashCode, toString

Ba phương thức mọi đối tượng đều có — toString, equals, hashCode — vì sao phải ghi đè chúng cùng nhau và cái bẫy khi quên; record (Java 16+) viết lớp dữ liệu bất biến trong một dòng; enum cho tập giá trị cố định, có thuộc tính, phương thức và dùng trong switch.

15 phút đọc

Bài số № 52

Java cơ bản #9: Collections — List, Set, Map, Generics và sắp xếp với Comparator

Bộ sưu tập co giãn thay cho mảng: ArrayList, HashSet, HashMap và khi nào dùng loại nào; generics và kiểu bao (Integer), duyệt và xoá an toàn, danh sách bất biến List.of, sắp xếp bằng Comparable/Comparator, Deque làm ngăn xếp và hàng đợi, cùng độ phức tạp của từng thao tác.

16 phút đọc

Bài số № 53

Java cơ bản #10: xử lý ngoại lệ và đọc ghi file với java.nio.file

Khi chương trình gặp lỗi: đọc stack trace, try/catch/finally, checked và unchecked exception, throw và throws, tự định nghĩa ngoại lệ nghiệp vụ, try-with-resources tự đóng tài nguyên; đọc ghi file văn bản và CSV bằng Files, Path, UTF-8 — kèm các thói quen xử lý lỗi nên tránh.

15 phút đọc

Bài số № 54

Java cơ bản #11: lambda, tham chiếu phương thức, Stream API và Optional

Lập trình kiểu hàm trong Java: lambda và functional interface (Predicate, Function, Consumer, Supplier), tham chiếu phương thức ::, Stream với filter–map–reduce, sorted, collect, groupingBy, Optional thay cho null — cùng lời khuyên khi nào vòng lặp vẫn tốt hơn stream.

14 phút đọc

Bài số № 55

Java cơ bản #12: dự án cuối — ứng dụng quản lý chi tiêu với Maven và JUnit

Gom toàn bộ kiến thức vào một dự án thật: cấu trúc Maven và pom.xml, chia lớp model–kho dữ liệu–service–giao diện, lưu file CSV, thống kê bằng Stream, cảnh báo ngân sách, viết kiểm thử JUnit 5, đóng gói file jar chạy được — và lộ trình học tiếp sau Java cơ bản.

19 phút đọc

Bài số № 31PRO

Lộ trình AI Engineer 2026: học Machine Learning, Deep Learning, Computer Vision từ đâu

Bản đồ 14 bài để đi từ toán và Python tới Machine Learning, Deep Learning, Computer Vision và triển khai mô hình — kèm danh sách khoá học, sách, tài liệu miễn phí đáng tin cậy và cách học không bị lạc.

Bài số № 30PRO

Toán cho Machine Learning: vector, ma trận, đạo hàm và xác suất viết bằng NumPy

Phần toán tối thiểu để đọc hiểu ML và Deep Learning: tích vô hướng, nhân ma trận, gradient, quy tắc chuỗi, phân phối xác suất, kỳ vọng, Bayes — mỗi khái niệm đi kèm vài dòng NumPy và chỗ nó xuất hiện trong mô hình thật.

14 phút đọc