Satuan 12 / 12

Batasan: Keamanan, Privasi, Lisensi dan Etika

Keuntungan:

  • Kemampuan untuk mengenali dan memverifikasi bahwa AI dapat menghasilkan API palsu, kode tidak aman, dan konten berhak cipta
  • Kemampuan untuk mengelola penggunaan AI dalam batas kerahasiaan kode sumber, data pribadi, dan kebijakan perusahaan
  • Memahami bahwa tanggung jawab utama atas kepatuhan lisensi, keamanan, dan etika tetap berada di tangan teknisi.

Ujian Modul

1. Sebagai seorang insinyur komputer, ketika bekerja dengan alat pembuat kode AI, tanggung jawab utama manakah yang harus selalu berada di tangan manusia?

  • A) Persetujuan akhir atas kebenaran, keamanan, dan peninjauan serta pengujian kode yang dimasukkan ke dalam produksi ✔
  • B) Membuat kerangka kode pertama untuk suatu fungsi
  • C) Menghasilkan daftar saran untuk nama variabel
  • D) Mempersiapkan draf teks untuk komentar kode

Deskripsi: AI; Ini dapat mempercepat tugas-tugas seperti kerangka kode, draf pengujian, dan dokumentasi. Namun, merupakan tanggung jawab insinyur untuk meninjau, menguji dan menyetujui kode yang dihasilkan untuk memastikan bahwa kode tersebut benar, aman dan sesuai dengan persyaratan, dan untuk memasukkannya ke dalam produksi; hal ini tidak dapat didelegasikan kepada AI tanpa verifikasi independen.

2. AI telah menghasilkan suatu fungsi untuk Anda dan tampaknya berfungsi dengan baik. Apa langkah terbaik sebelum memasukkannya ke dalam produksi?

  • A) Karena fungsinya tampaknya berfungsi, langsung masukkan ke dalam produksi
  • B) Verifikasi perilaku dengan menulis dan menjalankan pengujian unit kecil yang mencakup kasus tepi ✔
  • C) Hanya melihat jumlah baris fungsinya
  • D) Membuat nama fungsi lebih deskriptif

Penjelasan: Tampil bekerja bukan berarti benar. Menulis dan menjalankan pengujian unit kecil yang mencakup kasus tepi seperti masukan kosong, nol, negatif, nilai sangat besar, dan ketidakcocokan memverifikasi perilaku fungsi sebenarnya tanpa memindahkannya ke lingkungan langsung.

3. AI menyarankan metode yang disebut 'array.sortStable()' yang tidak ada dalam bahasa Anda dan menjelaskannya dengan jelas. Apa tindakan pertama yang benar yang harus dilakukan?

  • A) Menggunakan metode secara langsung karena AI terlihat percaya diri
  • B) Tentukan sendiri metodenya dan gunakan namanya dengan tepat
  • C) Memverifikasi keberadaan metode dari dokumentasi resmi bahasa/perpustakaan ✔
  • D) Tutup peringatan kompiler dan lanjutkan

Penjelasan: Model bahasa mungkin dapat membuat nama perpustakaan, paket, atau metode yang sebenarnya tidak ada (berhalusinasi). Setiap API yang diusulkan harus diverifikasi kata demi kata berdasarkan dokumentasi resmi dan terkini dari bahasa atau perpustakaan tersebut; Jika tidak disertakan dalam dokumen, sebaiknya tidak digunakan.

4. Anda ingin menempelkan kode sumber rahasia perusahaan Anda dan kunci API yang tertanam ke dalam alat AI publik dan meminta bantuan. Pendekatan manakah yang paling benar?

  • A) Menempelkan kode apa adanya dengan kunci API untuk kecepatan
  • B) Cukup dengan menghapus nama perusahaan dan membagikan yang lainnya
  • C) Membagikan kode dan kemudian meminta AI untuk menghapusnya
  • D) Menghapus rahasia dan logika tersembunyi dan mereduksi masalah menjadi contoh yang representatif atau menggunakan alat institusional ✔

Deskripsi: Kode sumber rahasia dan kredensial (kunci API, kata sandi, string koneksi); Ini berisiko dalam hal rahasia dan keamanan perusahaan. Penting untuk menghilangkan rahasia dan logika bisnis yang tersembunyi dan mengurangi masalah menjadi contoh anonim/representatif atau menggunakan alat berbagi perusahaan/non-data.

