Vì sao tôi viết sách thay vì viết thread
Gần như mọi thứ tôi công bố đều dài. Các cuốn sách trên website này chia thành chương; các bài viết thì dài từ một nghìn chữ trở lên. Đó là một chiến lược kém hơn về độ phủ so với các bài ngắn, và tôi vẫn tiếp tục làm vì những lý do chẳng liên quan gì đến độ phủ.
Độ dài không phải điểm mấu chốt; sự trọn vẹn mới là
Một thread về weak so với unowned có thể nói “hãy dùng weak trừ khi bạn chắc chắn rằng tham
chiếu sống lâu hơn đối tượng”. Câu đó đúng và không dùng được, vì chữ “chắc chắn” đang gánh toàn bộ
công việc còn cái thread thì không có chỗ để nói sự chắc chắn ấy trông như thế nào.
Bản viết thành chương buộc phải trả lời câu hỏi tiếp theo, rồi câu sau nữa: điều gì bảo đảm vòng đời ấy, chuyện gì xảy ra khi bạn sai, cú sập trông ra sao, tìm nó bằng cách nào. Đâu đó trong chuỗi ấy là cái câu thật sự giúp ích, và nó thường nằm sâu ba câu hỏi — quá xa so với chỗ một bài ngắn kết thúc.
Tôi không viết dài vì dài thì tốt hơn. Tôi viết cho tới khi vấn đề được trả lời, và thường thì nó tốn nhiều chữ hơn tôi tưởng.
Viết là cách tôi phát hiện ra mình chưa hiểu
Đây mới là lý do thật, và nó không phải một phép ẩn dụ.
Tôi đã bắt đầu những chương về các chủ đề tôi dùng hằng ngày suốt nhiều năm rồi phát hiện ra ở giữa
chừng rằng mình không giải thích nổi chúng. Tính tái nhập của actor, việc điều phối phương thức qua
extension của protocol, thứ mà @Observable thật sự theo dõi — ở mỗi trường hợp, tôi có một trực
giác hoạt động được, sinh ra code đúng, và tan rã ngay khoảnh khắc tôi phải viết ra vì sao.
Văn xuôi thì không khoan nhượng theo cách mà code thì có. Code chạy được là bằng chứng bạn nắm đúng cơ chế; nó không phải bằng chứng bạn biết vì sao. Một đoạn văn giải thích cơ chế thì hoặc là đứng vững hoặc là không, và chẳng có gì để nấp sau cả.
Mọi chương sách ở đây đều có ít nhất một phần tồn tại vì tôi đã hiểu sai một điều gì đó trong lúc viết.
Định dạng này cho tôi làm được gì
Sắp xếp mọi thứ cho đúng. Một chương về bố cục có thể giả định rằng bạn đã đọc chương về danh tính. Một thread thì không giả định được gì, nên nó phải giải thích lại bối cảnh mỗi lần, và phần thú vị thì chẳng bao giờ tới.
Kể cả những lần hỏng. Thứ hữu ích nhất trong phần lớn các bài này là con bug tôi đã phát hành —
cú sập vì unowned, chuyện tái nhập actor, bốn lần tôi tối ưu nhầm chỗ. Cái đó không nhét vừa một
bài ngắn, và nó là phần mà người ta viết thư cho tôi để nói tới.
Sai một cách công khai và bền vững. Một thread trôi đi. Một chương có một URL, và khi ai đó gửi email nói rằng một khẳng định đã lạc hậu, tôi sửa cái chương ấy. Bài viết tốt lên theo thời gian thay vì bị thay thế bởi những bài viết khác.
Các cái giá, nói thật
Ít người đọc hơn. Một bài ngắn về một cái bẫy trong Swift tiếp cận được số người nhiều gấp cả một bậc so với một chương về cùng chủ đề. Điều đó đơn giản là đúng và tôi đã quyết định chấp nhận nó.
Nó chậm. Một chương là vài buổi tối, và một cuốn sách là một năm. Không có phiên bản nào của chuyện này là nhanh cả.
Phần lớn nó không được đọc. Người ta tìm một vấn đề cụ thể, đáp xuống một phần, giải quyết xong, rồi đi. Như vậy cũng ổn — đó là công dụng của tài liệu tra cứu — nhưng nó có nghĩa là cái trật tự cẩn thận mà tôi bỏ công sắp xếp thì phần lớn là vô hình.
Nó lạc hậu theo thời gian. Một thread là một bức ảnh chụp thời điểm và chẳng ai mong đợi điều gì khác. Một chương thì trông có vẻ có thẩm quyền, nên sai trong một chương thì tệ hơn, và việc giữ vài cuốn sách còn đúng khi Swift đổi mỗi năm là công việc thường trực có thật.
Nó dành cho ai
Một phần là cho tôi. Tôi đã tra lại các chương của chính mình nhiều hơn bất kỳ ai khác, và một thứ tôi viết cẩn thận từ mười tám tháng trước là một câu trả lời tốt hơn trí nhớ của tôi về nó.
Một phần là cho chính tôi của năm 2021, tự học, học từ những bài blog đều giải thích cùng một đoạn mở đầu rồi dừng lại đúng chỗ nó bắt đầu thú vị. Thứ tôi muốn khi ấy là một cái gì đó đi tiếp — thứ giả định rằng tôi chịu nổi phần chi tiết và nói cho tôi biết bên dưới là gì. Rất ít thứ như vậy tồn tại miễn phí, và không có thứ nào tồn tại bằng tiếng Việt.
Đó là lý do mọi thứ ở đây đều có hai ngôn ngữ. Việc đó nhân đôi khối lượng công việc và nó là phần tôi ít sẵn lòng từ bỏ nhất, vì khoảng trống trong mảng viết kỹ thuật tiếng Việt lớn hơn nhiều so với khoảng trống bên tiếng Anh, và tôi là một trong những người có thể lấp đi một chút của nó.
Một điều tôi sẽ nói với người đang phân vân
Hãy viết cái phiên bản trả lời trọn vẹn câu hỏi, rồi xem nó dài ra bao nhiêu. Nếu đó là bốn trăm chữ thì hãy công bố bốn trăm chữ — mục tiêu chưa bao giờ là độ dài.
Nhưng đừng dừng ở chỗ mà bạn sẽ phải đi tra cứu một thứ gì đó. Chính chỗ đó là nơi bài viết bắt đầu đáng đọc, và nó cũng là nơi gần như mọi thứ được công bố thì dừng lại.