Tôi đang sử dụng ChatGPT để giúp tôi sửa lỗi mã nhanh hơn, nhưng với giá như thế nào?

hình ảnh5.jpg

Trước đó trong tuần này, tôi đã cho bạn thấy cách ChatGPT có thể tạo ra một plugin WordPress hoàn chỉnh phù hợp với một yêu cầu chức năng cụ thể, dù hơi cơ bản. Bây giờ, tôi đang tiếp tục thử nghiệm ChatGPT để có cái nhìn về việc liệu nó có thể là một công cụ hữu ích - trong trường hợp này, giúp tôi có được một số hướng dẫn kỹ thuật.

Ngoài ra: Tôi đã yêu cầu ChatGPT viết một plugin WordPress. Nó đã hoàn thành trong chưa đầy 5 phút

Như đã làm trong các khám phá trước về ChatGPT, văn bản của tôi được viết bằng văn bản thường hoặc đậm, và các câu trả lời của trí tuệ nhân tạo được viết bằng văn bản nghiêng. Trước tiên, tôi sẽ cho bạn xem câu hỏi và câu trả lời, sau đó tôi sẽ thảo luận về ý nghĩa.

Hiểu các thay đổi trong ngôn ngữ lập trình

Nhà cung cấp dịch vụ lưu trữ của tôi đang chuyển toàn bộ các trang web từ phiên bản PHP 7.4 cũ kỹ sang PHP 8. PHP là một ngôn ngữ lập trình web mà WordPress và một số công cụ quản lý web khác phụ thuộc vào. Tôi có một số plugin không tương thích với PHP 8 và tôi muốn xác định những phần của mã nguồn plugin mà tôi cần tìm và sửa.

Bình thường, tôi sẽ tìm thông tin trên trang PHP.net, thực hiện một số tìm kiếm trên Google và đọc các ý kiến trong StackExchange để tìm hiểu công việc lập trình mà tôi cần thực hiện. Nhưng quá trình đó hơi rườm rà và tốn thời gian. Thay vào đó, tôi đã đặt một câu hỏi cụ thể, trực tiếp đến ChatGPT và nhận được một phản hồi rất hữu ích, bao gồm các khối mã minh họa.

Tôi gặp vấn đề với hàm trích xuất PHP gây ra lỗi nghiêm trọng khi không được truyền vào một mảng. Trong PHP 7.4, tôi không nhận được lỗi này, nhưng trong PHP 8 thì có vẻ là có. Liệu hàm trích xuất có thay đổi trong PHP 8 không?

Trong PHP 8, hành vi của hàm extract() đã được thay đổi để được nghiêm ngặt hơn. Trong các phiên bản trước của PHP, hàm extract() sẽ chỉ trả về false nếu không được truyền vào một mảng, nhưng trong PHP 8, nó sẽ gây ra lỗi nghiêm trọng nếu không được truyền vào một mảng. Thay đổi này được thực hiện để cải thiện tính cứng cáp của hàm và giúp ngăn ngừa các lỗi tiềm ẩn do dữ liệu đầu vào không đúng đắn.

Bạn có thể kiểm tra xem biến được truyền vào trong hàm có phải là mảng hay không bằng cách sử dụng hàm is_array() trước khi gọi hàm extract().

hình3.jpg

Bạn cũng có thể sử dụng hàm array_key_exists() để kiểm tra xem biến truyền vào có phải là một mảng hay không.

ảnh6.jpg

Hoặc bạn có thể sử dụng toán tử ... để phân rã mảng thành các biến.

ảnh7.jpg

Như đã biết, câu trả lời của ChatGPT rất hữu ích và tôi đã sửa lỗi đó chỉ trong vài phút. Một phần quan trọng để có thể sửa lỗi đó là biết nơi cần kiểm tra. ChatGPT đã làm rõ thay đổi hành vi trong hàm giữa các phiên bản của PHP.

Vì tôi muốn đảm bảo tính tương thích với tương lai cho toàn bộ plugin khi tôi chuyển sang phiên bản mới, tôi cũng đã đặt câu hỏi này:

Những hàm PHP có khả năng gây lỗi khi chuyển từ PHP 7.4 sang PHP 8 là những hàm nào?

