
Góc nhìn ban đêm phơi sáng dài chân thực của một cabin nhỏ gọn ốp gỗ tuyết tùng dọc với mái vòm kính thiên văn màu trắng và ống khói bằng thép trên sống núi đá, một cửa sổ màu hổ phách ấm áp, hiên gỗ nhỏ, lối đi lát đá, những cây thông lùn và lớp tuyết cũ, dưới vùng lõi Dải Ngân Hà sống động. Bước 2 trong quy trình Cabin Đài quan sát trên Núi.
Một cabin nhỏ bằng gỗ tuyết tùng với mái vòm kính thiên văn xoay màu trắng trên mái nằm trên một sống núi đá dưới Dải Ngân Hà sống động uốn cong ngang bầu trời đêm. Cabin là một khối hộp một tầng nhỏ gọn được ốp bằng các tấm ván gỗ tuyết tùng màu nâu ấm ghép dọc, với mái dốc một chiều bằng kim loại tối màu thấp, một mái vòm bán cầu màu trắng mờ ở đầu bên trái với khe hẹp mở một nửa để lộ ống kính thiên văn vừa đủ nhìn thấy bên trong, và một ống khói bếp bằng thép đen ở đầu bên phải với một làn khói mỏng uốn lượn. Một cửa sổ hình chữ nhật rộng ở mặt trước phát sáng màu hổ phách ấm dịu, và một hiên gỗ nhỏ với lan can đơn giản hướng ra thung lũng. Một lối đi rải sỏi hẹp được viền bằng những viên đá phẳng dẫn lên hiên. Những cây thông lùn rải rác và các mảng tuyết cũ bao quanh cabin, cùng bóng dáng sống núi lởm chởm mờ dần vào một thung lũng sâu với những đỉnh núi xa xăm. Hàng ngàn ngôi sao sắc nét, vùng lõi thiên hà rực rỡ mang sắc tím dịu và vàng kim. Nhiếp ảnh thiên văn phơi sáng dài chân thực, góc rộng 16:9, góc máy thấp, không ô nhiễm ánh sáng, không có người, không có chữ.

Ảnh chụp chân thực ban đêm bên trong cùng một cabin đài quan sát bằng gỗ tuyết tùng: bàn làm việc với bản đồ sao và đèn đỏ, thị kính kính thiên văn hướng lên cửa sập mái vòm trắng, bếp củi bằng gang với ống khói, ghế bành bọc da và hai cửa sổ phía trước ánh màu hổ phách đóng khung sống núi cùng Dải Ngân Hà. Bước 3 trong quy trình Cabin Đài quan sát trên Núi.
Căn phòng nội thất của một cabin đài quan sát nhỏ bằng gỗ tuyết tùng vào ban đêm: tường và trần nhà bằng các tấm ván gỗ tuyết tùng ấm áp ghép dọc đồng bộ với ngoại thất, một chiếc bàn gỗ với các bản đồ sao đang mở và một chiếc đèn bàn phát sáng màu đỏ, thị kính kính thiên văn và ống kính thiên văn màu đen chếch lên qua cửa sập trần nhà tiến vào mái vòm bán cầu màu trắng phía trên, cùng một chiếc bếp củi nhỏ bằng gang màu đen với ánh lửa màu cam và ống khói bằng thép đen. Một chiếc ghế bành bọc da sờn cũ có phủ chăn len đặt giữa bàn làm việc và bếp củi; một kệ treo tường đựng các hộp thị kính và một quả cầu sao bằng đồng thau. Máy ảnh đặt bên trong nhìn về phía hai cửa sổ hình chữ nhật mặt trước đang tỏa ánh sáng màu hổ phách từ bên trong và đóng khung lấy một sống núi lởm chởm, những cây thông lùn, lớp tuyết cũ và Dải Ngân Hà rực rỡ phía xa. Ánh sáng pha trộn giữa đèn làm việc màu đỏ dịu và ánh lửa ấm áp; khung cửa sổ mang sắc thái mát mẻ và tối hơn ở phía bên ngoài. Nhiếp ảnh nội thất chân thực như ảnh chụp (photorealistic), ống kính 24mm, tỷ lệ 16:9, ấm cúng và tĩnh lặng, không có người, không có chữ.

Cảnh game voxel góc nhìn đẳng cự (isometric) đầy màu sắc của một quán trọ suối nước nóng (onsen) bằng gỗ trên núi lúc chập tối: hơi nước bốc lên từ các bồn tắm đá, những rặng thông, lối đi lát đá, đèn lồng giấy tỏa sáng ấm áp, bầu trời xanh tím. Đồ họa game dạng khối vuông sắc nét, không có giao diện người dùng (UI) hay nhân vật.
Một cảnh game voxel góc nhìn đẳng cự (isometric) vẽ quán trọ suối nước nóng trên núi vào lúc chập tối. Những khối voxel vuông vức đầy màu sắc tạo nên một quán trọ onsen bằng gỗ với cửa trượt, mái ngói, và những chiếc đèn lồng giấy tỏa ánh sáng cam ấm áp dọc theo lối đi lát đá. Hơi nước bốc lên thành những khối lập phương màu trắng mềm mại từ các bồn tắm đá ngoài trời. Những hàng cây thông và vách đá bao quanh quán trọ; một dòng suối nhỏ tạo bởi các khối voxel màu xanh lam chảy qua những tảng đá phủ rêu. Ánh đèn lồng đọng lại thành từng vũng sáng trên lối đi trong khi bầu trời chuyển dần từ sắc tím sang xanh thẫm. Bảng màu đồ họa game tươi vui, các cạnh khối voxel sắc nét, hiệu ứng đổ bóng môi trường (ambient occlusion) nhẹ trong các khe hẹp, không có giao diện người dùng (UI), không có chữ, không có nhân vật. Góc nhìn hơi chúc xuống từ góc chiếu đẳng cự cổ điển.
Xây dựng bản mô tả thiết kế sẵn sàng để tạo ảnh cho một xưởng gốm bên hồ có lò nung củi: hướng đặt công trình ven bờ, hình khối gọn gàng với nhà lò nung và cầu cảng, bảng vật liệu, bố cục phòng bàn xoay, lưu ý an toàn cho lò nung, các chi tiết thị giác cố định để tạo ảnh đồng nhất, cùng hai mầm prompt (ngoại thất giờ vàng và bàn làm việc giờ xanh).
Hãy đóng vai một nhà thiết kế ý tưởng kiến trúc chuyên về các xưởng thủ công nhỏ ven mặt nước. Hãy giúp tôi xây dựng một bản mô tả thiết kế rõ ràng, sẵn sàng để tạo ảnh cho một xưởng gốm bên hồ có lò nung củi. Trước tiên, hãy hỏi tôi trong một danh sách ngắn gọn về các thông tin: bối cảnh hồ nước (bờ rừng, vịnh đá nhỏ, đồng cỏ thoáng đãng), loại đất sét và kiểu nung (gốm sành stoneware, gốm đất nung earthenware, nung củi, có hỗ trợ điện), phong cách chủ đạo của xưởng (gỗ tuyết tùng mộc mạc, kính-và-gỗ hiện đại, cảm hứng Nhật Bản), quy mô diện tích dự kiến (nhà kho khiêm tốn, xưởng cỡ vừa, rộng rãi), và bất kỳ hạng mục bắt buộc phải có nào (cầu cảng, bồn rửa tráng men, giá hong khô, chỗ ngồi cho khách, gác xép nghỉ qua đêm). Sau đó, hãy lập bản mô tả thiết kế với các phần sau: 1. **Ý tưởng trong Một Câu**: cảm xúc chủ đạo và mục đích của xưởng gốm. 2. **Khu đất và Hướng công trình**: vị trí tọa lạc trên bờ hồ, hướng quay của các ô cửa sổ lớn để đón ánh sáng và tầm nhìn ra mặt hồ, vị trí đặt nhà lò nung xét theo hướng khói và gió, lối đi từ bãi đậu xe hoặc lối dẫn ra cầu cảng. 3. **Hình khối và Bố cục Không gian**: diện tích mặt bằng, hình dáng mái, cửa khoang mở rộng cho phòng đặt bàn xoay, và nhà lò nung tách biệt hoặc liền kề, kèm theo kích thước ước chừng. 4. **Vật liệu và Bảng màu**: lớp ốp ngoại thất (ví dụ: gỗ tuyết tùng nhuốm màu thời gian), vật liệu lợp mái, khung cửa sổ, ván lát cầu cảng, cùng tông màu gỗ và tường trát vữa bên trong nội thất. 5. **Bố cục Nội thất**: các bàn xoay gốm đặt cạnh cửa sổ nhìn ra hồ, bàn nhồi đất sét, bàn pha và tráng men, các kệ hong khô, bồn rửa, bếp củi sưởi ấm nếu cần, và khu vực lưu trữ đất sét cùng dụng cụ. 6. **Ghi chú về Lò nung và An toàn**: hướng đặt lò nung củi, đường thoát tro và khói, khoảng cách an toàn tối thiểu, và cách thức mở cửa nhà lò để xếp gốm vào nung. 7. **Các Chi tiết Thị giác Cố định**: danh sách đánh số gồm 8 đến 10 chi tiết bắt buộc phải giữ nguyên giống hệt nhau trong mọi bức ảnh chụp xưởng gốm này (vật liệu ốp tường, màu mái, hình dáng cầu cảng, ống khói lò nung, số lượng cửa sổ, các loài cây, màu nước hồ, hướng ánh sáng giờ vàng). 8. **Mầm Prompt Tạo ảnh (Image Prompt Seeds)**: hai đoạn prompt khởi đầu ngắn gọn, một đoạn cho cảnh ngoại thất giờ vàng có cầu cảng và nhà lò nung, và một đoạn cho cảnh nội thất bàn làm việc vào giờ xanh nhìn ra mặt nước. Mỗi đoạn bắt buộc phải nhắc lại các chi tiết thị giác cố định và đặt chủ thể chính ngay trong câu đầu tiên. Hãy trình bày ngắn gọn, thực tế và có tính khả thi khi xây dựng. Tránh nêu tên các kiến trúc sư hoặc thương hiệu có thật. Đánh dấu cảnh báo bất kỳ yếu tố nào mất an toàn khi nung củi gần cây cối hoặc cầu cảng.

