你用过哪些好用的开源软件?

JavaScript093

你用过哪些好用的开源软件?,第1张

我推荐一个基于spring cloud 外延的一个开源项目,主要是针对企业信息化方向的,做得比较不错能开源,支持商用。

里面实现了 SaaS(用户与租户的多对多关系)、统一多模式登陆、在线表单配置、在线列表页配置,在线流程配置,在线图表配置等等。

1、渐进式 JavaScript 框架 Vue.js

官网:https://cn.vuejs.org/

2、高性能Java RPC框架 Dubbo

官网:http://dubbo.apache.org/zh-cn/

简介:Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

3、经典模块化前端框架 Layui

官网:https://www.layui.com/

简介:Layui由职业前端倾情打造,面向所有层次的前后端开发者,零门槛开箱即用的前端UI解决方案。

4、JavaScript 可视化图表库 ECharts

官网:http://echarts.baidu.com/

简介:ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

5、基于 Node.js 的前端代码检查工具 FECS

官网:http://fecs.baidu.com/

简介:FECS 是基于 Node.js 的前端代码风格工具套件,包含对 JavaScript、CSS 与 HTML 的检查、修复及格式化。

6、开源项目管理软件 禅道

官网:https://www.zentao.net/

简介:禅道是第一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。我们团队就在使用这款项目管理软件,感兴趣的小伙伴也可以试用下哦。

7、JAVA 极速WEB+ORM框架 JFinal

官网:http://www.jfinal.com/

简介:JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :) 。

以上为抛砖引玉,希望大家分享更多的开源软件,共同进步哦!

相比较,homeassistant 更强大,之前只有英文版,现在有中文版了。https://www.hachina.io/docs/321.html

docker,kafka,rabbitmq,redis,mysql,dubbo,consul,sqlite,vue,react,eshop还有啥?

freeradius,nginx,sphinxsearch。。

尤雨溪是一名优秀的软件开发人员,同时是开源JavaScript框架Vue.js的作者。近日,Evrone网站在一次访谈中与他讨论了Vue 3的发布,并分享了他对无后端和全栈开发方式以及Vue.js用例的看法,以及如何平衡工作与生活的方法。

访谈

Evrone:你好,尤先生,很高兴见到你!我想提问的第一个问题是:你全职从事的项目由Patreon提供资助,这一点非常独特。你如何平衡工作与生活,避免过度疲劳呢?

尤雨溪:虽然我是自雇者,而且在家工作,但每天我都会遵循固定的时间表。其实养育孩子在这方面有很大的帮助,因为每当我不工作的时候,就会(必须)和家人在一起。还有一个很重要的方面是,每当我感觉有需要的时候,就会休息很长一段时间(数周),假如我是一名公司的全职员工,则不大可能这样休假。

Evrone:真了不起!Vue 3版本即将发布。在发布之后你打算休息一段时间,还是已经有了开发下一个版本的Vite构建系统的新计划?

尤雨溪:我有很多尚待完成的工作。对于Vite来说,当前的目标实际上是让它稳定,这是一个新系统,人们正在尝试各种使用方式,有些甚至不在我最初的设想中,因此我们打算等待一段时间,看看下一步的发展。关于Vue 3.1我也已经有了一些想法。但是我一定要休息一段时间,充电很重要!

Evrone:你曾是Google创新实验室的一名创意技术人员,而且你的专业背景是艺术史。在开发Vue的过程中,你是否感觉自己欠缺数学、算法和数据结构方面的教育?是不是我们都需要学习计算机科学理论,才能成为真正的程序员?还是说我们需要学习如何成为“软件编写者”,而且喜欢无聊却易于理解的代码?

尤雨溪:老实说,我并没有太多感觉,我个人认为一般来说Vue或前端框架不是一个特别需要数学/算法的领域(例如,与数据库相比)。我不觉得自己在算法或数据结构方面很强。这方面的学习肯定会有所帮助,但是对于建立一个流行的框架,了解用户、设计合理的API、建立社区以及长期的维护承诺更为重要。

我认为成为“软件编写者”与编写“乏味但易于理解的代码”并不矛盾。实际上,编写无聊但易于理解的代码需要一定的经验(前提是这些代码并非极度低效)!我认为即便你没有经过严格的计算机科学培训,也不必觉得自己没有资格编写软件,但你也不应该忽略这些知识欠缺。我个人采取了务实的方法,我曾用最蠢笨的方法做了很多事情,并从中了解我需要学习哪些知识才能提高自己。