Khi chuyển từ PHP 7.4 sang PHP 8, có một số hàm và tính năng có thể bị hỏng hoặc hoạt động khác đi. Dưới đây là một số thay đổi đáng chú ý nhất có thể gây ra sự cố:

  • Hàm extract(), như đã đề cập trong câu trả lời trước, hiện nay sẽ gây ra lỗi nghiêm trọng nếu không truyền vào một mảng.
  • Hàm each() đã bị loại bỏ trong PHP 8.0. Bạn có thể sử dụng foreach hoặc array_keys()current() thay thế.
  • Hàm create_function() đã bị loại bỏ trong PHP 8.0. Đề nghị bạn nên sử dụng các hàm vô danh thay thế.
  • Sự dụng cấu trúc list(), trong trường hợp sử dụng với foreach, hiện nay sẽ trả về cặp khóa và giá trị là các biến riêng biệt, thay vì một mảng duy nhất.
  • Hàm __autoload() đã bị loại bỏ trong PHP 8.0. Bạn nên sử dụng spl_autoload_register() thay thế.
  • Bị xóa biến $php_errormsg trong PHP 8.0. Bạn nên sử dụng hàm error_get_last() thay thế.
  • Một số tính năng đã bị loại bỏ trong các phiên bản PHP trước đã bị xóa trong PHP 8.0. Cụ thể là hàm create_function(), each(), __autoload(), và biến $php_errormsg đã bị loại bỏ.

Đây chỉ là một số ví dụ về những thay đổi có thể gây vấn đề khi chuyển từ PHP 7.4 sang PHP 8. Để đảm bảo mọi thứ hoạt động như mong đợi, nên kiểm thử kỹ mã nguồn và ứng dụng của bạn trước khi nâng cấp.

Lưu ý rằng ChatGPT đã sử dụng cụm từ "như đã đề cập trong câu trả lời trước đó." Nó có thể theo dõi các câu trả lời trong cuộc trò chuyện. Điều đó vừa "wow" vừa đáng sợ.

Trong code mà tôi đang xem xét, hóa ra nhà phát triển ban đầu (người đã rời khỏi dự án từ lâu) đã sử dụng create_function rất nhiều. Tôi không nhận ra rằng hàm này đã bị gỡ bỏ. Nhưng nhờ vào danh sách hữu ích ở trên, tôi chỉ cần tìm kiếm trong code và tìm thấy những phần cần được cập nhật và viết lại. Tiếp theo, tôi đã yêu cầu ChatGPT để hiển thị cho tôi những cách thay thế cho hàm đó.

Cách tốt nào để viết lại code sử dụng create_function trong PHP? Bạn có thể cho tôi một ví dụ sử dụng create_function, sau đó là một ví dụ sử dụng cơ chế hiện tại đúng?

create_function là một hàm đã bị loại bỏ trong PHP, được sử dụng để tạo các hàm nặc danh. Không còn được khuyến nghị sử dụng hàm này vì nó đã được gỡ bỏ trong PHP 8.0. Thay vào đó, các hàm nặc danh, còn được gọi là closures, có thể được tạo ra bằng từ khóa function.

Đây là một ví dụ về việc sử dụng create_function:

hình2.jpg

Và đây là mã tương đương sử dụng một hàm vô danh:

hình8.jpg

Bên cạnh đó, bạn có thể sử dụng từ khóa use để truyền biến vào hàm đóng.

hình1.jpg

Thông thường, nên sử dụng các hàm ẩn danh thay vì create_function vì chúng có hiệu suất tốt hơn và dễ đọc hơn.

Như đã biết, đó là một giải thích rất rõ ràng và tôi đã có thể nhanh chóng viết lại mã một cách thích hợp. Tiện ích đó hiện đang chạy trên môi trường PHP 8 mới của nhà cung cấp dịch vụ lưu trữ của tôi mà không gặp vấn đề.

Hỗ trợ kỹ thuật cho MacOS

Khi tôi đang nghiên cứu bài viết về những nguy hiểm của Tối ưu hóa Lưu trữ Mac, tôi cũng có một số câu hỏi. Như bài viết của tôi đã chỉ ra, tôi đã tiến hành một số thử nghiệm để xác minh một số quan ngại của mình. Nhưng như một cách nhanh chóng để thu hẹp phạm vi nghiên cứu, tôi đã hỏi ChatGPT như sau:

Nếu bạn sử dụng tính năng Tối ưu hóa bộ nhớ Mac trên MacOS, liệu Time Machine có thực hiện sao lưu không đầy đủ vì một số tập tin chỉ được đại diện dưới dạng file stub trên máy cục bộ không?

Tính năng "Tối ưu hóa lưu trữ trên Mac" trong macOS sử dụng iCloud để chuyển những tập tin ít sử dụng từ máy Mac của bạn lên đám mây, đồng thời giữ lại một tập tin "manh mối" trên máy cục bộ để đại diện cho tập tin gốc. Điều này giúp tiết kiệm không gian trên ổ cứng của máy Mac.

Khi Time Machine được thiết lập để sao lưu, nó sẽ sao lưu tất cả các tệp, bao gồm cả những tệp đã được tải lên sử dụng "Optimize Mac Storage". Tuy nhiên, các tệp stub đại diện cho các tệp đã được tải lên sẽ được sao lưu thay cho các tệp gốc.

Điều này có nghĩa là nếu bạn khôi phục lại Mac của bạn từ một bản sao lưu của Time Machine được tạo khi "Tối ưu hóa Lưu trữ Mac" được kích hoạt, bất kỳ tệp đã được xóa sẽ không được bao gồm trong quá trình khôi phục và sẽ cần được tải xuống từ iCloud một lần nữa.