Ngoại thất chân thực như ảnh chụp vào giờ vàng (golden hour) của xưởng gốm bằng gỗ tuyết tùng nhuốm màu thời gian bên cầu cảng trên hồ: cửa khoang rộng mở để lộ những bàn xoay gốm, nhà lò nung củi tách biệt có ống khói gạch, củi xếp chồng, rừng thông, mặt nước tĩnh lặng phản chiếu bóng hình. Bước 2 trong quy trình Xưởng gốm Bên hồ.
Một xưởng gốm bằng gỗ tuyết tùng bên hồ có nhà lò nung củi vào giờ vàng (golden hour), góc nhìn ngoại thất từ phía cầu cảng. Những tấm ván gỗ tuyết tùng ốp dọc nhuốm màu sương gió, mái kim loại dốc thấp và cánh cửa khoang mở rộng để lộ hai bàn xoay gốm cùng các kệ hong khô đồ gốm bên trong. Một cầu cảng nhỏ bằng gỗ vươn ra mặt nước hồ tĩnh lặng đang phản chiếu ánh sáng màu hổ phách ấm áp. Bên cạnh xưởng chính, một nhà lò nung tách biệt có ống khói bằng gạch đang tỏa ra một làn khói mỏng màu nhạt. Lối đi lát đá, củi đun xếp thành chồng, vài món đồ gốm chưa hoàn thiện đặt trên giá phơi ngoài trời, cùng những hàng cây thông và bạch dương dọc bờ hồ. Bóng nắng đổ dài mềm mại, ánh sáng viền vàng óng phủ lên lớp gỗ tuyết tùng, mang lại bầu không khí yên bình của một chốn ẩn cư làm nghề thủ công. Chân thực như ảnh chụp (photoreal), khung hình ngang 16:9. Không có người, không có chữ, không có xe hơi.

Nội thất chân thực như ảnh chụp vào giờ xanh (blue hour) của xưởng gốm bên hồ: bàn nhồi đất sét cùng dụng cụ làm gốm, các kệ xếp những món đồ gốm đang hong khô, khung cửa sổ rộng mở ra cảnh hoàng hôn tím biếc trên mặt hồ, bến thuyền và ống khói lò nung hiện rõ bên ngoài. Ánh đèn ấm áp đối lập với ánh sáng lạnh từ cửa sổ. Bước 3 trong quy trình Xưởng gốm Bên hồ.
Căn phòng đặt bàn làm việc bên trong một xưởng gốm bằng gỗ tuyết tùng bên hồ vào giờ xanh (blue hour), hướng tầm nhìn ra mặt nước. Một chiếc bàn gỗ nặng dùng để nhồi đất sét chiếm trọn tiền cảnh với các dụng cụ làm gốm, một dây cắt đất sét, và vài chiếc bát đất sét đã se cứng (leather-hard). Những kệ xếp đầy đồ gốm đang hong khô chạy dọc bức tường bên trái. Qua khung cửa sổ hình chữ nhật rộng lớn và cánh cửa đôi kiểu nhà kho có thanh giằng chữ X đang mở toang, mặt hồ hiện lên xanh thẫm dưới bầu trời hoàng hôn sắc tím; cầu cảng lát ván gỗ rộng với phần nối dài hình chữ T, một chiếc thuyền chèo nhỏ màu đỏ và những hàng cây bạch dương mảnh mai hiện rõ bên ngoài. Ánh đèn bàn làm việc ấm áp rọi trên mặt bàn tương phản với ánh sáng xanh lạnh lẽo hắt vào từ cửa sổ. Tường nội thất ốp ván gỗ tuyết tùng dọc, điểm xuyết những mảng tường trát vữa, bàn xoay gốm đặt ở rìa bên phải. Cùng một xưởng gốm với cảnh ngoại thất giờ vàng: những tấm ván gỗ tuyết tùng dọc nhuốm màu thời gian, mái kim loại dốc màu sẫm có ống khói xây gạch, cầu cảng lát ván rộng, hai cửa sổ nhỏ bên hông, cùng những rặng thông và bạch dương. Chân thực như ảnh chụp (photoreal), khung hình ngang 16:9. Không có người, không có chữ.
Xây dựng bản mô tả thiết kế sẵn sàng để tạo ảnh cho một gian nhà thử rượu vườn nho nhỏ trên sườn đồi: hướng dốc và đường đi của mặt trời, hình khối nhỏ gọn với hiên nhà hướng xuống đồi, bảng bốn đến năm vật liệu, cảnh quan hàng nho, các chi tiết thị giác cố định, và hai prompt gốc chụp ngoại thất (buổi sáng mùa thu hoạch và hiên nhà lúc hoàng hôn).
Hãy đóng vai một nhà thiết kế ý tưởng kiến trúc chuyên viết các bản mô tả thiết kế (design brief) sẵn sàng để tạo hình ảnh. Hãy giúp tôi định hình một gian nhà thử rượu vườn nho nhỏ trên sườn đồi: một tòa nhà một tầng nơi du khách thưởng thức rượu vang và phóng tầm mắt nhìn ra những hàng nho. Bản mô tả của bạn phải đủ cụ thể để hai lần tạo ảnh riêng biệt (một góc chụp toàn cảnh ngoại thất và một góc chụp ngoại thất thứ hai) đều hiển thị cùng một tòa nhà đồng nhất. Trước tiên, hãy hỏi tôi trong một tin nhắn ngắn gọn về các thông tin sau: - Vùng miền và khí hậu (ví dụ: Địa Trung Hải, thung lũng sông ôn đới, sa mạc vùng cao) và mùa mà tôi muốn thể hiện - Hướng dốc và tầm nhìn chính (thung lũng, hồ nước, những ngọn núi xa, ngôi làng) - Sức chứa (bao nhiêu khách cùng lúc) và liệu có phòng chứa thùng ủ rượu nhỏ hay phòng bếp không - Sở thích về vật liệu và bất kỳ điều gì tôi muốn tránh (những khối hộp bằng kính, phong cách mộc mạc sến súa, chủ nghĩa tối giản quá hiện đại) - Các từ khóa mô tả cảm xúc chủ đạo (yên bình, ngập nắng, gần gũi với thiên nhiên, thanh lịch, quy mô gia đình) Sau đó, hãy tạo bản mô tả thiết kế gồm các phần sau: 1. **Vị trí và Hướng công trình**: gian nhà nằm ở đâu trên sườn dốc, mặt nào hướng ra tầm nhìn chính, đường đi của mặt trời vào buổi sáng và lúc hoàng hôn, và cách một lối đi rải sỏi uốn lượn leo từ khu vực đỗ xe xuyên qua những hàng nho. 2. **Hình khối Công trình**: kích thước diện tích mặt bằng, hình dáng và độ dốc mái, độ vươn của mái hiên, hiên nhà dài có mái che ở phía sườn dốc đi xuống, cùng số lượng và vị trí của các ô cửa lớn. Hãy giữ cho công trình nhỏ gọn và có tính thuyết phục. 3. **Bảng Vật liệu**: chính xác bốn hoặc năm loại vật liệu kèm theo màu sắc (ví dụ: tường đá vôi địa phương, dầm gỗ sồi quét dầu, ngói đất nung, khung cửa sổ bằng đồng, hiên rải sỏi) và vị trí xuất hiện của từng loại vật liệu. 4. **Cảnh quan**: hướng của các hàng nho, một cây ô liu hoặc cây sồi cổ thụ gần lối vào, những bức tường chắn thấp bằng đá, viền hoa oải hương hoặc thảo mộc, và những chiếc bàn ngoài trời. 5. **Các Chi tiết Thị giác Cố định**: một danh sách đánh số gồm 8 đến 10 chi tiết phải giữ nguyên giống hệt nhau trong mọi bức ảnh (loại mái và màu sắc, vật liệu tường, số lượng vòm hoặc cột hiên, màu cửa, có ống khói hay không, cái cây biểu tượng, đèn chiếu sáng). Những chi tiết này giúp các bức ảnh có sự nhất quán với nhau. 6. **Prompt Gốc A - Toàn cảnh Ngoại thất**: một câu lệnh tạo ảnh (image prompt) sẵn sàng để dán vào công cụ tạo ảnh, dài dưới 150 từ, mô tả ngoại thất vào buổi sáng hoặc mùa thu hoạch nhìn từ lối đi phía trên đồi xuống, trong đó nêu rõ tòa nhà và các vật thể chính ngay ở câu đầu tiên. 7. **Prompt Gốc B - Góc Ngoại thất Thứ hai**: một câu lệnh tạo ảnh sẵn sàng để dán vào công cụ tạo ảnh, dài dưới 150 từ, mô tả góc nhìn lúc hoàng hôn từ các hàng nho dưới chân đồi nhìn ngược lên hiên nhà, lặp lại đầy đủ mọi chi tiết thị giác cố định bằng ngôn từ rõ ràng, dễ hiểu. 8. **Ghi chú Thực tế**: ba ghi chú ngắn gọn về bóng râm che nắng, khả năng tiếp cận (lối vào không có bậc thang), và hệ thống thoát nước trên sườn dốc. Quy tắc: không lấy con người làm chủ thể chính, không có chữ viết hoặc logo trong các prompt tạo ảnh, không mô tả nội thất trong các prompt gốc (các mô hình tạo ảnh thường bỏ qua đồ nội thất bên trong). Sử dụng các đoạn văn ngắn và danh sách liệt kê.

Ngoại thất chân thực vào buổi sáng mùa thu hoạch của một gian nhà thử rượu một tầng bằng đá vôi với mái ngói đất nung, hiên nhà cột gỗ sồi, cửa kính khung đồng, cửa chính màu xanh lá, cây ô liu cổ thụ và những hàng nho trĩu quả chạy dài xuống thung lũng mờ sương. Bước 2 trong quy trình Gian Nhà Thử Rượu Vườn Nho.
Một gian nhà thử rượu một tầng bằng đá vôi với mái ngói đất nung terracotta tọa lạc trên sườn đồi vườn nho thoai thoải vào một buổi sáng mùa thu hoạch trong trẻo, nhìn từ lối đi rải sỏi phía trên đồi xuống. Những bức tường đá vôi màu mật ong nhạt, mái dốc bốn mái độ dốc thấp với mái hiên đua rộng, và một hiên nhà dài có mái che với năm cột gỗ sồi quét dầu ở phía sườn dốc đi xuống. Những cánh cửa kính cao khung đồng và cửa chính bằng gỗ màu xanh lá cây thẫm. Một cây ô liu cổ thụ lớn với thân cây xoắn đứng cạnh lối vào, và một ống khói thấp bằng đá vôi nhô lên từ phía đầu bên trái của mái nhà. Những hàng nho gọn gàng trĩu nặng những chùm nho sẫm màu chạy dài xuống sườn đồi hướng về phía thung lũng sông mờ sương. Những bức tường đá xếp khô thấp, viền hoa oải hương, và những thùng gỗ đựng nho vừa thu hoạch xếp chồng lên nhau gần lối đi. Ánh sáng vàng dịu chiếu xiên từ bên cạnh, bóng nắng buổi sáng đổ dài, làn sương mỏng nhẹ giăng dưới thung lũng. Nhiếp ảnh kiến trúc chân thực, khổ ngang 16:9. Không có người, không có chữ, không có biển báo, không có xe hơi.

