谈谈OOP

2017 年开源中国社区新增开源项目名次榜 TOP 100 新鲜出炉!

那份榜单根据 2017
年开源中国社区新录用的开源项目标关心度和活跃度整理而来,那份最受关注的
100 款开源项目榜单在任其自然水平上预示着业界的风尚流行势头。

  OOP:
Object Oriented Programming,面向对象程序设计。所谓“对象”就是一个或一组数据以及处理那些数据的章程和进度的集结。面向对象的次第设计完全分歧于传统的面向进度程序设计,它大大地下降了软件支付的难度,使编程就好像搭积木一样不难,是前日电脑编程的一股势不可挡的前卫。
  面向对象编程(Object Oriented
Programming,OOP,面向对象程序设计)是一种总结机编程架构。OOP
的一条为主条件是电脑程序是由单个可以起到子程序功用的单元或对象组合而成。OOP
达到了软件工程的多少个重大目的:重用性、灵活性和扩大性。为了促成全体运算,每个对象都可以接收音信、处理数据和向其余对象发送音信。OOP
紧要有以下的概念和零部件:
  组件 - 数据和效用同步在运作着的微机程序中形成的单元,组件在 OOP
总结机程序中是模块和结构化的功底。
  抽象性 -
程序有力量忽略正在处理中新闻的某些方面,即对新闻主要方面关怀的力量。
  封装 -
也称为消息打包:确保组件不会以不足预料的方法改变其他组件的内部景色;唯有在那一个提供了其中意况改变方法的机件中,才可以访问其内部景色。每类组件都提供了一个与别的组件联系的接口,并规定了其余组件举办调用的法门。
  多态性 -
组件的引用和类集会涉及到任何众多不一类型的机件,而且引用组件所暴发的结果得根据实际调用的系列。
  继承性 -
允许在现存的组件基础上创建子类组件,那统一并加强了多态性和封装性。典型地以来就是用类来对组件举行分组,而且还足以定义新类为现存的类的恢弘,那样就可以将类社团成树形或网状结构,这反映了动作的通用性。
  由于抽象性、封装性、重用性以及方便使用等地方的来由,以组件为根基的编程在脚本语言中一度变得越发流行。Python
和 Ruby 是近期才面世的言语,在付出时完全使用了 OOP 的切磋,而风靡的 Perl
脚本语言从版本5开首也渐渐地出席了新的面向对象的效劳组件。用组件代替“现实”上的实业成为
JavaScript(ECMAScript)
得以流行的原委,有论证评释对组件举行适当的结合就能够在英特网上代表 HTML
和 XML 的文档对象模型(DOM)。

可以见到,前十名中有九个是国内开发者开发的开源项目,那么些比例比照于二零一八年已大大进步。

[编纂本段]

别的,榜单中的项目已通过筛选,均符合国际 OSI 批准的开源协议。

一、oop的着力思想

值得注意的是,二〇一九年关于人工智能的品类明确扩展了不可枚举,无论是
PHP、JavaScript
仍然其余语言都出生了有关的人工智能开源项目。不过如故地,Web
框架类项目照旧是名次榜的主力军。

  OOP的累累本来思想都来之于Simula语言,并在Smalltalk语言的无往不利和准星进度中得到更加多的壮大和对以前的构思的再次诠释。可以说OO思想和OOPL大概是一起进步相互促进的。与函数式程序设计(functional-programming)和逻辑式程序设计(logic-programming)所代表的好像于机器的其实总计模型所差别的是,OOP大概平素不引入精确的数学描叙,而是倾向于建立一个对象模型,它亦可近似的反映应用领域内的实业之间的关系,其本质是更就如于一种人类认知事物所使用的法学观的乘除模型。由此,导致了一个当然的话题,那就是OOP到底是怎么?[D&T
1988][B.S 1991]
.。在OOP中,对象作为计量主体,拥有和谐的名号,状态以及接受外界音讯的接口。在目的模型中,爆发新对象,旧目的销毁,发送新闻,响应音讯就组成OOP计算模型的常有。
  对象的爆发有二种为主格局。一种是以原型(prototype)对象为根基发生新的对象。一种是以类(class)为底蕴暴发新目的。原型的定义已经在吟味心绪学中被用来表达概念学习的一日千里特性,原型模型本身就是谋划通过提供一个有代表性的目的为根基来发出各个新的靶子,并经过继续爆发更符合实际应用的对象。而原型-委托也是OOP中的对象抽象,代码共享机制中的一种。一个类提供了一个要么几个对象的通用性描叙。从形式化的观点看,类与品种有关,因此一个类相当于是从该类中发出的实例的联谊。而那般的视角也会带动一些冲突,比较突出的就是在继续连串下,子集(子类)对象和父集(父类)对象时期的行事相融性可能很难达到,那也就是OOP中常被引述的—子类型(subtype)不对等子类(subclass)[Budd
2002]。而在一种具有皆对象的人生观背景下,在类模型基础上还诞生出了一种具有元类(metaclass)的新目的模型。即类本身也是一种其余类的目的。以上三种根本不一致的见识各自定义了三种基于类(class-based),基于原型(prototype-based)和按照元类(metaclass-based)的目的模型。而那二种对象模型也就造成了许多两样的主次设计语言(即便大家临时把静态与动态的距离放在一边)。是的,大家日常接触的C++,Java都是运用基于类的对象模型,但除了还有不少我们所没有接触的OOPL选拔了一心不雷同的对象模型,他们是在用此外一种看法诠释OOP的内涵。
  什么是oop的中央思维吗?把组件的贯彻和接口分开,并且让组件具有多态性。不过,两者照旧有根本的不等。oop强调在先后构造中言语元素的语法。你必须得继续,使用类,使用对象,对象传递新闻。gp不关怀你继续或是不一连,它的开首是分析产品的分类,有些怎么着品种,他们的行事怎样。就是说,两件东西相等意味着什么?怎么样正确地定义相等操作?不单单是相等操作那么粗略,你往深处分析就会发觉“相等”那一个貌似观念意味着四个目的部分,或者至少基本部分是相等的,据此我们就可以有一个通用的极度操作。再说对象的花色。即使存在一个逐项种类和一组对于顺序体系的操作。那么这一个操作的语义是如何?从复杂度权衡的角度看,大家应该向用户提供什么的一一种类?该种种类上存在这个操作?那种排序是我们须求的?只有对那些组件的概念型分类搞领悟了,大家才能提到完毕的问题:使用模板、继承仍旧宏?使用什么语言和技巧?gp的着力理念是把抽象的软件组件和它们的行事用专业的分类学分类,出发点就是要建造真实的、高效的和不在于语言的算法和数据结构。当然最终的载体依然言语,没有言语没办法编程。stl使用c++,你也可以用ada来贯彻,用别样的言语来贯彻也行,结果会迥然差别,但基本的事物是一样的。各处都要用到二分查找和排序,而那就是人人正在做的。对于容器的语义,分裂的言语会带动一线的不比。可是基本的分别很了然是gp所依存的语义,以及语义分解。例如,我们决定须要一个零部件swap,然后提出这几个组件在区其余言语中要是工作。彰重视倘诺语义以及语义分类。而oop所强调的(我觉着是过于强调的)是明亮的定义类之间的层次关系。oop告诉了您哪些树立层次关系,却没有报告你那几个关乎的精神。
  (那段不太好明白,有一对术语或者要过一段时间才会有适用的普通话翻译——译者)
  面向对象的编程方法OOP是九十年代才流行的一种软件编程方法。它强调对象的“抽象”、“封装”、“继承”、“多态”。我们讲程序设计是由“数据结构”+“算法”组成的。从微观的角度讲,OOP下的指标是以编程为基本的,是面向程序的靶子。大家今日要讲的OOD是面向音信的对象,是以用户新闻为主导的。

探望最受 oscer 关心的 TOP 100 开源项目都有啥 ——

[编排本段]

前 50 预览

二、OOP技术的历史

排名

  面向对象技术最初是从面向对象的次第设计初始的,它的面世以60年份simula语言为标志。80年份中中期,面向对象程序设计逐步成熟,被总结机界领悟和接受,人们又初阶一发考虑面向对象的开支问题。那就是九十年代以Microsoft
Visual种类OOP软件的盛行的背景。
  传统的结构化分析与统筹开发方法是一个线性进程,由此,传统的结构化分析与安插方法必要切实系统的业务管理规范,处理多少完备,用户能到家全部地其工作要求。
  传统的软件结构和陈设性方式难以适应软件生产自动化的须要,因为它以进度为宗旨开展职能结合,软件的扩大和复用能力很差。
  对象是对实际世界实体的模仿,因面能更便于地明白须求,即便用户和分析者之间有着分歧的启蒙背景和做事特色,也可很好地联系。
  不一样面向对象的支付和历史观进程的支出的要素有:对象识别和架空、封装、多态性和延续。
  对象(Object)是一个切实实体的架空,由具体实体的历程或信息牲来定义。一个对象可被认为是一个把数据(属性)和顺序(方法)封装在联合的实体,这些程序暴发该目的的动作或对它承受到的外侧信号的反响。那几个目的操作有时称为方法。对象是个动态的概念,其中的性质反映了对象当前的情形。
  类(Class)用来叙述具有相同的性质和措施的目的的聚集。它定义了该集合中各样对象所共有的特性和格局。对象是类的实例。
  由上分析不难看出,固然OOP技术更中意用户的靶子模型,但其目标都是以编程为目标的,而不是以用户的新闻为宗旨的,总想把用户的消息纳入到某个用户不感兴趣的“程序对象”中。

