这几天研究了十几款低代码工具:

iVX 活字格 无远 牛刀 APICloud 氚云 宜搭云 明道 Power Apps 天翎 云表 workfine fineReport 魔方网表 炎黄盈动|AWSPaaS 红圈

如何选择低代码/0代码平台(最全平台总结)_第1张图片

各低代码平台

如何分析这些不同类型的产品呢?我总结了几个点,希望对大家有帮助:

  • 看这个产品到底能做什么?

  • 能做成什么样子?

  • 特别是支持的应用场景有哪些?

  • 支持系统有哪些?

A 看看网站或自身有没有什么页面是通过自身的平台开发的?如果自己平台都没有使用又怎么放心给用户使用呢?例如,iVX平台全系产品都是通过iVX自身迭代开发的、牛刀网站的大部分都是用自己的平台开发等等

B 看看应用是不是都长一个样?对于很多平台来说,偏模板属性,例如BI、报表等,看来看去就只能做成那个样子,至少说明应用的局限性或至少是前端能力比较弱。

C 调一个比较复杂的后台逻辑来看看,能不能通过非代码的方式来实现?或者看看,如果不写代码,最难能做成什么样?如果这部分没有验证过,后面对于具体项目开发,肯定是一个大坑。特别是低代码平台,由于可以引入代码来开发,好像成为了万能的工具,但其实这是由于代码本身就是万能的,而非平台之功。如果好的低代码平台,代码几乎是可以不用的(例如0代码),或者引入代码只是很少的辅助作用,因为平台能力本身很强。但是,如果平台是辅助,而代码开发是主体,那就本末倒置了,低代码平台就显得鸡肋。


  • 看教程、看文档、看Demo、看模板,看学习资源是否完善?

A 看数量和规范程度,有些刚刚开始做的平台,这方面内容会非常少,导致无法自学;或者至少是在学习资源上没有下功夫。

B 看时间,时间越近越好,有些平台是已经做了很久,这本来是好事儿,说明积累时间长(因为低代码开发平台本来就是很有难度的事儿,很难短时间内做好)。但是,当我学习牛刀的时候,居然看到了2014年左右的教学视频,这个就让我比较震撼了,说明平台太长时间没有更新迭代了。课程方面,活字格还是做的不错的,课程很全面,除了官方发布的课程,还有用户的分享课程,课程内容更接近用户的需求。


  • 看架构(整体架构、前端架构、后台架构)、看产品、看收费

A 看架构,首先看整体架构是B/S还是C/S,建议大家还是重点关注B/S架构的,毕竟C/S大家懂的,不光难看,而且确实这种产品早晚要被淘汰的,而且也不符合云计算的发展方向;前端架构最好是React的,当然VUE也还可以(对复杂单页应用React性能会更好一些);后台最好不要是PHP的,或是绑定微软系的产品,例如绑定Azure、Excel、SQLServer、Access...这样系统灵活性就被框死了。

B 看产品,主要看一下产品设计、交互UI、弹框数量...等等产品属性的东西,好的产品总是提供一个最短路径给你,让你使用成本变得很低;如果产品设计不好,有可能做一个同样的东西,你要增加好几倍的操作,操作越多学习时间更长,而且犯错机会也会大好多倍。

C 看费用,这个大家都会看,这个就看大家的消费能力了,没啥好说的。就一点,通过看收费模式,基本可以确定这个产品是否是面向你们群体进行服务的,如果不是就不要尝试了。


接下来,重点来了,我把上面方法论在十几款产品上做了分析,同时还将所有产品,按用户类型分为两类:

如何选择低代码/0代码平台(最全平台总结)_第2张图片

适合开发人员使用

如何选择低代码/0代码平台(最全平台总结)_第3张图片

适合业务人员使用

一类是“适合开发人员用的”,这里的开发人员是说,学习和操作这个产品可能是一种单独的岗位分工——“开发”,甚至可以形成一种专门的职业(例如:产品、测试和设计师可以学一下,了解一下这个平台,但是兼职做这个平台开发我个人觉得不太合适)。但是,这个“开发”,并不一定要写代码,例如iVX系统,已经是一套完备的0代码开发体系,没有必要再写代码了,但是做的事情仍然是“开发”;活字格、无远等在管理系统的开发方面十分的便捷出色,同样做到了低代码可视化开发。

另一类是“适合业务人员用的”,这个就很好理解的,就是这种平台非常简单,学习一下也很快,业务人员可以直接操作,当然灵活性会稍微小一点儿,场景也会窄一些。

建议大家更具自身的场景需求去平衡这些各种因素,同时考虑到系统的可维护可扩展,“鱼和熊掌兼得”。


前段时间做调研,发现国内除了阿里云、华为云、腾讯云,很多PaaS企业,包括涂鸦(IOT PaaS)、有赞(有赞云PaaS)、徐工、吉利(工业互联PaaS)、恒生电子(Light云)等等,都正在推出或者计划推出低代码应用开发平台。文章尝试通过对应用软件研发发展阶段的分析,提供一个看待这一趋势的视角。

第一阶段,面向用户直接需求的应用软件研发

