Benshark terlibat dalam pengembangan program pada Januari 2003 dan telah bekerja selama 19 bulan. Di antara mereka, pekerjaan itu sebentar -sebentar adalah karena hal -hal buruk yang dikembangkan oleh kurangnya pengalaman seseorang, yang menyebabkan kesulitan pengembaraan dan pekerjaan! Sekarang Bensha telah mencapai kemampuan seorang programmer yang memenuhi syarat.
Secara umum, tugas pengembangan untuk programmer yang baru lulus hanyalah modul dalam suatu subproyject dalam suatu proyek. Modul memiliki hampir 5-6 formulir dengan volume kode sekitar 2.000 baris. Faktanya, jumlah tugas ini tidak sebagus desain kelulusan, jadi harus dapat diselesaikan, tetapi waktu pengembangan relatif kecil, sekitar 6-12 hari kerja, daripada 1-2 bulan di sekolah, dan Ada juga teman sekelas untuk membantu. Jadi, mahir dalam alat pengembangan pengembang, sintaks, kerangka kerja dan perpustakaan. Selain itu, Anda dapat memahami mekanisme operasi platform sistem dan persyaratan algoritma dan tahu apa yang sedang terjadi. Diperlukan bahwa programmer dapat bekerja secara aktif daripada secara pasif. Dapat mengambil inisiatif untuk menemukan informasi, meminta kolega, dan meminta kolega untuk memberikan bantuan dengan tugas -tugas yang tidak diketahui.
Hiu ini terutama terlibat dalam tugas pengembangan meja depan sistem basis data, sehingga terutama menggunakan komponen basis data umum untuk menggambarkan bahwa tugas -tugas meja depan sistem data adalah yang terberat dan selalu dikritik oleh pengguna.
Secara umum, langkah -langkah pengembangan hiu ini adalah:
0 Memahami persyaratan tugas
1. Menerapkan fungsi terlebih dahulu
2. Penanganan pengecualian fungsi menyelesaikan
3. Mencapai keramahan pengguna
4 menyelesaikan keramahan pengguna
Masalah kinerja akan diserahkan kepada pengguna untuk menyelesaikannya jika volume data besar di masa depan! Saat ini, penting untuk mengejar tugas. Komponen berikut biasanya digunakan
TEDIT TCOMBOBOX TLISTVIEW TTREEVIEW TCHECKLISTBOX TLABEL TDBGRID TIMAGE TMEMO TBUTTON TDBCHART TPANEL TMASKEDIT TDATETIMEPICKER TPAGECONTROL
1. Gaya kode hanya selama wawancara Anda akan berdampak pada pewawancara. . Tidak perlu memaksa hal -hal, gaya, dll. Karena Anda menggunakan alat Borland, yang terbaik adalah mengikuti gaya Borland.
2 Pengaturan Atribut Komponen
1 Tlabel: Autosize = Flase;
2 TEDIT Atur Nilai MaxLength Nilai Metode Input Default
3 tcomboBox jika hanya seleksi yang diizinkan, gaya: = csdropdownlist;
Saat menambahkan data ke itemnya
Fontcombo-> item-> beginupdate ();
Fontcombo-> item-> add ("xxx");
Fontcombo-> item-> endupdate ();
Tidak peduli berapa banyak data TListView ttreeview tdbgird memiliki fungsi pemblokiran tampilan data yang serupa.
4 Ttreeview Jika Anda tidak memodifikasi teks node, Anda perlu readlyly Rowselect = true;
5 TlistView Viewstyle vsreportreadonly Rowselect = true; jika tidak dimodifikasi
6 tpagecontrol pagecontrol1.activePageIndex: = 0;
7 TDATETIMEPICKER DATEFORMAT: = dflong Jika waktu disalin untuk diedit
Edit.Text: = DateTimEformate ("yyyy-mm-dd", datetimePicker1.date)
8 tbutton untuk mengatur Batalkan Petunjuk ModalResult
3 Komponen dengan tata letak antarmuka yang sama harus ditempatkan bersama dan selaras dengan lingkungan, ke atas, ke kiri dan kanan. wadah orang tua, dan akhirnya memberikannya kepada orang -orang.
界面布局细则
1):完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。
2):完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。
3): Bagilah blok lokal antarmuka sesuai dengan fungsi, lampirkannya dengan kotak bingkai, dan memiliki deskripsi atau judul fungsi.
4): Antarmuka harus mendukung fungsi tombol penelusuran otomatis keyboard, yaitu fungsi switching otomatis dari menekan tombol tab.
5): Kontrol yang pertama -tama harus masuk dan informasi penting pada antarmuka harus berada di depan urutan tab, dan juga harus ditempatkan pada posisi yang lebih mencolok di jendela.
6): Yang terbaik untuk tidak melebihi 10 kontrol pada antarmuka yang sama.
7): Antarmuka pagination harus mendukung switching cepat antar halaman, dan tab pintas kombinasi yang biasa digunakan Ctrl+tab
8): Tombol default harus mendukung operasi Enter dan pilih, yaitu, setelah menekan ENTER, operasi yang sesuai dari tombol default dieksekusi secara otomatis.
9): Setelah kontrol yang dapat ditulis mendeteksi input ilegal, deskripsi harus diberikan dan fokusnya dapat diperoleh secara otomatis.
10): Urutan kunci tab dan urutan kontrol harus konsisten.
11): Kotak centang dan kotak opsi diatur satu demi satu sesuai dengan bagian bawah probabilitas seleksi.
12): Centang kotak dan kotak opsi harus memiliki opsi default dan pemilihan tab dukungan.
13): Ketika jumlah opsi sama, gunakan kotak opsi alih-alih kotak daftar drop-down.
14):界面空间较小时使用下拉框而不用选项框。
15):选项数叫少时使用选项框,相反使用下拉列表框。
16): Perangkat lunak dengan profesionalisme yang kuat harus menggunakan istilah profesional yang relevan, sedangkan antarmuka universal menganjurkan penggunaan kata -kata universal.
4 kode
1 Inspeksi Fungsional: Periksa apakah semua fungsi dan pembatasan yang diperlukan oleh persyaratan diterapkan
2 Pemeriksaan Batas: Melakukan Pemeriksaan Batas pada Fungsi seperti Input dari berbagai tipe data atau data dari berbagai rentang
3 Pemeriksaan Akses Ilegal: Uji apakah ada kesalahan akses memori ilegal. Pesan kesalahan referensi untuk menentukan apakah itu milik jenis kesalahan ini serupa:
"... tidak ditemukan", "Daftar indeks di luar batas ...", "Pelanggaran akses di alamat ..."
4: Panduan Informasi Prompt: Masukkan karakter apa pun, termasuk kotak edit, kotak tabel, dan kotak pilihan, termasuk karakter Inggris dan Cina, uji apakah kesalahan akses ilegal akan disebabkan, dan apakah karakter yang tidak dapat diterima akan digunakan dan tips untuk dipandu.
5 Inspeksi Berbasis Unit: Periksa apakah deskripsi header unit di unit ini, deskripsi setiap fungsi, dan deskripsi anotasi benar. Instruksi Kutipan: Apakah ada kutipan tambahan
// Khususnya, jika file header C ++ berisi tidak perlu termasuk, masalah yang tidak perlu akan terjadi untuk unit lain.
Bahkan, ini disebut tes kerah putih dan konten uji unit. Jika Anda ingin menulis kode tes sesuai dengan buku tes, saya pikir setiap pengembang tidak menginginkannya! Tapi itu tidak akan berhasil, mudah untuk membuat kesalahan dan membuatnya sulit untuk disampaikan. Oleh karena itu, sangat penting untuk memahami metode pengujian, metode ini
Ada perkenalan untuk rekayasa perangkat lunak di universitas, dan perancang perangkat lunak juga harus diambil. Setiap kali Anda menulis program, Anda akan berhati -hati untuk mempertimbangkan kesalahan apa yang mungkin terjadi dalam situasi yang berbeda! Meskipun akankah variabel yang akan digunakan saat mengimplementasikan fungsi itu kosong? Apakah nilainya valid?是否溢出越界? Apakah Anda menghapus ruang variabel? Apakah ini persyaratan kasus? Apakah ada ruang di depan dan sesudah?
Penilaian ini pertama -tama harus ditulis dalam fungsi dan awal proses!
if (treeview-> dipilih == null) // Apakah variabel akan kosong?
then return ;
std :: vecotr <int> intarray; // apakah itu meluap?
if (intarray <= 0)
Lalu kembali;
if (i <listview.items-> count) // apakah itu meluap dan melintasi batas?
Edit-> text = listView-> item-item [i] .caption;
Edit-> text.trim (); // Apakah ada ruang sebelum dan sesudah?
char a [10];
memcpy (a, "/0", 10); // apakah Anda menghapus ruang variabel?
A [9] = 'I';
// Orang yang menggunakan fungsi Anda menulis loop untuk memanggil variabel fungsi Anda akan membawa nilai terakhir caller's judgment conditions will lose their effect!
if(Name.Trim() ==”DELPHI”) then Name=”BCB”; 值是否有效?
switch() { case 要Break; 要default: ;}
5 默认数据,提示,定位和友好性
Ketika antarmuka ditampilkan, data akan ditampilkan secara default.
ComboBox1.ItemIndex: = 0;
Secara umum, penambahan dan modifikasi baru akan diedit dalam satu pasangan menggunakan satu antarmuka. Ketika penambahan baru selesai, semua komponen harus diposisikan pada catatan yang baru ditambahkan, dan hal yang sama berlaku untuk modifikasi.当删除时要定位到下一条记录。
ListView 和DBGird 要具有排序的功能单击标题可按数字字母日期升/降
ListView 和DBGird 当被选定数据焦点被移动按钮上作动作时要显示当前选择的数据是哪行! Lai
void __fastcall tfrmGather760 :: lvdatacustomdrawitem (tcustomlistview *pengirim, tlistitem *item, status tcustomdrawstate, bool & defaultdraw) // kode ini akan menarik bagian bawah kuning yang dipilih
{
if(Sender->Selected !=NULL)
if (item-> index == pengirim-> indeks yang dipilih->)
{
Pengirim-> canvas-> sikat-> color = clyellow;
Pengirim-> canvas-> font-> color = clblue;
}
}
Untuk operasi yang biasanya melebihi 2 detik, harus dalam fungsi.
Tcursor oldcursor;
Oldcursor = screen-> kursor;
Layar-> kursor = crsqlwait;
mencoba{ . . . . . . } __ Akhirnya {screen-> kursor = oldcursor;}
Prosedur TFORM1.FormKeyDown (pengirim: TOBJEKS; var Key: Word; Shift: TshiftState);
Mulai
if (shift = []) dan (key = vk_return) lalu // ganti tombol tab dengan enter
Lakukan (wm_nextdlgctl, 0, 0);
Jika Key = VK_NEXT maka // Tekan Pageup Pagedown untuk membuat halaman sakelar TPAGECONTROL
Mulai
Jika pageControl.activePageIndex = pageControl.pagecount - 1 lalu
Pagecontrol.activePageIndex: = 0
kalau tidak
Pagecontrol.activePageIndex: = pageControl.activePageIndex + 1;
akhir
lain jika kunci = vk_prior lalu
Mulai
if PageControl.ActivePageIndex = 0 then
Pagecontrol.activePageIndex: = pageControl.pagecount - 1
kalau tidak
Pagecontrol.activePageIndex: = pageControl.activePageIndex - 1;
akhir;
akhir;
akhir.
Pertukaran 6 tombol
当每完成一个操作动作时有些按钮要变成无效状态,在什么情况下又恢复有效。 Meskipun hanya ada satu paragraf, jika tidak ditetapkan tidak efektif, itu akan sering menyebabkan berbagai kesalahan fatal! Karena Anda tidak dapat memprediksi bagaimana pengguna akan mengoperasikan perangkat lunak Anda, Anda dapat menggunakan Rose untuk menggambar diagram status atau menggunakan Word untuk mewakilinya!
7 kinerja
Ketika ada lebih dari 100 data, komponen tampilan data seperti ComboBox ListBox Treeview ListView DBGrid dimasukkan dan kueri saat masuk.
Mendukung kueri fuzzy tidak lebih dari '%xxx%'.
void __fastcall tfrmGather760 :: edt_nameKeypress (Tobject *pengirim, char & key)
{
if (key! = vk_return)
kembali;
String ssql;
ssql = "pilih nama sebagai nama, penjualan sebagai penjualan, dari karyawan";
ssql + = "where name like '%" + huruf kecil (edt_name-> text.trim ()) + "%'";
TFRMPUBDLG *pubdlg = TFRMPUBDLG baru (ini);
pubdlg-> executeQuery (SSQL);
pubdlg-> showmodal ();
.....
}
8 lainnya
Saat mengembangkan modul, unit individu dan DFM digunakan sebagai unit umum. Akan membuat struktur transmisi karakter di unit
Tablename struct
{
Nama string;
String FiledName;
......
}; // Hal utama adalah menjaga konsistensi di lebih banyak unit, terutama saat nama tabel berubah
std :: vector <string> serrorarry // prompt kesalahan terpadu
而Delphi ResoucString 段可以被资源化更容易本地化
Saat menambahkan dan memodifikasi, semua pemeriksaan data terkonsentrasi di bawah tombol Simpan
void __fastcall tform3 :: btn_saveclick (pengirim)
{
if (edt_name-> text.isempty ())
{
ShowMessage(“”);
Edit_name-> setFocus (); // fokus harus diposisikan
kembali;
}
ModalResult = MROK;
}
Sebagian besar desain kelulusan siswa di sekolah adalah database, seperti dua atau tiga lapisan. Anda harus melakukan program desain kelulusan dengan serius, dan menghabiskan uang untuk meminta teman sekelas Anda membantu Anda melakukan tes, dan mengusulkan kenyamanan yang lebih operasional. Hanya dengan lulus tes orang lain dapat ditingkatkan, dan sebagian besar kode adalah penanganan pengecualian dan ramah pengguna! Akan sangat mudah untuk menemukan perusahaan yang baik saat Anda mencari pekerjaan dengan pekerjaan Anda
Bahkan, ketika terlibat dalam pengembangan meja depan basis data, yang penting adalah menulis kode ramah pengguna!