软件名

[编制本段]

排名

三、OOP 的得失

软件名

  · OOP
的独到之处:使众人的编程与事实上的社会风气越发切近,所有的目的被赋予属性和艺术,结果编程就进一步富有人性化。
  · OOP 的也有弱点,就 C++ 而言,由于面向更高的逻辑抽象层,使得 C++
在促成的时候,不得不做出性能方面的自我牺牲,有时候甚至是致命的 (
所有目的的性质都通过内置多重指针的直接引用是其性能损失的要紧缘由之一;然则,笔者的局限性在于未使用过
VC++ 外的面向对象语言,所以不是可怜决然,哈哈,有人笑出来了… )。
  在统计机速度飞快发展的前些天,你也许会说,一丁点的特性牺牲没什么大不断。是的,从面向对象的角度,使的编程的布局更为明显完整,数据更是独立和易于管理,性能的捐躯可以带来这么多的补益,没有理由不做稳赚的饭碗呢?
  不过,在少数对速度必要极高特殊场面,例如你做的是电信的置换系统,每分钟有超越百万的人还要拓展电话交流,若是,每一个数据调换进程都是一个对象,那么总的性能损失将是天文数字!!
  或者这些事例不够贴身,再举个例证吗。假诺你受聘于一个玩耍设计集团,主管希望做出来的一日游可以越多的全职到越多的计算机使用者,游戏每分钟的运行的帧可以愈来愈多,子弹和爆炸物可以越多、更华丽。那么,你会发觉拔取C++
会使你的先后变得愚钝,不可能满意你的要求,除非你非得要你的玩乐运行于奔腾四的机器上
( 假若不是,而你又坚称用 C++ 的目的编程,那么请减弱主演的枪的威力吧
)。
  若是您是冥顽不宁的人,你说不相信 OOP
会有性能上的损失,那么,我记得曾观察在 CSDN 上有关 VB 和 VC
执行功效的琢磨的篇章,讲述的就是应用了 MFC 未来,执行效用甚至低于 VB
开发出来的事物。请各位验证一下:借使应用的是彻头彻尾的 C
语言语法的话,那么势必会比在 VB 编出来的事物要快很多 ( GetTickCount
函数可以查看 MSDN ,要是想进一步规范一些,可以运用 QueryPerformanceCounter
函数 )。

1

[编辑本段]

t-io

四、OOP的未来

26

  (撰文/Bjarne Stroustrup & Tim Lindholm 编译/孟岩)
  在将来三年,程序员编写代码的艺术会生出那多少个变化?
  Stroustrup:
在C++中,如若没有适当的库在骨子里帮忙,完结其他重大的做事都可能是很复杂的。而只要有了适度的库,任何东西都可以被大家操控于股掌之间。因而,构造和动用程序库的基本点漫山遍野。那也暗示大家,泛型程序设计(generic
programming)将会愈加多地被运用。只有通过GP,大家才能确保库的通用性和高功效。我还预期在分布式统计和“组件(components)”应用领域会现出可喜的加强。就半数以上程序员而言,通过使用方便适用的程序库,那几个支出工作会变得不难明了。
  现在有一个趋势,编译器厂商试图把其特有的“对象模型”和图形界面(GUI)细节推销给用户。比如微软的COM和Inprise的类属性“properties”。对于用户来说,那既不要求,也不情愿。我所愿意观察的程序库,应该是用规范C++打造,界面灵活,值得信任的程序库。日常,那个界面应该是平台无关的。C++的表明能力极强,即便不使用多量的宏,也理应可以达到这一须要。即使有些地点无法百分之百的听从这一规范,也应有将对此平台和厂家的依靠限制起来。这几个目的的到位景况,可以反映软件工具产业对于应用程序开发行业的关心程度。我疑惑近期对此这几个单身的、跨平台厂商来说,并不存在对应的商海。如若可以建立那样的市场,也许可以促进厂商们为客户做出“真正有效的”产品。
  Lindholm:
对于编写代码的开发者来说,首要的驱动能力仍将是三个:网络和分布式——也就是统筹和付出非单机软件的需求。大多数的应用程序将不会是一身地运行在单纯装置上,而是使用了看似EJB和JSP之类技术的,平台无关的分布式程序。程序员们将只可以面对分布式总括的居多险阻。那将对众多程序员所依靠的设计情势、技术和直觉构成严苛的挑衅。那是选拔编程语言此前必须认识到的,即使分歧语言的筹划特性可能有助于或者阻止这一转会。
  在网络采取的滋长中,一个很关键的部分是小型移动装备和差异平日Internet设备的爆炸性拉长。那几个设施各有各的操作系统,或者只在某种特定的配备领域内有一起的操作系统。大家现在仍是可以一一列举出那个装备——家庭接入设备、蜂窝电话、电子报纸、PDA、自动网络设施等等。不过这一个设备领域的数量和深深程度将会快捷变得难以估量。大家都精晓那几个市场大得惊心动魄,PC的兴起与之比较但是小菜一碟。由此在这个装备的应用程序市场上,竞争将会一定残忍。获胜的紧要手段之一,就是尽早进入市场。开发人士需求好好的工具,飞快高效地创作和调试他们的软件。平台无关性也是常胜秘诀之一,它使得程序员可以开发出协理多种设备平台的软件。
  我意料的另一个生成是,我们对此代码(Java)和数量(XML)协同型应用程序的付效劳量将会没完没了增高。那种共同是支付强大应用程序的中坚目的之一。大家从XML的飞快盛行和ebXML规范的展开中,已经看到了那一个主旋律。ebXML是一个针对电子商务和国际贸易的,基于XML的开放式基础构架,由联合国贸易推动和电子商务中央(UN/CEFACT)与结构性音讯规范推动集体(OASIS)共同开发。
  我们可不可以期望现身一个确实的面向组件(component-oriented)的语言?它的创建者会是何人啊?
  Stroustrup:
我思疑,这么些世界中之所以缺乏成果,正是因为人们——重假诺这一个非程序员们——对“组件”那一个意义含糊的单词寄予了太多的希望。这几个人选希望,将来肯定有那么一天,组件会以某种格局把程序员赶出历史舞台。将来那几个尽职的“设计员”只需拔取优先调整好的机件,把鼠标拖一拖放一放,就把系统组合出来。对于软件工具厂商来说,那种想法还有另一层含义,他们以为,到时候唯有他俩才保留有必要的技术,有能力编写那样的零件。
  那种想法有一个最要旨的荒唐:那种组件很难取得广大欢迎。一个单独的零部件或框架(framework),倘使可以知足一个应用程序或者一个家底园地对所提议的绝大多数需求的话,对于其成立者来说就是占便宜的制品,而且技术上也不是很艰辛。可是该产业内的多少个竞争者很快就会发觉,如若所有人都应用这么些组件,那么相互之间的成品就会变得天下安庆,没什么差异,他们将陷入简单的公务员,首要盈利都将钻进这么些组件/框架供应商的钱包里!
  小“组件”很有用,然而爆发持续预期的杠杆成效。中型的、更通用的零部件分外有用,可是构造时索要独特的弹性。
  在C++中,大家汇总应用不相同共享情势的类体系(class
hierarchies),以及选用templates精心打造的接口,在那地点获取了必然的进行。我期望在这么些领域得到一些诙谐和实惠的成果,但是我以为那种成果很可能是一种新的C++程序设计风格,而不是一种新的言语。
  Lindholm:
编写面向组件的应用程序,好像越多的是个投资、设计和程序员管理方面的题材,而不是一个编程语言问题。当然某些语言在那地点颇具自发优势,然则假设说有哪些魔术般的新语言可以大大简化组件的编写难度,那纯粹是一种误导。
  微软早已将所有赌注押在C#上,其他语言何去何从?
  Stroustrup:
C++在下一个十年里依旧将是一种主流语言。面对新的挑衅,它会起来应对。一个创建了那么多优良系统的言语,绝不会“坐视一败涂地春去也”。
  我期望微软认识到,它在C++(我指的是ISO标准C++)上具有光辉的便宜,C++是它与IT世界内其旁人之间的一座大桥,是构造大型系统和嵌入式系统的有效工具,也是满意高性能须求的利器。其他语言,如同更看得起那个安康八稳的商用程序。
  竞争
  C#会不会获得普遍的承受,并且挤掉其他的言语?
  Lindholm:
平时,一种语言既不会从其他语言那里获利,也不会被挤掉。那多少个坚韧不拔的Fortran程序员不还用着Fortran吗?对于私有来说,语言的选项自然因时而异,但就全体而言,语言的档次只会递增,也就是说,它们中间的关联是“有您有自我”而不是“有你没自己”。
  对于一个新语言的接受程度,往往取决于其能力所及。Java技术被很快接受,原因是多地点的,Internet和World
Wide
Web接口,在任何技术面前的挫折感,对于Java技术升高势头的全面影响能力,都是原因。另一个至关紧要的原由是Java独立于厂商,那象征在分外产品面前可以从容接纳。
  C#是还是不是会获取广大接受?视情形而定。总的来说,那么些对于平台无关性和厂商非亲非故性漠不关切的程序员,可能会喜欢C#。那多少个跟微软平台捆在联名家当然可能想要寻找VB
和VC的一个不错的替代品。不过对于程序跨平台实施力量尤其关爱的程序员,将会遵守Java之类的语言。那种力量对于多重访问设备(multiple
access
devices)和分布式计算模型至关首要,而Java语言提供了一个正经的、独立于厂商运行时环境。
  Stroustrup:C#的盛行水平大概完全在于微软投入的基金有些。看上去C#的起来肯定会捐躯掉其余一些言语的便宜,不过其实未必这么。Java的蓬勃发展并不曾给C++带来衰败。C++的运用依旧在稳定增进(当然,已经不是爆炸性的增强了)。也许其余的言语也还是可以收获自己的方寸之地。
  不过,我骨子里看不出有怎么着必要再发惠氏(Nutrilon)种新的专有语言。更加是微软,既生VB,何需C#?

DWSurvey

[编辑本段]

2

五、分裂OOP语言各有何优势和逆风局?

Guns

  Stroustrup:
C++的长处自始至终都是这么几条:灵活、高效,而且不用专有语言。现在ISO
C++标准的产出,巩固了最终一点。
  我觉得C++的迅猛是它最基本的独到之处。那种高速源于于其故意的数目和总括模型,较之Java和C#,那种模型尤其靠近机器。但是,哪些程序才真的地渴望这么高的频率?那是个问题。我觉着那类程序卓殊多。人们对此电脑的冀望,永远都超过硬件科技(science and technology)的提升进度。很显明,Java和C#的设计者的想法分化,他们以为,在重重地点功用问题开玩笑。
  C++首要的老毛病,归罪于倒霉的教诲(是那么些始终认为C++是个纯粹面向对象语言的人,和那个把C++当成C语言变体的人造成了那种意况),归罪于不一致平台上的不同性,归罪于不完全、不专业的编译器完成,归罪于平台毫不相关的系统级程序库的短缺。
  那个问题归于一点,就是缺少一个金榜题名的厂商,能够满足所有C++社区的须求,勇于投入多量的血本支出须求的程序库。
  Lindholm:
Java技术的功成名就,是因为它在方便的年华,出现在适度的地方,而且合情合理地挑选了语言和计量平台的襄助对象。Java并不是在具备场面都优于别的OOP语言,但是对于出现的新题材可以化解得很了不起。它面向Internet总括环境,防止了C++中晦涩的构造,成功翻越了继承机制的可恶问题。垃圾收集体制明确地增强了生产率,下降了复杂度。在网络背景下使用虚拟机,以及关于安全性和动态加载的一层层设计接纳,迎合了正在出现的需求和心愿。那么些特征使Java不仅变成现有程序员的新武器,而且也为新的程序员创造了蓬勃的市场空间。
  其余,Java拥有一个标准的、二进制形式的类库,提供了必备的(当然绝不足够的)平台与厂商无关性。平台与厂商毫无干系性要求一项技艺必须有观看者清的正规化,舍弃那几个阻碍二进制标准执行的特性。C++固然有一个ISO标准,但实质上仍然对于同样系统与同等指令连串的各样平台,也提不出一个实用的、各版本包容的二进制标准。
  历史上重重采取虚拟机的言语饱受非议,是因为其不够完美的性质问题,而那要归过于缓慢的解释器和不佳的排泄物收集器。Java的早期完结也因为同样的题目受到严峻的批评。可是自这时起,业界向新的虚拟机完结技能投入了多量资本,取得了肯定的法力,如今在大部分场子,Java的习性跟正规的静态编译语言相比较毫不逊色。那使得程序员在取得平台和厂商无关性的还要,也不要付出性能上的代价。
  C++并从未强制行使面向对象方法,因而为了编制突出的面向对象代码,就需求程序员们有良好强的纪律性。很多商家就是因为那么些缘故屏弃了C++。作为言语,Java的一个鼓鼓的的助益就是挟持面向对象方法,不容许非面向对象的构造。
  C#在于C++和Java之间,脚踏四只船,由此既不够安全,又失之复杂。
  对于集团来说,拔取新的语言要交给巨大代价。雇不到好的程序员(没人熟谙那种新语言),培训用度高得惊人,学习进度中生产率和产质料料下跌,多年的经验随风消逝,等等。一种语言如何克制那些障碍?
  Lindholm:
说得很对,采取新东西确实平常开支巨大。不过问题是:这么些新东西是不是可以节约越多的开支,或者提供巨大的立异,获取合理的报恩?很多店铺发现,转向Java技术不论在开发的后端(尽快进入市场、飞速迭代开发、维护简单性)仍旧前者(跨平台发布,适用范围从低端设备到高端服务器的技术,安全性),都能节约大笔的成本。
  对于新东西的收到,日常是在苦水的压力之下。很大程度上,那多亏Java所经历的。Java的爆发,是对当下广大连串的欠缺所做出的反应。Java技术通过上边的手腕减轻了开发者的苦处:1)
顾及了网络总计方面的须要,是应运而生。2)
在技术力量的挑三拣四上,保持杰出的水平,顾及了群众的思维。3)
选取适度强制性策略推行设计决定。别的,Java技术已经成为高校教学中的主流,那无异保障了Java开发者队伍的频频扩大。
  可是最重点的少数是,再没有另一种程序设计技术,可以像Java那样允许程序员开发基于Internet的不等平台之上的应用程序。Java平台在那方面的第一名表现,已经被多量的实例证实。Java已经变成Internet上的缺省应用程序平台,Java
APIs也变为Internet应用程序开发的天赋平台。
  Stroustrup:
微软和Sun把大笔的资财扔在Java、VB和C#中,并不是因为她良心发现,也不是因为她俩实在相信这几个语言可以带给程序员更美好的生活,而是利益使然。
  有一个说法,认为软件工具厂商要是可以把应用程序开发者的正规技能职务担当起来,将获得巨大的经济利益。我对其背后的经济分析颇为困惑,我觉得那很难成为现实,更加是当应用程序开发者使用开放的、标准化的工具时,他们可以有多种挑选,从而使地点的想法更加无法。
  多年以前,C++就曾经颇具泛型能力(也就是templates和STL),有运算符重载,有枚举类型?大家会不会在Java的前景版本中看出这一个特征?Java是还是不是理所应当纳入这个特点呢?
  Strousturp:从1988-89年起,C++就曾经有了templates。可是大家花了成百上千时日来打听怎么最好地行使那个工具,早期各厂家对于template的协理在质量上也有很大的歧异。有些编译器厂商动作缓慢,至少有一个主要的编译器厂商(好像是指微软,微软在Visual
C++4.0才先导襄助template,在此此前一直声称template是过分复杂而又没什么用的技艺,时至明天,Visual
C++对于template的支持在主流编译器中都属于最差的一档——译者注)暗中砥砺声名狼藉的反template宣传,直到他们协调毕竟学会了这项技能甘休。直到前几天,对于template的匡助在灵魂上仍旧有待改良。
  你上边提到的这些特性,我觉得Java(还有C#)应该,也势必会逐步引入。那么些对于程序员来说最得力的语言特征和定义,将会日渐集中,成为各家主流语言的早晚之选。也就是说,我觉得类似析构函数和模板特殊化之类的机制,远远比枚举等体制主要得多。
  Lindholm:Java技术成功的缘由之一,就是很了解怎么不应当做。大家得多问多少个为啥:那项特色是或不是不可或缺?扩充它会带来什么样用度?运算符重载是C++中一项极其强大的特色,不过它也大大扩展了C++语言的复杂度,很几人都不便抵挡。Java在种种可能的权衡之中,做出了精明的挑选,找到了力量与须求之间的不偏不党平衡点。
  当然,Java也会向上,而且最紧要的是,现在是开发者们在推进发展。Java扩展泛型能力那件事,很好地显示了Java是何等通过总体开发者社群的涉企,在衡量中决定正确的平衡点。关于扩展泛型类型(generic
types)的“Java规格申请”(Java Specification Request,
JSR)已经跻身JCP(Java Community
Process)程序,而且早已付出了很长一段时间(参见
http://java.sun.com/aboutJava/communityprocess/之JSR-014)。现在,在JCP中,有超过80个JSRs正在讨论中,这充分体现了整个体系对开发者的积极反馈和高度合作,这正是驱动Java平台不断进化的动力。

27

[编辑本段]

Aurora IMUI

六、发展 vs. 革新

3

  (Evolution vs. Revolution)
  C++是一种发展型的语言,Java和C#就像是更像是立异型语言(它们是早先设计的)?哪天,立异型的语言才是必备的呢?
  Lindholm:
Java技术并非凭空出世,反而更像是发展型的。Java所有的特色,在Java平台生产以前,都至少曾经存在于另一种环境之中。Java的孝敬在于,在不少的性状和权衡中,做出了合理的挑选,使得出品既实用,又优雅。Java技术对于程序员的态势是:抚养,但不溺爱。
  Stroustrup:从技术上讲,我并不认为Java和C#是怎么“从头设计的”革新型语言。若是Java是从技术规格出发,从头设计,大约就不会效仿C/C++那种丑陋和病态的语法了(不必大惊小怪,Stroustrup在重重场面表示过,C++选用C的语法方式,实在是迫于包容性。他自个儿更偏爱Simula的语法——译者)。
  我认为,只有当程序员们面对的题目爆发了根本的生成的时候,或者当大家发现了全新的、极其优越的顺序设计技术,又完全不可能为现存语言所支撑的时候,大家才须要全新的语言。问题是,大家兴许永远也碰不到那多少个“根本”、“全新”的景况。
  我觉着,自从OOP问世以来,可称之为“根本”的时尚程序设计技术,唯有泛型程序设计(generic
programming)和生成式程序设计(generative
programming)技术,那两项技术重如若缘于C++
templates技术的采取,也有一部分曾经被视为面向对象和函数式语言(functional
languages)的附带成分,现在都变成正规、可用和可接受的技巧了。我对于当前C++模板(template)程序设计的成果丰盛快乐。例如,像POOMA,
Blitz++和MTL等程序库,在许多地点转移了数值统计的措施。
  C#的一个“卖点”,就是它们的不难性。现在Java是还是不是快失去这些卖点了?
  Stroustrup:新语言总是宣称自己怎么怎样不难,对老语言的纷纷颇多非议。其实这种所谓的“不难性”,不难地说,就是不成熟性。语言的扑朔迷离,是在化解具体世界中颇为烦琐和特种的复杂问题的进度中渐渐增多的。一个言语只要活的日子够长,总会有好几地点逐步复杂起来,或者是语言本身,或者是程序库和工具。C++和Java鲜明都不例外,我看C#也一样。若是一种语言可以度过祥和的小时候一代,它会发觉,自己无论体积仍旧复杂性都大大增添了。
  Lindholm:Java技术的的功用在增多,须求上学的事物也在增加。不过作用的充实并不一定带来复杂性的充实。Java技术的升高,并没有使学习曲线更加陡峭,只是让它屡次三番向左边延展了。
  标准
  标准化语言和开放型语言各自的亮点和瑕疵何在?
  Lindholm:对于一个怒放、不容许专有扩大、具有权威的强制性标准语言依旧运行环境来说,不存在如何毛病。允许专有增加就象征允许厂商下套子绑架客户。越发紧要性的是,必须让任何平台,而不只是内部一部分一心标准,才能杜绝厂商们利用高层次的专有API下套子。客户须要有选拔厂商的轻易,他们既要有创制性,又需求包容性。
  Stroustrup:对于一个言语,如C/C++来说,建立规范标准(如ISO标准)最大的利益,在于可以预防某一个厂商操纵那种语言,把它正是自己的摇钱树。多个厂商的竞争给用户带来的是较低的价钱和较好的平安。
  专有语言的利益,一是流行,二是便于(但是等你被套牢了后来,意况就会起转变),三是对于商业性必要可以做出飞快的影响。
  标准化语言的特色之一是,它不可能忽视特殊用户的须要。比如自己在AT&T中所考虑的东西,其规模、可信赖性和频率须要,跟这一个日常厂商关心的东风标致软件相比较,根本不行同日而语。那多少个集团很当然只关注首要的须要。
  可是,多数大机关和身处前沿的商号,都有着特其他须要。C++的筹划是开放、灵活和疾速的,能够满意自身所能想象的其余需求。跟其余的当代语言比较,C++的家长式作风可谓少之又少,原因就在那。当然,不能称扬那或多或少的人会指责C++的“危险”。
  拥有专业和绽放标准的语言紧假设为编程工具的使用者和客户服务的,而所有专属“标准”的语言,重若是为厂商服务的。

iView

28

Mars

4

UCKeFu

29

IJPay

5

Neditor

30

QIQIIM

6

FastAdmin

31

ngx-fastdfs

7

ybg-spring-fast

32

Face Recognition

8

vue-element-admin

33

ApolloAuto

9

iNotify.js

34

DFace

10

PHP-ML

35

MinDoc

11

Lottie

36

RediSearch

12

Tale

37

ZanUI-WeApp

13

Tars

38

Timesheet.js

14

DockerFly

39

Hikyuu

15

beimi

40

Centrifugo

16

Jboot

41

Rancher

17

iView admin

42

SaltOps

18

SVNAdmin

43

EverVim

19

PearPlayer

44

Best Resume Ever

20

UReport2

45

AR.js

21

ElasticHD

46

Ant Design Pro

22

ActFramework

47

Jmockdta

23

JEHC

48

Egg.js

24

Win10-UI

49

wxBot

25

opencron

50

Apollo(阿波罗)

……

1. t-io:百万级即时通讯框架

t-io 是一个网络框架,从这点来说是有点像 netty 的,但 t-io
的性状在于,它不仅是一个网络框架, 因为它为广大和网络有关的作业(如
IM、音讯推送、RPC、监控)提供了就像于现成的化解方案,即开箱即用的
API。t-io 的口号是让网络编程更简便易行微风趣。

图片 1

品类主页:http://t-io.org/
授权协议:Apache-2.0

2. Guns:基于 SpringBoot 的后台管理连串

Guns 基于 SpringBoot,致力于做更简短的后台管理连串,完美结合 SpringMVC +
Shiro + MyBatis-Plus + Beetl。Guns
项目代码简洁,注释丰富,上手不难。同时,Guns
包涵众多基础模块(用户管理、角色管理、部门管理、字典管理等 10
个模块),可以直接当做一个后台管理系列的脚手架。

花色主页:https://gitee.com/naan1993/guns
授权协议:Apache-2.0

3. iView:一套基于 Vue.js 的高质地 UI 组件库

iView 是一套基于 Vue.js 的开源 UI 组件库,首要服务于 PC
界面的中后台产品。

图片 2

品类主页:https://www.iviewui.com/
授权协议:MIT

4. UCKeFu:优客服全渠道客服系统

优客服是一个全渠道融合的客服系统,融合多个客服渠道,辅助各样行业各个框框的商店创造客服系统。通过将邮件、短信、电话语音、WebIM
在线客服、微信、微博、H5 页面、APP
接口等两个渠道来源于的客户服务请求与对话汇集在一个管理平台,用联合的措施来响应和支撑客户服务。

图片 3

类型主页:https://gitee.com/ukewo/ukefu
授权协议:Apache-2.0

5. Neditor:基于 Ueditor 的更现代化的富文本编辑器

Neditor 是根据 Ueditor
的一款现代化界面富文本编辑器,不论从效益依然从任何各地点来讲,Ueditor
都是一款无以替代的编辑器产品。只是已经不吻合现代化样式的必要,于是修改了它的体制,完成了如此的效率:

图片 4

品种主页:https://gitee.com/notadd/neditor
授权协议:MIT

6. 法斯特(Fast)Admin:基于 ThinkPHP 5 和 Bootstrap 的极速后台开发框架

法斯特Admin 是一款基于 ThinkPHP 5 + Bootstrap 的极速后台开发框架。

图片 5

连串主页:http://www.fastadmin.net/
授权协议:Apache-2.0

7. ybg-spring-fast:基于 SpringBoot 的模块化开发连串

以 SpringBoot
为主导,模块化开发序列,用户可以无限制删减除权限框架外随便的系统模块。复用、组装性强。首要运用技术:Spring
Security+Ehcache+Quartz+Swagger2+MySQL 5.6+Spring JDBC+Druid+Spring
Social+Spring Session+layerui+Vue.js等。

花色主页:https://gitee.com/YYDeament/88ybg
授权协议:GPLv3

8. vue-element-admin:基于 Vue.js 和 Element 的后台集成解决方案

vue-element-admin
是一个后台集成解决方案,它依照 Vue.js 和 Element。它利用了风尚的前端技术栈,内置了
i18
国际化解决方案、动态路由、权限验证等居多意义特色。本项目并不是一个脚手架,更倾向于是一个集成解决方案。

图片 6

项目主页:https://github.com/PanJiaChen/vue-element-admin
授权协议:MIT

9. iNotify.js:JavaScript 达成的浏览器系统通报

JavaScript 达成浏览器的 title
闪烁、滚动、声音提醒、chrome、Firefox、Safari 等系统通报。

图片 7

花色主页:https://git.io/iNotify
授权协议:MIT

10. PHP-ML:PHP 的机械学习库

PHP-ML 是一个行使 PHP
编写的机械学习库。那一个机器学习库固然没有专门伟大上的算法,但具备最中央的机械学习、分类等算法。它同时富含算法,交叉验证,神经网络,预处理,特征提取等。

图片 8

品类主页:https://github.com/php-ai/php-ml
授权协议:MIT

11. Lottie:利用 JSON 文件神速落成动画效果的库

Lottie 是 Airbnb 开发的一款可以为原生应用添加动画作用的开源工具。Lottie
如今扶助 Android, iOS, React Native 和 Web,可以实时渲染 After
Effects
 动画特效。

图片 9

类型主页:http://airbnb.io/lottie/
授权协议:Apache-2.0

12. Tale:一款简单雅观的 Java 博客系统

Tale 是一款不难美观的 Java
博客系统,让每一个有故事的人更好的表述想法!Tale 使用了轻量级 mvc 框架
Blade 开发,默许主旨使用了理想的 pinghsu。

图片 10

品种主页:https://gitee.com/biezhi/tale
授权协议:MIT

13. Tars:高性能 RPC 开发框架

Tars 那么些名字取自于电影”星际穿越”中的机器人,它是依照名字服务使用 Tars
协议的高性能 RPC
开发框架,配套完整的营业管理平台,并透过伸缩调度,完结运维半托管服务。近来支撑
Linux 操作系统,匡助 Java、C++ 以及 Node.js 语言。

花色主页:https://github.com/Tencent/Tars
授权协议:BSD

14. DockerFly:Docker 的 Web 管理工具

DockerFly 是根据 Docker 1.12+(Docker API 1.24+) 开发的 Docker
管理工具,提供了最主题的依照 Docker 的管理成效,目的是能够有利于周边
Docker 初学者以及 Docker 管理员能够高效的开展 Docker 容器的管住和有限帮助。

图片 11

种类主页:https://gitee.com/helyho/DockerFly
授权协议:Apache-2.0

15. beimi:开源棋牌游戏

贝密休闲游是一密密麻麻棋牌游戏的名称,其中带有麻将、斗地主、滨州扑克。拔取当下最风靡的房卡方式。

图片 12

品种主页:https://gitee.com/beimigame/beimi
授权协议:Apache-2.0

16. Jboot:基于 jfinal 和 undertow 的微服务框架

Jboot 是一个基于 jfinal 和 undertow 开发的微服务框架。提供了
AOP、RPC、分布式缓存、限流、降级、熔断、统一配备基本、swagger api
自动生成、Opentracing 数据追踪、metrics
数据监控、分布式session、代码生成器、shiro安全控制等职能,专为大型分布式项目和微服务而生。

系列主页:https://gitee.com/fuhai/jboot
授权协议:Apache-2.0

17. iView Admin:基于 Vue.js 的后台集成解决方案

iView admin 是依照 Vue.js,搭配使用 iView UI
组件库形成的一套后台集成解决方案。iView admin 坚守 iView
设计和付出约定,风格统一,设计考究。

图片 13

花色主页:https://gitee.com/icarusion/iview-admin
授权协议:MIT

18. SVNAdmin:SVN 资源权限管理连串

SVNAdmin 基于 svnkit,是一个平安,流畅,极简的管理工具。扶助 SVN
仓库创制和管制、SVN 用户、用户组创立和管制、SVN
资源权限授权、用户权限查看以及密码更改等作用。SVN 仓库帮助多库形式。

品类主页:https://gitee.com/hpboys/svnadmin
授权协议:Apache-2.0

19. PearPlayer.js:混合 P2P-CDN 的流媒体播放器

PearPlayer(梨享播放器)是一心用 JavaScript 写的开源 HTML5
流媒体播放框架,完成了融合 HTTP(蕴涵 HTTPS、HTTP2)、WebRTC
的多协议、多源、低顺延、高带宽利用率的无插件 Web 端流媒体加快能力。

图片 14

品类主页:https://gitee.com/PearInc/PearPlayer.js
授权协议:MIT

20. UReport:基于 Spring 的纯 Java 报表引擎

UReport2 是一款高性能的架构在 Spring 之上的纯 Java
报表引擎,通过迭代单元格可以完结自由复杂的中国式报表。

花色主页:https://gitee.com/youseries/ureport
授权协议:Apache-2.0

21. ElasticHD:ElasticSearch 的可视化应用

ElasticHD 是一款利用 Go 语言编写的 ElasticSearch 的可视化应用。不着重 ES
的插件安装,更便利;导航栏间接填写对应的 ES IP 和端口就足以操作 ES 了。

项目主页:https://gitee.com/farmerx/ElasticHD
授权协议:MIT

22. ActFramework:Java MVC 全栈框架

ActFramework 是一种简单易用,具有强大表达力的 Java MVC 全栈框架。

图片 15

品种主页:http://actframework.org/
授权协议:Apache-2.0

23. jEhc:JEHC 开源平台

JEHC
开源平台,选择技术为:Spring,SpringMVC,Mybatis,Activiti5(Activiti
可视化设计器基于 IE,火狐,谷歌(Google),360
等浏览器),Solr4.10,MySQL,Redis,Ehcache,服务器监控模块,tk压缩,Extjs
6.2 ,Bootstrap,Junit单元测试,Logback,同时融入了
Hessian,数据库读写分离,MQ 新闻中间件等技巧。

品类主页:https://gitee.com/jehc/jehc
授权协议:GPL

24. Win10-UI:Win10 风格的前端响应式 UI 框架

Win10-UI 是一款 Win10 风格的后台 UI 框架。它应用了增进的 Win10
桌面元素,包罗桌面图标、窗口化子页面管理、开始菜单、动态小磁贴等零件,兼容主流现代浏览器及移动端的显示器尺寸,适合急速支付后台管理种类的前端界面。

图片 16

品种主页:https://github.com/yuri2peter/win10-ui/
授权协议:SATA

25. opencron:定时职分调度系统

一个作用完善、真正通用的 Linux
定时职务调度定系统,满意多种气象下种种复杂的定时职分调度,同时并入了
Linux 实时监控、WebSSH,提供一个方便管理定时职责的阳台。

项目主页:https://gitee.com/benjobs/opencron
授权协议:Apache-2.0

26. DWSurvey:开源问卷表单系统

DWSurvey 是一款方便、高效、实用的调研问卷系统,一款基于 Java Web
的开源问卷表单系统。

图片 17

系列主页:http://www.diaowen.net/
授权协议:AGPL

27. Aurora IMUI:通用 IM 聊天 UI 组件

Aurora IMUI 是一个通用的即时通信(IM) UI 库,不特定于任何 IM
SDK。已经同时接济 Android/iOS。

该 UI
库提供了音信列表、输入视图等常用组件,匡助广大的信息类型:文字、图片、语音、录像等。默认蕴涵多套界面风格,也能依照自己的须求自定义。

图片 18

项目主页:https://gitee.com/jpush/aurora-imui
授权协议:MIT

28. 马尔斯:微信跨平台跨业务的巅峰基础零部件

马尔斯 是微信官方的极限基础零部件,是一个利用 C++
编写的营业性无关、平台性无关的基本功零部件。近年来已连接微信
Android、iOS、Mac、Windows、WP 等客户端。

项目主页:https://github.com/Tencent/mars
授权协议:MIT

29. IJPay:封装了微信支付、支付宝支出常用的支出方式以及各个常用的接口

IJPay
让开发触手可及,封装了微信支付、支付宝支付、银联支付常用的支出格局以及各类常用的接口。不爱慕任何第三方
mvc
框架,仅仅作为工具使用简单快捷完毕开发模块的开销,可轻松嵌入到其余系统里。

图片 19

品类主页:https://gitee.com/javen205/IJPay
授权协议:Apache-2.0

30. QIQI-IM:在线 IM 解决方案

QIQIIM 提供简单便捷的 IM 方案,快捷创造在线 IM
方案,可用以公司内网、外网通信,客服系统等,已用 netty4 已毕了 socket,
websocket,现已构成了 layim。

连串主页:https://gitee.com/qiqiim/qiqiim-server
授权协议:Apache-2.0

31. ngx-fastdfs:分布式图片实时动态压缩

ngx-fastdfs 是 nginx + lua +fastdfs 已毕的分布式图片实时动态压缩。

品类主页:https://gitee.com/qieangel2013/ngx-fastdfs
授权协议:GPL

32. Face Recognition:Python 的人脸识别库

Face Recognition 是一个基于 Python
的人脸识别库,它还提供了一个命令行工具,让你通过命令行对自由文件夹中的图像进行人脸识别操作。

该库使用 dlib 顶尖的深度学习人脸识别技术构建,在露天脸部检测数据库基准(Labeled Faces in the 魏尔德(Wild) benchmark)上的准确率高达 99.38%。

项目主页:https://github.com/ageitgey/face_recognition
授权协议:MIT

33. 阿波罗(Apollo)Auto:开源自动驾驶平台

阿波罗(Apollo)(阿波罗(Apollo))是一个盛开的、完整的、安全的平台,将帮扶汽车行业及活动驾驶领域的合作伙伴结合车辆和硬件系统,神速搭建一套属于自己的机动驾驶系统。

阿波罗(Apollo) 是百度第一打造的 AI 开放平台之一,安顿重点含有 4
个技巧模块:定位/感知模块、车辆设计与营业(AI+大数据,精准控制车子,适合不一致路况)、软件运营框架(协助速龙、英伟达等多种芯片)。

连串主页:https://github.com/ApolloAuto/apollo
授权协议:Apache-2.0

34. DFace:开源的深度学习人脸检测和人脸识别系统

据悉多职责卷积网络(MTCNN)和 Center-Loss
的多少人实时人脸检测和人脸识别系统,使用 Pytorch 已毕。

图片 20

品种主页:http://dface.io/
授权协议:Apache-2.0

35. MinDoc:Go 落成的接口在线文档管理序列

MinDoc 是一款针对 IT
团队支付的简要好用的文档管理连串。可以用来囤积日常接口文档、数据库字典、手册表明等文档。内置项目管理、用户管理、权限管理等职能,可以满足半数以上中小团队的文档管理须要。

品类主页:https://gitee.com/longfei6671/godoc
授权协议:Apache-2.0

36. RediSearch:高性能全文检索引擎

RediSearch 是一个高性能的全文检索引擎,可看成一个 Redis Module 运行在
Redis 上,是由 RedisLabs 团队开销的。

图片 21

花色主页:http://redisearch.io/
授权协议:AGPL

37. ZanUI-WeApp:微信小程序组件库

高颜值、好用、易增加的小程序 UI 库。ZanUI-WeApp 是有赞活动 Web UI 规范
ZanUI
的小程序完成版本,结合了微信的视觉规范,为用户提供更加统一的使用感受。

图片 22

品种主页:https://github.com/youzan/zanui-weapp
授权协议:MIT

38. 提姆esheet.js:HTML5 & CSS3 时间轴达成的可视化库

提姆esheet.js 是经过 HTML5 和 CSS3 ,把数量和事件开展可视化处理的库。用
JavaScript 创造事件轴,用 CSS 美化样式,还有符合运动端的方法。

图片 23

品种主页:https://sbstjn.com/timesheet.js/
授权协议:MIT

39. Hikyuu:基于 C++/Python 的开源量化交易商量框架

Hikyuu Quant Framework 是一款基于 C++/Python
的开源量化交易探讨框架,用于策略分析及回测。其要旨情想基于当前成熟的系统化交易格局,将整体系统化交易抽象为由市场条件判断政策、系统有效规范、信号提示器、止损/止盈策略、资金管理策略、盈利目的策略、移滑价差算法七大组件,你可以分级构建这个零部件的国策资产库,在实质上切磋中对它们自由组合来观看系统的实用、稳定性以及单一种类政策的成效。

图片 24

类型主页:https://gitee.com/fasiondog/hikyuu
授权协议:MIT

40. Centrifugo:实时新闻通讯平台

Centrifugo 是一个用 Golang
已毕的按照 Websocket 或者 SockJS 的实时通讯平台。

图片 25

品种主页:https://github.com/centrifugal
授权协议:MIT

41. Rancher:Docker 容器管理序列

Rancher 是一个开源的类型,提供了在产品环境中对 Docker
容器进行总体管理的阳台。它提供的基础架构服务包罗多主机网络、全局和局地的负荷均衡、卷快照等。集成了原生
Docker 管理能力,包括:Docker Machine 和 Docker Swarm。Rancher
还提供了拉长用户体验的田间管理职能。

品种主页:http://rancher.com/
授权协议:Apache-2.0

42. SaltOps:基于 SaltStack 和 Django 开发的运维平台

SaltOps 是一个基于 SaltStack 和 Django
开发的运维平台,平台的最主要功用包蕴:CMDB、软件公布管理、工具系统、最后作为包宣布和工具系统的角色与
Jenkins、Zabbix 等系统举行整合

品种主页:https://gitee.com/wuwenhao/saltops
授权协议:GPL

43. 伊芙(Eve)rVim:一个面向所有开发者的 Vim 发行版

伊夫(Eve)rVim 是一份强大的全平台 Vim 配置集。整个发行版选择 Vim-Plug
做异步插件管理,接济插件惰性加载,加快启动速度,比较 Vundle
初次安装速度快 10 倍。

花色主页:https://gitee.com/LER0ever/EverVim
授权协议:Apache-2.0

44. Best Resume 伊芙(Eve)r:基于 Vue 和 LESS 的美妙简历生成工具

Best Resume 伊夫(Eve)r
是一个赞助你急忙变化美丽简历的工具,它按照 Vue 和 LESS,生成的简历可导出为
PDF 格式。

图片 26

花色主页:https://github.com/salomonelli/best-resume-ever
授权协议:MIT

45. AR.js:用于 Web 的高效 AR 库

AR.js 是一款应用于 Web 的很快增强现实(AR)库。

花色主页:https://github.com/jeromeetienne/AR.js
授权协议:MIT

46. Ant Design Pro:开箱即用的中台前端/设计缓解方案

Ant Design Pro
是一个集团级中后台前端/设计缓解方案,致力于在设计规范和根基零部件的基本功上,继续上扬构建,提炼出典型模板/业务组件/配套规划资源,进一步升级公司级中后台产品设计然发进度中的『用户』和『设计者』的体会。

项目主页:https://pro.ant.design/index-cn
授权协议:MIT

47. Jmockdata:随机模拟 Java 数据插件

Jmockdta 是一款完成模拟 Java
类型或对象的实例化并随机初叶化对象的多寡的工具框架,单元测试的利器。

类型主页:https://github.com/jsonzou/jmockdata
授权协议:Apache-2.0

48. Egg.js:基于 Koa 的小卖部级 Node.js 框架

Egg.js 为商家级框架和利用而生,是阿里开源的商家级 Node.js 框架。Egg.js
的插件机制有很高的可扩充性,一个插件只做一件事。Egg.js
通过框架聚合那个插件,并基于自己的政工场景定制配置,那样应用的开发费用就变得很低。

种类主页:https://eggjs.org/
授权协议:MIT

49. wxBot:Python 网页微信 API

wxBot 是用 Python 包装 Web 微信协议落到实处的微信机器人框架。

品类主页:https://github.com/liuwons/wxBot
授权协议:Apache-2.0

50. 阿波罗(阿波罗):开源分布式配置基本

阿波罗(Apollo)(阿波罗(阿波罗(Apollo)))是携程框架部门研发的分布式配置基本,可以集中化管理接纳不相同环境、不一致集群的布署,配置修改后可以实时推送到应用端,并且存有专业的权力、流程治理等特征,适用于微服务配置场景。

品种主页:https://github.com/ctripcorp/apollo
授权协议:Apache-2.0

51. Proxy-Go:Go 语言完毕的高性能代理服务器

Proxy 是 Go 语言已毕的高性能 http,https,websocket,tcp,udp,socks5
代理服务器,帮忙正向代理、内网穿透、TCP/UDP 端口转发、SSH中转。

项目主页:https://gitee.com/snail/proxy
授权协议:GPLv3

52. Anbox:在 Linux 系统中运作 Android 应用

Anbox 可让你在别的 GNU/Linux 操作系统上运行 Android 应用程序。Anbox 使用
Linux 命名空间(user, pid, uts, net, mount, ipc)在容器中运作总体的
Android 系统,并在别的按照 GNU Linux 的阳台上提供 Android 应用程序。

花色主页:https://github.com/anbox/anbox
授权协议:GPLv3

53. Beanbun:多进度可增加的网络爬虫框架

Beanbun
是一个简单易行可扩充的爬虫框架,支持分布式,匡助守护进度情势与一般形式,守护进度情势基于 Workerman,下载器基于 Guzzle。

品种主页:http://www.beanbun.org/
授权协议:MIT

54. Pencil Project:图表和 GUI 原型制作工具

Pencil Project 是一个用来制作图纸和 GUI 原型的开源工具,Pencil
使用便捷,可轻松地安装和使用在风行的桌面平德雷斯顿创制模型,援助 OS
X、Windows 以及 Linux 平台。

类型主页:http://pencil.evolus.vn/
授权协议:GPLv2

55. 费怡go:快捷简洁的 Go Web 框架

费怡(Fay)go 是一款飞快、简洁的 Go Web 框架,可用极少的代码开发出高性能的 Web
应用程序(尤其是 API 接口)。只需定义 struct Handler,费怡go
就能活动绑定、验证请求参数并生成在线API文档。

项目主页:https://gitee.com/henrylee/faygo
授权协议:Apache-2.0

56. BRPC:百度开源的 RPC 框架

BRPC 即 Baidu-RPC ,是百度开源的 RPC
框架,在百度内部被大量用到,拥有领先 60 万个实例和 500 多种劳动。

类型主页:https://github.com/brpc/brpc
授权协议:Apache-2.0

57. SQLAdvisor:美团开源的 SQL 优化工具

SQLAdvisor 是由美团点评公司上海 DBA 团队开发爱慕的 SQL
优化工具:输入SQL,输出索引优化提出。 它按照 MySQL 原生词法解析,再结合
SQL 中的 where 条件以及字段选取度、聚合条件、多表 Join
关系等最后输出最优的目录优化指出。

品种主页:https://github.com/Meituan-Dianping/SQLAdvisor
授权协议:GPLv2

58:Wekan:类似 Trello 的 KanBan 管理选取

KanBan(看板)也叫“看板管理”(来自塞尔维亚语“看板”,
カンバン)是Toyota生产方式中的紧要概念,指为了完结准时生产形式(JIT)控制现场生产流程的工具,一般常见于生产系列,比如工厂车间或传统
IT
软件开发……由此可见无论是个人待办事项列表,假日与部分对象外出的安插,或是工作协会中革命性的想法,看板都是一个无与伦比的工具,它为您提供项目当前情形的概览,让你能注意于最器重的多少个档次,使您的工作作用获得很大的提拔。

花色主页:https://wekan.github.io/
授权协议:MIT

59. Lozad.js:高性能纯 JavaScript 延迟加载器

Lozad.js 是一款基于 IntersectionObserver API
的高性能、轻量级(~0.5kb)和可安插的延迟加载器,纯
JavaScript,无依靠,可用于延迟加载图片、iframe 、广告、视频和任何因素。

图片 27

连串主页:https://github.com/ApoorvSaxena/lozad.js
授权协议:MIT

60. Fastify:Node.js 的 Web 框架

法斯特ify 是一个莫大注意于以最少开支和强硬的插件架构为开发者提供最佳体验的
Web 框架。 它面临了 Hapi 和 Express 的启示。

图片 28

项目主页:https://www.fastify.io/
授权协议:MIT

61. Slate:API 文档生成器

Slate 可援助您创造美丽,智能,响应式的 API 文档。近年来仅协理 Linux 以及
OS X,在 Windows 上可能可以运作,但法定不援救。

类型主页:https://lord.github.io/slate/
授权协议:Apache-2.0

62. weweChat:基于 React 和 Electron 的仿微信客户端

weweChat 是一个用到 React 、MobX 和 Electron 构建的仿微信桌面客户端。

图片 29

品种主页:https://github.com/trazyn/weweChat
授权协议:MIT

63. P3C:Java 代码规约扫描插件

阿里巴巴(Alibaba)的 Java 代码规约 pmd 完结和 IDE 插件。

花色主页:https://github.com/alibaba/p3c
授权协议:Apache-2.0

64. PrimeNG:强大的 Angular UI 组件库

PrimeNG 是一个颇为完善的开源 Angular UI 组件库。原生小部件丰裕,内置 70
三个简单使用的零件,可满意所有 UI 须求,采取响应式设计,移动端选用自己。

项目主页:https://www.primefaces.org/primeng
授权协议:MIT

65. DPVS:高性能第 4 层负载均衡器

DPV S全名叫”DPDK-LVS”,是爱奇艺公司依据 DPDK 开发的高性能第 4
层负载均衡器,基于阿里巴巴(Alibaba)/LVS 修改而来。

类型主页:https://github.com/iqiyi/dpvs
授权协议:GPLv2

66. SerpentAI:教 AI 打游戏的学习框架

SerpentAI 是一个 Game Agent
框架(ps:在人机对阵中,为了分裂玩家,经常称机器玩家为 agent
),简单而又有力。它能把其余一个玩耍变成用 Python
编写的沙盒环境,供开发者在里面创立游戏 Game Agent
做实验,使用的都是开发者至极熟稔的Python代码。SerpentAI 意在为机械学习和
AI 研商提供一个有价值的工具。

图片 30

项目主页:http://serpent.ai/
授权协议:MIT

67. mconf:微服务配置宗旨

微服务配置大旨 mconf(又称蚂蚁配置基本),基于 Zookeeper 和 Redis
完成的布置主旨。提供拉取配置、订阅配置、新增陈设、删除配置、修改配置等功效。支持多多少基本、多环境安顿、配置分组、多版本配置等职能。

连串主页:https://gitee.com/yu120/mconf
授权协议:MIT

68. AntV – G2:数据驱动的高交互可视化图形语法

G2
是一套基于可视化编码的图片语法,以数据驱动,具有高度的易用性和增加性,用户无需关心各样繁琐的完成细节,一条语句即可构建出丰裕多彩的可相互的总计图表。

品类主页:https://antv.alipay.com/zh-cn/g2/3.x/index.html
授权协议:MIT

69. eoLinker:API 接口管理平台开源版

eoLinker 提供自动生成 API 文档、API 自动化测试、Mock
测试、团队通力同盟等职能,意在缓解由于前后端分离造成的开销效用低下问题。

系列主页:www.eolinker.com
授权协议:Apache-2.0

70. blessed-contrib:Node 终端界面库

blessed-contrib 是拔取 Node.js 构建终端应用界面的库。

品类主页:https://github.com/yaronn/blessed-contrib
授权协议:MIT

71. Docsify:一个神奇的文档网站生成工具

Docsify 是一个动态变化文档网站的工具。差别于 GitBook、Hexo
的地点是它不会扭转将 .md 转成 .html 文件,所有转换工作都是在运转时举行。

图片 31

类型主页:https://docsify.js.org
授权协议:MIT

72. GraphQL:一种用于 API 的查询语言

GraphQL 既是一种用于 API
的询问语言也是一个满意你多少查询的运转时。GraphQL 对您的 API
中的数据提供了一套易于精通的共同体描述,使得客户端可以准确地赢得它须求的数量,而且从不任何冗余,也让
API 更便于地随着时间推移而形成,仍可以用于构建强大的开发者工具。

项目主页:http://facebook.github.io/graphql/
授权协议:未知

73. SiteServer CMS:.NET 平台的 CMS 内容管理连串

SiteServer CMS 是 .NET 平台 CMS
系统的创始者,可以以低于的花费、最少的人力投入在最短的时辰内架设一个效用齐全、性能杰出、规模宏大并不难维护的网站平台。 

品种主页:https://github.com/siteserver/cms
授权协议:GPLv3

74. Angel:基于参数服务器理念的机器学习框架

安琪 是一个基于参数服务器(Parameter
Server)理念开发的高性能分布式机器学习平台,它依据腾讯里面的雅量数据开展了往往的调优,并富有普遍的适用性和安宁,模型维度越高,优势越强烈。Angel由腾讯和日本首都大学联袂开发,兼顾了工业界的高可用性和科学界的立异性。

项目主页:https://github.com/Tencent/angel
授权协议:BSD

75. pay-java-parent:轻量级支付模块集成开发整合

轻量级支付模块集成(微信支付、友店扫码、支付宝、富友、银联)支付整合,app,扫码,即时到帐刷卡付条码付、支持多种支出项目多支付账户,支付与业务完全脱离,不难几行代码即可兑现支付,简单连忙到位支付模块的开支,可轻松嵌入到其余系统里。

类型主页:https://gitee.com/egzosn/pay-java-parent
授权协议:Apache-2.0

76. Element React:ElementUI 的 React 版本

Element React,一套为开发者、设计师和成品总监准备的依照 React
的零件库,是 ElementUI 的React
版本。提供了配套布署资源,援救您的网站火速成型。

品类主页:https://eleme.github.io/element-react/
授权协议:MIT

77. WePY:小程序组件化开发框架

WePY
是一款让小程序支持组件化开发的框架,通过预编译的一手让开发者可以选用自己喜爱的成本风格去开发小程序。框架的细节优化,Promise,Async
Functions 的引入都是为了能让开发小程序项目变得越发简便易行,高效。

品种主页:https://tencent.github.io/wepy/
授权协议:BSD

78. Big Bang:立异 Android 文字处理库 Big Bang

用大拇指大面积按压显示屏中的文字,Big Bang
会将您按住的那一段文字全体“炸”开并且依据语义智能拆分成易于选取的单身的字和词,由你随心所欲地选择,并可径直搜索、分享和复制。Big
Bang 开创性地缓解了在三弟大这样的小显示屏上难于处理文字的坏处。

图片 32

项目主页:https://github.com/SmartisanTech/android
授权协议:Apache-2.0

79. Napa.js:基于 V8 的三十二线程 JavaScript 运行时

Napa.js 是微软开源的一个按照 V8 的三十二线程 JavaScript
运行条件。它最初被规划用来在 Bing
中支付不影响属性的可观迭代服务,随着发展,Napa.js 被察觉在 CPU-bound
职务中能有效填补 Node.js ,具备在两个 V8 隔离中施行 JavaScript
并在它们之间展开通信的能力。Napa.js 作为一个 Node.js
的模块公开,它也足以放手到没有 Node.js 器重关系的主机进度中。

序列主页:https://github.com/Microsoft/napajs
授权协议:MIT

80. Mastodon:开源天涯论坛服务器

Mastodon
是一个免费的开源社交网络程序,一个买卖平台的替代方案,避免了单个公司垄断你联系的高风险。

花色主页:https://github.com/tootsuite/mastodon
授权协议:AGPL

81. pyecharts:使用 Python 生成 Echarts 图表的类库

pyecharts 是一个用来生成 Echarts 图表的类库。实际上就是 Echarts 与
Python 的交接。Echarts 是百度开源的一个数额可视化 JS 库。用 Echarts
生成的图可视化效果越发棒,为了与 Python 进行联网,方便在 Python
中直接使用数据生成图,于是诞生了这些类型。

品种主页:http://pyecharts.herokuapp.com/
授权协议:MIT

82. evpp:基于 libevent 开发的 C++ 11 高性能网络服务器

evpp 是一个基于 libevent 开发的现代化 C++11 高性能网络服务器,自带
TCP/UDP/HTTP 等协商的异步非阻塞式的服务器和客户端库。

项目主页:https://gitee.com/zieckey/evpp
授权协议:BSD

83. ORY Editor:基于 React 和 Redux 的现代内容编辑器

ORY Editor 是一款基于 React 和 Redux
的现代内容编辑器,也是下一代用于浏览器的冲天可定制的始末编辑器。

ORY Editor 可用于成立网站,与 Squarespace
类似,可是它可以离线运行,通过它成立的网站会储存在配备上,仍能创造和谐的筹划和插件。

品类主页:https://editor.ory.am/
授权协议:LGPL

84. WCDB:高效易用的位移数据库框架

WCDB
是腾讯开源的一个飞跃、完整、易用的运动数据库框架,基于 SQLCipher,支持
iOS、macOS 和 Android。

项目主页:https://github.com/Tencent/wcdb
授权协议:BSD

85. Franchise:成效强大的 SQL Notebook 工具

Franchise 和 Python 的 Jupiter Notebook 类似,不过它举行的是 SQL
查询,援助编辑 CSV、JSON、XLSX 等格式数据,帮忙连接到
SQLite、MySQL、PostgreSQL 等数据库。查询脚本和结果可以保留与分享,和
Jupiter 一模一样。

品种主页:https://franchise.cloud/
授权协议:MIT

86. SQL Operations Studio:跨平台数据管理工具

SQL Operations Studio(SqlOps) 是微软开源的跨平台数据管理工具,其协助 SQL
Server,Azure SQL DB 以及 SQL DW 等多款微软旗下的数据库,SQL Operation
Studio 可以和 VS Code 深度集成,运行在 Windows、macOS、Linux
等主流操作系统平台中。

连串主页:https://github.com/Microsoft/sqlopsstudio
授权协议:Source EULA

87. DeepLearn.js:可达成硬件加快的机器学习 JavaScript 库

DeepLearn.js 是 谷歌推出的一个可用来机器智能并加紧 WebGL 的开源 JavaScript 库,完全在浏览器中运行,不须要设置,不须要后端处理。

DeepLearn.js
提供高效的机器学习构建模块,使我们能够在浏览器中训练神经网络或在揣度方式中运行预训练模型。它提供构建可微数据流图的 API,以及一层层可向来动用的数学函数。

图片 33

类型主页:https://deeplearnjs.org/
授权协议:Apache-2.0

88. PyTorch:Python 优先的吃水学习框架

PyTorch 是利用 GPU 和 CPU 优化的深浅学习张量库,是 Torch7 团队开源的
Python 优先的纵深学习框架,提供多个高级功用:强大的 GPU 加快 Tensor
统计(类似 numpy);构建基于 tape 的机动升级系统上的深浅神经网络。

图片 34

花色主页:http://pytorch.org
授权协议:BSD

89. FoolNLTK:普通话处理工具包

华语处理工具包,可能不是最快的开源普通话分词,但很可能是最准的开源汉语分词。基于 BiLSTM
模型
陶冶而成

项目主页:https://gitee.com/rockyzheng/FoolNLTK
授权协议:Apache-2.0

90. Gluon:开源深度学习库

Gluon
是微软联合亚马逊推出的一个开源深度学习库,那是一个清楚、简洁、不难但功用强大的深浅学习
API,该专业可以荣升开发人员学习深度学习的速度,而无需关切所选用的吃水学习框架。Gluon
API
提供了灵活的接口来简化深度学习原型设计、创制、磨炼以及安顿,而且不会捐躯多少磨炼的进度。

图片 35

品种主页:https://github.com/gluon-api/gluon-api/
授权协议:Apache-2.0

91. GIXY:Nginx 配置分析工具

Gixy 是一款用来分析 Nginx 配置的工具。 Gixy
的首要对象是严防安全安插错误,并自行进行缺陷检测。最近扶助的 Python
版本是 2.7 和 3.5+ 。

品种主页:https://github.com/yandex/gixy
授权协议:MPL-2.0

92. Go 语言编写的轻量级的数据采集器

Beats 是一款轻量级的数额采集器,采取 Go
语言编写。它集合了多种单纯用途数据采集器。这几个采集器安装后可用作轻量型代理,从众多或不可胜道台机械向 Logstash 或 Elasticsearch 发送数据。

图片 36

体系主页:https://www.elastic.co/cn/
授权协议:Apache-2.0

93. Luminoth:总计机视觉工具包

Luminoth 是一个开源的微机视觉工具包,近日支撑对象探测和图像分类,但今后会有越来越多的增添。该工具包在 TensorFlow 和 Sonnet 上用 Python 搭建而成。易于使用、陶冶、精通结果。

体系主页:https://luminoth.ai
授权协议:BSD-3.0

94. Grumpy:Go 运行 Python

Grumpy 是一个 Python to Go 源代码翻译编译器和运转时,目的在于替代 CPython
2.7。

一言九鼎的差异是它将 Python 源代码编译为 Go
源代码,然后将其编译为本机代码,而不是字节码。那代表 Grumpy 没有
VM。编译的 Go 源代码是对 Grumpy 运行时的一多重调用,Go 库服务与 Python C
API 类似的目的(固然不间接援救 C API)。

品种主页:https://github.com/google/grumpy
授权协议:Apache-2.0

95. Maptalks:JavaScript 的地形图引擎

Maptalks 项目是一个 HTML5 的地形图引擎,基于原生 ES6 Javascript
开发,采纳插件化设计,能与其余图形库结合,开发各样二三维效果,例如
echarts/d3/THREE 等。

项目主页:https://maptalks.org/
授权协议:BSD-3.0

96. Moon:迅速灵活的前端 UI 库

一个极小,但速度极快的 UI
库。项目受 Vue 启发,目的在于打造成一个快速灵活的前端
JavaScript 库。API 直观且便于学习,还接济插件。

图片 37

品种主页:http://moonjs.ga/
授权协议:MIT

97. STF:从浏览器控制和治本 Android 设备

STF(or Smartphone Test Farm) 是一个 Web
应用程序,用于从开心的浏览器远程调试智能手机,智能手表和其余小工具。

图片 38

类型主页:https://openstf.io/
授权协议:Apache-2.0

98. Slate.js:完全可定制的富文本编辑框架

Slate 是一个通通可定制的富文本编辑框架。通过
Slate,你可以构建出类似 MediumDropbox
Paper
 或者 Canvas 这样使用直观、富交互、体验也已变成
Web 应用标杆的编辑器。

图片 39

项目主页:http://slatejs.org/
授权协议:MIT

99. Bootstrap-vue:Bootstrap 4 组件与 Vue.js 集成

利用 Vue.js 和世前端 CSS 库 — Bootstrap V4 在 Web
上构建响应式,移动优先项目。

Bootstrap-Vue 为 Vue.js 2.4+ 提供了 Bootstrap V4
零部件和最完善的网格系统的落成,它拥有广泛的自动化 WAI-ARIA 援救成效标记。

图片 40

项目主页:https://bootstrap-vue.js.org
授权协议:MIT

100. php-msf:基于 Swoole 的 PHP 微服务框架

PHP 微服务框架即“Micro Service(Service) Framework For PHP”,简称 msf 或者
php-msf,是 Swoole 的工程级集团应用框架,经受了 Camera360
亿级用户高并发大流量的考验。php-msf
焦点设计思想是应用协程、异步、并行的立异技术手段进步系统的单机吞吐能力,下跌一体化服务器费用。

连串主页:https://github.com/pinguo/php-msf
授权协议:GPLv2

相关文章

发表评论

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