工具篇

1. 前言

在这个提倡效率的时代,我们每学一门新的技术都会先从工具入手,这也应了中国古代的一句老话,“工欲善其事,必先利其器”,这里不谈记事本这类的,相信大神总是有的,一个好的开发利器总能达到事半功倍的效果。

2. 硬件

Mac

这里我提到它并把它放在第一个位置,是觉得mac是程序员最值得入手的一件工具,相信每年的Google开发者大会如果大伙看了的话,场下坐着的大部分程序员背部电脑都印着苹果Logo的图案:我总结了几个入手的理由:

  1. 天生自带的常用的unix-like的shell和大部分工具集。这意味着基本上所有的Linux命令都可以在Mac上面跑,不用像windows那样装cygwin或者msys来模拟类UNIX环境,再或者捣鼓自己电脑装个双系统,更有借助虚拟机vitualbox、VMware等等,后者就运行起来或许更慢,也更不必说影响效率了。
  2. 开发环境。c/c++/java/perl/python/php/ruby/lisp,各种 shell,应有尽有,直接支持,非常方便。可是windows可能需要一个一个去装,Mac 基于 Unix,所以这些通通都和Mac能很好和睦相处。
  3. 病毒/木马少。大部分的黑客都在关注windows平台,因为用户群大,这也导致其中的利益空间也是很有潜力,他们当然不会放过了,所以windows平台每年都会有大量的病毒或者木马出现。
  4. 不需要在维护;我挺烦windows下不断的系统补丁更新弹出来,无需磁盘整理,无需安装驱动,也不用来回折腾装系统,这一切Mac都帮你做好了。
  5. 简洁。Mac的触摸板好用,甚至可以替换掉你的鼠标,并且所有的操作都简洁到了极致,尽量避免干扰用户,增加了程序员的生产力。
  6. 专注于工作。说实在如果你想打游戏的话,Mac 不是 “好” 电脑,这个平台游戏少,另外一般配置的mac电脑跑游戏其实也很吃力,如果游戏发烧友,果断配游戏主机,Mac不适合。
  7. 视网膜屏。高清晰的屏幕让你看起来更加的舒服,没有了大颗粒的像素点。
  8. 像我这样,多平台开发的,要开发iOS/OS X 几乎是必备的。

另外我列几个不入手的理由:

  1. 编程开发主要在windows平台的朋友,如.net平台,win32exe等,因为Visual Studio的强大也无需其他工具来辅助,该有的都有。
  2. 特别喜欢打游戏的,或许你买了之后体验一定很糟糕。
  3. 不喜欢Mac OS X 使用方式的,因为我们总会先入为主,习惯了windows平台Windows平台就很难再适应Mac。
  4. Mac相对其他电脑来说都比较贵,所以从成本来说当然会高一点,比较在意这一点得。
  5. 如果买来装逼格,或者换个windows系统,大没必要。

3. 软件

系统

  1. Ubuntu:
    喜欢命令行,开发方向又是Linux向的,Ubuntu是首选。各种理由上面其实有提到。

  2. Windows:这个无需多说,相信很多人都在用。

开发工具

