亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

項目開發規范(Java)

2019-11-18 12:19:16
字體:
來源:轉載
供稿:網友

  rivershan(原作)
  
  
  前幾天整理出來的一個java的代碼書寫規范!
  
  項目開發規范
  
  一、目的
  
    對于代碼,首要要求是它必須正確,能夠按照程序員的真實思想去運行;第二個的要求是代碼必須清楚易懂,使別的程序員能夠輕易理解代碼所進行的實際工作。在軟件工程領域,源程序的風格統一標志著可維護性、可讀性,是軟件項目的一個重要組成部分。而目前還沒有成文的編碼風格文檔,以致于很多時候,程序員沒有一個共同的標準可以遵守,編碼風格各異,程序可維護性差、可讀性也很差。通過建立代碼編寫規范,形成開發小組編碼約定,提高程序的可靠性、可讀性、可修改性、可維護性、可繼續性和一致性,可以保證程序代碼的質量,繼續軟件開發成果,充分利用資源,使開發人員之間的工作成果可以共享。
  
   本文在參考業界已有的編碼風格的基礎上,描述了一個基于 JBuilder 的項目風格,力求一種統一的編程風格,并從整體編碼風格、代碼文件風格、函數編寫風格、變量風格、注釋風格等幾個方面進行闡述。(這些規范并不是一定要絕對遵守,但是一定要讓程序有良好的可讀性)
  
  
  二、整體編碼風格
  
  1、縮進
  
   縮進建議以4個空格為單位。建議在 Tools/Editor Options 中設置 Editor 頁面的Block ident為4,Tab Size 為8。預處理語句、全局數據、標題、附加說明、函數說明、標號等均頂格書寫。語句塊的"{"、"}"配對對齊,并與其前一行對齊,語句塊類的語句縮進建議每個"{"、"}"單獨占一行,便于匹對。JBuilder 中的默認方式是開始的"{"不是單獨一行,建議更改成上述格式(在 PRoject/Default Project Properties 中設置 Code Style 中選擇 Braces 為 Next line)。
  
  2、空格
  
   原則上變量、類、常量數據和函數在其類型,修飾名稱之間適當空格并據情況對齊。要害字原則上空一格,如:if ( ... ) 等。運算符的空格規定如下:"::"、"->"、"["、"]"、"++"、"--"、"~"、"!"、"+"、"-"(指正負號)、"&"(引用)等幾個運算符兩邊不加空格(其中單目運算符系指與操作數相連的一邊),其它運算符(包括大多數二目運算符和三目運算符"?:"兩邊均加一空格,在作函數定義時還可據情況多空或不空格來對齊,但在函數實現時可以不用。","運算符只在其后空一格,需對齊時也可不空或多空格。不論是否有括號,對語句行后加的注釋應用適當空格與語句隔開并盡可能對齊。個人認為此項可以依照個人習慣決定遵循與否。
  
  3、對齊
  
   原則上關系密切的行應對齊,對齊包括類型、修飾、名稱、參數等各部分對齊。另每一行的長度不應超過屏幕太多,必要時適當換行,換行時盡可能在","處或運算符處,換行后最好以運算符打頭,并且以下各行均以該語句首行縮進,但該語句仍以首行的縮進為準,即如其下一行為“{”應與首行對齊。
  
   變量定義最好通過添加空格形成對齊,同一類型的變量最好放在一起。如下例所示:
  int Value;
  int Result;
  int Length;
  DWord Size;
  DWORD BufSize;
  
  個人認為此項可以依照個人習慣決定遵循與否。
  
  4、空行
  
  不得存在無規則的空行,比如說連續十個空行。程序文件結構各部分之間空兩行,若不必要也可只空一行,各函數實現之間一般空兩行,由于每個函數還要有函數說明注釋,故通常只需空一行或不空,但對于沒有函數說明的情況至少應再空一行。對自己寫的函數,建議也加上“//------”做分隔。函數內部數據與代碼之間應空至少一行,代碼中適當處應以空行空開,建議在代碼中出現變量聲明時,在其前空一行。類中四個“p”之間至少空一行,在其中的數據與函數之間也應空行。
  
  5、注釋
  
  注釋是軟件可讀性的具體體現。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。程序注釋不能用抽象的語言,類似于"處理"、"循環"這樣的計算機抽象語言,要精確表達出程序的處理說明。例如:"計算凈需求"、"計算第一道工序的加工工時"等。避免每行程序都使用注釋,可以在一段程序的前面加一段注釋,具有明確的處理邏輯。
  
  注釋必不可少,但也不應過多,不要被動的為寫注釋而寫注釋。以下是四種必要的注釋:
  
  A. 標題、附加說明。
  
  B. 函數、類等的說明。對幾乎每個函數都應有適當的說明,通常加在函數實現之前,在沒有函數實現部分的情況下則加在函數原型前,其內容主要是函數的功能、目的、算法等說明,參數說明、返回值說明等,必要時還要有一些如非凡的軟硬件要求等說明。公用函數、公用類的聲明必須由注解說明其使用方法和設計思路,當然選擇恰當的命名格式能夠幫助你把事情解釋得更清楚。
  
  C. 在代碼不明晰或不可移植處必須有一定的說明。
  
  D. 及少量的其它注釋,如自定義變量的注釋、代碼書寫時間等。
  
   注釋有塊注釋和行注釋兩種,分別是指:"/**/"和"http://"建議對A用塊注釋,D用行注釋,B、C則視情況而定,但應統一,至少在一個單元中B類注釋形式應統一。具體對不同文件、結構的注釋會在后面具體說明。
  
  6、代碼長度
  
  對于每一個函數建議盡可能控制其代碼長度為53行左右,超過53行的代碼要重新考慮將其拆分為兩個或兩個以上的函數。函數拆分規則應該一不破壞原有算法為基礎,同時拆分出來的部分應該是可以重復利用的。對于在多個模塊或者窗體中都要用到的重復性代碼,完全可以將起獨立成為一個具備公用性質的函數,放置于一個公用模塊中。
  
  7、頁寬
  
  頁寬應該設置為80字符。源代碼一般不會超過這個寬度, 并導致無法完整顯示, 但這一設置也可以靈活調整. 在任何情況下, 超長的語句應該在一個逗號或者一個操作符后折行. 一條語句折行后, 應該比原來的語句再縮進2個字符.
  
  8、行數
  
  一般的集成編程環境下,每屏大概只能顯示不超過50行的程序,所以這個函數大概要5-6屏顯示,在某些環境下要8屏左右才能顯示完。這樣一來,無論是讀程序還是修改程序,都會有困難。因此建議把完成比較獨立功能的程序塊抽出,單獨成為一個函數。把完成相同或相近功能的程序塊抽出,獨立為一個子函數。可以發現,越是上層的函數越簡單,就是調用幾個子函數,越是底層的函數完成的越是具體的工作。這是好程序的一個標志。這樣,我們就可以在較上層函數里輕易控制整個程序的邏輯,而在底層的函數里專注于某方面的功能的實現了。
  
  
  三、代碼文件風格
  
  所有的 Java(*.java) 文件都必須遵守如下的樣式規則:
  
  . 文件生成
  
  對于規范的 JAVA 派生類,盡量用 JBuilder 的 Object Gallery 工具來生成文件格式,避免用手工制作的頭文件/實現文件。
  
  . package/import
  
  package 行要在 import 行之前,import 中標準的包名要在本地的包名之前,而且按照字母順序排列。假如 import 行中包含了同一個包中的不同子目錄,則應該用 * 來處理。
  
  package hotlava.net.stats;
  
  import java.io.*;
  import java.util.Observable;
  import hotlava.util.application;
  
  這里 java.io.* 使用來代替InputStream and OutputStream 的。
  
  . 文件頭部注釋
  
  文件頭部注釋主要是表明該文件的一些信息,是程序的總體說明,可以增強程序的可讀性和可維護性。文件頭部注釋一般位于 package/imports 語句之后,Class 描述之前。要求至少寫出文件名、創建者、創建時間和內容描述。JBuilder 的 Object Gallery 工具生成的代碼中會在類、工程文件中等自動添加注釋,我們也要添加一些注釋,其格式應該盡量約束如下:
  
  /**
  * Title: 確定鼠標位置類
  * Description: 確定鼠標當前在哪個作業欄位中并返回作業號
  * @Copyright: Copyright (c) 2002
  * @Company: HIT
  * @author: rivershan
  * @version: 1.0
  * @time: 2002.10.30
  */
  
  . Class
  
  接下來的是類的注釋,一般是用來解釋類的。
  
  /**
  * A class representing a set of packet and byte counters
  * It is observable to allow it to be watched, but only
  * reports changes when the current set is complete
  */
  
  接下來是類定義,包含了在不同的行的 extends 和 implements
  
  public class CounterSet
   extends Observable
   implements Cloneable
  
  .Class Fields
  
  接下來是類的成員變量:
  
  /**
  * Packet counters
  */
  
  protected int[] packets;
  
  public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量假如名字含義明確的話,可以沒有注釋。
  
  . 存取方法
  
  接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。(個人認為盡量分行寫)
  
  /**
  * Get the counters
  * @return an array containing the statistical data. This array has been
  * freshly allocated and can be modified by the caller.
  */
  
  public int[] getPackets()
  {
   return copyArray(packets, offset);
  }
  
  public int[] get

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色伦亚洲国产| 国产91ⅴ在线精品免费观看| 欧美xxxx做受欧美.88| 热久久这里只有精品| 美女福利视频一区| 国产精品第8页| 亚洲欧美在线一区| 国产精品最新在线观看| 色狠狠久久aa北条麻妃| 精品一区二区三区电影| 国产亚洲视频在线| 日本精品久久久久影院| 国产一区二区三区在线播放免费观看| 日韩精品中文字| 久久人人爽亚洲精品天堂| 亚洲精品福利资源站| 日韩中文在线不卡| 国产精品精品视频| 亚洲精品视频中文字幕| 成人网址在线观看| 免费不卡在线观看av| 韩剧1988免费观看全集| 97热在线精品视频在线观看| 久久在线免费视频| 精品久久久视频| 欧美日韩国内自拍| 亚洲毛片在线观看.| 美女999久久久精品视频| 国产精自产拍久久久久久| 国产97人人超碰caoprom| 成人激情视频在线| 亚洲精品女av网站| 中文字幕在线亚洲| 日韩在线免费观看视频| 国产精品丝袜一区二区三区| 欧美激情在线有限公司| 亚洲电影av在线| 欧美精品video| 欧美日韩国产精品| 一区二区三区视频免费| 欧美性猛交xxxx乱大交极品| 91精品久久久久久久久久久久久| 成人激情视频小说免费下载| 一区二区三区视频在线| 国产suv精品一区二区三区88区| 亚洲免费人成在线视频观看| 亚洲欧美激情另类校园| 亚洲精品福利在线| 亚洲欧美一区二区精品久久久| 中文字幕亚洲国产| 亚洲午夜精品久久久久久性色| 亚洲精品免费av| 最近中文字幕mv在线一区二区三区四区| 成人高清视频观看www| 蜜臀久久99精品久久久无需会员| 欧美久久久精品| 九九久久国产精品| 久久久亚洲网站| 国产综合色香蕉精品| 亚洲人成电影网站色| 伊人亚洲福利一区二区三区| 成人免费网站在线| 欧美激情视频一区二区三区不卡| 自拍亚洲一区欧美另类| 成人在线小视频| 国产精品嫩草影院一区二区| 欧洲美女7788成人免费视频| 欧美夫妻性生活xx| 欧美激情小视频| 成人免费在线视频网址| 国产精品v日韩精品| 中文字幕国产精品久久| 美女啪啪无遮挡免费久久网站| 国产一区av在线| 国产日韩精品电影| 中文字幕综合在线| 亚洲999一在线观看www| 夜夜狂射影院欧美极品| 91精品国产91久久久久久不卡| 亚洲xxxx18| 日韩电视剧在线观看免费网站| 欧美大学生性色视频| 日韩一区二区三区国产| 91精品国产高清| 深夜福利一区二区| 日本国产高清不卡| 日韩在线国产精品| 日韩欧美国产骚| 亚洲精品影视在线观看| 亚洲天堂影视av| 色综合色综合网色综合| 91久久精品国产91性色| 激情亚洲一区二区三区四区| 国产精品jizz在线观看麻豆| 精品激情国产视频| 中文字幕亚洲第一| 欧美激情久久久久久| 欧美另类极品videosbest最新版本| 日韩免费av片在线观看| 日产精品久久久一区二区福利| 国产性色av一区二区| 韩剧1988在线观看免费完整版| 国产精品劲爆视频| 亚洲精品久久久久中文字幕欢迎你| 国产精品久久久久久av福利软件| 亚洲高清av在线| 欧美性猛交xxxx免费看| 成人福利在线视频| 在线观看国产成人av片| 亚洲激情电影中文字幕| 亚洲综合色av| 国产精品视频yy9099| 国产精品久久国产精品99gif| 韩国精品久久久999| 日韩av在线免费| 国产成人极品视频| 久久久久久国产精品久久| 91麻豆国产语对白在线观看| 第一福利永久视频精品| 精品中文视频在线| 日韩精品中文字幕视频在线| 在线免费观看羞羞视频一区二区| 欧美另类极品videosbestfree| 日韩成人激情影院| 国产97色在线|日韩| 国产一区二区色| 中文字幕日韩视频| 日韩中文字幕国产| 国产精品久久电影观看| 少妇高潮 亚洲精品| 91亚洲精品久久久久久久久久久久| 欧美精品精品精品精品免费| 久久99国产精品久久久久久久久| 久久久久久久久久久国产| 亚洲欧洲一区二区三区在线观看| 亚洲精品v天堂中文字幕| 91国产视频在线| 亚洲欧美日韩直播| 国产精品成熟老女人| 精品久久久久久电影| 亚洲精品日韩av| 欧美视频一区二区三区…| 亚洲图片制服诱惑| 26uuu亚洲国产精品| 成人免费高清完整版在线观看| 久久91亚洲精品中文字幕奶水| 亚洲国产成人精品女人久久久| 亚洲影视九九影院在线观看| 国产成人综合一区二区三区| 国精产品一区一区三区有限在线| 亚洲色图校园春色| 成人激情电影一区二区| 97精品在线视频| 欧美日韩国产专区| 永久555www成人免费| 992tv在线成人免费观看| 久久在线精品视频| 久久久免费在线观看| 国产精品国产三级国产aⅴ9色| 亚洲一品av免费观看| 亚洲人成电影在线播放| 国内精久久久久久久久久人| 伊人男人综合视频网| 色婷婷综合久久久久中文字幕1|