代碼規(guī)范

參考地址

術(shù)語說明

在文檔中,除非另有說明:

術(shù)語 class 可表示一個普通類,枚舉類搔体,接口或是annotation類型(@interface)
術(shù)語 comment 只用來指代實現(xiàn)的注釋(implementation comments),我們不使用”documentation comments”一詞,而是用 Javadoc曹动。其他的術(shù)語說明會偶爾在后面的文檔出現(xiàn)。

源文件基礎(chǔ)

文件名

源文件以其最頂層的類名來命名牲览,大小寫敏感墓陈,文件擴展名為.java

文件編碼

所有格式統(tǒng)一為UTF-8

特殊字符

空白字符

除了行結(jié)束符序列,ASCII水平空格字符(0×20第献,即空格)是源文件中唯一允許出現(xiàn)的空白字符贡必,這意味著:
所有其它字符串中的空白字符都要進行轉(zhuǎn)義。
制表符不用于縮進(可以在IDE中Tab鍵設(shè)置為若干個空格)庸毫。

特殊轉(zhuǎn)義序列

除了行結(jié)束序列仔拟,ASCII水平空格字符(0x20)是源文件中唯一允許出現(xiàn)的空白字符。就是說其他字符都要進行轉(zhuǎn)義飒赃。

特殊轉(zhuǎn)義序列

對于具有特殊轉(zhuǎn)義序列的字符(\b,\f,\n等)不能使用相應(yīng)8進制或Unicode轉(zhuǎn)義利花。

非ASCII字符

對于剩余的非ASCII字符科侈,是使用實際的Unicode字符還是使用等價的轉(zhuǎn)義符(\u221e)取決于那個更利于閱讀和理解。

源文件結(jié)構(gòu)

一個源文件應(yīng)包含(按順序):
許可證版權(quán)信息(如有需要)
prckage 語句
import 語句
頂級類(以上每個須用空行隔開)

import中不使用通配符

如:import java.util.*;

import語句不換行

類聲明

只有一個頂級類

類聲明每個頂級類都在一個與它同名的源文件中(當(dāng)然炒事,還包含.java后綴)臀栈。

類成員順序

每個類應(yīng)該以某種邏輯去排序它的成員,維護者應(yīng)該要能解釋這種排序邏輯羡洛。比如挂脑, 新的方法不能總是習(xí)慣性地添加到類的結(jié)尾,因為這樣就是按時間順序而非某種邏輯來排序的欲侮。

區(qū)塊劃分

建議用注釋將源文件分為明顯的區(qū)塊崭闲,區(qū)塊劃分如下:
常量聲明區(qū)
UI控件成員變量聲明區(qū)
內(nèi)部接力聲明區(qū)
初始化相關(guān)方法區(qū)
事件響應(yīng)方法區(qū)
普通邏輯方法區(qū)
重載邏輯方法區(qū)
發(fā)起異步任務(wù)方法區(qū)
異步任務(wù)回調(diào)方法區(qū)
生命周期回調(diào)方法區(qū)(不包含oncreate)
內(nèi)部類聲明區(qū)

類成員排列通用規(guī)則

按照發(fā)生的先后順序排列
常量按照使用先后排列
UI控件成員變量按照layout文件中的先后順序排列
普通成員變量按照使用的先后順序排列
方法基本上都按照調(diào)用的先后順序在各自區(qū)塊中排列
相關(guān)功能作為小區(qū)塊放在一起(或者封裝掉)

重載:永不分離

當(dāng)一個類有多個構(gòu)造函數(shù),或是多個同名方法威蕉,這些函數(shù)/方法應(yīng)該順序的出現(xiàn)在一起刁俭。

格式術(shù)語

說明:塊狀結(jié)構(gòu)指一個類,方法或構(gòu)造函數(shù)主題韧涨。

大括號

使用大括號(即使是可選的)

大括號與if, else, for, do, while語句一起使用牍戚,即使只有一條語句(或是空),也應(yīng)該把大括號寫上虑粥。

空塊:可以用簡潔版本

