1. 程式人生 > >在工作中如何提高開發工作效率

在工作中如何提高開發工作效率

1.你可能會常常發現,寫了一段程式碼後,編譯程式時是一大堆的出錯 (原因:語法不熟) 
──別擔心,這是每個程式設計師必須經歷的事,這時候你就需要更大的耐心及細心,對每一行程式碼進行仔細人閱讀並改正,這個很重要,這可以培養你的理解程式碼能力,所以要常讀程式,不要等到程式執行以後才知道你的程式的結果。 
──如何避免:在寫程式碼以前,要認真的學習計算機語言的語法,如關鍵點,易錯點,易忘點。同時要自已動手寫自已的測試程式碼,而儘量不要抄別人的程式碼示例。即使抄,在學習階段也儘量不要每一行一模一樣的對著抄。而應對著程式碼示例寫有所不同的例子 
比如:在學java 知識點時,你最好建一個工程把所有的程式碼都寫到這個工程中,以便對照分析學習 

2. 你可能會常常發現,寫完一段碼後,編譯通過,可是執行起來卻出來很多邏輯上的錯誤。(原因:理解錯誤或邏輯上想錯了──提高邏輯思維和理解能力
3.拿到一個需求卻不知從那裡開始(對系統不太瞭解) 
4.常常為了一個小小的錯誤用了很長的時間,不知從那裡查,也查不出結果 
5.常常做出來的東西是有了東卻少了西(考慮不全) 
6.有時為了一個特殊功能模組的實現查了很工時間卻沒有查出結果來(備查的資料不全) 
7.有時是否要專案經理叫你做東,你做了完全沒有必要的西?(溝通不及時) 
8.有時為了能提前完成某一個任務,加班到深夜,可是到了明天卻效率低下,還不如不加班(要注意休息) 
9.有時自已認為已測好了好多次,可以保證不會出錯,可是經測試人員一測試卻很多錯誤(不夠細心或測試方法有問題 

10.有時為了避免出錯,常常全比寫程式碼的時間超出兩倍用於測試(方法有誤) 
11. 有時寫好了一段程式碼給質量管理人員時卻因為程式碼不夠規範而導致重寫?(程式碼不夠規範) 
可以總結為兩大關鍵點:一是養成好的程式設計習慣,二是針對自已的工作提高自已的知識含量. 
一.  好的程式設計習慣 
1.  寫程式前打個草稿可以在心裡,最好在紙上:目的要從整體上考慮程式的實現。 
如果公司採用建模的方式,有建模工具(rose ,visio )那是最好不過的了。 
2. 注意休息,不要浪費自已的休息時間,用去了自已的時間不但會寫出的程式碼因為注意力不集中而會常常出現程式碼的質量有問題,邏輯常出錯 
3. 要善於收集相關的專業開發上的資料,以便以後能更快更好的解決問題目。提倡公司能提供內部知識勾通的工具(如知識論壇,內部即時聊天器);提倡公司內部有技術資料的共享庫,提高解決問題的能力. 

4. 提高對所寫的模組的相關全域性把握能力,在寫程式中要最好先詳細設計後再發布. 
5. 要學會與他人溝通如非工程師,學會溝通的不同方式,提高溝通的效率。 
二.  不同的目標不同的知識重點 
(一)目標:程式設計師 
職責:根據詳細設計文件,或根據高階程式設計師的設計進行相關的開發。 
1.  要學會看相關的需求文件及詳細設計文件。 
注意:你必須要通過閱讀這些文件把握住其中的重點,關鍵點,相關易漏 
2.  如果公司裡會用UML來相互的溝通,這時你必須要深刻理解UML 的相關知識,一定要注意千萬不要對UML圖一知半解的情況下,就著寫程式碼,那樣會錯的很慘。 
3.  學好對應的計算機語言的基礎知識,如:程式的語法,關鍵點,易錯點,對應的出錯如何出理,如何才能把對就的程式寫的鍵壯一些 
4.  如果用到資料庫的內容,在學會sql的前提下,儘量學會資料庫原理中的相關sql內容, 當然為了提高查詢的能力也可以增加一點 
5.  如果用到面向對像的語言那最好學點相關的設計模式,這樣的可以增加程式碼的擴充套件性,及可維護性等,能夠理解詳細設計中的模組間的設計原則這個也可以提高對模組的內容編寫的正確性. 
6.  你一定要學會公司內部的通用的編碼規範。 
7.  學習如何做單元測試比較好.必須要熟悉相關的單元測試工具. 
8.  要不斷的對相關知識進行總結,同時也要必須把相關的資料進行整理和學習,在學習過後的資料中你可以在遇到問題時更快的找到問題的答題。 
9.  在開發你必須記錄下大家常出錯的地方及大家的解決方法,這個對你以後錯誤的避免有很大的作用 
10.  在寫程式碼中時必須把上面寫過程式碼記在心裡,這樣就可以養成習慣,提高程式碼的速度 
11.  對資料庫操作時,要儘量共用Connection,並小用以減少Connection的數量 
(二)目標:高階程式設計師 
職責:對需求文件進行系統相關模組的詳細設計,並負責對程式設計師的支援及指導和相關核心模組的編寫所以不但要學會相關程式設計師要的知識,同時還要學會難度比較大的知識。 
1. 程式設計師的知識,如設計模式你一定要不是簡單的看要懂,你還要應用設計模式對相應的模組進行相關的詳細設計。 
2. 要學好相關詳細設計的工具做的有的放矢,這樣可以更好提高對自已的設計的表達 
3. 為了提高系統的執行效率會運用到 
a.  資料庫的表結構如何建才能使應用的要查詢sql 更快。這時可要認真認真的學習一樣資料庫原理,千萬不要以為採用資料庫的正規化越高系統的執行效率會越好,有時候適當的表冗餘可以大幅度的提高系統的查詢效率.  同時適當的建索引,檢視,儲存過程也是提高系統對資料庫的查詢的效率之一 
b.   學習多執行緒的程式設計,不過千萬不要以為執行緒數越多執行的速度會越快,一般執行緒的數量超過一定的數量後,系統的執行速度反而會變慢。 
為了應用好多執行緒,作業系統這本書也要關於同步及相關程序和執行緒的知識必不可少。 
c.  設計好的一程式的好的演算法,可要比起解一道同一複雜的數學題,要難的多,所以要在學好的相關數學的知識上(如線性代數,離散數學,概率論,數理統計)。更要深入計算方法,及資料結構,讓數學問題用計算機來解決。 
4.為了讓系統設計的更加的可擴充套件性,穩定性,設計模式和軟體工程可是不能少的東西。所以必須把設計模式用於模式級的設計. 
5. 如果公司採用的是Rose (UML)進行設計的話,你對於UML 的理解一定要非常的準確,同時你要跟小組中的程式之間進行充分的UML概念上及對應用例圖,型別圖,物件圖,協作圖的意思多寫一些註釋加深大家對你的設計上的理解。 
(三)目標:系統分析員 
職責:做好與客戶之間的關係,同時對客戶的需求要正確的理解,要選擇合適的開發技術,同時做好與客戶間溝通交流,學會說服對方。 
1.學會對客戶的溝通:要正確理解客戶的需求同時要保證相互之間的溝通順暢。 
2.對了解來的需求要能用筆正確的描述下來,並能很好的傳敘給其他人。這時要學會用如ROSE 等的軟體建模的工具。和powerdesign等的資料庫建模工具。和相關的UML,資料流程圖及相關的內容的知識。 
3.不但要全面的瞭解客戶的需求而且還要對需求進行未來的可能的改變要有相當多的瞭解。 
4.全面的瞭解客戶的需求後,要選擇合適的相關技術用於開發,: 
這時要學習各種知識 
a.  先擇資料庫:db2,infomix ,oracle ,sql server,mysql 的優缺點,可以從中選擇最適合的資料庫及理由。 
b. 設計資料庫:要紮實在資料庫的理論(資料庫原理,資料庫系統設計)及相關資料庫設計經驗,要儘量多的分析過去資料庫設計,分析這麼設計資料庫的好處。這時可能要用到 powerdesign等工具。 
c. 寫需求說明文件和概要設計文件,同時要學會要分析相關需求說明文件的需要的內容的相關知識,如人員工時的計算方法, 一般會用project 來分析相關的專案的內容。 
d. 選擇合適的程式語言及相關的架構,一般主流的架構是 J2EE和.net的相應的優點及它們之間的結合,如採用soap xml進行相關的結合,或用java-com 橋 進行相關的功能的呼叫。和它們之間的相關語言優缺點 
e.  還要根據b/s,c/s 結構對開發的網路影響的相關內容採取 
5. 學會說服對方,畢竟客戶都不是個個是軟體專家,他們的選擇有時未必是正確的所以學會說服對方,是系統分析員必備的能力條件.  
三.例:java 程式設計師的知識結構及學習流程: 
(一) 學習相關工作必須的知識 
1.Java 語言的基礎(推薦書:《 java 程式設計思想》)關鍵: 
(1.java 面向物件及對應的程式現實 
(2.java  多線 
(3.java  網路 socket 
(4.應用介面 
2.學會用智慧整合開發工具jbuilder,eclipse等一種,根據資料裡的內容,自已寫與例程類似的程式碼,但注意不要直接抄它,一定要自已寫。 
同時最好寫到一個工程中以便對比。 
3.如果用b/s結構要學習jsp的知識(推薦書:《 JSP 2.0技術手冊 》) 
關鍵: 
(1. 介面處理: 
a . HTML——超文字標誌語言:用於顯示頁面如:超文字連結, 表格,各種標誌等。 
b. CSS———層疊樣式表:控制正文外觀的一組格式.用於美化HTML頁面。 
c. javaScript—嵌入HTML頁面瀏覽器來執行的指令碼語言:讓頁面可以根據使用者的操作或事先設定等在客戶端進行動態變化,而且不需傳回伺服器。比如: 對錶單輸入的正確性做客戶端驗證. 
(2.jsp元素:如java程式碼寫法,對應標誌---jsp:include,jsp:useBean,jsp:setProperty,jsp:getProperty等.jsp的幾大對 
(3.  javaBean及其在jsp 中的呼叫和相關應用. 
(4. 其他技術: 
  a. 如何操作資料庫—用jdbc(可能要補充一些資料庫的知識,如oracle ,sql server,包括如何寫高效率的查詢sql,儲存過程等) , 
  b. 如何傳送email—用javaMail, 
  c. 如何學習如何用實現檔案的上傳下載,如果操作文 
  d. 如何操作xml  --用jdom 及 jaxp(這時有必要學習一下xml 的語法如 dtd等) 
  e. 如何遠端方法呼叫—用 rm 
  f. 如何進行訊息服務 ---用 jm 
5.再有些公司會用到 J2EE 的架構如 EJB 作為業務邏輯 
(1.EJB中要分清 
(2. struts  MVC 
(3. Hibernate 操作資料 
6.最好學習一下UML 學用Rose建模