【真正方便人民群众】成为标准程序员路上用到的种种优质资料、神器及框架

利用情况

始发此前,我们先设定那样叁个景况:

1.一百万报了名用户的页游大概手游,这是不温不火的一个气象,刚好是数据量进退维谷的一个景观。也恰恰是观念MySql数据库品质开头紧张的时候。

2.数据库就用一台很常常的服务器,只有一台。读写分离、水平扩张、内部存款和储蓄器缓存都不谈。一百万挂号用户只要进献度和活跃度都不高,大概公司的光景还不是那么富有,能够在数据库上的投资也简单。

其一情景为例,设每一个用户都有所九二十一个道具,用户时时会得到或失去道具。

大家就来看望这一亿的道具怎么搞。

道具一般要动用原型、实例的宏图情势,那个不属于数据库的层面。

道具类型001
是屠龙刀,屠龙刀价格1500,基础攻击150,那么些,我们把它们称为道具原型,保存在原型数据文件中。

其一原型数据文件,无论是存在何种数据库可能地面文件中,对服务器来说都小意思,也不惊动数据库设计,所以大家不去切磋她。

好东西不是无论采访下,发篇博文,骗些点赞的!积累了5年多的事物,是时候放出去跟我们见会师了。

关周到据库设计艺术

典型的关周详据库设计方法:

用户表:字段 xxx userid xxx   ,记录数据100万

xxx是任何字段,userid标示用户

用户道具表:字段 xxx userid itemtype xxx ,记录数据一亿

xxx是其余字段,userid 标示

一个亿的记录数是或不是看起来某些头痛,mysql这些时候就要想各个艺术了。

兴许有个别园友在14年的时候收藏过自个儿的一篇“工欲善其事、必先利其器”的博文,时隔3年,已经做了N多更新,那篇小说也已被小编删除,迁移至GitHub,重新举办保管。

MongoDB设计方法

但大家用mongoDB来完结这些需求,直接就没有毛病

率先首个聚众:users集合,用UserName 作为_id ,记录数100万

然后道具的团伙,大家有两种选取

1.在users集合的值中确立Items对象,用Bson数组保存道具(Mongo官方称为Bson,和Json一模一样的贮存方法)

办法一,没有额外的记录数

2.新建userItems集合,同样用UserName作为_id
每种UserItems集合的值中树立三个Item对象,使用二个Bson数组来保存道具

办法二,多了二个聚集和100万记录数

 

大家的道具数据看起来像上边那样:

{_id:xxx,Items:[

{Itemtype:xxx,ItemPower:xxx},

 

]}

那篇小说,大家能够推荐、收藏,让更加多的人在园内看到,让福利普照。

测试方法

测试方法如下:测试客户端随计算机检索查2个用户的道具数量,小于100加二个道具,大于100
删除一个道具。

连接100万次,选取11个线程并发。

假定用关周到据库设计艺术+mysql来兑现,这是多少个很压力相当大的多少处理要求。

不过用文书档案数据库设计情势+MongoDB来达成,那一个测试根本算不上有压力。

因为那篇文章,作者事后不会更新。

注意事项

即使我们用了2个这么胜之不武的规划形式,你照样有大概还可以够把她写的非常慢。

因为MongoDB在接口设计上并没有很好的指引和平条约束,借使你不上心,你要么能把他用的尤其慢。

但品种照旧会更新,所以,更好的做法是,请到GitHub上Star:be-a-professional-programmer

率先个难题:Key-Value数据库能够有过多的Key,没错,但对MongoDB来说,大错特错

MongoDB的目录代价相当的大,大到什么样水平:

1.伟大的内部存款和储蓄器占用,100万条索引约占50M内部存款和储蓄器,假设那些设计中,你三个道具一条记下,5G内部存款和储蓄器将用于索引。

作者们的屌丝情景不容许给您那样的服务器,

2.宏大的个性损失,作为一个数据库,全数的东西自然被写入硬盘,没有关周全据库那样的表结构,MongoDB的目录写入品质看起来很差,假诺记录数据较小的时候,你能够观测到这么震撼的现象,加3个索引,品质变成了二分一,加四个目录,品质变成了叁分一。