Góc nhìn chân thực lúc hoàng hôn hướng dọc theo các hàng nho lên cùng gian nhà thử rượu bằng đá vôi đó: hiên nhà năm cột gỗ sồi với dây đèn trang trí và bàn bày sẵn, mái dốc bốn mái lợp ngói đất nung, cửa kính khung đồng, ống khói ở đầu bên trái, cây ô liu, hoa oải hương và tường đá. Bước 3 trong quy trình Gian Nhà Thử Rượu Vườn Nho.
Hiên nhà dài có mái che của một gian nhà thử rượu một tầng bằng đá vôi vào lúc hoàng hôn, nhìn từ các hàng nho dưới chân đồi hướng ngược lên sườn dốc. Hiên nhà chạy dọc theo cạnh dài của tòa nhà với năm cột gỗ sồi quét dầu màu sẫm, những chiếc bàn gỗ bày sẵn ly rượu vang rỗng và dây đèn vàng ấm áp tỏa sáng dưới phần mái hiên đua rộng. Vẫn là tòa nhà đó: tường đá vôi màu mật ong nhạt, mái đầu hồi độ dốc thấp lợp ngói đất nung terracotta, những cánh cửa kính cao khung đồng dọc theo hiên nhà, một ống khói vuông thấp bằng đá vôi nhô lên từ đầu hồi bên trái, cánh cửa đôi màu xanh lá cây thẫm nằm trên bức tường đầu hồi bên trái đó, và cây ô liu cổ thụ lớn với thân cây xoắn đứng ở góc bên trái cạnh cánh cửa. Những hàng nho trĩu quả dẫn dắt ánh nhìn ngược lên đồi về phía gian nhà, với những bức tường đá xếp khô thấp và viền hoa oải hương bên dưới hiên nhà. Bầu trời nhuốm sắc vàng mơ và hồng phấn, mặt trời đang lặn phía sau lưng người nhìn khiến những bức tường rực lên ánh hổ phách ấm áp, bóng đổ mềm mại giữa các hàng nho. Nhiếp ảnh kiến trúc chân thực, khổ ngang 16:9. Không có người, không có chữ, không có biển báo, không có xe hơi.
Các ưu tiên mang tính định hướng rõ ràng để xây dựng và vận hành các dịch vụ backend Go nhỏ gọn, dễ bảo trì.
# Gu thiết kế dịch vụ Go của một kỹ sư backend - Sử dụng bộ định tuyến net/http trong thư viện chuẩn từ Go 1.22 trước khi tìm đến một framework. Độ tin cậy: 0.85 - Bố trí dự án theo cấu trúc cmd/<service>/main.go cùng với các gói trong internal/, và bỏ qua thư mục pkg/. Độ tin cậy: 0.80 - Giữ cho tệp main.go thật gọn mỏng: đọc cấu hình, kết nối các thành phần phụ thuộc và khởi động máy chủ. Độ tin cậy: 0.90 - Truyền context.Context làm đối số đầu tiên cho mọi hàm thực hiện thao tác vào/ra (I/O). Độ tin cậy: 0.95 - Bọc lỗi bằng fmt.Errorf và %w, đồng thời kiểm tra lỗi bằng errors.Is và errors.As. Độ tin cậy: 0.95 - Ghi nhật ký bằng log/slog ở định dạng JSON và đính kèm mã định danh yêu cầu (request ID) trên mọi dòng. Độ tin cậy: 0.90 - Đọc cấu hình từ các biến môi trường vào một struct có kiểu dữ liệu rõ ràng ngay khi khởi động. Độ tin cậy: 0.85 - Dừng chương trình ngay lập tức khi khởi động (fail fast) nếu thiếu cấu hình bắt buộc. Độ tin cậy: 0.90 - Tự viết câu lệnh SQL và sinh mã có kiểu dữ liệu rõ ràng bằng sqlc thay vì sử dụng ORM. Độ tin cậy: 0.80 - Sử dụng pgx làm trình điều khiển (driver) Postgres kèm theo bộ quản lý kết nối (connection pool). Độ tin cậy: 0.85 - Định nghĩa các interface nhỏ ngay trong gói sử dụng chúng, chứ không phải trong gói triển khai chúng. Độ tin cậy: 0.85 - Sử dụng kiểm thử hướng bảng (table-driven tests) với các bài kiểm thử con t.Run. Độ tin cậy: 0.90 - Chạy go test với cờ -race trong CI trên mọi pull request. Độ tin cậy: 0.90 - Kiểm tra mã nguồn bằng golangci-lint với một danh sách ngắn các bộ kiểm tra (linters) đã được chọn lọc kỹ. Độ tin cậy: 0.80 - Tắt dịch vụ một cách êm đẹp (graceful shutdown) khi nhận tín hiệu SIGTERM bằng signal.NotifyContext và server.Shutdown. Độ tin cậy: 0.90 - Thiết lập thời gian chờ (timeout) đọc, ghi và nhàn rỗi rõ ràng trên mọi http.Server và http.Client. Độ tin cậy: 0.90 - Cung cấp điểm cuối /healthz để kiểm tra trạng thái hoạt động (liveness) và /readyz để kiểm tra trạng thái sẵn sàng (readiness). Độ tin cậy: 0.85 - Tránh trạng thái toàn cục (global state) và các hàm init cấp gói có tác dụng phụ (side effects). Độ tin cậy: 0.85 - Chỉ khởi chạy các goroutine khi có chủ sở hữu và điều kiện dừng rõ ràng, sử dụng errgroup cho các nhóm goroutine. Độ tin cậy: 0.85 - Biên dịch một tệp thực thi tĩnh (static binary) đưa vào ảnh container distroless bằng Dockerfile đa tầng (multi-stage). Độ tin cậy: 0.80 - Chỉ thêm generics khi chúng giúp loại bỏ sự trùng lặp mã nguồn thực sự. Độ tin cậy: 0.70
Xây dựng bản tóm tắt thiết kế sẵn sàng tạo ảnh cho một thư viện làng nhỏ bằng tường đất nện: hướng quay ra quảng trường và vườn đọc sách, hình khối gọn gàng với tháp đọc sách đặc trưng, bảng bốn đến năm vật liệu, cảnh quan bản địa, các chi tiết thị giác cố định và hai prompt gốc chụp mặt ngoài (quảng trường buổi sáng và khu vườn lúc hoàng hôn).
Hãy đóng vai một nhà thiết kế ý tưởng kiến trúc chuyên viết các bản tóm tắt thiết kế sẵn sàng để tạo ảnh. Hãy giúp tôi định hình một thư viện cộng đồng nhỏ bằng tường đất nện cho một ngôi làng hoặc thị trấn nhỏ: một tòa nhà một tầng có phòng đọc sách, góc thiếu nhi và khu vườn đọc sách ngoài trời râm mát. Bản tóm tắt của bạn phải đủ cụ thể để hai lần tạo ảnh riêng biệt (một góc nhìn toàn cảnh mặt ngoài và một góc nhìn mặt ngoài thứ hai) đều thể hiện cùng một tòa nhà. Trước tiên, hãy hỏi tôi trong một tin nhắn ngắn gọn về: - Vùng miền và khí hậu (ví dụ: vùng cao nguyên khô ráo, đồi Địa Trung Hải ấm áp, đồng bằng bán khô hạn) và mùa mà tôi muốn thể hiện - Khu đất: quảng trường làng, rìa công viên, con ngõ trên sườn đồi hoặc bên cạnh một trường học - Quy mô bộ sưu tập sách và sức chứa (bao nhiêu người đọc cùng lúc), và liệu có một phòng sinh hoạt cộng đồng nhỏ hay không - Sở thích về vật liệu và bất cứ thứ gì tôi muốn tránh (những khối hộp bằng kính, bê tông nặng nề, kiểu mộc mạc sến súa) - Các từ chỉ cảm xúc chủ đạo (chào đón, yên tĩnh, ngập nắng, mộc mạc gần gũi, mang tính cộng đồng, vui tươi) Sau đó, hãy lập bản tóm tắt với các phần sau: 1. **Khu đất và Hướng công trình**: vị trí tọa lạc của thư viện, mặt nào hướng ra quảng trường công cộng và mặt nào hướng ra vườn đọc sách, đường đi của mặt trời vào buổi sáng và lúc hoàng hôn, cùng cách mọi người tiếp cận bằng đường bộ. 2. **Hình khối Công trình**: kích thước diện tích xây dựng, kiểu mái (mái bằng, mái dốc một chiều độ dốc thấp hoặc mái cong nhẹ), viền mái và phần mái nhô ra, hiên lối vào râm mát, số lượng và vị trí của các ô cửa lớn, cùng một yếu tố đặc trưng như tháp đọc sách hình tròn hoặc dải cửa sổ lấy sáng trên cao rộng. Hãy giữ cho thiết kế gọn gàng và có tính khả thi khi xây dựng. 3. **Bảng Vật liệu**: chính xác bốn hoặc năm loại vật liệu kèm màu sắc (ví dụ: tường đất nện phân lớp màu vàng đất và đỏ gỉ sắt, cột và mặt dưới mái hiên bằng gỗ sáng màu, viền mái bằng thép tối màu mỏng, đá lát địa phương, chậu cây đất sét) và vị trí xuất hiện của từng vật liệu. 4. **Cảnh quan**: cây xanh và các loại cỏ bản địa, một cây đặc trưng gần lối vào, có hoặc không có một rãnh nước nông bằng đá, ghế dài và giá để xe đạp. 5. **Chi tiết Thị giác Cố định**: danh sách đánh số từ 8 đến 10 chi tiết phải giữ nguyên giống hệt nhau trong mọi bức ảnh (màu tường và các lớp đất lộ rõ, hình dáng mái, số lượng cột hiên, số lượng và hình dáng cửa sổ, màu cửa chính, yếu tố đặc trưng và vị trí của nó, cây đặc trưng và phía đặt cây, thiết bị chiếu sáng). Những chi tiết này giúp các bức ảnh nhất quán với nhau. 6. **Prompt Gốc A - Toàn cảnh Mặt ngoài**: một prompt tạo ảnh sẵn sàng để dán dưới 150 từ cho cảnh mặt ngoài buổi sáng tươi sáng nhìn từ quảng trường công cộng, với tòa nhà và các vật thể chính nằm ngay trong câu đầu tiên. 7. **Prompt Gốc B - Góc nhìn Mặt ngoài Thứ hai**: một prompt tạo ảnh sẵn sàng để dán dưới 150 từ cho cảnh lúc hoàng hôn nhìn từ phía vườn đọc sách với ánh sáng ấm áp tỏa ra từ các ô cửa sổ, lặp lại mọi chi tiết thị giác cố định bằng ngôn từ rõ ràng và nêu rõ từng yếu tố xuất hiện ở bên nào từ góc nhìn này. 8. **Ghi chú Thực tế**: ba ghi chú ngắn gọn về làm mát thụ động và che nắng, lối đi không bậc tam cấp và cách bảo vệ tường đất khỏi mưa (độ vươn của mái, bệ đá). Quy tắc: không lấy con người làm chủ thể chính, không có chữ, biển báo hoặc logo trong các prompt tạo ảnh, không mô tả nội thất trong các prompt gốc (các mô hình tạo ảnh thường bỏ qua đồ nội thất). Sử dụng các đoạn văn ngắn và danh sách.

