1. 程式人生 > >看《Thinking in Java》的一點點總結

看《Thinking in Java》的一點點總結

這兩天,看了《Thinking in Java》的兩章:異常和方法學,以及附錄B,有一點點小體會。

關於異常,一直都沒怎麼用,貌似就沒這個概念~~  555  或許還得構建的自己的一套異常系統,所以,一直總是想想而已,沒有真正的實踐起來~

方法學和附錄B,最想說的是:

1,讓系統跑起來

2,用程式碼證明或者反駁你的設計

這兩條相當的實用,可以奉為聖經!!!

1,再好的設計,如果系統執行不起來,也是白搭

2,很多時候總是紙上談兵,交流辯論必不可少,但,只有真正把想法實現為程式碼,才能知道正確與否!一位偉人說過:“沒有調查就沒有發言權”,說的就是這個道理!

結合最近的一個專案,對書中方法中提到的6個階段,也小有體會

階段0:制定計劃

階段1:做什麼?

階段2:如何構建?

階段3:構建系統核心

階段4:迭代用例

階段5:演化

Bruce把軟體開OOP的開發過程總結為以上幾個階段,由於我水平有限,對於這幾個階段,我更多的是一個迭代的過程:

階段1:做什麼? 對於這個階段,我理解為需求分析,雖然我很努力的做需求,可是,總是覺得缺什麼,在開始編碼的時候可以發現,這時,我只能從編碼中回來理解需求。

階段2:如何構建?類設計。和需求一樣,我也很努力的根據需求進行分析,設計類。可是,或許這是我專案中最失敗的地方,真正編碼的時候,發現缺了好多好多的類。。。。

階段3:構建核心系統。我的理解為,構建系統的工作流程。現在的我,也是這麼開始執行。根據需求,先把系統的框架搭建出來,一步一步的滿足需求和細化。

階段4:迭代用例。這個我必須得這麼做,或許全部用例我都得“迭代”。

階段5:演化,我把這個理解為對程式碼重構。

階段3是我現在的根本,按照系統的框架不斷的進行重構,對我來說,或許是我現在最好的開發方法。

關於但願你測試:

Bruce說道,“如果寫不出測試,說明類的功能不明確”,非常同意。我確實是對類的職責劃分和協作,沒有明確的想法。

書中還說道,“首先構建測試系統”,這個雖然一直都想這麼做,可是,沒辦法,實在做不出來。

雖然如此,但是,這次的專案中,我還是加入單元測試,哪怕是在程式碼出來的時候加入。

以上是我的一點點體會,歡迎大家吐槽~~

相關推薦

thinking in java () ----- 萬物皆物件

reference是控制物件的鑰匙 在java中,一切的事物都被稱為物件,我們用於操控物件的標誌符號,實際上只是“reference”(引用)。reference和物件之間的關係,就好比是遙控器和電視的關係一樣。對電視進行換臺調節音量等,實際上是對遙控器進行的操作。  

Thinking in Java ---final關鍵字總結+初始化和類的載入

final關鍵字既可以用來修飾基本變數,引用也可以用來修飾方法和類。在修飾不同的物件時有不同的含義,很容易搞混淆,在此做一個小結。瞭解一下繼承情況下變數的初始化和類的載入機制,也能讓我們對程式執行時發生的一切有一個全域性性的把握。 一。final關鍵字

Thinking in Java》的點點總結

這兩天,看了《Thinking in Java》的兩章:異常和方法學,以及附錄B,有一點點小體會。 關於異常,一直都沒怎麼用,貌似就沒這個概念~~  555  或許還得構建的自己的一套異常系統,所以,一直總是想想而已,沒有真正的實踐起來~ 方法學和附錄B,最想說的是:

51.關於display屬性的點點總結代碼

