程序员是如何做到随时随地编程的?
好奇那些抱着电脑就可以随时随地工作的人,他们的电脑为什么看起来比我们强大那么多?本文就来告诉大家,软件工程师是如何做到能在各个地方随时工作的——下文将为小伙伴揭秘,大家可以学起来哦。
作者 | Tigran Bayburtsyan
译者 | 苏本如 ,责编 | maozz
出品 | CSDN(ID:CSDNnews)
编程不是一个容易的过程,特别是在你必须同时兼顾快速和不产生bug的时候。把你的注意力仅仅集中在编程上本身就是一个相当困难的挑战,而这篇文章讲述更多的是关于如何在任何地方使用互联网和浏览器,对代码进行最终的设置!
当我们在Hexometer.com工作的时候需要频繁地出差,有时候需要花费几天的时间在一台不同的电脑上密集地检查我们的工具,这就是为什么我需要这样的一个环境,它能够让我在任何一个有互联网连接和浏览器的电脑上支持相同的编程流程。
可能这篇文章不适用一个电脑迷或低成本旅行者,因为他们工作的地方通常很廉价,而且互联网连接状况很差。
而且正如你可以想象,要想使你的编程环境设置完全独立于任何笔记本电脑,唯一的方法就是使用一个具备互联网连接的基本的浏览器,因为你清楚,现在的浏览器无处不在!
这样做有什么好处?
我一直都使用最强大的超级本,以便加快我的编程过程,并尽量让代码编译时间缩短到可以无视。你可以想象这是很昂贵的,而且笔记本电脑的强劲功率可能会影响它的电池的使用时间。
通常情况下,MacBook笔记本电脑可以保证在不充电的情况下连续编程大约4-5小时,这已经相当不错了。但是,有时候你无法保证一直使用同样的笔记本电脑,而且随着时间的推移,你会发现你越来越难切换到新的笔记本电脑上工作。
老实说,在过去的4-5年里,我基本上都是使用MacBook笔记本电脑来完成我的编程项目,主要原因是我喜欢它们的构建方式,而且喜欢专门为它们优化过的操作系统。
然而,当我开始在远程服务器编程,并使用开发运维一体化流程时,我意识到将整个编程过程转移到服务器上带来的下列优点将远远大于这种编程方式的缺点。
高达每秒1GB的互联网连接速度!这个好处太大了,特别是如果你需要经常安装远程包或拉/推Docker容器的时候。
强大的CPU核心,而且没有任何用户界面的开销。你可以为你的编程服务器配备功能强大的至强(Xeon)CPU或i7 CPU内核,价格远比作为笔记本电脑包购买它们要便宜。
而且最重要的区别是,所有的笔记本操作系统都要消耗3-5%的CPU来保持桌面用户界面的运行,如果你要在它上面使用功能强大的集成开发环境(IDE)的话,它消耗电池更快。
可以让你远程访问本地主机(localhost)!作为一名WEB开发人员,我过去经常运行一个名为ngrock的工具来构建一些远程隧道,以便向客户展示一些实验项目。
现在它变得非常有用,甚至可以让我使用专门的域名连接到我的开发环境,可以直接从一个地方进行编程和在线共享一些东西!
非常灵活的磁盘空间。我几乎一直在使用带有256 GB大小的固态硬盘(SSD)的笔记本电脑,但是如果能够动态地扩展它的大小,正好可以让我能够直接在我的编程环境中运行一些良好的数据收集测试。
以上列出了这种编程方式的所有好处,可以把它视为在浏览器编程中或者在使用浏览器的设备中进行编程的一种奖励。
浏览器中的VS Code
有几种工具、服务可以在浏览器中像运行编辑器一样来运行VS Code。然而,有一个开源项目,它通过使用基于WebSocket的服务器通信来替换Electron框架的功能,以便在浏览器中执行精确的VS Code复制,它甚至可以通过移动热点与3G网络协同工作。然而,有时当互联网连接不好时,你会非常失望,但这是不使用独立的笔记本电脑的代价。
不管怎样,你得到的好处比你一开始想象的要多得多。
Code-Server项目是基于VS Code的,但是它们改变了与Electron桌面应用程序的所有连接部分,使之能在浏览器 + Websocket连接的环境中工作,在服务器端运行服务并将结果传递给浏览器。
Code-Server可以在所有平台上工作,包括MAC、Windows和Linux,但在大多数情况下,我确信你会使用Linux作为服务器操作系统来运行code-server.。
# Running code-server from CLI
~# code-server --auth none --port 8888
在我的例子中,基本的SystemD配置如下:
[Unit]
Description=Code Server
[Service]
PIDFile=/tmp/coder-99.pid
User=coder
Group=coder
Restart=always
KillSignal=SIGQUIT
WorkingDirectory=/home/coder
ExecStart=/usr/local/bin/code-server --auth none --port 8080
[Install]
WantedBy=multi-user.target
如你所见,我没有直接在code-server上使用任何公共端口,这是因为它实际上可以在没有任何访问控制的情况下公开我的所有项目(它们的密码不是那么安全)。
为了使它更安全,我在它前面使用Nginx,并进行特定的配置,让它只起到一个代理服务器的作用,然后设置HTTP身份验证和一些SSL配置信息,以确保它只能通过VPN访问。
它真的能在任何设备上工作吗?
对这个问题的答案,我会说“是的!”
一些设备可能有Unicode输入问题,因为它们使用了一些字符转换服务,就像大多数安卓设备一样。但是对于苹果设备,它工作得很好!即使在iPad Pro上,你也能感受到通过VSCode终端编程和访问服务器命令行界面(CLI)的乐趣。
我曾在Acer Chromebook 14笔记本电脑上工作过一段时间,它是一款非常低功耗的设备,对我来说它工作得很好,因为大多数自动完成和服务处理工作都是在服务器端完成的,而不是在本地笔记本电脑的CPU上进行的。
这个方式并非对每个人都是一个挑战,如果你大部分要编程的应用程序不需要桌面视图或特定操作系统,那么你就可以使用。我甚至使用这种方式用Expo进行React Native的编程工作,这个过程涵盖了所有与操作系统无关的流程。
希望你能像我现在这样不再依赖于一台笔记本电脑,而享受在浏览器中编程的乐趣!
原文:https://hackernoon.com/my-laptop-independent-workflow-as-a-software-engineer-kk19320n
本文为 CSDN 翻译,转载请注明来源出处。