Rumah >Peranti teknologi >AI >Keupayaan pengaturcaraan hebat ChatGPT membuatkan saya berpeluh sejuk!
Baru-baru ini, beberapa orang memberi saya Amway ChatGPT dan berkata, Lao Liu, sila lihat produk ini sangat berkuasa sehingga mungkin kita semua pengaturcara akan kehilangan pekerjaan.
Saya hanya tersenyum kecil pada mulanya, bagaimana mungkin? Pandangan saya sebelum ini adalah bahawa dalam hidup saya, AI tidak akan dapat membunuh pengaturcara.
Tetapi terdapat begitu ramai orang yang menjual Amway, saya tidak boleh tidak mendaftar akaun untuk melihatnya.
Saya tidak sangka produk ini tidak dibuka untuk China. Terdapat beberapa panduan di Internet saya mendapati ia menyusahkan, jadi saya segera menghubungi rakan baik saya di luar negara untuk membantu mendaftar akaun.
Cuba untuk bermula, saya memutuskan untuk melangkau soalan dan jawapan mudah tersebut, seperti:
Bagaimana hendak membalikkan rentetan?
Bagaimana untuk memulakan panggilan HTTP?
Kerana perkara sebegini terlalu kebudak-budakan untuk AI yang telah membaca kod yang tidak terkira banyaknya, dan adalah mustahil untuk menguji sejauh mana kuasanya.
Salah satu kebolehan teras seorang pengaturcara adalah untuk mendapatkan keperluan dan dapat membuat reka bentuk yang elegan Mari kita mengujinya pada perkara ini.
Izinkan saya bertanya soalan mudah dahulu:
(Klik untuk melihat imej yang lebih besar)
Seperti yang dijangka, ia "dibaca" dengan sangat baik!
Prinsip terakhir yang dikatakan ialah: Cuba gunakan gubahan/agregasi dan bukannya warisan untuk mencapai penggunaan semula. Ini sememangnya prinsip reka bentuk yang penting dalam berorientasikan objek.
Bolehkah ChatGPT menggunakan prinsip sedemikian?
Pertama-tama tanya jika ia boleh melakukan reka bentuk:
Itu betul-betul bagus, mari mulakan Untuk zum dalam, saya kebetulan mempunyai kes klasik di tangan: pembayaran gaji, yang diekstrak daripada buku klasik "Pembangunan Perisian Tangkas: Prinsip, Corak dan Amalan".
Keperluan kes ini adalah seperti berikut:
Sistem ini terdiri daripada pangkalan data syarikat dan data berkaitan pekerja tepat pada masanya Membayar pekerja mengikut peraturan
Terdapat tiga jenis pekerja
1. Pekerja setiap jam, yang mempunyai gaji tetap setiap jam , dan mereka menyerahkan Kad waktu kerja mereka setiap hari, yang merekodkan tarikh dan waktu bekerja Jika anda bekerja lebih daripada 8 jam sehari, anda akan dibayar pada 1.5 kali. Mereka dibayar setiap hari Jumaat.
2. Pekerja gaji bulanan, gaji tetap, dan mereka dibayar pada hari terakhir bekerja setiap bulan
3 kakitangan, ada Mereka menerima gaji tetap, tetapi dibayar sejumlah komisen berdasarkan jualan mereka, dan mereka menyerahkan resit jualan yang merekodkan tarikh dan kuantiti jualan. Mereka dibayar setiap hari Jumaat.
Pekerja boleh memilih kaedah pembayaran mereka boleh menghantar cek ke alamat pos mereka yang ditetapkan, menyimpannya di bahagian kewangan dan mengeluarkannya pada bila-bila masa, atau memintanya untuk didepositkan terus. ke dalam akaun bank mereka yang ditetapkan.
Selepas membaca keperluan ini, reka bentuk umum adalah seperti berikut:
Pekerja sebagai kelas asas , pelbagai jenis kelas pekerja yang diwarisi.
Walau bagaimanapun, keperluan ini akan berubah Pelanggan memerlukan jenis pekerja boleh ditukar, contohnya, daripada pekerja setiap jam kepada pekerja gaji bulanan, jadi perkara di atas. reka bentuk tidak akan berfungsi.
Pada masa ini, anda harus membuat abstraksi, menggunakan kelas PaymentClassification untuk menyatakan klasifikasi pembayaran, dan kemudian biarkan kelas Pekerja memegang contoh ini 🎜>Komposisi menggantikan warisan.
Ini bersamaan denganperangkap, kami pengaturcara boleh Pengenalan , abstraksi, bolehkah ChatGPT ini digunakan? Saya benar-benar ingin tahu sedikit.
Tanya keperluan awal dahulu jawapan ChatGPT adalah seperti berikut:
(Klik untuk melihat imej yang lebih besar)
Jangan beritahu saya, ia sangat bagus "memahami" keperluan, mengekstrak kata nama daripadanya untuk mereka bentuk kelas dan mereka bentuk perhubungan warisan kelas.
Telah mencapai tahap utama reka bentuk berorientasikan objek.
Langkah seterusnya ialah menggali lubang untuknya:
Sungguh menakjubkan, lelaki ini sebenarnya belajar abstrak!
Walaupun jenis abstrak yang disarikannya dipanggil EmployeeType, yang tidak setepat PaymentClassification, arahan umum adalah sama: gunakan EmployeeType untuk mengurus peraturan pembayaran Apabila jenis pekerja berubah, kelas Pekerja tidak perlu berubah.
Sejujurnya, saya sangat terkejut apabila saya melihat ia memberikan hasil ini. Boleh dikatakan ia boleh mengatasi beberapa pengaturcara.
Seterusnya saya bertanya lagi tentang cara mengendalikan
kitaran pembayaran:
Kali ini abstraksinya lebih berkuasa dan ia diberikan secara langsung Nama tepat:
Jadual Pembayaran, dan pseudokod yang berkaitan
Ia juga menyebut secara khusus bahawa apabila kitaran pembayaran perlu diubah, cuma! Hanya tukar PaymentSchedule tanpa mengubahsuai kelas pekerja asal
Gabungan adalah lebih baik daripada warisan, yang ditunjukkan sekali lagi. Ini hampir sama dengan contoh dalam buku:
Teruskan bertanya tentang
kaedah pembayaran:
Seperti yang dijangkakan, reka bentuknya masih hebat:
Malah, reka bentuk ChatGPT sangat hampir dengan versi akhir dalam buku Rancangan:
Selepas mencuba ini, saya berasa sedikit kecewa dan tidak mahu Ini ChatGPT benar-benar berkuasa, menunjukkan keupayaan reka bentuk yang kuat, dan proses perbualan sangat lancar .
Bolehkah kecerdasan buatan benar-benar memahami keperluan, mempelajari abstraksi dan mereka bentuk struktur kelas yang cantik? Kecekapan teras pengaturcara telah diganti Adakah krisis pengaturcara benar-benar datang?
Saya bertanya soalan lain dan memintanya untuk melukis kelas:
Tunggu sebentar, mengapa nama kelas di sini berbeza daripada yang sebelumnya, dan bagaimanakah konsep baharu muncul: Ahli Kesatuan? Semasa perbualan ini, saya tidak pernah memberitahu konsep ini ! Di mana ia tahu itu?
Perkara yang paling berkemungkinan ialah perkara ini tidak memahami keperluan yang saya katakan Ia sepatutnya telah mengkaji kes ini sebelum ini, dan ia masih "membaca" apa yang telah dipelajari, dan ia telah mengambil masa. itu sendiri untuk melayan ahli kesatuan juga saya mendapatnya, dengan itu mendedahkan kebenaran .
Saya menutup laman web ChatGPT, log masuk semula, dan berinteraksi dengannya semula menggunakan kandungan yang sama.
Adakah anda melihat bahawa kali ini ia tidak mengabstrakkan PaymentClassification/EmployeeType sama sekali, ia sebenarnya mengesyorkan berorientasikan proses idea , tambahkan atribut jenis dan gunakan suis untuk menyelesaikan masalah . Ini lebih teruk daripada rancangan sebelumnya.
Akhir sekali, mari bercakap tentang perasaan anda! ChatGPT sememangnya sangat berkuasa Ia sepatutnya mempelajari sejumlah besar data dan mempunyai banyak perkara dalam perutnya, tetapi ia masih tidak memerlukan pemahaman yang sebenar.
Jika anda melemparkan masalah domain yang benar-benar baru, ia mungkin akan keliru Anda boleh bermain dengan masalah perniagaan sebenar.
Jadi, ChatGPT ialah pembantu yang baik, tetapi jika anda ingin bergantung sepenuhnya padanya, anda perlu menimbangnya dengan teliti.
Atas ialah kandungan terperinci Keupayaan pengaturcaraan hebat ChatGPT membuatkan saya berpeluh sejuk!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!