Android篇

  1. Android Studio:
    官方IDE,谷歌2013年I/O大会发布。势必要取代之前使用Eclipse ADT相比较而言,前者UI更加漂亮,功能更加强大,配置也简单,代码提示更加给力,加上丰富的插件资源配合简直如虎添翼,如果你是一名刚接触Android的,建议直接从这个入手,官方前两天刚发布1.3预览版,如今稳定性已大幅增加,并且开源社区大量优秀开源库也已支持,更多的开发者开始切换到这个IDE下。
  2. Eclipse ADT
    Eclipse做java开发的一定不会陌生,甚至一度成为java的代名词,这个也是最早作为Android开发工具,早之前Android Studio刚发布的时候,由于不支持NDK开发,所以一些有C++支持的so库不能在其上面使用,还需要Eclipse ADT 的支持而如今这个问题已经不存在了,因为Android Studio已经支持NDK开发,所以可以全面转过来。况且版本已不再更新。所以相信接下来这个会逐渐退出舞台。
  3. IntelliJ IDEA + ADT
    这个在Android Studio出来之前也有人在使用,可如今官方的AS也即是基于这个内核基础来做的,所以无需切换到这个上面上来,属于同一分支。
  4. SDK自带工具包。在sdk/tools目录下,Google有很多工具,具体使用方法网上也有很多教程。附上官方地址
  5. Android Studio插件,打开IDE,在设置-Plugins里面,常用插件一应俱全。
  6. Genymotion:替代官方的模拟器,速度比官方的要快,并且个人使用免费当然如果有真机最好。
  7. 项目构建工具:Gradle/Maven,android studio默认支持Gradle构建,附上Gradle官方文档地址,还有Maven地址
  8. Robotium:一款国外的Android应用自动化测试框架,主要针对应用进行黑盒自动化测试,提供了模拟各种手势,查找和断言机制,能够对各种控件进行操作。类似诸如Monkey (压力测试)、monkeyRunner (功能测试,用户接受度测试,黑盒测试) 、UIAutomator(黑盒测试,功能测试) 、AndroidTest(单元测试,逻辑测试,白盒测试)、Appium测试 (功能测试,用户接受度测试,黑盒测试)等。
  9. 给大家介绍一个网站,关于Android开发的大部分工具都在这里可以找到,除了有开发指南,视频教程,另外关于设计的也应有尽有:如PS插件,矢量图设计工具、切图工具、设计稿尺寸标记工具、原型设计工具、交互设计工具、配色工具、图标处理工具、取色工具、gif录制等等。

iOS篇

  1. Xcode
    同样作为官方的IDE,是开发iOS/OS X必不可少的利器,另外还需要配备苹果电脑:iMac/Macbook/MacPro/MacMini.当然本着学习的态度,黑苹果也是可以的,但是需要折腾,对硬件有要求,另外苹果发布需要真机+开发者账号(公司/个人99$/年,企业299$/年)。
  2. Xcode官方自带工具包:菜单栏 -> Xcode -> Open Developer Tool 中,包括Instruments, iOS Simulator,ApplicationLoader等等,有会员的话可以直接在那里下载更多程序。
    附上截图
    image
  3. 网络抓包工具:Charles & Fiddle2
    Charles:Mac下常用的截取网络封包的工具,官方地址,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
    Fiddle2:Windows平台一款免费且功能强大的数据包抓取软件,它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。附上官方地址
  4. CocoaPods:管理Object-c项目的重要工具,允许你轻松快速的将第三方库集成到你的应用当中第三方库,是为iOS程序提供依赖管理的工具;类似于java的Maven/Gradle,Nodejs的npm等。附上官方地址
  5. Sketch:Mac平台强大的矢量画图工具,随着屏幕尺寸和像素密度的改变,它会变得越来越有用只需设计一次,可以根据需要导出各种图片。
  6. VVDocumenter:自动生代码注释的工具,类似JavaDoc风格。
  7. ClangFormat:格式化代码。
  8. PaintCode:一个专为设计师准备的简单矢量图形绘图应用程序,借助它能立即画出美丽的控件、图标或其他UI界面元素并直接生成适用于iOS或者OS X的Objective-C代码。
  9. Reveal:为了查看UI发生的变化,我们过去常常会重新编译我们的应用,不过效率非常低。Reveal为开发者带来了类似Firebug和Web Inspector的强大工具。
  10. Nomad:优秀的iOS开发命令行工具集。具体功能可在其官方网站查看。
  11. CocoaLumberjack:一款针对Mac和iOS平台的日志框架,快速、简单、功能强大,并具有极好的灵活性。开发者可用它为Debug和版本发布指定不同级别的日志,可通过CocoaPods进行安装。可以取代官方NSLog,类似Android中的Logcat。
  12. Dash:Mac平台一个浏览API文档的工具,快速并集成了大量不同的应用,比如Xcode、Alfred、Textmate以及SublimeText等。最方便的是你可以下载文档集离线观看。
  13. KSImageNamed:是一个帮助你输入[UIImage imageNamed:]中的资源名的插件。当你输入[UIImage imageNamed:]时,会自动的弹出上下文菜单,供你选择你需要输入的图片资源名字,另外在选择图片资源时,还可以在左侧预览该资源。
  14. Code Runner:Mac平台能快速测试一段代码,支持多种语言,适合你只是想写一小段代码,但又不想创建一个工程这种的。
  15. Spark Inspector:常用的界面调试工具,和Reveal同样被使用,附上官方地址
  16. PonyDebugger:和上面那个功能差不多,相比较而言PonyDebugger是免费并且开源的,前面两者是收费的,不过功能更加强大。
  17. xScope:是一类与界面开发相关的工具集。如放大镜、标尺、取色等。收费软件,免费版本功能有限制。
  18. Prepo: 只需要一张大尺寸的图片,就可快速生成你iOS开发需要的各种尺寸。
  19. Base:一款查看sqlite数据库的GUI工具,如果你不喜欢sqlite3命令行来查看sqlite数据库的话,它可以帮到你。
  20. 附上一个网站长期更新ios dev tools,地址,另外国外大神总结的一篇文章很详细,地址.国内译文

