Total Pageviews

Tuesday, 16 July 2024

Mac系统上,高效程序猿必备的开发工具


一个聪明的开发者会用合理使用工具软件来提高工作效率,MacBook Pro开发必备软件。

工具软件选择策略

聪明的程序员不仅应该知道借助各种软件来提高工作效率,还应该知道如何选择适合自己的软件。

当前各种平台的工具软件更新速度很快,一个富有经验的开发者,应该逐步形成专属于自己的工具选择策略。

1. 简明和现代

选择那些为单一任务设计的工具,可以避免工作时多余的干扰,让你更加专注。

2. 知名度和良好的社区支持

学习任何一个新的工具软件都需要花费时间或是金钱,因此选择那些值得投资的软件或工具去购买和学习。

此外有良好的社区支持,和广大的用户群体对使用过程中遇到的问题都很有帮助,不要使用太小众的软件。

3. 足够轻便

开发者总是需要同时打开很多软件进行工作,轻便的工具确保系统运行流畅,不至于影响我的开发效率。

4. 价格实惠

买得起,或者你能找到…(如果你有足够资金,极力推荐支持正版,好处特别多),买不起,用不了,一切都白搭。

 

Mac下使用的工具软件推荐

1. Alfred

Mac系统对于开发者而言,已经比较完美了。但是搭配上Alfred,绝对是如虎添翼。

Alfred是我用过的最能将Mac的效率发挥到极致的工具了。无论是查找(打开)一个文件,翻译一个英文单词,更新git(svn)仓库等等,都可以通过Alfred轻松完成。作为开发者,你还可以使用你喜欢的语言,自己编写脚本,让他为你处理绝大部分的重复性工作。

总之,用过都说好。它的魅力,需要你耐心去探索。 

(Alfred- https://www.alfredapp.com/

Mac 用户不用鼠标键盘的必备神器,配合大量 Workflows,习惯之后可以大大减少操作时间。

上手简单,调教成本在后期自定义 Workflows,不过有大量雷锋使用者提供的现成扩展,访问这里- www.alfredworkflow.com/,挑选喜欢的,并可以极其简单地根据自己的需要修改。

安装:

brew cask install alfred )

 

2. Dash

作为一名合格的开发者,查看各种技术文档是必不可少的。

Dash提供150+文档下载,让你可以在离线的状态下查看常用的各种技术文档

此外还提供Snippet管理等功能,极力推荐。

 

3. iTerm2

OS X 下开源免费的的终端工具,我基本用它替代了原生的 Terminal。

极大的便利了一些基本功能,功能很多很多很多,多用多体会,你一定爱上他。

此外为了更加好用,强烈推荐使用zsh代理bash,提到了zsh,那么必不可少的药提高黄金cp:oh-my-zsh,不用多解释,来不及了,请赶紧上车oh-my-zsh

 

4. Sublime-Text-3

这是我开发cocos2d lua时使用的IDE。我非常喜欢它的那些使代码异常清晰的主题,以及功能丰富的插件。

但是唯一不足的是sublime text 3 在Xcode运行时特别卡,卡到你没法敲代码。

可以使用Sublime Text2,但是Sublime Text2有很多sb的功能,谁用谁知道。

反正,最近我已经弃坑了,转投Atom了。


Atom

Atom 官网:https://atom.io

Atom 中文网:https://atom-china.org

Atom 是github专门为程序员推出的一个跨平台文本编辑器。

具有简洁和直观的图形用户界面,并有很多有趣的特点

支持CSS,HTML,JavaScript等网页编程语言。

它支持宏,自动完成分屏功能,集成了文件管理器。

优点:小清新界面,git 原生支持,丰富的插件几乎能够满足所有 web 开发需求,简单的插件编写,自定义界面

缺点:打开大文件卡死,svn 支持较差,未来可能收费.

5. JetBrains

JetBrains 系列,产品线丰富,Java,ios,andriod,web,python,ruby,php,数据库,c#等一应俱全,收费,还挺贵但是普通用户可以使用各个软件的社区版哦。

反正自从入了JetBrains的坑,再也不能好好正视eclipse了。

也许你钟情于eclipse,但是你知道android studio ide是基于JetBrains的社区版开发的吗?

 

6. HomeBrew

