老衣的开发工具和类库集之 2014 版 , 在过去的一年中受到不少好评,不少个人和团队都说收益不少,我很欣慰。在今年的不少场合,我承诺过 2015 版的列表会更加开放,不仅限于微软技术系,这不马上就要到 2016 年了,兑现承诺,整理了自己 2015 年工具集和类库框架的更新内容,相对 2014 版这里是个增集而不是超集,因为同样的内容没有必要重复。
开发语言
- C# 是大神 Anders Hejlsberg 从 Borland 跳槽到微软后亲自操刀打造的开发语言,关于这段过程的一些事情,你可以移步看看这篇文章。对于 C#,依然有很多人狭隘的认为它只能开发 .NET 程序,甚至认为开发的程序只能跑在 Windows 上。但是实际上这都是错的,C# 可以开发非 .NET程序、甚至可以用写操作系统,更不用说开发基于 Mono 或者 CoreFX 运行在 Linux、Mac 等系统上的程序了。微软已经变得越来越开放了……另附,.NET Awesome 项目列表页:https://github.com/quozd/awesome-dotnet
- JavaScript / TypeScript / Node.js 最近几年,js 的热度陡然上升,node.js 的助推是一大主因。现在 js 已经将触角从 web 浏览器伸向了服务端、手机 App 等领域。在 Facebook 等公司的推动下,众多 js 死忠也在努力让自己成为全栈程序猿。而 Turbo Pascal、Delphi、C# 之父Anders Hejlsberg 也极其看好 js 的未来,所以他老人家搞了一个 js 的超集语言 TypeScript,让开发 js 程序变得更加简单、安全、健壮。js Awesome 项目列表见:https://github.com/sorrycc/awesome-javascript
- Go 是 Google 出品的新型开发语言,语法简单,专业适合服务端开发。突然改变云计算行业的容器技术产品 Docker 就是用 Go 语言打造的,而国内的七牛云也是主要使用 Go 开发的服务端程序。含着金钥匙出生的 Go 语言似乎前景一片大好,只是它还不支持泛型之类的特性,让我等还觉得有些遗憾。Go Awesome 项目列表见:https://github.com/avelino/awesome-go
- Rust 跟 Go 类似都是新型语言,只是 Rust 是一种系统级语言,且出自Mozilla。新兴语言中没有 GC 的很少见,Rust 则是其一,且号称编译通过则永不崩溃(貌似还没完全达到)。Rust 很早就已经实现了自举,也就是自己的编译器可以自行编译自己的编译器,_。从语言的设计角度来说,相比 Go 我更喜欢 Rust,它上能做各种应用,下能实现裸金属开发,一些让人值得赞叹的项目可以到 Rust Awesome 项目列表页: https://github.com/kud1ing/awesome-rust 。
- Swift 大概是苹果公司自己也觉得自家的 OC 设计的太糟糕了,于是参考一些市面流行的先进语言,重新打造了一个新的 —— Swift,而且 2.0 开始,它还开源了。除了能开发苹果自家设备的应用外,还将支持开发 linux 上的程序。嗯,还是不错的。Swift Awesome 项目列表页见:https://github.com/matteocrippa/awesome-swift
- F# 微软研究院出品的一种特别适合数学计算方面的函数化编程语言。你可以到 http://www.tryfsharp.org 试着玩玩。对了,它也是开源的,而且可以跨平台——这年头一个语言不能跨平台似乎就很难面世了吧 :D
开发及周边工具
- Visual Studio 2015 with Update 1 是一个丰富的集成开发环境,可用于创建出色的 Windows、Android 和 iOS 应用程序以及新式 Web 应用程序和云服务。支持C#、Visual Basic、F#、C++、Python、Node.js 和 HTML/JavaScript 等语言。注意啊,面向构建非企业应用程序的开发人员的 Visual Studio 社区版 是免费的,功能上基本等同于 Visual Studio Professional。
- Sublime Text 3 是 Sublime Text 的新版测试版。是一套可运行在 Windows、Linux、Mac 上的跨平台文本编辑器,支持基于 Python 的插件。Sublime Text 可通过包(Package)扩充本身的功能。大多数的包使用自由软件授权发布,并由社区开发维护。
- ATOM 是 GitHub 出品的代码编辑器,基于 Chromium Embedded Framework 开发的,功能表现于 Sublime Text 极为类似,但性能貌似有一些问题,自打用上了 Visual Studio Code 后,就放弃它了。
- Visual Studio Code 是可在 Windows、OS X 或 Linux 上运行的免费且开源的代码编辑器,可用来构建和调试现代 Web 和云应用程序。支持JavaScript、C#、TypeScript、HTML、Markdown、CSS/SASS/Less、DockerFile、JSON等。性能表现比 ATOM 好很多,而且新版本已经支持扩展了。
- Xamarin Studio 5.1 是用 C# 开发 Windows、Linux、Mac、iOS、Android、WP 等各种平台 App 的跨平台开发强大利器。可以运行在 Windows 或者 Mac OS X 系统上,当然了用它开发 Mac、iOS、Android 三个平台的 App 是需要花钱买 License 的,价格嘛有点贵。不过开发 ASP.NET、MVC、Nancy、控制台、类库等是不需要花钱的,免费版就可以写。如果你除了 C# 外,还在玩 F# 或者 D 语言之类,也可以用它。新版 Xamarin 已经支持 C# 6 了——还不知道 C# 6 新特性的主动去面壁思过吧!
- Xamarin Android Player Xamarin 出品的安卓模拟器。开发安卓应用的,都知道原生模拟器那叫一个慢,Xamarin Android Player 则性能表现不俗,跟 Visual Studio Emulator for Android 有的一拼。但是区别在于,Xamarin Android Player 是基于 VirtualBox,跨平台且消耗资源少;而 Visual Studio Emulator for Android,在 Windows 基于 Hyper-V的,而非专业版 Windows 根本木有办法用 Hyper-V,至于在 Mac 可用的 Visual Studio Emulator for Android,目前已经 Coming Soon 挺长时间了……
- Brackets 是 Adobe 出品的免费且开源 的轻量级现代化 Web 开发工具,功能强大且有丰富的扩展。支持实时预览、预处理、PSD 参考等非常不错的功能。
- SourceTree 是强大的 Git/Mercurial 桌面客户端,支持 Windows 和 Ma 操作系统。有了它,基本可以放弃大部分场景下的 Git/Mercurial 命令行工具了。而且兼容 Bitbucket、GitHub、Kiln 等协作平台。
- GitHub Desktop 可以让你的项目无缝接入 GitHub
- Dash 苹果设备上最好的离线文档集中营工具,可以根据自己的喜好,订阅各种语言、框架、类库的离线版官方文档,更新很及时,简单好用。还在到处找官方网站看文档?赶紧用 Dash 吧。
- Paw 是 Mac 上的 REST Client App,可以很方便的测试 REST API,检查服务器响应甚至生成代码,有丰富的扩展功能库。功能上很类似于 PostMan,不过我现在更喜欢 Paw 多一些,也许是因为花钱买的软件,不用心里难受吧。
- PaintCode 能让你在 Mac 上用它将你绘制的一些图形生成 SVG、Objective-C、Swift 或 C#(Xamarin) 等语言的代码。经常做手机 App 的可以考虑购置这个软件,关键时候确实省事不少。
- Jexus 国产的强劲、坚固、免费、易用的 Linux ASP.NET 服务器。是老衣目前在 Linux 上跑 ASP.NET、MVC、Nancy 等 Web 应用程序的主要服务器软件。其姊妹作 TinyFox 更是可被看作是跨平台版的 IIS Express,用 C# 做跨平台 Web 项目的人都应该试试这个。
- Grunt JavaScript 世界的构建工具。对于需要反复重复的任务,例如压缩(minification)、编译、单元测试等,自动化工具可以减轻和简化你的工作。当然了 Grunt 的配置比较麻烦,而且运行过程中几乎是必然会产生中间文件的,所以我也在尝试转向 Gulp。Gulp 的 job 配置过程,其实就是在写代码,且其保证任务的单一职责化,把适合的插件组合在一起,一气呵成,非常方便维护和修改。不过呢,如果你已经在用react开发前端的话,建议你直接用 webpack
- Bower Twitter 出品的 Web 包管理器。
- npm 与 .NET 上的 Nuget 类似,是属于 node 的包管理器。
- Yo yo 是一个用于构建特定框架的生态系统的代码工具,我们称之为生成器 (generator)。
- Homebrew 类似于 Ubuntu 上的 Apt 工具,方便安装和更新苹果上的一些软件。
- Briefs Mac 上的 iOS/Android 应用仿真软件,移动产品经理的必备软件之一,可以通过它做出一个 App 的 MockUp 来,在手机或平板上可以实际查看甚至操作,方便团队成员了解 App 需求的效果和流程。
- XMind 7 目前我用过的最好的思维导图软件,易用、美观、高效、可视化强。
- Sketch Mac上超级好用的 UI 设计工具,致简、高效、强大的工具。个人觉得在UI设计领域,有了它,完全就不需要考虑 PhotoShop 甚至 AI 之类了。同样,它有非常众多的扩展插件和社区支持工具,可以将你在UI设计领域大部分要面临的问题解决掉。
- Sketch Toolbox 一个简洁而强大的 Sketch 插件管理器,用 Sketch 的人一定要用它。
- RightFont 现代软件开始越来越垂直和轻量化,RightFont 就属于此类软件。它运行在Mac 上,以轻量化的“骨骼”,与 PS、Sketch 等软件搭配使用甚是方便,
- Everything 是 Windows 上目前用过的最好的 NTFS 分区文件检索软件,索引效率极高——几个T的硬盘文件,也就几十秒就差不多了。而搜索文件,绝对秒杀一切同类产品。内置了 FTP 和 HTTP,可用作内部文件检索或分享等。用过的人都离不开它!
- Microsoft remote desktop for Mac OS X Mac 上远程访问 Windows 的利器,微软官方出品。但貌似现在依然只能从 Apple App Store 美国市场才能买到,没有美国账号的自己想办法吧。
- Chrome 貌似 Google 的这个浏览器已经成为 Web 开发人员的标配了吧?极简、高性能、丰富的扩展、强大的开发者工具,是开发者们喜欢的重要原因。
- WunderList 中文名:奇妙清单,极简风格 TodoList 类工具。产自德国的一家创业公司 6Wunderkinder,该公司在2015年被微软收购。支持 Windows、Mac、iPhone、iPad、android、Windows Phone、Kindle Fire 和各种浏览器等平台 …… WunderList 功能并没有像 Worktile 之类的那么多,但刚好够用^_^
- Pocket 是我最常用的稍后读类工具。同样支持 Windows、Mac、iPhone、iPad、android 和各种浏览器平台。极简、好用!付费后用起来更爽了 :D
- Feedly Google Reader 被关闭后的优秀继任者,配合 Reeder 阅读你订阅的 RSS,很爽!
- Microsoft OneNote 用了很多年的笔记类工具,虽然产自微软,但除了支持 Windows、Windows Phone 外,还支持 Mac、 iPad、iPhone、 Android、Amazon、Web、Chromebook、Clipper 等。个人认为比 Evernote、有道笔记等都好用,你有意见可以保留。
- Parallels Desktop Mac 上的虚拟机软件,可以方便的使用它在Mac上运行Windows、Linux等系统。跨平台开发必备之虚拟机工具。当然了,这个也不是免费的。
- ScreenFlow Mac 上的优秀录屏软件,以后你看到我在 Mac 上录制的视频基本都是用它做的。虽然免费的 QuickTime 也能录屏,但是功能太弱,而且录制稍微长点大点的时候,各种让你崩溃。
- AppCleaner 在 Mac 上可以很方便的干净卸载软件的小工具
Visual Studio 2015中用到的新扩展
- Productivity Power Tools 2015 一如既往的让 VS 变得强大,提升生产力。
- C# Essentials 这个工具可以帮助你把现在的 C# 代码改用 C# 6 新特性实现,是优化 C# 代码的利器之一。
- .NET Portability Report 当你写的 .NET Library,要准备做跨平台支持时,这个工具可以帮你检查兼容性问题,生成报告,帮助你改进代码,实现更好的跨平台兼容。
- XAML Regions 当你用 XAML 开发 App 界面时,一旦代码复杂到一定程度。你可能就会想如果它也会像 C# 语言有 Regions 支持该多好啊?嗯,这个扩展就是解决你这个需求的。
- File Nesting 是帮助你优化项目文件结构的扩展工具。它可以自动把相关的代码用子树的方式组织在一起。用了它,你会觉得这个世界瞬间清净了^_^
- Web Essentials 2015 相对 2013 的老版本,它缩减了一些功能,因为这些功能被独立的扩展所替代
- Bundler & Minifier 可以捆绑多个 css、js、html 文件到一个文件,可以生成最小化文件,用于发布场景。
- Web Compiler 用来编译 LESS、Sass、 Scss、(Iced)CoffeeScript 和 JSX 等代码文件
- Image Optimizer 面向 Web 场景,实现视觉无损优化 PNG、JPG 和 GIF 等图片文件的扩展工具,对优化 web 应用性能有一定帮助。
- Web Analyzer JS、TS、 CSS 和 JSX 等文件的静态代码分析工具,有利于优化相关代码,提升应用健壮性。
- Glyphfriend 字体图标在如今的 Web App 甚至是手机 App 中被大量使用,但是相信没有几个人能记住 Font Awesome 之类字体图标库的名字和对应图形的。这个扩展可以让你从繁琐的手动查找中摆脱出来,让你在 html 中使用字体图标的 css class 时自动预览图标列表,快速选定并使用正确的 class name。
- Mexedge Stylesheet Extension 这是一个非常神奇的 css 查找、分析和维护的扩展工具。用 VS 做 web app 开发的人应该都用用,除非你的 css 很少很简单。对了,新版还支持 LESS 啦 _
框架和库
- NancyFx 用 C# 开发跨平台 web application 的优秀开源框架,我在博文和演讲中多次提到它。
- SuperWebSocket 江大鱼的开源项目,让你可以在 .NET 或者 Mono 上轻松开发基于 WebSocket 的应用。
- SuperSocket 江大鱼的开源项目,让你可以在 .NET 或者 Mono 上轻松开发基于Socket 的应用。已经被微软在 VS2015 安装包加入到第三方可选项了,很赞!
- TinyMapper 轻量高效的 .NET 对象映射器。性能方面非常赞!
- Npgsql 这应该是 .NET 或 Mono 上用 PostgreSql 数据库的必选项了吧。
- Polly 云计算开发中需要考虑 Retry 之类的机制,Polly 是 .NET 开发领域不错的选择。
- C-Sharp-Promise Promise 在 js 开发领域大行其道,深得开发者们的喜爱。C# 程序员们可以用C-Sharp-Promise,使用 Promise 的方式编程。
- RestSharp 面向 .NET 的优秀 REST 和 HTTP API 客户端框架
- WebSharper 是一个基于 F# 构建的 Web 开发平台,使用 F# 构造从前到后的一整套内容。其中利用到 F# 中许多高级的开发特性,并可以将 F# 代码直接转化 JavaScript,这样服务器端和客户端的通信也变得透明起来。
- RAML RESTful API Modeling Language 的简写,号称是设计 API 最简单的利器。值得关注和学习
- sharp 号称是对 JPEG, PNG, WebP 和 TIFF等格式图片进行缩放,性能最高的Node.js module。
- Topshelf 当你需要将一个 .NET 的 Console 或者桌面应用,作为 Windows 服务运行时,它会很好的帮到你。
- forever 让 node.js 应用在后台运行在生产环节中是非常必要的,否则当你退出用户登录时,你的 node.js 程序也会跟着结束执行。forever 就是解决这个问题的。
- Animate.css web 前端要求越来越高,这个 css 库可以让 web app 很方便的拥有丰富的动画效果。
- AngularUI Router 这是目前我最常用的 angular 路由框架,基于 angularjs 开发 web app 时,他让我得心应手,哈哈……
- Highland 面向 Node.js 和浏览器的优秀 streams 类库。
- lodash 本是 Underscore.js 的一个分支,优秀的 js 实用工具集,但因为与其它贡献者意见相左,于是独立发展。提供了更多的功能和更好的性能,延迟计算是其中用到的不错理念。
- SuperAgent 是一个精小而先进的 HTTP 客户端请求 js 库。适用于浏览器和node.js,我很喜欢其流式编程的感觉。
- nickel.rs 这是一个 Rust 语言的轻量级 Web 应用开发框架。类似于 node.js 的express