Evrone:好厉害。自从有了Nuxt.js和JAMstack之类的许多技术之后,开发人员都想完全专注于应用程序的前端部分,并使用最低限度的后端,比如JS、BaaS等。你如何看待这些“无后端”或“全栈”的方法?

尤雨溪:我认为这更像是正在制造的产品驱动着正在使用的技术。开发人员之所以选择这种技术栈,是因为适合他们正在构建的产品类型:相对简单的后端逻辑,他们需要更多地关注前端交互。这种方式显然不是灵丹妙药,但非常适合某些类别的应用。

Evrone:Vue被重写了很多次。如果时光倒流,你可以给年轻人一个技术建议,那么将是什么?

尤雨溪:如何更好地分离和解耦内部模块。

Evrone:在过去的几年中,我们看到了JavaScript和TypeScript的并行发展。你觉得近期会出现怎样的发展:我们最终会将类型添加到核心的JavaScript中,还是说TypeScript取代JavaScript,或者会出现其他情况?

尤雨溪:我认为将类型添加到JS本身是一个漫长的过程,我个人认为不会出现这种情况,因为让委员会设计一个类型系统是……(根据TC39的经历来判断)不切实际的。TypeScript不会取代JS,因为它是JS的超集。我个人认为,让JS和TS(带有类型的超集)并行发展是最实际的方法,并且在可预见的将来也是如此。

Evrone:Vue的用户群已超过一百万。你认为衡量技术采用率的最佳方法是什么?Stack Overflow上的提问次数、GitHub上的星数和其他公共访问指标都很棒,但是有很多公司用户在隔离的网络上工作,他们并没有提出很多问题,只是“使用技术”。我们如何统计这部分采用率呢?

尤雨溪:这对于开源软件而言是一个内在的难题,因为用户没有义务报告使用情况,而作为作者,我们确实没有可靠的方法来统计采用率,尤其是很多应用都没有公开。因此,我认为开发者工具扩展的用户数是最可靠的指标,因为它考虑了所有用户。

Evrone:即将到来的Vue.js3在摇树算法(Tree shaking)方面付出了大量努力。作为一款现代框架,你觉得为什么加入摇树算法花费了这么长时间?有什么重大难题吗?

尤雨溪:摇树的原理以一种特别的方式依赖于源代码的结构,这意味着最好从编码和设计API的一开始就考虑摇树。将现有的大型代码库变成摇树算法可以利用的形式非常困难,因为需要大量修改API或进行重大重构(风险巨大)。

Evrone:有关Vue 3中“基于函数的组件API”提案遭到了社区成员的强烈反对。你有什么想法与其他开发人员分享吗?

尤雨溪:反对意见主要是因为担心我们会弃用Vue当前(2.x)的API,而我们认为这是一个错误的想法。作为作者和维护者,我们常常在日常工作中与热心的早期采用者互动,对于新的想法,他们自然比新用户更感兴趣,这导致我们误解了向后兼容性的重要性。用户不喜欢弃用现有的功能。

重点在于,你需要了解用户的需求,这不是特别容易,有时你很难获取这样的信息,但无论怎样你需要认真听取大家的意见。

Evrone:Vue的用户范围非常广泛,从小型企业到中型代理机构,再到数十亿美元的上市公司,就连Louis Vuitton和NASA都在使用Vue。你能否推荐一个用Vue编写复杂前端的真实例子?

尤雨溪:问题在于,大多数复杂前端的项目都不是开源的。我建议你看看Vue开发者工具和Vue命令行工具,尽管二者不是常见的面向消费者的Web应用程序,但都是用Vue编写的比较复杂的界面。

总结

我们与尤雨溪进行了愉快的交谈,并了解了他的生活与编程方式。我们经常使用Vue.js创建可满足客户独特需求的定制解决方案。我们非常高兴有机会向该技术的作者讨教,增强我们的专业知识,同时也希望他们为我们提供更多可用于开发创新产品的工具。

用户不喜欢弃用现有的功能。重点在于,你需要了解用户的需求,这不是特别容易,有时你很难获取这样的信息,但无论怎样你需要认真听取大家的意见。