✈工欲善其事,必先利其器✔
每天都要去的网站
- Hacker News:非常棒的针对编程的链接聚合网站
- Programming reddit:同上
- MSDN:微软相关的官方技术集中地,主要是文档类
- infoq:企业级应用,关注软件开发领域
- OSChina:开源技术社区,开源方面做的不错哦
- cnblogs,51cto,csdn:常见的技术社区,各有专长
- stackoverflow:IT技术问答网站
- GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核,OpenStack等
- 免费的it电子书:http://it-ebooks.info/
不错的书籍
- 程序员的自我修养
- 程序员修炼之道
- 代码大全2
- 高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系)
- 人月神话
- 深入理解计算机系统
- 软件随想录
- 算法导论(麻省理工学院出版社)
- 离线数学及其应用
- 设计模式
- 编程之美
- 黑客与画家
- 编程珠玑
- C++ Prime
- Effective C++
- TCP/IP详解
- Unix 编程艺术
- 《精神分析引论》弗洛伊德
- 搞定:无压力工作的艺术
平台工具(都是开源的好东东哦)
- Redmine:项目管理平台
- Jenkins:持续集成系统
- Sonar:代码质量管理平台
- git,svn:源代码版本控制系统
- GitLib:构建自己的GitHub服务器
- gitbook:https://www.gitbook.io/写书的好东西,当然用来写文档也很不错的
- Travis-ci:开源项目持续集成必备,和GitHub相结合,https://travis-ci.org/
- 开源测试工具、社区(Selenium、OpenQA.org)
- Puppet:一个自动管理引擎,可以适用于Linux、Unix以及Windows平台。所谓配置管理系统,就是管理机器里面诸如文件、用户、进程、软件包这些资源。无论是管理1台,还是上万台机器Puppet都能轻松搞定。
- Nagios:系统状态监控报警
- Ganglia:分布式监控系统
爬虫相关(好玩的工具)
- Phantomjs
- berserkJS(基于Phantomjs的改进版本)
- SlimerJS
- CasperJS
- selenium
Web服务器性能/压力测试工具/负载均衡器
- http_load: 程序非常小,解压后也不到100K
- webbench: 是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。
- ab: ab是apache自带的一款功能强大的测试工具
- Siege: 一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
- squid(前端缓存),nginx(负载),nodejs(没错它也可以,自己写点代码就能实现高性能的负载均衡器):常用的负载均衡器
- Piwik:开源网站访问量统计系统
- ClickHeat:开源的网站点击情况热力图
- HAProxy:高性能TCP /HTTP负载均衡器
- ElasticSearch:搜索引擎基于Lucene
- Page Speed SDK和YSLOW
- HAR Viewer: HAR分析工具
- protractor:E2E(end to end)自动化测试工具
Web前端相关
- GRUNT: js task runner
- Sea.js: js模块化
- knockout.js:MVVM开发前台,绑定技术
- Angular.js: 使用超动感HTML & JS开发WEB应用!
- Highcharts.js,Flot:常用的Web图表插件
- JavaScript InfoVis Toolkit:另一款Web数据可视化插件
- Pdf.js,在html中展现pdf
- ACE,CodeMirror:Html代码编辑器(ACE甚好啊)
- NProcess:绚丽的加载进度条
- impress.js:让你制作出令人眩目的内容展示效果(类似的还有reveal)
- Threejs:3DWeb库
- Hightopo:基于Html5的2D、3D可视化UI库
- jQuery.dataTables.js:高度灵活的表格插件
- Raphaël:js,canvas绘图库,后来发现百度指数的图形就是用它绘出来的
- director.js:js路由模块,前端路由,Nodejs后端路由等,适合构造单页应用
- pace.js:页面加载进度条
- bower:Web包管理器
- jsnice:有趣的js反编译工具,猜压缩后的变量名,http://www.jsnice.org/
- D3.js: 是一个基于JavaScript数据展示库,
- Zepto.js:移动端替代jQuery的东东,当然也可以使用jquery-mobile.
- UI框架:Foundation,Boostrap,Pure,EasyUI,Polymer
- 前段UI设计师必去的几个网站:Dribbble,awwwards,unmatchedstyle,UIMaker
- Mozilla 开发者中心:https://developer.mozilla.org/en-US/
- 图标资源:IcoMoon(我的最爱),Themify Icons,,Glyphicons
- artDialog:非常漂亮的对话框
- AdminLTE:github上的一个开源项目,基于Boostrap3的后台管理页面框架
- Respond.js:让不懂爱的IE6-8支持响应式设计
- require.js: js模块加载库
- select2:比chosen具有更多特性的选择框替代库
- AngularUI:集成angular.js的UI库
- normalize.css: 采用了现代化标准让各浏览器渲染出的html保持一致的库
- CreateJS:Html5游戏引擎
大数据处理/分布式工具
- Hadoop:分布式的文件系统,结合其MapReduce编程模型可以用来做海量数据的批处理(Hive,Pig,HBase啥的就不说了)
- Storm:实时流数据处理,可以看下IBM的一篇介绍 (还有个Yahoo的S4,也是做流数据处理的)
- Spark:大规模流式数据处理(可以应付企业中常见的三种数据处理场景:复杂的批量数据处理(batch data processing);基于历史数据的交互式查询(interactive query);基于实时数据流的数据处理(streaming data processing)),CSND有篇文章介绍的不错
- ActiveMQ:是Apache出品,最流行的,能力强劲的开源消息总线
- MQTT:Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分
- RabbitMQ:记得OpenStack就是用的这个东西吧
- ZeroMQ:宣称是将分布式计算变得更简单,是个分布式消息队列,可以看下云风的一篇文章的介绍
- Kafka:一个高吞吐量分布式消息系统
- Flume: 是Cloudera提供的一个分布式、可靠、和高可用的海量日志采集、聚合和传输的日志收集系统
- Zookeeper:可靠的分布式协调的开源项目
- 数据源获取:Flume、Google Refine、Needlebase、ScraperWiki、BloomReach
- 序列化技术:JSON、BSON、Thrift、Avro、Google Protocol Buffers
- NoSql:Apache Hadoop、Apache Casandra、MongoDB、Apache CouchDB、Redis、BigTable、HBase、Hypertable、Voldemort、Neo4j
- MapReduce相关:Hive、Pig、Cascading、Cascalog、mrjob、Caffeine、S4、MapR、Acunu、Flume、Kafka、Azkaban、Oozie、Greenplum
- 数据处理:R、Yahoo! Pipes、Mechanical Turk、Solr/ Lucene、ElasticSearch、Datameer、Bigsheets、Tinkerpop
- NLP自然语言处理:Natural Language Toolkit、Apache OpenNLP、Boilerpipe、OpenCalais
- 机器学习:WEKA、Mahout、scikits.learn、SkyTree
- 可视化技术:GraphViz、Processing、Protovis、Google Fusion Tables、Tableau、Highcharts、EChats(百度的还不错)、Raphaël.js
C & C++
- Thrift:用来进行可扩展且跨语言的服务的开发(类似的还有个Avro,Google protobuf)。
- libevent:是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。(对了还有个libev呢)
- Boost:不多说了,准C++标准库
- Ptmalloc\Valgrind\Purify
- NetworkServer架构:acceptor->dispatcher->worker(这个不算工具哦)
- breakpad:崩溃转储和分析模块,很多crashreport会用到
游戏开发相关
- MINA:使用Java开发手游和页游服务器(对了还有Netty,也很猛的,都是基于NIO的)
- HP-Socket:见有有些页游服务器使用这个构建的
- 云风的技术博客:http://blog.codingnow.com/
- OGRE:大名鼎鼎的3D图形渲染引擎
- OpenVDB:梦工厂C++的特效库,开源的
- cocos2d:跨平台2D游戏引擎
- unity3d:跨平台3D游戏引擎,很火的哦
- Nodejs:也有不少使用它来开发手游和也有服务器(网易的Pomelo就是哦)
日志聚合,分布式日志收集
- Scribe:Facebook的(nodejs + scribe + inotify 同步日志)
- logstash:强大的日志收集系统,可以基于logstash+kibana+elasticsearch+redis开发强大的日志分析平台
- log.io: nodejs开发的实时日志收集系统
RTP,实时传输协议与音视频
- RTP,RTCP,RTSP-> librtp,JRTPLIB(遵循了RFC1889标准)
- 环形缓冲区,实时数据传输用
- SDL,ffmpeg,live555,Speex
- Red5:用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。
Python
- Eric,Eclipse+pydev,比较不错的Python IDE