1. 程式人生 > >高效 Windows 工作環境 && Java 開發環境搭建

高效 Windows 工作環境 && Java 開發環境搭建

首先,感謝那篇《高效 MacBook 工作環境配置》,讓我能在第一次使用 MacBook 時順利的適應。

時過境遷,換了公司之後,重新換回Windows,新機器,新系統。由於Windows中沒有“綠色/免費/漢化/Cxxxk”的“市場”應用,決定基於Windows環境寫一篇工作中常用的軟體整理。因為是做Java的,所以會把程式設計和Java相關的軟體也帶上,非Java猿可忽略這一塊。

隨著科學技術的提高,真正提高的並不是人類本身,而是各式各樣的工具,正如諾基亞的那句廣告“科技以懶人為本”。Windows不同於OSX的就是軟體/應用數量非常多,因此本文中推薦的不一定是最好的,具體要看個人的使用習慣。也希望有個人覺得好的軟體,同類或者補充的,能反饋給作者。

工欲善其事,必先利其器。作者認為任何方面的工具都沒有最好,只有最適合,只要利用得好,就是好工具。也不希望有什麼vim和emacs之爭,完全沒必要把自己的想法強加於別人頭上。

那麼進入正題

一、硬體

首先,現在記憶體白菜價,對於普通使用者來說,8G夠用,對於我們猿類,應該是8G起步了吧。除此之外,作者建議使用機械鍵盤,並且推薦使用國產軸的,一是因為國產軸的相對便宜,並且夠用,二是當買的人多了之後,國產的各個廠商一定會開始打價格戰,屆時一些大學生也就可以消費得起了,想當初作者大學時天天看機械鍵盤,就是買不起,唉。作者推薦使用青軸,雖然聲音大,但是確實舒服。另外,假如有大家的U盤是新買的,建議格式化成exFAT格式,相容Windows 7以上的系統和OSX。

最後,雖然Windows 10免費,還是建議大家抵住誘惑,使用Windos 7。PS:推薦一個Windows 7不啟用,直接重灌Windows10啟用的方法:不從Win7/Win8.1升級,直接全新安裝並激活Win10方法

二、系統

首先,Windows 7、8、8.1、10,先關閉煩人的UAC。具體步驟為:開始 -> 控制面板 -> 檢視方式:大圖示 ->使用者賬戶 ->更改使用者賬戶控制設定 ->從不通知 ->確定。

現在市面上的筆記本大部分都是768p的,很坑,所以儘量讓自己的工作空間變大,有一個普遍的做法是工作列顯示為小圖示,具體方法為:工作列上右鍵 -> 屬性 ->使用小圖示。

 三、字型

上面的前三張截圖是同事那裡的,下面兩張是本機的,明顯本機的字型要更清晰,這是由於使用了MacType代替Windows做字型渲染。

需要注意的是,網上大部分給的版本都是v2013.1231.0,但是這個版本在一些地方會存在缺字問題,文字顯示成一個小點。通過下載MacType 1.2013.1231.0/1.2016.0216 Dev版本,將裡面的MacType.dll和MacType64.dll覆蓋到MacType的安裝目錄中重啟即可。

PS:關於這個WinRAR的面板,大家請自行搜尋DTU Theme。

如果讀者和作者是同(猿)類,並且也做Web開發,相信用的瀏覽器一定是Chrome或則同核心的瀏覽器,因為這個瀏覽器的版本相當多,某些版本不會使用MacType渲染導致區域性字型不和諧,解決方法請戳解決MacType 在 Chrome 43+ 下缺字/粗細不一問題

四、瀏覽器

正如上面所說,作者用的是Chrome核心的瀏覽器,作者覺得這種瀏覽器主要的優勢不是因為他的開發商牛,而是因為開放,擁有各種各樣好用的外掛。

