2

概述

资深Python工程师可以选择的编辑器有很多,比如 RodeoSpider,Eclipse,Vim,Visual Studio,Atom,Sublime Text,Jupyter等等,但是现在为什么现在很多资深的 pythonista 都开始拥抱 RStudio 呢?要回答这个问题,首先我们要了解到Python工程师的需求到底是什么?

需求一

资深的pythonista不依赖于集成开发环境,需要沉浸式编程。

真正的高手往往是不需要交互式编程环境的,他们更倾向于沉浸式编程,这些高手以前往往选择Vim或者Sublime Text这样的文本编辑器来解决问题。比如以前Sublime Text(Sublime Text是用Python写的)很火爆的时候,很多Python开发者都是Sublime Text安装几个插件,加一个REPL和代码高亮就开始干活了。而一些刚刚开始学习 Python 的同学则倾向于使用诸如 PyCharm,Visual Studio 这样的集成开发环境来辅助编程。

资深的Python开发者认为,过多的代码智能提示会打断自己的思路,提示一些并不需要的信息反而会降低自己的效率,沉浸式编程才是最理想的选择,代码本身就拥有很强大的反馈机制,加入过多的辅助功能只是画蛇添足而已。

clipboard.png

需求二

资深的pythonista是免运维的全能战士,需要掌管服务器。

他们喜欢一个人拯救世界,从Web开发、自动化测试、自动化运维、爬虫开发、数据仓库、任务调度、机器学习、硬件开发全部都要自己独立完成,只单单开发某一个模块是没法满足胃口的,也永远不会甘于只做某个环节上的螺丝钉。Python 因为本身简洁的语法设计使得入门的门槛非常之低,这使得原本从事不同开发领域的专家都开始尝试使用Python来再造轮子。

运维工程师 A 曾经做了一个 docker-py 来控制 Docker 的API,以支撑服务器上数百个容器的调度与监控;数据工程师 B 现在用 Airflow 来控制 ETL 的流程以保证每天在Hadoop和Spark的洪荒之力的冲击下,数据仓库的治理能够有条不紊。Web工程师 C 也用过 Django 快速开发面向消费者的网站以响应一日三变的用户需求。爬虫工程师 D 在用 Scrapy 爬取各大新闻网站和社交媒体的最新资讯以满足搜索引擎的需求。硬件工程师 E 在树莓派上用OpenCV来调试一个人脸检测的功能,以较低的成本完成核心功能的调试。测试工程师 F 正在用 Selenium 对各种客户端进行自动化测试来检测各种情况下的Bug ... 而在更多的情况下,ABCDEF 很有可能就是同一个人(被称为全占工程师)。

对比

其实,pythonista只需要一个沉浸式的编程环境和一个即时通向服务器的管道。

然而,Sublime Text 只满足了第一点;Jupyter 只满足了第二点。直到 RStudio的出现,把二者结合了起来。

下面我们对比一下这三者的异同:

序号 功能 Sublime Text Jupyter RStudio
1 Vim模式 yes no yes
2 自定义布局 yes no yes
3 自定义快捷键 yes no yes
4 文件夹管理 yes yes yes
5 全局搜索 yes no yes
6 函数跳转 yes no yes
7 多行编辑 yes yes yes
8 多格式输出 no yes yes
9 图表输出 no yes yes
10 Markdown预览 yes yes yes
11 Terminal no yes yes
12 版本控制 yes no yes
13 项目管理 yes no yes
14 Spark连接 no yes yes
15 插件系统 yes yes yes
16 Web访问 no yes yes
17 权限管理 no yes yes
18 变量管理 no no yes
19 多语言高亮 yes yes yes
20 集群管理 no yes yes
21 实时保存 yes yes yes
22 多人编辑 no no yes
23 文档发布 yes no yes

如何正确使用RStudio

正确使用RStudio的流程是这样的:

1. 安装RStudio

在服务器上使用root账户安装 RStudio(并打开8787端口),如果有多人协同建议不要用 Docker 安装,如果你依然想要,这里有相应的教程

2. 账号注册

设置登录RStudio登录的账号密码,以及默认的用户目录(建议不要给到root权限)。

adduser FinanceR # 设置新用户名
passwd FinanceR # 设置该用户的密码
mkdir /home/FinanceR # 初始化工作空间
chmod -R FinanceR /home/FinanceR # 给工作空间赋权

3. 打开编辑器

通过浏览器访问服务器的8787端口:e.g.123.456.789.1:8787

4. 项目管理

点击左上角新建项目按钮,新建一个 Project 并引入Git或SVN作版本控制,拉取远端代码。

5. 新建文件

新建一个空文件夹保存为.py后缀文件将提供Python代码高亮,保存为.sql后缀将提供SQL代码高亮。(还有html,c++可选)

6. 代码执行

通过 ctrl + alt + s(source) 执行python代码,在console中可以查看执行结果。

7. 掌管服务器

如果需要登录服务器,在菜单栏中选择Tool-》Shell即可进入服务器端直接解决深层次问题。

8. 代码排查

当程序出现一些问题,在代码有点复杂的时候,通过ctrl + shift + f(find)可以全局搜索你的代码段

9. 文件搜索

事实上,我们你发现有时候是本地的csv文件路径弄错了, 想要找到项目中某个文件,可以通过ctrl + shift + . 来全局检索文件名(类似 find /|grep 文件名

10. 偏好设置

感觉默认的偏好设置不满足个人胃口,在偏好设置中可以设置快捷键、Vim模式、高亮、字体、snippet等等细节。我个人偏好solarized dark的深绿色主题。

总结

一方面,在服务器上写好代码,直接在服务器上拉取提交Git/SVN或者部署Docker镜像,这样就避免了在Windows/Mac下写的代码在服务器上跑不通的问题,也就是说开发环境和测试环境的代码与环境始终保持了一致性。另一方面,通过Web IDE在任何一个浏览器中就可以直接前往服务器现场,不论是一台Chrome OS、 Windows XP 甚至是树莓派。事实上,RStudio作为我的主力编辑器90%取代了Atom、Sublime Text、Jupyter等等编辑器,现在好多Python工程师都在学习如何使用它。

clipboard.png

参考资料

]

更优阅读体验可直接访问原文地址:https://segmentfault.com/a/11...
作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者 Harry Zhu 的 FinanceR专栏:https://segmentfault.com/blog...,如果涉及源代码请注明GitHub地址:https://github.com/harryprince。微信号: harryzhustudio
商业使用请联系作者。

HarryZhu
2.2k 声望2.2k 粉丝