一個空的塊狀結(jié)構(gòu)里什么也不包含如孝,大括號可以簡潔的寫成{},不需要換行娩贷。例外:如果它是一個多塊語句的一部分(if/else 或 try/catch/finally) 第晰,即使大括號內(nèi)沒內(nèi)容,右大括號也要換行彬祖。

塊縮進:4個空格

當(dāng)增加一個新的塊時茁瘦,縮進增加4個空格,當(dāng)塊結(jié)束時储笑,縮進返回先前縮進級別甜熔。縮進級別適用于代碼和注釋突倍。

一行一個語句

每個語句后要換行

具體結(jié)構(gòu)

每次只聲明一個變量

不要使用組合聲明腔稀,比如int a, b(不強制)

在需要時才聲明,并盡快進行初始化

不要在一個代碼塊的開頭吧局部變量一次性都聲明赘方,而是在第一次使用時再聲明烧颖。并且在聲明后盡快進行初始化。

數(shù)組

數(shù)組初始化可以寫成塊狀結(jié)構(gòu)

比如窄陡,下面的寫法都是OK的:

  • new int[] {
    0, 1, 2, 3
    }
  • new int[] {
    0,
    1,
    2,
    3
    }
  • new int[] {
    0, 1,
    2, 3
    }
  • new int[]
    {0, 1, 2, 3}
非C風(fēng)格的數(shù)組聲明

中括號是類型的一部分:String[] args炕淮, 而非 String args[]。

switch語句

術(shù)語說明:switch塊的大括號內(nèi)是一個或多個語句組跳夭。
每個語句組包含一個或多個switch標(biāo)簽(case FOO:或default:)涂圆,后面跟著一條或多條語句们镜。

縮進

與其它塊狀結(jié)構(gòu)一致,switch塊中的內(nèi)容縮進為2個空格润歉。每個switch標(biāo)簽后新起一行模狭,再縮進2個空格,寫下一條或多條語句踩衩。

default的情況要寫出來

每個switch語句都包含一個default語句組嚼鹉,即使它什么代碼也不包含。

注解

注解緊跟在文檔塊后面驱富,應(yīng)用于類锚赤、方法和構(gòu)造函數(shù),一個注解獨占一行褐鸥。這些換行不屬于自動換行线脚,因此縮進級別不變。

注釋

  • 注釋盡量使用javadoc注釋
  • 在方法內(nèi)的注釋可以使用//
  • 注釋不可使用行尾注釋

Modifiers

類和成員的modifiers如果存在叫榕,則按Java語言規(guī)范中推薦的順序出現(xiàn)浑侥。

public protected private
 abstract
 static
 final
 transient
 Volatile
 synchronized 
native
 strictfp

命名約定

對所有標(biāo)識符懂通用的規(guī)則

標(biāo)識符只能使用ASCII字母和數(shù)字,因此每個有效的標(biāo)識符名稱都能匹配正則表達式\w+

標(biāo)識符類型的規(guī)則

包名

包名全部小寫晰绎,連續(xù)的單詞只是簡單地連接起來寓落,不使用下劃線。

采用反域名命名規(guī)則荞下,全部使用小寫字母零如。一級包名為com,二級包名為drhb锄弱,三級包名根據(jù)應(yīng)用進行命名,四級包名為模塊名或?qū)蛹壝?br> 包名 此包中包含com.xx.應(yīng)用名稱縮寫

  • .activity 頁面用到的Activity類 (activitie層級名用戶界面層)
  • .base 基礎(chǔ)共享的類
  • .adapter 頁面用到的Adapter類 (適配器的類)
  • .util 此包中包含:公共工具方法類(util模塊名)
  • .bean 下面可分:vo祸憋、po会宪、dto 此包中包含:JavaBean類
  • .model 此包中包含:模型類
  • .db 數(shù)據(jù)庫操作類
  • .view (或者 com.xx.應(yīng)用名稱縮寫.widget ) 自定義的View類等* .service Service服務(wù)
  • .receiver BroadcastReceiver服務(wù)
  • 所有M、V蚯窥、P抽取出來的接口都放置在相應(yīng)模塊的i包下掸鹅,所有的實現(xiàn)都放置在相應(yīng)模塊的impl下