5. AI mengatakan kompleksitas fungsi pencarian yang ditulisnya adalah O(n); tetapi ada dua loop bersarang dalam kode. Apa perilaku rekayasa yang benar?

  • A) Analisis kode secara manual dan ekstrak sendiri kompleksitasnya dan ukur jika perlu ✔
  • B) Terima O(n) dan lanjutkan karena AI berkata
  • C) Dengan asumsi jumlah siklus tidak ada hubungannya dengan kinerja
  • D) Ubah saja nama fungsinya

Penjelasan: Kompleksitas waktu (Big-O) menunjukkan bagaimana jumlah operasi meningkat seiring bertambahnya input. Dua loop bersarang biasanya berarti O(n^2). Klaim kompleksitas AI harus diverifikasi dengan menganalisis kode secara manual dan mengukur dengan meningkatkan masukan jika diperlukan; Mengandalkan klaim menghasilkan asumsi kinerja yang salah.

6. Kode yang dihasilkan AI yang secara langsung memasukkan input pengguna ke dalam kueri SQL dengan menggabungkan teks. Apa masalah utama dan solusi yang tepat di sini?

  • A) Tidak masalah; penggabungan teks adalah metode tercepat
  • B) Ada risiko injeksi SQL; Kueri berparameter (pernyataan yang disiapkan) yang memisahkan masukan harus digunakan ✔
  • C) Mengonversi kueri menjadi huruf besar saja sudah cukup
  • D) Menulis kueri lebih pendek akan menyelesaikan masalah

Deskripsi: Menambahkan input pengguna langsung ke teks kueri menciptakan kerentanan injeksi SQL; Penyerang dapat mengubah kueri dengan masukan. Solusi yang tepat adalah dengan menggunakan kueri berparameter (pernyataan yang disiapkan) yang memisahkan input dari teks kueri. Ini adalah salah satu kesalahan keamanan yang paling sering diabaikan dalam kode AI.

7. Anda memiliki waktu terbatas saat meninjau sepotong kode yang dihasilkan oleh AI. Isu mana yang sebaiknya diprioritaskan?

  • A) Hanya detail format seperti indentasi dan spasi
  • B) Hanya panjang nama variabel
  • C) Kebenaran logis, kerentanan dan perilaku kasus tepi ✔
  • D) Hanya jumlah baris file

Deskripsi: Risiko tertinggi dalam peninjauan kode; Ini adalah masalah yang menyebabkan kerugian serius, seperti kesalahan logika, kerentanan keamanan, dan kebocoran informasi rahasia. Masalah format dan gaya diperbaiki dengan alat otomatis; Perhatian utama manusia harus dicurahkan pada akurasi, keamanan, dan perilaku edge case.

8. Anda ingin AI memecahkan bug. Masukan mana yang paling membantu AI menemukan akar masalahnya?

  • A) Hanya mengatakan 'kode tidak berfungsi, perbaiki'
  • B) Beri saja nama filenya
  • C) Hanya mengatakan hasil yang diharapkan, tanpa teks kesalahan
  • D) Berikan pesan kesalahan lengkap, pelacakan tumpukan, kode yang relevan, dan contoh reproduksi minimum ✔

Penjelasan: Untuk proses debug yang efektif, AI perlu memberikan pesan kesalahan lengkap, pelacakan tumpukan, cuplikan kode yang relevan, dan sampel terkecil yang dapat direproduksi yang menghasilkan kesalahan. Pernyataan samar 'tidak berhasil' memaksa AI untuk menebak dan membuat rekomendasi menyeluruh.

9. Semua pengujian unit yang dihasilkan oleh AI lulus pada percobaan pertama. Risiko manakah yang tidak boleh diabaikan dalam situasi ini?

  • A) Pengujian dapat mengkonfirmasi status kode saat ini tetapi tidak mengkonfirmasi perilaku aktual/yang diharapkan ✔
  • B) Kode ini benar-benar bebas dari kesalahan karena semua tes lulus
  • C) Kualitas terjamin jika jumlah pengujiannya banyak
  • D) Lulus tes membuktikan bahwa cakupannya lengkap

Penjelasan: Pengujian mungkin memvalidasi perilaku kode saat ini (mungkin bermasalah), bukan perilaku yang dimaksudkan; atau mungkin tidak mengandung pernyataan yang berarti dan selalu lolos. Untuk melihat bahwa tes tersebut memeriksa ekspektasi sebenarnya, perlu untuk secara sadar memecahkan kode dan memastikan bahwa tes tersebut berubah menjadi merah.

