概述
资深Python工程师可以选择的编辑器有很多,比如 Rodeo , Spider ,Eclipse,Vim,Visual Studio,Atom,Sublime Text,Jupyter等等,但是现在为什么现在很多资深的 Pythoner 都开始拥抱 RStudio 呢?要回答这个问题,首先我们要了解到Python工程师的需求到底是什么?
需求一
资深的Pythoner不依赖于集成开发环境,需要沉浸式编程。
真正的高手往往是不需要交互式编程环境的,他们更倾向于沉浸式编程,这些高手以前往往选择Vim或者Sublime Text这样的文本编辑器来解决问题。比如以前Sublime Text(Sublime Text是用Python写的)很火爆的时候,很多Python开发者都是Sublime Text安装几个插件,加一个REPL和代码高亮就开始干活了。而一些刚刚开始学习 Python 的同学则倾向于使用诸如 PyCharm,Visual Studio 这样的集成开发环境来辅助编程。
资深的Python开发者认为,过多的代码智能提示会打断自己的思路,提示一些并不需要的信息反而会降低自己的效率,沉浸式编程才是最理想的选择,代码本身就拥有很强大的反馈机制,加入过多的辅助功能只是画蛇添足而已。
需求二
资深的Pythoner是免运维的全能战士,需要掌管服务器。
他们喜欢一个人拯救世界,从Web开发、自动化测试、自动化运维、任务调度、机器学习、硬件开发全部都要自己独立完成,只单单开发某一个模块是没法满足胃口的,也永远不会甘于只做某个环节上的螺丝钉。Python 因为本身简洁的语法设计使得入门的门槛非常之低,这使得原本从事不同开发领域的专家都开始尝试使用Python来再造轮子。
运维工程师 A 曾经做了一个 docker-py 来控制 Docker 的API,以支撑服务器上数百个容器的调度与监控;数据工程师 B 现在用 Airflow 来控制 ETL 的流程以保证每天在Hadoop和Spark的洪荒之力的冲击下,数据仓库的治理能够有条不紊。Web工程师 C 也用过 Django 快速开发面向消费者的网站以响应一日三变的用户需求。爬虫工程师 D 在用 Scrapy 爬取各大新闻网站和社交媒体的最新资讯以满足搜索引擎的需求。硬件工程师 E 在树莓派上用OpenCV来调试一个人脸检测的功能,以较低的成本完成核心功能的调试。测试工程师 F 正在用 Selenium 对各种客户端进行自动化测试来检测各种情况下的Bug ... 而在更多的情况下,ABCDEF 很有可能就是同一个人(被称为全占工程师)。
对比
其实,Pythoner只需要一个沉浸式的编程环境和一个即时通向服务器的管道。
然而,Sublime Text 只满足了第一点;Jupyter 只满足了第二点。直到 RStudio的出现,把二者结合了起来。
下面我们对比一下这三者的异同:
序号功能Sublime TextJupyterRStudio1Vim模式yesnoyes2自定义布局yesnoyes3自定义快捷键yesnoyes4文件夹管理yesyesyes5全局搜索yesnoyes6函数跳转yesnoyes7多行编辑yesyesyes8多格式输出noyesyes9图表输出noyesyes10Markdown预览yesyesyes11Terminalnoyesyes12版本控制yesnoyes13项目管理yesnoyes14Spark连接noyesyes15插件系统yesyesyes16Web访问noyesyes17权限管理noyesyes18变量管理nonoyes19多语言高亮yesyesyes20集群管理noyesyes21实时保存yesyesyes22多人编辑nonoyes23文档发布yesnoyes如何正确使用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作版本控制,拉取远端代码。