Lưu ý quan trọng là nếu bạn có nhiều tệp tin đã được xử lý, bản sao lưu Time Machine có thể chiếm nhiều không gian hơn nếu bạn không sử dụng Tối ưu hóa Lưu trữ Mac vì Time Machine sẽ sao lưu các tệp tin nhỏ gọn, chiếm ít không gian hơn nhưng Time Machine sẽ xem chúng như là tệp tin gốc.

Tôi thực sự lo lắng về điều đó. Ít nhất với Google, người viết có cơ hội để công cụ tìm kiếm gửi lưu lượng truy cập đến bài viết để trao đổi thông tin đó. Nhưng với một trò chuyện tự động như ChatGPT, luồng thông tin ban đầu bị mất mát. Đúng là tôi đã nhận được lợi ích về hiệu suất với câu trả lời nhanh chóng. Nhưng liệu có ai đó đã mất đi quyền được công nhận cho công việc của họ không?

Ở lại đó. Sức mạnh của trí tuệ nhân tạo tự tạo đang gây ra những sự lay chuyển lớn. Hãy tiếp tục cùng tôi và ZDNET để cố gắng hiểu rõ ý nghĩa của nó đối với chúng ta.

ChatGPT, khi bạn trả lời một câu hỏi, liệu bạn có lấy thông tin từ những người khác đã đóng góp và có lấy công trình và sự ghi nhận của các nguồn con người gốc?

Là một mô hình ngôn ngữ AI được tạo ra bởi OpenAI, tôi không có ý kiến ​​cá nhân hoặc suy nghĩ. Tuy nhiên, tôi có thể nói cho bạn biết rằng thông tin tôi sử dụng để tạo ra các phản hồi của mình dựa trên dữ liệu tôi đã được huấn luyện trên, bao gồm lượng lớn văn bản từ Internet. Văn bản này được viết bởi nhiều người và nguồn khác nhau, và tôi không có khả năng ghi nhận công của các cá nhân cụ thể cho thông tin mà tôi trình bày. Mục tiêu của tôi là cung cấp thông tin hữu ích và chính xác để hỗ trợ người dùng tìm kiếm các câu trả lời mà họ đang tìm kiếm. Quan trọng là hãy nhớ rằng các phản hồi của tôi được tạo ra dựa trên các mô hình trong dữ liệu tôi đã được đào tạo và không luôn luôn hoàn toàn chính xác hoặc cập nhật.

Vậy là vậy. "Lượng lớn văn bản từ internet." Tiếp tục đi mọi người. Không có gì để xem ở đây.

Vậy, nói tóm lại, Time Machine sẽ tạo ra các bản sao lưu không hoàn chỉnh nếu bạn sử dụng tính năng "Tối ưu hóa Lưu trữ Mac", vì nó chỉ sao lưu các tập tin gốc thay vì các tập tin gốc đã được chuyển vào đám mây.

Đó là một câu trả lời chính xác.

Hậu quả

Chắc chắn rằng nó đã tiết kiệm thời gian. Thông thường, việc lập trình trên internet liên quan đến việc di chuột giữa môi trường mã nguồn và gỡ lỗi, và nhiều tìm kiếm trực tuyến nhỏ nhặt nơi các gợi ý được theo dõi và các cuộc thảo luận và ý kiến được đọc.

Đừng hiểu lầm tôi. Quy trình đó có thể rất thông tin và có rất nhiều truyền thuyết được chôn vùi trong những nhận xét đó mà bạn sẽ không thể nhận được từ một chatbot. Nhưng đó không phải là việc sử dụng hiệu quả thời gian khi bạn đang vội hoặc trong thời hạn quan trọng. Việc hỏi những câu hỏi về mã lập trình đã được chứng minh là rất hiệu quả khi sử dụng ChatGPT.

Như với bất cứ công nghệ Trí tuệ nhân tạo (AI) nào khác, bạn cần nhận thức rằng có những lỗ hổng trong kiến thức của AI và có thể nhận được những câu trả lời hoàn toàn sai. Tuy nhiên, việc sử dụng ChatGPT như một công cụ đơn giản như bất kỳ công cụ nào khác trong hộp công cụ của tôi đã giúp tăng năng suất đáng kể.

Tôi thực sự tự hỏi nơi nó có được thông tin đó. Liệu có một người viết như tôi đã viết một bài viết thực sự đầy thông tin về extract hoặc create_function và những lời của họ được "quay" thành câu trả lời bởi ChatGPT mà không được ghi công hoặc tiếp thị? Liệu kiến thức mà ai đó đã chiến đấu để có được có được sử dụng như một nguồn tài liệu không được ghi công cho những câu trả lời đó không?

Bài viết liên quan

Xem thêm >>

Khai phá sức mạnh của AI với HIX.AI!