只有当第二个目录的查询不可防止,才值得增添额外索引。因为没索引的数据,查询质量是加多少个零的慢,比加索引更惨。

小编们既然接纳了Key-Value数据库,应尽量防止须要多少个目录的景况。

抱有的目录只好存在于内部存款和储蓄器中,而读取记录时,也急需将Bson在内部存款和储蓄器中拍卖,内部存款和储蓄器还负责着更重要的效果:读取缓存。

自然就不丰富的内存,应该严格控制我们的记录条数,能够用Bson存储的,尽量用之。

那么我们前边在MongoDB的安排中怎么还考虑第三种设计格局吧?独立三个userItems
集合,不是又多出100万条记下了吧?

这基于另多个考虑:a.Bson的处理是要反复硬盘和内存沟通的,就算每条记下更小,则IO压力更小。内部存款和储蓄器和硬盘对服务器来说都以稀缺财富,至于多大的数据拆分到另二个凑合中更经济,那亟需依照工作意况,服务器内部存款和储蓄器、硬盘情状来测试出多个适宜大小,大家一时使用1024那几个数值,单用户的道具表肯定是会突破1024字节的,所以大家要考虑将她独立到1个聚集中

b.能够不陈设分片集群,将另1个会见挪到另三个服务器上去。只要服务器能够轻松承载100万用户,200万还会远么?在有钱安插分片集群在此在此以前,考虑第贰组服务器更现实一些。

前言

化为一名正式程序员的道路上,须要水滴石穿练习、学习与积淀,技术方面既要有早晚的广度,更要有和好的吃水。

笔者作为一位tool
mad,将工作以来用到的各个美丽资料、神器及框架整理在此,究竟好记性不如烂键盘,此项目得以当做友好的平日之需。

自个儿喜爱折腾,记录的东西也正如杂,各方面都会有一对,内容按主要性阶段排序,大家各取所需。

此地的事物会没完没了累积下来,欢迎Star,也欢迎发P卡宴给我。

第四个难点:FindOne({_id:xxx})就快么?

不必置疑,FindOne({_id:xxx})就是最直白的用Key取Value。

也真正,用Key取Value
正是大家能用的唯一访问Value的主意,其余就不叫Key-Value数据库了。

只是,由于大家要控制Key的数码,单个Value就会相比较大。

不要被FindOne({_id:xxx}).Items[3].ItemType那优雅的代码欺骗,那是非常的慢的,他差了一些儿谋杀你拥有的流量。

不管前边是怎么着FindOne({_id:xxx})总是回到给您完整的Value,大家的100条道具,少说也有6~8K.

如此那般的查询流量已经非常大了,假如您采纳MongoDB方案一陈设,你的单个Value是包蕴三个用户的拥有数据的,他会更大。

万一查询客户端和数据库服务器不在同二个机房,流量将变成3个相当大的瓶颈。

大家应有使用的查询函数是FindOne({_id:xxx},filter),filter里面就是安装重返的过滤条件,那会在发送给你从前就过滤掉

比如FindOne({_id:xxx},{Items:{“$slice”:[3,1]}}),那和上边那条优雅的代码是成功同样效果,不过他消耗很少的流量

目录

其四个难题:精细的选择Update

那和题材二针锋相对的,不要暴力的FindOne,也硬着头皮不要暴力的Update一整个节点。尽管MangoDB的性质挺暴力的,IO品质极限相当于MongoDB质量,暴力的Update就会在挤占流量的同时欢迎IO的特性极限。

除外创制节点时的Insert只怕Save之外,全体的Update都应有利用修改器精细修改.

比如Update({_id:xxx},{$set:{“Items.3.Item.Health”:38}});//修改第2把武器的符合规律值

至于2次修改和批量改动,MongoDB默许100ms
flush2遍(2.x),只要四遍修改相比接近,被同步保存的可能很高。

唯独合并了自然比不联合强,合并的改动肯定是一起保存,这么些也要凭借于是用的开发形式,假使选择php做多少客户端,缓存起来往往操作合并了联合付给,完结起来就相比复杂。

 

