第一章 快速瀏覽

本章我們站在較高的層次快速瀏覽器Squeak體系艰猬,熟悉其運(yùn)行環(huán)境。其中包含大量的實(shí)踐機(jī)會(huì)埋市,因此最好在手頭有個(gè)電腦可以用來(lái)輸入測(cè)試

下面會(huì)使用一個(gè)特殊的標(biāo)記作為練習(xí)實(shí)踐的提示冠桃。在實(shí)踐中,我們會(huì)啟動(dòng)Squeak道宅,學(xué)習(xí)與其運(yùn)行環(huán)境的交互方法食听,探索基礎(chǔ)工具,掌握定義新的方法污茵,對(duì)象和如何發(fā)送消息給對(duì)象

1.1 開始

Squeak在www.squeak.org提供免費(fèi)下載樱报。需要三部分下載,其中包含四個(gè)文件泞当。

Squeak

(1) virtual machine(vm) 特定于不同操作系統(tǒng)與進(jìn)程的Squeak虛擬機(jī)迹蛤。大部分通用電腦操作系統(tǒng)都有對(duì)應(yīng)的預(yù)編譯的虛擬機(jī)
(2) sources文件包含了Squeak中所有基礎(chǔ)實(shí)現(xiàn)部分。圖中的版本是SqueakV39.sources。這個(gè)版本只可以用于3.9以及更高版本的Squeak盗飒。早期的版本需要使用對(duì)應(yīng)的sources版本嚷量。Squeak的3.0到3.8需要使用SqueakV3
(3)system image是一個(gè)Squeak運(yùn)行時(shí)靜態(tài)快照鏡像文件。主要包含兩個(gè)文件.image文件包含Squeak系統(tǒng)中的所有對(duì)象的狀態(tài)逆趣。.changes文件包含其他所有在系統(tǒng)對(duì)象上的變化蝶溶。圖中我們使用Squeak3.9-final-7067鏡像文件

本書中例子使用的Squeak版本是Squeak-dev,可以在http://damien.cassou.free.fr/squeal-dev獲取相關(guān)信息汗贫。這個(gè)版本包含豐富的預(yù)裝工具身坐,并且其他的擴(kuò)展包可以通過(guò)點(diǎn)擊安裝秸脱。本書中的所有入門練習(xí)可以應(yīng)用到任何版本落包,因此只需要安裝其中的一個(gè)版本,就可以掌握在其他版本中的開發(fā)摊唇。當(dāng)然在不同版本會(huì)有點(diǎn)細(xì)節(jié)的不同,不過(guò)仍然建議使用這個(gè)版本熟悉Squeak的基本應(yīng)用

在Squeak開發(fā)中巷查,鏡像文件(.image,.changes)會(huì)發(fā)生變化有序,所以需要確保這兩個(gè)文件是可寫的。經(jīng)常將這兩個(gè)文件放在相同目錄中岛请。盡量不要使用純文本編輯這兩個(gè)文件旭寿,Squeak只是使用這兩個(gè)文件保存對(duì)象的狀態(tài),以及對(duì)象發(fā)生變化的記錄信息崇败。在開始編程前最好將這兩個(gè)文件進(jìn)行備份盅称,這樣就可以隨時(shí)從新的鏡像文件開始變成

vm文件與sources文件通常是只讀的,可以在不同的用戶中共享后室。這些文件可以保存在相同目錄缩膝,也可以保存在所有人都可以訪問的目錄下。接下來(lái)選擇喜歡的操作系統(tǒng)即可開始享受Squeak編程的樂趣

Launching (啟動(dòng))

Doit.image文件拖到虛擬機(jī)圖標(biāo)即可岸霹,或者雙擊.image文件,或者在命令行輸入虛擬機(jī)名字與.image文件路徑疾层。

啟動(dòng)后,將會(huì)看到一個(gè)大窗口贡避,包含大量的工作區(qū)間痛黎。Squeak使用上下文相關(guān)菜單。

First Interaction(初步交互)