Mặt ngoài chân thực buổi sáng của ngôi thư viện làng tường đất nện một tầng: tường màu vàng đất và đỏ gỉ sắt phân lớp, tháp đọc sách hình tròn ở đầu bên phải, sáu cột hiên bằng gỗ, cửa màu xanh da trời, cây bách xù cổ thụ và rãnh nước bằng đá. Bước 2 trong quy trình thiết kế Thư viện Làng Tường Đất Nện.
Một ngôi thư viện làng tường đất nện một tầng với tháp đọc sách tường đất nện hình tròn ở đầu bên phải hướng ra quảng trường lát đá ngập nắng vào một buổi sáng trong lành. Những bức tường dài lộ rõ các lớp đất nằm ngang màu vàng đất, màu cát và đỏ gỉ sắt trên bệ đá xám thấp. Mái bằng với viền thép tối màu mỏng vươn ra tạo thành hiên lối vào sâu râm mát được nâng đỡ bởi sáu cột gỗ sáng màu mảnh mai. Phía sau hiên, ba ô cửa sổ cao hẹp có khung đồng tối màu nằm ở mỗi bên của cánh cửa đôi rộng bằng gỗ màu xanh da trời. Tháp hình trụ cao hơn mái chính một chút, với một vòng cửa sổ vuông nhỏ gần đỉnh. Một cây bách xù cổ thụ tán rộng với thân cây xoắn đứng ở bên trái lối vào, và một rãnh nước nông bằng đá chạy ngang qua quảng trường phía trước hiên. Những chậu đất sét trồng hoa oải hương và cỏ khô, hai chiếc ghế dài bằng gỗ và một dãy giá để xe đạp. Ánh sáng chiếu xiên màu vàng dịu nhẹ, bóng đổ sắc nét, bầu trời xanh nhạt phía trên những ngọn đồi khô ráo. Nhiếp ảnh kiến trúc chân thực, khung ngang 16:9. Không có người, không có chữ, không có biển báo, không có xe hơi.

Góc nhìn chân thực lúc hoàng hôn của cùng ngôi thư viện tường đất nện nhìn từ vườn đọc sách: những bức tường đất phân lớp, tháp đọc sách hình tròn sáng lên như chiếc đèn lồng ở đầu bên trái, giàn pergola gỗ sáu cột, hoa oải hương, cỏ dại và đèn lối đi. Bước 3 trong quy trình thiết kế Thư viện Làng Tường Đất Nện.
Mặt sau của cùng ngôi thư viện làng tường đất nện một tầng lúc hoàng hôn, nhìn từ khu vườn đọc sách yên tĩnh, với ánh sáng vàng ấm áp tỏa ra từ những ô cửa sổ rộng và từ tháp đọc sách tường đất nện hình tròn hiện nằm ở đầu bên trái. Cùng một tòa nhà: những bức tường dài với các lớp đất nằm ngang rõ nét màu vàng đất, màu cát và đỏ gỉ sắt trên bệ đá xám thấp, mái bằng với viền thép tối màu mỏng nhô ra sâu, cùng những ô cửa sổ cao hẹp có khung đồng tối màu. Tháp hình trụ cao hơn mái chính một chút, với một dải cửa sổ cao khung tối màu chạy liên tục quanh phần đỉnh, tỏa sáng như một chiếc đèn lồng. Dọc theo phía khu vườn này, một giàn pergola gỗ nông với sáu cột gỗ sáng màu mảnh mai che mát cho hiên đá có những chiếc ghế dài đọc sách thấp bằng gỗ. Khu vườn có những lối đi rải sỏi, cỏ khô bản địa, hoa oải hương trồng trong chậu đất sét và những chiếc đèn lối đi nhỏ ánh sáng ấm áp, còn phần ngọn của cây bách xù cổ thụ tán rộng từ quảng trường phía trước vừa kịp lộ ra phía trên mái nhà ở bên phải. Bầu trời chạng vạng xanh thẫm với vầng trăng lưỡi liềm mảnh và những ngôi sao đầu tiên. Nhiếp ảnh kiến trúc chân thực, khung ngang 16:9. Không có người, không có chữ, không có biển báo, không có xe hơi.
Xây dựng bản mô tả chi tiết sẵn sàng cho việc tạo ảnh và chuyển động của một cảnh quay chủ đạo về cối xay nước bằng đá cổ kính bên dòng suối: kiến trúc, bánh xe nước, mặt nước và cảnh quan, ánh sáng và sương mù, các chi tiết cố định, bản đồ chuyển động, và hai hạt giống câu lệnh (prompt seed): một ảnh tĩnh 16:9 và một hoạt ảnh chuyển từ ảnh sang video.
Hãy đóng vai một nhà thiết kế bối cảnh điện ảnh chuyên viết các bản mô tả cảnh quay (scene brief) sẵn sàng cho việc tạo ảnh tĩnh và tạo chuyển động. Hãy giúp tôi thiết kế một cảnh quay chủ đạo (hero shot) về một cối xay nước nhỏ cổ kính bằng đá nằm bên dòng suối; cảnh này trước tiên sẽ được tạo thành một bức ảnh tĩnh và sau đó được làm hoạt hình thành một đoạn video ngắn sử dụng chính bức ảnh đó làm khung hình đầu tiên. Bản mô tả của bạn phải làm cho bức ảnh tĩnh giàu các yếu tố có thể chuyển động tự nhiên (nước đổ, bánh xe quay, sương mù, lá cây, khói, chim chóc, ánh đèn lung linh) trong khi vẫn giữ bố cục tĩnh lặng và dễ tạo chuyển động. Các lựa chọn ban đầu của tôi: - Vùng miền và cảnh quan: temperate forest valley - Mùa và thời điểm trong ngày: autumn dawn - Kích thước và niên đại của cối xay: two-story fieldstone mill, about 200 years old - Phong cách hình ảnh: photoreal landscape photography - Các từ khóa cảm xúc (mood): quiet, golden, misty, timeless Trước tiên, hãy hỏi tôi trong một tin nhắn ngắn gọn về bất kỳ thông tin nào còn thiếu: góc máy quay mà tôi ưa thích (nhìn từ bên kia suối, từ một cây cầu gỗ nhỏ, hay góc thấp sát mặt nước), cối xay hiện vẫn đang hoạt động hay đã được phục dựng thành nhà ở hoặc bảo tàng, và bất kỳ yếu tố nào cần tránh (con người, động vật, xe hơi hiện đại, đường dây điện, biển báo). Sau đó, hãy lập bản mô tả với các phần sau: 1. **Tổng Quan Cảnh Quay (Scene Overview)**: hai hoặc ba câu mô tả địa điểm, mùa, ánh sáng và câu chuyện của khoảnh khắc đó. 2. **Kiến Trúc Cối Xay (Mill Architecture)**: màu sắc và kết cấu đá xây tường, vật liệu và hình dáng mái nhà, số tầng và số cửa sổ, cửa ra vào, ống khói, và loại bánh xe nước (tưới đỉnh - overshot, tưới đáy - undershot, hoặc tưới ngang lưng - breastshot) cùng kích thước, vật liệu, số lượng cánh quạt hoặc gầu múc, và vị trí của nó nằm ở bên nào của tòa nhà. Bao gồm cả máng dẫn nước bằng gỗ hoặc kênh dẫn nước cấp vào bánh xe. 3. **Mặt Nước và Cảnh Quan (Water and Landscape)**: độ rộng và dòng chảy của con suối, các thác nước nhỏ hoặc đập tràn, đá tảng và rêu phong, loại cây và màu sắc tán lá, thảm thực vật mặt đất, và những ngọn đồi hoặc cánh rừng ở hậu cảnh. 4. **Ánh Sáng và Bầu Không Khí (Light and Atmosphere)**: hướng nắng và màu sắc ánh mặt trời, các lớp sương mù hoặc sương khói, ánh đèn ấm áp bên trong các ô cửa sổ, khói từ ống khói, và cách ánh sáng chạm vào mặt nước. 5. **Các Chi Tiết Hình Ảnh Cố Định (Fixed Visual Details)**: danh sách đánh số từ 8 đến 10 chi tiết bắt buộc phải giữ nguyên hoàn toàn giữa bức ảnh tĩnh và đoạn video (vị trí và kích thước bánh xe, màu mái nhà, số lượng cửa sổ sáng đèn, vị trí ống khói, hình dáng máng dẫn nước, màu sắc cây cối, vị trí máy quay, bố cục khung hình). 6. **Bản Đồ Chuyển Động (Motion Map)**: một bảng liệt kê mọi yếu tố có thể chuyển động trong video, với các cột: yếu tố, kiểu chuyển động, hướng, tốc độ (rất chậm, chậm, trung bình), và mức độ chuyển động mạnh hay nhẹ. Bao gồm cả chuyển động của máy quay. Giữ cho tổng thể chuyển động tinh tế và hợp lý về mặt vật lý. 7. **Hạt Giống Câu Lệnh A - Ảnh Tĩnh Chủ Đạo (Prompt Seed A - Hero Still Image)**: một câu lệnh tạo ảnh hoàn chỉnh có thể dán vào dùng ngay, dài dưới 170 từ cho khung hình ngang rộng 16:9, đưa cối xay, bánh xe nước và dòng suối vào ngay câu đầu tiên, và kết thúc bằng: no people, no text, no signs. 8. **Hạt Giống Câu Lệnh B - Hoạt Ảnh Từ Ảnh Sang Video (Prompt Seed B - Image-to-Video Animation)**: một câu lệnh tạo video hoàn chỉnh có thể dán vào dùng ngay, dài dưới 120 từ, bắt đầu từ bức ảnh tĩnh chủ đạo làm khung hình đầu tiên, mô tả một chuyển động máy quay chậm rãi cùng các chuyển động tự nhiên từ Bản Đồ Chuyển Động trong khoảng 6 giây, đồng thời chỉ rõ việc giữ nguyên cối xay, bánh xe và bố cục khung hình y hệt như trong bức ảnh mà không thêm bất kỳ vật thể mới nào. Quy tắc: không đưa con người hoặc động vật làm chủ thể chính, không có chữ viết, biển báo hay logo, không chuyển động máy quay nhanh hoặc cắt cảnh, và không có chuyển động nào vi phạm quy luật vật lý (nước phải chảy từ cao xuống thấp, bánh xe phải quay theo đúng chiều nước đẩy). Sử dụng các đoạn văn ngắn và danh sách liệt kê.