JavaScript篇

  1. WebStorm:和idea同属于jetbrains公司开发的,它是旗下一款JavaScript开发工具,被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等,目前我也在使用它。
  2. Aptana Studio:早起作为一个插件可以集成与Eclipse中来开发前端,现在已经独立出来,也是我最早接触js所使用的一款开发工具,如果熟悉了Eclipse快捷键的童鞋可以快速上手。
  3. Dreamweaver:这个是我一开始接触编程用的最多的一款Html开发工具,编写静态页面和css样式,提示很给力,个人觉得美工设计人员用的多一点。
  4. SublimeText:一款代码编辑器,借助丰富的插件资源,可以扩展成强大的前端开发工具,和IDE相比,属于一款轻量级的,启动特别快。也是我现在使用的一款开发工具。
  5. Atom:作为开源老大哥GitHub出的一款代码编辑器,和上面那个比较而言,插件略少,但和GitHub无缝结合,尤其是markdown编写,界面也很漂亮,我一般写博客用的比较多。
  6. TextMate:和前面提到的两个一样,也是一款代码编辑软件,同样也有不少粉丝,不过我现在还没有用过。
  7. Vim/Emac:一个类似于Vi的文本编辑器,支持多种语言,熟练使用的话可以节省大量时间,因为学习成本高,需要掌握很多的快捷键和技巧,所以目前我还是用不习惯,所以还是用SublimeText&Atom多一点,我想很多大神应该会用的多一点。
  8. Notepad++是一款非常有特色的编辑器,支持多种语言。
  9. HBuilder:国内做的一款html5开发工具,快,是HBuilder的最大优势,通过完整的语法提示和代码输入法、代码块及很多配套,HBuilder能大幅提升HTML、js、css的开发效率。附上官网地址
  10. AppCan:另一个国内的一站式html5移动开发平台,附上官网地址

Web开发工具

  1. Visual Studio:.net平台的老大,无可替代,因为本人不是从事C#或C++所以就不多说了。
  2. Eclipse: 作为java的代名词,和VS并驾齐驱,通过丰富的插件可以扩展成强大的IDE。相信也是用的最多的。
  3. MyEclipse:相比前者而言,MyEclipse节省了很多安装插件的时间,它把用于web开发的大部分功能都集成到一起。也是j2ee开发的不错的工具相比前者它收费,安装包大,且启动有点慢,我最早接触j2ee也是用的它。
  4. IntelliJ IDEA:前面Android开发有提到这个工具,也是被业界公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的,丰富的插件资源吸引着越来越多的java开发者开始使用这个工具,也是我现在接触web项目所用的开发工具。