Doit點(diǎn)擊窗口的空白地方打開菜單欄刮吧,選擇open...workspace創(chuàng)建一個(gè)新的工作區(qū)間

workspace

Squeak通常使用帶有三個(gè)按鍵的鼠標(biāo)進(jìn)行操作舅逸。其中左側(cè)的red button進(jìn)行選擇, 右側(cè)的yellow button打開操作菜單皇筛。

Doit 在工作區(qū)間輸入Time now琉历。然后右擊,選擇print it

鼠標(biāo)的第三個(gè)按鈕blue button用來(lái)操作圖形,保護(hù)一系列對(duì)屏幕圖形對(duì)象的操作旗笔,如旋轉(zhuǎn)縮放彪置,

Doit點(diǎn)擊鼠標(biāo)滾輪,拖著其中按鈕繞著工作區(qū)間旋轉(zhuǎn)

可以自定義鼠標(biāo)配置蝇恶,修改其鼠標(biāo)按鈕實(shí)現(xiàn)不同功能拳魁。另外還可以使用alt按鈕模擬鼠標(biāo)按鈕功能。使用蘋果機(jī)撮弧,可以使用鍵盤相應(yīng)按鈕模擬鼠標(biāo)潘懊。

可以配置鼠標(biāo)的工作方式配合操作系統(tǒng)與鼠標(biāo)驅(qū)動(dòng)。Squeak包含一些通用的鼠標(biāo)使用配置和鍵盤元鍵操作方式贿衍,可以使用Word菜單的open選項(xiàng)打開配置授舟。在preference browser界面中, general選項(xiàng)包含swapMouseButtons可以用來(lái)切換鼠標(biāo)按鈕keyboard選項(xiàng)包含調(diào)整不同鍵盤按鍵功能

Doit打開preference browser試試搜索框找到swapMouseButtons選項(xiàng)

1.2 Word菜單

Doit 在Squeak空白地方點(diǎn)擊打開Word菜單贸辈。默認(rèn)情況下松開鼠標(biāo)菜單消失释树。可以點(diǎn)擊插針按鈕放在桌面上擎淤,鼠標(biāo)放開后也不會(huì)消失奢啥。可以拖著移動(dòng)嘴拢,直到點(diǎn)擊菜單外地方或者進(jìn)行選擇后才會(huì)消失桩盲。

word菜單包含了Squeak提供的豐富的工具

Doit 選擇open...選項(xiàng)。
接下來(lái)會(huì)看到一系列Squeak的核心工具席吴,包括系統(tǒng)菜單和工作區(qū)間赌结。在接下來(lái)的章節(jié)中會(huì)詳細(xì)介紹它們

word>open

1.3 保存,關(guān)閉和重啟Squeak會(huì)話

Doit返回word菜單,選擇new morph...然后選擇from alphabeitical list>A-C>BlobMorph 會(huì)打開一個(gè)圖形

Doit選擇word>save as...輸入SBE 點(diǎn)擊Accepts(s) 然后選擇Word>save and quit

打開.image.changes文件所在目錄抢腐,會(huì)發(fā)現(xiàn)SBE.imageSBE.changes文件包含在save and quit的一系列操作信息姑曙。可以將這兩個(gè)文件移動(dòng)到任意的硬盤空間迈倍,也可以發(fā)送到其他地方伤靠。

Doit點(diǎn)擊SBE.image文件再次啟動(dòng)Squeak
現(xiàn)在又返回到上次操作狀態(tài)。

當(dāng)?shù)谝淮螁?dòng)Squeak啼染,Squeak虛擬機(jī)加載提供的image鏡像文件宴合,包含一系列對(duì)象的快照,隨著在Squeak中的編程過(guò)程中迹鹅,可以發(fā)生消息給這些對(duì)象卦洽,也可以創(chuàng)建新的對(duì)象,這些對(duì)象會(huì)隨著銷毀而進(jìn)行內(nèi)存自動(dòng)回收

退出Squeak時(shí)斜棚,保存對(duì)象的快照阀蒂。保存的快照將會(huì)覆蓋原先的鏡像文件该窗。也可以以新的名字保存鏡像文件