留意上述三点,第一百货公司万注册用户并不算很多,4G内部存款和储蓄器,200G硬盘空间的MongoDB服务器即可轻松应对。质量瓶颈是硬盘IO,可以很简单的施用Raid和机械硬盘升高几倍的吞吐量。不选用多量的Js总计,CPU不会变成难题,不要让索引膨胀,内部存款和储蓄器不会化为难点。你一直用不着志强的一堆宗旨和海量的内存,越来越多的内部存款和储蓄器能够让缓存的效率更好一些,不过比读写分离依旧差远了。假如是高并发时查询质量不足,就要动用读写分离的安顿形式。当IO再一次成为瓶颈时,就只能使用集群布署MongoDB启用分片作用,或许机关开始展览分集合与key散列的行事。

资料篇

技术站点

  • 在线学习:CourseraedXUdacityMIT公开课MOOC学院
  • Hacker News:非常厉害的针对编制程序的链接聚合网站
  • Techmeme:U.S.名扬四海科学和技术资源新闻和博客聚集网站,类似的还有(Panda, 哈克er
    & Designer News)
  • Programming reddit:同上
  • Java牛人必备:Program Creek
  • stackoverflow:IT技术问答网站
  • GitHub:满世界最大的源代码管理平台,很多著名开源项目都在上头,如Linux内核,OpenStack等
  • LeetCode:来做做那些题吗,看看本身的算法水平如何?那可比如何面试宝典强多了。
  • Kaggle,Topcoder: 机器学习、大数据竞技
  • 掘金:高品质的技巧社区
  • 开发者头条
  • InfoQ:集团级应用,关心软件开发领域
  • V2EX: way to explore
  • 境内有名技术社区:OSChina、网易、CSDN、51CTO
  • 免费的it电子书:http://it-ebooks.info/
  • 在线学习:http://www.udemy.com/
  • 优质学习能源:http://plus.mojiax.com/
  • 代码演习:http://exercism.io/ and
    https://www.codingame.com
  • DevStore:开发者服务集团
  • MSDN:微软有关的官方技术集中地,主借使文书档案类

一定要看书籍

  • SICP(Structure and Interpretation of Computer
    Programs
    )
  • 深远掌握放区救济总会计机类别
  • 代码大全2
  • 人件
  • 人月传说
  • 软件杂文录
  • 算法导论(浦项科学和技术高校出版社)
  • 离线数学及其使用
  • 设计形式
  • 编制程序之美
  • 黑客与画师
  • 编制程序珠玑
  • The Little Schemer
  • Simply Scheme_Introducing_Computer_Science
  • C++ Prime
  • Effective C++
  • TCP/IP详解
  • Unix 编程艺术
  • 技术的面目
  • 软件杂文录
  • 处理器程序设计方法
  • 职业篇:程序员的自家修养,程序员修炼之道,高效能程序员的修炼
  • 《精神分析引论》Freud
  • 《失控》《科技想要什么》《技术因素》凯文凯利
  • 次第开发心境学
  • 世界一沙鸥
  • 化解:无压力工作的法子

大牛博客

GitHub篇

** Awesome **

** 书籍资料 **

** 杰出项目 **

** 前端 & Node.js **

** 工作,工具 **

工具篇