png wid ade size add ott bottom blog com CSS .display{ border: 1px solid; margin-bottom: 3px;

Thinking in Java學習筆記()物件導論

  最近在看java程式設計思想,對其中自己的一些收穫記錄下來,一方面是加強鞏固自己的學習,另一方面也是方便以後翻閱檢視。 1、將物件看作服務提供者   把物件當作服務的提供者,也就是指關注物件能實現哪些功能,提供哪些服務?它需要哪些物件支援才能實現這些功能?   這樣做的好處就是:

thinking in java (十八) ----- 集合之Map(HashMap HashTable)總結

Map框架圖 Map概括 Map是鍵值對對映的抽象介面 AbstractMap實現了Map中的大部分介面,減少了Map實現類的重複程式碼 HashMap是基於拉鍊法實現的散列表,一般使用在單執行緒程式中 HashTable是基於拉鍊法

thinking in java (十七) ----- 集合之List總結

List概括 首先回顧一下關係圖 Lsit是一個介面,繼承與Collection介面,它代表的是有序的佇列 AbstractList是一個抽象類,它繼承於AbstractCollection,AbstractList實現List介面中除了size(),get(

thinking in java (十) ----- 集合之ArrayList

ArrayList概述 ArrayList是實現了List介面的動態陣列,所謂的動態是其大小可變。允許包括null在內的元素。除了實現List介面外,此類還提供了一些方法來操控內部來儲存列表的陣列大小。 每個ArrayList例項都有一個容量,該容量是指用來儲存元素的陣列大小。

thinking in java (六) ----- 內部類(,Inner classes)

將某個class定義置於另一個class定義之中是可行的,這就是內部類。 內部類基礎 內部類一般來說包括以下幾種:成員內部類,區域性內部類,匿名內部類,靜態內部類。 成員內部類 成員內部類是最普通的內部類,定義在一個外部類的內部,如下: class Cir

thinking in java (三十) ----- IO之 BufferedWriter

介紹 BufferedWriter 是緩衝字元輸出流。它繼承於Writer。 BufferedWriter 的作用是為其他字元輸出流新增一些緩衝功能。 原始碼分析 package java.io; public class BufferedWriter ex

final關鍵字 ——Thinking in Java學習筆記(十

final的使用情況一般分為三種:資料、方法、類 final資料 final修飾的資料表示值不可變,引用不能改變。其中,對資料的修飾又分為: 1、final成員變數:由final修飾的類成員變數,如果是基礎資料型別就表示不能改變它的值,但如果是已經初始化了的引用

一起讀《Thinking in Java》知識點

一切都是物件 1、Java中高精度資料型別 BigInteger 支援任意精度的整數。也就是說,在運算中,可以準確地表示任何大小的整數值,而不會丟失任何資訊。 BigDecimal 支援任意精度的浮點數,例如,可以用它進行精確的貨幣計算。 2、別名現象 Class Tank{

Thinking in Java閱讀筆記(

第一章:物件導論 抽象化的過程 組合語言僅對底層的實體機器進行少量抽象化。許多所謂命令式程式語言(Fortran、BASIC、C),則在組合語言之上再抽象化。此類語言大幅改進了組合語言,但他們所做的主要是機器本身的抽象化,你依舊無法逃脫“以電腦結構進行問思考”的命運,因而

Thinking in Java》 And 《Effective Java》啃起來

大學 前言 技術 數據結構和算法 解決 一句話 定義 應該 太多的 前言   今天從京東入手了兩本書,《Thinking in Java》(第四版) 和 《Effective Java》(第二版)。都可以稱得上是硬書,需要慢慢啃的,預定計劃是在今年前把這兩本書啃完。哈哈,可

Thinking in Java(第四版)—— 第二章 一切皆對象

ati 靜態 數據類型 thinking short str 變量 屬於 字符 一.對象保存的位置 寄存器(cpu) 棧(變量) 堆(對象) 靜態域(static) 常量池(string) 非內存區池 二.基本數據類型 整數型 byte short int

又讀Thinking in Java

初始化過程 碎片 技術 適應 表示 忘記 操作系統 可變 方法名 前幾天又把Thinking in Java的第五章看了一遍,當然。又是收獲多多,盡管沒有去年第一次看到這本書時的興奮——當時每天非常晚下班回宿舍後都是必看一點的,可是也撿起了不少忘掉的東西。

Thinking in Java---多線程仿真:銀行出納員仿真+飯店仿真+汽車裝配工廠仿真

fun now() system engine 多線程並發 dom ret n) 遞歸 多線程一個非常有意思的作用就是用於仿真,這篇博客就會結合幾個仿真實例來綜合運用一下前面所學的多線程並發知識。 一.銀行出納員仿真 問題描寫敘述:銀行會有非常多來辦

Thinking in Java -- 類型信息RTTI

告訴 包名 clas 內容 磁盤 tty 限定 lines 連接 Thinking in Java – 類型信息 個人感覺 java 中的比較難的部分了,在看了些netty源代碼發現事實上這塊很實用。

點點總結Spring整合Hibernate Day1

dia .cn ror mysql5 dial word too locals spring整合 一點點總結Spring整合Hibernate Day1 IDE: IntelliJ IDEA 2017 數據庫:MySql 另外加入的的jar包: 1.用於Spring A

Java泛型Generic - Thinking in Java讀書筆記

asp som 但是 oid 而且 containe nbsp 來替 note 1.什麽是泛型? 泛型就是可適用於很多的類,它實現了參數化類型type parameter的概念,參數化類型指可使用多種類型。 多態是一種泛化機制。 例如方法 A(Base b){}//Base