.image文件外還有一個(gè).changes文件,包含使用系統(tǒng)工作在源代碼基礎(chǔ)上的操作蚤霞,大部分時(shí)間不需要考慮這個(gè)文件酗失。這個(gè)文件通常用來(lái)修正錯(cuò)誤,后面會(huì)介紹

這個(gè)鏡像文件是1970年的后期的Smalltalk-80鏡像文件的一種變種昧绣。有些對(duì)象已經(jīng)使用了數(shù)十年

也許會(huì)認(rèn)為這些鏡像文件是保存和管理軟件工程的核心规肴,其實(shí)并不是這樣。后面會(huì)降到夜畴。還有大量的優(yōu)秀工具用來(lái)管理和共享軟件開發(fā)拖刃。鏡像文件非常重要,需要慎重對(duì)待贪绘,可以使用Monticello來(lái)管理代碼版本和共享代碼

Doit 中擊圖形

會(huì)出現(xiàn)一系列對(duì)圖形的操作兑牡,可以點(diǎn)擊幾個(gè)按鈕試試效果

1.4 工作區(qū)間和腳本運(yùn)行(Workspaces and Transcripts)

Doit 關(guān)閉打開的窗口,點(diǎn)擊Tools工具欄兔簇,打開一個(gè)Transcriptsworkspaces发绢,調(diào)整位置

可以直接拖拽邊角實(shí)現(xiàn)縮放也可以中擊選擇縮放硬耍,
任何時(shí)候只有一個(gè)窗口是激活的垄琐。通常在最前面并且是高亮的。鼠標(biāo)在這個(gè)窗口區(qū)域
transcript用來(lái)輸出系統(tǒng)信息的對(duì)象经柴,可以看做系統(tǒng)控制臺(tái)system console 需要注意的是transcript會(huì)影響性能狸窘,打開與其交互會(huì)降低運(yùn)行效率,另外這個(gè)工作并不是線程安全的坯认,在多個(gè)操作發(fā)生時(shí)可能出現(xiàn)意外問題

workspace通常用來(lái)輸入代碼判斷翻擒,用來(lái)測(cè)試。也可以用來(lái)記錄文本內(nèi)容牛哺。如todo列表或者使用鏡像文件的姓名列表陋气。通常用來(lái)顯示一個(gè)鏡像文件的文檔。

Doit 在workspace輸入下面的語(yǔ)句
Transcript show: 'hello world'; cr .

然后嘗試在workspace進(jìn)行雙擊引润,注意單詞巩趁,文本被選中取決于點(diǎn)擊的穩(wěn)為主

Doit然后選擇整個(gè)文件,右擊淳附,選擇do it

transcript窗口將會(huì)顯示hello world文本议慰。再次運(yùn)行,(d)表示可以使用CMD-d進(jìn)行快捷操作

Do it

上面就是一個(gè)簡(jiǎn)單的Smalltalk表達(dá)式的計(jì)算過(guò)程奴曙。發(fā)送消息show 'hello wold'Transcript對(duì)象别凹。然后發(fā)送消息crTranscript接著準(zhǔn)備出來(lái)這些消息洽糟,查找show:方法和cr方法進(jìn)行相應(yīng)的響應(yīng)

隨著使用炉菲,會(huì)發(fā)現(xiàn)smalltalk并不會(huì)調(diào)用一個(gè)操作和方法只是簡(jiǎn)單的發(fā)送消息堕战。這個(gè)集中體現(xiàn)了面向?qū)ο蟮木幊趟枷搿?duì)象用來(lái)負(fù)責(zé)響應(yīng)動(dòng)作拍霜,只需要簡(jiǎn)單發(fā)送消息給對(duì)象即可践啄。而不是命令對(duì)象做什么。對(duì)象負(fù)責(zé)查找方法來(lái)響應(yīng)消息沉御。

1.5 鍵盤快捷鍵

計(jì)算表達(dá)式時(shí)屿讽,不一定需要使用右擊按鈕》婉桑可以直接使用鍵盤快捷鍵伐谈。通常在菜單中使用(x)進(jìn)行描述。根據(jù)不同操作平臺(tái)试疙,可以選擇不同的快捷命令鍵