阳台工具

  • Phabricator:
    软件开发平台,脸谱(TWTXC60.US)出品,现已开源,CodeReview神器(从那几个往下直接到GitLab之间的工具全都能够忽略了)
  • Redmine/Trac:项目管理平台
  • Jenkins/Jira(非开源):持续集成系统(Apache
    Continuum,那么些是Apache下的CI系统,还没来得及讨论)
  • git,svn:源代码版本控制系统
  • GitLab/Gitorious:构建友好的GitHub服务器
  • Postman:RESTful,api测试工具,HTTP接口开发必备神器
  • Sonar:代码质管平台
  • Nessus: 系统漏洞扫描器
  • gitbook:https://www.gitbook.io/写书的好东西,当然用来写文书档案也很科学的(发现许多成品的文书档案正是用的它)
  • Travis-ci:开源项目不断集成必备,和GitHub相结合,https://travis-ci.org/
  • Trello:简单快捷的品种管理平台,珍视看板管理
  • 日志聚合:graylog、ELK(推荐新一代的graylog,基本上算作是开源的Splunk了)
  • 开源测试工具、社区(Selenium、OpenQA.org)
  • Puppet:三个机动管理引擎,能够适用于Linux、Unix以及Windows平台。所谓配置管理种类,就是管理机器内部诸如文件、用户、进度、软件包那些财富。无论是管理1台,还是上万台机械Puppet都能轻松消除。其余类似工具:CFEngine、SaltStack、Ansible
  • Nagios:系统状态监察和控制告警,还有个Icinga(完全匹配nagios全体的插件,工作规律,配置文件以及艺术,差不多同样。配置简单,效用强大)
  • Ganglia:分布式监察和控制系统
  • fleet:分布式init系统
  • Ansible:可以大大简化Unix管理员的自动化配置管理与流程序控制制格局。
  • GeoLite免费数据库
  • jsHint:js代码验证工具
  • haproxy: 高可用负载均衡(其余类似的种类还有nginx,lvs)
  • linux OS质量分析工具:dstat,iostat,iotop,nmon
  • kimono:将网页音信变换为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工具集