其他辅助工具

  1. Git:一款免费、开源的分布式版本控制系统,作者就是大名鼎鼎的Linux开发者Linus Torvalds,如今越来越多的开发者都开始使用git来作为版本管理工具,如果你还在用SVN,那么你可能就有点out了。除了git命令行操作以外,还有几款客户端,如GitHub For Mac/Windows、 Source Tree、Tower 等,目前我是GitHub客户端和命令行结合使用的多一点。
  2. SVN:Subversion的简称,是一个开放源代码的集中式版本控制系统,也是现在大多公司项目用的最多的一个。除了操作命令行以外,还有一些GUI客户端,如Windows平台大名鼎鼎的小乌龟TortoiseSVN,Mac平台Cornerstone这两个也是我在使用的客户端,此外Mac平台还有Versions、SmartsSVN等。
  3. Markdown:一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。目前Windows平台用的比较多得就是MarkdownPad,Mac平台用的比较多的就是Mou,markdown现在已然成为我写博客必不可少的元素。当然也有在线的:作业部落马克飞象,相比用过印象笔记的都知道。
  4. 擅用Chrome和Firefox扩展插件,有很多插件能帮我们节省不少时间如模拟Http请求;Postman(Chrome)、RestClient(Firefox)等,大家也可以网上搜索使用率高的插件,由于过多不一一列举。
  5. UML建模工具:StartUML、Rational Rose(Windows)等。
  6. 数据库设计:Power Designer是windows平台的一款数据库设计工具,和Rose比肩。
  7. 命令行工具:oh-my-zsh Mac默认的shell是bash,然而最强大的是zsh,号称终极Shell,如果你用了之后,你会爱不释手,也是我现在使用的命令行工具。另外还有一款给力的工具就是iTerm2 是 OS X 下一款开源免费的的终端工具,基本用它可以替代了原生的 Terminal,如果你使用了你会觉得windows下的命令行简直弱爆了。
  8. Homebrew:是 OS X 的包管理工具,Ruby 社区的作品,功能类似 Ubuntu 下的apt-get,使用 Homebrew 可以非常容易的安装 OS X 中没有包含的 Unix工具包和语言包,比如 wget,node,lua,rabbitmq,nginx 等。
  9. Pixelmator:号称 Mac 上的精简版 PhotoShop,设计更为人性化,适合非专业人士使用,不是平面设计人员也可以作出非常专业的图像设计。
  10. Alfred:这是一款键盘流软件,是一款生产力软件,它能够让你的学习、生活、工作等更加高效;我想不出来用什么概括它,大家还是自行搜索吧,Mac上的强大工具。
  11. Everything:windows平台强大的文件搜索工具,完全可以替掉windows系统自带的资源搜索。
  12. MindManager:windows平台下思维导图软件,是现在我理思路的一个重要工具,对应的Mac平台我用的是iThoughts、MindNode Pro
  13. Balsamiq Mockups:很好用的产品原型设计工具,现在和Sketch结合起来来使用。
  14. VPN:作为程序员,这几乎是必备的工具,建议遇到问题尽量不要在使用百度去搜索,谷歌才是你的专属。

3.总结

以上是我开发过程中使用过的工具,其实除了这些还有许多优秀的我没有使用过,甚至还没有发现,所以这篇文章仅仅是列举了一部分,后续文章会持续更新中,因为好的软件也会源源不断被涌现出来。也欢迎大伙吐槽,在评论中和大家分享你开发过程中所使用的开发利器。

分享到:
移动开发者/技术爱好者/喜欢开源与分享,你也可以关注微信公众号MobDevGroup,移动开发在线分享:MobDevGroup