
[Swift 6.2] Raw Identifiers – Đặt tên hàm có dấu cách, tại sao không?
Code . iOS & SwiftContents
Chào mừng bạn đến với Fx Studio. Bạn đã nghe tin hot chưa? Swift 6.2 vừa ra mắt với một tính năng mới toanh: Raw Identifiers – cho phép đặt tên hàm, biến, hay enum case với cả khoảng trắng và ký tự đặc biệt, miễn là bạn ôm chúng bằng cặp dấu ngoặc ngược (`).
Nghe có vẻ ngầu, nhưng cũng hơi… lạ lùng?
Hãy cùng khám phá tính năng này, ý đồ của đội ngũ Swift, những tranh cãi rôm rả, và cả một chút dự đoán về tương lai của Swift nhé!
Raw Identifiers là gì?
Tưởng tượng bạn đang viết một hàm kiểm tra (test case) và muốn tên hàm thật rõ ràng, kiểu như: “Kiểm tra xem người dùng đăng nhập thành công”. Trước đây, bạn phải viết kiểu camelCase
như testUserLoginSucceeds()
. Giờ đây, với Raw Identifiers, bạn có thể viết thế này:
func `test user login succeeds`() { // Kiểm tra logic đăng nhập XCTAssertTrue(user.isLoggedIn) }
Đúng vậy, dấu ngoặc ngược (`) chính là “vũ khí” giúp bạn nhét cả khoảng trắng vào tên hàm! Không chỉ hàm, bạn còn có thể dùng cho biến hoặc enum case. Ví dụ:
enum HTTPError: String { case `401` = "Unauthorized" case `404` = "Not Found" } let `user profile` = UserProfile(name: "Fx")
Tính năng này được giới thiệu trong Swift 6.2, như một phần trong nỗ lực làm cho mã nguồn dễ đọc hơn, đặc biệt trong các bài kiểm tra. Nó lấy cảm hứng từ các ngôn ngữ như Kotlin, nơi đặt tên linh hoạt đã được áp dụng từ lâu.
Ý đồ của Swift: Tại sao lại cần “khoảng trắng”?
Đội ngũ Swift không chỉ muốn chơi trội đâu, họ có lý do chính đáng đấy! Dưới đây là những ý đồ chính mà Raw Identifiers hướng tới:
-
Tăng tính dễ đọc: Đặc biệt trong testing, tên hàm dài và mô tả rõ hành vi (như
test user login succeeds
) giúp lập trình viên hiểu ngay bài kiểm tra làm gì. Không cần đoán mò từ camelCase. -
Linh hoạt với hệ thống bên ngoài: Khi làm việc với API hoặc hệ thống có tên chứa khoảng trắng hoặc ký tự đặc biệt. Raw Identifiers giúp bạn khớp tên định danh một cách tự nhiên hơn. Ví dụ, nếu API trả về một mã lỗi kiểu
500 Internal Server Error
, bạn có thể định nghĩa:
enum APIError: String { case `500 Internal Server Error` = "Server down" }
-
Đặt nền móng cho tương lai: Swift luôn hướng tới việc trở thành ngôn ngữ linh hoạt và thân thiện. Raw Identifiers là một bước thử nghiệm, mở ra khả năng đặt tên sáng tạo hơn trong các trường hợp khác ngoài testing.
Theo bài viết trên Hacking with Swift, đội ngũ Swift muốn tính năng này giúp mã nguồn trở nên “gần gũi như ngôn ngữ tự nhiên”, đặc biệt trong các dự án lớn nơi tính rõ ràng là tối quan trọng.
Phản hồi cộng đồng: Khen có, chê cũng nhiều!
Tính năng mới nào cũng có “fan” và “anti-fan”, và Raw Identifiers không ngoại lệ. Cộng đồng Swift trên Reddit (Raw Identifiers are coming to Swift) đã có những phản hồi rất sôi nổi:
Team ủng hộ
- Hữu ích cho testing: Một bình luận với 43 điểm cho rằng Raw Identifiers giúp giảm sự trùng lặp trong tên test case và làm chúng dễ hiểu hơn. Ví dụ,
test that user can logout
nghe tự nhiên hơntestUserCanLogout
. - Linh hoạt hơn: Một số coder thấy tính năng này hữu ích khi làm việc với các hệ thống bên ngoài, như API hoặc cơ sở dữ liệu có tên không chuẩn.
Team phản đối
- Không cần thiết: Một bình luận với 61 điểm thẳng thừng gọi đây là “lãng phí thời gian”. Họ cho rằng camelCase hay snake_case đã đủ tốt, và thêm khoảng trắng chỉ làm mã trông rối mắt.
- Khó gõ dấu ngoặc ngược: Một số coder dùng bàn phím không phải tiếng Anh than thở rằng gõ dấu ` không tiện. Ai từng vật lộn với bàn phím quốc tế chắc hiểu cảm giác này!
- Lo lắng về IDE: Một bình luận Score 5 đặt câu hỏi liệu Xcode có hỗ trợ tốt tính năng này không, như tự động hoàn thành hay kiểm tra cú pháp.
- Nhìn chung, Raw Identifiers đang gây ra một cuộc tranh luận thú vị. Có người thấy nó “đỉnh của chóp”, có người lại bảo “thôi, để tôi dùng camelCase cho lành”.
Hạn chế nhỏ nhưng cần lưu ý
Dù vui vẻ và sáng tạo, Raw Identifiers cũng có giới hạn. Theo Hacking with Swift, bạn không thể dùng tên chỉ chứa ký tự toán tử, như +
hay -
, để tránh nhầm lẫn với các biểu thức toán học. Ví dụ, đoạn code sau sẽ không chạy:
func `+`() { } // Lỗi: Không được dùng chỉ ký tự toán tử
Ngoài ra, vì đây là tính năng mới, các công cụ như Xcode có thể cần thời gian để bắt kịp. Nếu bạn thử viết test user login succeeds
mà Xcode chưa hỗ trợ gợi ý cú pháp, đừng vội cáu nhé!
Tương lai của Swift: Raw Identifiers sẽ đi đâu?
Vậy, Raw Identifiers có phải là “ngôi sao sáng” của Swift 6.2 không?
Hiện tại, nó giống như một món đồ chơi mới: thú vị, nhưng cần thời gian để chứng minh giá trị. Dưới đây là một dự đoán nhỏ về tương lai:
- Cải tiến cho IDE: Xcode có thể sẽ sớm hỗ trợ tốt hơn, như tự động thêm dấu ngoặc ngược hoặc gợi ý tên có khoảng trắng. Điều này sẽ giúp tính năng trở nên thân thiện hơn, đặc biệt với những coder không quen gõ dấu `.
- Mở rộng ứng dụng: Ngoài testing, Raw Identifiers có thể được dùng nhiều hơn trong các trường hợp như đặt tên biến hoặc hàm. Đặc biệt trong các dự án liên quan đến API hoặc dữ liệu không chuẩn.
- Phản hồi định hình tương lai: Nếu cộng đồng tiếp tục tranh luận, đội ngũ Swift có thể tinh chỉnh tính năng này, chẳng hạn như thêm cách thay thế dấu ngoặc ngược hoặc giới hạn phạm vi sử dụng để tránh lạm dụng.
Swift luôn nổi tiếng với việc lắng nghe cộng đồng, nên Raw Identifiers có lẽ sẽ được “mài dũa” trong các phiên bản sau, như 6.3 hoặc 7.0. Dù sao, việc cho phép tên hàm có khoảng trắng là một dấu hiệu rằng Swift đang muốn phá vỡ giới hạn, làm mã nguồn gần gũi hơn với ngôn ngữ tự nhiên.
Tạm kết
Raw Identifiers trong Swift 6.2 là một tính năng vui nhộn, sáng tạo, và đầy tiềm năng. Nó giúp mã nguồn dễ đọc hơn, đặc biệt trong testing, nhưng cũng gây ra không ít tranh cãi. Nếu bạn là fan của sự đổi mới, hãy thử viết vài hàm kiểu test user can do cool stuff
xem sao! Còn nếu bạn thuộc team “camelCase muôn năm”, cũng chẳng sao – Swift đủ linh hoạt để chiều lòng tất cả.
Nguồn tham khảo:
Okay! Tới đây, mình xin kết thúc bài viết này. Nếu có gì thắc mắc hay góp ý cho mình. Thì bạn có thể để lại bình luận hoặc gửi email theo trang Contact.
Cảm ơn bạn đã đọc bài viết này!
Related Posts:
Written by chuotfx
Hãy ngồi xuống, uống miếng bánh và ăn miếng trà. Chúng ta cùng nhau đàm đạo về đời, về code nhóe!
Leave a Reply Cancel reply
Fan page
Tags
Recent Posts
- Role-playing vs. Persona-based Prompting
- [Swift 6.2] Raw Identifiers – Đặt tên hàm có dấu cách, tại sao không?
- Vibe Coding là gì?
- Cách Đọc Sách Lập Trình Nhanh và Hiệu Quả Bằng GEN AI
- Nỗ Lực – Hành Trình Kiến Tạo Ý Nghĩa Cuộc Sống
- Ai Sẽ Là Người Fix Bug Khi AI Thống Trị Lập Trình?
- Thời Đại Của “Dev Tay To” Đã Qua Chưa?
- Prompt Engineering – Con Đường Để Trở Thành Một Nghề Nghiệp
- Vấn đề Ảo Giác (hallucination) khi tương tác với Gen AI và cách khắc phục nó qua Prompt
- Điều Gì Xảy Ra Nếu… Những Người Dệt Mã Trở Thành Những Người Bảo Vệ Cuối Cùng Của Sự Sáng Tạo?
You may also like:
Archives
- May 2025 (2)
- April 2025 (1)
- March 2025 (8)
- January 2025 (7)
- December 2024 (4)
- September 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (4)
- April 2024 (2)
- March 2024 (5)
- January 2024 (4)
- February 2023 (1)
- January 2023 (2)
- November 2022 (2)
- October 2022 (1)
- September 2022 (5)
- August 2022 (6)
- July 2022 (7)
- June 2022 (8)
- May 2022 (5)
- April 2022 (1)
- March 2022 (3)
- February 2022 (5)
- January 2022 (4)
- December 2021 (6)
- November 2021 (8)
- October 2021 (8)
- September 2021 (8)
- August 2021 (8)
- July 2021 (9)
- June 2021 (8)
- May 2021 (7)
- April 2021 (11)
- March 2021 (12)
- February 2021 (3)
- January 2021 (3)
- December 2020 (3)
- November 2020 (9)
- October 2020 (7)
- September 2020 (17)
- August 2020 (1)
- July 2020 (3)
- June 2020 (1)
- May 2020 (2)
- April 2020 (3)
- March 2020 (20)
- February 2020 (5)
- January 2020 (2)
- December 2019 (12)
- November 2019 (12)
- October 2019 (19)
- September 2019 (17)
- August 2019 (10)