概述
資深Python工程師可以選擇的編輯器有很多,比如 Rodeo , Spider ,Eclipse,Vim,Visual Studio,Atom,Sublime Text,Jupyter等等,但是現(xiàn)在為什么現(xiàn)在很多資深的 Pythoner 都開始擁抱 RStudio 呢?要回答這個問題,首先我們要了解到Python工程師的需求到底是什么?
需求一
資深的Pythoner不依賴于集成開發(fā)環(huán)境,需要沉浸式編程。
真正的高手往往是不需要交互式編程環(huán)境的,他們更傾向于沉浸式編程,這些高手以前往往選擇Vim或者Sublime Text這樣的文本編輯器來解決問題。比如以前Sublime Text(Sublime Text是用Python寫的)很火爆的時候,很多Python開發(fā)者都是Sublime Text安裝幾個插件,加一個REPL和代碼高亮就開始干活了。而一些剛剛開始學(xué)習(xí) Python 的同學(xué)則傾向于使用諸如 PyCharm,Visual Studio 這樣的集成開發(fā)環(huán)境來輔助編程。
資深的Python開發(fā)者認為,過多的代碼智能提示會打斷自己的思路,提示一些并不需要的信息反而會降低自己的效率,沉浸式編程才是最理想的選擇,代碼本身就擁有很強大的反饋機制,加入過多的輔助功能只是畫蛇添足而已。

需求二
資深的Pythoner是免運維的全能戰(zhàn)士,需要掌管服務(wù)器。
他們喜歡一個人拯救世界,從Web開發(fā)、自動化測試、自動化運維、任務(wù)調(diào)度、機器學(xué)習(xí)、硬件開發(fā)全部都要自己獨立完成,只單單開發(fā)某一個模塊是沒法滿足胃口的,也永遠不會甘于只做某個環(huán)節(jié)上的螺絲釘。Python 因為本身簡潔的語法設(shè)計使得入門的門檻非常之低,這使得原本從事不同開發(fā)領(lǐng)域的專家都開始嘗試使用Python來再造輪子。
運維工程師 A 曾經(jīng)做了一個 docker-py 來控制 Docker 的API,以支撐服務(wù)器上數(shù)百個容器的調(diào)度與監(jiān)控;數(shù)據(jù)工程師 B 現(xiàn)在用 Airflow 來控制 ETL 的流程以保證每天在Hadoop和Spark的洪荒之力的沖擊下,數(shù)據(jù)倉庫的治理能夠有條不紊。Web工程師 C 也用過 Django 快速開發(fā)面向消費者的網(wǎng)站以響應(yīng)一日三變的用戶需求。爬蟲工程師 D 在用 Scrapy 爬取各大新聞網(wǎng)站和社交媒體的最新資訊以滿足搜索引擎的需求。硬件工程師 E 在樹莓派上用OpenCV來調(diào)試一個人臉檢測的功能,以較低的成本完成核心功能的調(diào)試。測試工程師 F 正在用 Selenium 對各種客戶端進行自動化測試來檢測各種情況下的Bug ... 而在更多的情況下,ABCDEF 很有可能就是同一個人(被稱為全占工程師)。
對比
其實,Pythoner只需要一個沉浸式的編程環(huán)境和一個即時通向服務(wù)器的管道。
然而,Sublime Text 只滿足了第一點;Jupyter 只滿足了第二點。直到 RStudio的出現(xiàn),把二者結(jié)合了起來。
下面我們對比一下這三者的異同:
序號功能Sublime TextJupyterRStudio1Vim模式y(tǒng)esnoyes2自定義布局yesnoyes3自定義快捷鍵yesnoyes4文件夾管理yesyesyes5全局搜索yesnoyes6函數(shù)跳轉(zhuǎn)yesnoyes7多行編輯yesyesyes8多格式輸出noyesyes9圖表輸出noyesyes10Markdown預(yù)覽yesyesyes11Terminalnoyesyes12版本控制yesnoyes13項目管理yesnoyes14Spark連接noyesyes15插件系統(tǒng)yesyesyes16Web訪問noyesyes17權(quán)限管理noyesyes18變量管理nonoyes19多語言高亮yesyesyes20集群管理noyesyes21實時保存yesyesyes22多人編輯nonoyes23文檔發(fā)布yesnoyes如何正確使用RStudio
正確使用RStudio的流程是這樣的:
1. 安裝RStudio
在服務(wù)器上使用root賬戶安裝 RStudio(并打開8787端口),如果有多人協(xié)同建議不要用 Docker 安裝,如果你依然想要,這里有相應(yīng)的教程。
2. 賬號注冊
設(shè)置登錄RStudio登錄的賬號密碼,以及默認的用戶目錄(建議不要給到root權(quán)限)。
adduser FinanceR # 設(shè)置新用戶名
passwd FinanceR # 設(shè)置該用戶的密碼
mkdir /home/FinanceR # 初始化工作空間
chmod -R FinanceR /home/FinanceR # 給工作空間賦權(quán)
3. 打開編輯器
通過瀏覽器訪問服務(wù)器的8787端口:e.g. 123.456.789.1:8787
4. 項目管理
點擊左上角新建項目按鈕,新建一個 Project 并引入Git或SVN作版本控制,拉取遠端代碼。