OSX下好用的包管理工具,Ruby 社区的作品,功能类似 Ubuntu下的apt-get。
使用 Homebrew 可以非常容易的安装OS X中没有包含的 Unix工具包和语言包,比如 wget,node,lua,nginx 等。

操作简单,一键安装,避免了繁琐的安装,升级,卸载等配置工作。

 

7. Source Tree

目前用过的最好用的免费的git GUI客户端。 

(SourceTree- https://www.sourcetreeapp.com

SourceTree 是 Atlassian 公司出品的一款优秀的 Git 图形化客户端。如果你发现命令行无法满足你的要求,可以试试 SourceTree。

安装:

brew cask install sourcetree

用 brew-cask 安装会自动增加命令行工具stree到$PATH里。在命令行中输入stree可以快速用 SourceTree 打开当前 Git 仓库。详细用法请参见stree --help。)

 

8. beyond-compare

目前用过的最好的文件对比工具,支持文件夹对比,图片对比,文件合并等等功能。

 

9. CodeRunner

CodeRunner是Mac系统下的一款编程软件,支持20多种编程语言和.txt,

尤其是对于初学者来说,可以避免繁杂的开发环境的配置,直接上手写代码。

我一般用它来写一些小脚本,因为运行方便。

 

10. Mweb

专业的 Markdown 写作、记笔记、静态博客生成软件,这篇博客就是用这个软件写的。用了大半年了,没有任何不适。编写markdown的工具很多,这么好用的真不多。

 

11. Eclipse、JDK、Spring

Eclipse IDE for Java EE Developers

Java SE Development Kit 8u121

Spring

 

