~筆者沒為 Visual Studio 打廣告之意,只是我太弱,所以被 M$ 養壞...~

 

 

不少人會把 IDE 當作是 Editor  < 扣除掉背後看不到的 linker 等動作 >,雖觀念上有所誤解,但筆者挑用 IDE 其實和初學者沒什麼兩樣,對 IDE 要求的準則大致如下

 

<1> 設定方便

有一小段時間完全不用 IDE 開發,只有用 pspad + MinGW 開發,

即使架構了小型之 IDE 出來,但認為在 linker 那裡會花不少時間在橋 

< 其實還不是自己懶得學 makefile / cmake / nmake >,

故設定方便是被筆者放在第一要件裡。幸運的是,所有 IDE 

( 包含了 Code::Block , Dev-C++ , BCB, VS)  這裡都做得很好。

 

<2> 一定要有 high light 

雖有強者會用 notepad.exe 進行 trace 與開發,

但沒有 high light 的原始碼閱讀起來真的不算輕鬆。

high light 是 IDE 必備的第二個條件,且大多數之 IDE 或好一點的 editor 

可匯入 keyword 做 high light。

 

<3> 自動提示

目前已愈來愈多 IDE 有此功能,當輸入完 printf ,按下 ( 時,

會顯示 printf 的 prototype 。或是要取得某個 struct 成員時,

按下 . 也會出現提示。但自動提示功能不是每個 IDE 都做得很好,

有時當括號打完時,更新的速度比不上 coder 打字的速度,

雖然這種情況多少都會發生,不過有些 ide 情況很嚴重。

 

自動提示的功能個人認為還沒有一套 IDE 做到非常盡善盡美,

但一般是夠用就是。

 

<4> 自動完成

筆者認為自動完成功能也算是多數 IDE、editor 必備項目,

無奈做好的也沒很多家。當輸入一、二個單字時,IDE 會出現

提示 < comboBox \ listbox 方式呈現 > ,有時候還會先自

動反白 selection,再加上 tab 或是 enter 予以確定。妙的是,

部份 ide 會分析資料型態與單字字首,判斷可能是要輸入哪些字。

 

* plug-in


個人挑用 IDE 最小限制大致就以上 4 點,即使目前單純的 

visual studio 也沒辦法滿足筆者需求 ,於是開始為 

visual studio 掛上一些 plug-in 去增強其 IDE 功能,

這種 plug-in 機制也不只 M$ 有,不少 editor 也已存在。

< 跳 tone,筆者倒蠻想知道 plug-in 機制的.. >

 

目前在 Visual Studio 裡,最有名之 plug-in 應屬 VAX。

Visual Assist X(VAX) 這套 plug-in 確實做得很漂亮,

上述說的四項都做得很棒,試用完一個月,突然不用會讓人

感到很不習慣,甚至用久了,突然拿掉,感覺好像自己不會

寫程式一樣,不知道其他 VAX 使用者會不會跟我有一樣的感覺..

 

二個數字做一下參考...

Visual Studio Professional 2010 , 含稅約 25000 ~ 30000 不等。

Visual Assist X 單機標準 < 一年維護 > , 約 10000 左右。

 

 

* 可以花點時間摸摸 IDE


 Visual Studio 它真的是一套非常強大的 IDE,

筆者本身很多部份沒用過,

但就我所知 C/C++ 書籍也不會專門開一個附錄,

講 Visual C++ 其他功能,大多講講怎麼開專案、compile、link ,

頂多再加上怎麼做簡單的 debug 就很多了。

這真的是非常浪費 Visual Studio 這套 IDE,

有時自己摸了一下後會大吃一驚:原來它已經提供了這麼方便的功能...

 

* 註

目前市面上有些書確實在教 Visual Studio 使用,

但大多都是以 Ultimate 版本為主,

在講軟體工程面之一些操作與應用。

edisonx 發表在 痞客邦 PIXNET 留言(5) 人氣()


留言列表 (5)

發表留言
  • novus
  • 一點意見
    1. 我心目中「設定方便」大概會是工作環境的可攜性,例如只要從隨身碟或網路硬碟抓一些東西下來就能完整重現自己的工作環境。至於設定文字編輯器自動執行編譯器之類的,我反而覺得可有可無。IDE派和純文字派的工作模式有所差異,如果你想把純文字編輯器改成 IDE(這樣做當然也很好)而非學習另一種工作模式,或許直接找一個好IDE會比較省事。

    2. 自動提示和自動完成是很棒的功能,然而太依賴這些功能也有問題。如你所說,現有的實作都不太完善。並且當專案大到某個程度時,IDE會被嚴重拖慢以至於使用者會想把他關掉。即使不太大的專案,intellisense 資料庫動不動就超過30mb,使用git或svn時要不要順便把 intellisense 資料庫包含在內也是一個問題。相較之下被動式自動完成的機制就單純多了,缺點是不太聰明(例如notepad++)。

    以下提示一些你沒有列出來、一般使用者會認為很重要的功能:
    * 進階搜尋取代功能:像是pattern和regexp搜尋、漸進式搜尋、目錄搜尋。VS有一項不錯的功能,就是快速找到定義或宣告處。
    * 分割視窗、鳥瞰程式碼。
    * 錄製鍵盤動作和編輯巨集、Snippets。
    * 快捷的游標移動、文字選取/編輯能力 -- 這是純文字編輯器的強項,但很多IDE只點到為止,VS在這方面稍微遜色(我是指無plugin和自訂巨集時),而且VS的快速鍵安排不太合理,有一些常用的功能竟然要按兩次快速鍵,但是像CTRL+SHIFT+T這樣的快速鍵卻對應某個我沒什麼機會用到的功能。

    以上只是一般的程式碼編輯工作,大部分的IDE和文字編輯器都具備。還有其他和製造程式碼無關的工作--像是版本管理系統、FTP、瀏覽資料庫、遠端執行/除錯等等,隨領域而定。IDE派通常傾向在同一個視窗介面下整合這些功能,而純文字派對這點並不強求,這是主要差別。

    最後我想說的是,使用 notepad和cmd 作為常規開發工具(臨陣應急不算)的人,大概都不是強者...
  • novus 提到的幾個點確實是我所沒提到的,讓我又多了一層思考,謝謝您的回覆。

    依「設定方便」,環境可攜性,網路取得, VS 大概已經不會是首選了,每次我安裝它都要花 3~4 小時做這件事 < 只裝基本款大概也花了快一小時 >,我想輕便型的大概屬 MinGW + Code::Block 。

    唯,如果開發時用到 「不少」 其他額外 library 時,要完整重現大概也不是件容易的事了吧。

    後面補充的項目的確很重要,我平常常用卻沒紀錄上去,這裡謝謝您的補充。

    ---

    其實我讚許 VS 這套 IDE 並不只上面這些功能,像是一些 UML gernator < 正向與反向 >、profiler、code Metrix、Test enginner 等等,幾乎把軟體工程的東西都包進去,代價是需要約 NT. 400K~450K ,但我認為有些功能真的不像是一般 IDE 會做的事 < 妙的是要找類似的 free-software,在 windows 上竟找不怎麼到 >。

    ---

    有些離題了,最後要說的是,會撰下這篇文章 <其實是一系列,會再介紹 generate code document、UML generator、profiler、Code Metrix >,主要是想紀錄我該找哪些功能的 IDE、tool,屆時能從 VS 的魔咒中脫離。

    ---

    PS: novus 大方便的話,能否能以悄悄話留下能收到掛號(包裏)的地址與姓名呢?蒙受這麼多指導,實在不勝感激。

    edisonx 於 2012/06/15 02:10 回覆

  • novus
  • 設定可攜性不一定要把整個軟體複製,只要把主要設定檔複製過去就可以了。程式庫比較麻煩,通常我會先把常用的預先建好(zlib、boost等等),但是也難以齊全。

    IDE本身的宗旨就是將所有對開發有用的東西整合在一致性的介面下,「對開發有用的東西」本身會隨時代而變,所以沒有什麼典型IDE該有的功能。你所說的像是 UML gen、Test enginner、Code Metrix 、document gen 之類高階功能在比較現代的 IDE 並不罕見,例如 Eclipse 就有非常豐富的擴充功能,只是大都針對Java。你所說缺乏免費的資源其實部份反映出 C++ 在高階應用上逐漸凋零的現象,以致於缺乏使用者投入(另一方面,對C++實作某些功能難度比較高)

    我本身偏好純文字編輯器,文字編輯器通常只需要整合與撰寫編輯有關的功能,無法整合進來的工具就留給命令列和script。舉個例子來說,假如你需要將專案中變更的程式碼上傳到遠端編譯並執行,然後每隔一段時間擷取資料繪圖,在IDE假如恰巧有plugin就好辦,否則的話.... 但是寫個script呼叫rsync、ssh、awk、gnuplot,只要區區六七行就可以完全自動化。

    很巧的是,最近有不只一個人想趁我搬家的時候寄東西給我,晚點在給你聯絡方式
  • 感謝您。

    edisonx 於 2012/06/20 15:56 回覆

  • 悄悄話
  • 悄悄話
  • 悄悄話

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