Python 開(kāi)發(fā)者如何正確使用 RStudio 編輯器
概述
資深Python工程師可以選擇的編輯器有很多,比如 Rodeo,Spider,Eclipse,Vim,Visual Studio,Atom,Sublime Text,Jupyter等等,但是現(xiàn)在為什么現(xiàn)在很多資深的 Pythoner 都開(kāi)始擁抱 RStudio 呢?要回答這個(gè)問(wèn)題,首先我們要了解到Python工程師的需求到底是什么?
需求一
資深的Pythoner不依賴(lài)于集成開(kāi)發(fā)環(huán)境,需要沉浸式編程。
真正的高手往往是不需要交互式編程環(huán)境的,他們更傾向于沉浸式編程,這些高手以前往往選擇Vim或者Sublime Text這樣的文本編輯器來(lái)解決問(wèn)題。比如以前Sublime Text(Sublime Text是用Python寫(xiě)的)很火爆的時(shí)候,很多Python開(kāi)發(fā)者都是Sublime Text安裝幾個(gè)插件,加一個(gè)REPL和代碼高亮就開(kāi)始干活了。而一些剛剛開(kāi)始學(xué)習(xí) Python 的同學(xué)則傾向于使用諸如 PyCharm,Visual Studio 這樣的集成開(kāi)發(fā)環(huán)境來(lái)輔助編程。
資深的Python開(kāi)發(fā)者認(rèn)為,過(guò)多的代碼智能提示會(huì)打斷自己的思路,提示一些并不需要的信息反而會(huì)降低自己的效率,沉浸式編程才是最理想的選擇,代碼本身就擁有很強(qiáng)大的反饋機(jī)制,加入過(guò)多的輔助功能只是畫(huà)蛇添足而已。
需求二
資深的Pythoner是免運(yùn)維的全能戰(zhàn)士,需要掌管服務(wù)器。
他們喜歡一個(gè)人拯救世界,從Web開(kāi)發(fā)、自動(dòng)化測(cè)試、自動(dòng)化運(yùn)維、爬蟲(chóng)開(kāi)發(fā)、數(shù)據(jù)倉(cāng)庫(kù)、任務(wù)調(diào)度、機(jī)器學(xué)習(xí)、硬件開(kāi)發(fā)全部都要自己獨(dú)立完成,只單單開(kāi)發(fā)某一個(gè)模塊是沒(méi)法滿(mǎn)足胃口的,也永遠(yuǎn)不會(huì)甘于只做某個(gè)環(huán)節(jié)上的螺絲釘。Python 因?yàn)楸旧砗?jiǎn)潔的語(yǔ)法設(shè)計(jì)使得入門(mén)的門(mén)檻非常之低,這使得原本從事不同開(kāi)發(fā)領(lǐng)域的專(zhuān)家都開(kāi)始嘗試使用Python來(lái)再造輪子。
運(yùn)維工程師 A 曾經(jīng)做了一個(gè) docker-py 來(lái)控制 Docker 的API,以支撐服務(wù)器上數(shù)百個(gè)容器的調(diào)度與監(jiān)控;數(shù)據(jù)工程師 B 現(xiàn)在用 Airflow 來(lái)控制 ETL 的流程以保證每天在Hadoop和Spark的洪荒之力的沖擊下,數(shù)據(jù)倉(cāng)庫(kù)的治理能夠有條不紊。Web工程師 C 也用過(guò) Django 快速開(kāi)發(fā)面向消費(fèi)者的網(wǎng)站以響應(yīng)一日三變的用戶(hù)需求。爬蟲(chóng)工程師 D 在用 Scrapy 爬取各大新聞網(wǎng)站和社交媒體的***資訊以滿(mǎn)足搜索引擎的需求。硬件工程師 E 在樹(shù)莓派上用OpenCV來(lái)調(diào)試一個(gè)人臉檢測(cè)的功能,以較低的成本完成核心功能的調(diào)試。測(cè)試工程師 F 正在用 Selenium 對(duì)各種客戶(hù)端進(jìn)行自動(dòng)化測(cè)試來(lái)檢測(cè)各種情況下的Bug ... 而在更多的情況下,ABCDEF 很有可能就是同一個(gè)人(被稱(chēng)為全占工程師)。
對(duì)比
其實(shí),Pythoner只需要一個(gè)沉浸式的編程環(huán)境和一個(gè)即時(shí)通向服務(wù)器的管道。
然而,Sublime Text 只滿(mǎn)足了***點(diǎn);Jupyter 只滿(mǎn)足了第二點(diǎn)。直到 RStudio的出現(xiàn),把二者結(jié)合了起來(lái)。
下面我們對(duì)比一下這三者的異同:
如何正確使用RStudio
正確使用RStudio的流程是這樣的:
1. 安裝RStudio
在服務(wù)器上使用root賬戶(hù)安裝 RStudio(并打開(kāi)8787端口),如果有多人協(xié)同建議不要用 Docker 安裝,如果你依然想要,這里有相應(yīng)的教程。
2. 賬號(hào)注冊(cè)
設(shè)置登錄RStudio登錄的賬號(hào)密碼,以及默認(rèn)的用戶(hù)目錄(建議不要給到root權(quán)限)。
- adduser FinanceR # 設(shè)置新用戶(hù)名
- passwd FinanceR # 設(shè)置該用戶(hù)的密碼
- mkdir /home/FinanceR # 初始化工作空間
- chmod -R FinanceR /home/FinanceR # 給工作空間賦權(quán)
3. 打開(kāi)編輯器
通過(guò)瀏覽器訪問(wèn)服務(wù)器的8787端口:e.g.123.456.789.1:8787
4. 項(xiàng)目管理
點(diǎn)擊左上角新建項(xiàng)目按鈕,新建一個(gè) Project 并引入Git或SVN作版本控制,拉取遠(yuǎn)端代碼。
5. 新建文件
新建一個(gè)空文件夾保存為.py后綴文件將提供Python代碼高亮,保存為.sql后綴將提供SQL代碼高亮。(還有html,c++可選)
6. 代碼執(zhí)行
通過(guò) ctrl + alt + s(source) 執(zhí)行python代碼,在console中可以查看執(zhí)行結(jié)果。
7. 掌管服務(wù)器
如果需要登錄服務(wù)器,在菜單欄中選擇Tool-》Shell即可進(jìn)入服務(wù)器端直接解決深層次問(wèn)題。
8. 代碼排查
當(dāng)程序出現(xiàn)一些問(wèn)題,在代碼有點(diǎn)復(fù)雜的時(shí)候,通過(guò)ctrl + shift + f(find)可以全局搜索你的代碼段
9. 文件搜索
事實(shí)上,我們你發(fā)現(xiàn)有時(shí)候是本地的csv文件路徑弄錯(cuò)了, 想要找到項(xiàng)目中某個(gè)文件,可以通過(guò)ctrl + shift + . 來(lái)全局檢索文件名(類(lèi)似 find /|grep 文件名)
10. 偏好設(shè)置
感覺(jué)默認(rèn)的偏好設(shè)置不滿(mǎn)足個(gè)人胃口,在偏好設(shè)置中可以設(shè)置快捷鍵、Vim模式、高亮、字體、snippet等等細(xì)節(jié)。我個(gè)人偏好solarized dark的深綠色主題。
總結(jié)
一方面,在服務(wù)器上寫(xiě)好代碼,直接在服務(wù)器上拉取提交Git/SVN或者部署Docker鏡像,這樣就避免了在Windows/Mac下寫(xiě)的代碼在服務(wù)器上跑不通的問(wèn)題,也就是說(shuō)開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境的代碼與環(huán)境始終保持了一致性。另一方面,通過(guò)Web IDE在任何一個(gè)瀏覽器中就可以直接前往服務(wù)器現(xiàn)場(chǎng),不論是一臺(tái)Chrome OS、 Windows XP 甚至是樹(shù)莓派。事實(shí)上,RStudio作為我的主力編輯器90%取代了Atom、Sublime Text、Jupyter等等編輯器,現(xiàn)在好多Python工程師都在學(xué)習(xí)如何使用它。