當然,讀者會想到,外掛的網站無法訪問。作者是個和諧的攻城獅,平常走(不)平(爬)路(牆),因此用了國產的基於Chorme的瀏覽器,幾乎試過了所有的國產瀏覽器,經過無數次安裝解除安裝,最終選用了360極速瀏覽器。這裡推薦幾款作者使用的外掛。

  1. Scroll To Top Button 中文版,不是所有的網站都良心的在底部放置了返回頂部的按鈕,所以使用了這個工具,它會在網頁右側生成一個返回頂部的按鈕,當然也可以自定義位置。

  1. VerticalTabs,標籤開太多之後,就用這個來快速的導航。

對於其它的工具,使用率不高,而且與“效率”的關係不大,因此不做介紹了。

五、應用偏系統

1、我們猿類,尤其是Java猿類,遇到沒遇到過的Exception或者Error怎麼辦呢?當然是上網搜,可是爬蟲這麼發達,一些無良網站爬了很多知名網站的部落格,還弄了一堆的廣告,強烈鄙視這種行為。因此向大家推薦一款去廣告的應用,ADSafe淨網大師_強力有效的廣告攔截器,是國產的,強烈支援!

另外,這款應用已經有了IOS和Android版本,Android版本覺得很好,IOS版之前內測時用的效果不是很好,希望這款應用可以越做越好。這種良心軟體我們不支援它支援誰呢?

2、用慣了chrome,大家是不是也希望Windows自帶的資源管理器(檔案管理器)也能有那種tab呢?確實有,而且開發商也是我們中國的。作者突然想,其實中國的技術不是不強,而之所以一些應用做的沒有某些國外的好是因為非技術問題,大家想想為什麼Linux出現在芬蘭,或許就和作者想到一起了。言歸正傳,這款軟體是Clover給資源管理器加上類似Chrome的標籤

需要注意的是這款應用pin到工作列上圖示為預設的三葉草圖示,與Windows預設的資源管理器圖示區別很大,所以推薦使用一個網友修改的圖示替換三葉草圖示。http://ejie.me/images/Windows_Explorer_Clover.ico,快捷方式的路徑在C:\Users\你的使用者名稱\AppData\Roaming\Microsoft\InternetExplorer\Quick Launch\User Pinned\TaskBar\Clover.lnk,替換完成之後重啟資源管理器或者登出重新登入即可。

PS:快捷方式所在的資料夾是隱藏的,用下面的方法顯示:

3、聯調的那些天、上線前的幾天、甚至是平時開發中,大家是不是忙到沒有時間的概念,想不起來吃飯、喝水、甚至是上廁所。

有一方面因素是因為Windows上的時鐘太小了,位置又太偏了,目測是五環外。這裡推薦一個時鐘工具AtomicAlarmClock

這款工具還自帶了一些簡單卻實用的工具,比如提醒我們喝水的鬧鐘。

希望這個工具可以幫助我們猿類健康工作,健康生活。下載地址請戳這裡

4、Windows下切換程式有兩種方法,一種是Alt+Tab,另一種是Win+Tab。兩種方式如下:

Alt+Tab

Win+Tab

但是作者按Alt+Tab是這樣的:

有木有覺得比上面的兩種都直觀?這款軟體是VistaSwitcher – SpeedUp Windows Alt-Tab。不只是有切換應用的功能,還有應用內部開啟的多個檔案之間切換功能,快捷鍵是Alt+~,就是Tab上面的那個鍵,效果如下:

5、大家開啟一款應用最常用的方式是什麼呢?pin到工作列 or Win+R or 其它快捷方式?這裡給大家推薦一個快速啟動器,可以快速啟動你的應用。

按Alt+空格就可以在任意位置調出這個框,輸入後自動匹配應用,應用位置可以自行新增,這款啟動器是Launchy,截圖和官網的不太一樣是因為用了其它自帶的面板。

不過預設的版本無法支援拼音快捷搜尋,不過好在中國民間高手多,具體說明請戳Launchy設定及中文修改版下載。連結中的下載連結進不去,請大家自行搜尋Launchy設定及中文修改版下載