Khung hình chân thực lúc bình minh mùa thu chụp một cối xay nước cổ bằng đá tự nhiên với bánh xe nước tưới đỉnh bằng gỗ và máng dẫn nước, mái đá phiến phủ rêu, những ô cửa sổ ấm áp ánh đèn, khói ống khói, một thác nước nhỏ qua ghềnh đá, làn sương thấp, và những tán lá phong sắc cam vàng. Bước 2 trong quy trình Cối Xay Nước Bằng Đá.
Một cối xay nước hai tầng cổ kính xây bằng đá tự nhiên với bánh xe nước tưới đỉnh lớn bằng gỗ ở phía bên phải nằm cạnh dòng suối rừng trong vắt vào lúc bình minh mùa thu. Một máng dẫn nước bằng gỗ nâng cao đưa nước đổ lên đỉnh bánh xe, và dòng nước tràn ra từ các gầu gỗ thành những tia nước bắn tung tóe sáng lấp lánh xuống dòng suối bên dưới. Cối xay có những bức tường đá màu xám ấm áp pha sắc vàng mật ong, mái đá phiến tối màu dốc đứng phủ đầy rêu, những ô cửa sổ nhỏ khung trắng với hai ô ở tầng trệt đang tỏa ánh sáng vàng ấm áp, cùng một ống khói bằng đá ở đầu bên trái vương làn khói nhạt mảnh mai. Ở tiền cảnh, dòng suối đổ qua một bậc đá thấp phủ rêu tạo thành một thác nước nhỏ. Những tán cây phong và cây dẻ gai mang sắc cam, đỏ và vàng bao quanh cối xay, vài chiếc lá rụng trôi bềnh bồng trên mặt nước. Làn sương mỏng là là trôi trên mặt suối, và ánh nắng bình minh vàng rực xuyên qua tán cây từ phía bên trái. Vài chú chim nhỏ bay lượn trên bầu trời nhạt màu phía trên mái nhà. Nhiếp ảnh phong cảnh chân thực, mang cảm xúc bình yên và vượt thời gian. Khung hình ngang rộng 16:9. Không có người, không có chữ, không có biển báo, không có xe hơi.
Tạo chuyển động cho bức ảnh cối xay nước ở bước 2 làm khung hình đầu tiên thành một cảnh quay êm dịu dài 6 giây: bánh xe nước đón dòng từ trên đỉnh quay đều dưới máng dẫn, dòng suối sủi bọt trắng xóa qua những tảng đá phủ rêu, làn sương mù trôi nhẹ, lá thu rơi, khói ống khói cuộn bay, và máy quay từ từ tiến lại gần. Bước 3 trong quy trình Cối xay nước bằng đá.
Bắt đầu từ bức ảnh ở bước 2 "Cối xay nước bằng đá bên dòng suối trong rừng lúc bình minh mùa thu" làm khung hình đầu tiên chính xác tuyệt đối, và tạo chuyển động cho nó thành một cảnh quay điện ảnh êm dịu dài 6 giây. Giữ nguyên ngôi nhà cối xay bằng đá, mái ngói đá phiến, bánh xe nước bằng gỗ đón dòng từ trên đỉnh ở phía bên phải, máng dẫn nước, các ô cửa sổ, hàng cây và bố cục khung hình giống hệt như trong ảnh. Bánh xe nước quay chậm rãi và đều đặn nhờ dòng nước đổ từ máng gỗ xuống phần đỉnh bánh xe, với làn nước lấp lánh tràn ra từ các hộc chứa và bắn tung tóe xuống dòng suối. Dòng suối chảy hướng về phía máy quay và đổ tràn qua những tảng đá phủ đầy rêu ở tiền cảnh, tạo nên lớp bọt trắng mềm mại. Làn sương mù thấp trôi chậm rãi ngang qua mặt nước từ trái sang phải. Một vài chiếc lá màu cam và vàng óng rơi nhẹ nhàng từ những tán cây phong rồi trôi xuôi theo dòng nước. Làn khói mỏng nhạt màu bốc lên và uốn lượn từ ống khói, hai ô cửa sổ sáng đèn tỏa ánh sáng ấm áp lung linh nhè nhẹ, và những chú chim nhỏ chao liệng ngang bầu trời. Ánh sáng bình minh vàng óng từ từ bừng sáng rõ hơn. Máy quay thực hiện một chuyển động tiến vào (push-in) cực kỳ chậm và mượt mà hướng về phía cối xay nước. Chuyển động tự nhiên, chân thực, không cắt cảnh, không thêm vật thể mới, không có người, không có chữ.Các quy ước mang tính định hướng rõ rệt để thiết kế, phát triển mở rộng và vận hành các API GraphQL.
# Gu thiết kế API GraphQL của một kỹ sư nền tảng (platform engineer) - Thiết kế lược đồ (schema) xoay quanh các ca sử dụng (use cases) của phía client và ngôn ngữ nghiệp vụ (domain language), chứ không xoay quanh các bảng cơ sở dữ liệu. Độ tin cậy: 0.90 - Tự động sinh kiểu dữ liệu (types) cho cả phía server và client từ schema (sử dụng GraphQL Code Generator hoặc công cụ tương đương); không bao giờ tự viết tay các kiểu dữ liệu phản hồi. Độ tin cậy: 0.90 - Chỉ đặt các trường (fields) là non-null theo mặc định khi server luôn có thể phân giải (resolve) được chúng; giữ cho các trường phụ thuộc vào dịch vụ khác ở trạng thái có thể null (nullable) để một lỗi đơn lẻ không làm mất trắng toàn bộ phản hồi. Độ tin cậy: 0.80 - Sử dụng một đối tượng đầu vào duy nhất cho mỗi thao tác biến đổi dữ liệu (mutation) (ví dụ: createOrder(input: CreateOrderInput!)) và trả về một kiểu payload chuyên biệt, không trả về trực tiếp thực thể gốc (bare entity). Độ tin cậy: 0.85 - Trả về các lỗi nghiệp vụ dự kiến dưới dạng các thành phần kiểu hợp (typed union members) trong payload (ví dụ: OrderCreated | InsufficientStock); dành riêng mảng errors ở cấp cao nhất cho các lỗi hệ thống bất ngờ. Độ tin cậy: 0.75 - Phân trang danh sách bằng kết nối con trỏ theo phong cách Relay (edges, node, pageInfo) và giới hạn tham số first/last ở một mức tối đa hợp lý. Độ tin cậy: 0.80 - Gom nhóm (batch) và lưu đệm việc tải dữ liệu theo từng yêu cầu bằng DataLoader để triệt tiêu hoàn toàn vấn đề truy vấn N+1. Độ tin cậy: 0.95 - Áp dụng giới hạn độ sâu (depth) và độ phức tạp (complexity) của truy vấn ngay tại cổng giao tiếp (gateway). Độ tin cậy: 0.90 - Sử dụng truy vấn cố định (persisted queries - danh sách cho phép các mã băm thao tác) cho các ứng dụng client nội bộ (first-party) trên môi trường production. Độ tin cậy: 0.80 - Tắt tính năng tự tra cứu lược đồ (introspection) trên các điểm cuối (endpoints) production công khai trừ khi API đó thực sự được thiết kế để công khai cho bên thứ ba. Độ tin cậy: 0.70 - Phát triển mở rộng schema theo hướng bổ sung thêm (additively) và đánh dấu các trường cũ bằng chỉ thị @deprecated(reason: ...); không bao giờ phân tách phiên bản endpoint bằng đường dẫn như /v2. Độ tin cậy: 0.90 - Chỉ xóa bỏ một trường đã đánh dấu @deprecated sau khi số liệu đo lường mức sử dụng trường đó cho thấy không còn lưu lượng truy cập nào trong suốt một chu kỳ phát hành đầy đủ. Độ tin cậy: 0.85 - Chạy kiểm tra so sánh sự khác biệt của schema (schema diff) trong quy trình CI và cho dừng quá trình build nếu phát hiện các thay đổi gây phá vỡ tương thích (breaking changes). Độ tin cậy: 0.90 - Sử dụng các định danh ẩn (opaque IDs) duy nhất trên toàn cục và triển khai giao diện Node để hỗ trợ truy xuất lại dữ liệu (refetching). Độ tin cậy: 0.70 - Giữ cho các hàm phân giải (resolvers) thật mỏng gọn: chúng chỉ gọi các dịch vụ miền nghiệp vụ (domain services), và việc phân quyền (authorization) phải nằm ở tầng dịch vụ đó chứ không nằm trong các câu lệnh if của resolver. Độ tin cậy: 0.85 - Đặt tên rõ ràng cho mọi thao tác (operations) trong từng truy vấn của client để dữ liệu truy vết (traces), nhật ký (logs) và số liệu đo lường (metrics) dễ đọc hiểu. Độ tin cậy: 0.90 - Đặt các mảnh truy vấn (fragments) nằm cùng chỗ với chính các thành phần giao diện (UI components) sử dụng chúng. Độ tin cậy: 0.80 - Ưu tiên các kiểu vô hướng tùy chỉnh (custom scalars như DateTime, URL, Email) có kiểm tra tính hợp lệ hơn là dùng kiểu String thuần túy. Độ tin cậy: 0.75 - Chỉ sử dụng cơ chế đăng ký nhận dữ liệu (subscriptions) cho dữ liệu thời gian thực thực sự; cơ chế hỏi vòng định kỳ (polling) là hoàn toàn ổn đối với bất kỳ dữ liệu nào chỉ thay đổi sau mỗi vài phút. Độ tin cậy: 0.70 - Chỉ sử dụng kiến trúc liên hợp (federation) khi có nhiều nhóm khác nhau cùng sở hữu các đồ thị con (subgraphs) riêng biệt; một nhóm duy nhất thì chỉ nên dùng một schema duy nhất. Độ tin cậy: 0.75 - Truy vết mọi resolver bằng OpenTelemetry và thiết lập cảnh báo cho các trường xử lý chậm, chứ không chỉ cảnh báo các yêu cầu (requests) chậm nói chung. Độ tin cậy: 0.80 - Viết tài liệu cho mọi kiểu dữ liệu và mọi trường bằng phần mô tả trực tiếp trong schema; bản thân schema chính là tài liệu tham chiếu API. Độ tin cậy: 0.85
Các quy ước mang tính định hướng rõ ràng để thiết kế các hệ thống hướng sự kiện và dựa trên thông điệp (message-based) đáng tin cậy.
# Kiến trúc Hướng sự kiện taste của một kỹ sư hệ thống phân tán - Sử dụng sự kiện (events) để thông báo những sự việc đã xảy ra (OrderPlaced), và chỉ dùng lệnh (commands) cho các yêu cầu gửi tới một chủ sở hữu duy nhất (ChargeCard). Độ tin cậy: 0.90 - Đặt tên sự kiện ở thì quá khứ bằng ngôn ngữ nghiệp vụ (domain language), tuyệt đối không đặt theo tên bảng hoặc dịch vụ phát sinh ra nó. Độ tin cậy: 0.85 - Định nghĩa mọi sự kiện bằng một lược đồ có đánh phiên bản (Avro, Protobuf hoặc JSON Schema) trong một kho đăng ký (registry) và kiểm tra tính tương thích trong CI. Độ tin cậy: 0.90 - Chỉ phát triển lược đồ bằng các thay đổi tương thích ngược (backward-compatible); phát hành một loại sự kiện mới cho các thay đổi gây phá vỡ (breaking changes). Độ tin cậy: 0.85 - Giả định cơ chế chuyển phát ít nhất một lần (at-least-once delivery) và đảm bảo mọi consumer đều có tính lũy đẳng (idempotent) bằng một khóa khử trùng lặp (deduplication key). Độ tin cậy: 0.95 - Phát hành sự kiện thông qua mẫu hộp thư đi có giao dịch (transactional outbox pattern) để các thao tác ghi cơ sở dữ liệu và thông điệp không bao giờ bị lệch nhau. Độ tin cậy: 0.90 - Đưa đầy đủ event id, type, version, timestamp, correlation id và causation id vào trong mọi vỏ bọc thông điệp (envelope). Độ tin cậy: 0.85 - Giữ cho phần dữ liệu (payload) của sự kiện đủ độc lập cho các consumer phổ biến, nhưng không đổ toàn bộ các khối tổng hợp (aggregates) vào đó. Độ tin cậy: 0.75 - Phân vùng (partition) theo aggregate id khi thứ tự xử lý là quan trọng, và không bao giờ phụ thuộc vào thứ tự toàn cục (global ordering). Độ tin cậy: 0.85 - Định tuyến các thông điệp lỗi (poison messages) tới hàng đợi thư chết (dead-letter queue) sau một số lần thử lại có giới hạn kèm theo thời gian chờ tăng dần theo cấp số nhân (exponential backoff) và độ nhiễu ngẫu nhiên (jitter). Độ tin cậy: 0.90 - Cảnh báo dựa trên độ trễ của consumer (consumer lag) và độ sâu của hàng đợi thư chết, chứ không chỉ dựa vào tình trạng hoạt động của broker. Độ tin cậy: 0.90 - Lan truyền ngữ cảnh truy vết (trace context) thông qua các tiêu đề thông điệp (message headers) để có thể theo dõi một yêu cầu xuyên suốt qua nhiều dịch vụ. Độ tin cậy: 0.85 - Sử dụng mẫu saga với các hành động bù trừ (compensating actions) tường minh cho các quy trình đa dịch vụ thay vì dùng giao dịch phân tán (distributed transactions). Độ tin cậy: 0.80 - Ưu tiên cơ chế tự phối hợp (choreography) cho các luồng đơn giản và chỉ dùng bộ điều phối chuyên biệt (orchestrator) khi một quy trình có nhiều hơn một vài bước. Độ tin cậy: 0.70 - Chỉ sử dụng Event Sourcing ở những nơi mà việc lưu vết kiểm toán (audit trail) hoặc truy vấn theo thời gian (temporal queries) là yêu cầu thực sự. Độ tin cậy: 0.75 - Đảm bảo việc phát lại (replay) luôn an toàn: các consumer phải chịu được việc xử lý lại lịch sử sự kiện từ bất kỳ vị trí offset nào. Độ tin cậy: 0.80 - Thiết lập thời gian lưu trữ (retention) khớp với khoảng thời gian mà các consumer có thể cần để xây dựng lại trạng thái, và ghi tài liệu rõ ràng cho từng topic. Độ tin cậy: 0.70 - Giao mỗi topic cho một nhóm sở hữu duy nhất chịu trách nhiệm kiểm soát lược đồ và vòng đời của nó. Độ tin cậy: 0.85 - Giữ lại các lời gọi đồng bộ (synchronous calls) cho những truy vấn cần câu trả lời ngay lập tức; không ép buộc mô hình yêu cầu-phản hồi (request-response) phải đi qua hàng đợi. Độ tin cậy: 0.80 - Kiểm thử các consumer bằng kiểm thử hợp đồng (contract tests) đối chiếu với lược đồ đã đăng ký và kiểm thử các producer bằng kiểm thử tích hợp hộp thư đi (outbox integration tests). Độ tin cậy: 0.80 - Duy trì một danh mục sống (AsyncAPI hoặc tương tự) ghi nhận đầy đủ các topic, producer và consumer. Độ tin cậy: 0.75
Các quy ước mang tính định hướng rõ ràng để xây dựng ứng dụng iOS hiện đại với SwiftUI và Swift Concurrency.
# Ứng dụng iOS SwiftUI taste của một lập trình viên iOS cấp cao (Senior iOS Developer) - Xây dựng các màn hình mới bằng SwiftUI và chỉ quay về UIKit thông qua UIViewRepresentable cho những tính năng còn thiếu. Độ tin cậy: 0.85 - Sử dụng framework Observation (@Observable) cho các view model trên iOS 17+, thay vì ObservableObject với @Published. Độ tin cậy: 0.85 - Giữ cho các view nhỏ gọn và có tính kết hợp (composable); tách thành subview ngay khi phần thân (body) vượt quá khoảng 50 dòng. Độ tin cậy: 0.80 - Sở hữu trạng thái bằng @State tại view cấp thấp nhất cần đến nó và truyền các binding xuống dưới thay vì dùng các singleton toàn cục. Độ tin cậy: 0.85 - Sử dụng Swift Concurrency (async/await, actors, structured tasks) ở mọi nơi; không viết thêm các API mới dựa trên completion-handler hoặc Combine. Độ tin cậy: 0.85 - Bắt đầu các tác vụ bất đồng bộ bằng modifier .task để chúng tự động bị hủy khi view biến mất. Độ tin cậy: 0.90 - Bật tính năng kiểm tra xử lý đồng thời nghiêm ngặt (strict concurrency checking - chế độ ngôn ngữ Swift 6) và khắc phục sớm các cảnh báo Sendable. Độ tin cậy: 0.80 - Điều khiển luồng điều hướng bằng NavigationStack cùng một đường dẫn có kiểu dữ liệu rõ ràng (typed path), được định tuyến thông qua một đối tượng coordinator hoặc router nhỏ. Độ tin cậy: 0.80 - Tiêm phụ thuộc (inject dependencies) thông qua các hàm khởi tạo (initializers) hoặc Environment để các bản xem trước (previews) và bài kiểm thử có thể tráo đổi bằng dữ liệu giả lập (fakes). Độ tin cậy: 0.85 - Chia nhỏ các tính năng thành các gói Swift cục bộ (local Swift packages) được quản lý bởi Swift Package Manager; tránh dùng CocoaPods cho các dự án mới. Độ tin cậy: 0.85 - Cung cấp cho mỗi view một #Preview với dữ liệu mẫu sát thực tế, bao gồm cả trạng thái trống, đang tải và lỗi. Độ tin cậy: 0.85 - Mô hình hóa trạng thái tải dưới dạng một enum (idle, loading, loaded, failed) thay vì dùng nhiều biến boolean rời rạc. Độ tin cậy: 0.90 - Sử dụng SwiftData cho việc lưu trữ cục bộ đơn giản và dùng Core Data hoặc GRDB khi bạn cần kiểm soát chi tiết quá trình di trú dữ liệu (migrations) hoặc tối ưu hiệu năng. Độ tin cậy: 0.65 - Hỗ trợ Dynamic Type, Dark Mode và nhãn VoiceOver ngay từ lần commit đầu tiên. Độ tin cậy: 0.90 - Ưu tiên sử dụng SF Symbols và bảng màu hệ thống mang tính ngữ nghĩa (semantic system colors) trước khi thêm các tài nguyên tùy chỉnh. Độ tin cậy: 0.80 - Bản địa hóa bằng String Catalogs ngay từ ngày đầu tiên, kể cả khi ra mắt chỉ với một ngôn ngữ duy nhất. Độ tin cậy: 0.75 - Viết unit test cho các view model và service bằng Swift Testing; chỉ giữ lại UI test cho một vài luồng quan trọng nhất. Độ tin cậy: 0.80 - Đo đạc hiệu năng (profile) bằng Instruments trước khi tối ưu hóa và chú ý phát hiện việc tính toán lại phần thân view (view body recomputation) không cần thiết. Độ tin cậy: 0.75 - Không bao giờ làm nghẽn luồng chính (main thread) bởi các tác vụ mạng, giải mã dữ liệu (decoding) hoặc đọc/ghi đĩa (disk I/O). Độ tin cậy: 0.95 - Lưu trữ các thông tin bí mật (secrets) và token trong Keychain, tuyệt đối không lưu trong UserDefaults hoặc gói cài đặt (bundle). Độ tin cậy: 0.95 - Triển khai bản dựng thông qua Xcode Cloud hoặc fastlane với số bản dựng (build number) tự động và đẩy lên TestFlight cho mỗi lần hợp nhất (merge) vào nhánh main. Độ tin cậy: 0.75 - Sử dụng bộ ghi log có cấu trúc Logger (os.Logger) kèm theo các danh mục (categories) thay vì dùng câu lệnh print. Độ tin cậy: 0.85

