2015年7月25日 星期六

調整你的 Visual Studio - Part.3

這一篇其實並不會像前兩篇講太多有關工具設定或調整的內容,著重在一個重點「快」。很多人都會問我「要怎樣才能快速產出?」「要如何才能有效率的開發?」,要不然就是跟我直接說要我教他們如何快速寫程式。

其實這有很大的誤會,因為熟悉我的人都會知道我其實寫程式是很慢的,慢就算了,而且會非常吹毛求疵,因為我不希望我所寫的程式在交付上線之後會有嚴重的問題出現,所以我會很嚴謹地寫程式,尤其現在我已經在專案開發導入測試之後,我一定會在交付前將所有功能的測試給完成並通過後才會交出去,所以我寫程式會快嗎?當然不會有多快,但是我還是可以在同樣的時間內將功能給完成而且還包含測試,這並沒有什麼魔法或奇蹟,只是開發習慣的養成而已。

 


程式開發人員最寶貴的東西是什麼?除了開發的技術與能力之外,開發人員的「時間」是最寶貴的,因為每個人的時間都是一樣的,在同樣的時間裡要把專案裡這麼多的功能給開發完成,很多開發人員總是天天緊盯死線時間,然後總是提心吊膽地深怕需求端又不時會加新功能或是修改規格,幾乎每個開發人員一定都會說「時間不夠用」。

有限的時間裡要開發這麼多的功能,開發人員唯一能夠偷的時間就是想辦法去節省開發過程中每個環節裡的瑣碎時間,什麼是瑣碎時間呢?就是:

你手離開鍵盤
手移到滑鼠
手抓著滑鼠去移動指標在各個功能選項裡尋找你要的項目
點擊滑鼠左鍵執行功能
手離開滑鼠
手移回鍵盤

就是這一連串的動作的瑣碎時間。

其中「手抓著滑鼠去移動指標在各個功能選項裡尋找你要的項目」這個動作更是最耗費時間,常常看到別人開發的時候,為了要重新建置方案或專案時,就會使用滑鼠去操作,在一堆的功能項目裡去找尋要執行的項目,雖然項目位置在長久以來的編輯過程都已經習慣了,但有時候還會按錯,這樣手在鍵盤、滑鼠之間移來移去,再加上找出功能項目的時間,其實如果真的算下來,你就會發現這些還真的很浪費時間。

這幾天在 Facebook 上看到朋友分享與討論的內容:I have 5 years of working experience, but I still code very slow. How can I code faster? What should I learn?

另外 91 也針對這一篇文章發表了他的看法:91 敏捷開發之路 - Coding too Slow?

 

想要讓你的開發速度可以加快,最直接以及可以最快掌握的解決方式就是「熟記快速鍵」,從你的開發習慣裡去想辦法將每次的操作裡把時間給節省下來。

Visual Studio 裡面有很多的組合快速鍵,在幾年前我也曾經寫過一篇以 Visual Studio 快速鍵為主題的文章:mrkt 的程式學習筆記: Visual Studio 快速鍵整理 - 編輯

然後在 twMVC #15 研討會裡,在我所分享的「開發的效能與效率」這個主題內就有說過要善用 Visual Studio 以及熟悉快速鍵和安裝好用的 Extensions,並且向大家介紹有個網站有將 VS2012, VS2013 的所有預設快速鍵給完整列出來,

Visual Studio 2012 keyboard shortcuts - complete list

Visual Studio 2013 keyboard shortcuts - complete list

Visual Studio 2015 在 2015/07/20 Release 了,所以也有 VS2015 Shortcuts,

Visual Studio 2015 keyboard shortcuts - complete list

image

 

如果你想要修改快速鍵的設定,或是增加你想要的功能快速鍵,可以到「工具 > 選項」

image

「環境 > 鍵盤」

SNAGHTML10eebe5

可以在上面的介面裡去修改、新加入功能快速鍵,不過這邊不建議你去把原本預設且習慣的快速鍵做修改,只會徒增自己的困擾而已。

 

如果你跟我一樣會在 Visual Studio 安裝了很多的套件,那麼快速鍵就會比原本預設快速鍵增加很多,要是有安裝 ReSharper 或 Telerik JustCode 等套件時,就有可能會大幅度的對原本的 Visual Studio 預設快速鍵做修改(有用過 ReSharper 的朋友應該有深刻感受),這時候你可能就無法掌握全部的快速鍵,而且你也不會想從「工具 > 選項 > 環境 > 鍵盤」去找出所有的快速鍵。

 

Visual Studio Extensions - FeinCtrl 擴充功能

image

https://visualstudiogallery.msdn.microsoft.com/2c3354bd-8efd-4ea7-9099-a5fd80ca4185