PS:平時使用必應搜尋,所以搜尋連結貼的是必應的,要是有人問百度一下你會死啊,請大家替我回答。

6、作為猿類,O2O帶給大家最大的好處就是不用出門也能吃飯了吧。於是在工位上邊看視訊變吃飯也算是常態了,但是這樣不好!!!即便是在座位上吃飯,也強烈建議大家下樓走走,晒太陽,吹風,和小夥伴們聊天吹牛侃大山,不要整天在辦公室坐著!!!回頭說一下吃飯,吃飯時往往是一隻手操作電腦,另一隻手拿著食物,這時滑鼠和鍵盤的切換就不方便了,所以推薦大家一款滑鼠手勢軟體,用國產Chrome核心的想必並不陌生,但是這款適用於任何操作介面。這款軟體同樣是我們中國人開發的,是個獨立開發者,這裡向他致敬!軟體主頁為WGestures全域性滑鼠手勢,具體操作請見主頁的視訊。

預設帶了全域性的,檔案管理器的,cmd的,圖片檢視的,下面那個是自定義的,很方便。

六、程式設計相關

1、大部分人線上的伺服器環境應該都是Linux,大家對Linux的命令一定比Windows的更熟悉。Windows下某些引數必須要用雙引號一直是作者的心頭之痛,於是找到了一個在Windows中可以使用Linux命令的方法——Cygwin,Get that Linuxfeeling – on Windows。於是就有了各種爽。

這個軟體使用的是線上下載安裝方式,網上也有離線的包,但是有點舊。用線上安裝的方式下載比較慢,希望大家有點耐心,安裝過程中有一個步驟是選擇源的,建議大家選擇中國的。

2、猿們面試時是否遇到過一些Linux的面試題是關於“在一個資料夾下看哪些檔案中包含一些關鍵字”這種問題,相信很多人都是用了grep。在這裡不否認grep的強大以及為我們帶來的好處,這裡給大家介紹速度比grep快的工具The Silver Searcher。大家可以直接下載exe版本並直接放到path中,或者直接放到cygwin安裝目錄的bin資料夾下,因為之前這個資料夾已經在path中。

命令很簡單ag後邊加具體要查詢的內容,同樣支援正則,最大的好處是比grep和ack要快。

3、上面兩個介紹的都是命令相關的,想必大家看截圖就要吐槽cmd吧,這貨最大化之後貼著螢幕左側,不到半屏。估計有不少人自己開了putty,用SecureCRT連本機,也比cmd好用。這裡不折騰,推薦一款替代cmd的工具,先看截圖吧。

這款軟體唯一的缺點是中文支援的不是太好,這裡可以參考一位網友的解決方案

PS:同時也推薦另一款類似的工具ConsoleZ,因為類似沒有使用,詳情可以檢視這位網友的部落格windows下使用體驗更好的控制檯——ConsoleZ,在此感謝。

4、不知道大家是否發現了上面截圖cmder和cmd的字型區別,個人喜歡Microsoft Yahei Mono字型,這個可以還是看個人喜好的,個人覺得程式設計來說,只要是等寬字型就OK。

5、由於Github上建立的專案必須是public的,想建立private專案要收費,Bitbucket在國內的訪問速度又慢,而且有限制,所以想自己搭一套可以多人一起開發git專案的倉庫。目前看來網盤類是最適合的,可以把網盤的同步資料夾設定成origin。因為種種原因,最終選擇了堅果雲。值得一題的是官網的QA頁面就有相關的配置,連結在此:你的github-通過堅果雲管理您的程式碼。主介面中包含了一些個人資訊,這裡就截了一張官網的介紹,請見諒。

6、大家都用什麼git工具?是命令?還是eclipse或者IDEA的外掛?還是TortoiseGit?這裡向大家推薦一個軟體SourceTree,不過官網的下載是無進度的,大家懂的。大家可以搜尋。用過很多版本的,發現1.6版本的是最好用的,於是找了一個CSDN的下載連結。由於不是作者共享的,是否評論看個人。由於個人的截圖有專案資訊,懶得打碼,這裡使用了一個網友的截圖,原圖和介紹在這裡