在互联网普及之前很长一段时间,软件厂商主导了应用软件研发,典型的产品是各种ERP、CRM软件。这个阶段的应用软件研发从业务层面可以归结为,根据企业(或组织)生产、经营、管理等各方面的需求、结合科学管理知识,研发出软件系统并应用到企业(或组织)的过程;从IT技术层面可以归结为,基于IOE软硬件平台,使用各种通用编程语言,采用瀑布流的组织方式,研发出应用软件的过程。互联网初始发展阶段,从IT层面很大程度上借鉴了软件厂商的经验。随着互联网基础设施的完善、入网人数快速增加,互联网应用软件出现爆发式的增长,技术和软件研发模式发生了巨大的变化,包括去IOE、云计算、大数据等等,充分体现了需求牵引生产力的发展。

虽然软件厂商跟互联网企业有诸多不同,但是他们也有一个较为明显的共同点,就是几乎所有的研发投入都聚焦在面向用户直接需求的应用研发上(软件厂商主要是面向企业经营管理需求、互联网企业主要是面向个人工作生活的需求),很少有专门为应用集成研发的产品,也很少有专门为应用研发团队提供服务的研发团队。这一情况类比到制造业,几乎所有的软件厂商和互联网公司都是成品厂商,没有零部件厂商。所以我把这个阶段归纳为“面向用户直接需求的应用软件研发”。

但是社会发展充分证明了分工可以提升效率实现创新,于是在应用软件研发领域PaaS和中台就出现了。

第二阶段,PaaS服务(中台)

PaaS主要来源于应用软件研发过程中共性的、具有较高可复用价值的需求和能力。我觉得大致可以分为三类,一类是可共用的技术性产品,比如大数据、人工智能、IoT平台等;第二类是在一定范围内可以被标准化的领域服务产品,比如商品、订单、支付服务等;第三类是流量和关系链为核心流量平台,比如微信、钉钉的小程序平台。这些PaaS可以为上层应用软件研发提供独特的能力。PaaS从软件服务向组织职责延伸,就形成了所谓的中台。

PaaS的出现实际上是对应用软件研发活动和程序员职责的一种分层,通过分离关注点、提升专业度和能力复用,降低应用软件研发的整体复杂度和提升效能。PaaS和中台起始于互联网,但是深刻影响到企业软件服务领域。关于PaaS和中台的讨论非常多,大家了解也比较多,这里就不啰嗦了。但是需要说明的是一点是,由于种种原因,起初企业构建的PaaS(中台)往往只服务于企业内部,这实际上限制了PaaS发挥的价值。

第三阶段,开放平台

当PaaS能力越来越通用化、标准化,价值逐渐被市场认可的时候,自然就形成了构建开放平台的动机。即使有些企业没有明确“开放平台”的叫法,但实际上在打造对外服务的PaaS平台时其实做了开放平台的事情:比如租户、账户体系、资源授权管理、计量计费以及各种维度监控和数据统计等能力。

开放平台的主要目的是PaaS能力的开放,把原先只面向企业内提供能力 转变为面向其他企业、组织甚至个人提供。这里有两点值得关注:

  • 开放平台主要目的是PaaS能力的开放。这意味着使用这些能力的企业、组织和程序员怎么用这些能力、用来做什么、能否用好,其实并不是平台关注的核心,管理的手段也较为有限。

  • 开放平台创造了增量,但增量有限。各种PaaS开放平台的推出,使得某些应用软件的构建成本大幅下降,使得很多创新企业或ISV通过组织小规模的研发团队也逐渐具备研发、交付较复杂的应用软件的能力,这是开放平台产生的增量。但由于PaaS开放平台先天定位的不足,使它的增量价值受到较大局限。

我们来看一个例子,某互联网企业在运营推广其IM/视频PaaS平台的时候遇到了如下困境:

  • 产品经理的困境是,如果API/SDK设计过于抽象,就会有程序员来吐槽不好用;如果设计的较为具体,则容易限制使用场景。

  • 解决方案设计经理的困境是,面对几乎所有用户需求场景,IM/视频直播都只是必要条件而非充分条件。好比手上拿着最好的发动机和轮胎,但是客户要一辆车,总得给找齐各种没有的东西,还得说清楚怎么组装,这其实是挺复杂的事情。

  • 解决方案交付经理的困境是,要把解决方案架构师画在PPT上的应用解决方案给实现出来交付出去,就得组织合适的研发资源,但由于这不是PaaS平台核心的业务,因此只能找生态伙伴来做。一来项目效率和质量得不到保证,二来项目交付可能无法留下有价值软件资产,项目二期迭代的时候,可能也会遇到种种困境。他需要一个既能做应用开发、又能沉淀软件资产、并且能有效组织生态的平台,但显然PaaS开放平台不适合这样的定位。

这些困境真实体现了PaaS开放平台在满足应用软件研发需求方面的不足,只有有效解决上述这些问题,才能充分发挥PaaS平台价值,这也成为PaaS企业进一步发展的动力。

第四阶段,低代码应用开发平台(aPaaS)站上风口