這個擴充功能有支援 VS2012, VS2013 以及 VS2015,這東西有什麼用呢?其實在 SubTitle 就已經說明清楚了「Visual Studio keyboard binding browser」。

安裝了之後在 Visual Studio 裡面的「工具」項目就會增加「FeinCtrl 」選項,

image

點擊「FeinCtrl」項目後就會出現一個視窗,這個視窗裡就會把你目前使用的 Visual Studio 裡面的鍵盤快速鍵給列出來,

image

而且可以將這些鍵盤快速鍵的資料給匯出為 CSV 檔案,

image

image

 

滿山滿谷的快速鍵並不是每一個都必需要記起來,只需要先把常用的幾組給背起來,並且強迫自己養成習慣去熟悉,例如:

格式化程式內容就直接反射性的使用 Ctrl +K, Ctrl +D

image

另外也要熟悉呼叫各種檢視視窗的快速鍵,例如常會用到的有「錯誤清單」「輸出」「方案總管」「書籤視窗」「全螢幕」「屬性」等

image

建置相關的功能選項也會常常用到,所以也建議需要記起來,不過像這邊的「建置方案」「重建方案」「清除方案」等,如果沒有設定快速鍵的話,我就會去用 Alt + B + B, Alt + B +R, Alt +B + C 的方式去操作,

image

在 Visual Studio 裡,當你按下 Alt 鍵是會預設讓我們再加上對應功能項目的英文字母,就會開啟該功能項目,

以下是還沒按「ALT」

image

下面是當按下「ALT」後的樣子(在每個選項後面的英文字母下面多了底線)

image

例如你要到「建置」功能項目時,可以按下「ALT + B」就會展開「建置」功能項目,

image

接著再去記住建置方案、重建方案、清除方案所對應的「B, R, C」就可以使用組合快速鍵來執行。

建置方案 ALT + B + B
重建方案 ALT + B + R
清除方案 ALT + B + C

 

自訂命令列

如果你也跟我一樣懶的話,那麼我會建議你花點時間去自訂命令列,把常用的功能給放到命令列上面,要用的時候就不需要去想快速鍵或是用滑鼠操作指標找來找去,只要在命令列上按一下就完成操作,

image

 


當你把每個操作的使用程序與步驟都做了簡化,少了一兩個步驟或是節省那一秒或是不到一秒的時間,一整天下來就會發現到你並不只是節省時間而已,而是讓自己的開發處於一個順暢且規律的節奏,在寫程式的時候常常保持這樣的節奏,你寫程式就會更有效率,而且會將時間用在思考邏輯上,而不會被一些枝微末節的操作給打亂了思緒。

就像我在「調整你的 Visual Studio - Part.1」這一篇裡面所強調的「不要讓你的程式碼往右無限延伸」,文字編輯區域不要開到最大、最寬,而是保持在一定的可視範圍,這可以讓你減少不必要的滑鼠操作、降低無謂操作的次數,讓我們看程式的時候可以由上而下做視線移動,保持一定的節奏,讓視線所及的移動也可以配合腦中的思考步調,而不是反過來讓我們的思考去遷就工具操作。

  • 找出不必要的操作並且盡量省略
  • 找出可達成同樣執行結果的最短操作路徑
  • 習慣並熟記常用的鍵盤快速鍵
  • 盡量減少滑鼠的使用
  • 不要讓你的程式碼向右無限延伸
  • 養成程式由上而下的閱讀,並保持程式碼只在可視範圍之內
  • 常保程式碼的格式整潔
  • 找出自己編輯程式的節奏

 

補充:

找出自己的節奏是需要花一段時間,你可以觀摩別人怎麼寫程式,不是去看別人寫的程式,而是去觀察別人如何寫程式,從中去發現別人用了哪些工具、怎麼使用工具,因為無法完全複製別人腦中寫程式的思維,但至少可以摹擬別人的行為,在過程中去做出修正,然後內化為自己的習慣。我從學生時代就經常站在同學身後看他們怎麼操作電腦,從過程中去偷學了很多的技巧,以前在團隊中也喜歡去觀察其他同事操作 Visual Studio 的技巧,因為有些高手的習慣是他們說不上來的,但從小地方裡都可以發現到為何同事們如此厲害的秘訣。

記住,去觀察、去發現,去分析別人的行為,找出你覺得習慣的方式,然後內化,而不是一昧地模仿,因為那並不是屬於你的節奏。

 

相關內容

mrkt 的程式學習筆記: Visual Studio 快速鍵整理 - 編輯

調整你的 Visual Studio - Part.1

調整你的 Visual Studio - Part.2

 

延伸閱讀

程式人產能之謎 | iThome - 林信良(良葛格)

 

以上

沒有留言:

張貼留言

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。