類名

類名都以UpperCamelCase風(fēng)格編寫。
類名通常是名詞或名詞短語拦赠,接口名稱有時可能是形容詞或形容詞短語∥∩常現(xiàn)在還沒有特定的規(guī)則或行之有效的約定來命名注解類型。
名詞荷鼠,采用大駝峰命名法句携,盡量避免縮寫,除非該縮寫是眾所周知的允乐, 比如HTML,URL矮嫉,如果類名稱中包含單詞縮寫削咆,則單詞縮寫的每個字母均應(yīng)大寫。
類 描述 例如

  • Activity 類 Activity為后綴標(biāo)識 歡迎頁面類WelcomeActivity
  • Adapter類 Adapter 為后綴標(biāo)識 新聞詳情適配器 NewDetailAdapter
  • 解析類 Parser為后綴標(biāo)識 首頁解析類HomePosterParser
  • 工具方法類 Util或Manager為后綴標(biāo)識(與系統(tǒng)或第三方的Utils區(qū)分)或* * 功能+Util
  • 線程池管理類:ThreadPoolManager
  • 日志工具類:LogUtil(Logger也可)
  • 打印工具類:PrinterUtil
  • 數(shù)據(jù)庫類 以DBHelper后綴標(biāo)識 新聞* 數(shù)據(jù)庫:NewDBHelper
  • Service類 以Service為后綴標(biāo)識
  • 時間服務(wù)TimeServiceBroadcast
  • Receiver類 以Receiver為后綴標(biāo)識
  • 推送接收J(rèn)PushReceiver
  • ContentProvider 以Provider為后綴標(biāo)識
  • 自定義的共享基礎(chǔ)類 以Base開頭 BaseActivity,BaseFragment
  • 測試類的命名以它要測試的類的名稱開始蠢笋,以Test結(jié)束拨齐。
  • 接口(interface):命名規(guī)則與類一樣采用大駝峰命名法,多以able或ible結(jié)尾
  • 所有Model昨寞、View瞻惋、Presenter的接口都以I為前綴,不加后綴援岩,其他的接口采用上述命名規(guī)則歼狼。
方法名

方法名都以 LowerCamelCase 風(fēng)格編寫。
方法名通常是動詞或動詞短語窄俏。
方法 說明

  • initXX() 初始化相關(guān)方法,使用init為前綴標(biāo)識蹂匹,如初始化布局initView()
  • isXX() checkXX() 方法返回值為
  • boolean型的請使用is或check為前綴標(biāo)識
  • getXX() 返回某個值的方法,使用get為前綴標(biāo)識
  • handleXX() 對數(shù)據(jù)進行處理的方法凹蜈,盡量使用handle為前綴標(biāo)識
  • displayXX()/showXX() 彈出提示框和提示信息限寞,使用display/show為前綴標(biāo)識
  • saveXX() 與保存數(shù)據(jù)相關(guān)的,使用save為前綴標(biāo)識
  • resetXX() 對數(shù)據(jù)重組的仰坦,使用reset前綴標(biāo)識
  • clearXX() 清除數(shù)據(jù)相關(guān)的
  • removeXXX() 清除數(shù)據(jù)相關(guān)的
  • drawXXX() 繪制數(shù)據(jù)或效果相關(guān)的履植,使用draw前綴標(biāo)識
  • 下劃線可能出現(xiàn)在JUnit測試方法名稱中用以分隔名稱的邏輯組件。一個典型的模式是:test_悄晃,例如testPop_emptyStack玫霎。
    并不存在唯一正確的方式來命名測試方法。
常量名

常量名命名模式為CONSTANT_CASE妈橄,全部字母大寫庶近,用下劃線分隔單詞。那眷蚓,到底什么算是一個常量鼻种?
每個常量都是一個靜態(tài)final字段,但不是所有靜態(tài)final字段都是常量沙热。在決定一個字段是否是一個常量時叉钥,考慮它是否真的感覺像是一個常量。
例如篙贸,如果任何一個該實例的觀測狀態(tài)是可變的投队,則它幾乎肯定不會是一個常量。只是永遠不打算改變對象一般是不夠的爵川,它要真的一直不變才能將它示為常量敷鸦。
這些名字通常是名詞或名詞短語。