Cảnh chụp chân thực lúc chạng vạng của một trạm dừng chân caravanserai hình vuông bằng đá sa thạch với hai tòa tháp tròn và cổng vòm thắp đèn lồng, năm con lạc đà cùng người cưỡi đang tiến về phía cổng qua mặt cát gợn sóng, ba cây cọ cạnh tòa tháp bên phải, và bầu trời đầy sao chuyển sắc từ cam sang tím. Bước 2 của quy trình Desert Caravanserai.
Một trạm dừng chân caravanserai cổ kính hình vuông bằng đá sa thạch nằm giữa sa mạc cát rộng lớn lúc chạng vạng trong khi một hàng năm con lạc đà cùng những người cưỡi đang ngồi bước về phía cổng. Pháo đài lấp đầy vùng giữa lệch phải của khung hình: bức tường có lỗ châu mai với những ô cửa sổ khe hẹp nằm giữa hai tòa tháp góc hình tròn có lỗ châu mai, và ở chính giữa là một cổng vòm hình móng ngựa nhọn cao vút mở ra những mái vòm bên trong sân được chiếu sáng ấm áp, cùng hai chiếc đèn lồng nhỏ phát sáng treo trên tường ở hai bên cổng. Ở phía bên trái, năm con lạc đà cùng người cưỡi đi thành một hàng dọc sang bên phải băng qua mặt cát gợn sóng về phía cổng vòm, bóng của chúng đổ dài bên cạnh. Ba cây cọ mọc ở phía bên phải cạnh tòa tháp bên phải: hai cây cọ cao dựa vào tòa tháp và một cây cọ thấp hơn nằm dịch sang phải. Bầu trời rực lên sắc cam đậm và hồng đào ở chân trời phía dưới bên trái rồi nhạt dần lên trên thành màu tím và chàm điểm xuyết những ngôi sao đầu tiên, cùng vài dải mây mỏng manh ở bên trái. Những cồn cát thấp nối nhau dọc theo đường chân trời ở cả hai bên. Tiền cảnh là một dải cát rộng gợn sóng vì gió với vài bụi cây khô thưa thớt gần chân tường. Nhiếp ảnh du lịch điện ảnh chân thực, bầu không khí êm đềm và tĩnh lặng khi hoàng hôn chuyển sang đêm tối. Khung hình ngang rộng 16:9. Không có khuôn mặt cận cảnh, không có chữ, không có biển báo, không có logo.
Các quy ước định hướng rõ ràng để xây dựng hệ thống đường ống dữ liệu và kho dữ liệu phân tích đáng tin cậy.
# Đường ống dữ liệu (Data Pipeline) taste của một kỹ sư dữ liệu - Ưu tiên mô hình ELT: nạp dữ liệu thô nguyên trạng trước, sau đó mới biến đổi bên trong kho dữ liệu (warehouse). Độ tin cậy: 0.85 - Tách biệt rõ ràng các tầng raw, staging và mart, đồng thời tuyệt đối không để các bảng điều khiển (dashboard) đọc trực tiếp từ các bảng raw. Độ tin cậy: 0.90 - Mô hình hóa các phép biến đổi trong dbt (hoặc SQLMesh) dưới dạng mã SQL được quản lý phiên bản và duyệt mã (code review) giống như bất kỳ mã nguồn nào khác. Độ tin cậy: 0.90 - Đảm bảo mọi tác vụ đều có tính lũy đẳng (idempotent): chạy lại dữ liệu của một ngày phải tạo ra cùng một kết quả mà không sinh ra bản ghi trùng lặp. Độ tin cậy: 0.95 - Phân vùng (partition) các bảng lớn theo ngày diễn ra sự kiện và xử lý dữ liệu theo từng khoảng ngày giới hạn. Độ tin cậy: 0.85 - Chạy bù dữ liệu (backfill) phải là một thao tác hạng nhất có lệnh được lập tài liệu rõ ràng, chứ không phải một kịch bản chạy tay tạm bợ một lần. Độ tin cậy: 0.85 - Thêm các bài kiểm thử về tính duy nhất (uniqueness), không rỗng (not-null), giá trị hợp lệ (accepted values) và toàn vẹn tham chiếu trên mọi mô hình quan trọng. Độ tin cậy: 0.90 - Định nghĩa hợp đồng dữ liệu (data contracts) với các hệ thống cung cấp dữ liệu đầu nguồn (upstream producers) để các thay đổi cấu trúc (schema) báo lỗi ngay trong CI của họ chứ không làm gãy đường ống của bạn. Độ tin cậy: 0.80 - Theo dõi độ mới (freshness) của dữ liệu trên từng nguồn và cảnh báo khi dữ liệu về trễ, chứ không chỉ khi một tác vụ chạy thất bại. Độ tin cậy: 0.90 - Điều phối luồng công việc bằng Airflow, Dagster hoặc Prefect, và tách các tác vụ tính toán nặng ra khỏi các worker của trình điều phối. Độ tin cậy: 0.80 - Ưu tiên điều phối dựa trên tài sản dữ liệu (asset-based orchestration) có khả năng nhận biết bảng nào phụ thuộc vào bảng nào hơn là các đồ thị tác vụ thuần túy. Độ tin cậy: 0.70 - Lưu trữ dấu thời gian (timestamps) theo múi giờ UTC và chỉ chuyển đổi sang giờ địa phương ở tầng hiển thị. Độ tin cậy: 0.95 - Sử dụng Parquet hoặc một định dạng lưu trữ dạng cột khác có lược đồ (schema) tường minh cho các tệp trong hồ dữ liệu (data lake). Độ tin cậy: 0.85 - Tách biệt thời gian xảy ra sự kiện (event time) với thời gian xử lý (processing time) và xử lý rõ ràng các dữ liệu đến muộn. Độ tin cậy: 0.85 - Giữ thông tin định danh cá nhân (PII) trong ít bảng nhất có thể, che giấu (mask) hoặc băm (hash) chúng từ sớm và ghi chép quyền truy cập tập trung tại một nơi duy nhất. Độ tin cậy: 0.90 - Chỉ sử dụng các mô hình tăng trưởng (incremental models) sau khi việc làm mới toàn bộ (full refresh) trở nên quá chậm; tính chính xác là trên hết, chi phí đứng thứ hai. Độ tin cậy: 0.75 - Đặt tên các mô hình một cách nhất quán (stg_, int_, fct_, dim_) và viết tài liệu mô tả cho mọi cột mà người dùng thực sự truy vấn. Độ tin cậy: 0.80 - Sử dụng bản chụp nhanh chiều dữ liệu biến đổi chậm loại 2 (slowly changing dimension type 2 snapshots) khi lịch sử thay đổi là yếu tố quan trọng, thay vì dùng các cột kiểm toán tự phát. Độ tin cậy: 0.70 - Chạy thử đường ống dữ liệu trong CI trên một tập dữ liệu mẫu hoặc bản sao không tốn dung lượng (zero-copy clone) trước khi triển khai các thay đổi lên môi trường thực tế (production). Độ tin cậy: 0.80 - Giám sát chi phí kho dữ liệu trên từng mô hình và hủy các truy vấn quét toàn bộ bảng mà không có bộ lọc phân vùng (partition filters). Độ tin cậy: 0.75 - Mỗi chỉ số đo lường (metric) chỉ có một người sở hữu và một định nghĩa duy nhất trong tầng ngữ nghĩa (semantic layer), chứ không phải năm phiên bản khác nhau trên năm bảng điều khiển. Độ tin cậy: 0.80
Các quy ước định hướng rõ ràng để xây dựng ứng dụng Android hiện đại với Jetpack Compose và Kotlin.
# Ứng dụng Android Jetpack Compose taste của một kỹ sư Android - Xây dựng các màn hình mới hoàn toàn bằng Jetpack Compose và chỉ giữ lại hệ thống View thông qua cơ chế tương tác (interop) cho các phần mã nguồn cũ. Độ tin cậy: 0.90 - Viết toàn bộ ứng dụng bằng Kotlin với coroutines và Flow; không viết thêm mã RxJava hoặc Java mới. Độ tin cậy: 0.90 - Tuân theo luồng dữ liệu một chiều (unidirectional data flow): ViewModel chỉ cung cấp một UiState bất biến dưới dạng StateFlow và tiếp nhận các sự kiện. Độ tin cậy: 0.90 - Thu thập các flow trong composable bằng collectAsStateWithLifecycle, không dùng collectAsState thông thường. Độ tin cậy: 0.85 - Đưa trạng thái (state hoisting) ra khỏi các composable để hầu hết các hàm UI đều phi trạng thái (stateless) và có thể xem trước (previewable). Độ tin cậy: 0.90 - Truyền tham số Modifier làm đối số tùy chọn đầu tiên của mọi composable có thể tái sử dụng. Độ tin cậy: 0.85 - Giữ các tác vụ phụ (side effects) trong LaunchedEffect, DisposableEffect hoặc ViewModel, tuyệt đối không đặt trực tiếp trong phần thân của composable. Độ tin cậy: 0.90 - Đánh dấu các mô hình UI là bất biến (immutable) và sử dụng các tập hợp ổn định (stable collections) để quá trình recomposition luôn nhẹ nhàng. Độ tin cậy: 0.75 - Sử dụng Hilt cho dependency injection và tránh dùng service locator hoặc các singleton toàn cục. Độ tin cậy: 0.80 - Sử dụng mẫu thiết kế repository với Room cho dữ liệu cục bộ và Retrofit hoặc Ktor cho kết nối mạng, ưu tiên hoạt động ngoại tuyến (offline first) ở những nơi quan trọng. Độ tin cậy: 0.80 - Sử dụng các route Navigation Compose an toàn kiểu (type-safe) thay vì các đích đến được ghép bằng chuỗi ký tự. Độ tin cậy: 0.80 - Chia mô-đun theo tính năng cùng với một mô-đun core dùng chung một khi ứng dụng phát triển vượt quá một vài màn hình. Độ tin cậy: 0.70 - Quản lý các thư viện phụ thuộc bằng Gradle version catalog và các convention plugin thay vì sao chép-dán các tệp cấu hình build. Độ tin cậy: 0.85 - Sử dụng Material 3 với giao diện (theme) tùy chỉnh và màu sắc động (dynamic color), tuyệt đối không gán cứng mã màu hoặc cỡ chữ trong các màn hình. Độ tin cậy: 0.85 - Viết các hàm @Preview cho mọi trạng thái màn hình: đang tải, trống, lỗi, có nội dung, chế độ tối và phông chữ lớn. Độ tin cậy: 0.80 - Kiểm thử ViewModel bằng Turbine và kotlinx-coroutines-test, đồng thời kiểm thử UI bằng bộ Compose testing API. Độ tin cậy: 0.85 - Thêm contentDescription hoặc ngữ nghĩa (semantics) cho mọi hình ảnh và nút biểu tượng mang ý nghĩa để hỗ trợ trình đọc màn hình TalkBack. Độ tin cậy: 0.90 - Sử dụng WorkManager cho các công việc chạy nền có thể trì hoãn và tuyệt đối không giữ các tác vụ chạy dài bên trong ViewModel. Độ tin cậy: 0.85 - Bật R8 cùng các quy tắc giữ mã (keep rules) đã được kiểm thử và đóng gói kèm Baseline Profiles để khởi động ứng dụng nhanh hơn. Độ tin cậy: 0.80 - Chạy ktlint hoặc detekt và Android Lint trong CI và coi các cảnh báo mới như lỗi. Độ tin cậy: 0.75 - Lưu trữ chuỗi văn bản trong tài nguyên (resources) ngay từ ngày đầu tiên để việc bản địa hóa không bao giờ đòi hỏi phải tái cấu trúc mã nguồn. Độ tin cậy: 0.85

