编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
Projector是一款远程访问IDE工具,支持在服务器上运行基于IntelliJ的IDE和基于Swing的应用,让开发者可以在任何地方使用浏览器和本地应用来访问它们。
基本简介
Swing是Java的图形widget工具包。当前的JetBrains IDE都使用了Swing来绘制UI,其他基于IntelliJ的IDE(例如 Android Studio)同样如此。尽管JetBrains IDE和Swing应用都是桌面应用,但存在一些边界情况需要使用特殊方法,比如瘦客户端(Thin clients),这就是Projector的使用场景。
适用场景
在runtime或数据库附近运行代码以降低往返通信频率
高安全性企业环境
真正的大型项目
禁止在本地复制源代码
用户硬件被限制使用
需要在Windows设备甚至是非传统的操作系统(例如ChromeOS)上的 GNU/Linux 环境中运行IDE
当应用程序继续在服务器上运行时,需要关闭计算机
远程调试服务端(devtest,devprod)
具有调试源和预配置IDE的VM或Docker镜像
需要远程访问的配置
目前有两种方式使用Projector,分别是Web客户端和原生应用。
Web客户端使用HTML5 Canvas API实现(原理是将JVM的Swing绘制层替换掉,改成向浏览器发送渲染指令),使用者只需在浏览器输入URL即可完成访问。当然,前提是配置好Projector要访问的主机。
原生应用支持macOS、Windows 和 Linux平台,除了可集成到Dock或任务栏这些好处外,原生应用还支持Ctrl+W/Cmd+W等键盘快捷键,这些快捷键在Web客户端中通常无法使用。
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。