docs(newsletter): review and clean all newsletter posts (excluding #100)

- Append review footer to 101 newsletter posts
- Remove 13 duplicate sections across 11 posts (link kept in earlier post)
- Strikethrough user's personal commentary about AI tools/models in intros
This commit is contained in:
tiennm99 committed 2026-05-15 19:55:16 +07:00
1 parent 12da47e9b2
commit a3e1da0fe7
101 files changed
+425 -297

No files matched your search

+4
View File
@@ -43,3 +43,7 @@ Bài viết này phân tích hiệu suất của việc sử dụng Virtual Thre
![A Cheatsheet On Message Queues](https://substack-post-media.s3.amazonaws.com/public/images/2ae8b491-b794-446b-8ca5-25ac552161be_1417x1600.png)
![From Monolith to Microservices: Key Transition Patterns](https://substack-post-media.s3.amazonaws.com/public/images/015e9750-7334-424b-b0c4-9c39bc5dd2d2_1600x1596.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -65,3 +65,7 @@ Tuần này có kha khá bonus đến từ nhiều nguồn khác nhau
![Cookies Vs Sessions Vs JWT Vs PASETO](https://substack-post-media.s3.amazonaws.com/public/images/11b53f30-8dba-4520-9b1a-425b54b9b84a_1280x1585.gif)
![Algorithms you should know before taking System Design Interviews](https://substack-post-media.s3.amazonaws.com/public/images/fdbcc119-8f5d-4d27-9a4b-2c8bde82b537_4026x8030.jpeg)
![Top 6 Load Balancing Algorithms](https://substack-post-media.s3.amazonaws.com/public/images/12dffcce-f231-48cc-915f-d53c0f8bce0c_3735x3573.jpeg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -60,3 +60,7 @@ Bài viết blog này trên seangoedecke.com thảo luận về hai kiểu làm
### Bonus #2: Một vài link hay ho khác
- [Self-hosted Alternatives to Popular Software](https://openalternative.co/self-hosted)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -129,3 +129,7 @@ Bài viết cung cấp hướng dẫn chi tiết về cách triển khai thuật
## Bonus?
Huhu, đợt này hỏng có bonus nào hết nha mọi người :<
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -76,3 +76,7 @@ Tóm lại, bài viết cho thấy tiềm năng của LLM trong việc giúp cá
![Git vs GitHub](https://substack-post-media.s3.amazonaws.com/public/images/1112c07d-db40-484e-917b-0071ed7cf354_1280x1532.gif)
![A Cheatsheet on Database Performance](https://substack-post-media.s3.amazonaws.com/public/images/5fd8bdda-52dd-454f-be79-ad548f17810b_1280x1557.gif)
![18 Common Ports Worth Knowing](https://substack-post-media.s3.amazonaws.com/public/images/35ae3f82-afa0-47b9-a2a0-58b6c6d8cfb1_1280x1476.gif)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -104,3 +104,7 @@ Bài viết này cung cấp một cái nhìn sâu sắc về cách tiếp cận
### Bonus 2: Vài ảnh hay ho đến từ [ByteByteGo](https://bytebytego.com/)
![JWT 101: Key to Stateless Authentication](https://substack-post-media.s3.amazonaws.com/public/images/fc4c9cac-3046-4b45-9dd8-7dccc79b4e2c_1280x1608.gif)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -82,3 +82,7 @@ RKG đặt câu hỏi: Liệu công ty của bạn đã sẵn sàng tận dụng
6. Xác định vai trò nào sẽ được tăng cường và vai trò nào sẽ bị thay thế bởi AI
RKG nhấn mạnh rằng đây không phải là những thay đổi nhỏ mà là sự "tái lập" toàn diện công ty - một quá trình cực kỳ khó khăn, đặc biệt đối với những công ty lớn và thành công. Tuy nhiên, đây là cách duy nhất để chuẩn bị cho một tương lai mà "có lẽ mọi người trên trái đất sẽ có khả năng hoàn thành nhiều việc hơn người có tác động lớn nhất ngày nay" (trích dẫn Sam Altman).
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -259,3 +259,7 @@ Kiến trúc này đặc biệt phù hợp cho:
## Bonus 3: Vài hình ảnh hay ho đến từ [DesignGurus](https://designgurus.io/)
![System Design Master Template](https://www.designgurus.io/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fdownload%2Fstorage%2Fv1%2Fb%2Fdesigngurus-prod.appspot.com%2Fo%2Fee5726e8e29469477b999c100%3Fgeneration%3D1726724098184989%26alt%3Dmedia&w=3840&q=75&dpl=dpl_3Rx6M949Pc1cQKT3QTdj87FcKNdg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -373,3 +373,7 @@ Một số điểm chính:
## Bonus: Vài video hay ho đến từ [Inside Java](https://inside.java/)
[Garbage Collection in Java - The progress since JDK 8](https://inside.java/2025/02/15/devoxxbelgium-gc-progress/)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -379,3 +379,7 @@ Một số điểm chính:
## Bonus 2: Vài video hay ho đến từ [Inside Java](https://inside.java/)
[Project Loom and Virtual Threads: Next Phases](https://inside.java/2025/02/22/devoxxbelgium-loom-next/)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -426,3 +426,7 @@ Bài viết kết luận rằng sự kiên trì đúng cách là sự kết hợ
## Bonus: Vài ảnh hay ho đến từ [ByteByteGo](https://bytebytego.com/)
![Data Consistency Strategies For Microservices](https://substack-post-media.s3.amazonaws.com/public/images/ae95d38c-41f8-4eb7-885e-f7fafa4ca45d_2250x2624.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -59,3 +59,7 @@ Video này điểm qua những cải tiến nổi bật trong các phiên bản
[Cache and Message Broker for Microservices](https://redis.io/resources/cache-and-message-broker-for-microservices-solution-brief.pdf)
[Caching at Scale With Redis](https://redis.io/wp-content/uploads/2021/12/caching-at-scale-with-redis-updated-2021-12-04.pdf)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+3
View File
@@ -55,3 +55,6 @@ Bài viết này hướng dẫn chi tiết về cách kết hợp gRPC với Spr
[8 Most Important Tips for Designing Fault-Tolerant System](https://www.youtube.com/watch?v=3Lis4w4_bBc)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -79,3 +79,7 @@ Bài viết của Paul Millerd chia sẻ 40 suy nghĩ khi tác giả bước san
## Bonus 2: Vài video hay ho đến từ [ByteByteGo](https://bytebytego.com/)
[What Is the Most Popular Open-Source AI Stack?](https://www.youtube.com/watch?v=hFURlsMwU7c)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -95,3 +95,7 @@ Bài viết cũng thảo luận về các yếu tố ảnh hưởng đến hiệ
## Bonus: Vài ảnh hay ho đến từ [ByteByteGo](https://bytebytego.com/)
![API Protocols 101](https://substack-post-media.s3.amazonaws.com/public/images/ad16adef-3082-42bd-ac99-9a569ad2e33b_2250x2624.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -173,4 +173,8 @@ Một số điểm chính:
![What is MCP?](https://substack-post-media.s3.amazonaws.com/public/images/840e868d-2c83-4b1b-a881-df1da6c6e332_1309x1536.gif)
![How to Design a System like Instagram](https://substack-post-media.s3.amazonaws.com/public/images/6ff106a0-de83-48b0-9eb4-3f8bf0d43a57_1280x1566.gif)
![How to load your websites at lightning speed](https://substack-post-media.s3.amazonaws.com/public/images/214c0c6c-2426-49d0-9fa8-cdb9ce089dcc_1280x1585.gif)
![How to load your websites at lightning speed](https://substack-post-media.s3.amazonaws.com/public/images/214c0c6c-2426-49d0-9fa8-cdb9ce089dcc_1280x1585.gif)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -128,3 +128,7 @@ Tác giả trình bày các khái niệm cốt lõi như Domain/Subdomain, Bound
## Bonus: Vài ảnh hay ho đến từ [ByteByteGo](https://bytebytego.com/)
![Monolith vs Microservices vs Modular Monoliths](https://substack-post-media.s3.amazonaws.com/public/images/66d12ddc-2abe-4a98-82d5-ee177e80487c_1470x1600.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -160,3 +160,7 @@ Những điểm chính:
## Bonus 2: Vài video hay ho đến từ [ByteByteGo](https://bytebytego.com/)
[What Are AI Agents Really About?](https://www.youtube.com/watch?v=eHEHE2fpnWQ)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -182,3 +182,7 @@ Tác giả kết luận rằng cả những người quá lạc quan và quá bi
## Bonus: Vài ảnh hay ho đến từ [ByteByteGo](https://bytebytego.com/)
![Object Oriented Programming Fundamentals](https://substack-post-media.s3.amazonaws.com/public/images/5321bec2-0079-47e2-92e9-1cd9950227c8_2250x2624.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -166,3 +166,7 @@ Bảng tra cứu này là một tài nguyên quý giá cho cả sinh viên và c
![The Ultimate Software Architect Roadmap](https://substack-post-media.s3.amazonaws.com/public/images/67c39b9a-9a91-4e57-9e24-7714b4f806dd_1280x1349.gif)
![How Two-factor Authentication (2FA) Works?](https://substack-post-media.s3.amazonaws.com/public/images/fb1b1cd1-eac3-4b66-a391-9ec73f6c37f3_1280x1502.gif)
![How Amazon S3 Works?](https://substack-post-media.s3.amazonaws.com/public/images/3efae3ad-8c45-4fb2-a79f-6b3387b0751e_1280x1601.gif)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -233,3 +233,7 @@ Kết quả của quá trình chuyển đổi này đã mang lại những cải
Bài viết cũng chia sẻ các bài học kinh nghiệm quý báu từ quá trình chuyển đổi, bao gồm tầm quan trọng của việc thiết kế hệ thống có khả năng phục hồi từ lỗi, giá trị của việc triển khai từng phần, và cách tiếp cận đúng đắn đối với việc xử lý các trường hợp biên (edge cases) trong hệ thống thanh toán.
Đối với các kỹ sư phần mềm và kiến trúc sư hệ thống, bài viết này cung cấp một case study thực tế về cách áp dụng các nguyên tắc thiết kế bất đồng bộ để xây dựng hệ thống thanh toán có tính sẵn sàng cao, đặc biệt hữu ích cho các nền tảng thương mại điện tử đang phải đối mặt với các thách thức tương tự.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -125,3 +125,7 @@ Các kỹ thuật tối ưu hóa chính được đề cập trong bài viết b
Đặc biệt ấn tượng là cách đội ngũ Uber đã kết hợp các cải tiến ở nhiều cấp độ khác nhau, từ tối ưu hóa cấp thấp của mã nguồn đến các quyết định kiến trúc cấp cao. Bài viết cũng thảo luận về các thách thức trong việc duy trì tính chính xác thống kê trong khi cải thiện hiệu suất đáng kể.
Đối với các kỹ sư dữ liệu, nhà phát triển phần mềm và các nhà khoa học dữ liệu, bài viết này cung cấp những bài học quý giá về cách tiếp cận các vấn đề hiệu suất trong các hệ thống xử lý dữ liệu quy mô lớn. Các nguyên tắc và kỹ thuật được trình bày có thể áp dụng cho nhiều loại hệ thống khác nhau, không chỉ giới hạn trong lĩnh vực đánh giá thử nghiệm.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -260,3 +260,7 @@ Những điểm chính:
- Đơn giản hóa việc triển khai các thao tác nguyên tử
Bài viết kết luận rằng những cải tiến này sẽ giúp Java xử lý hiệu quả hơn các giá trị nguyên tử và cấu trúc dữ liệu phức tạp, đồng thời cung cấp một API an toàn và dễ sử dụng hơn cho các nhà phát triển. Đây là một bước tiến quan trọng trong việc cải thiện hiệu suất và khả năng mở rộng của Java.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -234,3 +234,7 @@ Bài viết này bổ sung thêm một loại tối ưu hóa quan trọng mà t
## Bonus 2: Vài video hay ho đến từ [ByteByteGo](https://bytebytego.com/)
[Why Everyone's Talking About MCP?](https://www.youtube.com/watch?v=_d0duu3dED4)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -52
View File
@@ -409,58 +409,6 @@ Bài viết kết thúc với thông điệp: Nếu bạn đã từng tự hỏi
---
## [How Seasoned Developers Can Achieve Great Results with AI Coding Agents](https://manuel.kiessling.net/2025/03/31/how-seasoned-developers-can-achieve-great-results-with-ai-coding-agents/)
Bài viết khám phá cách các kỹ sư phần mềm kỳ cựu có thể tận dụng hiệu quả các trợ lý lập trình AI như Cursor để đạt được kết quả vượt trội trong công việc phát triển phần mềm.
### Ba biện pháp chính để làm việc hiệu quả với AI
1. **Yêu cầu được cấu trúc tốt**
- Cung cấp thông tin chi tiết về phạm vi dự án
- Mô tả rõ ràng kiến trúc hệ thống hiện có
- Xác định vai trò của từng thành phần trong hệ thống
- Đưa ra các yêu cầu cụ thể về chức năng
2. **Công cụ bảo vệ tự động**
- Tích hợp các công cụ kiểm tra chất lượng mã nguồn
- Sử dụng kiểm thử tự động để xác minh chức năng
- Áp dụng phân tích tĩnh để đảm bảo tuân thủ tiêu chuẩn
- Cung cấp lệnh kiểm thử để AI tự xác minh kết quả
3. **Tạo khung làm việc với file**
- Tạo các file stub với cấu trúc cơ bản
- Xác định rõ namespace và cấu trúc thư mục
- Cung cấp các mẫu code cơ bản
- Đảm bảo tính nhất quán trong toàn bộ dự án
### Kết quả thực tế
- **Tăng tốc phát triển**: Tạo giao diện người dùng hoàn chỉnh trong vài phút
- **Giảm lỗi**: Tự động tuân thủ các tiêu chuẩn mã hóa
- **Mở rộng kiến thức**: Phát triển hiệu quả ngay cả với công nghệ mới
- **Tự động hóa**: AI có thể tự động thêm tính năng mới dựa trên yêu cầu đơn giản
### Trường hợp điển hình: Giám sát nền tảng
Một ví dụ thực tế là ứng dụng "Platform Problem Monitoring" được phát triển bằng Python để giám sát hệ thống ELK-stack, mặc dù tác giả không có nhiều kinh nghiệm với Python. Ứng dụng này được tạo ra hoàn toàn bởi AI dựa trên:
- Tài liệu yêu cầu chi tiết (371 dòng)
- Cấu trúc thư mục rõ ràng
- Tích hợp các công cụ kiểm tra chất lượng tự động
- Tự động hóa quy trình kiểm thử
### Kết luận
Những kỹ sư phần mềm giàu kinh nghiệm có lợi thế đặc biệt khi làm việc với AI nhờ:
1. Khả năng xác định và mô tả vấn đề chính xác
2. Hiểu biết sâu về kiến trúc phần mềm
3. Kinh nghiệm trong việc đánh giá chất lượng mã nguồn
4. Khả năng hướng dẫn AI đi đúng hướng
Bài viết khẳng định rằng thay vì thay thế các kỹ sư phần mềm, AI đang trở thành công cụ mạnh mẽ giúp họ làm việc hiệu quả hơn, đặc biệt khi kết hợp với kinh nghiệm và kiến thức chuyên môn sâu rộng.
---
## [On the Biology of a Large Language Model](https://transformer-circuits.pub/2025/attribution-graphs/biology.html)
Nghiên cứu đột phá từ Anthropic về cơ chế hoạt động bên trong mô hình ngôn ngữ lớn Claude 3.5 Haiku, sử dụng phương pháp theo dõi mạch (circuit tracing) để lập bản đồ cách thức xử lý thông tin của AI.
@@ -514,3 +462,7 @@ Nghiên cứu đột phá từ Anthropic về cơ chế hoạt động bên tron
### Kết luận
Nghiên cứu này cung cấp cái nhìn sâu sắc chưa từng có về cách thức hoạt động bên trong của các mô hình ngôn ngữ lớn. Bằng cách lập bản đồ các mạch thần kinh nhân tạo, các nhà nghiên cứu đã tiết lộ cách AI xử lý thông tin, đưa ra quyết định và tạo ra phản hồi. Những hiểu biết này không chỉ có giá trị học thuật mà còn mở ra hướng phát triển mới cho các mô hình AI an toàn, đáng tin cậy và hiệu quả hơn trong tương lai.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -45
View File
@@ -208,51 +208,6 @@ Tác giả chia sẻ câu chuyện cá nhân:
Bài viết đưa ra một góc nhìn mới về việc theo đuổi sự nghiệp trong lĩnh vực phát triển phần mềm. Thay vì chạy theo các xu hướng công nghệ mới, việc làm chủ các công nghệ đã trưởng thành như Java có thể mang lại sự ổn định và thành công lâu dài. Câu chuyện của tác giả là một minh chứng cho thấy đôi khi những lựa chọn "không phổ biến" lại có thể là lựa chọn tốt nhất cho sự nghiệp.
## [Refining var-handles in Valhalla](https://cr.openjdk.org/~jrose/values/atomic-value-access-api.html)
Trong bài viết này, John Rose trình bày một phân tích sâu về việc cải tiến var-handles trong Project Valhalla, đặc biệt là về cách xử lý atomic value access trong Java.
### Những điểm chính:
- **Vấn đề với var-handles hiện tại**:
- Cần đồng bộ hóa giữa interpreter, JIT và JNI
- Phải tuân thủ các quy tắc layout của biến
- Xử lý phức tạp với các loại layout khác nhau
- **Các loại layout trong Valhalla**:
- `REFERENCE`: Con trỏ quản lý (32 hoặc 64 bit, có thể null)
- `NON_ATOMIC_FLAT`: Biến có nhiều trường con, thường lớn hơn 64 bit
- `ATOMIC_FLAT`: Biến đóng gói trong 64 bit, có thể có các trường con nhỏ
- `NULLABLE_ATOMIC_FLAT`: Tương tự ATOMIC_FLAT nhưng có thêm null flag
- `NULLABLE_NON_ATOMIC_FLAT`: Tương tự NON_ATOMIC_FLAT với null flag
- `BUFFERED`: Trường hợp đặc biệt cho giá trị read-only
- **Đề xuất cải tiến**:
- Thêm các phương thức truy vấn mới:
- `isFlat`: Kiểm tra biến có được flatten hay không
- `isConsistent`: Kiểm tra tính atomic của biến
- `isPortableAtomic`: Kiểm tra khả năng hỗ trợ CAS
- Thêm phương thức `copyConsistentValue` để xử lý atomic operations
- Tách biệt logic xử lý field và memory transfer
- **Lợi ích của cải tiến**:
- Code dễ hiểu và bảo trì hơn
- Tách biệt rõ ràng giữa các concerns
- Hỗ trợ tốt hơn cho GC
- Xử lý atomic operations an toàn hơn
### Ứng dụng thực tế:
Tác giả cung cấp pseudocode chi tiết cho việc triển khai:
- Xử lý get/set value
- Quản lý buffer riêng tư
- Xử lý các trường con
- Đảm bảo tính atomic
### Kết luận:
Việc cải tiến var-handles trong Valhalla là một bước quan trọng để hỗ trợ tốt hơn cho value types trong Java. Cách tiếp cận mới giúp đơn giản hóa việc xử lý atomic operations và cải thiện hiệu suất của ứng dụng. Tuy nhiên, đây là một API phức tạp và chỉ nên được sử dụng bởi các developer có kinh nghiệm.
## [Cấu hình domain .localhost cho ứng dụng local](https://inclouds.space/localhost-domains)
Trong bài viết này, Charles Chamberlain chia sẻ một cách tiếp cận thú vị để cấu hình các domain tùy chỉnh cho các ứng dụng web chạy trên máy local, thay vì phải nhớ và gõ các port khác nhau.
@@ -347,3 +302,7 @@ Năm 2025 đánh dấu bước ngoặt quan trọng trong phát triển AI, chuy
## Vài ảnh hay ho đến từ [ByteByteGo](https://bytebytego.com/)
![A Cheatsheet On OOP Design Patterns](https://substack-post-media.s3.amazonaws.com/public/images/65279cf0-3266-445d-852b-a45d6ac9afa4_2250x2862.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -17
View File
@@ -39,23 +39,6 @@ Một số điểm chính:
- Có kỹ năng viết lách tốt
- Luôn duy trình việc học tập, ngay cả ở tuổi 60+
## [Git is More Popular than Linux: Torvalds](https://news.itsfoss.com/torvalds-on-git/)
## [20 years of Git. Still weird, still wonderful.](https://blog.gitbutler.com/20-years-of-git/)
Nhân dịp kỷ niệm 20 năm ngày Linus Torvalds thực hiện commit đầu tiên cho Git (7/4/2005), chúng ta cùng nhìn lại hành trình phát triển của hệ thống quản lý phiên bản đã thay đổi cách thức phát triển phầm mềm trên toàn thế giới <mcreference link="https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/" index="1">1</mcreference>.
Git được phát triển trong hoàn cảnh đặc biệt khi dự án Linux kernel không thể tiếp tục sử dụng BitKeeper do vấn đề bản quyền. Mặc dù chỉ mất 10 ngày để viết phiên bản đầu tiên, Torvalds đã dành 4 tháng trước đó để suy nghĩ về thiết kế và giải pháp <mcreference link="https://about.gitlab.com/blog/2025/04/07/celebrating-gits-20th-anniversary-with-creator-linus-torvalds/" index="2">2</mcreference>. Ban đầu, Git chỉ được xem như một giải pháp thay thế tạm thời, nhưng đã nhanh chóng phát triển thành công cụ quản lý mã nguồn phổ biến nhất trong lịch sử.
Điều thú vị là Torvalds chỉ duy trì Git trong vài tháng đầu tiên trước khi chuyển giao cho Junio Hamano, người đã tham gia dự án ngay từ tuần đầu tiên và tiếp tục duy trì Git trong suốt 19 năm qua <mcreference link="https://about.gitlab.com/blog/2025/04/14/journey-through-gits-20-year-history/" index="3">3</mcreference>. Hiện nay, Git đã trở thành nền tảng cho sự phát triển của nhiều dịch vụ và công cụ quan trọng trong ngành công nghệ phần mềm.
Một số điểm chính:
- Phiên bản đầu tiên được phát triển trong 10 ngày nhưng có 4 tháng chuẩn bị về thiết kế
- Junio Hamano tiếp quản dự án sau vài tháng và duy trì trong 19 năm
- Git ban đầu chỉ là một "content tracker" đơn giản
- Thiết kế phi tập trung của Git đã tạo nên cuộc cách mạng trong phát triển phần mềm
- Torvalds vẫn thường xuyên sử dụng 5 lệnh Git cơ bản: merge, blame, log, commit và pull <mcreference link="https://gigazine.net/gsc_news/en/20250408-git-20-years-linus-torvalds" index="4">4</mcreference>
## [RDEL #87: How do AI coding tools actually change developer work?](https://rdel.substack.com/p/rdel-87-how-do-ai-coding-tools-actually)
Một nghiên cứu thú vị từ Microsoft và Institute for Work Life về tác động của GitHub Copilot đối với công việc của các lập trình viên trong môi trường thực tế. Nghiên cứu được thực hiện trong 3 tuần với 228 kỹ sư tại một công ty phần mềm toàn cầu lớn, chia thành ba nhóm: nhóm mới được cấp quyền truy cập Copilot, nhóm không sử dụng công cụ AI, và nhóm đã đang sử dụng Copilot.
@@ -85,3 +68,7 @@ Một số điểm chính:
- Tùy chỉnh macro để tách biệt môi trường phát triển
- Tối ưu hóa thời gian biên dịch và chiến lược materialization
- Giải pháp có thể áp dụng cho nhiều nền tảng cloud khác nhau
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -322,3 +322,7 @@ Pinterest search có những đặc thù riêng biệt so với traditional text
- **Iterative Improvement**: Search relevance improvement là continuous process requiring ongoing optimization
Đây là example tuyệt vời về cách major tech platforms leverage LLMs để solve real-world problems, demonstrating practical applications của AI trong improving user experience at scale.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+2
View File
@@ -172,3 +172,5 @@ Shrivu Shankar đã có bài phân tích chi tiết về những thách thức v
Mặc dù MCP đã tạo ra một tiêu chuẩn quan trọng để kết nối các công cụ với AI, vẫn còn nhiều thách thức cần giải quyết, đặc biệt là về bảo mật và trải nghiệm người dùng. Sự phát triển trong tương lai sẽ cần tập trung vào việc cải thiện các khía cạnh này để đảm bảo tính hữu ích và an toàn của hệ sinh thái MCP.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+2
View File
@@ -112,3 +112,5 @@ Bài viết từ Simon Safar thảo luận về cách sử dụng PostgreSQL nh
Bài viết khuyến khích các nhà phát triển xem xét PostgreSQL như một giải pháp "đổ dữ liệu vào trước, tổ chức sau" thay vì cố gắng thiết kế schema hoàn hảo ngay từ đầu.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+2
View File
@@ -114,3 +114,5 @@ Bài viết trên ShiftMag chia sẻ góc nhìn chân thực về hành trình v
- Văn hóa không đổ lỗi (blameless culture) giúp nhân viên cảm thấy an toàn khi đặt câu hỏi và thừa nhận điểm yếu
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+3 -1
View File
@@ -6,7 +6,7 @@ categories: ["Newsletter"]
draft: false
---
*Đã lâu rồi mình không viết bài. Và thú thật thì những newsletter dạo trước hơi kiểu "chạy KPI", mình cứ cố cho rất nhiều link vào và để AI Agent làm nốt phần còn lại. Lần này mình sẽ chọn lọc bài kĩ hơn, còn viết thì vẫn để AI thôi, vì mình lười hehe =))). Mong các bạn sẽ thích. Chào mừng bạn đến với Newsletter #31.*
*Đã lâu rồi mình không viết bài. Và thú thật thì những newsletter dạo trước hơi kiểu "chạy KPI", ~~mình cứ cố cho rất nhiều link vào và để AI Agent làm nốt phần còn lại~~. Lần này mình sẽ chọn lọc bài kĩ hơn, ~~còn viết thì vẫn để AI thôi, vì mình lười hehe =)))~~. Mong các bạn sẽ thích. Chào mừng bạn đến với Newsletter #31.*
## [Claude Code: Best Practices for Agentic Coding](https://www.anthropic.com/engineering/claude-code-best-practices)
@@ -102,3 +102,5 @@ Bài viết từ meowbark.dev khám phá các phương pháp xử lý lỗi hi
- Duy trì clear error communication và recovery mechanisms trong suốt application
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -118,4 +118,8 @@ Thách thức chính trong các công ty công nghệ lớn không phải là k
Tải trọng nhận thức mà các kỹ sư phải đối mặt là rất lớn - họ phải liên tục xem xét các tương tác phức tạp giữa các tính năng, dẫn đến tình huống "việc hoàn thành bất kỳ thứ gì đều thực sự rất, rất khó". Đây không phải là dấu hiệu của sự không hiệu quả mà là kết quả của việc quản lý cẩn thận các hệ sinh thái công nghệ ngày càng phức tạp.
Lý do kinh tế cũng đóng vai trò quan trọng: các tính năng biên có thể tạo ra doanh thu đáng kể. "1% doanh thu của Google Ads hoặc AWS S3 là một số tiền lớn", vì vậy các công ty được khời gợi để thêm độ phức tạp nhằm tối đa hóa lợi nhuận tài chính. Điều này tạo ra một chu kỳ mà độ phức tạp tiếp tục gia tăng, và sự chậm chạp cảm nhận được thực chất là việc điều hướng chiến lược trong bối cảnh công nghệ phức tạp với mức độ rủi ro kinh tế đáng kể.
Lý do kinh tế cũng đóng vai trò quan trọng: các tính năng biên có thể tạo ra doanh thu đáng kể. "1% doanh thu của Google Ads hoặc AWS S3 là một số tiền lớn", vì vậy các công ty được khời gợi để thêm độ phức tạp nhằm tối đa hóa lợi nhuận tài chính. Điều này tạo ra một chu kỳ mà độ phức tạp tiếp tục gia tăng, và sự chậm chạp cảm nhận được thực chất là việc điều hướng chiến lược trong bối cảnh công nghệ phức tạp với mức độ rủi ro kinh tế đáng kể.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -118,3 +118,7 @@ Trong thời đại AI trợ lý lập trình ngày càng phổ biến, một th
## [Cursor best practices](https://x.com/paraschopra/status/1917466537637859544)
![Cursor best practices](https://pbs.twimg.com/media/Gpw1p1waYAAeAyY?format=jpg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -175,4 +175,8 @@ Tác giả áp dụng phương pháp "80-90% tính năng hoạt động phổ qu
**Ví dụ thực tế**: Tác giả đang phát triển Nema Studio, một Digital Audio Workstation cross-platform, nhắm tới các nhạc sĩ muốn thử nghiệm nhanh các tính năng cốt lõi mà không cần hỗ trợ plugin phức tạp.
**Tầm nhìn công nghệ**: "WebAssembly là cách để chia sẻ mã giữa các nền tảng... web chỉ đơn giản trở thành một nền tảng khác cần hỗ trợ!" Điều này mở ra khả năng sử dụng các công cụ như FFmpeg trong trình duyệt và tương thích với framework như Tauri.
**Tầm nhìn công nghệ**: "WebAssembly là cách để chia sẻ mã giữa các nền tảng... web chỉ đơn giản trở thành một nền tảng khác cần hỗ trợ!" Điều này mở ra khả năng sử dụng các công cụ như FFmpeg trong trình duyệt và tương thích với framework như Tauri.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -110,3 +110,7 @@ Thay vào đó, tác giả khuyến nghị sử dụng `if (a) assert(b);` để
Cách tiếp cận này làm cho mã nguồn dễ đọc và trực quan hơn bằng cách sử dụng cấu trúc conditional đơn giản thay vì các phép toán logic phức tạp. Đây là một ví dụ nhỏ nhưng hiệu quả về cách cải thiện khả năng đọc mã thông qua việc thay đổi cú pháp đơn giản.
Bài viết thể hiện triết lý thiết kế của TigerBeetle trong việc ưu tiên sự rõ ràng và đơn giản trong mã nguồn, giúp các lập trình viên dễ dàng hiểu và bảo trì hệ thống.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -127,4 +127,8 @@ Mục tiêu không phải là loại bỏ sự hỗ trợ của AI, mà là tạ
- AI agent viết mã nhanh hơn khả năng suy nghĩ của con người
- Tốc độ quá nhanh phá vỡ bản chất cộng tác của pair programming
- Cần thiết kế tương tác cân bằng, tôn trọng quá trình nhận thức con người
- Quy trình bất đồng bộ và chế độ turn-based hiệu quả hơn
- Quy trình bất đồng bộ và chế độ turn-based hiệu quả hơn
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Cursor", "Prompt Engineering", "AI Coding", "System Promp
categories: ["Newsletter"]
---
*Do vẫn chưa xong phần task với Claude Code + Serena MCP trong bài hôm qua, nên nay lại quay lại chuỗi Newsletter nhàm chán với AI nhé!! Mời bạn thưởng thức Newsletter #38 hehe :>*
*Do vẫn chưa xong phần task với ~~Claude Code + Serena MCP~~ trong bài hôm qua, nên nay lại quay lại chuỗi Newsletter nhàm chán với AI nhé!! Mời bạn thưởng thức Newsletter #38 hehe :>*
## [9 Lessons From Cursor's System Prompt](https://byteatatime.dev/posts/cursor-prompt-analysis/)
@@ -86,3 +86,7 @@ Bài viết bắt đầu bằng việc nhắc nhở rằng SQL là ngôn ngữ k
Một điểm quan trọng mà tác giả nhấn mạnh là các mô hình chi phí không phải lúc nào cũng dự đoán chính xác về số lượng tuple, thời gian thực thi, và hiệu suất truy vấn. Ví dụ, full table scan có thể hiệu quả hơn index scan khi cần truy xuất một phần lớn dữ liệu, và PostgreSQL có thể điều chỉnh động loại join dựa trên điều kiện lọc.
Các chiến lược tối ưu hóa thực tế bao gồm sử dụng index một cách chiến lược, phân tích hiệu suất thực tế so với ước tính, tận dụng extended statistics để cải thiện kế hoạch truy vấn, và sử dụng các công cụ như Plan Explorer để trực quan hóa việc thực thi truy vấn. Tác giả kết luận rằng "extended statistics có thể giúp có được dự đoán tốt hơn" về hiệu suất truy vấn và tối ưu hóa mô hình chi phí, nhấn mạnh việc tối ưu hóa truy vấn vừa là kỹ năng kỹ thuật vừa là "nghệ thuật" đòi hỏi hiểu biết tinh tế về hành vi hệ thống cơ sở dữ liệu.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -75,4 +75,8 @@ Nghiên cứu cho thấy sự chênh lệch đáng kể trong hoạt động tá
Những lập trình viên có kinh nghiệm không chỉ thực hiện nhiều tái cấu trúc hơn mà còn áp dụng đa dạng kỹ thuật tái cấu trúc khác nhau, tuy nhiên lại ít ghi chép lại các tác vụ này hơn so với junior developer. Đây là một paradox thú vị cho thấy "công việc vô hình" thường được thực hiện bởi những người có kinh nghiệm nhất nhưng lại ít được ghi nhận.
Matusov đưa ra lời khuyên thực tế cho các engineering leader: biến tái cấu trúc thành thực hành của toàn team thay vì chỉ dựa vào senior developer, công nhận "công việc vô hình" như tái cấu trúc trong đánh giá hiệu suất, khuyến khích documentation ở tất cả cấp độ kinh nghiệm, và sử dụng pair programming cùng review checklist để hỗ trợ việc tái cấu trúc. Kết luận quan trọng là tái cấu trúc chủ yếu được thực hiện bởi senior developer, nhưng team cần tạo ra cấu trúc khuyến khích tất cả mọi người tham gia bảo trì chất lượng mã.
Matusov đưa ra lời khuyên thực tế cho các engineering leader: biến tái cấu trúc thành thực hành của toàn team thay vì chỉ dựa vào senior developer, công nhận "công việc vô hình" như tái cấu trúc trong đánh giá hiệu suất, khuyến khích documentation ở tất cả cấp độ kinh nghiệm, và sử dụng pair programming cùng review checklist để hỗ trợ việc tái cấu trúc. Kết luận quan trọng là tái cấu trúc chủ yếu được thực hiện bởi senior developer, nhưng team cần tạo ra cấu trúc khuyến khích tất cả mọi người tham gia bảo trì chất lượng mã.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -86,3 +86,7 @@ Repository sử dụng định dạng `.mdc` (Markdown with Configuration) độ
Đặc điểm nổi bật là các quy tắc được thiết kế để có thể tái sử dụng giữa các dự án, rõ ràng và có thể thực hiện được, đồng thời tương thích với cả Cursor và Claude Code. Hướng dẫn sử dụng đơn giản: với Cursor, copy file `.mdc` vào `.cursor/rules/`, với Claude Code thì import quy tắc vào `CLAUDE.md`.
Triết lý cốt lõi được thể hiện qua việc "định dạng thống nhất có nghĩa là bạn có thể sử dụng cùng file quy tắc trong cả hai công cụ mà không cần sửa đổi". Repository hướng tới việc tạo ra một phương pháp chuẩn hóa và cộng tác trong việc làm việc với AI coding assistant, giúp cộng đồng chia sẻ và cải thiện các best practice một cách có hệ thống.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -69,4 +69,8 @@ Hristo Bogoev tạo ra SQL Noir, một trò chơi giáo dục web sáng tạo gi
Trò chơi này có gameplay tương tác nơi người dùng giải quyết tội phạm và bí ẩn bằng cách sử dụng các truy vấn SQL, chạy hoàn toàn trên trình duyệt web và được phân loại là trò chơi giáo dục. SQL Noir tập trung vào việc làm cho việc học SQL trở nên hấp dẫn và thú vị hơn thông qua phương pháp tiếp cận dựa trên câu chuyện.
Mục tiêu của trò chơi là biến đổi việc học SQL từ định dạng tutorial truyền thống thành trải nghiệm nhập vai, giải quyết vấn đề giúp làm cho các kỹ năng cơ sở dữ liệu dễ tiếp cận và thú vị hơn. Đây là một ví dụ xuất sắc của gamification trong giáo dục công nghệ, cho thấy cách các khái niệm kỹ thuật phức tạp có thể được truyền đạt thông qua trải nghiệm học tập tương tác và giải trí.
Mục tiêu của trò chơi là biến đổi việc học SQL từ định dạng tutorial truyền thống thành trải nghiệm nhập vai, giải quyết vấn đề giúp làm cho các kỹ năng cơ sở dữ liệu dễ tiếp cận và thú vị hơn. Đây là một ví dụ xuất sắc của gamification trong giáo dục công nghệ, cho thấy cách các khái niệm kỹ thuật phức tạp có thể được truyền đạt thông qua trải nghiệm học tập tương tác và giải trí.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -153,4 +153,8 @@ Bài viết thảo luận về triết lý thiết kế của Go, một ngôn ng
**Thông điệp cốt lõi** - Thay vì cố gắng làm mọi thứ hoàn hảo, Go tập trung vào việc làm tốt những gì quan trọng nhất. Điều này tạo ra một ngôn ngữ thực dụng, dễ tiếp cận và hiệu quả cho phần lớn các use case trong phát triển phần mềm hiện đại.
Bài viết khẳng định rằng sự "thiếu hụt" về tính năng của Go thực chất là một lợi thế, giúp các lập trình viên tập trung vào giải quyết vấn đề thay vì vật lộn với độ phức tạp của ngôn ngữ.
Bài viết khẳng định rằng sự "thiếu hụt" về tính năng của Go thực chất là một lợi thế, giúp các lập trình viên tập trung vào giải quyết vấn đề thay vì vật lộn với độ phức tạp của ngôn ngữ.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: [ "AI-Assisted", "Lập trình", "Tái cấu trúc mã" ]
categories: [ "Newsletter" ]
---
*Bài này mình thay đổi tool sử dụng thành Qwen Code và model sử dụng là Qwen 3 Coder, dùng qua api của OpenRouter. Thử nghiệm một tí xem thế nào. Mời bạn thưởng thức Newsletter #43.*
*~~Bài này mình thay đổi tool sử dụng thành Qwen Code và model sử dụng là Qwen 3 Coder, dùng qua api của OpenRouter. Thử nghiệm một tí xem thế nào.~~ Mời bạn thưởng thức Newsletter #43.*
## [Augmented Coding: Beyond the Vibes](https://tidyfirst.substack.com/p/augmented-coding-beyond-the-vibes)
@@ -386,3 +386,7 @@ Việc xóa tests không có nghĩa là chống lại testing - đó là việc
Quan trọng nhất, điều này đòi hỏi một mindset shift: từ "càng nhiều tests càng tốt" sang "càng ít tests có ý nghĩa càng tốt".
*Mình thấy Cline+Kimi K2 cũng gen dài (có thể do prompt như đã nói ở trên), nhưng được cái là response khá nhanh, vì vậy ít ra không phải đợi lâu. Phần prompt mình sẽ thử cải thiện trong tương lai "xa". Còn mai mình sẽ thử Roo Code + Qwen 3 Coder/Kimi K2 trước. Hẹn gặp lại các bạn ở post ngày mai nhé*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -12,7 +12,7 @@ tags:
categories: ["Newsletter"]
---
_Như đã đề cập, hôm nay mình sẽ thử Newsletter với Roo Code. Các post tiếp theo sẽ dùng Roo Code + Qwen 3 Coder. Mời bạn thưởng thức Newsletter #44._
_~~Như đã đề cập, hôm nay mình sẽ thử Newsletter với Roo Code. Các post tiếp theo sẽ dùng Roo Code + Qwen 3 Coder.~~ Mời bạn thưởng thức Newsletter #44._
## [Cursor Unveils Game-Changing Web App for AI Coding Agents](https://opentools.ai/news/cursor-unveils-game-changing-web-app-for-ai-coding-agents)
@@ -230,3 +230,7 @@ Khi gặp vấn đề với Git, thay vì chỉ dựa vào các câu trả lời
Những công cụ này không chỉ tiết kiệm thời gian mà còn giúp workflow Git trở nên chuyên nghiệp và hiệu quả hơn, đặc biệt khi làm việc với các dự án lớn hoặc trong môi trường nhóm.
_Sau khi trải nghiệm mình nhận thấy Kimi K2 luôn phản hồi nhanh hơn Qwen 3 Coder, dù dùng Cline hay Roo Code, và Roo Code gọi nhiều request hơn Cline, tuy nhiên độ hài lòng về kết quả thì cũng xêm xêm. Vì OpenRouter limit dựa trên số lần request chứ không phải tổng lượng token nên có lẽ mình sẽ chọn Cline + Kimi K2 để dùng tạm mỗi khi Claude Code chạm quota._
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: [ "AI-Assisted", "Productivity", "Career", "Paul Graham", "Essay" ]
categories: [ "Newsletter" ]
---
*Bài post được thực hiện bởi Cline + Kimi K2. Mời bạn thưởng thức Newsletter #45.*
*~~Bài post được thực hiện bởi Cline + Kimi K2.~~ Mời bạn thưởng thức Newsletter #45.*
## [The Best](https://www.paulgraham.com/best.html)
@@ -198,3 +198,7 @@ Câu trả lời thực sự nằm ở giả thuyết thứ hai, nhưng có mộ
Bài học cho các lập trình viên: Những thuật ngữ mà chúng ta sử dụng hàng ngày thường có nguồn gốc lịch sử phong phú. Việc hiểu nguồn gốc của các khái niệm giúp chúng ta hiểu sâu sắc hơn về cách thức hoạt động của máy tính và lý do tại sao các ngôn ngữ lập trình được thiết kế theo cách hiện tại.
*Sau khi trải nghiệm lại với nhiều url thì có vẻ Cline + Kimi K2 đã tràn context, sau khi compact thì quên mất một số context, vì vậy rất dễ bị nhầm, cần nhắc lại nhiều lần về việc đây là Windows nên phải dùng các lệnh PowerShell hỗ trợ thay vì các lệnh Linux. Ngoài ra còn có vài sai lầm ngớ ngẩn như tóm tắt... sai url :>*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: [ "AI-Assisted", "Survey", "Tech Stack", "AI Tools", "Developer Tools" ]
categories: [ "Newsletter" ]
---
*Bài viết này sẽ quay lại dùng Claude Code nha :D (chân ái là đây, chỉ khi nào ngại tốn token mới phải nhảy sang agent khác). Mời bạn thưởng thức Newsletter #46.*
*~~Bài viết này sẽ quay lại dùng Claude Code nha :D (chân ái là đây, chỉ khi nào ngại tốn token mới phải nhảy sang agent khác).~~ Mời bạn thưởng thức Newsletter #46.*
## [The Pragmatic Engineer 2025 Survey: What's in your tech stack?](https://newsletter.pragmaticengineer.com/p/the-pragmatic-engineer-2025-survey)
@@ -74,3 +74,7 @@ Một bài viết thẳng thắn về những thói quen thực tế giúp nâng
Các thói quen khác bao gồm: ghi chép có cấu trúc trước khi debug (ép bản thân suy nghĩ rõ ràng), xây dựng công cụ nhỏ cá nhân (CLI scripts, automation tools), timeboxing cho công việc phức tạp (khối 90 phút không bị gián đoạn), học workflow từ người khác chứ không chỉ copy code, và retrospective hàng tuần với 3 câu hỏi: gì đã tốt, gì đã làm chậm tiến độ, gì sẽ cải thiện tuần sau. Đây là những thói quen đơn giản nhưng có tác động lâu dài đến năng suất làm việc.
*Claude Code thật sự là chân ái :D Xử lý nhanh, tóm tắt gọn, càng ngày càng tốt. Thật tuyệt vời!*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -102,3 +102,7 @@ Tác giả nhấn mạnh rằng các quy tắc này phù hợp nhất với các
Trang qr.blinry.org là một nguồn tài liệu giáo dục tuyệt vời giải thích cách thức hoạt động của mã QR một cách dễ hiểu. Website hướng dẫn cách đọc và giải mã QR code bằng tay mà không cần máy tính hay điện thoại, giúp người dùng hiểu sâu về cấu trúc bên trong của mã QR.
Trang web trình bày các thành phần cơ bản của QR code như finder pattern (mẫu tìm kiếm), separator (đường phân cách), alignment pattern (mẫu căn chỉnh), và quiet zone (vùng trống). Ngoài ra, nó còn giải thích chi tiết về mask pattern (mẫu mặt nạ), encoding (mã hóa), và các phương pháp sửa lỗi. Đây là tài liệu hữu ích cho những ai muốn tìm hiểu về công nghệ QR code từ góc độ kỹ thuật.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -104,3 +104,7 @@ Kỹ thuật chính bao gồm việc cung cấp ràng buộc và yêu cầu cụ
Ví dụ prompt được tinh chỉnh của tác giả bao gồm: sử dụng ThreadLocal cho dữ liệu tạm thời, ưu tiên toán học đơn giản thay vì thư viện, chỉ định yêu cầu định dạng offset cụ thể, và khuyến nghị dùng `intern()` cho Strings. Khi test trên nhiều nền tảng AI (Gemini, Claude, Grok, GitHub Copilot), kết quả cho thấy prompt chi tiết luôn mang lại mã nguồn chất lượng cao hơn.
Điểm thú vị là không AI nào ban đầu gợi ý sử dụng byte[] cho lưu trữ, cho thấy tầm quan trọng của việc hướng dẫn cụ thể. Bài viết nhấn mạnh rằng prompt engineering chu đáo là chìa khóa để thu được giải pháp mã nguồn tối ưu từ AI, không chỉ đơn thuần yêu cầu "viết code tốt hơn".
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -219,3 +219,7 @@ Val Town mang đến một quan điểm thú vị và có phần gây tranh cãi
**Phương pháp được khuyến nghị**: Sử dụng các công cụ AI như "Townie" một cách chiến lược, duy trì "kiểm soát chặt chẽ" với mã do AI tạo ra, ưu tiên hiểu biết và học hỏi hơn việc tạo ra nhanh chóng.
Bài viết nhấn mạnh rằng mặc dù vibe coding có thể hữu ích, nhưng nó không phải là sự thay thế cho chuyên môn kỹ thuật phần mềm thực sự. Đây là một lời nhắc nhở cân bằng về việc sử dụng AI trong phát triển phần mềm.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -350,4 +350,8 @@ Scott Logic đề xuất một cách tiếp cận thực tiễn để hiện đ
**Ví dụ thực tiễn**: Thay vì viết lại toàn bộ hệ thống đăng ký khách hàng, có thể sử dụng CDC để bắt sự kiện "khách hàng mới được tạo" và kích hoạt các dịch vụ hiện đại như gửi email chào mừng, cập nhật CRM, hoặc phân tích dữ liệu.
Cách tiếp cận này mang lại sự cân bằng giữa việc tận dụng đầu tư hiện có và phát triển khả năng mới, giúp tổ chức tiến hóa kiến trúc một cách có kiểm soát và hiệu quả.
Cách tiếp cận này mang lại sự cân bằng giữa việc tận dụng đầu tư hiện có và phát triển khả năng mới, giúp tổ chức tiến hóa kiến trúc một cách có kiểm soát và hiệu quả.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -64,3 +64,7 @@ Tác giả khuyến nghị khám phá các chỉ mục tìm kiếm mã nguồn m
![How Clean Architecture Works?](https://substack-post-media.s3.amazonaws.com/public/images/db0481bd-807d-419c-a71e-913a13cb855e_1280x808.jpeg)
![How does Docker Work?](https://substack-post-media.s3.amazonaws.com/public/images/ba21dab1-a39e-4c3a-a815-08d8be09de49_2360x2492.png)
![A Guide to Top Caching Strategies](https://substack-post-media.s3.amazonaws.com/public/images/7f891bc7-8657-47ff-8974-efcfcc0f0bb1_2250x2624.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -30
View File
@@ -101,22 +101,6 @@ Bài viết từ Wouter Coekaerts đi sâu vào những lỗ hổng kỹ thuật
Tác giả lập luận rằng trong khi một số lỗ hổng trong hệ thống kiểu là cố ý (để tương thích ngược), thì những lỗ hổng khác là tình cờ. Những lỗ hổng này có thể dẫn đến lỗi runtime mà vượt qua được kiểm tra kiểu tại compile-time - một vấn đề đáng quan tâm cho các lập trình viên Java.
## [The Pragmatic Engineer 2025 Survey: What's in your tech stack? Part 1](https://newsletter.pragmaticengineer.com/p/the-pragmatic-engineer-2025-survey)
Khảo sát từ The Pragmatic Engineer cung cấp cái nhìn tổng quan về các công cụ và xu hướng công nghệ trong ngành phát triển phần mềm năm 2025 qua góc nhìn của gần 3,000 kỹ sư phần mềm.
**Phương pháp khảo sát**: Được thực hiện vào tháng 4 và 5 năm 2025 với 2,997 phản hồi hợp lệ từ các chuyên gia công nghệ, chủ yếu là kỹ sư phần mềm có 5-20 năm kinh nghiệm.
**Công cụ AI**: 85% người tham gia sử dụng ít nhất một công cụ AI. Các công cụ phổ biến nhất bao gồm GitHub Copilot (dẫn đầu), Cursor (đang tăng trưởng nhanh), Claude và ChatGPT.
**Ngôn ngữ lập trình**: TypeScript, Python và Swift là những ngôn ngữ được sử dụng nhiều nhất, trong khi Rust, Go và Ruby on Rails là những ngôn ngữ được yêu thích nhất.
**Công cụ được yêu thích và ghét nhất**: VS Code, các sản phẩm JetBrains và Cursor là những công cụ được yêu thích nhất. JIRA là công cụ bị ghét nhiều nhất một cách áp đảo.
**Cơ sở hạ tầng**: GitHub dẫn đầu về version control, AWS vẫn là cloud provider chủ đạo, và GitHub Actions là công cụ CI/CD phổ biến nhất.
Khảo sát chỉ ra sự đổi mới nhanh chóng trong các công cụ phát triển AI, sự thay đổi chậm hơn trong các danh mục công nghệ đã thiết lập, và việc các lập trình viên ngày càng sẵn sàng thử nghiệm các công cụ mới.
## [The Pragmatic Engineer 2025 Survey: What's in your tech stack? Part 2](https://newsletter.pragmaticengineer.com/p/the-pragmatic-engineer-2025-survey-part-2)
Phần 2 của khảo sát tập trung vào các công cụ và cơ sở hạ tầng mà kỹ sư phần mềm sử dụng hàng ngày, tiết lộ những xu hướng thú vị trong lựa chọn công nghệ.
@@ -133,20 +117,6 @@ Phần 2 của khảo sát tập trung vào các công cụ và cơ sở hạ t
Khảo sát này cung cấp cái nhìn sâu sắc về sở thích công nghệ hiện tại và xu hướng từ khoảng 3,000 kỹ sư phần mềm.
## [How to Vibe Code as a Senior Engineer](https://blog.alexmaccaw.com/how-to-vibe-code-as-a-senior-engineer/)
Alex MacCaw giới thiệu khái niệm "vibe coding" - một phương pháp phát triển phần mềm mới tận dụng các mô hình AI để tăng tốc đáng kể quá trình viết mã.
**Định nghĩa cốt lõi**: Vibe coding là việc sử dụng các mô hình AI tiên tiến để thực hiện phần lớn công việc viết mã, trong khi kỹ sư senior cung cấp hướng dẫn, kiến trúc và định hướng chiến lược. Phương pháp này có thể biến những dự án kéo dài hàng tuần thành chỉ vài giờ.
**Yêu cầu thiết yếu**: Để vibe coding hiệu quả cần có scaffold dự án mạnh mẽ, các quy tắc viết mã được định nghĩa rõ ràng, quản lý ngữ cảnh chính xác, sử dụng các mô hình AI hàng đầu (Claude Opus 4, Gemini 2.5 Pro), và editor mã thông minh (khuyến nghị Cursor).
**Chiến lược prompt engineering**: Luôn bắt đầu với kế hoạch chi tiết, cực kỳ cụ thể về kết quả mong muốn, cung cấp ví dụ và ngữ cảnh rõ ràng, sử dụng các ràng buộc rõ ràng, và duy trì phạm vi dự án chặt chẽ.
**Hạn chế chính của AI coding**: Quản lý ngữ cảnh tự động kém, xử lý kiểu TypeScript yếu, thiếu "thẩm mỹ" kiến trúc, và xu hướng tưởng tượng ra hoặc lệch khỏi mục tiêu dự định.
Tác giả nhấn mạnh đây có thể là "màn biểu diễn cuối cùng" của việc viết mã được hướng dẫn bởi con người trước khi AI có thể trở nên hoàn toàn tự động, khuyến khích các kỹ sư nắm bắt và thành thạo phương pháp mới này.
## [Why do software developers love complexity?](https://kyrylo.org/software/2025/08/21/why-do-software-developers-love-complexity.html)
Bài viết từ Kyrylo khám phá lý do tại sao các lập trình viên thường bị hấp dẫn bởi những giải pháp phức tạp mặc dù nguyên tắc "Keep It Simple, Stupid" (KISS) được khuyến khích rộng rãi.
@@ -197,3 +167,7 @@ Bài viết từ Ham Vocke là một tấm gương phản chiếu về những
[Java interview questions and answers - Boosting your java career](https://enos.itcollege.ee/~jpoial/allalaadimised/reading/Java-Interview-Questions.pdf)
[Java Puzzlers - Traps, Pitfalls, and Corner Cases](https://github.com/shannonasmith/Java_books/blob/main/Java%20Puzzlers%20-%20Traps%2C%20Pitfalls%2C%20and%20Corner%20Cases%20(2005).pdf)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "Security", "Gaming", "Programming", "Algori
categories: ["Newsletter"]
---
*Bài này mình thử nghiệm tổng hợp tất cả code agent rules trước đây về thành 1 file AGENTS.md duy nhất, sau đó trỏ CLAUDE.md đọc file này. Mời bạn thưởng thức Newsletter #53.*
*~~Bài này mình thử nghiệm tổng hợp tất cả code agent rules trước đây về thành 1 file AGENTS.md duy nhất, sau đó trỏ CLAUDE.md đọc file này.~~ Mời bạn thưởng thức Newsletter #53.*
## [Anti-cheat, Secure Boot & TPM](https://andrewmoore.ca/blog/post/anticheat-secure-boot-tpm/)
@@ -126,3 +126,7 @@ Thảo luận trên Reddit về cách các công ty FAANG áp dụng "vibe codin
- Context management và prompt engineering là kỹ năng quan trọng mới
*Đánh giá hiệu quả của AGENTS.md: Chưa được tốt lắm, còn chứa tiếng Anh nhiều. Mình sẽ cố gắng cải thiện thêm trong các bài viết tới. Hẹn gặp lại*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "DevOps", "Monorepo", "Software-Engineering"
categories: ["Newsletter"]
---
*Do dạo này tình hình tài chính cá nhân không tốt lắm, nên mình quyết định huỷ Claude Subscription, và do đó không còn dùng Claude Code nữa. Hiện tại mình đang dùng Roo Code với model Z.AI: GLM 4.5 Air từ OpenRouter. Hi vọng bài viết đủ chất lượng làm hài lòng các bạn. Mời bạn thưởng thức Newsletter #54.*
*~~Do dạo này tình hình tài chính cá nhân không tốt lắm, nên mình quyết định huỷ Claude Subscription, và do đó không còn dùng Claude Code nữa. Hiện tại mình đang dùng Roo Code với model Z.AI: GLM 4.5 Air từ OpenRouter.~~ Hi vọng bài viết đủ chất lượng làm hài lòng các bạn. Mời bạn thưởng thức Newsletter #54.*
## [Controlling the Rollout of Large-Scale Monorepo Changes](https://www.uber.com/en-IN/blog/controlling-the-rollout-of-large-scale-monorepo-changes/)
@@ -117,3 +117,7 @@ Bài viết từ Avi khám phá các khái niệm và thực tiễn quan trọng
![The Testing Pyramid](https://substack-post-media.s3.amazonaws.com/public/images/c34a8b8b-feff-4473-9eb1-dd399f5a81eb_2360x2664.jpeg)
*Tổng kết thì mình thấy đợt thử nghiệm này cũng khá ổn. Có điều bài viết còn khá dài dòng và đôi chỗ còn sai sót từ ngữ tiếng Việt một chút. Với cái giá free thì quá được :))) Hẹn gặp lại các bạn trong các bài viết tới.*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -236,3 +236,7 @@ Họ sẽ phán xét chúng ta giống như chúng ta phán xét những ngườ
## Bonus: Một vài video hay ho
[All New Java Language Features Since Java 21 #RoadTo25](https://www.youtube.com/watch?v=X0-TGhktFnE)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "UUID", "Database", "Java", "Java25", "JDK",
categories: ["Newsletter"]
---
*Hôm nay mình lại thử nghiệm tiếp [OpenCode](https://opencode.ai/). Kết quả là khi mình gửi 1 url thì nó... stuck luôn :v. Vì vậy mình chuyển qua thử GitHub Copilot, với OpenRouter. Kết quả ban đầu cho thấy GitHub Copilot không detect được Newsletter số trước, nó đánh lại từ #1. Và tags cũng ghi chữ thường, không đúng format mình expect. Mình không ưng ý nên xoá đi, thử lại với OpenAI Codex, kết quả thì để đọc được trang web nó đã hỏi mình n thứ, vả lại còn đòi chạy mấy lệnh python để đọc web, xong cài package bằng pip trực tiếp nữa. Mình thấy không oke với chuyện này nên chuyển qua xài thử [Claude Code Router](https://github.com/musistudio/claude-code-router), chạy Claude Code nhưng với API từ OpenRouter, với model `xAI: Grok 4 Fast`. Bài đầu tiên thấy tóm tắt khá dài. Thôi thì mời bạn thưởng thức Newsletter #56 nhé.*
*~~Hôm nay mình lại thử nghiệm tiếp [OpenCode](https://opencode.ai/). Kết quả là khi mình gửi 1 url thì nó... stuck luôn :v. Vì vậy mình chuyển qua thử GitHub Copilot, với OpenRouter. Kết quả ban đầu cho thấy GitHub Copilot không detect được Newsletter số trước, nó đánh lại từ #1. Và tags cũng ghi chữ thường, không đúng format mình expect. Mình không ưng ý nên xoá đi, thử lại với OpenAI Codex, kết quả thì để đọc được trang web nó đã hỏi mình n thứ, vả lại còn đòi chạy mấy lệnh python để đọc web, xong cài package bằng pip trực tiếp nữa. Mình thấy không oke với chuyện này nên chuyển qua xài thử [Claude Code Router](https://github.com/musistudio/claude-code-router), chạy Claude Code nhưng với API từ OpenRouter, với model `xAI: Grok 4 Fast`. Bài đầu tiên thấy tóm tắt khá dài.~~ Thôi thì mời bạn thưởng thức Newsletter #56 nhé.*
## [I love UUID, I hate UUID](https://blog.epsiolabs.com/i-love-uuid-i-hate-uuid)
@@ -167,3 +167,7 @@ Kết luận với call to action, bài viết kêu gọi focus trên ngôn ng
- Phê phán hype: Ưu tiên language/compiler cải thiện hơn billion investment misguided.
*Đánh giá sơ bộ thì combo này ổn áp, chạy ổn định, không hỏi prompt linh tinh để xử lý việc đọc WebFetch, kết quả thì hơi dài dòng, nhiều lỗi vặt, mình sẽ thử thêm một số model khác trong các bài viết sắp tới để tìm được 1 combo vừa free lại chất lượng :D*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "Career", "Agentic AI", "Professional Develo
categories: ["Newsletter"]
---
*Bài viết này được thực hiện bởi [Claude Code Router](https://github.com/musistudio/claude-code-router) với model `qwen3-coder` chạy trên [iFlow Platform](https://platform.iflow.cn/docs/api-mode). Mời bạn thưởng thức Newsletter #57.*
*~~Bài viết này được thực hiện bởi [Claude Code Router](https://github.com/musistudio/claude-code-router) với model `qwen3-coder` chạy trên [iFlow Platform](https://platform.iflow.cn/docs/api-mode).~~ Mời bạn thưởng thức Newsletter #57.*
## [Agentic AI và Sự Thay Đổi Nghề Nghiệp](https://medium.com/@elliotgraebert/agentic-ai-has-changed-my-career-2c6e3dd29708)
@@ -130,3 +130,7 @@ Một số tính năng bị chỉ trích như NIO ("0/10") và Streams ("1/10"),
![Understanding Load Balancers: Traffic Management at Scale](https://substackcdn.com/image/fetch/$s_!4Uyj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a1213e2-86cb-4fa8-bf72-e37ffe0da44d_2250x2624.heic)
*Nhìn chung thì nội dung ngắn gọn, mình tương đối hài lòng, chắc khoảng 80% so với Claude Code với Claude models, nhưng vì miễn phí nên là mình rất ưng ý :)))*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "Productivity", "Decision Making", "Software
categories: ["Newsletter"]
---
*Hôm nay mình có thử gắn [Claude Code Router](https://github.com/musistudio/claude-code-router) với model `openai/gpt-oss-120b` trên [NVIDIA NIM](https://build.nvidia.com/) nhưng bị lỗi gì đấy, sau cùng thì không được output gì. Vì vậy chúng ta lại quay lại với model `qwen3-coder` chạy trên [iFlow Platform](https://platform.iflow.cn/docs/api-mode) nhé. Mời bạn thưởng thức Newsletter #58.*
*~~Hôm nay mình có thử gắn [Claude Code Router](https://github.com/musistudio/claude-code-router) với model `openai/gpt-oss-120b` trên [NVIDIA NIM](https://build.nvidia.com/) nhưng bị lỗi gì đấy, sau cùng thì không được output gì. Vì vậy chúng ta lại quay lại với model `qwen3-coder` chạy trên [iFlow Platform](https://platform.iflow.cn/docs/api-mode) nhé.~~ Mời bạn thưởng thức Newsletter #58.*
## [How Software Engineers Make Productive Decisions (without slowing the team down)](https://strategizeyourcareer.com/p/how-software-engineers-make-productive-decisions)
@@ -202,3 +202,7 @@ Claude Code đại diện cho sự thay đổi hướng tới kỹ thuật phầ
![Access Control Clearly Explained](https://substack-post-media.s3.amazonaws.com/public/images/26b55058-17ae-453f-8463-4d4e717e489b_2360x2920.png)
![How Git Reset Works?](https://substack-post-media.s3.amazonaws.com/public/images/00912640-ad5f-4ec7-aefa-e5eecf67dab0_3000x3900.png)
![Apache Kafka Explained (At the high level)](https://substack-post-media.s3.amazonaws.com/public/images/43b73739-a975-42af-999d-8676b1605ed2_3000x3900.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -161,3 +161,7 @@ Cuối cùng, để phát triển thẩm mỹ, tác giả khuyên nên làm nhi
![Service Discovery 101: The Phonebook for Distributed Systems](https://substackcdn.com/image/fetch/$s_!CEQb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30caf720-4b66-4f5f-84d2-72c578969944_2250x2624.heic)
*Bài viết trong kho của mình đã hết rồi. Có lẽ phải chờ một thời gian để mình tích luỹ lại sau đó mới tiếp tục được nhé. Hẹn gặp lại các bạn sau.*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -23
View File
@@ -19,17 +19,6 @@ Tác giả nhấn mạnh rằng "các cách cài đặt khác nhau cho cùng m
- Hỗ trợ cả kiểu dữ liệu có thể và không thể so sánh, cho phép tùy chỉnh thông qua các tùy chọn hàm số
- Tính dễ đọc của diff phụ thuộc lớn vào các kỹ thuật hậu xử lý như các thuật toán heuristic
## [Periodic Table of System Design Principles](https://github.com/jarulraj/periodic-table)
Repository GitHub này trình bày một "bảng tuần hoàn" các nguyên tắc thiết kế hệ thống định kỳ. Mục tiêu là cung cấp một từ vựng ngắn gọn, chia sẻ để hiểu và thảo luận về các lựa chọn thiết kế trong các lĩnh vực khác nhau của hệ thống máy tính. Repository chứa một bộ sưu tập gồm hơn 40 nguyên tắc thiết kế mục đích chung được tổ chức thành các nhóm theo chủ đề như Cấu trúc, Hiệu quả, Ngữ nghĩa, v.v. Mỗi nguyên tắc có một ký hiệu ngắn để tham khảo nhanh chóng và tập trung vào "ý định thiết kế" thay vì các cơ chế cụ thể.
**Điểm chính:**
- Bộ sưu tập gồm hơn 40 nguyên tắc thiết kế hệ thống mục đích chung
- Các nguyên tắc được tổ chức thành các nhóm theo chủ đề (Cấu trúc, Hiệu quả, Ngữ nghĩa, v.v.)
- Mỗi nguyên tắc có ký hiệu ngắn để tham khảo nhanh
- Tập trung vào "ý định thiết kế" thay vì các cơ chế cụ thể
- Ví dụ được lấy từ các bài báo có ảnh hưởng trong các lĩnh vực hệ thống
## [Building a Resilient Data Platform with Write-Ahead Log at Netflix](https://netflixtechblog.com/building-a-resilient-data-platform-with-write-ahead-log-at-netflix-127b6712359a)
Bài viết từ Netflix Tech Blog về việc xây dựng một nền tảng dữ liệu có độ bền cao bằng cách sử dụng kỹ thuật Write-Ahead Log (WAL). Netflix chia sẻ cách họ thiết kế và triển khai hệ thống WAL để đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu trong môi trường phân tán quy mô lớn.
@@ -51,18 +40,6 @@ Bài viết so sánh hai nền tảng phát triển web hàng đầu - Vercel v
- Cả hai nền tảng đang hội tụ khi đối mặt với các yêu cầu mới về điện toán biên và AI
- Cả hai đều đang cạnh tranh để giành được sự quan tâm của cộng đồng nhà phát triển
## [90%](https://lucumr.pocoo.org/2025/9/29/90-percent/)
Armin Ronacher chia sẻ rằng khoảng 90% mã code cho một dự án hạ tầng gần đây tại công ty mới của ông được tạo ra bởi AI. Ông nhấn mạnh rằng mặc dù AI đóng vai trò lớn, ông vẫn giữ trách nhiệm về kiến trúc, độ tin cậy và chất lượng mã code cuối cùng. Bài viết đề cập đến việc sử dụng các công cụ như Claude và Codex để tạo code, ưa thích SQL thô hơn là ORMs và sử dụng thiết kế OpenAPI-first. AI giúp tăng tốc nghiên cứu, tái cấu trúc và thiết lập hạ tầng. Tuy nhiên, bất chấp tính hữu ích của nó, AI có thể tạo ra mã code kém chất lượng nếu không được hướng dẫn cẩn thận; sự giám sát của con người là điều cần thiết. Cách tiếp cận này cho phép thử nghiệm nhanh hơn và hệ thống tốt hơn được tổ chức.
**Điểm chính:**
- AI được sử dụng rộng rãi để tạo code, đặc biệt với các công cụ như Claude và Codex
- Ưa thích SQL thô hơn là ORMs và sử dụng thiết kế OpenAPI-first
- AI giúp tăng tốc nghiên cứu, tái cấu trúc và thiết lập hạ tầng
- Mặc dù hữu ích, AI có thể tạo ra code kém nếu không có hướng dẫn cẩn thận; cần giám sát của con người
- Cách tiếp cận này cho phép thử nghiệm nhanh hơn và hệ thống tốt hơn được tổ chức
- Code được tạo bởi AI đã trở thành hiện thực cho nhiều lập trình viên, nhưng cần phán đoán lành nghề để vẫn hiệu quả và an toàn
## [Distracting Software Engineers Is Way More Harmful Than Most Managers Think](https://workweave.dev/blog/distracting-software-engineers-is-more-harmful-than-managers-think-even-in-the-ai-times)
Bài viết nhấn mạnh rằng việc làm gián đoạn các kỹ sư phần mềm gây ra tác hại lớn hơn nhiều so với những gì hầu hết các nhà quản lý nghĩ. Các kỹ sư phần mềm cần sự tập trung sâu sắc để giải quyết các vấn đề phức tạp, và những lần gián đoạn có thể dẫn đến sai sót, giảm sản lượng và kéo dài thời gian thực hiện dự án. Bài viết lập luận rằng nhiều nhà quản lý đánh giá thấp tác động của việc gián đoạn liên tục, chẳng hạn như các cuộc họp và tin nhắn, đối với hiệu quả của nhóm. Bài viết đề xuất thực hiện các khoảng thời gian làm việc tập trung và giảm thiểu những sự phân tâm không cần thiết để cải thiện cả chất lượng mã và hiệu suất của nhóm.
@@ -137,3 +114,7 @@ Built in 1043990 ms
*Nên mình quyết định đổi sang sử dụng url gốc thay vì thêm hình vào repo. Điểm yếu là có thể ảnh sẽ bị gỡ, và không được xử lý để giảm kích thước, làm tăng thời gian load lên. Mình sẽ cố gắng update lại các ảnh trong các post trước đây luôn (vào một ngày nào đó đẹp trời và mình siêng năng :3)*
![TCP vs UDP](https://substackcdn.com/image/fetch/$s_!KwvJ!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ac50da4-feb8-4781-8bb2-e74244aa889f_2250x2814.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -61,3 +61,7 @@ Kế hoạch optimize: pre-check constants, inline functions, reduce branches. J
- JIT thắng bằng inline/precompute constants, loại dispatch cho linear code.
*Bài viết này mình dùng CCR với model `x-ai/grok-4.1-fast:free`. Có vẻ chưa tốt lắm, nhiều phần còn tiếng Anh thô. Mình sẽ cố gắng cải thiện hơn*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "Multi-Core", "Performance", "Programming",
categories: ["Newsletter"]
---
*Mời bạn thưởng thức Newsletter #62. Bài viết này được thực hiện bởi VSCode Chat + OpenRouter + xAI: Grok 4.1 Fast (free)*
*Mời bạn thưởng thức Newsletter #62. ~~Bài viết này được thực hiện bởi VSCode Chat + OpenRouter + xAI: Grok 4.1 Fast (free)~~*
## [Claude Skills are awesome, maybe a bigger deal than MCP](https://simonwillison.net/2025/Oct/16/claude-skills/)
@@ -112,3 +112,7 @@ Quy trình: Plan/oracle → small chunks (UI/backend) → cleanup/docs/refactor
![A Guide to Microservices Architecture for Building Scalable Systems](https://substackcdn.com/image/fetch/$s_!lKZF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde422306-ef24-4d81-ac91-cb24ff284706_2250x2624.heic)
*Kết quả của combo này mình đánh giá khoảng 4-6đ, cấu trúc ổn, chốt được nội dung cốt lõi tuy nhiên còn dùng nhiều từ tiếng Anh. Ưu điểm là sẵn có trong VSCode, tận dụng được built-in feature của VSCode, không phải chạy thêm Terminal*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -142,3 +142,7 @@ Tìm kiếm: memtable → segments newest-first. Compaction giữ small. LSM ưu
- Sparse indices + sorting: Fast lookup/range, memory efficient.
- Memtable + WAL + SSTables: Crash-safe, write-optimized.
- LSM Trees: Base cho KV stores scale (LevelDB, RocksDB, DynamoDB).
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+6 -26
View File
@@ -5,9 +5,9 @@ tags: ["AI-Assisted", "Technology", "caching", "database", "performance"]
categories: ["Newsletter"]
---
*Mời bạn thưởng thức Newsletter #64. Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [iFlow Open Platform](https://platform.iflow.cn) & Qwen3-Coder-Plus[^qwen3-coder-plus]*
*Mời bạn thưởng thức Newsletter #64. ~~Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [iFlow Open Platform](https://platform.iflow.cn) & Qwen3-Coder-Plus[^qwen3-coder-plus]~~*
[^qwen3-coder-plus]: Qwen3-Coder-480B-A35B-Instruct
[^qwen3-coder-plus]: ~~Qwen3-Coder-480B-A35B-Instruct~~
## [Caching](https://planetscale.com/blog/caching)
@@ -33,30 +33,6 @@ Caching đóng vai trò cực kỳ quan trọng trong việc xây dựng các h
- Hai nguyên lý quan trọng là Temporal và Spatial Locality
- LRU là chiến lược thay thế phổ biến trong ngành
## [Big O Notation](https://samwho.dev/big-o/)
Big O notation là cách để mô tả hiệu suất thuật toán bằng cách phân tích cách thời gian thực thi thay đổi khi kích thước đầu vào tăng lên. Đây là một khái niệm rất quan trọng trong lập trình và khoa học máy tính, giúp các lập trình viên đánh giá và so sánh hiệu quả của các thuật toán khác nhau.
Big O notation mô tả mối quan hệ giữa đầu vào của một hàm và thời gian thực tế (wall-clock time) của nó. Khi phân tích độ phức tạp thời gian, Big O notation (trừ khi có ghi chú khác) sẽ mô tả tình huống xấu nhất có thể xảy ra.
Các loại độ phức tạp thời gian phổ biến bao gồm:
**O(1) - Constant time (Thời gian hằng số)**: Thời gian thực thi không tăng khi kích thước đầu vào tăng. Đây là trường hợp lý tưởng khi thuật toán luôn thực hiện số lượng phép toán không đổi bất kể đầu vào có lớn đến mức nào.
**O(log n) - Logarithmic time (Thời gian logarit)**: Ở mỗi bước, thuật toán sẽ loại bỏ một phần khả năng có thể xảy ra. Đây là đặc điểm của các thuật toán chia để trị như tìm kiếm nhị phân (binary search).
**O(n) - Linear time (Thời gian tuyến tính)**: Thời gian thực thi tăng tỷ lệ thuận với kích thước đầu vào. Nếu đầu vào tăng gấp đôi thì thời gian thực thi cũng tăng gấp đôi.
**O(n²) - Quadratic time (Thời gian bậc hai)**: Thời gian thực thi tăng theo bình phương của kích thước đầu vào. Đây thường là kết quả của các vòng lặp lồng nhau, cần tránh khi làm việc với tập dữ liệu lớn.
Những lỗi phổ biến mà lập trình viên thường gặp là tạo ra các vòng lặp lồng nhau gây ra độ phức tạp bậc hai hoặc sử dụng các phép toán có độ phức tạp O(n) bên trong vòng lặp. Luôn kiểm thử mã nguồn trước và sau khi thay đổi để đảm bảo rằng bạn thực sự đang cải thiện hiệu suất.
**Điểm chính:**
- Big O notation giúp đánh giá hiệu suất thuật toán theo kích thước đầu vào
- Các loại phổ biến: O(1), O(log n), O(n), O(n²)
- Big O thường mô tả trường hợp xấu nhất
- Tránh lồng vòng lặp để giảm độ phức tạp
## [Consistent Hashing](https://eli.thegreenplace.net/2025/consistent-hashing/)
Consistent hashing là một thuật toán hash tiên tiến được sử dụng trong các hệ thống phân tán, nơi mà chỉ một phần nhỏ các khóa cần được tính toán lại khi kích thước của bảng hash thay đổi. Đây là một cải tiến đáng kể so với phương pháp hash truyền thống.
@@ -203,3 +179,7 @@ Tác giả lưu ý rằng nhiều khái niệm đã xuất hiện trong nhiều
![Top Service-to-Service Communication Patterns](https://substackcdn.com/image/fetch/$s_!uW-M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7494e44-82ec-43fc-bd7f-eabea7776dd1_2250x2624.png)
*Đánh giá: Nhìn chung đây vẫn là một bài viết tương đối chất lượng. Tuy nhiên phần tóm tắt còn hơi dài, sẽ cần cải thiện thêm*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "Engineering", "Leadership", "Scaling", "Inf
categories: ["Newsletter"]
---
*Dạo gần đây mấy model free trên OpenRouter đang không ổn định lắm, lúc dùng được lúc thì không. Sẵn còn vài $ credit trên đấy nên nay tranh thủ bào nốt rồi chuyển qua iFlow dùng hẳn (cho đến khi iFlow hết free :v). Mời bạn thưởng thức Newsletter #65. Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [OpenRouter](https://openrouter.ai) & [Anthropic: Claude Sonnet 4.5](https://openrouter.ai/anthropic/claude-sonnet-4.5) (model 'xịn' nhe hehe)*
*~~Dạo gần đây mấy model free trên OpenRouter đang không ổn định lắm, lúc dùng được lúc thì không. Sẵn còn vài $ credit trên đấy nên nay tranh thủ bào nốt rồi chuyển qua iFlow dùng hẳn (cho đến khi iFlow hết free :v).~~ Mời bạn thưởng thức Newsletter #65. ~~Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [OpenRouter](https://openrouter.ai) & [Anthropic: Claude Sonnet 4.5](https://openrouter.ai/anthropic/claude-sonnet-4.5) (model 'xịn' nhe hehe)~~*
## [Scaling Engineering Teams: Lessons from Google, Facebook, and Netflix](https://greenido.wordpress.com/2025/09/25/scaling-engineering-teams-lessons-from-google-facebook-and-netflix)
@@ -130,3 +130,7 @@ Core message là taste emerges từ việc try multiple approaches, discard what
![Which Protocols Run on TCP and UDP](https://substackcdn.com/image/fetch/$s_!ZdF6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef416976-ae0f-48f5-86e1-0189c0b9be88_2360x2664.png)
**Đánh giá:** *Uầy, đang process url cuối thì hit limit mất rồi. Ban đầu còn 2$ (cỡ 52k) mà process được có 7 urls, tính ra là ~7.5k vnđ/bài. Khá là chát đó chứ :v Mà kết quả thì cũng chưa ưng ý lắm, vẫn còn lạm dụng tiếng Anh. Nhìn vào bài cuối là thấy rõ. Cũng có thể là vấn đề ở file AGENTS.md của mình, để mình optimize lại sau vậy. Dù gì thì mình cũng đã đạt được mục đích là tranh thủ bào để quay lại xài đồ free rồi :v Hẹn gặp lại các bạn trong các bài viết tiếp theo :D.*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Technology", "Software Architecture", "Books", "Engineeri
categories: ["Newsletter"]
---
*Dùng api free của iFlow cũng nhiều rồi, nên nay mình dùng thử cli của iFlow - [iFlow CLI](https://github.com/iflow-ai/iflow-cli) xem sao, model được dùng là GLM-4.6. Mời bạn thưởng thức Newsletter #66.*
*~~Dùng api free của iFlow cũng nhiều rồi, nên nay mình dùng thử cli của iFlow - [iFlow CLI](https://github.com/iflow-ai/iflow-cli) xem sao, model được dùng là GLM-4.6.~~ Mời bạn thưởng thức Newsletter #66.*
## [The Ultimate List of Best Software Architecture Books (2026)](https://www.workingsoftware.dev/the-ultimate-list-of-software-architecture-books/?&aid=recmw058VtqAJCyyK)
@@ -107,3 +107,7 @@ Den Delimarsky lập luận về sự cần thiết của việc trở thành "f
- High agency - attitude "We'll figure this out - let's get to work" - là yếu tố khác biệt quan trọng
**Đánh giá**: *Phần đầu iFlow CLI làm khá tốt, nhưng mà càng về sau thì càng lạm dụng tiếng Anh nhiều. Điểm cộng là iFlow CLI có thể access nhiều url, bằng cách bypass sử dụng proxy (Tuy nhiên proxy của Trung Quốc nên nhìn cũng hơi ghê). Trong quá trình sử dụng thì cũng thấy nhiều dòng để toàn tiếng Trung Quốc làm khó hiểu và hơi rén :v Mình sẽ cố gắng cải thiện AGENTS.md và thử lại sau.*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "Build Systems", "Configuration Languages", "Agentic Codin
categories: ["Newsletter"]
---
*Bài viết này mình đã thử cải thiện AGENTS.md lại. Kết quả mình tự đánh giá ở cuối bài nhé. Mời bạn thưởng thức Newsletter #67.*
*~~Bài viết này mình đã thử cải thiện AGENTS.md lại. Kết quả mình tự đánh giá ở cuối bài nhé.~~ Mời bạn thưởng thức Newsletter #67.*
## [Build better software to build software better](https://slack.engineering/build-better-software-to-build-software-better/)
@@ -80,3 +80,7 @@ Bài viết giải thích rõ về Rule of Three trong refactoring - một heuri
[Design a Web Crawler: FAANG Interview Question](https://www.youtube.com/watch?v=6u25GckPhLU)
**Đánh giá:** *Process url tạm ổn, đã bớt dùng tiếng Anh nhưng lại có một chút... tiếng Trung :| Process phần bonus thì hơi lủng. Chủ yếu là do khi gửi url AI thì AI khó mà tìm ra được tiêu đề phù hợp, thậm chí còn ghi trật lất không liên quan nữa.*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted", "debugging", "open-source", "programming-languages", "syst
categories: ["Newsletter"]
---
*Mời bạn thưởng thức Newsletter #68. Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [iFlow Open Platform](https://platform.iflow.cn) & GLM-4.6 (Bài này mình config CCR dùng nhiều models trên iFlow Platform)*
*Mời bạn thưởng thức Newsletter #68. ~~Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [iFlow Open Platform](https://platform.iflow.cn) & GLM-4.6 (Bài này mình config CCR dùng nhiều models trên iFlow Platform)~~*
## [Conscious Debugging: 10 Chiến lược Hiệu quả Thực sự Hoạt động 🐛](https://thetshaped.dev/p/conscious-debugging-10-effective-debugging-strategies-debug-like-pro)
@@ -160,3 +160,7 @@ Các nền tảng cho việc thực thi hiệu quả bao gồm: sự rõ ràng v
**Videos:**
[Why is Kafka Popular?](https://www.youtube.com/watch?v=7_wkWQ9rB5I)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted"]
categories: ["Newsletter"]
---
*Mời bạn thưởng thức Newsletter #69. Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [iFlow Open Platform](https://platform.iflow.cn) & GLM-4.6*
*Mời bạn thưởng thức Newsletter #69. ~~Bài viết này được thực hiện bởi [Claude Code](https://github.com/anthropics/claude-code), [Claude Code Router](https://github.com/musistudio/claude-code-router), [iFlow Open Platform](https://platform.iflow.cn) & GLM-4.6~~*
## [Netflix Xây Dựng Đồ Thị Phân Phân Phối Thời Gian Thực (Phần 1)](https://netflixtechblog.com/how-and-why-netflix-built-a-real-time-distributed-graph-part-1-ingesting-and-processing-data-80113e124acc)
@@ -111,3 +111,7 @@ Zero-copy là kỹ thuật truyền file từ đĩa đến network socket mà gi
![HTTP vs. HTTPS](https://substackcdn.com/image/fetch/$s_!JV_9!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa95473e0-5a68-43c6-841e-540a6b198d6d_2360x2960.png)
![Forward Proxy versus Reverse Proxy](https://substackcdn.com/image/fetch/$s_!5rGo!,w_550,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac99f98d-49a7-4933-b06f-8da0901d210e_800x939.gif)
![Things Every Developer Should Know: Concurrency is NOT parallelism](https://substackcdn.com/image/fetch/$s_!qtkE!,w_550,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4646c2e2-a6fb-44e7-a091-73fcbd8fa498_800x1040.gif)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -117,3 +117,7 @@ Các thời gian chờ trì hoãn cập nhật phụ thuộc theo một khoảng
- Đơn giản thực hiện: chỉ cần cấu hình cooldown days
- Miễn phí với Dependabot, Renovate và các công cụ tương tự
- Có thể ngăn chặn 80-90% sự tiếp xúc với nỗ lực tối thiểu
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -108,4 +108,8 @@ Bài viết gợi ý rằng các khái niệm flow DevOps có thể giúp giảm
- Sự căng thẳng giữa POs (cần ước tính) và developers (ghét ước tính)
- Technical debt và các vấn đề không lường trước được làm ước tính khó chính xác
- Ước tính trở thành "safety railings" khi bị coi là deadlines
- Giao tiếp tốt hơn và các khái niệm DevOps flow giúp giảm thiểu rủi ro
- Giao tiếp tốt hơn và các khái niệm DevOps flow giúp giảm thiểu rủi ro
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -77,3 +77,7 @@ Bài viết nhấn mạnh rằng Domain-Driven Design (DDD) nên được sử d
**Videos:**
[How Does a URL Shortener Work?](https://www.youtube.com/watch?v=HHUi8F_qAXM)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted"]
categories: ["Newsletter"]
---
*Gầy đây mình mới biết [OpenRouter đã hỗ trợ tích hợp Claude Code](https://openrouter.ai/docs/guides/guides/claude-code-integration), nên nay dùng thử. Bài viết này được thực hiện bởi [Claude Code](https://claude.com/product/claude-code) + [Open Router](https://openrouter.ai/) + [Z.AI: GLM 4.5 Air (free)](https://openrouter.ai/z-ai/glm-4.5-air:free). Mời bạn thưởng thức Newsletter #73.*
*~~Gầy đây mình mới biết [OpenRouter đã hỗ trợ tích hợp Claude Code](https://openrouter.ai/docs/guides/guides/claude-code-integration), nên nay dùng thử. Bài viết này được thực hiện bởi [Claude Code](https://claude.com/product/claude-code) + [Open Router](https://openrouter.ai/) + [Z.AI: GLM 4.5 Air (free)](https://openrouter.ai/z-ai/glm-4.5-air:free).~~ Mời bạn thưởng thức Newsletter #73.*
## [System Design Deep Dive: Time Series Databases (TSDBs) Explained](https://designgurus.substack.com/p/system-design-deep-dive-time-series)
@@ -309,3 +309,7 @@ Báo cáo này cung cấp dữ liệu quý giá cho các nhà phát triển, qu
**Đánh giá:** *Tốc độ xử lý urls rất chậm, mình mất cực nhiều thời gian so với trước kia để xử lý 1 url. Tóm tắt khi ngắn khi dài, lại còn đôi khi lẫn lộn kí tự tiếng Trung vào nữa (có vẻ là do model của Z.AI)*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+5 -1
View File
@@ -5,7 +5,7 @@ tags: ["AI-Assisted"]
categories: ["Newsletter"]
---
*Lâu rồi chưa pay 1 cái gì liên quan đến AI (từ thời Claude subscription để thử nghiệm Claude Code). Nay mới mua thử gói [GLM Coding Plan](https://z.ai/subscribe) của [Z.ai](https://z.ai) để trải nghiệm. Gói này hiện cho phép dùng model mới nhất của Z.ai là GLM-4.7. Từ nay mình sẽ tranh thủ dùng [Claude Code](https://claude.com/product/claude-code) với [Z.ai API](https://z.ai/model-api) để 'bào' cho xứng đáng số tiền bỏ ra^^. Mời bạn thưởng thức Newsletter #74.*
*~~Lâu rồi chưa pay 1 cái gì liên quan đến AI (từ thời Claude subscription để thử nghiệm Claude Code). Nay mới mua thử gói [GLM Coding Plan](https://z.ai/subscribe) của [Z.ai](https://z.ai) để trải nghiệm. Gói này hiện cho phép dùng model mới nhất của Z.ai là GLM-4.7. Từ nay mình sẽ tranh thủ dùng [Claude Code](https://claude.com/product/claude-code) với [Z.ai API](https://z.ai/model-api) để 'bào' cho xứng đáng số tiền bỏ ra^^.~~ Mời bạn thưởng thức Newsletter #74.*
## [Goodbye Microservices: From 100s of problem children to 1 superstar](https://www.twilio.com/en-us/blog/developers/best-practices/goodbye-microservices)
@@ -155,3 +155,7 @@ Good API design = stable foundation, poor design = bottleneck.
![Hub, Switch, & Router Explained](https://substackcdn.com/image/fetch/$s_!BXWB!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09a8b52f-2b80-4762-92cd-c5d18d5a7a3c_2360x2960.png)
**Đánh giá**: *Z.ai xử lý 1 url tương đối nhanh, ban đầu mình cũng thấy khá ok, tuy nhiên thêm càng nhiều thì có vẻ càng bị dài & lạm dụng tiếng Anh. Mình đã phải yêu cầu tóm gọn lại một xíu. Hi vọng sẽ cải thiện được sau (vì lỡ mua rùi và non-refundable hiuhiu)*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -82,3 +82,7 @@ Các kỹ thuật cốt lõi bao gồm: Redundancy (nhân bản critical compone
![Common Network Protocols Every Engineer Should Know](https://substackcdn.com/image/fetch/$s_!ETm5!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2112a03d-cc48-4db5-9740-94adc1a7efbf_2360x2920.png)
![8 Popular Network Protocols](https://substackcdn.com/image/fetch/$s_!5bFA!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F722913d5-a10f-44c2-98ed-edc27a92a137_1444x1882.jpeg)
![9 best practices for developing microservices](https://substackcdn.com/image/fetch/$s_!pen8!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fdf2d2-5ce5-4c2b-90f9-3bcfcecb5fc1_1370x1536.jpeg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -120,3 +120,7 @@ Các tác nhân sẽ tiếp tục là tiêu đề chính. Chúng ta sẽ thấy
- Vibe Coding trưởng thành: kỹ sư tập trung vào xem xét/đánh giá/hình thành khái niệm, biết mã trở thành yếu tố phân biệt
- "AI rác" tạo thị trường cao cấp cho nội dung con người; các nền tảng áp dụng tiêu chuẩn siêu dữ liệu "Được ký bởi Con người"
- Bằng chứng sinh trắc học về nhân tính trở thành yêu cầu để chống spam tác nhân
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -127,3 +127,7 @@ Bài viết này chia sẻ kinh nghiệm đóng góp vào Forgejo - một mã ng
![How does Docker Work?](https://substackcdn.com/image/fetch/$s_!SUjA!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd91a5538-a69e-468c-bf83-058bb78753ca_2360x2770.png)
![Containerization Explained: From Build to Runtime](https://substackcdn.com/image/fetch/$s_!4qBZ!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0945414-9cea-4e64-8dd4-3abcc404f73e_2360x2960.png)
![Must-Know Message Broker Patterns](https://substackcdn.com/image/fetch/$s_!n8BK!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51a75cc-09a9-4fed-af8a-c32a64f8ab60_2250x2624.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -217,3 +217,7 @@ US Bureau of Labor Statistics vẫn expect software developer jobs grow ~15%, ch
![5 Leader Election Algorithms Powering Modern Databases](https://substackcdn.com/image/fetch/$s_!MJUT!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06243bf8-f149-4075-bc81-99af15be3579_6001x7802.png)
![A Guide to Database Sharding](https://substackcdn.com/image/fetch/$s_!Xrbz!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c99d0d5-8e5b-4e82-bb28-9fbd470e3bc6_2250x2624.png)
![Modern Storage Systems](https://substackcdn.com/image/fetch/$s_!NCWv!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0adc9c84-37f2-4a96-96a6-f7f26bbd1b7e_2360x2960.jpeg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -72,3 +72,7 @@ Tiếp theo là DNS resolution - browser không thể gửi request đến tên
Response sau đó được parse để xây dựng DOM tree - parser chuyển tags như `<h1>` thành tokens và builds a DOM tree. DOM là in-memory model của document, là shared contract giữa HTML parser, CSS selector engine, và JavaScript runtime. Cuối cùng là rendering pipeline: Layout (reflow) để calculate sizes và positions, Paint để fill pixels, rồi Composite để stitch layers together trên GPU. Mỗi loại change triggers các stages khác nhau - changing colors thường chỉ repaint, trong khi changing sizes forces layout và paint để recompute.
**Đánh giá**: *Không biết vì sao nhưng mình cảm thấy bài viết này khá tốt^^ Chắc do hôm qua update lại file Agents.md, để cố gắng phát huy :)))*
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -107,3 +107,7 @@ Hoàn thành lệnh bổ sung cho các tính năng hiện có như hoàn thành
**Videos:**
[Tác Nhân Trí Tuệ Nhân Tạo Là Gì & Chúng Hoạt Động Như Thế Nào?](https://www.youtube.com/watch?v=oP6DS_x5K0Y)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -18
View File
@@ -7,24 +7,6 @@ categories: ["Newsletter"]
*Mời bạn thưởng thức Newsletter #81.*
## [Những thách thức của soft delete](https://atlas9.dev/blog/soft-delete.html)
Bài viết này phân tích các vấn đề thường gặp khi triển khai soft delete (xóa mềm) trong cơ sở dữ liệu, đặc biệt là khi sử dụng cột `archived_at`. Tác giả chia sẻ kinh nghiệm thực tế về việc cách tiếp cận này có vẻ đơn giản ban đầu nhưng lại tạo ra nhiều phức tạp theo thời gian.
Vấn đề chính là các bảng cơ sở dữ liệu sẽ chứa lượng lớn dữ liệu "chết" - những bản ghi đã bị xóa nhưng vẫn lưu lại. 99% các bản ghi lưu trữ sẽ không bao giờ được đọc lại, nhưng lại chiếm dụng không gian lưu trữ và làm chậm các truy vấn. Điều này đặc biệt nghiêm trọng khi có hàng triệu bản ghi chết tích tụ theo thời gian.
Ngoài ra, việc có dữ liệu sống và dữ liệu lưu trữ nằm cạnh nhau trong cùng một bảng còn làm phức tạp hóa truy vấn, chỉ mục, và cả mã nguồn ứng dụng. Các nhà phát triển phải luôn nhớ lọc bỏ dữ liệu lưu trữ, và có nguy cơ dữ liệu cũ bị rò rỉ vào kết quả khi không mong muốn.
Bài viết đề xuất một số giải pháp thay thế:
- **Sử dụng trigger trong PostgreSQL**: Trigger tự động sao chép bản ghi sang bảng lưu trữ riêng trước khi xóa. Cách này giúp giữ bảng chính sạch sẽ, dữ liệu lưu trữ được tách biệt, dễ dàng dọn dẹp sau khoảng thời gian retention.
- **Application-level archiving**: Gửi sự kiện khi xóa bản ghi để một service khác lưu trữ dữ liệu vào S3 hoặc nơi khác. Ưu điểm là ứng dụng chính đơn giản hơn, nhưng nhược điểm là phức tạp hơn về infrastructure và có thể mất dữ liệu nếu có bug.
- **WAL-based Change Data Capture**: Sử dụng Write-Ahead Log của PostgreSQL để phát ra các thay đổi và lưu trữ bản ghi bị xóa. Phương pháp này không cần thay đổi mã nguồn hay thêm trigger, nhưng đòi hỏi operational complexity cao hơn.
Tác giả kết luận rằng nếu bắt đầu dự án mới và cần soft delete, anh sẽ ưu tiên sử dụng trigger-based approach vì sự cân bằng giữa độ đơn giản và hiệu quả.
## [Câu hỏi phỏng vấn Java - Tại sao không nên sử dụng static initializer?](https://javabulletin.substack.com/p/java-interview-question-why-you-should)
Bài viết giải thích lý do tại sao developer nên tránh sử dụng static initializer (`static { ... }`) trong Java, mặc dù nó có vẻ tiện lợi cho việc khởi tạo dữ liệu tĩnh phức tạp.
@@ -234,3 +216,7 @@ Tuy nhiên, bài viết tập trung vào bài học về việc lập trình v
![HTTP/2 over TCP vs HTTP/3 over QUIC](https://substackcdn.com/image/fetch/$s_!4V7B!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9589feb-6f59-4971-9da4-26712d1a2ca1_2360x2960.png)
![How Git Really Stores Your Data](https://substackcdn.com/image/fetch/$s_!ihnd!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe954900-e8d8-40d0-a4b1-2f8e14068882_2360x2960.png)
![How NAT Works](https://substackcdn.com/image/fetch/$s_!5SHy!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbddfb5f-a652-4749-b0b9-210102774f4f_2360x2960.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -44,3 +44,7 @@ Vấn đề gốc rễ nằm ở logic gộp chuỗi CNAME. Khi một số bản
Một số triển khai DNS như getaddrinfo trong glibc và quy trình DNSC trong switch Cisco sử dụng phân tích tuần tự - theo dõi tên mong đợi khi duyệt qua các bản ghi. Khi gặp CNAME, tên mong đợi được cập nhật. Nếu CNAME xuất hiện cuối cùng, các bản ghi A/AAAA bị bỏ qua vì không khớp tên, dẫn đến phản hồi rỗng. systemd-resolved không gặp vấn đề này vì nó phân tích bản ghi vào một tập hợp có thứ tự và có thể tìm kiếm toàn bộ.
RFC 1034 từ năm 1987 sử dụng cụm "possibly preface" để nói về CNAME nhưng không dùng từ khóa normative như MUST/SHOULD - RFC 2119 mới ra năm 1997. RFC cũng rõ ràng về thứ tự trong RRset nhưng mơ hồ về thứ tự tương đối giữa các RRset khác nhau trong phần thông điệp. Cloudflare đã hoàn tác thay đổi và viết đề xuất Internet-Draft để làm rõ hành vi tại IETF, giúp cộng đồng DNS điều hướng giao thức này tốt hơn.
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -17
View File
@@ -41,23 +41,6 @@ Bài viết cũng thảo luận về các bẫy cần tránh như lời nhắc m
- Sử dụng ba tầng giới hạn: Luôn làm, Hỏi trước, Không bao giờ làm
- Coi đặc tả như vòng lặp lặp lại với kiểm tra và tinh chỉnh liên tục
## [Challenging projects every programmer should try](https://austinhenley.com/blog/challengingprojects.html)
Austin Z. Henley, Giáo sư Đảng ngữ tại Đại học Carnegie Mellon, đã chia sẻ danh sách các dự án thử thách mà mọi lập trình viên nên thử. Bài viết xuất phát từ thực tế rằng nhiều sinh viên và nhà phát triển chuyên nghiệp muốn bắt đầu dự án phụ nhưng không biết nên xây dựng gì. Austin đưa ra những dự án đã dạy cho ông rất nhiều kiến thức, và có thể xây dựng nhiều lần với mỗi lần học được những điều mới.
Bài viết liệt kê sáu dự án chính: Trình soạn thảo văn bản, Trò chơi 2D (Space Invaders), Trình biên dịch (Tiny BASIC), Hệ điều hành thu nhỏ, Bảng tính, và Trình mô phỏng máy chơi game console. Mỗi dự án đều có những thử thách riêng giúp nhà phát triển làm chủ các kỹ năng quan trọng. Ví dụ, Trình soạn thảo văn bản dạy về cấu trúc dữ liệu như dây thừng, bộ đệm khoảng, bảng mảnh để lưu trữ văn bản hiệu quả, cùng với các mẫu thiết kế như Memento và Command cho hoàn tác/làm lại. Space Invaders giúp hiểu vòng lặp trò chơi, xử lý đầu vào người dùng, và mẫu nhà máy để quản lý đối tượng trò chơi.
Dự án trình biên dịch được Austin mô tả là "mở mắt nhất" - dạy về phân tích từ vựng, phân tích cú pháp, phân tích đệ quy giảm dần, cây cú pháp trừu tượng, phân tích ngữ nghĩa, và tạo mã. Hệ điều hành thu nhỏ giúp hiểu biên dịch chéo, nạp khởi động, quản lý bộ nhớ, lập lịch, và hệ thống tệp. Hai dự án nâng cao hơn là Bảng tính (kết hợp thử thách từ trình soạn thảo văn bản và trình biên dịch) và Trình mô phỏng máy chơi game console (kết hợp trình biên dịch, hệ điều hành, và engine trò chơi).
Bài viết cũng bao gồm danh sách các gợi ý dự án từ cộng đồng như cơ sở dữ liệu từ đầu, trình dò tia, bản sao MS Paint, trình đồ họa vector, bộ giải mã hình ảnh, ứng dụng web phòng chat, và tiện ích dòng lệnh. Mỗi dự án đều có phần "Đọc thêm" với các tài nguyên để học sâu hơn.
**Điểm chính:**
- 6 dự án thử thách: Trình soạn thảo văn bản, Trò chơi 2D, Trình biên dịch, Hệ điều hành thu nhỏ, Bảng tính, Trình mô phỏng
- Trình soạn thảo văn bản dạy cấu trúc dữ liệu (dây thừng, bộ đệm khoảng, bảng mảnh) và mẫu hoàn tác/làm lại
- Space Invaders bao gồm vòng lặp trò chơi, xử lý đầu vào, mẫu nhà máy, máy trạng thái
- Dự án trình biên dịch khám phá phân tích từ vựng, phân tích cú pháp, cây cú pháp, phân tích ngữ nghĩa, tạo mã
- Hệ điều hành thu nhỏ giúp hiểu biên dịch chéo, nạp khởi động, quản lý bộ nhớ, lập lịch
## [Unconventional PostgreSQL Optimizations](https://hakibenita.com/postgresql-unconventional-optimizations)
Haki Benita đã chia sẻ các kỹ thuật tối ưu hóa PostgreSQL phi truyền thống mà các nhà phát triển thường không nghĩ đến. Bài viết bắt đầu với thực tế rằng khi tối ưu hóa cơ sở dữ liệu, developers thường dùng những công cụ cũ kỹ: viết lại truy vấn, thêm chỉ mục, phi chuẩn hóa, phân tích, dọn dẹp, lặp lại. Các kỹ thuật truyền thống hiệu quả, nhưng đôi khi sáng tạo có thể mang lại kết quả tốt hơn.
@@ -121,3 +104,7 @@ Các phương pháp tốt bao gồm: rõ ràng và cụ thể, cung cấp ngữ
- Vấn đề "kim trong đống rơm": mô hình hiểu tốt hơn ở đầu/cuối prompt
- 5 kỹ thuật chính: zero-shot, few-shot, chain-of-thought, role prompting, prompt chaining
- Nguyên tắc: rõ ràng, ngữ cảnh đủ, định dạng đầu ra, dùng ví dụ chiến lược, lặp lại
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -72,3 +72,7 @@ Bài viết chia sẻ một quy trình thực tế để sử dụng AI coding h
**Images:**
![Git pull vs. git fetch](https://substack-post-media.s3.amazonaws.com/public/images/625a6789-c32d-4a27-a5f5-c174fb920637_2360x2960.png)
![Top Authentication Techniques](https://substackcdn.com/image/fetch/$s_!-Lov!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf928dd3-de16-4605-a702-762df269c9f2_2250x2862.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -128,3 +128,7 @@ Bài học rút ra là Go và Rust đang phát triển mạnh trong cloud vì ch
**Hình ảnh:**
![Must-Know Software Architecture Patterns](https://substackcdn.com/image/fetch/$s_!V-F7!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c857fb-0db2-4701-93f7-343fac614657_2250x2862.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -152,3 +152,7 @@ Tác giả quyết định build road system của riêng mình vì curiosity v
**Hình ảnh:**
![12 Architectural Concepts Developers Should Know](https://substackcdn.com/image/fetch/w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7712ce10-d199-49ef-94f9-e983e47a92d9_2360x2852.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -105,3 +105,7 @@ Tác giả sử dụng ví dụ về Epic — công ty nắm 42% thị trường
- Chi phí phần mềm cao tạo ra độc quyền và các mô hình kinh doanh problem như enshittification
- Sự dồi dào của phần mềm sẽ cho phép bất kỳ ai cũng có thể tạo ra công cụ kỹ thuật số mà họ cần
- Các kỹ năng cốt lõi của software engineering sẽ trở nên quan trọng hơn ngay cả khi viết code bằng tay trở nên ít liên quan hơn
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -17
View File
@@ -33,23 +33,6 @@ Một bài viết ngắn nhưng thú vị từ matklad về việc wrap code và
- VS Code và Emacs đều không hỗ trợ tốt relative wrapping
- Soft-wrapping không thể wrap đúng nếu không hiểu ý nghĩa text (ví dụ markdown lists)
## [How I Use Claude Code](https://boristane.com/blog/how-i-use-claude-code/)
Boris Tane chia sẻ workflow 9 tháng sử dụng Claude Code với nguyên tắc cốt lõi: **không bao giờ để Claude viết code cho đến khi đã review và approve plan**. Workflow gồm 3 phase:
**Phase 1 - Research:** Yêu cầu Claude đọc sâu codebase và viết báo cáo vào `research.md`. Từ khóa quan trọng: "deeply", "in great details", "intricacies" - để Claude không chỉ đọc hời hợt.
**Phase 2 - Planning:** Tạo `plan.md` chi tiết, sau đó thêm inline notes để sửa, reject approaches, thêm constraints. Chu trình annotation này lặp 1-6 lần với guard "don't implement yet".
**Phase 3 - Implementation:** Khi plan đã sẵn sàng, một prompt duy nhất: "implement it all. mark completed in plan. don't stop until done."
**Điểm chính:**
- File markdown là shared mutable state giữa human và AI
- Annotation cycle inject domain knowledge mà Claude không có
- Single long session tốt hơn split sessions - context được build dần
- Implementation nên boring - creative work đã xong ở planning phase
- "I want implementation to be boring" - tất cả decisions đã được validate
### Bonus
**Images:**
@@ -62,3 +45,7 @@ Boris Tane chia sẻ workflow 9 tháng sử dụng Claude Code với nguyên t
**Videos:**
[Video: What Is Redis Really About? - ByteByteGo](https://www.youtube.com/watch?v=z_NbVtbgBJw)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -129,3 +129,7 @@ Dù YAML v1.2 (2009) đã loại bỏ hành vi này để tương thích với J
- `NO` trong YAML bị hiểu là `false` do quy tắc boolean từ đặc tả v1.1
- YAML v1.2 đã sửa lỗi này từ năm 2009 nhưng hầu hết thư viện chưa cập nhật
- Giải pháp: dùng dấu ngoặc kép, thẻ `!!str`, hoặc thư viện tương thích v1.2
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -72,3 +72,7 @@ Stripe nhấn mạnh rằng thanh toán yêu cầu độ chính xác 100% — đ
![How OAuth 2 Works](https://substackcdn.com/image/fetch/$s_!ipY-!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2931d40e-cce8-4ecd-a520-b5f80679c315_2528x3626.png)
![How Distributed Tracing Works at the High Level?](https://substackcdn.com/image/fetch/$s_!Ehq9!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f417b56-c66c-45fd-8308-dab9af381ced_2252x2752.png)
![Top 4 API Gateway Use Cases](https://substackcdn.com/image/fetch/$s_!4UUW!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0357d808-5db9-4e18-8262-8dee58fd697d_2508x3000.jpeg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -104,3 +104,7 @@ Bài viết phân tích ba thuật toán xây dựng hệ thống reactive — l
![Git Workflow: Essential Commands](https://substackcdn.com/image/fetch/$s_!Fevp!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1ae3fa-80a7-464d-97a2-869170caaa2f_2360x2960.png)
![How can Cache Systems go wrong?](https://substackcdn.com/image/fetch/$s_!huHJ!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9262eb79-a1cc-4308-8f72-01fdf91e429d_1388x1782.jpeg)
![Top Cyber Attacks Explained](https://substackcdn.com/image/fetch/$s_!7p1w!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ebb98a-9f98-4c32-9268-2d14086569d8_2360x2960.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -107,3 +107,7 @@ Kết quả thú vị nhất là quản lý theo kết quả — định nghĩa
- Tự trị hoàn toàn gây ra trùng lặp công việc và hỗn loạn khi thiếu ràng buộc
- Tác nhân AI có khả năng mở rộng vai trò tự nhiên khi được trao quyền tự quyết theo mục tiêu
- Điều phối tác nhân AI phản chiếu quản lý nhóm người: nhóm giỏi cần mục tiêu rõ ràng, không cần vi quản lý
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -113,3 +113,7 @@ Daniel Lemire thực hiện một thí nghiệm thú vị để đo giới hạn
![How Single Sign-On (SSO) Works](https://substackcdn.com/image/fetch/$s_!c4WE!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cd367-494f-4031-9793-f27e6142e54b_2508x3000.png)
![How LLMs Use AI Agents with Deep Research](https://substackcdn.com/image/fetch/$s_!em-f!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e7e23e9-2a5a-4b06-a3fa-ccb6c5493f1d_2508x3000.png)
![How hackers steal passwords](https://substackcdn.com/image/fetch/$s_!kRPi!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d3b2bb9-fc09-48d9-89b7-52bc37098af9_2360x2960.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -13
View File
@@ -99,19 +99,6 @@ Bộ kỹ năng bao gồm nhiều chủ đề: phong cách mã nguồn, cấu tr
- Đo lường tỷ lệ giảm lỗi cho từng kỹ năng (ví dụ: phong cách mã nguồn giảm 40%, tài liệu giảm 53%)
- Triết lý: kỹ năng AI do AI tạo ra là vô dụng — cần con người chỉnh sửa và đánh giá
## [Những điều tôi tin](https://leerob.com/beliefs)
Lee Robinson (VP trải nghiệm nhà phát triển tại Cursor) chia sẻ tuyên ngôn cá nhân gồm mười một nguyên tắc nghề nghiệp cốt lõi. Xuyên suốt bài viết là triết lý ưu tiên hành động: giao sản phẩm nhanh quan trọng hơn chiến lược hoàn hảo, đội nhỏ vượt trội đội lớn, và các đội ứng dụng AI sẽ vượt xa tổ chức truyền thống. Robinson nhấn mạnh việc áp dụng sản phẩm quan trọng hơn việc triển khai mã nguồn.
Về phát triển bản thân, tác giả tin rằng thành công đến từ sự quyết tâm chứ không phải tài năng bẩm sinh, và cải thiện đều đặn mỗi ngày là con đường phát triển sự nghiệp. Về giao tiếp, viết rõ ràng phản ánh tư duy rõ ràng — mọi chuyên gia đều cần cải thiện kỹ năng viết. Về lãnh đạo, ảnh hưởng quan trọng hơn chức danh, và chất lượng tuyển dụng là điều phân biệt lãnh đạo giỏi với lãnh đạo xuất sắc.
**Điểm chính:**
- Ưu tiên giao sản phẩm nhanh — đội nhỏ ứng dụng AI sẽ vượt xa tổ chức truyền thống
- Thành công đến từ sự quyết tâm và cải thiện đều đặn, không phải tài năng bẩm sinh
- Viết rõ ràng phản ánh tư duy rõ ràng — lãnh đạo phải loại bỏ sự mơ hồ
- Bản mẫu truyền đạt tốt hơn tài liệu — chỉ quảng bá dự án mà mình thực sự tin tưởng
- Luôn giả định thiện ý — đối xử với phê bình như phản hồi có giá trị
## [Những thủ thuật lập trình nhỏ rất quan trọng](https://will-keleher.com/posts/small-programming-tricks-matter/)
Will Keleher lập luận rằng năng suất kỹ sư được cải thiện đáng kể nhờ tích lũy những "mẩu kiến thức nhỏ" — các kỹ thuật và công cụ cụ thể không cần nền tảng sâu nhưng cải thiện công việc hàng ngày ngay lập tức. Tác giả chia sẻ nhiều ví dụ thực tế: tìm kiếm mờ lịch sử lệnh bằng `fzf` với Ctrl+R, chạy truy vấn `SELECT` không cần `FROM` để kiểm thử nhanh, dùng `EXPLAIN ANALYZE` để tối ưu truy vấn, biểu thức chính quy với ranh giới từ (`\b`), và "Git pickaxe" (`git log -S`) để tìm commit thêm/xóa chuỗi cụ thể.
@@ -137,3 +124,7 @@ Phần phổ quát bao gồm các phím tắt chỉnh sửa dòng lệnh (Ctrl+W
- `set -e` và `set -u` là hai dòng an toàn bắt buộc khi viết shell script
- Mở rộng dấu ngoặc nhọn: `cp file{,.bak}` sao lưu, `mkdir -p project/{src,tests,docs}` tạo nhiều thư mục
- Triết lý: chọn một thủ thuật, ép bản thân dùng một tuần, rồi chọn thủ thuật tiếp theo
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4 -11
View File
@@ -53,17 +53,6 @@ Anthropic vừa thực hiện nghiên cứu định tính đa ngôn ngữ lớn
- Mong muốn năng suất thường ẩn chứa khao khát sâu hơn — tự động hoá email thực chất là muốn dành thời gian cho gia đình
- Đây là nghiên cứu định tính đa ngôn ngữ lớn nhất từ trước đến nay về kỳ vọng của con người với AI
## [Cách Slack xây dựng lại hệ thống thông báo](https://slack.engineering/how-slack-rebuilt-notifications/)
Hệ thống thông báo của Slack từng là một trong ba nguyên nhân hàng đầu gây ra phiếu hỗ trợ khách hàng, do có bốn mô hình tư duy xung đột giữa desktop và mobile, cài đặt không đồng bộ, và các tuỳ chọn nâng cao nằm rải rác. Thay vì vá víu hệ thống cũ, đội ngũ Slack quyết định thiết kế lại toàn bộ.
Giải pháp mới tách biệt "thông báo gì" khỏi "thông báo như thế nào" — người dùng có thể xem tất cả hoạt động nhưng chỉ nhận push notification cho lượt mention. Mô hình tuỳ chọn được thống nhất thành ba lựa chọn rõ ràng: tất cả bài mới, chỉ mention, hoặc tắt tiếng. Về kỹ thuật, đội ngũ di chuyển hàng triệu người dùng từ bốn hệ thống xung đột sang một mô hình thống nhất bằng chiến lược đọc thời gian thực để đảm bảo tương thích ngược, đồng thời xây lại giao diện mobile bằng React hiện đại.
**Điểm chính:**
- Mức độ tương tác với cài đặt tăng 5 lần sau khi ra mắt và duy trì ổn định nhiều tuần sau đó
- Tách biệt "nội dung thông báo" và "cách gửi thông báo" giúp người dùng kiểm soát tốt hơn
- Phiếu hỗ trợ khách hàng giảm đáng kể nhờ giao diện cài đặt đơn giản và nhất quán đa nền tảng
## [Mở rộng monolith lên 1 triệu dòng mã: 113 bài học thực tế từ Tech Lead đến CTO](https://www.semicolonandsons.com/articles/scaling-a-monolith-to-1m-loc-113-pragmatic-lessons-from-tech-lead-to-cto)
Bài viết tổng hợp 113 bài học thực tế từ hành trình mở rộng một monolith lên 1 triệu dòng mã, đúc kết từ kinh nghiệm đi từ vị trí Tech Lead đến CTO. Tác giả nhấn mạnh rằng các quyết định kiến trúc có ảnh hưởng lớn hơn nhiều so với tối ưu hoá nhỏ lẻ — thay vì vội vàng thêm cache, hãy sửa gốc vấn đề như truy vấn cơ sở dữ liệu kém, thiếu index, hoặc quản lý bộ nhớ không hợp lý.
@@ -148,3 +137,7 @@ Các kỹ sư thành công dựng quy trình có cấu trúc thay vì prompt tu
![REST vs gRPC](https://substackcdn.com/image/fetch/$s_!LrVm!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a20a0cb-3142-4c32-b772-f002f1a288fd_2880x3862.jpeg)
![Session-Based vs JWT-Based Authentication](https://substackcdn.com/image/fetch/$s_!6SID!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a25337-0104-4c6c-b91a-3a2cd6afd6e4_2508x3000.png)
![A Cheat Sheet on The Most-Used Linux Commands](https://substackcdn.com/image/fetch/$s_!LuLK!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8dd9e12-2979-4040-a138-08723094b8cf_2536x3436.jpeg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -88,3 +88,7 @@ Sản phẩm cuối cùng hiển thị bảy thuật toán chạy đua đồng t
![12 Claude Code Features Every Engineer Should Know](https://substackcdn.com/image/fetch/w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438c4c2f-0fa8-4748-9953-b63fd69674f4_2508x3000.png)
![How does REST API work?](https://substackcdn.com/image/fetch/w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e97a13-b186-4f16-ab59-f9a96867f744_1899x1536.jpeg)
![7 Key Load Balancer Use Cases](https://substackcdn.com/image/fetch/w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0169578f-af50-4b3a-b8ed-542ee7ebf80f_2250x2814.png)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -105,3 +105,7 @@ Obie Fernandez, CTO tại ZAR, chia sẻ cách anh biến Claude Code thành m
![CLI vs MCP](https://substackcdn.com/image/fetch/$s_!70vn!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e475fe-34fa-44f8-a564-02f946456588_2508x3042.png)
![Comparing 5 Major Coding Agents](https://substackcdn.com/image/fetch/$s_!INti!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e4bde9-65ea-4d95-bc99-1802e4f74448_2484x3002.png)
![JWT Visualized](https://substackcdn.com/image/fetch/$s_!ujMG!,w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd50345-af15-4236-ab47-73225d1aa660_800x803.jpeg)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -193,3 +193,7 @@ Thư viện đơn giản lại có nhiều lợi ích: dễ hiểu, dễ tin, d
- Một số thư viện thực sự cần xử lý mọi trường hợp; lời khuyên này không áp dụng
- Hỏi: "customer" là ai? Tình huống phổ biến nhất là gì? 80% có thể là điểm bắt đầu hợp lý
- Đôi khi câu trả lời tốt nhất là "hay là chúng ta không làm cái đó?"
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -136,3 +136,7 @@ Kiểm tra va chạm O(n²) cặp đôi nhưng có early-exit mạnh: đường
**Videos:**
[What is a Data Lakehouse?](https://www.youtube.com/watch?v=taSmwcqdkQk)
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
+4
View File
@@ -141,3 +141,7 @@ Hai nguyên tắc nổi bật nhất: **"Skill Issue" Reframe** — khi agent m
- Mỗi quy tắc trong `AGENTS.md` phải xuất phát từ sự cố thực tế, không phải phòng ngừa suy đoán
- Giữ file hướng dẫn dưới 60 dòng — như checklist phi công, không phải tài liệu toàn diện
- Tách agent lập kế hoạch khỏi agent thực thi để tránh tự đánh giá thiên lệch
---
*Bài viết đã được review và cập nhật bởi Claude Code với Opus 4.7 (1M context).*
Loaded 100 of 101 files, more files were not shown because too many files have changed in this diff. Show more