本鲨於2003年1月份從事程序開發工作,至今有19個月之久。其中斷斷續續地工作皆因自己經驗不足開發出來的東西粗制濫造,以致於漂泊不定,就業困難!而今本鲨已達了合格程序員的能力了。
一般來說 針對剛畢業的程序員開發任務只是一個項目中子項目中的一個模塊。 一個模塊差不多有5-6個窗體代碼量約有2000行。其實這種任務量和畢業設計不上下,應該能完成得了,只是開發的時間比較少,約6-12天的工作日,而不是學校裡的1-2個月,另外還有同學幫助。所以對開發者對開發工具,語法,框架和庫熟練。另外對系統平台運行機制和算法要求能了解,知道是怎麼回事。要求對程序員能積極主動地工作,而不是被動工作。能主動去找資料,詢問同事,以及要求同事給予任務不明之處的協助。
本鲨主要從事數據庫系統前台的開發任務,因此主要使用數據庫常用組件來說明下,其實數據系統的前台的任務是最繁重而總是遭受到用戶的指責。
一般本鲨的開發步驟是:
0 了解任務需求
1先實行功能
2 解決功能的異常處理
3 實現用戶友好性
4 解決用戶友好性
性能問題就交給以後數據量大時用戶實在忍受不了再去解決!目前趕任務要緊,做數據庫前台 無非是新增 刪除 修改 保存 查詢 統計!常用到以下組件
TEdit TComboBox TListView TTreeView TCheckListBox TLabel TDBGrid TImage TMemo TButton TDBChart TPanel TMaskEdit TDateTimePicker TPageControl
1代碼風格 只有在面試的時候, 你的代碼風格才會對面試官產生影響.風格是給人看的,自然要符合美觀條件.雖然有很多公司整了一套風格標准,我覺得很無聊得事情.風格之類沒有必要強求.既然大家用的是Borland工具最好遵循Borland風格.
2組件屬性設置
1 TLabel : AutoSize = Flase;
2 TEdit 設置 MaxLength值 默認輸入法的值
3 TComboBox 如果只容許選擇的話 Style:= csDropDownList; Sorted :=True;
當向其的Items添加數據時該
FontCombo->Items->BeginUpdate(); // prevent repaints until done
FontCombo->Items->Add(“XXX”); //
FontCombo->Items->EndUpdate(); //reenable painting
這點無論數據多少 TListView TTreeView TDBGird 都有類似的數據顯示屏蔽的功能
4 TTreeView 如果不修改節點的文字 要ReadOnly RowSelect = true;
5 TListView ViewStyle vsReport要ReadOnly RowSelect = true; 如果不修改
6 TPageControl 在FormShow 或者Create事件中 PageControl1.ActivePageIndex := 0;
7 TDateTimePicker DateFormat := dfLong 如果把時間復制到Edit中時
Edit.Text := DateTimeFormate(“YYYY-MM-DD”,DateTimePicker1.Date)
8 TButton 要設置 Cancel ModalResult Hint
3 界面布局 相同的組件要放在一起 並且與周圍的對齊,上下左右對齊. 並且跟其他容器的組件對齊 ,這點很多新手忽視了!因為Borland對齊工具只能對親本容器下的 ,最後給人一整齊的美觀.
界面布局細則
1):完成相同或相近功能的按鈕用Frame框起來,常用按鈕要支持快捷方式。
2):完成同一功能或任務的元素放在集中位置,減少鼠標移動的距離。
3):按功能將界面劃分局域塊,用Frame框括起來,並要有功能說明或標題。
4):界面要支持鍵盤自動浏覽按鈕功能,即按Tab鍵的自動切換功能。
5):界面上首先應輸入的和重要信息的控件在Tab順序中應當靠前,位置也應放在窗口上較醒目的位置。
6):同一界面上的控件數最好不要超過10個,多於10個時可以考慮使用分頁界面顯示。
7):分頁界面要支持在頁面間的快捷切換,常用組合快捷鍵Ctrl+Tab
8):默認按鈕要支持Enter及選操作,即按Enter後自動執行默認按鈕對應操作。
9):可寫控件檢測到非法輸入後應給出說明並能自動獲得焦點。
10):Tab鍵的順序與控件排列順序要一直,目前流行總體從上到下,同時行間從左到右的方式。
11):復選框和選項框按選擇幾率的高底而先後排列。
12):復選框和選項框要有默認選項,並支持Tab選擇。
13):選項數相同時多用選項框而不用下拉列表框。
14):界面空間較小時使用下拉框而不用選項框。
15):選項數叫少時使用選項框,相反使用下拉列表框。
16):專業性強的軟件要使用相關的專業術語,通用性界面則提倡使用通用性詞眼。
4 代碼
1功能檢查:檢查需求所要求的功能和限制條件是否全部實現
2 界限檢查:對功能進行界限檢查 比如不同的數據類型輸入 或者是不同范圍的數據
3非法訪問檢查:測試是否存在非法內存訪問錯誤。判斷是否屬於此類錯誤的參考錯誤信息類似:
”…not found”, ”List index out of bounds…”, “Access violation at address…”
4:提示信息指導性檢查:在任何可輸入的地方,包括編輯框、表格框、選擇框隨意輸入任何字符,包括英文字符和中文字符,測試是否會引發非法訪問錯誤、對不可接受的字符是否有提示、提示指導性是否強。
5單元化檢查:檢查本單元內的 單元頭說明, 各個函數說明,注解說明是否正確。引用說明是否有多余之引用
//尤其是C++ 頭文件包含了不必要的Include 會給其他單元發生不必要的問題
其實這些叫做白合測試和單元測試內容。 如果是按照測試書而言 你要另外去寫測試的代碼,我想每個開發人員都不原意的!可不作又不行,容易出錯不好交貨的。因此非常有必要了解測試的方法,這些方法
大學的軟件工程都有介紹,而且考軟件設計師也要考的。每當寫程序時你就會留心考慮不同的情況下可能會出什麼錯誤! 雖然在實現函數時要用到的變量是否會為空?值是否有效?是否溢出越界?是否清空變量的空間?是否大小寫的要求?是否前後有空格?
這些判斷首先要寫在函數,過程的開始處!
if(TreeView->Selected ==NULL) //變量是否會為空?
then return ;
std::vecotr<int> intArray;// 是否溢出越界?
if(intArray <=0)
then return;
if( i< ListView.Items->Count) // 是否溢出越界?
Edit->Text = ListView->Items-Item[i].Caption;
Edit->Text.Trim();//是否前後有空格?
char a[10];
memcpy(a,”