低代码应用开发平台能比较好的解决PaaS平台在支撑应用软件研发最后一公里上的不足,进一步拓宽PaaS的增量价值,这是不少PaaS企业开始着手打造低代码的直接动机。

  • 对PaaS产品经理来说API/SDK被设计成各种低代码的组件,成为低代码应用设计体系内的一部分,可以有效降低学习和使用成本。

  • 对解决方案设计经理来说,他原先画在PPT上各种客户解决方案可以变成低代码平台上的各种应用模版,可以有效拉近和客户需求之间的距离。

  • 解决方案交付经理来说,低代码平台可以有效解决客户解决方案设计实现、资产沉淀、版本管理,规范生态伙伴的合作。

由于PaaS本身代表了某些垂直领域较高的技术和场景壁垒,因此基于PaaS推出低代码开发平台在某些领域天然具备技术或者场景的优势。另一方面,我们也看到很多没有PaaS基因的低代码平台推出,这些平台可以考虑主动对接集成一些PaaS平台能力,这将有利于低代码应用场景的完善,也将有利于生态的繁荣。今天互走出的这一步,可能改变甚至造未来软件研发模式。

思考总结:

梳理和思考事物发展的脉络,有助于发现事实的真相。PaaS是互联网发展过程中自然形成的一种解构应用软件研发的方式,低代码则是抽象特定领域场景应用软件研发的一种方式,两者有比较好的互补性。认识到这一点,将有助于PaaS及低代码平台的产品设计。


近年来低代码概念大火,国内低代码市场百花齐放,好不热闹,其中,PaaS/SaaS作为两个高频词汇更是争得有来无去,叫许多用户都看花了眼:究竟什么是PaaS/SaaS,两者又有什么区别呢?



SaaS(Software-as-a-Service),软件即服务,即通过网络提供软件服务,以租代售。



PaaS(Platform as a Service),平台即服务,提供一个基础平台(包含应用设计、应用开发、应用测试和应用托管等),用户可以基于平台自定义开发出自己所需要的应用和产品。



SaaS化与PaaS化平台的区别在于:



1、售卖主体不同:SaaS化更多偏向于出售服务,包括软硬件服务以及咨询、维护等人力服务;PaaS则是售卖平台本身,而服务只是附加价值;



2、收费结构不同:大多数SaaS平台都采用按使用时长、按服务内容来收费,包括维护、合规性和安全性服务;PaaS平台一次性买断,购买后可以无限次重复使用。



3、部署模式不同:SaaS采用公有云部署,数据保存在提供商的服务器上;PaaS平台数据保存在自己服务器上,由自己处理;



4、拓展性不同:SaaS平台是标准化产品,灵活性较低,不能满足企业个性化需求;PaaS平台则可以按照企业需求灵活拓展。



PaaS化的低代码平台更胜一筹



根据海比研究院2021年的两份市场研究报告,中国市场整个PaaS行业的周期都还处在上升阶段。2020年SaaS市场未来复合增长率为26%,而PaaS的合增长率为48%,将于2025年突破2000亿元。



显而易见,随着信息技术的发展,PaaS越来越多地展现出他的优势:



