《卓有成效的程序员》----读书笔记一
目錄:
快捷鍵的使用
文件快速檢索
1.本書概況
轉自圖靈社區
一.機制
1、加速法則 :使用各種工具或技巧,使自己工作效率最優化
關注本質,而非形式
鍵盤輸入總比導航快 簡化啟動面板,將最常用功能最優先化
花點時間來學習你手邊所有隱藏的快捷鍵
環境切換會消耗時間,盡量減少環境切換
記住操作的歷史,忘記歷史就意味著你得重新再輸入一遍
嵌入圖形化工具的命令提示符讓你魚與熊掌兼得
在資源管理器中嵌入命令提示符使環境切換更容易
開發時優先使用鍵盤而非鼠標-----------------快速切換至地址欄 Alt+D
在上下文中學習IDE快捷鍵,而不要出背長長的列表
當你第二次輸入一個復雜結構時,將它做成模板
在工具中使用查找手段來導航
如果要對多行文本做同樣的事情,就應該找出其中的模式,并把它記錄為一個宏
在一個文本上執行某個特定操作的次數越多,就越有可能會再次重復他
不要總是重復輸入相同的命令,使用鍵盤宏功能
每天花一點時間來使每天都更高效
2、專注法則:想辦法改變環境以減少打擾,減少來自電腦的干擾以及借助工具保持專注
排除干擾
精力越集中,思維越縝密
策略:隔離策略、創造安靜時間、關掉不需要的提示----修改注冊表
搜索優于導航
草堆越大,從中找到一根針就越難
不要文件樹,要搜索
在訴諸高級搜索之前,先嘗試簡單的搜索
使用有根視圖,有根視圖把資源管理器變成了項目管理工具
充分利用內建的機制(例如顏色)來幫助你集中注意力
使用基于項目的快捷方式,用鏈接來創建虛擬的項目管理目錄
虛擬桌面可以讓原本雜亂無章的一大推窗口變整潔-----Virtual Desktop manager
3、自動化法則:自動化每天重復的工作或任務,留住寶貴的時間做更有價值的事情
不要重新發明輪子,給合適的任務尋找合適的工具
即便不是工具最初的設計意圖,只要是合適的場合,同樣可以使用這些工具
不要浪費時間動手去做可以被自動化的事情
做簡單重復的事情實在浪費注意力
以創造性的方式解決問題,有助于在將來解決類似的問題
是否應該自動化的關鍵在于投資回報率和緩解風險
研究型的工作應該放在時間盒里做
別讓自動化的努力變成剪牦牛毛(注意你的解決的核心問題)
建立本地緩存
自動訪問網站(cUrl工具)
與RSS源交互|Yahoo!pipes、automator
在構建之外使用ant,
用Rake執行常見任務
用Selenimu瀏覽網頁
用Bash統計異常數
4、規范性法則:消除重復,保持規范化
DRY-Don’t repeat yourself!
對于任何你不自己去構建的東西,只在版本控制中保存一份副本
使用間接機制創建友善的工作空間
使用間接機制來保持穩健同步
通過復制粘貼來復用是邪惡的,不論你復制粘貼到是什么
利用虛擬平臺使項目以來標準化
始終保持代碼和數據庫結構的同步
使用遷移為數據庫結構的改動創建可重復的快照
過時的文檔比沒有文檔更糟,因為它會自動誤導你
對管理者來說,文檔意味著緩解風險
始終保持“活”的文檔,最好是能自動生成svn2wiki
任何需要費勁創造的東西,都讓它的創造者欲罷不能
白板+數據相機強過任何的CASE工具
盡量生成所有的技術文檔
重復是軟件開發中最大的阻力
二.實踐
1、測試驅動設計
測試代表著軟件開發行為中工程式的嚴謹部分
把注釋重構成方法
代碼需要進行度量
代碼需要統計代碼測試覆蓋率
2、靜態分析:通過軟件工具對程序代碼進行驗證
靜態分析工具提供了便宜實惠的驗證手段
動態語言分析
3、當個好公民
4、YAGNI – You Ain’t Gonna Need It!你不會需要它
如無必要,勿增復雜度
軟件開發首先是一場溝通博弈
5、古代哲人 – 哲學思想對構建高質量軟件有直接的影響
亞里士多德 “事物本質性質和附屬性質” -> 致力本質復雜度,去除附屬復雜性
奧姆剃刀原理 -> 如果對一個現象有好幾種解釋,那么最簡單的解釋往往是最正確的
Dietzler定律:即使是通用目的變成語言也逃不出“80-10-10準則”(80%的需求可以很快完成,下一個10%需要花很大的努力才能完成,而最后的10%卻幾乎是不可能完成的)的魔咒。
迪米特法則 -> 任何對象都不需要知道與之交互的那些對象的任何內部細節
關注那些“古老的”軟件技術學說。理解已存在的軟件學說,能給你提供很好的資源
6、質疑權威 -> 推行標準是一件好事,但不能盲從標準
7、元編程 -> 編寫“會寫程序”的程序
元編程改變了你的語法詞典,給你提供了更多表達自己的方式
元編程的語言允許開發者使用額外的能力,由開發者決定什么時候使用這些額外的能力
java與反射
groovy
編寫連貫接口
8、組合方法和SLAP(Single Level of Abstraction Principle,單一抽象層次原則)
重構成組合方法能暴露出隱藏的可復用代碼
TDD實踐推動組合方法模式
9、多語言編程
10、尋找完美工具
尋找屬于你的完美編輯器,并從里到外去了解它
你可以使用宏來記錄所有重復的文本操作
可以從命令行調用的
掌握好正則表達式將為我們節省大量的精力
如果能夠批量處理,就不要來回做重復的工作
用“真正的”腳本語言去完成自動化任務
將行為保留在可測試的代碼中。xml不應該帶有行為特性,行為特性由動態語言來完成
關注每個小工具的演化
丟棄錯誤的工具,盡量少交復雜稅
一些比較實用的工具或軟件:
windows工具:Windows PowerToys、Tweak UI、Virtual Desktop manager(workspace之間切換的快捷鍵是:ctrl + alt + 方向鍵)
應用程序快速加載器:launchy、Colibri、Enso。QuickSilver(MacOSX),個人推薦TypeAndRun或AltRun
Command Prompt Explorer Bar 兼有圖形和命令行(ctrl+m)。path Finder(Mac OSX)
cygwin
強制快捷鍵工具:Key Prompter(eclipse、IntelliJ).http://www.mousefeed.com
鍵盤宏工具:AutoHotKey
集中注意力工具:jediconcentrate
搜索工具:google desktop serch,插件Any Text FileIndexer(可搜索文本內容),UNIX下的find命令,個人推薦Everything
文件管理工具:subversion、git
持續集成:CruiseControl、Bamboo、Hudson、TeamCity、LuntBuild
問題跟蹤和WIKI:Trac
敏捷項目管理:Mingle
Ant、Gant、Groovy
UML圖生成工具:yDoc
數據庫結構生成工具:SchemaSpy
代碼度量工具:McCabe的圈復雜度(邊數-節點數 +2 | 邊代表執行路徑,節點代表代碼的行數)、javaNCSS、Saikuro
靜態分析工具:Findbugs、PMD、CheckStyle、CPD
統計數據生成工具:Panopticode(包括emma、jdepend、javaNcss、simian、Panopticode Aggregator)
Jaskell
個人經驗和實踐:
自動化一切可以自動化的任務和日常工作,不能自動化的也要想盡辦法自動化,盡量不要做重復性的工作 保持簡單和優美,簡單即是美
學會一種動態語言,比如ruby,python,在工作中會有很大的幫助
善用工具,創造工具
桌面快捷鍵總結:
1 workspace之間切換的快捷鍵是:ctrl + alt + 方向鍵
2 切換至地址欄Alt+D
?
?
2.快捷鍵的使用
Google Chrome 快捷鍵知多少
主題不會用?插件不會設置?博客使用出問題?就上WordPress問答找答案!使用快捷鍵,減少鼠標的定位過程,可以在很大程度上提高工作的效率,在Google Chrome 中也一樣,快捷鍵可以提高我們沖浪的效率。
比如,使用 Google Chrome 進行全屏瀏覽時,想要在標簽頁間進行切換,這時使用快捷鍵是非常方便的:使用 Ctrl+Shift+Tab 或 Ctrl+PgUp 即可切換至上一個標簽頁,而 Ctrl+Tab 或 Ctrl+PgDown 則可方便的切換到下一個標簽頁。
下面所列為 Google Chrome 快捷鍵,其中有一些非常實用,掌握之后可以讓你的瀏覽速度變得更加快捷:
窗口和標簽頁快捷鍵
| Ctrl+N | 打開新窗口 |
| Ctrl+T | 打開新標簽頁 |
| Ctrl+Shift+N | 在隱身模式下打開新窗口 |
| Ctrl+O,然后選擇文件 | 在谷歌瀏覽器中打開計算機上的文件 |
| 按住?Ctrl?鍵,然后點擊鏈接 | 從后臺在新標簽頁中打開鏈接,但您仍停留在當前標簽頁中 |
| 按住?Ctrl+Shift?鍵,然后點擊鏈接 | 在新標簽頁中打開鏈接,同時切換到新打開的標簽頁 |
| 按住?Shift?鍵,然后點擊鏈接 | 在新窗口中打開鏈接 |
| Alt+F4 | 關閉當前窗口 |
| Ctrl+Shift+T | 重新打開上次關閉的標簽頁。谷歌瀏覽器可記住最近關閉的 10 個標簽頁。 |
| 將鏈接拖動到標簽頁內 | 在指定標簽頁中打開鏈接 |
| 將鏈接拖動到兩個標簽頁之間 | 在標簽頁橫條的指定位置建立一個新標簽頁,在該標簽頁中打開鏈接 |
| Ctrl+1?到?Ctrl+8 | 切換到指定位置編號的標簽頁。您按下的數字代表標簽頁橫條上的相應標簽位置。 |
| Ctrl+9 | 切換到最后一個標簽頁 |
| Ctrl+Tab?或?Ctrl+PgDown | 切換到下一個標簽頁 |
| Ctrl+Shift+Tab?或Ctrl+PgUp | 切換到上一個標簽頁 |
| Ctrl+W?或?Ctrl+F4 | 關閉當前標簽頁或彈出式窗口 |
| Alt+Home | 打開主頁 |
地址欄快捷鍵在地址欄,進行下列操作之一:
| 鍵入搜索字詞 | 使用默認搜索引擎進行搜索 |
| 鍵入網址中”www.”和”.com”之間的部分,然后按?Ctrl+Enter?鍵 | 為您在地址欄中輸入的內容添加”www.”和”.com”,然后打開網址 |
| 鍵入搜索引擎關鍵字或網址,按Tab?鍵補全,然后鍵入搜索字詞 | 使用與關鍵字或網址相關聯的搜索引擎進行搜索。如果谷歌瀏覽器可以識別您要使用的搜索引擎,則會提示您按?Tab?鍵。 |
| F6?或?Ctrl+L?或?Alt+D | 選中網址區域中的內容 |
| 鍵入網址,然后按?Alt+Enter?鍵 | 在新標簽頁中打開網址 |
打開谷歌瀏覽器各功能的快捷鍵
| Ctrl+B | 打開和關閉書簽欄 |
| Ctrl+Shift+B | 打開書簽管理器 |
| Ctrl+H | 查看”歷史記錄”頁 |
| Ctrl+J | 查看”下載”頁 |
| Shift+Escape | 查看任務管理器 |
| Shift+Alt+T | 將焦點設置在工具欄上。使用鍵盤上的向右和向左箭頭,可導航至工具欄上的不同按鈕。 |
網頁快捷鍵
| Ctrl+P | 打印當前頁 |
| Ctrl+S | 保存當前頁 |
| F5 | 重新加載當前頁 |
| Esc | 停止加載當前頁 |
| Ctrl+F | 打開”在網頁上查找”框 |
| 點擊鼠標中鍵或滾輪 | 激活自動滾動。當您移動鼠標時,網頁會根據鼠標的移動方向自動滾動。 |
| Ctrl+F5?或?Shift+F5 | 重新加載當前頁,但忽略緩存內容 |
| 按住?Alt?鍵,然后點擊鏈接 | 下載鏈接 |
| Ctrl+G?或?F3 | 查找與您在”在網頁上查找”框中輸入的內容相匹配的下一個匹配項 |
| Ctrl+Shift+G?或?Shift+F3 | 查找與您在”在網頁上查找”框中輸入的內容相匹配的上一個匹配項 |
| Ctrl+U | 查看源代碼 ? ? ? ? ? |
| 將鏈接拖動到書簽欄 | 將鏈接加入書簽 |
| Ctrl+D | 將當前網頁加入書簽 |
| Ctrl++,或者按住?Ctrl?鍵并向上滾動鼠標滾輪 | 放大網頁上的所有內容 |
| Ctrl+-,或者按住?Ctrl?鍵并向下滾動鼠標滾輪 | 縮小網頁上的所有內容 |
| Ctrl+0 | 將網頁上的所有內容都恢復到正常大小 |
文字快捷鍵
| 選中內容,然后按?Ctrl+C?鍵 | 將內容復制到剪貼板 |
| 將光標置于文本字段中,然后按?Ctrl+V?或?Shift+Insert?鍵 | 從剪貼板粘貼當前內容 |
| 將光標置于文本字段中,然后按?Ctrl+Shift+V?鍵 | 從剪貼板粘貼當前內容的純文本部分 |
| 選中文字字段中的內容,然后按?Ctrl+X?或?Shift+Delete?鍵 | 刪除內容并將其復制到剪貼板 |
更多快捷鍵
| Backspace,或同時按住?Alt?和向左箭頭鍵 | 轉至標簽頁瀏覽歷史記錄中的上一頁 |
| Shift+Backspace,或同時按住?Alt?和向右箭頭鍵 | 轉至標簽頁瀏覽歷史記錄中的下一頁 |
| Ctrl+K?或?Ctrl+E | 將”?”置于地址欄中。在”?”之后鍵入搜索字詞,以使用默認搜索引擎進行搜索。 |
| 將光標置于地址欄中,然后同時按住?Ctrl和向左箭頭鍵 | 跳到地址欄中的前一個字詞 |
| 將光標置于地址欄中,然后同時按住?Ctrl和向右箭頭鍵 | 跳到地址欄中的下一個字詞 |
| 將光標置于地址欄中,然后按住Ctrl+Backspace?鍵 | 刪除地址欄中的上一個字詞 |
| 空格鍵 | 向下滾動網頁 |
| Home | 轉至網頁頂部 |
| End | 轉至網頁底部 |
| 按住?Shift?鍵并滾動鼠標滾輪 | 在網頁上水平滾動 |
from:?http://www.cnblogs.com/abc8023/p/3700373.html
總結
以上是生活随笔為你收集整理的《卓有成效的程序员》----读书笔记一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在本地安装git的HTML帮助文档
- 下一篇: 《卓有成效的程序员》----读书笔记二