非常量字段名

非常量字段名以LowerCamelCase風(fēng)格的基礎(chǔ)上改造為如下風(fēng)格:
基本結(jié)構(gòu)為scopeVariableNameType,

  • scope:范圍
  • 非公有轧膘,非靜態(tài)字段命名以m開頭钞螟。
  • 靜態(tài)字段命名以s開頭。
  • 公有非靜態(tài)字段命名以p開頭谎碍。
  • 公有靜態(tài)字段(全局變量)命名以g開頭鳞滨。
  • public static final 字段(常量) 全部大寫,并用下劃線連起來蟆淀。
    使用1字符前綴來表示作用范圍拯啦,1個字符的前綴必須小寫,前綴后面是由表意性強的一個單詞或多個單詞組成的名字熔任,而且每個單詞的首寫字母大寫褒链,其它字母小寫,這樣保證了對變量名能夠進行正確的斷句疑苔。
    Type:類型
    考慮到Android中使用很多UI控件甫匹,為避免控件和普通成員變量混淆以及更好達意,所有用來表示控件的成員變量統(tǒng)一加上控件縮寫作為后綴(文末附有縮寫表)惦费。
    對于普通變量一般不添加類型后綴兵迅,如果統(tǒng)一添加類型后綴,請參考文末的縮寫表薪贫。
    用統(tǒng)一的量詞通過在結(jié)尾處放置一個量詞恍箭,就可創(chuàng)建更加統(tǒng)一的變量,它們更容易理解瞧省,也更容易搜索扯夭。
    注意:如果項目中使用ButterKnife,則不添加m前綴鞍匾,以LowerCamelCase風(fēng)格命名交洗。
    例如,請使用 mCustomerStrFirst 和 mCustomerStrLast橡淑,而不要使用mFirstCustomerStr和mLastCustomerStr藕筋。
    量詞列表:量詞后綴說明
    First 一組變量中的第一個
    Last 一組變量中的最后一個
    Next 一組變量中的下一個變量
    Prev 一組變量中的上一個
    Cur 一組變量中的當(dāng)前變量。
    說明:
    集合添加如下后綴:List梳码、Map、Set
    數(shù)組添加如下后綴:Arr
參數(shù)名

參數(shù)名以LowerCamelCase風(fēng)格編寫

局部變量名

局部變量名以LowerCamelCase風(fēng)格編寫掰茶,比起其它類型的名稱,局部變量名可以有更為寬松的縮寫蜜笤。
雖然縮寫更寬松濒蒋,但還是要避免用單字符進行命名沪伙,除了臨時變量和循環(huán)變量暖混。
即使局部變量是final和不可改變的拣播,也不應(yīng)該把它示為常量贮配,自然也不能用常量的規(guī)則去命名它泪勒。

臨時變量

臨時變量通常被取名為

  • i圆存,j,k,m和n撞羽,它們一般用于整型诀紊;
  • c,d碌宴,e贰镣,它們一般用于字符型恭陡。 如: for (int i = 0; i < len ; i++),并且它和第一個單詞間沒有空格。

資源文件命名規(guī)范

資源布局文件(XML文件(layout布局文件))

全部小寫,采用下劃線命名法

  1. contentview 命名
    必須以全部單詞小寫孕惜,單詞間以下劃線分割削罩,使用名詞或名詞詞組进陡。
    所有Activity或Fragment的contentView必須與其類名對應(yīng)以蕴,對應(yīng)規(guī)則為:
    將所有字母都轉(zhuǎn)為小寫喳资,將類型和功能調(diào)換(也就是后綴變前綴)伴鳖。
    例如:activity_main.xml
  2. Dialog命名:dialog_描述.xml
    例如:dialog_hint.xml
  3. PopupWindow命名:ppw_描述.xml
    例如:ppw_info.xml
  4. 列表項命名:item_描述.xml
    例如:item_city.xml
  5. 包含項命名:模塊(位置)描述.xml
    例如:activity_main_head.xml匿乃、activity_main_bottom.xml
    注意:通用的包含項命名采用:項目名稱縮寫
    描述.xml
    例如:xxxx_title.xml
