Sebarang perisian berskala besar tidak dirangka sepenuhnya dari awal, tetapi diperbaiki, disunting, diuji unit, dibaiki oleh pembangun, diselesaikan melalui semakan kod, dan diselesaikan berulang kali sehingga ia bersedia untuk dilancarkan kod boleh digabungkan ke dalam gudang hanya selepas keperluan dipenuhi.
Ilmu mengawal keseluruhan proses dipanggil Kejuruteraan Perisian.
Kejuruteraan perisian bukan proses bebas, tetapi terdiri daripada pembangun, penyemak kod, pemberita pepijat, arkitek perisian dan pelbagai alatan pembangunan (seperti penyusun, ujian unit, Penyambung, penganalisis statik) .
Baru-baru ini, Google telah mengumumkan rangka kerja DIDACT (Dynamic Integrated Developer ACTivity, aktiviti pembangun bersepadu dinamik) nya sendiri, yang menggunakan teknologi AI untuk meningkatkan kejuruteraan perisian dan menyepadukan pembangunan perisian Keadaan perantaraan digunakan sebagai data latihan untuk membantu pembangun menulis dan mengubah suai kod, dan memahami dinamik pembangunan perisian dalam masa nyata.
DIDACT ialah model berbilang tugas yang dilatih mengenai aktiviti pembangunan termasuk penyuntingan, penyahpepijatan, pembetulan dan semakan kod
Para penyelidik membina dan menggunakan tiga alatan DIDACT secara dalaman, Penghuraian Anotasi, Pembaikan Binaan dan Ramalan Petua, masing-masing disepadukan pada peringkat aliran kerja pembangunan yang berbeza.
Selama beberapa dekad, rantaian alat kejuruteraan perisian Google menyimpan setiap operasi yang berkaitan dengan kod sebagai alatan dan Log pembangunan interaksi antara orang.
Pada dasarnya, pengguna boleh menggunakan rekod ini untuk memainkan semula proses perubahan utama dalam proses pembangunan perisian secara terperinci, iaitu bagaimana pangkalan kod Google dibentuk, termasuk setiap pengeditan kod, Penyusunan , anotasi, penamaan semula pembolehubah, dsb.
Pasukan pembangunan Google akan menyimpan kod dalam monorepo (repositori mono), iaitu repositori kod yang mengandungi semua alatan dan sistem.
Pembangun perisian biasanya membuat pengubahsuaian kod dalam ruang kerja copy-on-write tempatan yang diuruskan oleh Pelanggan dalam sistem Cloud (CitC).
Apabila pembangun bersedia untuk membungkus set perubahan kod bersama-sama untuk mencapai tugas tertentu (seperti membetulkan pepijat), mereka perlu mencipta sistem semakan kod dalam Senarai Perubahan Kritikan Google (CL).
Seperti sistem semakan kod biasa, pembangun berkomunikasi dengan penyemak rakan sebaya tentang fungsi dan gaya, dan kemudian mengedit CL untuk menangani isu yang dibangkitkan semasa ulasan semakan.
Akhirnya, penyemak mengisytiharkan kod "LGTM!" dan menggabungkan CL ke dalam pangkalan kod.
Sudah tentu, sebagai tambahan kepada perbualan dengan penyemak kod, pembangun juga perlu mengekalkan sejumlah besar "dialog" dengan alat kejuruteraan perisian lain, termasuk penyusun, rangka kerja ujian, penyambung, Statik penganalisis, alat ujian fuzz, dsb.
Ilustrasi rangkaian kompleks aktiviti yang terlibat dalam pembangunan perisian: aktiviti pembangun, interaksi dengan penyemak kod dan penggunaan alatan seperti sebagai pengkompil memanggil.
DIDACT memanfaatkan interaksi antara jurutera dan alatan untuk memperkasakan model pembelajaran mesin dengan mencadangkan atau mengoptimumkan pelaksanaan tindakan perisian oleh pembangun semasa kejuruteraan tugas untuk membantu pembangun Google dalam mengambil bahagian dalam proses kejuruteraan perisian.
Untuk melakukan ini, penyelidik mentakrifkan beberapa tugas berkenaan aktiviti pembangun individu: membaiki binaan yang rosak, meramal ulasan ulasan kod, memproses ulasan ulasan kod, menamakan semula pembolehubah, mengedit fail, dsb. .
Kemudian tentukan bentuk biasa untuk setiap aktiviti: dapatkan Keadaan tertentu (fail kod), Niat (anotasi khusus untuk aktiviti, seperti anotasi semakan kod atau ralat pemproses kompilasi) dan menjana Tindakan (operasi untuk memproses tugas).
Tindakan adalah seperti bahasa pengaturcaraan mini yang boleh dikembangkan kepada aktiviti yang baru ditambah, meliputi penyuntingan, menambah komen, menamakan semula pembolehubah, menanda ralat kod, dll. Ia juga boleh dipanggil ini The bahasa pertama ialah DevScript.
Gesaan input model DIDACT ialah tugasan, coretan kod dan ulasan yang berkaitan dengan tugasan dan output ialah tindakan pembangunan, seperti mengedit atau mengulas
Status - Bentuk takrifan Niat-Tindakan (State-Intent-Action) boleh menangkap tugasan yang berbeza dengan cara yang biasa, DevScript boleh menyatakan tindakan yang kompleks dengan ringkas tanpa perlu mengeluarkan keseluruhan keadaan selepas tindakan berlaku (kod asal), menjadikan model lebih cekap dan boleh ditafsir.
Sebagai contoh, penamaan semula boleh mengubah suai berbilang tempat dalam fail kod, tetapi model hanya perlu meramalkan satu operasi penamaan semula.
DIDACT berjalan dengan baik pada tugas tambahan peribadi Sebagai contoh, contoh berikut menunjukkan kod DIDACT selepas fungsi selesai. Untuk kerja pembersihan, mula-mula masukkan ulasan akhir penyemak kod (ditandakan manusia dalam gambar), dan kemudian ramalkan operasi yang diperlukan untuk menyelesaikan masalah yang dibangkitkan dalam ulasan (ditunjukkan dengan perbezaan).
Memandangkan coretan awal kod dan ulasan yang dilampirkan oleh penyemak kod pada coretan, tugas Pra-Serah Pembersihan DIDACT menghasilkan operasi Pengeditan (sisipan dan pemadaman teks)
Sifat multimodal DIDACT juga menjana beberapa tingkah laku baharu yang muncul apabila skala meningkat, salah satunya ialah peningkatan sejarah (peningkatan sejarah), keupayaan ini boleh didayakan melalui gesaan. Mengetahui perkara yang telah dilakukan oleh pembangun baru-baru ini membolehkan model meramalkan perkara yang perlu dilakukan oleh pembangun dengan lebih baik.
Demonstrasi penyiapan kod dipertingkatkan sejarah
Tugas penyiapan kod yang dipertingkatkan sejarah boleh menunjukkan keupayaan ini Dalam contoh di atas, pembangun menambah parameter fungsi baharu (1) dan mengalihkan kursor ke dalam dokumen (2). Berdasarkan sejarah penyuntingan pembangun dan kedudukan kursor, model ini dapat meramalkan kemasukan docstring dengan tepat untuk parameter baharu dan melengkapkan langkah ketiga.
Dalam tugas ramalan suntingan ditambah sejarah yang lebih sukar, model dapat memilih lokasi suntingan seterusnya dengan cara yang konsisten dari segi sejarah.
Demo ramalan pengeditan ke atas berbilang lelaran berantai
Jika pembangun mengalih keluar parameter fungsi (1), model boleh meramalkan kemas kini dengan docstring (2) dengan betul yang mengalih keluar parameter berdasarkan sejarah (tanpa pembangun manusia perlu meletakkan kursor secara manual di sana), dan dalam sintaks dengan betul (dan boleh dikatakan secara semantik) kemas kini pernyataan dalam fungsi (3).
Dengan sejarah, model boleh memutuskan dengan jelas cara meneruskan "proses kod penyuntingan" dengan betul, manakala tanpa sejarah, model tidak mempunyai cara untuk mengetahui bahawa parameter fungsi yang hilang adalah disengajakan ( Oleh kerana pembangun melakukan pengeditan yang lebih lama untuk mengalih keluar parameter) atau adakah ia situasi yang tidak dijangka (model harus menambah parameter semula untuk menyelesaikan masalah).
Selain itu, model juga boleh menyelesaikan lebih banyak tugas, seperti bermula dari fail kosong dan memerlukan model untuk terus meramalkan operasi penyuntingan seterusnya sehingga kod lengkap ditulis dokumen.
Paling penting, model ini membantu dalam menulis kod dengan cara langkah demi langkah yang semulajadi untuk pembangun:
Dimulakan dengan mencipta rangka kerja yang lengkap dengan import, bendera dan fungsi utama asas, kemudian secara beransur-ansur menambah fungsi baharu, seperti membaca dan menulis hasil daripada fail, dan menambah penapisan baris tertentu berdasarkan Fungsi ungkapan biasa yang dibekalkan oleh pengguna.
DIDACT mengubah proses pembangunan perisian Google kepada tunjuk cara latihan untuk pembantu pembangun pembelajaran mesin dan menggunakan data demo ini untuk melatih model secara langkah demi langkah Bina kod, berinteraksi dengan alatan dan penyemak kod.
Kaedah DIDACT melengkapkan pencapaian hebat model bahasa berskala besar daripada Google dan syarikat lain untuk mengurangkan beban kerja, meningkatkan produktiviti dan meningkatkan kualiti kerja jurutera perisian.
Atas ialah kandungan terperinci Google mendedahkan rangka kerja 'kejuruteraan perisian AI+' sendiri DIDACT: Beribu-ribu pembangun telah mengujinya secara dalaman, dan mereka semua mengatakan ia sangat produktif selepas menggunakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!