10. AI telah membuatkan Anda blok kode siap pakai untuk suatu masalah. Anda menduga bahwa kode tersebut mungkin telah disalin kata demi kata dari proyek sumber terbuka. Pendekatan manakah yang tepat?

  • A) Menggunakan lisensi tanpa berpikir panjang karena kodenya berfungsi
  • B) Memeriksa sumber/lisensi kode, menulis ulang jika perlu dan mematuhi kebijakan perusahaan ✔
  • C) Ubah saja nama variabel dan anggap masalahnya terpecahkan
  • D) Berasumsi bahwa perizinan hanya menyangkut perusahaan besar

Deskripsi: AI dapat mereproduksi kode berhak cipta/berlisensi dalam data pelatihan kata demi kata. Pelanggaran lisensi pada produk komersial menimbulkan risiko hukum yang serius. Penting untuk memeriksa sumber dan lisensi kode, menulis ulang dengan kata-kata Anda sendiri jika perlu, dan mematuhi kebijakan perizinan institusi.

11. AI menyarankan agar Anda segera beralih ke arsitektur layanan mikro untuk proyek Anda. Pendekatan teknik apa yang paling tepat ketika mengevaluasi proposal ini?

  • A) Segera bagi seluruh sistem menjadi layanan mikro karena disarankan oleh AI
  • B) Dengan asumsi layanan mikro selalu merupakan pilihan terbaik
  • C) Evaluasi proposal sesuai dengan kebutuhan nyata, beban, struktur tim dan keseimbangan plus-minus ✔
  • D) Pengambilan keputusan hanya berdasarkan popularitas arsitektur

Penjelasan: Keputusan arsitektur bergantung pada konteks; Layanan mikro menambah nilai dalam kebutuhan seperti skala dan pemisahan tim, namun menimbulkan biaya seperti kompleksitas operasional, debugging terdistribusi, dan biaya. Mengevaluasi usulan berdasarkan kebutuhan aktual, beban, struktur tim serta keseimbangan pro dan kontra; Nasihat umum tidak boleh diikuti begitu saja.

12. AI menghasilkan dokumentasi README dan API yang disederhanakan untuk kode Anda; tetapi beberapa titik akhir dan parameter tidak cocok dengan kode. Apa perilaku yang benar?

  • A) Menerbitkan dokumen apa adanya karena teksnya lancar
  • B) Perbaiki saja judulnya dan biarkan sisanya apa adanya
  • C) Menambahkan dokumen ke gudang tanpa membacanya
  • D) Bandingkan setiap titik akhir dan parameter dengan kode sebenarnya dan perbaiki yang tidak cocok ✔

Deskripsi: Dokumentasi harus mencerminkan kode sebenarnya secara akurat; Dokumen yang salah mendorong pengembang yang membacanya untuk menggunakannya secara tidak benar. Setiap titik akhir, parameter, dan nilai kembalian harus diverifikasi terhadap kode sebenarnya, dan setiap ketidakcocokan harus diperbaiki.

13. Pendekatan masukan manakah yang tepat untuk menghasilkan keluaran dengan kualitas terbaik saat meminta kode dari AI?

  • A) Dengan jelas menyediakan bahasa/versi, kontrak input-output, batasan dan situasi kesalahan ✔
  • B) Hanya mengatakan 'tuliskan saya beberapa kode yang berfungsi'
  • C) Tulis permintaan terpendek tanpa memberikan konteks apa pun
  • D) Tinggal tentukan berapa baris kode yang akan ada

Deskripsi: Prompt yang kuat; Ini mencakup bahasa dan versi yang digunakan, kontrak input-output, batasan performa dan gaya, kondisi kesalahan, dan instruksi 'tetap hanya dalam cakupan yang diminta'. Permintaan 'tuliskan saya fungsi' tanpa konteks bersifat umum dan sering kali menghasilkan kode yang tidak sesuai.

14. AI membuat konfigurasi untuk pipeline CI/CD (integrasi/penerapan berkelanjutan) Anda dan menyematkan kata sandi database di dalamnya dalam teks biasa. Perbaikan manakah yang benar?

  • A) Membiarkan kata sandi sebagai teks biasa karena berfungsi
  • B) Memindahkan rahasia melalui variabel lingkungan atau alat manajemen rahasia, bukan memasukkan teks biasa ke dalam repositori ✔
  • C) Pindahkan kata sandi hanya ke baris komentar
  • D) Mengubah nama file menyelesaikan masalah

Penjelasan: Menulis rahasia seperti kata sandi dan kunci dalam teks biasa ke file konfigurasi menimbulkan risiko kebocoran kontrol versi dan akses tidak sah. Rahasia; Itu harus dicegah oleh variabel lingkungan atau manajer rahasia khusus, dan tidak boleh masuk ke repositori dalam teks biasa.