常用工具

  • Mac下的神兵利器
  • asciinema: 终端录屏神器
  • Fiddler:相当好用的Web前端调节和测试工具,当然是对准底层http协议的,一般意况使用Chrome等自带的调剂工具也足够了,特殊意况还得用它去处理
  • Charles: Mac上的Web代理调节和测试工具,类似Fiddler
  • wireshark:盛名的网络数据包分析工具
  • PowerCmd:替代Windows Cmd的利器
  • RegexBuddy:强大的正则表达式测试工具
  • Soure Insight:源代码阅读神器
  • SublimeText:程序员最爱的编辑器
  • Database.NET:1个通用的关系型数据库客户端,基于.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工具
  • Fritzing:绘制电路图
  • LICEcap:gif教程制作
  • git,svn:版本控制系统
  • Enigma Virtual Box(将exe,dll等封装成三个可执行程序)
  • Open DBDiff(针对SqlServer)数据库同步
  • SymmetricDS:数据库同步
  • BIEE,Infomatica,SPSS,weka,中华V语言:数据解析
  • CodeSmith,LightSwitch:代码生成
  • Pandoc:马克down转换工具,出书用的。从前玩过docbook,然而未来照旧马克down盛行啊。
  • Window
    Magnet[Mac]:增强Mac窗口管理效用,想Win7一样具有窗口拖放到显示屏边缘自动调整的功能
  • log explorer:查看SqlServer日志
  • dependency walker:查询Windows应用程序dll依赖项
  • Shairport4w:将HUAWEI,三星GALAXY Tab,iPod上的韵律通过AirPlay商讨传输到PC上
  • ngrok:内网穿透工具
  • Axure:飞速原型制作工具,还有个在线作图的工具国内的1个创业团队做的,用着很不利http://www.processon.com/
  • Origami: 次永远交互设计神器
  • 百度脑图:http://naotu.baidu.com/
  • tinyproxy:(Linux)小型的代理服务器援助http和https协议
  • EaseUS Partition
    Master:一级简单的分区域地质调查整工具,速度依然蛮快的,C盘不够用了就用它从D盘划点空间吧,不用重装系统这么折腾哦。
  • CheatEngine:玩游戏修改内部存款和储蓄器值必备神器(记得小编在玩轩辕剑6的时候就用的它,拔尖福利呢)
  • ApkIDE:Android反编写翻译神器
  • 翻、墙工具(自|由|门、天行浏览器,免费的VPN:http://www.mangovpn.com/),发现最有益还属Lantern,免开销起来超级福利(更新于二零一六-08-22)
  • 设计工具:Sketch、OmniENZOle
  • MindManger:思维导图
  • MagicDraw:Uml图工具
  • innotop:MySql状态监测工具
  • 墨刀:比Axure更为简易的原型工具,能够一点也不慢创造原型
  • Karabiner: Mac专用,修改键盘键位的神器,游戏键盘必备
  • Timing:Mac专用,计算你的年月都花在哪了
  • f.lux: 护眼神器,过滤蓝光,程序员护眼必备良品
  • LaTeX: 基于ΤΕΧ的排版系统, 让写散文更有利
  • Antlr:开源的语法分析器,能够让您不用压力的写个小parser

其三方服务

  • DnsPod:四个不易的只可以DNS服务解析提供商
  • DigitalOcean:国外的云主机提供商,价格便宜,磁盘是SSD的,用过一段时间全部上还足以,可是到底是国外的,网速比较慢。国内的就是Ali云了。还有个相比有名的是:Linode,据说速度上比DigitalOcean好广大
  • 活动端推送服务:个推、JPush、云巴
  • LeanCloud:移动使用开发服务,包含:数据存款和储蓄、用户管理、音信推送、应用计算、社交分享、实时聊天等劳动
  • Color Hunt:
    赏心悦目炫酷的配色网站,程序员的佛法
  • Heroku: PaaS平台

爬虫相关(好玩的工具)

  • Phantomjs(Web自动化测试,服务端渲染等)
  • berserkJS(基于Phantomjs的创新版本)
  • SlimerJS
  • CasperJS
  • selenium
  • HtmlUnit(开源的java 页面分析工具,也是个Headless的浏览器)

安然有关

  • 美高梅4688.com,sql注入检查和测试:sqlmap、haviji
  • 端口扫描:nmap
  • 渗透测试:BurpLoader
  • sqltools: sql漏洞使用工具
  • snort: 凌犯检查和测试

Web服务器品质/压力测试工具/负载均衡器

  • ab: ab是apache自带的一款作用强大的测试工具
  • curl-loader: 真实模拟、测试Web负载
  • http_load: 程序非常的小,解压后也不到100K
  • webbench:
    是Linux下的一个网站压力测试工具,最多能够效仿3万个冒出连接去测试网站的负载能力。
  • Siege:
    一款开源的下压力测试工具,能够依照配置对1个WEB站点进行多用户的产出国访问问,记录每一个用户拥有请求进程的应和时间,并在一定数额的产出国访问问下重新实行。
  • squid(前端缓存),nginx(负载),nodejs(没错它也得以,自个儿写点代码就能兑现高品质的负载均衡器):常用的载荷均衡器
  • Piwik:开源网站访问量计算种类
  • ClickHeat:开源的网站点击情形热力图
  • HAProxy:高质量TCP /HTTP负载均衡器
  • ElasticSearch:搜索引擎基于Lucene
  • Page Speed SDK和YSLOW
  • HAQX56 Viewer: HACR-V分析工具
  • protractor:E2E(end to end)自动化测试工具

大数额处理/数据解析/分布式工具

  • Hadoop:分布式的文件系统,结合其MapReduce编制程序模型能够用来做海量数据的批处理(Hive,Pig,HBase啥的就不说了),值得介绍的是Cloudera的Hadoop分支CDH5,基于YA瑞鹰N
    MCR-Vv2集成了斯Parker可径直用来生产条件的Hadoop,对于店铺神速创设数据仓库十分实用。
  • Spark:大规模数据处理框架(能够应付公司江西中国广播集团泛的二种多少处理场景:复杂的批量数据处理(batch
    data processing);基于历史数据的交互式查询(interactive
    query);基于实时数据流的数据处理(streaming data
    processing)),CSND有篇小说介绍的正确
  • 除此之外斯Parker,其余多少个不错的一个钱打二15个结框架还有:Kylin,Flink,Drill
  • Ceph:Linux分布式文件系统(特点:无中央)
  • Storm:实时代时尚数据处理,能够看下IBM的一篇介绍
    (还有个Yahoo的S4,也是做流数据处理的)
  • Druid: 实时数据解析存款和储蓄系统
  • Ambari: 大数据平台搭建、监察和控制利器;类似的还有CDH
  • 塔赫yon:分布式内部存款和储蓄器文件系统
  • 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、谷歌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
  • 多少处理:中华V、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:Alibaba的MySql分布式中间件
  • 数量清洗:data wrangler, 谷歌(Google) Refine

Web前端

  • Material Design: 谷歌(谷歌(Google))出品,必属精品
  • 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上的2个开源项目,基于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:2个没错的开源的html编辑器,简洁高效
  • Sencha: 基于html5的移位端支付框架
  • SuperScrollorama+Tween马克斯+skrollr:创设超酷的视差滚动作效果应网页动画
  • jquery-smooth-scroll:同上,平滑滚动插件
  • Animate.css:完结了各类卡通效果的css库
  • Emmet:前端工程师必备,ZenCode的前身
  • 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

待折腾:

Scala

Java

  • 常用的IDE:AMDliJ IDEA(强烈推荐),Eclipse,Netbeans
  • fastutil: 质量更好的Java集合框架
  • Guava: 谷歌的Java工具包,应用广泛
  • Curator:Netflix集团开源的一个Zookeeper client
    library,用于简化Zookeeper客户端编制程序,今后早正是apache下的叁个独门项目了。斯Parker的HA也用的那货。
  • Rx(Reactive Extensions)框架:Vert.x, MuranoxJava(Android中用的可比多),
    Quasar
  • FindBugs: 代码静态分析工具,找出代码缺陷
  • Java反编写翻译工具:Luyten,JD-Gui
  • Drools: 规则引擎
  • Jersey: Java RESTful 框架
  • canal: Alibaba出品,binlog增量订阅&消费组件
  • Web开发相关:汤姆cat、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模型完毕的 并发处理框架
  • Ecl艾玛:覆盖测试工具
  • Shiro:安全框架
  • joda-time:简化时间拍卖
  • parboiled:表明式解析
  • dozer: 深拷贝神器
  • dubbo: Alibaba出品的分布式服务框架
  • jackson databind: json系列化学工业具(fastjson,simplejson)
  • Atomikos: 分布式事务管理
  • BoneCP:品质十分的赞的数据库连接池组件,传闻比c3p0快好多
  • ProGuard: obconfuscation tool, 强大的混淆工具
  • S-99:Scala相关的99个问题

Python

  • PyCharm:最佳Python IDE
  • 埃里克,Eclipse+pydev,相比较不利的Python IDE
  • PyWin:Win32 api编程包
  • numpy:科学计算包,首要用以处理大型矩阵总结等,别的还有SciPy,Matplotlib
  • GUI相关:PyQt,PyQwt
  • supervisor:进度监察和控制工具
  • PyGame: 基于Python的多媒体开发和游戏软件开发模块
  • Web框架: Django 开源web开发框架,它鼓励火速支付,并服从MVC设计

Swift

客户端

Framework

小工具

游戏

.NET

  • Xilium.CefGlue:基于CEF框架的.NET封装,基于.NET开发Chrome内核浏览器
  • CefSharp:同上,有一款WebKit的封装,C#和Js交互会更简便
  • netz:免费的 .NET 可执行文件压缩工具
  • 斯玛特Assembly:变态的.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:轻量级的OSportageM类,质量不错
  • 哈勃勒DotNet:扶助过渡数据库的全文字笔迹检验索系统
  • fastJSON:@CodeProject,高品质的json种类化类
  • ZXing.NET:@CodePlex,QCR-V,条形码相关
  • 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)
  • Net斯Parkerle:应用自动更新组件
  • ConfuserEx: 开源.net混淆工具
  • ServiceStack: 开源高品质Web服务框架,可用于构建高品质的REST服务
  • Expression Evaluator:Eval for C#,处理字符串表达式
  • http://nugetmusthaves.com/
  • Reactive Extensions (汉兰达x):异步,事件驱动编制程序包, Kugax = 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(那个不算工具哦)
  • 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开发的实时日志收集体系

汉兰达TP,实时传输协议与音录像

  • RTP,RTCP,RTSP-> librtp,JRTPLIB(遵循了RFC1889标准)
  • 环形缓冲区,实时数据传输用
  • SDL,ffmpeg,live555,Speex
  • Red5:用Java开发开源的Flash流媒体服务器。它支持:把拍子(mp4)和录制(FLV)转换来播放流;
    录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注