paint-brush
Nhà phát triển cơ sở mới của tôi Kinda Suckstừ tác giả@michaelsalim
1,193 lượt đọc
1,193 lượt đọc

Nhà phát triển cơ sở mới của tôi Kinda Sucks

từ tác giả Michael Salim6m2023/05/12
Read on Terminal Reader

dài quá đọc không nổi

Sử dụng ChatGPT để viết mã giống như có một nhà phát triển Junior dưới quyền bạn. Nó có thể lấy mã 80% ở đó, nhưng thực tế bạn sẽ cần xem lại từng dòng. Giữa giao diện người dùng và sự tương tác, việc sử dụng khá khó khăn. Lần thành công lặp lại nhiều nhất mà tôi có được là 3 lần.
featured image - Nhà phát triển cơ sở mới của tôi Kinda Sucks
Michael Salim HackerNoon profile picture
0-item

Nhà phát triển đó là ChatGPT và tôi có mối quan hệ yêu-ghét với nó.


Ngày nay có rất nhiều bài viết về AI, vì vậy tôi sẽ cố gắng viết bài này thật ngắn gọn.

TL;DR:

Sử dụng ChatGPT để viết mã giống như có một nhà phát triển Junior dưới quyền bạn. Họ có thể lấy mã 80% ở đó, nhưng thực tế bạn sẽ cần xem lại từng dòng.

Kịch bản

Tôi phải thừa nhận rằng có rất nhiều cách bạn có thể sử dụng ChatGPT để giúp viết mã. Nó có thể tốt hơn ở một số trong số họ và tệ hơn ở những người khác.


Ví dụ, tôi đã nghe nhiều người sử dụng nó như một công cụ tìm kiếm. Cá nhân tôi thấy rằng một chút nghi vấn. Không khó để tìm tài liệu hoặc thậm chí câu trả lời thông qua tìm kiếm. Tôi sử dụng Kagi giúp cắt bớt lông tơ.


Ngược lại, sử dụng ChatGPT, làm cách nào để biết câu trả lời có đúng không?


Ở phía bên kia của quang phổ, có rất nhiều người sử dụng nó như một công cụ tự động hoàn thành được tôn vinh. Một cái gì đó giống như Github Copilot . Tôi có thể thấy điều đó hữu ích.


Kịch bản tôi đã chọn là:

Đang chuyển đổi mã của tôi từ chakra-ui sang tailwindcss .


Tại sao?


  • Có rất nhiều tài nguyên cho cả hai công nghệ, đặc biệt là Tailwind (và tất nhiên là cả HTML). Nó nên có nhiều dữ liệu để làm việc.


  • Rất có thể tạo một chương trình để làm việc này. Mặc dù có thể có nhiều trường hợp cạnh, nhưng bản thân chức năng này rất đơn giản. chakra-ui được lấy cảm hứng từ gió đuôi, vì vậy nó thừa hưởng một loạt những thứ có thể dễ dàng chuyển giao.


  • Đó là điều tôi cần phải làm. Vì vậy, đó là trường hợp sử dụng thực tế mà người khác có thể gặp phải.

Kỹ thuật nhanh chóng là một việc vặt

Nhìn quanh lĩnh vực này, có vẻ như việc thúc giục tốt là sự khác biệt giữa việc đạt được kết quả tốt hay tầm thường. Tôi không phải là người giỏi nhất trong khoản này, nhưng tôi đã nghiên cứu và cố gắng hết sức.


Tôi đảm bảo sử dụng nhiều lời nhắc để đưa nó về trạng thái tốt. Chỉ dán mã của tôi bất cứ khi nào có vẻ như nó biết nó chỉ nên chuyển đổi mã của tôi.


Thành thật mà nói, phần này có thể được cải thiện. Giữa giao diện người dùng và tương tác, việc sử dụng khá khó khăn:


  • Có thể mất một thời gian để nó đạt đến trạng thái mong muốn

    Giữa lúc tôi suy nghĩ về những gì sẽ viết, sau đó chờ đợi nó phản hồi và viết xong, tôi cảm thấy khá khó chịu khi làm công việc này.


  • Nó không nhất quán

    Việc bạn không thể luôn sử dụng lại các lời nhắc giống nhau cũng chẳng ích gì. ChatGPT có một số tính ngẫu nhiên, vì vậy tôi phải điều chỉnh lời nhắc mỗi lần. Sao chép-dán lời nhắc đã hoạt động trước đây không giúp được gì.


  • Rất dễ thoát khỏi trạng thái mong muốn

    Ở trên là tốt nếu đó là một điều một lần. Nhưng tôi thấy rằng AI rất dễ quên mọi thứ sau lần chuyển đổi mã đầu tiên. Thành công lặp đi lặp lại nhiều nhất mà tôi có được là 3 lần tôi tin tưởng. Ngoài ra, nó trả về những thứ hoàn toàn không liên quan như giải thích mã của tôi làm gì.


  • Mã thông báo là một yếu tố khá hạn chế

    Chỉ có rất nhiều mã mà nó có thể tạo ra do giới hạn mã thông báo của nó. Bạn có thể kiểm tra mã thông báo tại đây để xem cách tính toán mã thông báo . Nó không thân thiện lắm với mã. Dưới đây là một ví dụ về một trong những kết quả đầu ra của nó. Mỗi màu khác nhau đại diện cho một mã thông báo.


    Mã token hóa

    Vì điều này, tôi phải chia chuyển đổi thành nhiều bước. Nếu không, thế hệ sẽ dừng lại giữa chừng. Bảo nó tiếp tục không hoạt động trong hầu hết thời gian. Kết hợp với các điểm trên, điều này nhanh chóng trở thành một việc vặt phải làm.


    ChatGPT đưa ra lỗi khi được yêu cầu hoàn thành việc tạo mã


