018 年开源中国社区「新增」开源软件排行榜之国产 TOP 50 终于发布了!
榜单根据 2018 年开源中国社区新收录的开源项目的关注度、活跃度,以及所属分类整理而来,相信在一定程度上反映了国内大部分开发者在 2018 年所使用的技术栈和希望学习的技术。
可以看到,Java 相关框架一如既往地占据了榜单的很大一部分,而随着 AI 技术在近两年的兴起,也诞生了更多的人工智能开源项目。无论是公司或者个人,都在该领域下产出了不少优秀的开源项目,这些开源项目也逐渐被更多开发者所关注并使用。
而小程序,最初面世时毁誉参半,但目前看来,围绕小程序而诞生越来越多的开源项目,不但证明了自己的价值,也让唱衰的声音逐渐冷却了下去。
需要说明的是,榜单中的软件已经过筛选,均符合国际 OSI 认可的开源协议。
2018 国产开源软件新增榜 TOP 50
1. SpringBoot-Plus:基于 Spring Boot 2 的后台管理系统
SpringBoot-Plus 是一个基于 Spring Boot 2 的后台管理系统,包含了用户管理、组织机构管理、角色管理、功能点管理、菜单管理、权限分配、数据权限分配、代码生成、子系统生成、文档管理和预览等功能。不同于其他简单的开源后台管理系统,SpringBoot-Plus 具备适当的企业应用深度。
系统基于 Spring Boot 2 技术,前端采用了 Layui 2。数据库以 MySQL/Oracle/PostgresSQL 为实例,理论上是跨数据库平台。
项目主页:https://gitee.com/xiandafu/springboot-plus
开源协议:BSD
开发语言:Java
项目作者:@闲大赋
2. Arthas:开源 Java 诊断工具
Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具。
Arthas 支持 JDK 6+,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
项目主页:https://alibaba.github.io/arthas/
开源协议:GPLv3
开发语言:Java
项目作者:@横云断岭
所属公司:阿里巴巴
3. RuoYi:基于 Spring Boot 2.0 的后台管理系统
基于 Spring Boot2.0 的权限管理系统,易读易懂、界面简洁美观。核心技术采用 Spring、MyBatis、Shiro,没有任何其它重度依赖,直接运行即可用。
若依基于 hplus 和 inspinia 两套后台系统模板开发,可以用于所有的 Web 应用程序,如 CMS、CRM、OA、网站管理后台和网站会员中心。所有前端后台代码封装过后十分精简易上手,出错概率低,同时支持移动客户端访问。
项目主页:https://gitee.com/y_project/RuoYi
开源协议:MIT
开发语言:Java
项目作者:@若依管理系统
4. J-IM:Java 实现的轻量级高性能 IM 框架
J-IM 是使用 Java 语言,基于 t-io 开发的轻量、高性能、单机支持几十万至百万的在线用户 IM,主要目标是降低即时通讯门槛,快速打造低成本接入在线 IM 系统,通过极简洁的消息格式就可以实现多端不同协议间的消息发送,如内置(Http、Websocket、TCP 自定义 IM 协议)等,并提供通过 HTTP 协议的 API 接口进行消息发送,无需关心接收端属于什么协议,一个消息格式搞定一切!
项目主页:https://gitee.com/xchao/j-im
开源协议:Apache-2.0
开发语言:Java
项目作者:@轨迹_
5. WeavingDB:C# 实现的缓存库
为满足 C# 项目的特殊使用与简单部署,故而开发此 WeavingDB,希望给做 .NET 开发者带来帮助。WeavingDB 使用 C# 实现,支持 K-V 方式,也是一个支持 JSON 数据的条件查询的内存缓存库。
项目主页:https://gitee.com/UDCS/WeavingDB
开源协议:Apache-2.0
开发语言:C#
项目作者:@dreamsfly
6. dingdang-robot:中文语音对话机器人项目
叮当是一款可以工作在 Raspberry Pi 上的中文语音对话机器人/智能音箱项目。
叮当被唤醒后,用户的语音指令先经过在线 STT 引擎进行 ASR 识别成文本,然后对识别到的文本进行技能匹配,交给适合处理该指令的技能插件去处理。插件处理完成后,得到的结果再交给 TTS 引擎合成成语音,播放给用户。虽然一次交互可能包含多次网络请求,不过带来的好处是:每一个环节都可以被修改和定制。
项目主页:https://dingdang.hahack.com/
开源协议:MIT
开发语言:Python
项目作者:@wzpan
7. DBCHM:数据库 CHM 文档生成工具
DBCHM 号称是最简单、最实用的数据库表列批注维护工具,主要功能:
支持 SQLServer/MySQL/Oracle/PostgreSQL 等数据库的表列批注维护管理。
项目主页:https://gitee.com/lztkdr/DBCHM
开源协议:MIT
开发语言:C#
项目作者:@lzktdr
8. XXL-SSO:分布式单点登录框架
XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有"轻量级、分布式、跨域、Cookie+Token 均支持、Web+APP 均支持"等特性,开箱即用。
项目主页:http://www.xuxueli.com/xxl-sso/#/
开源协议:GPLv3
开发语言:Java
项目作者:@许雪里
9. VNote:基于 Qt 框架的开源笔记软件
VNote 基于 Qt 框架,是一个受 Vim 启发开发的专门为 Markdown 而优化、设计的开源免费笔记软件,VNote 更是一个更了解程序员和 Markdown 的笔记软件,它专注于 Markdown 的编辑与阅读,以提供舒适的编辑体验为设计目标。
项目主页:https://tamlok.github.io/vnote/zh_cn/
开源协议:MIT
开发语言:C/C++
项目作者:@tamlok
10. Layx:仿真 Windows 界面的 Web 弹窗组件
Layx 是一款仿 Windows 系统窗口的 Web 弹窗插件,纯原生 Javascript 实现,不依赖任何第三方框架,支持 IE10+(含 IE10)、Chrome、Firefox、Opera、Edge、Safari 等主流浏览器。gzip 压缩版仅 13.5kb,非常小巧。
项目主页:https://gitee.com/monksoul/LayX
开源协议:MIT
开发语言:JavaScript
项目作者:@百小僧
11. SOFABoot:基于 Spring Boot 的研发框架
SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFAStack 相关中间件的能力。
项目主页:https://gitee.com/alipay/sofa-boot
开源协议:Apache-2.0
开发语言:Java
所属公司:阿里巴巴
12. 飞冰 ICE:基于 React 的中后台应用解决方案
飞冰(ICE) 是一套基于 React 的中后台应用解决方案,ICE 包含了一条从设计端到开发端的完整链路,帮助用户快速搭建属于自己的中后台应用。
面向设计者端,ICE 提供了 ICE Design 设计语言,来给 UI 界面提供专业的视觉指导。面向开发者端,ICE 提供了 Iceworks 工具,这是一个图形化界面的开发平台,它承载了 ICE 的物料体系和开发体验。
项目主页:https://alibaba.github.io/ice/
开源协议:MIT
开发语言:JavaScript、TypeScript
项目作者:@chenbin93
所属公司:阿里巴巴
13. iView Weapp:高质量的微信小程序 UI 组件库
iView Weapp 是一套高质量的微信小程序 UI 组件库。1.0 提供了 30 个组件,并会不断丰富。
项目主页:https://weapp.iviewui.com/
开源协议:MIT
开发语言:JavaScript
项目作者:@aresn
14. mpvue:基于 Vue.js 的小程序开发框架
mpvue 是一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为小程序开发引入了整套 Vue.js 开发体验,并从底层支持 Vue.js 语法和构建工具体系。
项目主页:http://mpvue.com/
开源协议:MIT
开发语言:JavaScript
项目作者:@胡成全
所属公司:美团点评
15. Taro:遵循 React 语法规范的多端统一开发框架
Taro 是由京东 - 凹凸实验室打造的一套遵循 React 语法规范的多端统一开发框架,实现用 React 写小程序,生成 H5、React Native 等多端应用。
项目主页:https://taro.aotu.io/
开源协议:MIT
开发语言:JavaScript
项目作者:@yuche
所属公司:京东
16. pig-cloud:基于 Spring Cloud 的企业级认证与授权
基于 Spring Cloud、Spring Security Oauth2.0 开发企业级认证与授权,提供常见服务监控、链路追踪、日志分析、缓存管理、任务调度等实现。
项目主页:https://gitee.com/log4j/pig
开源协议:MIT
开发语言:Java
项目作者:@冷冷gg
17. SOAR:SQL 智能优化与改写工具
SOAR(SQL Optimizer And Rewriter)是一个对 SQL 进行优化和改写的自动化工具,由小米人工智能与云平台的数据库团队开发与维护。
业内其他优秀产品对比
项目主页:https://github.com/XiaoMi/soar
开源协议:Apache-2.0
开发语言:Go
所属公司:小米
18. JavaMonitor:Java 应用性能监控系统
Java 应用性能远程监控系统(分布式监控),适用于监控所有 Java 应用,具有堆内存监控、方法区监控、GC 监控、类加载监控、类编译监控与线程监控等功能,提供堆快照下载和线程快照下载。
项目主页:https://gitee.com/zyzpp/JavaMonitor
开源协议:GPLv3
开发语言:Java
项目作者:@像风一样i
19. Roses:基于 Spring Boot 的分布式和服务化解决方案
Roses 基于 Spring Boot 2 和 Spring Cloud Finchley.SR2,更符合企业级的分布式和服务化解决方案。Roses 提供可靠消息最终一致性分布式事务解决方案,提供基于调用链的服务治理,提供可靠的服务异常定位方案(Log + Trace)等等,一个分布式框架不仅需要构建高效稳定的底层开发框架,更需要解决分布式带来的种种挑战!
项目主页:https://gitee.com/stylefeng/roses
开源协议:Apache-2.0
开发语言:Java
项目作者:@stylefeng
20. PDMan:数据库模型建模工具
PDMan 是一个数据库模型建模,以及数据库版本管理工具,主要功能如下:
支持 Windows, Mac, Linux 等操作系统,支持常见数据库 MySQL, Oracle, SQLServer, DB2 等。是 PowerDesigner 之外,另一个更好的免费替代方案。
项目主页:https://gitee.com/robergroup/pdman
开源协议:Apache
开发语言:JavaScript
项目作者:@O龙猫O
21. VuePress:基于 Vue 的静态网站生成器
VuePress 是一个基于 Vue 的轻量级静态网站生成器,以及为编写技术文档而优化的默认主题。它是为了满足 Vue 自己的子项目文档的需求而创建的。
VuePress 享用 Vue + webpack 开发环境,在 markdown 中使用 Vue 组件,并通过 Vue 开发自定义主题。VuePress 为每一个由它生成的页面提供预加载的 html,不仅加载速度极佳,同时对 seo 非常友好。一旦页面被加载之后,Vue 就全面接管所有的静态内容,使其变成一个完全的 SPA 应用,其他的页面也会在用户使用导航进入的时候来按需加载。
项目主页:https://github.com/vuejs/vuepress
开源协议:MIT
开发语言:JavaScript、TypeScript
项目作者:@EvanYou
22. Zeu.js:实时监控可视化组件库
Zeu.js 是一个 JavaScript 库,其中包含一系列预构建的可视化组件,用于构建实时 TV 仪表板,监控 UI 和物联网 Web 界面。
项目主页:https://github.com/shzlw/zeu
开源协议:MIT
开发语言:JavaScript
项目作者:@Zhonglu
23. OSROOM:Python 的开源 Web 系统
OSROOM 是使用 Python 3(>=3.4) 语言,基于 Flask 微型框架 + MongoDB(>=3.4) + Redis 开发的一个 Web 系统(CMF, Rest Api)。通过 OSROOM,除了可以搭建常见的普通网站外,还可以作为小程序服务端,小程序客户端可直接调用 API 请求数据。
项目主页:https://gitee.com/osroom/osroom
开源协议:BSD
开发语言:Python
项目作者:@Allen-Woo
24. cocker:C 语言实现的容器引擎
cocker 是个人用 C 语言完全自研的容器引擎(对标 Docker),使用到了以下 Linux 底层技术:LXC、cgroup、overlayfs、iptables、ptms 等。系统架构如下:
项目主页:https://gitee.com/calvinwilliams/cocker
开源协议:LGPL-2.1
开发语言:C
项目作者:@calvinwilliams
25. TeaWeb:可视化智能 Web 服务
TeaWeb 是一款集静态资源、缓存、代理、统计、监控于一体的可视化智能 WebServer。TeaWeb 使用 Go 语言实现,在高可定制化前提下,保证高性能、高并发。
项目主页:https://gitee.com/liuxiangchao/build
开源协议:MIT
开发语言:Perl、Go
项目作者:@刘祥超
26. MeEdu:基于 Laravel 开发的在线点播系统
MeEdu 是一个基于 Laravel 开发的在线点播系统,寄托了作者对当前知识付费领域的期望。相信未来每位身负技能的人都可以通过 MeEdu 来构建自己的知识付费应用,通过 MeEdu 将自己的知识进行变现。
项目主页:https://gitee.com/myteng/MeEdu
开源协议:MIT
开发语言:PHP
项目作者:@小滕ha
27. JVM-Sandbox:动态非侵入 AOP 解决方案
JVM-Sandbox,JVM 沙箱容器,一种基于 JVM 的非侵入式运行期 AOP 解决方案。
JVM-SANDBOX 的核心功能:实时无侵入 AOP 框架、动态可插拔容器
项目主页:https://github.com/alibaba/jvm-sandbox
开源协议:LGPL-3.0
开发语言:Java
所属公司:阿里巴巴
28. Fusion Design:企业级中后台 UI 解决方案
Fusion Design 是一种旨在提升设计与开发之间 UI 构建效率的工作方式。通过建设基于 DPL 模式的,设计、前端之间的标准协议与工作流,来快速构建符合业务诉求的 DPL,提升 DPL 的构建效率和应用效率,帮助业务快速实现 UI 构建。
Next 是基于 Alibaba Fusion Design 的设计理念实现的一套 DPL 。配合 https://fusion.design 使用可以实现换肤的能力。基于 React 实现,支持所有现代浏览器和 IE9+。
项目主页:https://fusion.design/
开源协议:MIT
开发语言:JavaScript
项目作者:@布达
所属公司:阿里巴巴
29. Nacos:动态服务发现、配置和服务管理平台
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的服务的发现、配置和管理,帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
Nacos 全景图
如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如 Dubbo and Dubbo Mesh TODO、Spring Cloud TODO、Kubernetes and CNCF TODO。
项目主页:https://nacos.io/
开源协议:Apache-2.0
开发语言:Java
所属公司:阿里巴巴
30. Walle(瓦力):Web 上线部署系统工具
Walle 让用户代码发布终于可以不只能选择 Jenkins,支持各种 Web 代码发布,php、java、python、go 等代码的发布、回滚可以通过 Web 来一键完成。
Walle 是一个可自由配置的项目,更人性化、高颜值、支持 git,也是一个多用户、多语言、多项目、多环境同时部署的开源上线部署系统。
项目主页:https://www.walle-web.io/
开源协议:Apache-2.0
开发语言:Python
项目作者:@wushuiyong
31. Wayne:Kubernetes 多集群管理平台
Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。
架构图
通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。
项目主页:https://github.com/Qihoo360/wayne
开源协议:Apache-2.0
开发语言:TypeScript、Go
项目作者:@WilhelmGuo
所属公司:奇虎360
32. Go Chassis:产品级 Go 语言微服务框架
Go Chassis 是华为云 CSE 开源的一个用 Go 语言编写的微服务快速开发框架。借助 CSE Go Chassis 进行微服务开发可最大化地降低开发门槛,提升产品上线速度,同时可以获得微服务运行时高可靠性保证、运行时动态治理等一系列开箱即用的能力。
项目主页:https://github.com/go-chassis/go-chassis
开源协议:Apache-2.0
开发语言:Go
所属公司:华为
33. tcplstat:TCP 网络监控工具
tcplstat 是基于 libpcap 网络嗅探程序包的网络监控工具,它能旁路捕获所有经过网络设备过滤规则的 TCP 数据,跟踪当前所有 TCP 连接会话,记录所有经过的 TCP 分组,当连接断开或到达最大记录数时倒出统计信息,包含但不限于连接两端网络地址、建立时间戳、三步握手各分组延迟、四步分手各分组延迟,数据分组明细、往来分组间延迟和相反方向分组延迟的最小、平均、最大统计值。
tcplstat 除了引用了 Linux 内核的红黑树和链表源码外,自身源码只有 1500 行左右,源码结构简单易读。tcplstat 支持跨主流平台 Linux、Windows、AIX。
项目主页:https://gitee.com/calvinwilliams/tcplstat
开源协议:LGPL-2.1
开发语言:C/C++
项目作者:@calvinwilliams
34:NovalIDE:多功能跨平台 Python IDE
NovalIDE 是一款开源,跨平台,而且免费的国产 Python IDE ,有出色的语法高亮功能,支持多种语言,Python,C/C++,HTML,JavaScript,xml,CSS 等,解释器运行脚本,支持函数智能提示和代码自动完成,以及新建 NovalIDE 工程和从现有代码创建工程,新建工程类型将包括应用程序,Django,Flask,wxPython,Py2exe,Win32,GTK,控制台程序等。
项目主页:http://www.novalide.com/
开源协议:GPLv3
开发语言:Python
项目作者:@东方玄
35. SpriteJS:跨终端 Canvas 绘图库
SpriteJS 是一款由 360 奇舞团开源的跨终端 Canvas 绘图库,可以基于 Canvas 快速绘制结构化 UI 、动画和交互效果,并发布到任何拥有 Canvas 环境的平台上(比如浏览器、小程序和 node )。
项目主页:http://spritejs.org
开源协议:MIT
开发语言:JavaScript
项目作者:@welefen
所属公司:奇虎360
36. Spring Cloud Alibaba:分布式应用服务开发的一站式解决方案
Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
主要功能
项目主页:https://github.com/spring-cloud-incubator/spring-cloud-alibaba
开源协议:Apache-2.0
开发语言:Java
所属公司:阿里巴巴
37. YoShop:萤火小程序商城
萤火小程序商城,是一款开源的电商系统,为中小企业提供最佳的新零售解决方案。采用稳定的 MVC 框架开发,执行效率、扩展性、稳定性值得信赖。
项目主页:https://gitee.com/xany/bestshop-php
开源协议:Apache-2.0
开发语言:PHP
38. Overwatch:通用 RPC 监控系统
Overwatch 是一个用于分布式系统的通用 RPC 监控系统,它将 D3 force 布局作为主要图表。
Overwatch 提供了整个系统当前状态的概览,使系统管理员能够轻松了解正在进行的 RPC 事件并找出系统中故障的来源。 与常见监控系统不同,Overwatch 使用设计良好的图形(使用 D3 强制布局)用于可视化数据。
项目主页:https://github.com/imdada/overwatch
开源协议:BSD
开发语言:TypeScript
所属公司:京东
39. JFinal Undertow:JFinal 项目部署环境
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目。独创 HotSwapClassLoader + HotSwapWatcher 以 319 行代码极简实现热加载开发与部署。
项目主页:https://gitee.com/jfinal/jfinal-undertow
开源协议:Apache-2.0
开发语言:Java
项目作者:@JFinal
40. MACE:神经网络计算框架
Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台优化的神经网络计算框架。 主要从以下的角度做了专门的优化:性能、功耗、系统响应、内存占用、模型加密与保护和硬件支持范围。
项目主页:https://github.com/XiaoMi/mace
开源协议:Apache-2.0
开发语言:C/C++、Python
所属公司:小米
41. smart-doc:Java Restful API 文档生成工具
smart-doc 是一个 java restful api 文档生成工具,smart-doc 颠覆了传统类似 swagger 这种大量采用注解侵入来生成文档的实现方法。
smart-doc 完全基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照 java 标准注释的写就能得到一个标准的 markdown 接口文档。
项目主页:https://gitee.com/sunyurepository/ApplicationPower/tree/master/smart-doc
开源协议:Apache-2.0
开发语言:Java
项目作者:@上官胡闹
42. noForm:基于 React 的表单解决方案
NoForm是阿里巴巴外综服前端团队在外综服(外贸综合服务)场景下,经过长期的思考和打磨产出的一款基于 React 的表单解决方案。可能有人不理解,可能会问:表单嘛,能有多复杂?可能你从没见过一个表单需要填写 150+ 个字段。可能你也没有见过一个表单实际是由 10+ 个子表单组合出来的。可能你也没见过一个表单的字段是后端动态配置的。
NoForm 从解决业务复杂性的角度出发,找到了几个抓手,将表单方案进行了优化和开源。
项目主页:https://github.com/alibaba/nopage
开源协议:Apache
开发语言:JavaScript
项目作者:@鬼鼠
所属公司:阿里巴巴
43. DataGear:数据齿轮数据库管理系统
数据齿轮是一款数据库管理系统,使用 Java 语言开发,采用浏览器/服务器架构,以数据管理为核心功能,支持多种数据库。
系统主界面如下图所示:
项目主页:http://www.datagear.tech/
开源协议:LGPL-3.0
开发语言:Java
项目作者:@数据齿轮
44. wikift:知识管理系统
wikift 是一套企业级开源的易用的知识管理系统。
项目主页:https://github.com/wikift/wikift
开源协议:Apache-2.0
开发语言:Java、TypeScript、JavaScript
项目作者:@qianmoQ
45. v-charts:基于 Vue2.0 和 ECharts 封装的图表组件
在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts 的出现正是为了解决这个痛点。基于 Vue2.0 和 echarts 封装的 v-charts 图表组件,只需要统一提供一种对前后端都友好的数据格式,设置简单的配置项,便可轻松生成常见的图表。
项目主页:https://github.com/ElemeFE/v-charts
开源协议:MIT
开发语言:JavaScript
所属公司:饿了么
46. RSUITE:基于 React 的 UI 组件库
React Suite 是一套 React 组件库,为后台产品而生。主要服务于公司大数据产品线。经历了三次大的版本更新后,累积了大量的组件和丰富的功能。
项目主页:https://rsuite.gitee.io/
开源协议:MIT
开发语言:JavaScript
项目作者:@漆工
47. SpringBootBucket:Spring Boot 全家桶
本项目对目前 Web 开发中常用的各个技术,通过和 SpringBoot 的集成,并且对各种技术通过“一篇博客 + 一个可运行项目”的形式来详细说明。
每个子项目都会使用最小依赖,大家拿来即可使用,自己可以根据业务需求自由组合搭配不同的技术构建项目。
项目主页:https://gitee.com/yidao620/springboot-bucket
开源协议:MIT
开发语言:Java
项目作者:@一刀
48. VisualDL:跨框架深度学习可视化框架
VisualDL,即 Visualize the Deep Learning,是一个面向深度学习任务设计的可视化工具,包含了 scalar、参数分布、模型结构、图像可视化等功能,项目正处于高速迭代中,新的组件会不断加入。
除了 Python SDK 之外,VisualDL 底层采用 C++ 编写,其暴露的 C++ SDK 也可以集成到其他平台中,实现原生的性能和定制效果。
项目主页:http://visualdl.paddlepaddle.org/
开源协议:Apache-2.0
开发语言:JavaScript、C++、Python
所属公司:百度
49. libaco:轻量级 C 非对称协程库
libaco - 一个极速的轻量级 C 非对称协程库。简要介绍:
上文中的"最快"指的是在满足 Sys V ABI Intel386 或者 AMD64 约束下最快的上下文切换实现。
项目主页:https://github.com/hnes/libaco
开源协议:Apache-2.0
开发语言:C
项目作者:@hnes
50. OpenAuth.Core:基于 .NET Core 2.1 的快速开发框架
基于 .NET Core 2.1 的快速开发框架。核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。它的架构精良易于扩展,是中小企业的首选。
项目主页:https://gitee.com/yubaolee/OpenAuth.Core
开源协议:LGPL-2.1
开发语言:C#
项目作者:@李玉宝
最后
每年这个时候,开源中国社区都会发布年度榜单。而「国产」相关的榜单往往也是争议最大的,吐槽的点不外乎「这么水(low、垃圾)的项目也能上榜?」、「xx 都能上了,xxx 居然不能上?」、「你们是不是收钱了?xx 这样的项目也放上去」这几个。
首先,榜单的项目都是从 2018 年开源中国社区「新增」的开源项目里面进行挑选(包括在 2018 年托管到码云Gitee平台,或被开源中国社区收录的项目)。其次,根据开源软件的关注度和活跃度,以及它们所属的分类,我们会再筛选一遍,同类的项目自然就不会全部都上榜。
欢迎各位在评论中留下你们的想法和意见,让我们共同提高榜单的质量和权威性。
预告:本周还会推出最后一个榜单 —— 2018 年度新增开源软件排行榜之非国产 TOP 50,这份榜单的开源项目均为 2018 年关注度较高的国际开源项目,敬请期待。
=====分割线=====
开源中国 2018 年度榜单之国产新秀榜
点击下方“了解更多”,查看更多榜单
↓↓↓
信ID:WEB_wysj(点击关注) ◎ ◎ ◎ ◎ ◎◎◎◎◎一┳═┻︻▄
(页底留言开放,欢迎来吐槽)
● ● ●
什么是初级的前端工程师?
按照我的想法,我把前端工程师分为了入门、初级、中级、高级这四个级别入门级别指的是了解什么是前端(前端到底是什么其实很多人还是不清楚的,底什么是前端后端、后台),了解基本的html、css和javascript语法(这些语方面的东西网上随便搜一下就有很多很多,基本的语法是整个技术体系最重要的东西了,领先的 Web 技术教程 - 全部免费),可以根据设计师的设计图在不考虑兼容性的情况下把页面做出来,了解过一些框架的使用(例如烂大街但是依然牛逼的jQuery、zepto、bootstrap等等)
在经历过入门的阶段,已经了解了前端要做什么,并且把基本的语法学习过了可以独立做一些简单的页面了,那么就要继续学习达到初级前端工程师的水平,对于初级的前端工程师需要了解的就特别多了,需要对整个前端有一个清晰的认识,并且熟练使用各种技术,我感觉在校的学生达到初级水平就可以通过bat的校招笔试面试了(看到这里,您先不要吐槽,先把我下面说的初级水平需要掌握的东西看一下之后再来评论我说的有没有过)。
初级前端工程师首先要知道的就是如何处理各种浏览器的兼容处理(比如说在IE浏览器中的createElement有什么不同等等内容),现在基本上每个公司在招聘的时候都会要求熟练html5, css3, javascript,这个熟练的意思就是信手拈来,在下面会说初级前端工程师应该具体的学习哪些知识,然后就是要了解各种css的预处理器和后处理器,还有会使用常见前端的MV*框架(angularjs, backbone,reactjs等等)并知道这些框架的原理,另外就是要熟练使用nodejs,要会使用基于node的各种前端构建工具(grunt,gulp等等),熟练使用github或gitlab,对模块化、组件化、工程化、语义化有一个比较深入的了解,最后要知道如何开发移动端的页面,如何去优化一个页面的性能。
初级前端工程师的技术体系
目前在网上有很多关于技术体系的文章,但是几乎都是在一个很笼统的方面来介绍技术栈,这里我就给把那些笼统的概念给分解开,详细的来说一下需要掌握的知识内容。
html部分
首先是要掌握一些常用标签的使用和他们的各个属性,这些常用的标签我总结了一下有以下这些:
html:页面的根元素。
head:页面的头部标签,是所有头部元素的容器。
body:页面的主体标签,页面展现的内容就放置在这里面。
title:页面的标题。
meta:位于文档的头部,提供页面的元信息,包括关键字、描述等等。
link:定义文档与外部资源的关系,最常用的用途就是引入样式表。
script:脚本标签,可以把js脚本代码放置在这个标签内,也可以使用这个标签的src属性引入一个外部标签。
style:样式标签,可以把css代码写在这个标签中。
a:超链接,href属性代表要链接到的地方,target属性代表打开方式。
img:图像标签,src属性表示图片的位置。
form:表单元素,它内部的input、select、textarea等标签都是比较重要的。
div:定义文档中的分区或节,可以使用div来进行页面的布局等操作。
另外还有ul、li、p、button、iframe、p、table等标签也很常用,nav、section、article、header、aside、footer等语义化标签也需要了解一下。
除了要了解上面这一些标签之外,还需要对一些新的HTML5的API有一定的了解:
audio、video标签。
Canvas:定义图形,比如图表和其他图像。
input标签的accept属性,email、phone、url等类型。
getElementByClassName根据class名来获取一个元素结点。
Multiple file selection多文件选择属性。
html的import、template
process标签,webGL等内容。
还有一些要知道的知识点:
1.doctype的作用。
2.unicode、utf8等编码的原理和区别。
3.如何进行页面性能优化。
4.png、jpg、webp、gif等图片格式的不同的优势。
5.HTML行内元素与块级元素的区别。
6.移动web端开发常用head标签。
7.web语义化。
8.浏览器中的缓存原理
css部分
关于css这一块,我的看法就是网上下载一个chm格式的css的参考手册,然后根据手册里面写的一个个的都敲一下。
css大体分为下面这几块知识点:
① 定位布局
1.position属性的7个值(static | relative | absolute | fixed | center | page | sticky)分别有什么作用和不同?
2.实现品字形布局或者是三栏布局(左右宽度固定,中间适应屏幕)。
3.浮动与清除浮动的方法,flex布局,grid布局。
② 盒子模型
1.margin、padding、border这三个属性。
eb前端怎么样才能入门,首先我们要从什么是初级web前端工程师说起:
按照我的想法,我把前端工程师分为了入门、初级、中级、高级这四个级别,
入门级别指的是了解什么是前端(前端到底是什么其实很多人还是不清楚的),了解基本的html、css和javascript语法(这些语方面的东西网上随便搜一下就有很多很多,基本的语法是整个技术体系最重要 的东西了,领先的 Web 技术教程 ),可以根据设计师的设计图在不考虑兼容性的情况下把页面做出来,了解过一些框架的使用(例如烂大街但是依然牛逼的jQuery、zepto、 bootstrap等等)。
在经历过入门的阶段,已经了解了前端要做什么,并且把基本的语法学习过了可以独立做一些简单的页面了,那么就要继续学习达到初级前端工程师的水平,对于初级的前端工程师需要了解的就特别多了,需要对整个前端有一个清晰的认识,并且熟练使用各种技术。
初级前端工程师:首先要知道的就是如何处理各种浏览器的兼容处理(比如说在IE浏览器中的createElement有什么不同等等内容),现在基本上每个公司在招聘的时候都会要求熟练html5, css3, javascript,这个熟练的意思就是信手拈来。
在下面会说初级前端工程师应该具体的学习哪些知识,然后就是要了解各种css的预处理器和后处理器, 还有会使用常见前端的MV*框架(angularjs, backbone,reactjs等等)并知道这些框架的原理,另外就是要熟练使用nodejs,要会使用基于node的各种前端构建工具 (grunt,gulp等等),熟练使用github或gitlab,对模块化、组件化、工程化、语义化有一个比较深入的了解,最后要知道如何开发移动端 的页面,如何去优化一个页面的性能。
初级web前端工程师的技术体系
1.HTML部分
首先是要掌握一些常用标签的使用和他们的各个属性,这些常用的标签我总结了一下有以下这些:
html:页面的根元素。head:页面的头部标签,是所有头部元素的容器。body:页面的主体标签,页面展现的内容就放置在这里面。title:页面的标题。meta:位于文档的头部,提供页面的元信息,包括关键字、描述等等。link:定义文档与外部资源的关系,最常用的用途就是引入样式表。script:脚本标签,可以把js脚本代码放置在这个标签内,也可以使用这个标签的src属性引入一个外部标签。style:样式标签,可以把css代码写在这个标签中。
a:超链接,href属性代表要链接到的地方,target属性代表打开方式。img:图像标签,src属性表示图片的位置。form:表单元素,它内部的input、select、textarea等标签都是比较重要的。div:定义文档中的分区或节,可以使用div来进行页面的布局等操作。另外还有ul、li、p、button、iframe、p、table等标签也很常用,nav、section、article、header、aside、footer等语义化标签也需要了解一下。我还是要推荐下我自己创建的web前端资料分享qun:600610151,这是web前端学习交流的地方,不管你是小白还是大牛,小编都欢迎,不定期分享干货,包括我整理的一份适合零基础学习web前端的资料和入门教程。
除了要了解上面这一些标签之外,还需要对一些新的HTML5的API有一定的了解:
audio、video标签。
Canvas:定义图形,比如图表和其他图像。
input标签的accept属性,email、phone、url等类型。
getElementByClassName根据class名来获取一个元素结点。
Multiple file selection多文件选择属性。
html的import、template
process标签,webGL等内容。
还有一些要知道的知识点:
1.doctype的作用。2.unicode、utf8等编码的原理和区别。3.如何进行页面性能优化。4.png、jpg、webp、gif等图片格式的不同的优势。5.HTML行内元素与块级元素的区别。6.移动web端开发常用head标签。7.web语义化。8.浏览器中的缓存原理。
2.CSS部分
关于css这一块,我的看法就是网上下载一个chm格式的css的参考手册,然后根据手册里面写的一个个的都敲一下。
css大体分为下面这几块知识点:
① 定位布局
1.position属性的7个值(static | relative | absolute | fixed | center | page | sticky)分别有什么作用和不同?
2.实现品字形布局或者是三栏布局(左右宽度固定,中间适应屏幕)。
3.浮动与清除浮动的方法,flex布局,grid布局。
② 盒子模型
1.margin、padding、border这三个属性。
2.伸缩盒相关内容。
3.Multi-column Layout Module多列布局模型。
③ 文本字体
1.强制换行与不换行,清除空白。
2.文本对齐、大小(如何设置chrome小于12px的字体)、缩进、转换。
3.单位(em、rem、px等),颜色(rgb、rgba,hls)。
④ 变换、过渡和动画
1.transform的各种取值的作用与兼容性。
2.transition过渡的动画类型,贝塞尔曲线的原理。
3.animation动画的各种设置,@keyframes规则。
4.浏览器的重绘与重排。
⑤ 选择器
1.选择器的分类,权值和优先级。
2.有哪些属性可以被继承,哪些属性没法继承。
3.伪类和伪元素分别是什么,有什么作用。
上面这些都是基础的东西,除了这些基础的内容之外需要了解Less、Sass、stylus等css预处理器,这将会大幅度提升你的css开发效率,也需要了解一下Autoprefixer、PostCSS等css后处理器。
3.JavaScript部分
在这里就不说js的基础知识了,我把js按照语法的层次和使用的层次分为了两大块。
按照语法的层次来说:
首先是javascript的面向对象方面的内容:在javascript中实现封装、继承和多态。
① 封装:在js中可以通过闭包、作用域和作用域链来实现封装,ES6的const、let的作用。
② 继承:基于原型链的继承、基于构造函数的继承、组合式继承、寄生式继承等,外加ES6的class关键字,prototype和__proto__。
③ 多态:在javascript中多态是使用arguments来实现的,关于arguments会引申出来很多内容:
1.arguments的caller、callee等方法的作用。
2.方法的apply和call的作用和不同。
3.使用Array.prototype.slice.call来把一个数组对象转化为数组。
4.array的各种方法,如shift、splice、push、filter、map、reduce、forEach等等。
然后是Js的设计模式,比如说那三种工厂模式啊,建造者模式啊等等。
最后是在不同情况下的this分别都代表什么。
按照使用的层次来说:
首先最主要的就是ajax,ajax的原理,ajax跨域的方法:jsonp、使用iframe的location.hash、postMessageAPI、websocket、服务器代理等等。
然后是tcp协议、udt协议以及http协议的协议头、状态码等内容。浏览器的缓存,客户端存储方面的内容:localstorage、sessionstorage、indexDB、cookie等等。
最后是一些新的js的API,例如文件读取(fileReader)、fetch、Promise、Web Sockets等等内容,可以去caniuse上面看一下有哪些新的东西。
上面我所说的这些只是一些比较笼统的概念,把前端html、css和javascript所需要掌握的部分内容列举了一下,在前端领域还有很多需要我们知道的知识,这需要大家在学习工作的过程中去自己总结。
关注我的头条号,分享更多的技术学习文章,我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取.
*请认真填写需求信息,我们会在24小时内与您取得联系。