程序员整理的各种不错的技术和工具
1
技术站点
-
Hacker News:非常棒的针对编程的链接聚合网站
-
Programming reddit:同上
-
MSDN:微软相关的官方技术集中地,主要是文档类
-
infoq:企业级应用,关注软件开发领域
-
OSChina:开源技术社区,开源方面做的不错哦
-
cnblogs,51cto,csdn:常见的技术社区,各有专长
-
stackoverflow:IT技术问答网站
-
GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核,
-
OpenStack等免费的it电子书:http://it-ebooks.info/
-
DevStore:开发者服务商店
2
书籍
-
人件
-
人月神话
-
代码大全2
-
计算机程序设计艺术
-
程序员的自我修养
-
程序员修炼之道
-
高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系)
-
深入理解计算机系统
-
软件随想录
-
算法导论(麻省理工学院出版社)
-
离线数学及其应用
-
设计模式
-
编程之美
-
黑客与画家
-
编程珠玑
-
C++ Prime
-
Effective C++
-
TCP/IP详解
-
Unix 编程艺术
-
《精神分析引论》弗洛伊德
-
搞定:无压力工作的艺术
3
平台工具 (开源)
-
Redmine/Trac:项目管理平台
-
Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)
-
Sonar:代码质量管理平台
-
git,svn:源代码版本控制系统
-
GitLib/Gitorious:构建自己的GitHub服务器
-
gitbook:https://www.gitbook.io/写书的好东西,当然用来写文档也很不错的
-
Travis-ci:开源项目持续集成必备,和GitHub相结合,https://travis-ci.org/
-
开源测试工具、社区(Selenium、OpenQA.org)
-
Puppet:一个自动管理引擎,可以适用于Linux、Unix以及Windows平台。所谓配置管理系统,就是管理机器里面诸如文件、用户、进程、软件包这些资源。无论是管理1台,还是上万台机器Puppet都能轻松搞定。
-
Nagios:系统状态监控报警,还有个Icinga(完全兼容nagios所有的插件,工作原理,配置文件以及方法,几乎一模一样。配置简单,功能强大)
-
Ganglia:分布式监控系统
-
fleet:分布式init系统
4
爬虫相关
-
Phantomjs
-
berserkJS(基于Phantomjs的改进版本)
-
SlimerJS
-
CasperJS
-
selenium
5
压测工具/负载均衡器
-
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)自动化测试工具
6
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)自动化测试工具
UI框架:Foundation,Boostrap,Pure,EasyUI,Polymer
前端UI设计师必去的几个网站:Dribbble,awwwards,unmatchedstyle,UIMaker
Mozilla 开发者中心:https://developer.mozilla.org/en-US/
图标资源:IcoMoon(我的最爱),Themify Icons,FreePik,Glyphiconsart
-
Dialog:非常漂亮的对话框
-
AdminLTE:github上的一个开源项目,基于Boostrap3的后台管理页面框架
-
Respond.js:让不懂爱的IE6-8支持响应式设计
-
require.js: js模块加载库
-
select2:比chosen具有更多特性的选择框替代库
-
AngularUI:集成angular.js的UI库
-
normalize.css: 采用了现代化标准让各浏览器渲染出的html保持一致的库
-
CreateJS:Html5游戏引擎Less,Compass:简化CSS开发
-
emojify.js:用于自动识别网页上的Emoji文字并将其显示为图像
-
simditor:一个不错的开源的html编辑器,简洁高效
-
Sencha: 基于html5的移动端开发框架
-
SuperScrollorama+TweenMax+skrollr:打造超酷的视差滚动效果网页动画
-
jquery-smooth-scroll:同上,平滑滚动插件
-
Animate.css:实现了各种动画效果的css库
-
Emmet:前端工程师必备,ZenCode的前身
-
MagicDraw:Uml图工具
7
大数据处理/分析/分布式工具
-
Hadoop:分布式的文件系统,结合其MapReduce编程模型可以用来做海量数据的批处理(Hive,Pig,HBase啥的就不说了),值得介绍的是Cloudera的Hadoop分支CDH5,基于YARN
MRv2集成了Spark可直接用于生产环境的Hadoop,对于企业快速构建数据仓库非常有用。 -
Ceph:Linux分布式文件系统(特点:无中心)
-
Storm:实时流数据处理,可以看下IBM的一篇介绍 (还有个Yahoo的S4,也是做流数据处理的)
-
Spark:大规模流式数据处理(可以应付企业中常见的三种数据处理场景:复杂的批量数据处理(batch
data processing);基于历史数据的交互式查询(interactive query);基于实时数据流的数据处理(streaming
data processing)),CSND有篇文章介绍的不错 -
Spark Streaming:基于Spark的实时计算框架
-
Tachyon:分布式内存文件系统
-
Mesos:计算框架一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享Impala:新一代开源大数据分析引擎,提供Sql语义,比- Hive强在速度上
-
SNAPPY:快速的数据压缩系统,适用于Hadoop生态系统中
-
Kafka:高吞吐量的分布式消息队列系统
-
ActiveMQ:是Apache出品,最流行的,能力强劲的开源消息总线
-
MQTT:Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分
-
RabbitMQ:记得OpenStack就是用的这个东西吧
-
ZeroMQ:宣称是将分布式计算变得更简单,是个分布式消息队列,可以看下云风的一篇文章的介绍开源的日志收集系统:scribe、chukwa、kafka、flume。这有一篇对比文章
-
Zookeeper:可靠的分布式协调的开源项目
-
Databus:LinkedIn 实时低延迟数据抓取系统
数据源获取: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、TinkerpopNLP自然语言处理:Natural
Language Toolkit、Apache OpenNLP、Boilerpipe、OpenCalais
机器学习:WEKA、Mahout、scikits.learn、SkyTree
可视化技术:GraphViz、Processing、Protovis、Google Fusion Tables、Tableau、Highcharts、EChats(百度的还不错)、Raphaël.js
-
Kettle:开源的ETL工具
-
Pentaho:以工作流为核心的开源BI系统
-
Mondrian:开源的Rolap服务器
-
Oozie:开源hadoop的工作流调度引擎
开源的数据分析可视化工具:Weka、Orange、KNIME
Cobar:阿里巴巴的MySql分布式中间件
8
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会用到
UI界面相关:MFC、BCG和QT这类的就不说了,高端一点的还有Html和DirectUI技术:libcef(基于chrome内核的,想想使用html5开发页面,还真有点小激动呢)、HtmlLayout、Duilib、Bolt,非C++的,还有node-webkit也不错,集成了node和webkit内核。
9
游戏开发
MINA:使用Java开发手游和页游服务器(对了还有Netty,也很猛的,都是基于NIO的)
HP-Socket:见有有些页游服务器使用这个构建的
云风的技术博客:http://blog.codingnow.com/
OGRE:大名鼎鼎的3D图形渲染引擎
OpenVDB:梦工厂C++的特效库,开源的
cocos2d:跨平台2D游戏引擎
unity3d:跨平台3D游戏引擎,很火的哦
Nodejs:也有不少使用它来开发手游和也有服务器(网易的Pomelo就是哦)
10
日志聚合,分布式日志收集
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);共享对象;现场直播流发布;远程调用。
11
Python
Eric,Eclipse+pydev,比较不错的Python IDE
PyWin:Win32 api编程包
numpy:科学计算包,主要用来处理大型矩阵计算等,此外还有SciPy,Matplotlib
GUI相关:PyQt,PyQwt
supervisor:进程监控工具
12
Java相关
常用的IDE:IntelliJ IDEA,Eclipse,Netbeans
Web开发相关:Tomcat、Resin、Jetty、WebLogic等,常用的组件Struts,Spring
HibernateNetty: 异步事件驱动网络应用编程框架,用于高并发网络编程比较好(NIO框架)
MINA:简单地开发高性能和高可靠性的网络应用程序(也是个NIO框架),不少手游服务端是用它开发的
jOOQ:java Orm框架Activiti:工作流引擎,类似的还有jBPM、Snaker
Perfuse:是一个用户界面包用来把有结构与无结构数据以具有交互性的可视化图形展示出来.
Gephi:复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具
Nutch:知名的爬虫项目,hadoop就是从这个项目中发展出来的
web-harvest:Web数据提取工具
POM工具:Maven+ArtifactoryNetflix
Curator:Netflix公司开源的一个Zookeeper client library,用于简化Zookeeper客户端编程
Akka:一款基于actor模型实现的 并发处理框架
EclEmma:覆盖测试工具
13
常用工具
-
Fiddler:非常好用的Web前端调试工具,当然是针对底层http协议的,一般情况使用Chrome等自带的调试工具也足够了,特殊情况还得用它去处理
-
wireshark:知名的网络数据包分析工具
-
PowerCmd:替代Windows Cmd的利器
-
RegexBuddy:强大的正则表达式测试工具
-
Soure Insight:源代码阅读神器
-
SublimeText:程序员最爱的编辑器
-
Database.NET:一个通用的关系型数据库客户端,基于.NET 4.0开发的,做简单的处理还是蛮方便的
-
Navicat Premium:支持MySql、PostgreSQL、Oracle、Sqlite和SQL Server的客户端,通用性上不如Database.NET,但性能方面比Database.NET好很多,自带备份功能也用于数据库定时备份。
-
Synergy : 局域网内一套键盘鼠标控制多台电脑
-
DameWare:远程协助工具集(我在公司主要控制大屏幕用)
-
Radmin: 远程控制工具,用了一段时间的
-
DameWare,还要破解,对Win7支持的不好,还是发现这个好用
-
Listary:能极大幅度提高你 Windows 文件浏览与搜索速度效率的「超级神器」
-
Clover:给资源管理器加上多标签
-
WinLaunch:模拟Mac OS的Launch工具
-
Fritzing:绘制电路图
-
LICEcap:gif教程制作git,
-
svn:版本控制系统Enigma Virtual Box(将exe,dll等封装成一个可执行程序)
-
Open DBDiff(针对SqlServer)数据库同步
-
SymmetricDS:数据库同步
-
BIEE,Infomatica,SPSS,weka,R语言:数据分析
-
CodeSmith,LightSwitch:代码生成
-
Pandoc:Markdown转换工具,出书用的。以前玩过docbook,不过现在还是Markdown盛行啊。
-
Window Magnet[Mac]:增强Mac窗口管理功能,想Win7一样具有窗口拖放到屏幕边缘自动调整的功能
-
log explorer:查看SqlServer日志dependency
-
walker:查询Windows应用程序dll依赖项
-
Shairport4w:将iPhone,iPad,iPod上的音频通过AirPlay协议传输到PC上
-
ngrok:内网穿透工具Axure:快速原型制作工具,还有个在线作图的工具国内的一个创业团队做的,用着很不错 http://www.processon.com
-
tinyproxy:(Linux)小型的代理服务器支持http和https协议EaseUS Partition
-
Master:超级简单的分区调整工具,速度还是蛮快的,C盘不够用了就用它从D盘划点空间吧,不用重装系统这么折腾哦。
-
CheatEngine:玩游戏修改内存值必备神器(记得我在玩轩辕剑6的时候就用的它,超级方便呢)
-
ApkIDE:Android反编译神器翻、墙工具(自|由|门、天行浏览器)
-
MindManger:思维导图