Cộng đồng nhà phát triển tiết lộ những lỗ hổng nghiêm trọng của Xcode và môi trường phát triển độc quyền của Apple

Nhóm Cộng đồng BigGo
Cộng đồng nhà phát triển tiết lộ những lỗ hổng nghiêm trọng của Xcode và môi trường phát triển độc quyền của Apple

Môi trường phát triển Xcode của Apple đã trở thành nguồn gây thất vọng rộng rãi trong cộng đồng các nhà phát triển iOS, với những cuộc thảo luận trong cộng đồng tiết lộ những vấn đề sâu xa vượt xa những lỗi phần mềm thông thường. Các vấn đề này bao gồm từ những lỗi trình biên dịch khó hiểu đến hệ sinh thái đóng kín của Apple buộc các nhà phát triển phải sử dụng những công cụ kém chất lượng.

Lỗi trình biên dịch khiến các nhà phát triển bơ vơ

Một trong những vấn đề khét tiếng nhất gây khó khăn cho Xcode là lỗi nổi tiếng unable to type-check this expression in reasonable time (không thể kiểm tra kiểu của biểu thức này trong thời gian hợp lý). Thông báo này xuất hiện khi trình biên dịch Swift đơn giản là từ bỏ việc phân tích mã nguồn, khiến các nhà phát triển phải tìm kiếm khắp toàn bộ codebase mà không có bất kỳ hướng dẫn có ý nghĩa nào. Lỗi này không cung cấp vị trí cụ thể hoặc nguyên nhân, biến thứ vốn nên là một công cụ phát triển hữu ích thành không khác gì một trình soạn thảo văn bản cho đến khi vấn đề bí ẩn được giải quyết.

Cộng đồng đã xác định đây là triệu chứng của một vấn đề lớn hơn khi các công cụ phát triển của Apple giả vờ rằng mọi thứ đang hoạt động tốt trong khi thực tế chúng đang bị lỗi. Không giống như những lỗi trình biên dịch truyền thống chỉ ra các vấn đề cụ thể, những lỗi này buộc các nhà phát triển phải đoán mò tốn thời gian.

Các vấn đề chính của Xcode được các nhà phát triển xác định

Danh mục vấn đề Các vấn đề cụ thể Tác động
Lỗi trình biên dịch "Không thể kiểm tra kiểu của biểu thức" mà không có vị trí cụ thể Việc phát triển dừng lại cho đến khi vấn đề được phát hiện thủ công
Tệp dự án Các tệp project.pbxproj không đọc được gây ra xung đột merge Cộng tác nhóm trở nên khó khăn
Công cụ gỡ lỗi Các hộp thoại mật khẩu chồng chéo, vấn đề kết nối với thiết bị iOS Trì hoãn việc kiểm thử và triển khai
Công cụ thay thế AppCode bị ngừng phát triển, tài liệu công cụ CLI hạn chế Không có lựa chọn thay thế khả thi cho Xcode
Báo cáo lỗi Hệ thống theo dõi lỗi riêng tư ngăn cản sự cộng tác của cộng đồng Các nhà phát triển lãng phí thời gian tái khám phá các vấn đề đã biết

Tệp dự án tạo ra cơn ác mộng xung đột merge

Hệ thống cấu hình dự án của Xcode đưa ra một trở ngại lớn khác cho các nhóm phát triển. Tệp project.pbxproj, chứa tất cả cài đặt và cấu hình dự án, là hàng nghìn dòng mã không thể đọc được và trở thành cơn ác mộng trong quá trình cộng tác nhóm. Khi xung đột merge xảy ra trong tệp này, các nhà phát triển thường thấy mình hoàn toàn không thể mở dự án.

Phản ứng của cộng đồng là từ bỏ hoàn toàn hệ thống của Apple, với nhiều nhà phát triển chuyển sang sử dụng các công cụ của bên thứ ba như xcodegen để quản lý tệp dự án ở định dạng con người có thể đọc được như YAML, sau đó tạo ra các tệp Xcode khi cần thiết.

Hệ sinh thái phát triển đóng kín của Apple kìm hãm sự đổi mới

