<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 程序員效率指南 幾條建議 ### 盡量不要用windows進行開發 除非你只用dotnet開發軟件,不然osx/ubuntu會是更好的開發平臺。太多太多優秀的工具在osx/ubuntu下可以一鍵安裝,在windows下卻不得不花費超過一個甚至幾個數量級的時間去安裝,更別提有的工具windows壓根沒有替代品。 如果不認可Rule 1,那么直接可以跳過下面的文字走人。 ### 盡量使用mbp 我在「能花錢的,就不要花時間」文中已經強調,有條件買15"高配的就不要買15"低配,有條件買15"低配的就不要買13"(Retina/ssd版本是必備)。作為一個開發者,你實在應該在開發工具上對自己好些 —— 畢竟你跟她相處的時間比跟女盆友/老婆多多了! 如果實在覺得mbp太貴 [1],可以考慮一個15"輕薄的本子裝ubuntu。 mbp的好處不在于逼格 [2],而在于優秀的硬件 + 優秀的Unix兼容的軟件。retina屏,超長的電池續航(相比PC),舒服的trackpad讓工作的舒適度提高不是一星半點,而軟件上強大的spotlight等系統功能讓效率提升很多。這個我就不詳述,自己看『mactalk·人生元編程』去。 ### 使用大屏幕 工作中使用mbp是為了便攜性 —— 在各種場合都可以進行開發任務,應對會議和各種各樣的演示需求。可一旦坐在工位上好幾個小時,全神貫注地寫代碼時,就最好有個大屏幕。 屏幕多大才好?在機器帶的起來的情況下越大越好,能27"就不要24",能24"就不要21",能21"就不要直接使用筆記本的屏幕。大屏幕可以讓一個屏幕同時顯示好幾個窗口而無需來回切換。我現在自己的工作配置是15" mbp + 27" apple display,用上了就回不去了,一天呆在公司12小時都不嫌多。 我自己一般把屏幕劈成兩半,左邊chrome,右邊iterm,這樣,在vim里寫代碼時,隨時可以查文檔。配合vim的熱鍵,我可以用 xx 在chrome里打開某個開發語言的文檔,鼠標都不用動一下。 ### 使用dotfiles 一個程序員一天可能80%的時間都在跟shell打交道,有個好的shell(bash or zsh),加上合理的shell配置絕對讓效率提升一大截。我以前都是直接使用 mathiasbynens/dotfiles 的設置,后來自己改得多了,就干脆fork了一個版本 tyrchen/dotfiles 出來,把自己的改動放上去。 dotfiles這樣的東西不必自己從頭來,在github上找個star最高的clone或者fork之即可,這便是所謂的站在巨人的肩膀上。武學中要打通任督二脈,靠勤奮往往是不夠的,還要有際遇,好比虛竹遇上了無涯子或者張無忌遇到了白猿。程序世界里的無涯子和白猿們都在github上,只是需要你的發掘。 我自己的dotfiles就在Mathias的基礎上發展而來,基本上,我做了兩個主要的改動: - 把prompt換成帥呆了的liquidprompt - vim使用vundle,并且使能了一堆我喜愛的插件(這個隨后講) ### 挑一款趁手的editor和ide 作為一個開發者,你需要精挑細選一款趁手的用來編輯代碼的editor。我使用了幾年的vim,又換用過大半年的emacs,為了強制自己習慣emacs,我甚至在bash中把vim alias成emacs。但最終,沒能打開emacs下的任督二脈的我實在無法抗拒vim下的那些好用的插件,又回到了vim的陣營。所以在editor這里,我只能先講講更為熟悉的vim。 vim下最基本的vundle不提,至少這些插件你值得擁有: - SirVer/ultisnips: 撰寫和使用snippet神器,用過textmate/sublime的人應該都知道。一個程序員的效率很大程度上跟他的snippet庫有關。如果你的python class,html的標簽,erlang/elixir的otp代碼還是一個字符一個字符手敲,那么你該好好看看這個插件了。配合著 honza/vim-snippets,大部分代碼的snippet都有了;遇到結構類似的代碼塊(bolerplate),又沒有已經定義好的snippet時,調用 :UltiSnipsEdit 立刻定義之,你基本上就走在無敵的路上了。 - scrooloose/nerdtree:讓你的vim支持文件樹。這個插件加上 tpope/vim-eunuch,文件系統的各種操作和顯示全在vim里搞定了。 - sheerun/vim-polyglot:幾乎所有程序語言的源文件syntax/tab等的支持。有此一個插件,就不再需要 vim-ruby,vim-go等一票單獨的語言插件了。 - Valloric/YouCompleteMe:讓vim支持自動補齊。這個幾乎是IDE的標配,效率提升的另一大神器。有了它,IDE的需求就減弱很多。 其它的插件就不一一介紹了,感興趣的可以在我的dotfiles里面一一翻閱。 大部分編程的工作,輕量級的editor就足夠勝任,但有些開發語言和框架,bolerplate代碼實在太多,整個開發目錄太繁雜,這時候不得不使用IDE,比如說java下的很多項目。當你不得不使用IDE的時候,intelliJ系列的IDE是比eclipse系列好很多的選擇。 當然,這條rule的核心是盡量使用editor,能不用IDE就不用IDE。 ### 把常用的任務命令化/快捷鍵化 國外的開發高手也都是使用快捷鍵的高手,我以前不習慣使用快捷鍵,但看了很多高手的screencast后,發現他們都是當一個任務重復幾次后,順手就定義快捷鍵或者命令。這里我講講vim怎么做,emacs的用戶自行腦補。 在進行elixir做TDD開發的時候,我經常需要運行 mix test 來確保我新寫的代碼或者重構的代碼能夠跑過已有的test case。這事做多了也就煩了,因為在vim里總需要輸入 !mix test,這個時候,我就會為此定義個快捷鍵。如果快捷鍵只跟當前項目有關,那么就在當前項目根目錄下生成一個 .vimrc,定義快捷鍵,否則在系統的 .vimrc 中定義: ~~~ noremap <leader>et :!mix test<CR> ~~~ 這樣,以后需要運行這個命令的時候,直接敲 key + ed 就好。對于elixir,我有這些定義: ~~~ noremap <leader>ed :!mix deps.get<CR> noremap <leader>et :!mix test<CR> noremap <leader>ec :!mix compile<CR> ~~~ 因為每個語言都有類似的 dependency,test,compile等任務,如果要定義在全局的 .vimrc 文件里,可以為每種語言附不同的前綴(elixir為 e)區隔。如果你喜歡按項目定義,那可以把 t 統一定義為UT的命令,這樣可以省去敲一個字符的時間。 ### 培養自己好的重構習慣 這里講的重構和代碼里的重構大體意思一樣,就是不斷優化自己的工作環境。Rule 6其實就是一種重構。 經常問問自己這些問題: - 常用的命令是不是做了alias?比如:總敲 ls -l,是不是應該alias出一個 ll 來? - 常用的服務器信息是否寫在了 .ssh/config 里?服務器登錄是否使用了pub/private key(毋須輸入密碼)? - 對于某些操作,可不可以定義一些快捷鍵(比如說google search)? - 項目里重復的工作是不是寫成了makefile(或是其他任務腳本,如rake,jake)? - 常寫的代碼結構是否定義了snippet? 講講snippet。我特別喜歡vim的ultisnips,它能讓我按語言很方便地定義snippet。比如在elixir里總要寫的 GenServer 代碼,大體結構是 Public API + GenServer API,我可以定義一個snippet,在敲入 defgen 的時候,可以展開成為下面的代碼(并且我可以在代碼中跳至需要我修改的地方): ~~~ defmodule name do @moduledoc """ """ use GenServer ### Public API def start_link do {:ok, server} = :gen_server.start_link __MODULE__, [], [] end ### GenServer API def init(state) do {:ok, state} end def handle_call(, _from, state) do end def handle_cast(, state) do end end ~~~ 這將省去我多少bolerplate的時間 —— 更關鍵的時,我的思緒不會被撰寫這些無趣,但又不得不寫的bolerplate打斷。 ### 使用git管理個人文件 大部分開發者對于自己的代碼項目都有很好的習慣:使用git(或者其他scm)管理。但代碼之外的文檔,管理起來就有些隨意,即沒有歷史記錄,單純存儲在本地也容易丟失。建議大家對 $HOME 下的文件,只要是自己生成的文檔(太大的二進制除外),一律用git管理(在目錄下 git init)。你們看到的這個公眾號的所有文章就是用github存儲(private repo)。然而github上存儲private repo畢竟要花錢 —— 不想花錢,又想很多私人的文檔想管理怎么辦?可以在dropbox(或者其他類似的網盤)上生成一個git的bare project,然后把本地的文檔push上去。 ### 多看高手的screencast 很多時候我們沒有機會近距離看高手是怎么工作的,但觀看他們的screencast不失是一種提高自己的好辦法。在這個方面,其他語言的愛好者估計都要妒忌ruby的擁躉 —— ruby社區的各種screencast多得令人發指!通過訂閱這些screencast,你不僅能快速學到語言相關的知識和實用的技巧,更重要的是,你知道高手都在用什么工具,如何寫代碼。11年的時候我看過一個php的screencast,一個法國人介紹如何用symfony撰寫項目。那是我第一次領略什么是指尖如飛,也給我播下了snippet的種子(他用的是textmate)。從那以后,我會時不時地看一些各種各樣的screencast(以rails的居多),學習點新東西的同時,還能學習高手的習慣。 ### 參考資料 - [程序員效率指南](http://mp.weixin.qq.com/s?__biz=MzA3NDM0ODQwMw==&mid=206041450&idx=1&sn=3982c8cc45d7c47f0fbc19fe8371490f#rd)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看