Lợi nhuận:
- Có thể phân biệt nơi trí tuệ nhân tạo cung cấp tốc độ thực sự trong phát triển di động (mã mẫu, bản nháp, học tập) và nơi (kiến trúc, quyền, bảo mật, xuất bản) quyết định được giao cho con người, tùy thuộc vào mức độ rủi ro của nhiệm vụ.
- Khả năng áp dụng kỷ luật xác minh từng đầu ra trí tuệ nhân tạo thông qua các bước biên dịch, chạy thử và đánh giá
- Khả năng phát triển thói quen viết lời nhắc mạnh mẽ, phù hợp với ngữ cảnh và bảo vệ dữ liệu cá nhân cũng như khóa bí mật mà không cần đưa chúng cho AI
Phát triển ứng dụng di động là một trong những lĩnh vực phần mềm cạnh tranh nhất trên thế giới. Chúng ta đang nói về một sản phẩm hoạt động trên hàng tỷ thiết bị, chu kỳ cập nhật của nó phụ thuộc vào sự chấp thuận của cửa hàng và luôn được tính trong túi của người dùng. Trí tuệ nhân tạo (AI - hệ thống phần mềm có thể tạo ra văn bản, mã và giải pháp giống như con người) đã tham gia vào lĩnh vực này theo hai cách: thứ nhất, như một công cụ hỗ trợ tăng tốc quá trình phát triển (tạo mã, gỡ lỗi, viết kiểm tra) và thứ hai, như một khả năng được nhúng trong ứng dụng (nhận dạng hình ảnh trên thiết bị, trợ lý trò chuyện, công cụ đề xuất). Mô-đun này dạy cả hai từ đầu đến cuối. Nhưng hãy tóm tắt một câu ngay từ đầu: AI không thay thế nhà phát triển di động; mở rộng năng suất và phạm vi của nó. Bạn chịu trách nhiệm về mọi dòng mã được phát hành, mọi quyền được yêu cầu và mọi giao dịch được thực hiện với dữ liệu người dùng.
Trong phần này, chúng ta sẽ xem AI tạo ra giá trị thực sự ở đâu trong quá trình phát triển thiết bị di động, nơi nó phải phục tùng con người, cách xác minh từng đầu ra và tại sao kỷ luật bảo mật quyền riêng tư là không thể thương lượng.
AI có ích ở đâu trong phát triển di động?
Phát triển thiết bị di động bao gồm nhiều nhiệm vụ lặp đi lặp lại và theo khuôn mẫu: viết mã xem, thiết lập lớp yêu cầu mạng, xác định mô hình dữ liệu, tạo trường hợp thử nghiệm, giải quyết thông báo lỗi. AI tạo ra những mẫu này rất nhanh. Ngược lại, các quyết định về kiến trúc, tùy chọn trải nghiệm người dùng, ranh giới bảo mật và độ chính xác của logic nghiệp vụ là lĩnh vực của con người.
Sẽ rất hữu ích nếu chia các nhiệm vụ thành ba nhóm dựa trên mức độ rủi ro:
Loại nhiệm vụ
Vai trò của AI
vai trò của đàn ông
Mã mẫu (bản soạn sẵn), màn hình mẫu, chuyển đổi
Tạo bản nháp, tăng tốc
Đánh giá, tích hợp
Logic nghiệp vụ, luồng dữ liệu, tích hợp API
Cung cấp các đề xuất và dự thảo
Xác minh, kiểm tra, xác nhận
Kiến trúc, yêu cầu cấp phép, bảo mật, quyết định phát sóng
Liệt kê các lựa chọn và biện minh
Ra quyết định và chịu trách nhiệm
Bảng này sẽ là la bàn của chúng ta trong suốt mô-đun. Cột bên phải không bao giờ được bàn giao cho AI.
Mẹo: Hãy coi AI giống như một “thực tập sinh rất nhanh nhưng thiếu kinh nghiệm”. Bạn giao cho anh ta một nhiệm vụ rõ ràng, đọc bản in của anh ta, kiểm tra anh ta và bạn chịu trách nhiệm. Bạn không gửi mã do thực tập sinh tạo ra đến nơi sản xuất (môi trường trực tiếp) mà không đọc nó; Quy tắc tương tự áp dụng cho AI.
Kỷ luật xác minh: ba bước
Văn bản AI trôi chảy và trông tự tin; Nhưng sự trôi chảy không phải là sự chính xác. AI đôi khi phù hợp với một chức năng thư viện không tồn tại (điều này được gọi là ảo giác - mô hình tự tin tạo ra thứ gì đó không thực sự tồn tại). Đây là bộ lọc ba bước mà nhà phát triển thiết bị di động áp dụng cho mọi đầu ra AI:
- Biên dịch và chạy. Mã có thực sự biên dịch không, ứng dụng có mở được không? API do AI đề xuất có thực sự nằm trong SDK (bộ công cụ phát triển phần mềm - bộ công cụ được tạo sẵn mà nền tảng cung cấp) không?
- Kiểm tra nó. Kiểm tra hành vi dự kiến tự động hoặc thủ công. “Nó có vẻ hiệu quả” là chưa đủ; Hãy thử các trường hợp khó khăn (dữ liệu nhàn rỗi, không có mạng, quyền bị từ chối).
- Xem xét và biện minh. Bạn có hiểu tại sao code được viết theo cách này không? Đừng xuất bản mã mà bạn không hiểu. Hỏi AI "dòng này làm gì, tại sao lại cần thiết?" hỏi.
Lưu ý: Số phiên bản, tên thư viện và chữ ký API do YZ cung cấp có thể đã lỗi thời hoặc bịa đặt. Nó không thể biết về các bản cập nhật được phát hành sau ngày hết hạn (ngày cuối cùng mà mô hình được đào tạo). Luôn xác minh sự phụ thuộc quan trọng từ tài liệu chính thức (Nhà phát triển Apple, Nhà phát triển Android).
ba trường hợp nhỏ
Trường hợp 1 - Tăng tốc phát triển màn hình. Một nhóm thương mại điện tử đã phác thảo màn hình chi tiết sản phẩm với sự trợ giúp của AI từ Jetpack Compose (bộ công cụ giao diện hiện đại của Android). Bản thảo đầu tiên thường mất 2 ngày thì xuất hiện sau 3 giờ. Nhưng nhóm đã phát hiện ra rằng định dạng giá do AI tạo ra đang làm tròn số xu không chính xác: 19,99 TL xuất hiện dưới dạng 20 TL trên một số thiết bị. Nếu không có xác minh, lỗi này sẽ xuất hiện. Lợi nhuận là có thật, nhưng việc kiểm soát là điều bắt buộc.
Trường hợp 2 - Bị ảo giác. Một nhà phát triển đã nhận được mã từ AI để yêu cầu quyền truy cập vị trí trên iOS. AI đã đề xuất một hàm gọi là requestPreciseLocationOnce(). Không có API như vậy; Cái đúng là requestWhenInUseAuthorization(). Lỗi biên dịch đã tiết lộ điều này ngay lập tức. Bài học: trình biên dịch là người kiểm tra trung thực nhất của AI.
Trường hợp 3 - Bẫy quyền riêng tư. Một nhóm dán báo cáo lỗi của người dùng vào AI và yêu cầu giải pháp. Các báo cáo bao gồm email và ID thiết bị của người dùng. Điều này có nghĩa là rò rỉ dữ liệu cá nhân cho dịch vụ của bên thứ ba và vi phạm KVKK (Luật bảo vệ dữ liệu cá nhân). Giải pháp: xóa (che) các trường cá nhân trước khi đưa dữ liệu cho AI.
Dấu nhắc yếu / Dấu nhắc mạnh
Sự khác biệt giữa hai lời nhắc cho cùng một công việc sẽ quyết định chất lượng đầu ra.
Lời nhắc yếu: "Viết cho tôi màn hình đăng nhập."
Lời nhắc mạnh mẽ: "Tạo màn hình đăng nhập bằng Jetpack Compose cho Android. Yêu cầu:- Trường email và mật khẩu; xác minh định dạng email, mật khẩu ít nhất 8 ký tự- Nút 'Đăng nhập' bị tắt khi tải và hiển thị vòng quay- Thông báo lỗi xuất hiện bằng văn bản màu đỏ trong trường- Kiến trúc MVVM: trạng thái trong ViewModel, Chỉ giao diện người dùng có thể kết hợp- Kotlin, Material 3, minSdk 24Chỉ cần cung cấp mã, sau đó mỗi phần Giải thích trong 1 câu."
Lời nhắc thứ hai cho biết nền tảng, công cụ, kiến trúc, ranh giới và định dạng đầu ra. Nó không để lại gì cho AI đoán; Do đó, nó mang lại kết quả hữu ích hơn và dễ xác minh hơn nhiều.
Mẫu khởi đầu có thể sao chép
Sử dụng các mẫu bên dưới bằng cách điền chúng vào ngữ cảnh của riêng bạn.
Mẫu vai trò và bối cảnh:"Bạn là nhà phát triển [iOS/Android/Flutter] cấp cao. Dự án của tôi: [loại ứng dụng], nền tảng đích [phiên bản], kiến trúc [MVVM/Clean]. Nhiệm vụ: [điều bạn muốn]. Ràng buộc: [ngôn ngữ, thư viện, phiên bản]. Đầu tiên tóm tắt kế hoạch thành 3 mục, sau đó tạo mã, sau đó liệt kê các rủi ro."
Mẫu đánh giá mã:"Kiểm tra mã [ngôn ngữ] sau. Xác định:1) Lỗi và rủi ro sự cố2) Các vấn đề về bộ nhớ/hiệu suất3) Các lỗ hổng bảo mật và quyền riêng tư4) Vị trí có thể viết mã đơn giản hơn. Số dòng cho mỗi mục và đề xuất chỉnh sửa.[mã]"
Mẫu học tập: "Giải thích [khái niệm, ví dụ: async/await in Swift] từ góc nhìn của nhà phát triển thiết bị di động. Đưa ra một ví dụ đơn giản, đề cập đến 3 lỗi thường gặp và chỉ ra khi nào tôi không nên sử dụng nó."
Mẫu xác minh: "Bạn đã đề xuất API/chức năng này: [tên]. Xác minh: Phiên bản SDK nào đã được đưa vào, nó yêu cầu quyền gì, nó có bị phản đối không? Nếu không chắc chắn, hãy nói 'không chắc chắn, hãy kiểm tra tài liệu chính thức'."
Những lỗi thường gặp
- Dán đầu ra mà không đọc nó. Sai lầm phổ biến nhất và nguy hiểm nhất. Ngay cả khi được biên dịch, logic có thể sai.
- Cung cấp dữ liệu bí mật cho AI. Khóa API, dữ liệu người dùng, chứng chỉ ký không bao giờ được dán vào yêu cầu.
- Không xác minh phiên bản và API. AI có thể đề xuất các API lỗi thời hoặc bị hư hỏng; Tài liệu chính thức có tiếng nói cuối cùng.
- Để lại quyết định kiến trúc cho AI. "Kiến trúc nào tốt nhất?" Câu trả lời cho câu hỏi này phụ thuộc vào dự án của bạn; AI đưa ra câu trả lời chung chung, bạn biết ngữ cảnh rồi.
- Viết một dấu nhắc khổng lồ. Cố gắng giải quyết một nhiệm vụ phức tạp chỉ bằng một yêu cầu duy nhất; Sẽ an toàn hơn nếu chia nó thành các bước nhỏ, có thể kiểm chứng được.
- Yêu cầu quyền "chỉ trong trường hợp." AI đôi khi bổ sung nhiều quyền hơn mức cần thiết; Mọi quyền đều có rủi ro đối với sự chấp thuận của cửa hàng và sự tin tưởng của người dùng.
Tóm lại
AI đóng hai vai trò trong phát triển di động: trợ lý giúp tăng tốc quá trình phát triển và khả năng nhúng ứng dụng. Mã mẫu cung cấp khả năng tăng tốc đáng kể cho việc soạn thảo và học tập; Nhưng các quyết định về kiến trúc, an ninh, cấp phép và xuất bản đều thuộc về con người. Mỗi đầu ra được xác minh qua ba bước: biên dịch-chạy, kiểm tra, đánh giá. Dữ liệu bí mật và thông tin cá nhân không bao giờ được cung cấp cho AI. Nền tảng nhu cầu mạnh mẽ nêu rõ công cụ, các ràng buộc và định dạng đầu ra. Kỷ luật này là cơ sở cho phần còn lại của mô-đun.
Nhiệm vụ ứng dụng
Chọn một màn hình từ dự án di động của riêng bạn (hoặc một "ứng dụng ghi chú" tưởng tượng). Viết lời nhắc cho màn hình đó bằng cách sử dụng "Mẫu vai trò và ngữ cảnh" ở trên. Hãy thử biên dịch mã do AI tạo thành một dự án và chuyển nó qua bộ lọc xác minh ba bước: nó đã biên dịch chưa, nó có hoạt động như mong đợi không, bạn có hiểu từng dòng không? Ghi lại ít nhất một lỗi hoặc API không có thật mà bạn tìm thấy.
danh sách kiểm tra
- [ ] Tôi đã xác định nhiệm vụ sẽ rơi vào nhóm nào trong ba nhóm dựa trên mức độ rủi ro của nó
- [ ] Tôi đã chỉ định nền tảng, phiên bản, kiến trúc và các ràng buộc trong yêu cầu
- [ ] Tôi đã biên dịch kết quả và chạy nó
- [ ] Tôi đã kiểm tra các trường hợp giới hạn (dữ liệu nhàn rỗi, không có mạng, quyền bị từ chối)
- [ ] Tôi chắc chắn rằng mình hiểu từng dòng
- [ ] Tôi không cung cấp bất kỳ dữ liệu cá nhân hoặc khóa riêng nào cho AI
- [ ] Tôi đã xác minh các API quan trọng từ tài liệu chính thức