Có lẽ khía cạnh đáng lo ngại nhất được tiết lộ trong các cuộc thảo luận cộng đồng là sự kiểm soát độc quyền của Apple đối với các công cụ phát triển iOS. Công ty duy trì một hệ thống theo dõi lỗi riêng tư, khiến các nhà phát triển không thể nghiên cứu các vấn đề đã biết hoặc cộng tác để tìm giải pháp. Sự mờ ám này buộc hàng nghìn nhà phát triển phải lãng phí thời gian khám phá lại những vấn đề tương tự một cách độc lập.

Hệ thống theo dõi lỗi của Apple là riêng tư. Bạn có thể gửi báo cáo lỗi, nhưng trình báo cáo lỗi là một hố đen; thông tin đi vào nhưng không bao giờ ra ngoài.

Việc thiếu các lựa chọn thay thế khả thi làm trầm trọng thêm vấn đề. AppCode của JetBrains, từng cung cấp trải nghiệm giống IntelliJ cho việc phát triển iOS, đã bị ngừng do ma sát khi vẫn cần Xcode để biên dịch và triển khai. Điều này khiến các nhà phát triển bị mắc kẹt trong hệ sinh thái của Apple mà không có lối thoát.

Cộng đồng tìm kiếm các giải pháp thay thế và cách khắc phục

Các nhà phát triển đã tìm ra nhiều cách để đối phó với những hạn chế của Xcode, mặc dù không có giải pháp nào hoàn toàn. Một số sử dụng các công cụ bên ngoài để quản lý dự án, trong khi những người khác đã phát triển các phương pháp khắc phục sự cố mang tính nghi lễ bao gồm xóa cache, khởi động lại ứng dụng và tạo lại dự án. Tuy nhiên, những cách khắc phục này làm nổi bật cách môi trường phát triển tích cực cản trở năng suất thay vì nâng cao nó.

Sự tương phản với các nền tảng khác là rõ ràng. Các công cụ phát triển của Microsoft nhận được lời khen từ cộng đồng về tính cởi mở, với các repository công khai, người bảo trì phản hồi nhanh và quy trình phát triển minh bạch. Điều này khiến cách tiếp cận bí mật của Apple trở nên lỗi thời và thù địch với nhà phát triển hơn nữa.

Các Giải Pháp Thay Thế và Cách Khắc Phục của Developer

  • Quản lý Dự án: Sử dụng xcodegen để quản lý các dự án theo định dạng YAML
  • Môi trường Phát triển: Một số developer sử dụng neovim với xcode-build-server (mặc dù không ổn định)
  • Tự động hóa Build: Fastlane hỗ trợ việc scripting và các quy trình CI/CD
  • Nghi thức Khắc phục Sự cố: Xóa derived data → Khởi động lại Xcode → Khởi động lại Mac → Thử phiên bản beta → Tạo lại project
Máy trạm làm việc của nhà phát triển iOS hiển thị Xcode và mã Swift , minh họa những thách thức phải đối mặt trong môi trường phát triển
Máy trạm làm việc của nhà phát triển iOS hiển thị Xcode và mã Swift , minh họa những thách thức phải đối mặt trong môi trường phát triển

Chi phí của cách tiếp cận của Apple

Cuộc thảo luận cộng đồng tiết lộ rằng các công cụ phát triển kém của Apple có thể đang kìm hãm sự phát triển của các nhà phát triển mới học phát triển iOS như trải nghiệm lập trình đầu tiên của họ. Bản chất không thể dự đoán của các vấn đề Xcode dạy các nhà phát triển dựa vào việc khắc phục sự cố mê tín thay vì kỹ năng giải quyết vấn đề có hệ thống.

Đối với các nhà phát triển có kinh nghiệm, sự thất vọng được nhân lên bởi sự thờ ơ rõ ràng của Apple đối với những vấn đề này. Trọng tâm của công ty dường như là duy trì quyền kiểm soát đối với pipeline phát triển iOS thay vì cung cấp cho các nhà phát triển những công cụ tốt nhất có thể. Cách tiếp cận này hiệu quả vì vị thế thị trường smartphone của Apple, nhưng nó phải trả giá bằng năng suất và sự hài lòng của nhà phát triển.

Tính chất rộng rãi của những khiếu nại này cho thấy rằng các vấn đề của Xcode không phải là những sự cố biệt lập mà là những vấn đề thiết kế và ưu tiên cơ bản phản ánh mối quan hệ rộng lớn hơn của Apple với cộng đồng nhà phát triển.

Tham khảo: Xcode is the Worst Piece of Professional Software I Have Ever Used