Nói chung, cảm giác mà tôi nhận được là tôi không muốn viết tiếng Anh. Nếu tôi đã phải viết một cái gì đó, tôi muốn trực tiếp viết mã hoạt động.


Tôi có thể thấy kỹ thuật nhanh chóng là một kỹ năng quan trọng cần có trong tương lai. Tương tự như việc biết cách tìm kiếm là một kỹ năng quan trọng trong thế giới ngày nay.

Đầu ra không quá tệ

Đối với tất cả công việc phải làm, ChatGPT đã tạo ra một số mã khá ấn tượng. Dưới đây là một số so sánh giữa bản gốc và kết quả:


Như bạn có thể thấy, nó đã làm rất tốt công việc.


Tốt

  • Cấu trúc được đưa vào khá tốt

    Khác với các chi tiết, cấu trúc HTML khá giống với bản gốc. Khoảng cách bị tắt, nhưng bố cục tổng thể vẫn còn.


  • Nội dung văn bản không thay đổi

    Bản thân nội dung đã được xử lý tốt. Mặc dù tôi đã phải kiểm tra lại tất cả chúng, nhưng không có cái nào bị thay đổi. Ngoại lệ duy nhất là những thứ bắt nguồn từ JS.


Những người xấu

  • Nó có các lớp ngẫu nhiên

    Có rất nhiều lớp không làm gì cả. Một số đã được thay đổi và một số khác là lớp tailwind không hợp lệ.


  • Có rất nhiều sự khác biệt nhỏ

    Giao diện người dùng trông như thể một thư viện vừa được nâng cấp và ai đó đã quên di chuyển mã. Trong trường hợp này là do ChatGPT đã thay đổi ngẫu nhiên giá trị của các lớp. Ví dụ: padding từ 3 đến 4 hoặc thay đổi font-weight từ đậm sang bình thường. Các chi tiết đều sai.


  • Nó không hoạt động một nửa thời gian

    Các ảnh chụp màn hình ở trên là những ảnh mà tôi có thể so sánh trực tiếp. Trên thực tế, kết quả không đầy đủ hoặc chỉ sai đến mức tôi phải thực hiện nhiều thay đổi để nó hoạt động. Và vì điều đó, tôi không thể so sánh nó cạnh nhau. Đơn giản là không có gì tôi có thể so sánh được vì mã không chạy.

Nó giống như xem xét PR thay vì viết mã

Điều tuyệt vời về điều này là tôi có một cái gì đó để làm việc. Rất may, bản thân công việc rất đơn giản. Thật dễ dàng để phát hiện ra lỗi. Ánh xạ giữa các lớp từ chakra-ui và tailwind gần như là một đối một. Nó chỉ tẻ nhạt vì cú pháp khác.


Nhưng cách tiếp cận này giống với việc xem xét các PR hơn. Tôi đã phải quét qua toàn bộ mã để đảm bảo mọi thứ được thực hiện chính xác.


Nó có vẻ ổn ngay từ cái nhìn đầu tiên. Nhưng có rất nhiều vấn đề khi bạn làm việc với nó và chú ý kỹ. Nó mang lại cảm giác an toàn sai lầm khiến tôi hơi thất vọng khi tôi phát hiện ra tất cả các sai sót.


Một phần lớn của nó là mã được nội suy từ các cơ sở mã khác. Nó không có vẻ khủng khiếp, nhưng nó không phải là những gì tôi muốn.


Thậm chí có một số thay đổi đáng báo động như thay đổi tiêu đề từ h2 thành h1. Tôi chỉ có thể cho rằng nó đã làm điều này vì nội dung.


Có cảm giác như một nhà phát triển cơ sở đã ghép thứ gì đó lại với nhau và không kiểm tra mã của họ . Và bây giờ tôi phải xem lại và sửa chữa nó mà không thể bảo họ tự sửa chữa.


Và điều này thật kinh khủng. Tôi đã hoàn thành việc xem xét các PR tại nơi làm việc. Bây giờ tôi cũng phải làm điều đó cho các dự án của riêng mình? Không, cám ơn!

tương lai đầy hy vọng

Mặc dù tôi không nghĩ rằng nó ở gần đó, nhưng tôi nghĩ rằng AI sẽ hữu ích vào một thời điểm nào đó cho sự phát triển trong tương lai. Cho dù câu trả lời là LLMs, ai biết?


Giới hạn mã thông báo liên tục tăng

Tôi đã trì hoãn việc hoàn thành bài viết này đủ lâu. Trong thời gian đó, có rất nhiều thông báo về việc tăng giới hạn mã thông báo. Mặc dù tôi không chắc liệu nó có công khai, trả phí hay không, nhưng điều này thật tuyệt khi được xem.


Nhắc UX sẽ trở nên dễ dàng hơn theo thời gian

Với các plugin ChatGPT và khả năng tích hợp tốt hơn, các vấn đề như ghi nhớ trạng thái và tính nhất quán sẽ được cải thiện. Hy vọng rằng điều đó sẽ giảm bớt nỗ lực cần thiết để có được kết quả hữu ích từ ChatGPT.


Trong thời gian chờ đợi, tôi đã hoàn thành nửa còn lại của quá trình di chuyển theo cách thủ công. Nó có nhanh hơn không? Chà, ai biết được. Nó cảm thấy như nhau. Nhưng viết nó bằng tay đã cảm thấy tốt hơn rất nhiều.

L O A D I N G
. . . comments & more!

About Author

Michael Salim HackerNoon profile picture
Michael Salim@michaelsalim
I am a senior full-stack developer. I love to create things for people to use! Founder of https://recalllab.com

chuyên mục

BÀI VIẾT NÀY CŨNG CÓ MẶT TẠI...