另外,SourceTree自帶的比較工具雖然比git diff好用,但還是不方便進行合併,這裡推薦一個網友介紹的使用Beyond Compare作為SourceTree的外部比較工具,有衝突時可以點選外部差異比對(中文版)或者External Diff(英文版),開啟Beyond Compare進行修復。具體資訊請參考sourcetree修改difftool 為 Beyond Compare 的方法,該方法不足的是當出現衝突時,只能點選按鈕才能用Beyond Compare,右鍵開啟外部合併工具無效,但是第一種夠用了。Beyond Compare借用了官方的一張圖,由於軟體不是免費的,請各位自行搜尋

七、Java相關

1、首先是資料庫,相信絕大多數人用的是MySQL。這裡推薦大家的本地MySQL使用5.5版本,因為5.6以上Windows版本的安裝方式包括介面變了,不能像之前一樣安裝後開啟配置工具。

PS:如果忘記了開啟配置工具,該工具預設在MySQL安裝路徑下的bin目錄下,名為MySQLInstanceConfig.exe

配置的時候這裡別忘了選這個,字符集是UTF-8。

PS:提供一個CSDN的大牛共享的版本,請戳這裡

當然資料庫的GUI工具還有Navicat,用的人也很多,但是作者覺得SQLyog更好用,所以推薦了這個。除此之外,還有一個國產的也很好,免費並且支援多資料庫,Database.NET -直覺式多重資料庫系統管理,提供一張官網的截圖,也很好用。

大家用Java的ORM和資料庫時實體類都是用生成工具生成的吧?作者一直沒有找到太適合的生成簡潔程式碼的工具,於是乎,就用了個土辦法,寫儲存過程簡單實現欄位的轉換,分享給有程式碼簡潔癖的猿。

下面這個是匈牙利命名法(some_columns)轉駝峰(SomeClass or someFields)的函式:

MySQL
1234567891011121314151617181920212223242526 createdefiner=`root`@`localhost`function`to_camel`(srcvarchar(255),lowercaseboolean)returnsvarchar(255)charsetutf8begindeclaretempvarchar(255);declarebuffervarchar(255);declareiint;declarelastiint;declarelenint;settemp=concat(src,'_');setbuffer='';seti=1;setlasti=1;setlen=length(temp);whilei<=lendoifsubstring(temp,i,1)='_'thensettemp=concat(substring(temp,1,lasti-1),upper(substring(temp,lasti,1)),substring(temp,lasti+1));setbuffer=concat(buffer,substring(temp,lasti,i-lasti));setlasti=i+1;end if;seti=i+1;end while;iflowercasethensetbuffer=concat(lower(substring(buffer,1,1)),substring(buffer,2));end if;returnbuffer;end$$delimiter;

下面這個是db_type轉JavaType的函式:

MySQL
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 createdefiner=`root`@`localhost`function`to_java_type`(sqltypevarchar(255))returnsvarchar(255)charsetutf8begindeclarejavatypevarchar(255);setjavatype='';casesqltypewhen'bigint'thensetjavatype='double';when'binary'thensetjavatype='int';when'bit'thensetjavatype='bit';when'blob'thensetjavatype='byte[]';when'bool'thensetjavatype='boolean';when'boolean'thensetjavatype='boolean';when'char'thensetjavatype='String';when'date'thensetjavatype='Date';when'datetime'thensetjavatype='Date';when'decimal'thensetjavatype='double';when'double'thensetjavatype='double';when'enum'thensetjavatype='Object';when'float'thensetjavatype='float';when'int'thensetjavatype='int';when'longblog'thensetjavatype='byte[]';when'longtext'thensetjavatype='String';when'mediumblob'thensetjavatype='byte[]';when'mediumint'thensetjavatype='int';when'mediumtext'thensetjavatype='String';when'numeric'thensetjavatype='double';when'real'thensetjavatype='boolean';when'set'thensetjavatype='Object';when'smallint'thensetjavatype='int';when'text'thensetjavatype='String';when'time'thensetjavatype='Date';when'timestamp'thensetjavatype='Date';when'tinyblob'thensetjavatype='byte[]';when'tinyint'thensetjavatype='int';when'tinytext'thensetjavatype='String';when'varbinary'thensetjavatype='int';when'varchar'thensetjavatype='String';when'year'thensetjavatype='Date';end case;ifjavatype=''thensetjavatype='Object';end if;returnjavatype;end$$delimiter;