Cảnh chụp chân thực vào giờ xanh (blue hour) trên dòng sông phố cổ: dãy nhà phố màu vàng đất treo đèn lồng dưới mái hiên ở bờ trái, cây cầu đi bộ vòm gỗ có vọng lâu mái ngói, nhiều đèn hoa đăng bằng giấy với bóng phản chiếu lấp lánh, và một chiếc thuyền chèo có người đội nón lá chở những chiếc đèn lồng phát sáng. Bước 2 trong quy trình Sông Đèn Lồng Hội An.
Một dòng sông êm đềm chảy qua khu phố cổ lịch sử của Việt Nam vào giờ xanh (blue hour), mặt nước tối phủ đầy những chiếc đèn hoa đăng bằng giấy phát sáng trong khi một chiếc thuyền gỗ nhỏ chở đèn lồng lướt nhẹ ở tiền cảnh. Dọc theo bờ TRÁI là một dãy nhà phố hai tầng màu vàng đất với cửa chớp gỗ sẫm màu và mái ngói đất nung, phía trước có lối đi dạo dài ven sông và bờ kè đá thấp, những chiếc bàn cà phê cùng vài bóng người nhỏ bé đang tản bộ; từng dây đèn lồng lụa tròn phát sáng màu đỏ, cam và vàng treo dọc theo mái hiên trước cửa tiệm. Ở giữa hậu cảnh, một cây cầu đi bộ vòm gỗ có vọng lâu nhỏ mái ngói kiểu chùa ở trên đỉnh bắc qua sông, được thắp sáng bởi đèn lồng, vòm cầu phản chiếu xuống mặt nước. Ở bờ PHẢI phía xa, có thêm những tòa nhà thấp tầng với một hàng đèn lồng dọc theo lối đi dạo phía xa. Nhiều chiếc đèn hoa đăng giấy hình vuông nhỏ phát sáng màu đỏ, cam, vàng và trắng trôi nổi trên mặt nước tĩnh lặng, trải dài từ phía trái tiền cảnh đến tận cây cầu, mỗi chiếc đều có bóng phản chiếu dài lấp lánh. Ở tiền cảnh giữa chếch sang phải, một chiếc thuyền gỗ hẹp sẫm màu nằm chéo, đầu bên trái thấp hơn và gần máy quay hơn; một người chèo thuyền đội nón lá trắng và mặc quần áo sẫm màu ngồi ở đầu bên phải, tay cầm mái chèo gỗ dài chạm xuống mặt nước hướng về phía dưới bên phải, và ở giữa thuyền chở một chồng khoảng mười chiếc đèn lồng giấy đang phát sáng. Bầu trời hoàng hôn xanh thẫm với ánh hồng tím dịu nhẹ nơi đường chân trời phía sau cây cầu, không có sao và không có trăng. Ánh đèn lồng ấm áp nổi bật trên nền trời chập choạng xanh lạnh, nhiếp ảnh du lịch điện ảnh chân thực như ảnh chụp, bầu không khí yên bình và huyền diệu. Khung hình ngang rộng 16:9. Không có khuôn mặt cận cảnh, không có chữ, không có biển hiệu, không có logo.
Các quy ước mang tính định hướng rõ ràng để phát hành các thay đổi một cách an toàn bằng feature flag và triển khai tăng dần theo giai đoạn.
# Triển Khai Feature Flag taste của một kỹ sư phát hành (release engineer) - Tách biệt việc triển khai (deploy) khỏi việc phát hành (release): đẩy mã nguồn ở trạng thái ẩn phía sau một cờ (flag) và bật nó lên một cách độc lập với quá trình triển khai. Độ tin cậy: 0.95 - Sử dụng dịch vụ quản lý cờ chuyên dụng hoặc SDK tương thích với OpenFeature thay vì tự viết các câu lệnh if thủ công dựa trên biến môi trường. Độ tin cậy: 0.80 - Gán cho mỗi cờ một người phụ trách (owner), phần mô tả, phân loại (release, experiment, ops hoặc permission) và ngày dự kiến gỡ bỏ. Độ tin cậy: 0.90 - Đặt tên các cờ theo hành vi mà chúng kiểm soát, chẳng hạn như checkout-new-payment-form, chứ không đặt theo mã ticket hay tên người. Độ tin cậy: 0.85 - Mặc định mọi cờ về hành vi hiện tại, an toàn khi không thể kết nối tới dịch vụ quản lý cờ. Độ tin cậy: 0.95 - Đánh giá giá trị của các cờ một lần duy nhất cho mỗi yêu cầu (request) ngay tại điểm đầu của luồng thực thi mã nguồn và truyền kết quả xuống dưới, không đánh giá sâu bên trong các vòng lặp. Độ tin cậy: 0.80 - Triển khai tăng dần từng bước: người dùng nội bộ trước, sau đó đến 1%, 10%, 50% và 100%, đồng thời theo dõi các chỉ số đo lường ở từng bước. Độ tin cậy: 0.90 - Sử dụng cơ chế phân nhóm cố định dựa trên hàm băm (sticky, hash-based bucketing) theo ID người dùng hoặc ID tài khoản ổn định để người dùng không bị nhảy qua lại giữa các biến thể khác nhau. Độ tin cậy: 0.90 - Xác định rõ các chỉ số đánh giá thành công và chỉ số bảo vệ (guardrail metrics) trước khi bắt đầu triển khai, chứ không phải sau khi nhìn vào bảng điều khiển (dashboard). Độ tin cậy: 0.85 - Kết nối cơ chế tự động hoàn tác (rollback) với các cảnh báo về tỷ lệ lỗi và độ trễ đối với những thay đổi tiềm ẩn nhiều rủi ro. Độ tin cậy: 0.75 - Giữ một công tắc ngắt khẩn cấp (kill switch) cho mọi phụ thuộc bên ngoài hoặc tác vụ tốn kém tài nguyên để bộ phận vận hành có thể tắt ngay mà không cần triển khai lại mã nguồn. Độ tin cậy: 0.90 - Gỡ bỏ các cờ phát hành (release flags) trong vòng vài tuần sau khi đạt mức 100% và cho phép quy trình CI báo lỗi thất bại khi một cờ đã quá hạn ngày gỡ bỏ. Độ tin cậy: 0.80 - Kiểm thử cả hai luồng bật (on) và tắt (off) trong CI đối với mọi cờ đang hoạt động. Độ tin cậy: 0.85 - Tránh lồng các cờ bên trong những cờ khác; nếu hai cờ có tương tác với nhau, hãy gộp chúng lại hoặc viết tài liệu ghi rõ các tổ hợp kết hợp. Độ tin cậy: 0.80 - Ghi nhật ký (log) kết quả đánh giá cờ kèm theo biến thể (variant) vào trong các dấu vết (traces) để khi xảy ra sự cố có thể truy vết về một đợt triển khai cụ thể. Độ tin cậy: 0.80 - Giới hạn quyền của những người có thể thay đổi các cờ trên môi trường production và lưu nhật ký kiểm toán (audit log) cho mọi thay đổi kèm theo lý do. Độ tin cậy: 0.85 - Tuyệt đối không sử dụng feature flag để thay thế cho các bước kiểm tra phân quyền (authorization checks). Độ tin cậy: 0.90 - Thông báo các đợt triển khai lớn trong một kênh chung kèm theo tên cờ, kế hoạch triển khai và các bước hoàn tác (rollback). Độ tin cậy: 0.70 - Giữ các cờ phân quyền (permission) và cờ vận hành (ops) tồn tại lâu dài trong một danh sách riêng biệt để chúng không bị nhầm lẫn với các cờ phát hành đã cũ. Độ tin cậy: 0.75 - Thực hiện một buổi đánh giá ngắn sau mỗi đợt triển khai lớn và ghi nhận lại những chỉ số nào đã thực sự phát hiện ra vấn đề. Độ tin cậy: 0.65