听说神盾局特工skye和ward和三星合作过?

成为专业程序员路上用到的各种优秀资料、神器及框架
该文章来自用户转载&
电子书地址整理好了 链接: /s/1pLi6HiN 密码: 3yws
本文是鄙人工作这几年随手收集整理的一些自认为还不错的资料,成长的道理上需要积累,这么长时间了,是时候放出来分享下了,或许能帮助到你。
欢迎点赞,让更多人看到,让福利普照。
因为本文以后不会更新,但项目依旧会更新。
所以,更好的做法是,请到GitHub上Star:
成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。
笔者作为一位tool mad,将工作以来用到的各种优秀资料、神器及框架整理在此,毕竟好记性不如烂键盘,此项目可以作为自己的不时之需。
本人喜欢折腾,记录的东西也比较杂,各方面都会有一些,内容按重要等级排序,大家各取所需。
这里的东西会持续积累下去,欢迎Star,也欢迎发PR给我。
前端 & Node.js
工作,工具
第三方服务
爬虫相关(好玩的工具)
Web服务器性能/压力测试工具/负载均衡器
大数据处理/数据分析/分布式工具
折腾中:Scala、Python、Lua、JavaScript、Go
游戏开发相关
日志聚合,分布式日志收集
RTP,实时传输协议与音视频
附,GitHub项目地址:
PS: 知乎啥时候支持Markdown啊,没有Markdown写文章真心不便呐~
不少人反馈有链接打不开的问题,这是因为,这篇文章基于GitHub的那个项目复制过来的,知乎对Markdown支持不好导致的,关注这个项目的话,最好还是去GitHub上Star吧。后使用快捷导航没有帐号?
成为专业程序员路上用到的各种优秀资料、神器及框架
时间: 09:49
阅读数:493
作者:tool mad
摘要:成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。
前言成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。笔者作为一位tool mad,将工作以来用到的各种优秀资料、神器及框架整理在此,毕竟好记性不如烂键盘,此项目可以作为自己的不时之需。本人喜欢折腾,记录的东西也比较杂,各方面都会有一些,内容按重要等级排序,大家各取所需。这里的东西会持续积累下去,欢迎Star,也欢迎发PR给我。整理的GitBook版本,阅读体验更佳:目录资料篇技术站点在线学习:、、、、、:非常棒的针对编程的链接聚合网站:美国知名科技新闻和博客聚集网站,类似的还有(Panda, Hacker & Designer News):同上Java牛人必备::IT技术问答网站:中文的技术问答社区:全球最大的源代码管理平台,很多知名开源项目都在上面,如,等:支持中文可免费创建私有项目的代码托管平台,可作为备选:来做做这些题吧,看看自己的算法水平如何?这可比什么面试宝典强多了。:支持中文的编程题在线训练平台,可作为备选,: 机器学习、大数据竞赛:高质量的技术社区:企业级应用,关注软件开发领域国内老牌技术社区:、、、免费的it电子书:在线学习:优质学习资源:代码练习:&and&:开发者服务商店:微软相关的官方技术集中地,主要是文档类&- 收录了实用的开源项目及资源&基于Git的国内代码托管平台,支持私有项目,有项目管理相关功能必看书籍SICP()深入理解计算机系统代码大全2人件人月神话软件随想录算法导论(麻省理工学院出版社)离散数学及其应用设计模式编程之美黑客与画家编程珠玑The Little SchemerSimply Scheme_Introducing_Computer_ScienceC++ PrimeEffective C++TCP/IP详解Unix 编程艺术技术的本质软件随想录计算机程序设计艺术职业篇:程序员的自我修养,程序员修炼之道,高效能程序员的修炼《精神分析引论》弗洛伊德《失控》《科技想要什么》《技术元素》凯文凯利程序开发心理学天地一沙鸥搞定:无压力工作的艺术大牛博客云风(游戏界大牛):&王垠(不少文章喷到蛮有道理):冰河-伞哥(Lisp大牛):R大陈皓-左耳朵耗子:Jeff Atwood(国外知名博主):&阮一峰(黑客与画家译者,Web):廖雪峰(他的Python、Git教程不少人都看过):道哥的黑板报(安全):GitHub篇** Awesome **: 这是个Awesome合集,常见的资料这里面都能找到: 类似第一个Awesome&- 数据可视化库及资料** 书籍资料 **&,&** 优秀项目 **** 前端 & Node.js **** 工作,工具 **工具篇平台工具Phabricator: 软件开发平台,Facebook出品,现已开源,CodeReview神器(从这个往下一直到GitLab之间的工具统统可以忽略了)Redmine/Trac:项目管理平台Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)git,svn:源代码版本控制系统GitLab/Gitorious:构建自己的GitHub服务器Postman:RESTful,api测试工具,HTTP接口开发必备神器: AE动画变原生代码,设计师必备Sonar:代码质量管理平台Nessus: 系统漏洞扫描器gitbook:写书的好东西,当然用来写文档也很不错的(发现不少产品的文档就是用的它)Travis-ci:开源项目持续集成必备,和GitHub相结合,Trello:简单高效的项目管理平台,注重看板管理日志聚合:graylog、ELK(推荐新一代的graylog,基本上算作是开源的Splunk了)开源测试工具、社区(Selenium、OpenQA.org)Puppet:一个自动管理引擎,可以适用于Linux、Unix以及Windows平台。所谓配置管理系统,就是管理机器里面诸如文件、用户、进程、软件包这些资源。无论是管理1台,还是上万台机器Puppet都能轻松搞定。其他类似工具:CFEngine、SaltStack、AnsibleNagios:系统状态监控报警,还有个Icinga(完全兼容nagios所有的插件,工作原理,配置文件以及方法,几乎一模一样。配置简单,功能强大)Ganglia:分布式监控系统fleet:分布式init系统Ansible:能够大大简化Unix管理员的自动化配置管理与流程控制方式。GeoLite免费数据库jsHint:js代码验证工具haproxy: 高可用负载均衡(此外类似的系统还有nginx,lvs)linux OS性能分析工具:dstat,iostat,iotop,nmonkimono:将网页信息转换为api接口的工具集群管理工具:pdsh,ClusterSSH,mussh(可以用它快速管理Hadoop集群)ipa-server做统一的认证管理influxdb: 分布式时序数据库,结合Grafana可以进行实时数据分析dot: 程序员绘图利器(是种语言,也是个工具)Graph::Easy: (Ascii Art工具)字符流程图绘制,实乃程序员装逼神器。其他类似的工具Asciiflow, vi插件:drawit!spf13-vim: 让你的vim飞起来!Kubernetes: 容器集群管理系统Gatling: 服务器性能压力测试工具systemtap: Linux内核探测工具、内核调试神器Cygwin:Windows下的类UNIX模拟环境MinGW:Windows下的GNU工具集常用工具: 终端录屏神器Fiddler:非常好用的Web前端调试工具,当然是针对底层http协议的,一般情况使用Chrome等自带的调试工具也足够了,特殊情况还得用它去处理Charles: Mac上的Web代理调试工具,类似Fiddler免费的移动App内测托管平台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:给资源管理器加上多标签,我平时工作的时候就用它,像Chrome一样使用资源管理器,甚是方便啊(这是Windows平台的)WinLaunch:模拟Mac OS的Launch工具OllyDbg: OD大名鼎鼎的反汇编工具,Win平台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:快速原型制作工具,还有个在线作图的工具国内的一个创业团队做的,用着很不错Origami: 次世代交互设计神器百度脑图:tinyproxy:(Linux)小型的代理服务器支持http和https协议EaseUS Partition Master:超级简单的分区调整工具,速度还是蛮快的,C盘不够用了就用它从D盘划点空间吧,不用重装系统这么折腾哦。CheatEngine:玩游戏修改内存值必备神器(记得我在玩轩辕剑6的时候就用的它,超级方便呢)ApkIDE:Android反编译神器翻、墙工具(自|由|门、天行浏览器,免费的VPN:设计工具:Sketch、OmniGraffleMindManger:思维导图MagicDraw:Uml图工具innotop:MySql状态监测工具墨刀:比Axure更为简单的原型工具,可以快速制作原型Karabiner: Mac专用,修改键盘键位的神器,机械键盘必备Timing:Mac专用,统计你的时间都花在哪了f.lux: 护眼神器,过滤蓝光,程序员护眼必备良品LaTeX: 基于ΤΕΧ的排版系统, 让写论文更方便Antlr:开源的语法分析器,可以让你毫无压力的写个小parser第三方服务DnsPod:一个不错的智能DNS服务解析提供商DigitalOcean:海外的云主机提供商,价格便宜,磁盘是SSD的,用过一段时间整体上还可以,不过毕竟是海外的,网速比较慢。国内的就是阿里云了。还有个比较知名的是:Linode,据说速度上比DigitalOcean好很多移动端推送服务:个推、JPush、云巴:移动应用开发服务,包括:数据存储、用户管理、消息推送、应用统计、社交分享、实时聊天等服务: 漂亮炫酷的配色网站,程序员的福音爬虫相关(好玩的工具)Phantomjs(Web自动化测试,服务端渲染等)berserkJS(基于Phantomjs的改进版本)SlimerJSCasperJSseleniumHtmlUnit(开源的java 页面分析工具,也是个Headless的浏览器)安全相关sql注入检测:sqlmap、haviji端口扫描:nmap渗透测试:BurpLoadersqltools: sql漏洞利用工具snort: 入侵检测Web服务器性能/压力测试工具/负载均衡器ab: ab是apache自带的一款功能强大的测试工具curl-loader: 真实模拟、测试Web负载http_load: 程序非常小,解压后也不到100Kwebbench: 是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。Siege: 一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。squid(前端缓存),nginx(负载),nodejs(没错它也可以,自己写点代码就能实现高性能的负载均衡器):常用的负载均衡器Piwik:开源网站访问量统计系统ClickHeat:开源的网站点击情况热力图HAProxy:高性能TCP /HTTP负载均衡器ElasticSearch:搜索引擎基于LucenePage Speed SDK和YSLOWHAR 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,DrillIgnite: In-Memory Data FabricCarbonData: 华为的孵化项目,支持索引的列式存储Ceph:Linux分布式文件系统(特点:无中心)Storm:实时流数据处理,可以看下IBM的一篇介绍 (还有个Yahoo的S4,也是做流数据处理的)Druid: 实时数据分析存储系统Ambari: 大数据平台搭建、监控利器;类似的还有CDHTachyon:分布式内存文件系统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 BuffersNoSql:ScyllaDB(宣称是世界上最快的NoSql)、Apache Casandra、MongoDB、Apache CouchDB、Redis、BigTable、HBase、Hypertable、Voldemort、Neo4jMapReduce相关: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机器学习:TensorFlow(Google出品),WEKA、Mahout、scikits.learn、SkyTree可视化技术:GraphViz、Processing、Protovis、Google Fusion Tables、Tableau、Highcharts、EChats(百度的还不错)、Rapha?l.jsKettle:开源的ETL工具Pentaho:以工作流为核心的开源BI系统Mondrian:开源的Rolap服务器Oozie:开源hadoop的工作流调度引擎,类似的还有:Azkaban开源的数据分析可视化工具:Weka、Orange、KNIMECobar:阿里巴巴的MySql分布式中间件数据清洗:data wrangler, Google RefineWeb前端: 谷歌出品,必属精品Vue.js: 借鉴了Angular及React的JS框架,设计理念较为先进GRUNT: js task runnerSea.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中展现pdfACE,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反编译工具,猜压缩后的变量名,D3.js: 是一个基于JavaScript数据展示库(类似的还有P5.js)Zepto.js:移动端替代jQuery的东东,当然也可以使用jquery-mobile.UI框架:Foundation,Boostrap,Pure,EasyUI,Polymer前段UI设计师必去的几个网站:Dribbble,awwwards,unmatchedstyle,UIMakerMozilla 开发者中心:图标资源:IcoMoon(我的最爱),Font Awesome, Themify Icons,FreePik,GlyphiconsartDialog:非常漂亮的对话框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 CodingReact: facebook出品的js UI库highlight.js:专门用来做语法高亮的库GoJS: Html5交互式图表库,看demo更适合层次结构的图表。10 Pure CSS (Mostly) Flat Mobile Devices:&CodePen:&jsfiddle:&&前端js,html,css测试利器语言篇折腾中:Scala、Python、Lua、JavaScript、Go待折腾:Scala: A Scala tutorial by Twitter: Tutorial introducing the main concepts of Scala: A list of useful questions sorted by topic,最新的第3版,还没有电子版,电子版是第一版《Scala for the Impatient》《Scala in Depth》《Programming Scala》Dean Wampler and Alex Payne. O’Reilly 2009学习模式匹配的好资料Java常用的IDE:IntelliJ IDEA(强烈推荐),Eclipse,Netbeans: 性能更好的Java集合框架Guava: 谷歌的Java工具包,应用广泛Curator:Netflix公司开源的一个Zookeeper client library,用于简化Zookeeper客户端编程,现在已经是apache下的一个独立项目了。Spark的HA也用的这货。Rx(Reactive Extensions)框架:Vert.x, RxJava(Android中用的比较多), QuasarFindBugs: 代码静态分析工具,找出代码缺陷Java反编译工具:Luyten,JD-GuiDrools: 规则引擎Jersey: Java RESTful 框架canal: 阿里巴巴出品,binlog增量订阅&消费组件Web开发相关:Tomcat、Resin、Jetty、WebLogic等,常用的组件Struts,Spring,HibernateNetty: 异步事件驱动网络应用编程框架,用于高并发网络编程比较好(NIO框架,spark 1.2.0就用netty替代了nio)MINA:简单地开发高性能和高可靠性的网络应用程序(也是个NIO框架),不少手游服务端是用它开发的jOOQ:java Orm框架Janino: 超级小又快的Java编译器,Spark的Tungsten引起用的它Activiti:工作流引擎,类似的还有jBPM、SnakerPerfuse:是一个用户界面包用来把有结构与无结构数据以具有交互性的可视化图形展示出来.Gephi:复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具Nutch:知名的爬虫项目,hadoop就是从这个项目中发展出来的web-harvest:Web数据提取工具POM工具:Maven+ArtifactoryAkka:一款基于actor模型实现的 并发处理框架EclEmma:覆盖测试工具Shiro:安全框架joda-time:简化时间处理parboiled:表达式解析dozer: 深拷贝神器dubbo: 阿里巴巴出品的分布式服务框架jackson databind: json序列化工具(fastjson,simplejson)Atomikos: 分布式事务管理BoneCP:性能很赞的数据库连接池组件,据说比c3p0快好多ProGuard: obconfuscation tool, 强大的混淆工具S-99:Scala相关的99个问题PythonPyCharm:最佳Python IDEEric,Eclipse+pydev,比较不错的Python IDEPyWin:Win32 api编程包numpy:科学计算包,主要用来处理大型矩阵计算等,此外还有SciPy,MatplotlibGUI相关:PyQt,PyQwtsupervisor:进程监控工具PyGame: 基于Python的多媒体开发和游戏软件开发模块Web框架: Django 开源web开发框架,它鼓励快速开发,并遵循MVC设计Swift客户端Framework小工具游戏.NETXilium.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 UtilityAutofac: 轻量级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 LibraryJint: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#,处理字符串表达式Reactive Extensions (Rx):异步,事件驱动编程包, Rx = Observables + LINQ + SchedulersC & C++Thrift:用来进行可扩展且跨语言的服务的开发(类似的还有个Avro,Google protobuf)。libevent:是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。(对了还有个libev呢)Boost:不多说了,准C++标准库Valgrind\Ptmalloc\Purify: 调试工具NetworkServer架构:acceptor-&dispatcher-&worker(这个不算工具哦)&- 开源的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开发的实时日志收集系统Graylog: 易用、功能丰富的日志管理系统, 部署、维护、搜索比ELK简单RTP,实时传输协议与音视频RTP,RTCP,RTSP-& librtp,JRTPLIB(遵循了RFC1889标准)环形缓冲区,实时数据传输用SDL,ffmpeg,live555,SpeexRed5:用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。开源插件EclEmma一点小认识
一直在寻找一个开源的工具来弥补代码测试覆盖面的问题。我们有优秀的集成开发环境 Eclipse,有开源的 JDK,有单元测试工具
JUnit,有 Ant 这样的项目管理工具,我们还可以用 CVS
来进行源代码版本的维护,就一直觉得少了一个代码测试覆盖工具。之前弄过一段时间Cobertura,不过没有找到什么资料,就放下了。最近又发现一个开源的eclipse插件EclEmma,资料也不是很多,不过因为是eclipse开源插件,所以尝试着更新了下,居然成功了!初步试了下效果,惊喜很大啊。
EclEmma大概查了下资料,前身是 Emma
,一个著名的开源覆盖测试工具,没有接触过,这里就不多说了。EclEmma更新成功后,eclipse工具栏会出现相应的工具:看图1
这个大家很熟悉,相应的右键菜单也会有一个一样的工具。
&&&&EclEmma初步的使用是比较简单的,与我们以往执行junit类差不多,执行完成后,在
Java 编辑器中,EclEmma
用不同的色彩标示了源代码的测试情况。其中,绿色的行表示该行代码被完整的执行,红色部分表示该行代码根本没有被执行,而黄色的行表明该行代码部分被执行。我想到这里,大家就已经很惊喜了,且不论EclEmma还有多少更强大的功能,单是这个效果就已经可以帮助我们维护相关的test类了吧。看图2:
从这个图2里我想已经可以看到黄色部分是判断分支,显然只走了一个分支,所以覆盖了一半,相应的调整test类;红色部分下面这个是没有覆盖的,但是这两行代码是一个异常获取的代码,通常我们的test类调用被测试类都不覆盖这样的异常获取代码。所以我的意思是EclEmma虽然提供的数据很清晰,但是具体如果理解这些信息需要根据实际情况判断。
EclEmma不光提供了被测源代码的覆盖情况,同时也提供了测试代码的执行情况,就是说它也会把test类用红黄绿颜色标注代码,这一点甚好,保证了最基本的测试代码执行清晰度的问题。另外EclEmma提供了
Coverage 视图来具体反馈测试覆盖率的数据,看图3:
看图,红框标注的测试类测试覆盖率达到了96.9%,完全覆盖代码行数2154,未完整覆盖行数68,总行数2222。而且它支持多次覆盖并且结合多次覆盖来计算最终覆盖率,使数字趋于合理。
&&&&目前初步使用
EclEmma,还不是很熟悉,据说该插件功能很强大,它不仅能测试 Java Application,还能计算 JUnit 单元测试,对
Eclipse 插件测试的覆盖率都可以做到。另外对于需要对被执行的代码进行修改采取的两种方式等后期熟悉透了,再来说这些。
不过虽然我只是简单的熟悉了
EclEmma,也发现了它一些比较不好的设置,比如第一、它在执行一个单独的test类之后,会把这个test类测试的被测代码整个类甚至架包都检查覆盖一遍,第二、应该是上面那个问题带来的就是相应生成的Coverage
视图,大家看图3也能看到,将整个项目从包,类,方法、语句块分层次的覆盖率都计算出来。这必然存在一个耦合性的因素在里面。不过我想这些问题应该是设置的问题,毕竟
EclEmma是一个功能强大的开源插件,等待我的后续的挖掘。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 神盾局特工沃德和斯凯 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信