Doit 使用CMD-d快捷鍵诵棵,計(jì)算workspace其中的表達(dá)式。
還可以使用do it print it inspect itexplore it快捷方式祝旷。

Doit在workspace中輸入3+4表達(dá)式履澳,然后選擇do it使用快捷鍵

可能會(huì)注意到并沒有任何事情發(fā)生,僅僅是發(fā)送+ 3到數(shù)字對(duì)象4.結(jié)果對(duì)象7已經(jīng)計(jì)算出來(lái)和得到返回怀跛。然而workspace并不會(huì)接受這個(gè)結(jié)果距贷,丟棄這個(gè)響應(yīng)。如果想要查看結(jié)果吻谋,需要選擇print it忠蝗。prinit it編譯表達(dá)式,執(zhí)行編譯結(jié)果,發(fā)送printSting到這個(gè)結(jié)果漓拾,顯示這個(gè)結(jié)果信息

Doit 選擇3+4 選擇print it

Doit 刪除高亮的7阁最,然后選擇3+4,選擇inspect it

inspector

這樣會(huì)打開一個(gè)新的inspector窗口,以SmallInteger:7作為標(biāo)題骇两,Inspector是一個(gè)非常有用的工作可以用來(lái)瀏覽與操作系統(tǒng)中的對(duì)象速种。標(biāo)題表明表達(dá)式的運(yùn)行結(jié)果。左側(cè)允許我們?yōu)g覽器對(duì)象的實(shí)例變量低千。右側(cè)顯示實(shí)例變量的信息配阵。底層用戶發(fā)送消息給這個(gè)對(duì)象來(lái)測(cè)試使用

Doit 在底層中輸入self squared,選擇print it
Doit 關(guān)閉inspector.在workspace輸入表達(dá)式Object然后選擇explore it

這次會(huì)打開一個(gè)以O(shè)bject為標(biāo)題的窗口如下


Exploring

栋操,

可以點(diǎn)擊對(duì)應(yīng)的小箭頭打開詳細(xì)信息.

explorer可以用來(lái)查找對(duì)象的信息闸餐,輸出一個(gè)樹狀信息。我們直接查找存儲(chǔ)在Object中的信息矾芙,

1.6 包管理 SqueakMap

SqueakMap是一個(gè)基于web的應(yīng)用與庫(kù)包管理系統(tǒng)舍沙,這個(gè)包管理系統(tǒng)使用分布式,由不同地方的人負(fù)責(zé)管理與維護(hù)剔宪。

Doit選擇Word>open..>SqueakMap package loader

package loader

可以在其中安裝對(duì)應(yīng)版本的應(yīng)用與庫(kù)包拂铡。

1.7 系統(tǒng)查看(The system Browser)

系統(tǒng)查看工具是開發(fā)中非常重要的工具壹无,其中包含幾個(gè)非常有用的窗口

Doit選擇word>open..>class browser打開

system browser

其中的標(biāo)題顯示了我們正在查看的對(duì)象類
系統(tǒng)查看工具打開時(shí),所有面板都是空的感帅,第一個(gè)面板是系統(tǒng)分類斗锭,包含所有的類

Doit在分類(Category-namespace)中選擇Kernel-Objects

第二個(gè)面板顯示分類(Category-namespace)下的類(class)

Doit在類(class)列表選擇Object類

第三個(gè)面板顯示當(dāng)前類的功能接口協(xié)議(protocols-interface)。包含方法的分類失球。第四個(gè)面板默認(rèn)顯示所有的方法

Doit在協(xié)議(protocols)列表選擇printing協(xié)議

可以滾動(dòng)查找到這個(gè)協(xié)議岖是,然后在第四個(gè)列表中出現(xiàn)所有相關(guān)的方法

Doit在方法(Method)列表查找printString方法

在底下會(huì)顯示方法的源代碼。

1.8 查看類(Finding Classes)