1、可以更加灵活地选择部署方式(如私有云或本地化部署,数据和权限掌握在自己手里,安全、可控,使用灵活。



2、轻松实现内外网隔离,顺畅实现整合对接,大大提高系统的稳定性与实用性;



3、拥有更大的定制化空间,发生需求变化时,也能随时对系统进行更改或拓展。



作为国内开放性最好的Pass平台—飞速低代码



专注于云原生全场景低代码及数字基础设施,公司研发团队深入研究和实践面向对象业务建模、前后端分离开发技术、云原生、微服务框架等,具有软件开发全生命周期平台产品,曾帮助腾讯、格力、碧桂园、OPPO、立邦集团、扬子江药业等多行业多领域大机构成功实现数字化转型和升级。



私有化部署,为数据安全保驾护航



与SaaS化平台的公有云部署不同,飞速低代码平台支持私有化部署。



私有化部署分为本地部署或私有云,对于安全有着高要求的用户企业,可以将系统部署在本地,轻松实现服务器的物理隔离,从网络基础设施层面,保证数据库和服务器安全可控;而对于需要使用互联网访问应用的企业而言,也可以按照需求选择私有云部署,在享受应用和数据掌控权的同时提高访问的灵活性。



业内领先技术,为开发强势赋能



飞速低代码平台采用业内领先松耦合&高内聚的微服务架构的微服务架构、支持SpringCloud模式,满足系统快速开发、灵活拓展、无缝集成和高性能应用等综合能力;采用前后端分离模式,前端支持vue\anguer\小程序,后端springcloud,技术与业务逻辑分离,系统升级不影响公司业务,系统运维升级更方便;并且全技术栈匹配,灵活引入AI,大数据服务,算法等各种能力。



超强集成能力,系统无缝对接



SaaS平台的不灵活性容易导致“数据孤岛”,飞速低代码平台通过API接口调用,为用户提供超强系统整合能力。飞速数据中台通过采集、存储、计算、治理技术形成统一标准和口径的数据资产服务,解决数据孤岛、数据资产流失、数据服务能力不足、数据价值低的问题,最终使数据能够赋能业务场景、为企业产生业务价值。



源代码交付,实现二开自由



飞速低代码平台提供大部分源码,保障企业在不同的应用阶段、不同层次和不同规模的服务需求都能得到满足;用户在源码的基础上,还可以根据自身需求实现个性化业务场景,不依赖于我们平台运行;根据平台开发出来的系统还能自由申请软著。



支持复杂全场景



面向开发者,提供复合模型驱动的可视化开发,覆盖业务全场景应用。通过前后端微流、拖拽组件生成代码进行手工修改,解决复杂逻辑。



飞速低代码平台,经历头部行业客户复杂业务场景和技术的严苛挑战,拥有超强的目光与强大技术,在用户体验上做极致,想客户之所想,解客户之所忧。


牛刀专业低代码PaaS平台 —— 企业应用一站式开发、部署、运维

为专业开发和企业应用而生,实现低代码开发和PaaS平台无缝衔接,打造高生产力DevOps开发流水线,全面提升应用规划、开发、部署、运维和治理

专业低代码核心能力

可视化开发和设计

全面的可视化设计和开发支持,包括应用基本架构、服务、数据、代码、页面等,都能完全可视化、拖拽式设计


全业务建模支持

专业的业务建模能力,真正的业务模型驱动,涵盖企业工作流、组织机构、权限、数据、业务规则、业务逻辑、报表等全面的企业业务模型


全组件化开发体系

全组件化开发体系,提供组件和模板市场,开发者可以设计和发布自己组件,模块,实现高水平的重用和定制


专业化、白盒化

为专业开发而生,保持系统白盒化,同时提供云IDE和本地IDE,端云互联,自动同步,保留专业和代码开发全部能力


支持团队专业分工协作

为团队开发中的各主要角色,包括业务建模人员、开发人员、定制维护人员提供专用工具和界面,并实现工作高度协同


企业PaaS核心能力


云应用治理

基于PaaS和DevOps一体化的应用治理,实现企业云应用发布、审核、部署、更新、升级、监控、运维的全生命周期的统一管理


应用市场/资产中心

基于统一、开放的云应用规范,构建企业的云应用市场和资产中心,实现高水平的企业应用规划、管理、定制、定制、分发、复用


多租户管理

基于多租户模式,为多机构、多层级、多业务提供应用隔离、定制和运维,轻松实现应用的集中或分布部署、即时发布


资源智能调度

基提供独立主机集群部署、容器集群部署、共享资源池部署等多种灵活部署方式,支持资源的自动化调用和智能调度


开发运维一体化

低代码开发和PaaS无缝对接,支持一键发布、秒级部署,提供设计、开发、测试、部署、运维的一体化、一站式支持

企业业务中台服务能力

门户服务

提供多终端门户入口,支持客户个性化定制,支持第三方登录、菜单、页面、待办和信息展现的全面集成

组织权限服务

提供多层级组织架构,支持多组织树和一人多岗;支持RBAC角色授权体系;支持与第三方系统组织集成

工作流服务

专业工作流引擎,支持BPMN规范,并扩展支持会签、回收、任务批处理和子流程等模式,支持集成钉钉和企业微信

报表服务

支持各类复杂报表和中式报表,可视化设计,所见即所得;
HTML、Word、Excel和PDF多格式输出;浏览器端精确打印

数据可视化服务

一站式数据可视化解决方案;支持数据门户、决策驾驶舱和数字大屏应用,支持高级交互/行业分析/模式探索/社交智能等功能

牛刀低代码   低代码开发和专业开发缺一不可,鱼和熊掌必须兼得!

低代码,高能力,面向开发者和企业应用的专业低代码开发平台,和PaaS平台无缝对接,提供开发、测试、部署、运维的一体化支持

基于PaaS、DevOps的专业低代码平台

基于PaaS、DevOps,以Docker容器、微服务、可视化、云开发技术为核心,提供从设计、开发、测试、部署、运维的一体化支持

可视化架构设计

独创的可视化架构设计,应用基本架构、服务及关系一目了然,服务组件可任意增减,拖动连线即可改变依赖关系,并按照设计图,实现自动化创建和配置开发环境、测试环境和生产环境

可视化开发

高效的可视化开发支持,包括架构、数据、服务、代码、页面的全面可视化开发支持,组件拖拽,属性设置,简单可靠,轻松高效

一切皆组件

全部基于组件化体系,提供组件和模板市场,开发者可以设计和发布自己组件,模块,实现高水平的重用和定制

满足专业开发者必备的双IDE

为专业开发者同时提供Web IDE和桌面IDE两种专业的集成开发环境,端云互联,代码同步,支持线下本互联地编程开发调试,云端联机运行,保证专业和代码开发全部能力

新的DevOps生产流水线

与传统开发模式不同,在低代码PaaS平台上的新DevOps流水线,以应用市场和租户为关键节点,实现了云应用开发、管理、部署的彻底脱钩,大幅简化应用生命周期的复杂度和关联度,革命性提升软件流水线的效率、可维护性

牛刀PaaS平台  全面提升云应用规划、部署、运维和治理

企业级PaaS平台,革命性提升企业的云应用规划、开发、部署、运维和治理,支持公有云和100%私有化部署

牛刀PaaS平台核心能力

PaaS平台是SaaS-PaaS-IaaS云架构的重要一层,提供了高生产力开发、应用市场/生态、资源调度、多租户、数据中台、业务集成、公共服务等重要能力,为企业云应用的规范、共享、部署、运维、集成和治理提供全面支持

云应用治理

建立统一的企业云应用规范,实现对应用发布、审核、部署、更新、升级、监控、运维的全生命周期的统一管理,为企业提供全新的云应用规划、开发、部署、运维、治理的全面支持

云应用市场

基于统一、开放的云应用规范,构建类似苹果AppStore的云应用市场。实现高水平的企业应用规划、重用、管理、定制、共用

多租户/多业务

基于容器化、微服务基础技术,为企业提供多业务隔离、多租户隔离支持,为集团型企业和跨组织合作提供强力支持,轻松实现组织内外业务系统的统一规划、集中或分布部署、即时发布、灵活定制,助力企业打造随需应变、高效协同的数字化业务系统

弹性部署

提供公有云、私有云环境下各种方式的弹性部署方式,包括独立主机集群部署、容器集群部署、共享资源池部署等,满足企业多样化的技术环境和术要求

智能调度

支持资源自动化智能调度,最大效率利用资源。为企业的高频应用和低频应用提供优化运算资源调度方案,当应用需要访问时,进行快速分配运算资源并启动运行。当一段时间没有用户访问后,会自动回收运算资源

典型应用案例   牛刀在各行业获得众多成功应用

牛刀平台被众多开发商和企业采用,成功应用于政府、基础设施、军工、金融、制造、航天、能源、交通和建设等各个领域和行业

大型建筑企业项目管理系统

国内某主流物联网厂商采用牛刀推广的工业互联网应用平台

大型核电集团的核电站安全生产管控系统

国内大型软件企业采用牛刀开发推广的城市智慧管理系统

国内某运营商的大规模乡村数字化应用

水利局系统的大型流域水务项目管理系统

国内某大型药企自主研发的销售管理系统

大型城市地铁运行监控系统


这里简单说明一下在Windows系统下开发SpringCloud项目所需要的的基本环境,这里只说明开发过程中基础必须的软件,其他扩展功能(Docker,k8s,MinIO,XXL-JOB,EKL,Keepalived,Nginx,RabbitMQ,Kafka等)用到的软件会在具体使用时详细说明,本地开发的环境软件以Windows版本的安装配置为例,数据库等中间件以Linux(CentOS7)的安装配置为例,其他系统Mac/Linux可自行配置。



后端开发需要准备的环境及软件有:JDK 1.8+,Maven 3.6.3+,Mysql 5.7.11+,Redis 5.0+,Nacos 1.4.0+,Sentinel 1.8.0+,IntelliJ IDEA 2020.2.1



前端开发需要准备的环境及软件有:Node.js 15.9.0+,npm/cnpm/yarn,Visual Studio Code



实际上环境软件可以使用Docker安装,更加简单方便,如果说自己为了更详细地了解各项配置及安装原理,还是通过软件包一步步安装配置(这里暂不深入讨论数据库、消息中间件等应不应该使用Docker安装的问题),以下为详细安装操作步骤,不是小白请略过...



后端开发所需环境及软件安装步骤:



一、安装JDK



2019年4月16日,Oracle发布了Oracle JDK的8u211和8u 212两个版本(属于JDK8系列),并从这两个版本开始将JDK的授权许可从BCL换成了OTN,也就是从这两个版本开始商用收费。当然,个人开发和测试并不会收费,那么商用环境我们可以有两个选择: 下载之前的版本(2019年1月15日发布的Oracle JDK 8u201和8u202)进行使用或者选择使用OpenJDK。目前我们一般的做法是在本地开发环境使用Oracle JDK ,在测试环境和正式环境中使用OpenJDK。为了保持使用的特性一致,需选择合适的版本。



我们这里在开发过程中选择使用Oracke JDK, Oracle JDK官网下载选择页面已标注好8u211后面的版本和8u202之前的版本方便下载,下载地址 :
https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html



Oracle JDK官网下载页面



1. 选择JDK免费版进行下载,根据自己合适的Windows系统版本下载,我这里选择Windows x64版本,提前做好Oracke JDK网站的系统注册和登录,否则在下载过程中会提示登录,选择下载页面:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html



Oracle JDK下载页



2. 双击下载的Oracle JDK进行安装,根据提示一步步地点击下一步即可:



安装1



安装2



安装3



安装4



安装5



安装6



3. 配置环境变量:



在系统环境变量中添加JAVA_HOME和 CLASSPATH,并将JAVA的bin目录加入到path中



环境变量1



环境变量2



4. 验证是否安装配置成功:



运行 -> cmd命令窗口,在命令行中输入:java -version,下面出现版本信息说明安装配置成功。



Java版本信息



二、安装Maven



我们的SpringCloud项目使用Maven进行构建和依赖管理,Maven 的 Snapshot 版本与 Release 版本:1、Snapshot 版本代表不稳定、尚处于开发中的版本;2、Release 版本则代表稳定的版本。Gradle 作为构建工具最近几年也比流行,和Maven比较各有优缺点吧,如果说哪一个比较好,这个仁者见仁智者见智,我们这里仍选择Maven进行项目构建。



1. 下载安装:



Maven需要JDK的支持,我们这里选择最新的Manven版本3.6.3,需要JDK1.7以上的支持,JDK的安装以及配置在上面我们已经完成。 下载Maven的zip包,下载地址:
https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip



Maven下载页



2. 配置环境:



在系统环境变量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加Maven的bin目录: %MAVEN_HOME%\bin



M2_HOME 和 MAVEN_HOME



path



3. 验证是否安装配置成功:



运行 -> cmd命令窗口,在命令行中输入:mvn -version ,如下图所示,展示版本信息说明安装配置成功。



Maven版本信息



4. 注册阿里云私服并获取私服仓库地址:



我们可以选择安装Nexus作为Maven仓库管理器,也可以使用阿里云提供的Maven私服,配置方式都是一样的,这里我们选择使用阿里云的Maven私服(
https://maven.aliyun.com/mvn/guide),如果是企业使用,这里建议申请私有仓库:



阿里Maven仓库



私有仓库



私有仓库地址



5、配置Maven私服地址和本地仓库路径,请按下面的注释进行替换为自己的私有仓库信息。



Maven配置



三、安装Mysql



这里介绍在CentOS7上通过安装通用预编译包方式安装MySql数据库:



1. 增加用户名和用户组 :



#groupadd mysql#useradd -r -g mysql mysql ---新建msyql 用户禁止登录shell



2. 下载、解压MySQL通用编译包:



#wget ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz#cd /usr/local/ ---切换到存放源码包所在目录(这里也是安装目录)#tar -xvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz ---在当前目录解压通用编译包#ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql ---建立软链接mysql 方便操作



3. 设置权限并初始化MySQL系统授权表:



#cd mysql ---进入软链接目录#mkdir /usr/local/mysql/data ---新建数据目录#chmod 770 /usr/local/mysql/data ---更改data目录权限为770#chown -R mysql. ---更改所有者,注意是mysql.#chgrp -R mysql. ---更改所属组,注意是mysql.#bin/mysqld —initialize -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---以root 初始化操作时要加--user=mysql参数,生成一个随机的密码(保存登录时使用)#chown -R root. ---更改所有者,注意是root.#chown -R mysql /usr/local/mysql/data ---更改data目录所有者为mysql



4. 创建配置文件并后台启动MySQL



# mv/etc/my.cnf /etc/my.cnf.bak ---my.cnf 改名或删除(默认的my.cnf 会影响mysql 启动)#cd /usr/local/mysql/support-files ---进入MySQL 安装目录支持文件目录#cp my-default.cnf/etc/my.cnf ---复制模板为新的配置文件,根据需要修改文件中配置选 项如不修改配置MySQL则按默认配置参数运行。#/usr/local/mysql/bin/mysqld_safe --user=mysql & ---后台启动mysql



5. 配置MySQL自动启动



#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ---复制启动文件#chmod 755 /etc/init.d/mysql ---增加执行权限#chkconfig -add mysql ---加入自动启动项#chkconfig --level 345 mysql on ---设置MySQL 在345 等级自动启动 ***把服务文件放到/etc/init.d/目录下面相当于改为了rpm包安装的服务使用方式。



6. 配置MySQL系统环境变量



#vi /etc/profile ---编辑/etc/profile文件在最后添加如下两行:PATH=/usr/local/mysql/bin:$PATHexport PATH ---不加登录mysql 时会报错“-bash: mysql: command not found”#source /etc/profile ---使环境变量及时生效



7. 启动MySQL服务



#/usr/local/mysql/support-files/mysql.server start ---启动mysql服务#/usr/local/mysql/support-files/mysql.server restart ---重启mysql#/usr/local/mysql/support-files/mysql.server stop ---停止mysql服务



也可以用service mysql start或systemctl start mysql这样的rpm服务命令,还可以使用绝对路径/etc/init.d/mysql start来启动mysql,因为上面已经把启动方式改为了rpm服务启动方式。



8. 访问MySQL数据库



#mysql -u root-p ---连接mysql,输入初始化时生成的密码mysql> alter user 'root^'localhost' identified by '123456'; ---修改root 新密码mysql> quit; ---退出也可用exit;# mysql -u root -p ---提示输入密码时输入新设置的密码登录mysql>use mysql; ---访问数据库mysqlmysql>GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; ---创建可以远程链接的用户



9. 创建SSL/RSA文件



#cd /usr/local/mysql/bin ---切换目录#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---创建新的SSL文件



10. MySQL默认区分大小写,需要修改配置文件使其不区分大小写



在/etc/my.cnf中的[mysqld]后加入下面一行,并重启MySQL



lower_case_table_names=1



11、常见问题及解决方式:



a、登录时报错



#myslq -u root -p报错: ERROR 1045 (28000):Access denied for user 'root'local host' (using password: NO)---(不输入密码时)ERROR 1045 (28000):Access denied for user ,root,@,localhost, (using password: YES)---(输入密码时)



解决方式:



#/etc/init.d/mysql stop ---停止mysql 服务#mysqld_safe -skip-grant-tables -skip-networking & ---跳过权限表控制,跳过TCP/IP 协议在本机访问#mysql -u root -p mysql ---提示输入密码时直接到 7 丨(mysql>update user set authentication_string=password('123456,) where user='root'; --修改密码,在 MySQL5.7.9中密码字段名是authentication_string 而不是原来的password 了。mysql> flush privileges; ---刷新MySQL的系统权限相关表使其生效mysql> quit; ---退出mysql#/etc/init.d/mysqld restart ---重启mysql 服务



b、访问数据库时报错



#myslq -u root -p ---提示输入密码时输入新设置的密码mysql>use mysql;报错: ERROR 1820 (HY000): You must SET PASSWORD before executing this statement



解决方式:



mysql>alteruseruser() identifiedby '123456'; ---再重新设置下密码,注意方法与之前5.6版本的“SET PASSWORD = PASSWORD('new_password'}/MH



c、启动MySQL服务报错



#systemctl start mysql报错: Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).



初始化没有指定路径参数造成的加上参数即可#cd /usr/local/mysql#bin/mysqld -initialize-user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data



d、使用druid作为数据库连接池时,密码加密(找到maven目录下的druid包)



java -cp druid-1.0.14.jar com.alibaba.druid.filter.config.ConfigTools you_password



四、安装Redis



下面是在CentOS7中安装Redis的操作步骤,在命令行执行以下命令:



1. 下载并解压Redis安装包



wget http://download.redis.io/releases/redis-5.0.5.tar.gzcd /opt/software/tar zxf redis-5.0.5.tar.gz -C /usr/local/src



2. 编译并安装Redis



cd /usr/local/src/redis-5.0.5make && make installln -s /usr/local/src/redis-5.0.5 /usr/local/redis



3. 修改Redis配置文件



vi /usr/local/redis/redis.conf#修改内容如下:daemonize yes #开启后台运行timeout 120 #超时时间bind 0.0.0.0 #任何地址IP都可以登录redisrequirepass 123456 #redis密码123456



4. 启动Redis



cd /usr/local/redis/src./redis-server /usr/local/redis/redis.conf



5. 测试安装配置是否成功



redis-cli -h 127.0.0.1 -p 6379 -a 123456127.0.0.1:6379> KEYS * (empty list or set)127.0.0.1:6379> set user rayOK127.0.0.1:6379> KEYS *1) "user"



常见问题:



redis不能远程连接时,可能是防火墙的问题,关闭防火墙或者开放对应的redis端口即可



五、安装Nacos



Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。



1. Nacos发布地址:
https://github.com/alibaba/nacos/releases,从里面选择需要的版本,这里选择1.4.0版本,下载地址为:https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz。



Nacos发布地址



2. 下载完成后,上传到测试Linux服务器解压。(如果只想本地windows安装,可以下载nacos-server-1.4.0.zip,解压后使用方法基本一致)



[root@localhost soft_home]# cd nacos[root@localhost nacos]# lsnacos-server-1.4.0.tar.gz[root@localhost nacos]# tar -zxvf nacos-server-1.4.0.tar.gznacos/LICENSEnacos/NOTICEnacos/target/nacos-server.jarnacos/conf/nacos/conf/schema.sqlnacos/conf/nacos-mysql.sqlnacos/conf/application.properties.examplenacos/conf/nacos-logback.xmlnacos/conf/cluster.conf.examplenacos/conf/application.propertiesnacos/bin/startup.shnacos/bin/startup.cmdnacos/bin/shutdown.shnacos/bin/shutdown.cmd[root@localhost nacos]# lsnacos nacos-server-1.4.0.tar.gz[root@localhost nacos]# cd nacos[root@localhost nacos]# lsbin conf LICENSE NOTICE target[root@localhost nacos]# cd bin[root@localhost bin]# lsshutdown.cmd shutdown.sh startup.cmd startup.sh[root@localhost bin]# pwd/usr/local/nacos/nacos/bin[root@localhost bin]#



3. 修改配置文件的数据库连接,修改为自己实际的数据



#*************** Config Module Related Configurations ***************#### If use MySQL as datasource:spring.datasource.platform=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=nacosdb.password=nacos



4. 在数据库中刷入/nacos/conf目录下的nacos-mysql.sql数据库脚本,如果需要其他配置或者了解使用方式可以访问官网,官网地址:
https://nacos.io/zh-cn/docs/quick-start.html。



5. 进入到bin目录下直接执行sh startup.sh -m standalone。



[root@localhost bin]# sh startup.sh -m standalone/usr/java/jdk1.8.0_77/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/usr/java/jdk1.8.0_77/jre/lib/ext:/usr/java/jdk1.8.0_77/lib/ext -Xloggc:/usr/local/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/nacos/plugins/health,/usr/local/nacos/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos/nacos -jar /usr/local/nacos/nacos/target/nacos-server.jar --spring.config.location=file:/usr/local/nacos/nacos/conf/,classpath:/,classpath:/config/,file:./,file:./config/ --logging.config=/usr/local/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288nacos is starting with clusternacos is starting,you can check the /usr/local/nacos/nacos/logs/start.out



6、服务启动之后,可以访问http://ip:8848/nacos访问管理后台,默认用户名密码:nacos/nacos



Nacos登录页



Nacos首页



六、安装Sentinel



1. 下载Sentinel发布版本,下载地址:
https://github.com/alibaba/Sentinel/releases



2. 将下载的jar包
sentinel-dashboard-1.8.0.jar上传到CentOS7服务器,Sentinel 是一个标准的 Spring Boot 应用,以 Spring Boot 的方式运行 jar 包即可,执行启动命令



nohup java -Dserver.port=8086 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null &



3、在浏览器输入测试的http://ip:8086 即可访问登录界面,默认用户名密码为sentinel/sentinel



Sentinel登录页



4、至此,一个简单的Sentinel就部署成功了,其他更详细功能及使用方式请参考:
https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D



七、安装IntelliJ IDEA



后台Java代码我们使用目前最流行的IntelliJ IDEA进行开发



1. 下载需要的安装包,IntelliJ IDEA下载:
https://www.jetbrains.com/idea/,双击安装,一直点击下一步,尽量修改一下安装目录,不要安装在C盘即可。



安装第一步



安装第二步



安装第三步



安装第四步



2. 想办法获取到注册码,可以私信我免费获取



3. 配置默认的Maven和JDK路径



Settings



IDEA默认会读取到系统配置的JDK环境变量,具体项目可通过File -> Project Structure进行配置。



4. 通过插件中心,安装Lombok,MybatisX, Save Actions, Eclipse Code Formatter插件,后面会详细介绍几款插件的用法:



插件安装



前端开发所需环境及软件安装步骤:



一、安装Node.js



如果是刚接触Vue的话,建议学习一下
https://juejin.cn/post/6844903476661583880系列文章,介绍得很详细,虽然ElementUI已经不更新了,但是这位前端大神写的文档比AntDesignVue文档高好几个层级,AntDesignVue适合掌握一定Vue能力的人去使用学习。



1. Node.js下载地址:
https://nodejs.org/en/download/releases/



Node.js下载页



2. 双击安装包,一步步点击下一步即可



3. 检查是否安装成功



运行 -> cmd命令窗口 ,在命令行中输入 node -v ,显示node版本信息表示安装成功



查看版本



4. npm切换阿里源



命令行中执行如下命令



npm config set registry https://registry.npm.taobao.org/



5. 安装cnpm



npm install -g cnpm --registry=https://registry.npm.taobao.org



6. 安装yarn



npm install -g yarnyarn config set registry `https://registry.npm.taobao.org -g`



这里之所以cnpm和yarn都安装,是因为其各有优缺点,在使用的时候选择自己习惯的即可。



二、安装VSCode



Visual Studio Code (简称 **VSCode** / **VSC**) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。



1. 下载合适的VSCode安装包,下载地址:
https://code.visualstudio.com/Download



VSCode下载页



2. 我们这里选择的是.zip解压版,下载解压后就可使用。



3. 安装插件,打开VSCode,点击左侧下面的扩展按钮,选择需要的插件进行安装



汉化插件: Chinese (Simplified) Language Pack for Visual Studio Code



代码检查/格式化工具: ESLint



Html/js/css进行格式化对齐显示: Beautify



Vue开发工具 : Vetur



4. 配置ESLint自动检测格式化前端代码



在我们使用的前端框架中,已经生成eslint 相关的配置文件.eslintignore和.eslintrc.js,当我们编辑代码保存时,ESlint插件会将我们的代码自动按照配置好的格式进行格式化,这里介绍在VSCode中如何配置使用Eslint。



修改VSCode配置,文件->首选项->设置,在设置页,点击右上角第一个按钮,打开setting.json,修改内容为:



{//保存自动格式化"editor.formatOnSave": true,//autoFixedOnSave 设置已废弃,采用如下新的设置"editor.codeActionsOnSave": {"source.fixAll.eslint": true},//.vue文件template格式化支持,并使用js-beautify-html插件"vetur.format.defaultFormatter.html": "js-beautify-html",// js-beautify-html格式化配置,属性强制换行"vetur.format.defaultFormatterOptions": {"js-beautify-html": {"wrap_attributes": "force-aligned"}},//后面不添加逗号"vetur.format.defaultFormatter.js": "vscode-typescript",//方法后面加空格"javascript.format.insertSpaceBeforeFunctionParenthesis": true,"files.autoSave": "off","eslint.format.enable": true,//autoFix默认开启,只需输入字符串数组即可"eslint.validate": ["javascript","javascriptreact","vue","html","vue-html"],"eslint.run": "onSave"}



以上基本开发环境配置操作完成,接下来就可以进行编码开发了。