在Mac上工作的编码人员(27.5%)比在Linux上工作的编码人员(26.6%)多一点。相比之下,使用Windows作为开发机器的开发人员几乎是其两倍(45.8%)。多年来,我一直在平台之间跳来跳去,但我发现自己经常回到Mac。事实上,我从特定于Mac的应用程序中获得了很多生产力,尤其是用于视频制作的FinalCutProX。我喜欢能够在同一台机器上运行Windows、Linux和Mac应用程序,这只有在Mac上才有可能(我将在下面详细讨论)。虽然Windows也提供了一个强大的命令行环境,但我喜欢拥有一个完全Linux风格的命令行,并在Mac上具有完整的集成良好的图形工具。在本文中,我将向您展示我使用的工具。许多是跨平台的,而另一些是特定于Mac的。虽然我过去开发过Mac应用程序和iOS应用程序,但我目前的开发工作完全是针对网络的。我维护着10个开源WordPress插件,包括一个支持10,000多个非营利组织的捐赠插件和一个支持20,000多个网站的网站隐私插件。虽然我过去使用多种语言编程(并自己编写),但我目前的项目主要涉及PHP和JavaScript,并且擅长CSS、HTML和SQL(以及一些框架)。为了创建和维护这些代码,我使用了如下所示的各种工具。在本文中,我将向您展示我安装的工具。在以后的文章中,我将向您展示并深入了解有助于完成工作的云服务。就是这样,让我们??开始吧。集成开发环境:PhpStorm的代码编辑和开发环境主题引发了无数的宗教辩论。一些程序员信奉旧方法,只依赖命令行和vi、emacs等编辑器。一些程序员更喜欢轻量级的文本编辑器,而另一些则更喜欢可扩展性更强的编辑器,例如vi和emacs。其他人更喜欢可扩展性更强的编辑器,例如Atom和SublimeText。包括我在内的一些编码人员更喜欢完整的IDE,例如PhpStorm、VisualStudioCode和Xcode(主要用于其Mac和iOS原生开发工具)。我选择的武器一直是PhpStorm。我已经使用它很多年了。它具有用于本地和远程调试的优秀集成调试环境。它还集成了我每天使用的各种功能,从它自己的终端窗口到文件同步,再到版本控制和逐行文件历史记录。此外,它还提供丰富的插件选择,可扩展和增强您的编码体验。我最喜欢的一些插件包括:RainbowBrackets:一个很棒的插件,不仅可以匹配括号的行数,还可以匹配颜色。它使查看哪些代码属于何处变得非常容易。StringManipulation(字符串操作):各种字符串操作,大小写转换等。WordPress:语法格式化和WordPress风格的函数格式化,以及对WordPress钩子的支持。任何WordPress插件编码器的必备工具。本地环境:Local在做web开发的时候,通常最好有一个本地的开发栈。本地就是这样的栈。提供Nginx或Apache、MySQL、PHP安装包和Xdebug等一些资源,最重要的是它自带隧道,可以让基于互联网的资源访问本地环境进行编码和测试,内置SSL集成和MailHog——拦截电子邮件以进行基于电子邮件的应用程序测试。哦,它是免费的。快速编辑:SublimeText我之前提到过SublimeText,许多编码人员将它用作他们的主要开发环境。它几乎支持一系列传说中的插件和附加组件。当我想在PhpStorm的本机项目结构之外编辑项目文件时,我使用SublimeText作为快速编辑器。它速度快,反应灵敏,而且很有特色。将文件提交到存储库:SmartSVNWordPress插件存储库(所有采用的插件都可以在这里为WordPress用户提供)不使用Git或Github,而是使用SVN源代码控制系统。我发现SVN的命令行很烦人,所以我使用一个名为SmartSVN的GUI将我的文件发送到存储库。它大大减少了我在发布新版本时出错的机会。命令行风格:iTerm2虽然我更喜欢使用GUI界面来实现我的开发工具箱中的大多数功能,但我并不害怕在适当的时候使用命令行。虽然可以只使用标准的MacOS终端,但我更喜欢iTerm2。提供分屏、命令补全、粘贴历史等功能。它也可以根据您的心情和项目进行配置。节省每一秒的点击时间:快捷方式栏是MacAppStore的小宠儿,它是一款方便的工具,用于捕捉快速项目并从Mac的菜单栏访问它们。我最大的用途是为我正在开发的各种网站创建管理页面和用户页面的快捷方式。我没有切换到浏览器窗口并调用书签,而是进入菜单,选择我想去的地方,然后浏览器打开。这可能看起来像是一个小功能,但是当每天在IDE和浏览器之间切换数千次时,这些鼠标点击节省了大量的时间。因为快捷栏允许分组,所以我也将指向本地和远程服务器测试位置的链接分组。Mac上的Windows和Linux:ParallelsDesktop由于我进行Web开发,我必须在基于Windows的浏览器上检查我的代码,这意味着我需要启动到Windows10以测试新的Edge、Chrome、Firefox和——对不起—IE11。是的,那里有IE11用户。我在本文的介绍中提到了ParallelsDesktop。我发现在同一台机器上运行Windows、Mac和Linux的能力在某些情况下非常有用。也就是说,我一直在楼上办公室的Mac上运行Windows,它是速度和容量最大的一台机器。那台机器也是我用来制作视频的机器。我的主要开发机器实际上在楼下,沙发旁边。这要追溯到我的狗小时候,当我在办公室工作时,它常常感到孤独和害怕。现在,在我工作的时候把它放在我的腿上是一件非常愉快的事情,我已经建立了一个完整的工作站,让我可以坐在我的客厅里,与键盘和狗分享我的膝盖。那台机器是2013款i7iMac,内存为32GB。它非常适合开发,但对于多个4K视频流来说速度不够快。它的速度也不足以真正成功地托管Windows桌面。这让我开始思考...连接到远程机器:屏幕共享和Microsoft远程桌面尽管我的开发机器在楼下,视频制作机器在楼上,但无论我在机器上的哪个位置工作,我都可以使用其中任何一个。我只是使用MacOS内置的屏幕共享应用程序连接到远程机器。当我想从楼下的开发机器连接到Windows时,我使用“MicrosoftRemoteAccess”。这是从MacOS应用程序商店免费下载的,它为我的Windows10机器提供了一个完整的远程界面。请注意,如果您计划使用MicrosoftRemoteAccess,则需要运行Windows10专业版。WindowsHome不支持远程访问。哦,如果您想知道为什么这种环境似乎没有在移动环境中的咖啡店中进行编程的组件,那很简单:这些天的流行病。一旦确定我所有的编码工作都将在家里完成,我就将我的开发工作整合到一台容量适中的固定机器上,并针对机器之间的千兆以太网进行了优化。如果我们仍然生活在以前的“旧常态”中,我会有一个更加以云为中心的实现。我想念咖啡馆。用于管理MySQL数据的简洁界面:SequelPro我的代码执行大量SQL操作。因此,我需要能够查看已存储到数据库中的内容。对我来说,最简单和最快的方法不是PhpMyAdmin,而是一个名为SequelPro的本地Mac应用程序(太棒了,它的图标上混合了煎饼和数据存储)。我最常用的方法是打开一个数据库表,搜索“valuecontains”或“option_namecontains”,然后查找结果。它速度很快,允许我在开发过程中操作数据。我应该指出PhpStorm也有一个数据库浏览器,但我发现SequelPro对我来说更有效率。不太复杂的SFTP客户端:Forklift我花了很长时间才改掉通过命令行和SSH隧道使用SFTP的习惯。叉车是一个很好的选择。它保留网站和登录列表,支持加密,并提供传统的拖放界面来批量移动文件。强大的应用程序自动化:KeyboardMaestro与FinalCutProX一样,KeyboardMaestro是让我始终使用Mac的专用软件工具之一。我第一次购买KeyboardMaestro是在2011年,从那以后我就一直将它用于各种专业脚本。这是一个非常强大的跨应用程序脚本工具,也非常易于使用。我经常编写特殊用途的脚本来运行一项否则会花费很长时间的任务。我的一些脚本非常强大,可以跨越多个应用程序。其他脚本,如屏幕截图中的条纹填充测试,一遍又一遍地做一件事。我们来谈谈吧。在为我的捐赠插件开发Stripe支付网关时,我不得不启动测试支付可能一千次。在我编码、测试和调试时,我不得不一遍又一遍地用相同的测试数据填写相同的信用卡字段。KeyboardMaestro中的一个简单脚本可以为我完成这一切。我没有为每个测试手动填写数据,而是让KeyboardMaestro为我完成。快速搜索特定目的:AlfredAlfred是我的生产力大家庭的新成员。它会弹出一个命令栏,有点像Spotlight,但增加了功能。您可以创建工作流来完成相对复杂的任务,但到目前为止我的主要用途是四个自定义搜索。当我按下Alt-Space时,会弹出Alfred的输入字段。如果我键入“codex”,它会使用以下任何内容作为codex(WordPress开发人员文档站点)上的搜索字符串。输入“plugin”,WordPress插件存储库将被搜索。键入“zdme”可在ZDNet中搜索我使用您要搜索的字符串撰写的文章。我经常使用这种方法在文章中放置链接。现在,这看起来很简单,您可以设置Chrome来执行自定义搜索,但同样,就像快捷方式栏一样,这可以节省鼠标移动和按键操作。如果我需要查看WordPress函数的定义,只需单击一个键即可,而不是鼠标。