在Squeak中有多種方法可以用來(lái)查找一個(gè)類实苞,首先可以使用系統(tǒng)查看器豺撑,查找

另外一種方法是發(fā)送browse消息到類,這個(gè)請(qǐng)求會(huì)打開一個(gè)類的查看器黔牵,

Doit 在workspace中輸入Boolean browse聪轿,然后選擇do it

這樣會(huì)打開一個(gè)關(guān)于Boolean類的查看窗口

Doit使用鍵盤快捷方式查看Boolean類

值得注意的是類Boolean被選擇后,協(xié)議與方法并么有進(jìn)行選擇猾浦。
最低下顯示了兩個(gè)面板陆错,中間包含類的定義(class definition),包含需要發(fā)送給父類用來(lái)創(chuàng)建一個(gè)子類的源代碼金赦。這里包含創(chuàng)建一個(gè)命名為Boolean的子類音瓷,并沒有包含任何實(shí)例變量,類變量或者字典信息素邪。并且將Boolean類存儲(chǔ)到Kernel-Objects 類分類下

最低層的面包包含類的注釋(class comment)外莲,用來(lái)描述了id意義猪半,可以單擊類面板下的?號(hào)來(lái)查看

如果想查看繼承鏈兔朦,可以使用hierarchy browser

Doit單擊中間的hierarchy,查看Boolean類的繼承鏈
打開一個(gè)繼承鏈查看窗口,展示了Boolean的父類和子類信息磨确。非直接父類和子類則關(guān)閉的

經(jīng)常使用名稱類查找一個(gè)類沽甥,另外還可以查找不知道名稱或者忘記名稱的類

Doit鼠標(biāo)放置在系統(tǒng)查看器的類分類面板中,輸cmd-f乏奥“谥郏或者選擇find class(f)....輸入Time

接下來(lái)會(huì)看到一系列包含time的類的列表,選擇Time邓了,可以查找其具體信息恨诱。切換另一個(gè)可以使用cmd-b。返回上次查找的類

1.9 查看方法(Finding Methods)

有時(shí)候只記得方法的名稱或者方法名稱的一部分骗炉≌毡Γ可以使用方法查找來(lái)獲取其信息

Doit 選擇method finder圖標(biāo),然后輸入now句葵。按回車鍵

接下來(lái)方法查找其會(huì)顯示一系列包含now的方法厕鹃。滾動(dòng)到now兢仰。右側(cè)面板將會(huì)顯示包含now方法的三個(gè)類。選擇其中一個(gè)并打開它

now

有時(shí)候剂碴,僅僅指定有一個(gè)方法存在把将,不清楚具體名稱。也可以使用方法查看器忆矛,比如察蹲,需要找到一個(gè)方法將字符串轉(zhuǎn)換為大寫,

Doit 在方法查找器中輸入a.A催训。
方法查找器將會(huì)返回可能需要的方法

uppercase

右側(cè)面板顯示復(fù)合條件的方法递览。星號(hào)表明所在的類,方法將會(huì)執(zhí)行瞳腌,返回需要的結(jié)果绞铃,沒有星號(hào)的方法返回這個(gè)期望的結(jié)果,復(fù)合條件但是并么有得到執(zhí)行

也可以使用參數(shù)來(lái)查找方法嫂侍。比如可以查找一個(gè)方法用來(lái)查找兩個(gè)數(shù)字的最大公因子儿捧。可以試著輸入25.35.5作為例子挑宠。

1.10 定義新的方法

測(cè)試驅(qū)動(dòng)開發(fā)已經(jīng)改變了編寫代碼的方式菲盾,這個(gè)測(cè)試驅(qū)動(dòng)的背后理念稱為行為驅(qū)動(dòng)開發(fā)或者TDD。通常編寫一系列的例子來(lái)定義預(yù)期行為各淀。來(lái)測(cè)試我們的代碼懒鉴。用來(lái)確保代碼的嚴(yán)謹(jǐn)性

經(jīng)常使用例子說(shuō)明一個(gè)方法的意義

testShout
  self assert:('Dont"t painc' shout = 'DON"T PANIC!')

