前言
成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。
Phantomjs(Web自动化测试,服务端渲染等) berserkJS(基于Phantomjs的改进版本) SlimerJS CasperJS selenium HtmlUnit(开源的java 页面分析工具,也是个Headless的浏览器) 安全相关
sql注入检测:sqlmap、haviji 端口扫描:nmap 渗透测试:BurpLoader sqltools: sql漏洞利用工具 snort: 入侵检测 Web服务器性能/压力测试工具/负载均衡器
ab: ab是apache自带的一款功能强大的测试工具 curl-loader: 真实模拟、测试Web负载 http_load: 程序非常小,解压后也不到100K webbench: 是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。 Siege: 一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。 squid(前端缓存),nginx(负载),nodejs(没错它也可以,自己写点代码就能实现高性能的负载均衡器):常用的负载均衡器 Piwik:开源网站访问量统计系统 ClickHeat:开源的网站点击情况热力图 HAProxy:高性能TCP /HTTP负载均衡器 ElasticSearch:搜索引擎基于Lucene Page Speed SDK和YSLOW HAR Viewer: HAR分析工具 protractor:E2E(end to end)自动化测试工具 大数据处理/数据分析/分布式工具
Hadoop:分布式的文件系统,结合其MapReduce编程模型可以用来做海量数据的批处理(Hive,Pig,HBase啥的就不说了),值得介绍的是Cloudera的Hadoop分支CDH5,基于YARN MRv2集成了Spark可直接用于生产环境的Hadoop,对于企业快速构建数据仓库非常有用。 Spark:大规模数据处理框架(可以应付企业中常见的三种数据处理场景:复杂的批量数据处理(batch data processing);基于历史数据的交互式查询(interactive query);基于实时数据流的数据处理(streaming data processing)),CSND有篇文章介绍的不错 除了Spark,其他几个不错的计算框架还有:Kylin,Flink,Drill Ceph:Linux分布式文件系统(特点:无中心) Storm:实时流数据处理,可以看下IBM的一篇介绍 (还有个Yahoo的S4,也是做流数据处理的) Druid: 实时数据分析存储系统 Ambari: 大数据平台搭建、监控利器;类似的还有CDH Tachyon:分布式内存文件系统 Mesos:计算框架一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享 Impala:新一代开源大数据分析引擎,提供Sql语义,比Hive强在速度上 presto: facebook的开源工具,大数据分布式sql查询引擎 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:ScyllaDB(宣称是世界上最快的NoSql)、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 机器学习:TensorFlow(Google出品),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的工作流调度引擎,类似的还有:Azkaban 开源的数据分析可视化工具:Weka、Orange、KNIME Cobar:阿里巴巴的MySql分布式中间件 数据清洗:data wrangler, Google Refine Web前端
Material Design: 谷歌出品,必属精品 Vue.js: 借鉴了Angular及React的JS框架,设计理念较为先进 GRUNT: js task runner Sea.js: js模块化 knockout.js:MVVM开发前台,绑定技术 Angular.js: 使用超动感HTML & JS开发WEB应用! Highcharts.js,Flot:常用的Web图表插件 NVD3: 基于d3.js的图表库 Raw:非常不错的一款高级数据可视化工具 Rickshaw:时序图标库,可用于构建实时图表 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数据展示库(类似的还有P5.js) Zepto.js:移动端替代jQuery的东东,当然也可以使用jquery-mobile. UI框架:Foundation,Boostrap,Pure,EasyUI,Polymer 前段UI设计师必去的几个网站:Dribbble,awwwards,unmatchedstyle,UIMaker Mozilla 开发者中心:https://developer.mozilla.org/en-US/ 图标资源:IcoMoon(我的最爱),Font Awesome, Themify Icons,FreePik,Glyphicons artDialog:非常漂亮的对话框 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:前端工程师必备,前身为 Zen Coding React: facebook出品的js UI库 highlight.js:专门用来做语法高亮的库 GoJS: Html5交互式图表库,看demo更适合层次结构的图表。 10 Pure CSS (Mostly) Flat Mobile Devices: http://marvelapp.github.io/devices.css/CodePen: http://codepen.io/ jsfiddle: http://jsfiddle.net/ 前端js,html,css测试利器 语言篇
折腾中:Scala、Python、Lua、JavaScript、Go
常用的IDE:IntelliJ IDEA(强烈推荐),Eclipse,Netbeans fastutil: 性能更好的Java集合框架 Guava: 谷歌的Java工具包,应用广泛 Curator:Netflix公司开源的一个Zookeeper client library,用于简化Zookeeper客户端编程,现在已经是apache下的一个独立项目了。
Spark的HA也用的这货。 Rx(Reactive Extensions)框架:Vert.x, RxJava(Android中用的比较多), Quasar FindBugs: 代码静态分析工具,找出代码缺陷 Java反编译工具:Luyten,JD-Gui Drools: 规则引擎 Jersey: Java RESTful 框架 canal: 阿里巴巴出品,binlog增量订阅&消费组件 Web开发相关:Tomcat、Resin、Jetty、WebLogic等,常用的组件Struts,Spring,Hibernate Netty: 异步事件驱动网络应用编程框架,用于高并发网络编程比较好(NIO框架,spark 1.2.0就用netty替代了nio) MINA:简单地开发高性能和高可靠性的网络应用程序(也是个NIO框架),不少手游服务端是用它开发的 jOOQ:java Orm框架 Janino: 超级小又快的Java编译器,Spark的Tungsten引起用的它 Activiti:工作流引擎,类似的还有jBPM、Snaker Perfuse:是一个用户界面包用来把有结构与无结构数据以具有交互性的可视化图形展示出来. Gephi:复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具 Nutch:知名的爬虫项目,hadoop就是从这个项目中发展出来的 web-harvest:Web数据提取工具 POM工具:Maven+Artifactory Akka:一款基于actor模型实现的 并发处理框架 EclEmma:覆盖测试工具 Shiro:安全框架 joda-time:简化时间处理 parboiled:表达式解析 dozer: 深拷贝神器 dubbo: 阿里巴巴出品的分布式服务框架 jackson databind: json序列化工具(fastjson,simplejson) Atomikos: 分布式事务管理 BoneCP:性能很赞的数据库连接池组件,据说比c3p0快好多 ProGuard: obconfuscation tool, 强大的混淆工具 S-99:Scala相关的99个问题 Python
PyCharm:最佳Python IDE Eric,Eclipse+pydev,比较不错的Python IDE PyWin:Win32 api编程包numpy科学计算包,主要用来处理大型矩阵计算等。此外有SciPy,Matplotlib GUI相关:PyQt,PyQwt supervisor:进程监控工具 PyGame: 基于Python的多媒体开发和游戏软件开发模块 Web框架: Django 开源web开发框架,它鼓励快速开发,并遵循MVC设计 Swift
Swift精选资料 43个优秀的开源项目 客户端
糗事百科 Swift HackerNews Swift 知乎日报app Framework
Twitter框架 Mac下简单HTTP Server Swifter 小工具
Swift Alarm Swift Note Swift RSS Reader Swift-PM2.5查询app 游戏
Flappy Swift FanFan Swift .NET
Xilium.CefGlue:基于CEF框架的.NET封装,基于.NET开发Chrome内核浏览器 CefSharp:同上,有一款WebKit的封装,C#和Js交互会更简单 netz:免费的 .NET 可执行文件压缩工具 SmartAssembly:变态的.net代码优化混淆工具 NETDeob0:.net反混淆工具,真是魔高一尺道高一丈啊(还有个de4dot,在GitHub上,都是开源的) ILMerge:将所有引用的DLL和exe文件打成一个exe文件 ILSpy:开源.net程序反编译工具 Javascript.NET:很不错的js执行引擎,对v8做了封装 NPOI: Excel操作 DotRAS:远程访问服务的模块 WinHtmlEditor: Winform下的html编辑器 SmartThreadPool:使用C#实现的,带高级特性的线程池 Snoop: WPF Spy Utility Autofac: 轻量级IoC框架 HtmlAgilityPack:Html解析利器 Quartz.NET:Job调度 HttpLib:@CodePlex,简化http请求 SuperSocket:简化Socket操作,基于他的还有个SuperWebSocket,可以开发独立的WebSocket服务器了 DocX:未安装Office的情况下操作Word文件 Dapper:轻量级的ORM类,性能不错 HubbleDotNet:支持接入数据库的全文搜索系统 fastJSON:@CodeProject,高性能的json序列化类 ZXing.NET:@CodePlex,QR,条形码相关 Nancy:轻量级Http服务器,做个小型的Web应用可以摆脱IIS喽(Nancy.Viewengines.Razor,可以加入Razor引擎) AntiXSS:微软的XSS防御库Microsoft Web Protection Library Jint:JavaScript解释器 CS-Script:将C#代码文件作为脚本执行 Jexus:Linux下 高性能、易用、免费的ASP.NET服务器 Clay:将dynamic发挥的更加灵活,像写js一样写C# DynamicJSON:不必定义数据模型获取json数据 SharpPcap:C#版的WinPcap调用端,牛逼的网络包分析库(自带PacketNotNet用于包协议分析) Roslyn:C#,VB编译器 ImageResizer: 服务端自由控制图片大小,真乃神器也,对手机端传小图,PC端传大图,CMS用它很方便 UI相关:DevExpress, Fluent(Office 07风格), mui(Modern UI for WPF) NetSparkle:应用自动更新组件 ConfuserEx: 开源.net混淆工具 ServiceStack: 开源高性能Web服务框架,可用于构建高性能的REST服务 Expression Evaluator:Eval for C#,处理字符串表达式 http://nugetmusthaves.com/Reactive Extensions (Rx):异步,事件驱动编程包, Rx = Observables + LINQ + Schedulers C & C++
Thrift:用来进行可扩展且跨语言的服务的开发(类似的还有个Avro,Google protobuf)。 libevent:是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。(对了还有个libev呢) Boost:不多说了,准C++标准库 Valgrind\Ptmalloc\Purify: 调试工具 NetworkServer架构:acceptor->dispatcher->worker(这个不算工具哦) POCO - 开源的C++类库及应用程序框架的集合,它主要提供简单的、快速的网络和可移植应用程序 breakpad:崩溃转储和分析模块,很多crashreport会用到 UI界面相关:MFC、BCG和QT这类的就不说了,高端一点的还有Html和DirectUI技术:libcef(基于chrome内核的,想想使用html5开发页面,还真有点小激动呢)、HtmlLayout、Duilib、Bolt,非C++的,还有node-webkit也不错,集成了node和webkit内核。 其他
游戏开发相关
MINA:使用Java开发手游和页游服务器(对了还有Netty,也很猛的,都是基于NIO的) HP-Socket:见有有些页游游戏使用这个构建的Unreal:虚幻引擎,C++,基于这个游戏的引擎很多OGRE:大名鼎鼎的3D图形渲染引擎。天龙八部OL,火炬之光等不少游戏都使用了这个引擎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);共享对象;现场直播流发布;远程调用。