資源文件

全部小寫幢炸,采用下劃線命名法,加前綴區(qū)分
命名模式:可加后綴 small 表示小圖, big 表示大圖闸天,邏輯名稱可由多個單詞加下劃線組成笼吟,采用以下規(guī)則:
用途
模塊名
邏輯名稱
用途模塊名顏色
用途邏輯名稱
用途
顏色
說明:用途也指控件類型(具體見UI控件縮寫表)
例如:
btn_main_home.png 按鍵
divider_maket_white.png 分割線
ic_edit.png 圖標(biāo)
bg_main.png 背景
btn_red.png 紅色按鍵
btn_red_big.png 紅色大按鍵
ic_head_small.png 小頭像
bg_input.png 輸入框背景
divider_white.png 白色分割線
如果有多種形態(tài)如按鈕等除外如 btn_xx.xml(selector)
名稱 功能
btn_xx 按鈕圖片使用btn_整體效果(selector)
btn_xx_normal 按鈕圖片使用btn_正常情況效果
btn_xx_pressed 按鈕圖片使用btn_點擊時候效果
btn_xx_focused state_focused聚焦效果
btn_xx_disabled state_enabled (false)不可用效果
btn_xx_checked state_checked選中效果
btn_xx_selected state_selected選中效果
btn_xx_hovered state_hovered懸停效果
btn_xx_checkable state_checkable可選效果
btn_xx_activated state_activated激活的
btn_xx_windowfocused state_window_focused
bg_head 背景圖片使用bg_功能說明
def_search_cell 默認(rèn)圖片使用def
功能說明
ic_more_help 圖標(biāo)圖片使用ic
功能說明
seg_list_line 具有分隔特征的圖片使用seg
功能說明
sel_ok 選擇圖標(biāo)使用sel
功能_說明

動畫文件(anim文件夾下)

全部小寫诲侮,采用下劃線命名法沟绪,加前綴區(qū)分。
具體動畫采用以下規(guī)則:
模塊名_邏輯名稱
邏輯名稱
refresh_progress.xml
market_cart_add.xml
market_cart_remove.xml
普通的tween動畫采用如下表格中的命名方式
// 前面為動畫的類型,后面為方向
動畫命名例子 規(guī)范寫法
fade_in 淡入
fade_out 淡出
push_down_in 從下方推入
push_down_out 從下方推出
push_left 推向左方
slide_in_from_top 從頭部滑動進入
zoom_enter 變形進入
slide_in 滑動進入
shrink_to_middle 中間縮小

  1. values中name命名
    類別 命名 示例
    strings strings的name命名使用下劃線命名法,采用以下規(guī)則:模塊名+邏輯名稱 main_menu_about 主菜單按鍵文字friend_title 好友模塊標(biāo)題欄friend_dialog_del 好友刪除提示login_check_email 登錄驗證
    dialog_title 彈出框標(biāo)題
    button_ok 確認(rèn)鍵 loading 加載文字
    colors colors的name命名使用下劃線命名法裹虫,采用以下規(guī)則:模塊名+邏輯名稱 顏色 friend_info_bg friend_bg transparent gray
    styles styles的name命名使用 Camel命名法,采用以下規(guī)則:模塊名+邏輯名稱 main_tabBottom
layout中的id命名

命名模式為:view縮寫_view的邏輯名稱
使用 AndroidStudio 的插件 ButterKnife Zelezny,生成注解非常方便。
如果不使用 ButterKnife Zelezny,則建議使用 view 縮寫做前綴綴,如:tv_username(展示用戶名的TextView)

編程實踐

@Override:能用則用

只要是合法的杯瞻,就把@Override注解給用上镐牺。