那么我們?nèi)绾卧赟queak里面定義一個(gè)新的方法。首先我們需要確定方法所在的類型碎浇。這個(gè)shout方法需要定義在String類中临谱。對(duì)應(yīng)的測(cè)試?yán)樱覀兪褂肧tringTest

Doit查找StringTest類奴璃,選擇一個(gè)合適的協(xié)議tests-converting悉默。然后下面會(huì)提示一個(gè)模板來(lái)實(shí)現(xiàn)方法,刪除苟穆,輸入上面的代碼抄课,然后選擇accept(s)進(jìn)行編譯保存。

因?yàn)槿鄙?code>shout方法雳旅,這個(gè)窗口將會(huì)需要確認(rèn)這個(gè)方法跟磨。可以用來(lái)進(jìn)行類型檢查攒盈,但是這個(gè)例子中抵拘,下面我們創(chuàng)建shout方法。

Doit為了運(yùn)行創(chuàng)建的新的test沦童。打開SUint TestRunner仑濒。word>open>test runner

打開的窗口的左側(cè)顯示系統(tǒng)類分類列表叹话,

Doit選擇Collections Tests-Text然后右側(cè)會(huì)顯示對(duì)應(yīng)的測(cè)試類。選擇其中的StringTest墩瞳。點(diǎn)擊下面的Run selected運(yùn)行這些測(cè)試?yán)?br>

Test runner

將會(huì)看到測(cè)試運(yùn)行的信息溶耘。
可以使用調(diào)試器對(duì)其中的代碼進(jìn)行調(diào)試

debugger

Doit選擇String類熬甚,然后選擇converting協(xié)議驱敲,輸入下面的方法定義鹿霸,然后編譯保存

Method定義
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市泪电,隨后出現(xiàn)的幾起案子般妙,更是在濱河造成了極大的恐慌,老刑警劉巖相速,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碟渺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡突诬,警方通過(guò)查閱死者的電腦和手機(jī)苫拍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)旺隙,“玉大人绒极,你說(shuō)我怎么就攤上這事∈呓荩” “怎么了垄提?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)周拐。 經(jīng)常有香客問我铡俐,道長(zhǎng),這世上最難降的妖魔是什么速妖? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任高蜂,我火速辦了婚禮,結(jié)果婚禮上罕容,老公的妹妹穿的比我還像新娘。我一直安慰自己稿饰,他們只是感情好锦秒,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喉镰,像睡著了一般旅择。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侣姆,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天生真,我揣著相機(jī)與錄音沉噩,去河邊找鬼。 笑死柱蟀,一個(gè)胖子當(dāng)著我的面吹牛川蒙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播长已,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼畜眨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了术瓮?” 一聲冷哼從身側(cè)響起康聂,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胞四,沒想到半個(gè)月后恬汁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辜伟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年蕊连,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片游昼。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡甘苍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烘豌,到底是詐尸還是另有隱情载庭,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布廊佩,位于F島的核電站囚聚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏顽铸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一料皇、第九天 我趴在偏房一處隱蔽的房頂上張望谓松。 院中可真熱鬧,春花似錦践剂、人聲如沸鬼譬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)优质。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巩螃,已是汗流浹背演怎。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留避乏,地道東北人爷耀。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像淑际,于是被迫代替她去往敵國(guó)和親畏纲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理春缕,服務(wù)發(fā)現(xiàn)盗胀,斷路器,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • Ubuntu的發(fā)音 Ubuntu屑迂,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音冯键。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,362評(píng)論 9 467
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,302評(píng)論 25 707
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法惹盼,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法惫确,繼承相關(guān)的語(yǔ)法手报,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,664評(píng)論 18 399
  • 1/ 說(shuō)走就走:布拉格 說(shuō)起布拉格,人們總會(huì)想起蔡依林的那首《布拉格廣場(chǎng)》陈肛,我就站在布拉格黃昏的廣場(chǎng)揍鸟,在許愿池投下...
    尋找不同的蜜蜂閱讀 793評(píng)論 14 21