12. SecureCRT (强烈推荐

SecureCRT® client for Windows, Mac, and Linux combines rock-solid terminal emulation with the strong encryption, broad range of authentication options, and data integrity of the SSH (Secure Shell) protocol for secure network administration and end user access.

 

13. MySQL、MongoDB、Redis

MySQL Downloads

MariaDB Downloads

MongoDB Downloads

Redis Downloads

--------------------------

Stow (www.gnu.org/software/stow/)

GNU stow 是管理符号链接(symlink)的一个小公举。主要用于 symlink 你的 dotfiles(dotfiles.github.io/) 如 emacs,git,fish/zsh 的配置文件。安装只需要

brew install stow

安装了 stow 之后,我们可以开始 symlink 一些 dotfiles(github.com/jcouyang/dotfiles) 了。完整使用 stow 和 dotfiles 的流程可以参考github.com/jcouyang/dot

当你的 dotfiles 都妥妥的 symlink 到 ~/dotfiles 后,push 到 github 上就再也不怕换电脑了。

---------------------
Git 常用别名

几乎每个人都会使用一些方法比如 Git 别名来提高效率,几乎所有人都会把使用git st来代替git status。然而这需要手动设置,每个人也都不完全一样。

Oh My Zsh 提供了一套系统别名(alias),来达到相同的功能。比如gst作为git status的别名。而且 Git 插件是 Oh My Zsh 默认启用的,相当于你使用了 Oh My Zsh,你就拥有了一套高效率的别名,而且还是全球通用的。是不是棒棒哒?下面是一些我常用的别名:

AliasCommandgapagit add --patchgc!git commit -v --amendgclgit clone --recursivegcleangit reset --hard && git clean -dfxgcmgit checkout mastergcmsggit commit -mgcogit checkoutgdgit diffgdcagit diff --cachedglolagit log --graph --pretty = format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --allgpgit pushgrbcgit rebase --continuegstgit statusgupgit pull --rebasegwipgit add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit -m "--wip--"

完整列表请参考:github.com/robbyrussell

 -------------------

Scroll Reverser

当你在浏览一个很长的网页时,你看完了当前显示的内容,想要看后续的内容,你可以在 Trackpad 上双指上滑,或者鼠标滚轮向上滚动。这是被称作“自然”的滚动方向。

然而在 Windows 里鼠标滚动的行为是相反的:鼠标滚轮向下滚动才会让浏览器显示后续的内容,向上滚动会达到页面的顶部。你可以在 OS X 的系统偏好设置里修改(选择System Preferences > Trackpad,在Scroll & Zoom标签页中不选中Scroll direction: natural),但是这样会同时改变鼠标滚轮的方向和 Trackpad 的方向。

要想只改变鼠标滚轮的方向,而保持 Trackpad 依旧是“自然”的,我们需要 Scroll Reverser:

brew cask install scroll-reverser

PS:这货会让三指点击失效

---------------------------------------

ShiftIt

原生 OS X 下只能手动调整窗口大小,所以我们需要窗口管理工具。我用过很多窗口管理工具,可惜大部分工具都存在快捷键冲突的问题(对我来说主要是 IntelliJ IDEA)。ShiftIt 是少见的没有冲突的窗口管理工具:

brew cask install shiftit

PS:ShiftIt的旧版本需要安装 X11,最新版本已经修正了这个问题。

替代者有 SizeUp,主要快捷键和 ShiftIt 相同。

当然如果喜欢 hacking,Slate(https://github.com/jigish/slate) 是个不错的 hackable 的窗口管理工具。配置可以参照:

https://thume.ca/howto/2012/11/19/using-slate/

-------------------------------


Sublime Text 2

安装:

brew cask install sublime-text

在命令行中指定使用 Sublime Text 打开某文件,是一个非常常用的功能,一般我们会按照 OS X Command Line(www.sublimetext.com/docs/2/osx_command_line.html) 中所说执行ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl 来增加subl链接。但是如果你用 brew-cask 安装的话,恭喜你,你不需要运行这个命令,因为 brew-cask 自动帮你做了这件事情。而且你卸载 Sublime Text 的时候 brew-cask 会自动删掉这个链接。

同时 Oh My Zsh 也提供了 Sublime Text 插件,叫做sublime。

参考:github.com/robbyrussell,这个插件和通过 brew-cask 安装的 Sublime Text 完美兼容。

替代品有 Atom、TextMate、Sublime Text 3 等,跟 Sublime Text 2 一样,用 brew-cask 安装的话命令行工具会被自动加入$PATH。

-------------------------------------------

z

在打开终端后,你是怎么进入项目的工作目录?是cd xxx,⌃R还是用别名?

z工具(github.com/rupa/z)可以帮你快速进入目录。比如在我的 Mac 上运行z cask就会进入/usr/local/Library/Taps/caskroom/homebrew-cask/Casks目录。

这货的安装非常方便,甚至都不需要下载任何东西,因为它已经整合在了 Oh My Zsh 中。编辑~/.zshrc文件,在plugins=(git)这行中加上z变成plugins=(git z),然后运行source ~/.zshrc重新加载配置文件,就可以使用 z 了。

替代品有 autojump。autojump 需要使用 brew 安装。

----------------------------------------

LastPass.com


LastPass 是管理密码的工具,支持二次验证,提供所有浏览器插件以及 Mac 桌面版本。

最重要的是,它提供 命令行 的版本,可以直接通过 brew 安装:

brew install lastpass-cli --with-pinentry

之后,只需要登陆:

pass login you@email.com

就可以拷贝密码或者集成到其他命令中了:

pass show --password gmail.com -c
-------------------------------------------------------------- 
CheatSheet (www.mediaatelier.com/CheatSheet/)

CheatSheet 能够显示当前程序的快捷键列表,默认的快捷键是长按⌘。

安装:

brew cask install cheatsheet
---------------------------------------

开发工具Java

现在 OS X 都不会自带 JDK 了,所以进行 Java 开发的话,需要下载 JDK。在 brew-cask 之前,我们需要从developer.apple.com/dow 或者 Oracle 网站上下载。还有更麻烦的--卸载 JDK 和升级 JDK。

JDK 安装文件是 pkg 格式,卸载和.app不一样,且没有自动卸载方式。

而 brew-cask 提供了自动安装和卸载功能,能够自动从官网上下载并安装 JDK 8。

brew cask install java

如果你需要安装 JDK 7 或者 JDK 6,可以使用homebrew-cask-versions:

brew tap caskroom/versions
brew cask install java6

在 OS X 上,你可以同时安装多个版本的 JDK。你可以通过命令/usr/libexec/java_home -V来查看安装了哪几个 JDK。

那问题来了,当你运行java或者 Java 程序时使用的是哪个 JDK 呢?在 OS X 下,java也就是/usr/bin/java在默认情况下指向的是已经安装的最新版本。但是你可以设置环境变量JAVA_HOME来更改其指向:

$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
$ JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)

其中JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home可以用JAVA_HOME=`/usr/libexec/java_home -v 1.6`这种更加通用的方式代替。

jEnv

也可以使用 jEnv 来管理不同版本的 JDK,这个工具跟 rbenv 类似,通过当前目录下的.java-version来决定使用哪个 JDK。jEnv 也可以用 brew 安装。不过要使用 jEnv 要有几个问题:

  • 需要手动把eval "$(jenv init -)"加入 profile,没有 Oh My Zsh 插件。这点是我非常反感的。

    可以把eval "$(jenv init -)"加入~/.zlogin,这样可以避免修改~/.zshrc。

  • 需要手动添加 JDK,不会自动采集系统 JDK。跟 Ruby 不同,OS X 已经提供/usr/libexec/java_home工具来管理安装的 JDK。
  • 需要 jenv rehash。这个是跟 rbenv 学的。

所以我建议不要使用 jEnv。

民间使用的 Java 版本切换方法

添加以下脚本到当前 shell 配置文件中:~/.zprofile或者~/.bash_profile。


function setjdk() {
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
}

这样我们就可以通过输入一条命令进行版本切换了:

setjdk 1.8
Java[OCD]

作为一个强迫症患者,每当我看到 Java 的错误写法就想纠正过来。

当指编程语言时,Java 的正确写法是首字母大写,其余小写。其他写法比如JAVA、java都是不对的。

在其他一些地方会使用小写的java:

  • java命令
  • 原文件Main.java
  • 包名java.lang

只有在全大写的标题里使用JAVA或者环境变量JAVA_HOME。

 

IntelliJ IDEA

Java 开发必备工具 IntelliJ IDEA。可以安装 Ultimate Edition:

brew cask install intellij-idea

也可以安装开源免费的 Community Edition:

brew cask install intellij-idea-ce

IntelliJ IDEA 有几套内建的快捷键方案(Keymap)。其中适用于 OS X 的有Mac OS X和Mac OS X 10.5+两种。区别是:

  • Mac OS X方案和其他平台上的快捷键类似,
  • 而Mac OS X 10.5+更加符合 OS X 常用的快捷键。

一个团队使用不同的快捷键会严重影响效率。可以用View | Quick Switch Scheme(⌃ Back Quote)快速切换 Keymap。

如果可以选择的话,我建议使用Mac OS X方案。因为我经常遇到使用 Windows 的客户,而 Windows 平台上的快捷键和Mac OS X方案类似。

可以从 IDEA 的Help > Default Keymap Reference打开快捷键的参考手册。不过从这里打开的是Mac OS X 10.5+方案的,而Mac OS X方案的可以从这里找到:basrikahveci.com/static

------------------------------------------------------------

rbenv

人人都需要一个 Ruby 版本管理工具。rbenv 就是这样一个轻量级工具,它可以通过 brew 安装。

安装:

brew install rbenv ruby-build

然后在~/.zshrc中加上rbenv插件。否则你需要手动添加eval "$(rbenv init -)"到~/zshrc或者~/.zprofile文件里。

有时候项目会依赖一些奇怪的版本号,比如ruby-2.1.0,这个时候你需要 rbenv-aliases 帮忙:

brew install rbenv-aliases

替代品有 RVM、chruby。因为 RVM 不能通过 brew 安装,并且安装的时候会没有节操的修改一堆文件,所以被我早早的弃用了。chruby 也是一个轻量级工具,而且可以完美的和 Oh My Zsh 集成在一起,我看到有些生产环境在用它。

Ruby 常用别名

几乎所有 Ruby 开发人员都会把bi作为bundle install的别名。Oh My Zsh 提供builder插件,这个插件提供了一套别名,比如bi、be。同时还能让你在运行一些常用 gem 的时候直接输入rspec,不需要be rspec这样了。具体包括哪些命令请参考这里

Z shell 对于[和]符号有特殊的处理,所以在运行rake task[parameter]的时候会报错,你需要改成rake task\[parameter\]或者noglob rake task[parameter]。然而 Oh My Zsh 已经看穿这一切,自带的 rake 插件已经解决了这个问题:brake task[parameter]。

添加插件的时候注意把rake放到bundler后面,例如这样:

plugins=(git z sublime history rbenv bundler rake)
-----------------------------------------------------------
 
 
 

 



 

 

 

 

 

No comments:

Post a Comment