注意這裡將tinyint、smallint、int都作為Integer,這樣Java端好處理一些。

下面這個是將錶轉換成Java類(僅含熟悉)的儲存過程,getters和setters需要自己生成:

123456789 createdefiner=`root`@`localhost`procedure`table_to_class`(tablename varchar(255))beginselect concat('public class ',to_camel(tablename,false),' implements java.io.Serializable {')union allselect concat('\tprivate ',to_java_type(data_type),' ',to_camel(column_name,true),';')frominformation_schema.columns where table_name=tablenameunion allselect'}';end$$delimiter;

效果如下:

PS:這裡的JavaType用的是基本型別,因為不是用它生成實體,如果有需要改成包裝型別需要自己改一下,很容易。

2、Java開發工具之爭的兩方一直是eclipse和IDEA,之前是eclipse和NetBeans,不建議使用vim或者emacs開發Java,IDE就是方便。作者使用的是Eclipse IDE for Java EE Developers 4.5.2Mars 2版本。

這裡推薦大家裝的幾個外掛。

(1)findbugs,程式碼靜態分析工具,這裡只能提供部分截圖,還請見諒。

(2)Open Explorer,如下圖所示,在工具欄增加了個按鈕,可以快捷用Explorer開啟選中檔案所在路徑,如果用的是Myeclipse,可以直接無視。

(3)JD-Eclipse,別誤會,不是京東,而是Java Decompiler。大家應該知道了,反編譯的。

(5)Zookeeper Browser,個人覺得比ZooInspector好用,主要是不用來回切換視窗。

3、Java伺服器猿大部分都是半個前端+半個DBA+半個運維。涉及到前端時,無論是eclipse還是Myeclipse都顯得力不從心,所以這裡推薦一個前端的編輯器Sublime Text 3,當然也可以編輯後端程式碼,只是沒必要。不好意思,這裡截圖還是用的官網截圖。

不過引入新工具之後,自然要增加學習成本,不過呢,我們可以把所有的快捷鍵改成eclipse的快捷鍵,這樣在很大程度上增加了工作效率。這裡推薦幾個外掛,也算得上是必裝的。

(1)Package Control,相當於eclipse的marketplace或者Maven的repository。

(2)裝好Package Control並重啟sumlime之後,按Ctrl+Shift+P撥出選單。

找到Package Control: Install Package,按回車稍等片刻。分別安裝EncodingHelper、IMESupport、PackageResourseViewer,安裝完成之後重新啟動Sublime Text。

還是按Ctrl+Shift+P撥出選單,選擇PackageResourseViewer: Open Resource。

回車後找到Default。

選擇Default (Windows).sublime-keymap,這個就是預設的快捷鍵配置檔案,強調一下,這個檔案改動後立即生效,操作要慎重。

這裡參考了一個大神的配置,注意一點是不可以用這個直接覆蓋,覆蓋後會連Ctrl+Z這個快捷鍵都無法使用了,別問我是怎麼知道的。

正確的做法是把“[”“]”之間的那些JSONObject拷貝到預設配置檔案結尾的“]”前。

八、總結

Windows下軟體眾多,上面這些工具也許不是同類中最好的,但卻是最適合作者的,不同人用的工具也是不同的, 希望網友們可以提出一些不同的觀點,如果大家覺得合適,會在本文及時更新。同時,文章中用到的連結如果有原作者不允許的,請告知,會在第一時間內取消連結。

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

任選一種支付方式