捕獲的異常:不能忽視

除了下面的例子,對捕獲的異常不做響應(yīng)是極少正確的魁莉。(典型的響應(yīng)方式是打印日志睬涧,或者如果它被認(rèn)為是不可能的,則把它當(dāng)作一個 AssertionError 重新拋出旗唁。)
如果它確實是不需要在catch塊中做任何響應(yīng)畦浓,需要做注釋加以說明(如下面的例子)。

try {
    int i = Integer.parseInt(response);
    return handleNumericResponse();
} catch (NumberFormatException ok){
    // it's not numeric; that's fine, just continue
}
return handleTextResponse(response);

例外:在測試中检疫,如果一個捕獲的異常被命名為expected讶请,則它可以被不加注釋地忽略。下面是一種非常常見的情形屎媳,用以確保所測試的方法會拋出一個期望中的異常夺溢,因此在這里就沒有必要加注釋。

try {
    emptyStack.pop();
    fail();
} catch (NoSuchElementException expected) {
}
靜態(tài)成員:使用類進行調(diào)用

使用類名調(diào)用靜態(tài)的類成員烛谊,而不是具體某個對象或表達式风响。

Foo aFoo = ...;
Foo.aStaticMethod(); // good
aFoo.aStaticMethod(); // bad
somethingThatYieldsAFoo().aStaticMethod(); // very bad

注釋Javadoc

格式
一般形式

Javadoc塊的基本格式如下所示:

/**

* Multiple lines of Javadoc text are written here,

* wrapped normally...

*/

 public int method(String p1) { ... }

或者是以下單行形式:

/** An especially shortbit of Javadoc. */

基本格式總是OK的。當(dāng)整個Javadoc塊能容納于一行時,且沒有Javadoc標(biāo)可以使用單行形式丹禀。

段落

空行(即状勤,只包含最左側(cè)星號的行)會出現(xiàn)在段落之間和Javadoc標(biāo)記(@XXX)之前(如果有的話)。
除了第一個段落湃崩,每個段落第一個單詞前都有標(biāo)簽
荧降,并且它和第一個單詞間沒有空格。

Javadoc標(biāo)記

標(biāo)準(zhǔn)的Javadoc標(biāo)記按以下順序出現(xiàn):@param, @return, @throws, @deprecated,
前面這4種標(biāo)記如果出現(xiàn)攒读,描述都不能為空朵诫。 當(dāng)描述無法在一行中容納,連續(xù)行需要至少再縮進4個空格薄扁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剪返,一起剝皮案震驚了整個濱河市废累,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脱盲,老刑警劉巖邑滨,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钱反,居然都是意外死亡掖看,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門面哥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哎壳,“玉大人,你說我怎么就攤上這事尚卫」殚牛” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵吱涉,是天一觀的道長刹泄。 經(jīng)常有香客問我,道長怎爵,這世上最難降的妖魔是什么特石? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮疙咸,結(jié)果婚禮上县匠,老公的妹妹穿的比我還像新娘。我一直安慰自己撒轮,他們只是感情好乞旦,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著题山,像睡著了一般兰粉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顶瞳,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天玖姑,我揣著相機與錄音,去河邊找鬼慨菱。 笑死焰络,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的符喝。 我是一名探鬼主播闪彼,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了畏腕?” 一聲冷哼從身側(cè)響起缴川,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎描馅,沒想到半個月后把夸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡铭污,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年恋日,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘹狞。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡谚鄙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刁绒,到底是詐尸還是另有隱情,我是刑警寧澤烤黍,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布知市,位于F島的核電站,受9級特大地震影響速蕊,放射性物質(zhì)發(fā)生泄漏嫂丙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一规哲、第九天 我趴在偏房一處隱蔽的房頂上張望跟啤。 院中可真熱鬧,春花似錦唉锌、人聲如沸隅肥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腥放。三九已至,卻和暖如春绿语,著一層夾襖步出監(jiān)牢的瞬間秃症,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工吕粹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留种柑,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓匹耕,卻偏偏與公主長得像聚请,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泌神,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容