软件开发六大发展趋势,真正“软件人” 都在关注,值得一看
毋庸置疑,企业数字化创新的重要途径,必然离不开软件开发的支撑。随着全球对于数据安全的重视进入法治化阶段,许多国家和地区都相继颁布了数据安全相关法律。如欧盟的GDPR、新加坡的个人数据保护法、美国的《数据泄露预防和赔偿法》和《数据保护法》、泰国的PDPA,以及中国的《网络安全法》、《数据安全法》和《个人信息保护法》等。诸如此类的数据隐私安全法律,给软件人、软件公司在安全开发上带来了更为明确的要求与方向。
先前,全球软件巨头微软首先强调从安全角度护航软件开发过程的重要性,也就是在软件开发的所有阶段,都需要融入安全和隐私的原则。
对于软件开发本身而言,强化代码管理自身的安全,防止代码漏洞,防止代码库被黑客入侵篡改破坏,提升软件开发管理本身的安全性;对于勒索病毒等黑客的攻击,需要构建软件开发代码数据本身的容灾备份体系,在可能遭受黑客破坏与攻击下,也具备高效的软件数据备份与容灾响应。
可见,安全开发成为企业数字化创新不可逾越的门槛,真正的软件人需要在安全开发的方向上给予足够重视,并借助各种安全措施防患未然。
云原生带来最大的好处就是具备更好的弹性、灵活性、扩展性,支持企业数字化的软件开发与业务交付。同时融入容器与平台编排能力,实现多云与混合云的应用创新与落地。其中很值得一提的是,云原生开发可以实现传统应用与创新应用的连接,促进企业获得更好的数字化竞争优势。
凭借对云原生天然的敏感性,公有云厂商,如AWS、阿里云、华为云、腾讯云等相继推出云原生的开发平台。此外,容器技术的兴起,如Docker、K8S、Rancher等,也同时将容器编排融入到云原生的开发平台领域。
有了云原生支撑软件架构,不仅可以提升软件开发资源利用效率,加快应用开发和交付速度,在实现敏捷开发以及DevOps上,也带来了切实可行的方式。同时,云原生应用也提升了API管理效率,实现软件人与软件公司、合作伙伴、用户之间的安全交付与策略服务。
软件开发的过程,本身需要注重两个问题,一个是开发过程的代码数据安全,如 “趋势一”所涉及的安全开发方面的内容,另外就是对于开发过程的监控与辅助决策,这非常有助于提升软件开发工程本身的品质。
在软件工程中,提升可观测性的能力,借助debug工具,可以帮助软件人更快速发现创新软件中的潜在问题。同时结合对开发过程的日志监控与追踪,以及对容器应用中的根因定位,实现软件开发本身的决策,提升改进优化软件的效率。
为此,在提升软件开发的可观测性方面,必然会借助人工智能等技术融合,甚至构建AI框架,比如基于TensorFlow、PyTorch、Caffe、MXnet、Cognitive Toolkit等AI开发框架。Google、微软、Amazon、Facebook等全球科技巨头已经在发力提升。
对于软件开发全过程的可观测实现,还可以带来更好的可视化,从中也可以避免或防止开发中出现隐蔽性bug,提升开发过程的数字监控能力,十分利于强化软件交付品质。
低代码或无代码(LCNC)在很大程度上,减少了开发人员对于某些用例、模块、工具的开发过程与时间,加速应用开发速度和软件开发管理,缩短了企业数字化转型与升级路上的创新路径,自然备受业界追捧。
当然,在低代码、无代码开发服务领域,包括了私有化部署与公有云服务两种方式。特别是公有云大行其道的今天,加速了APaaS平台发展,公有云厂商AWS、阿里云、华为云、腾讯云、谷歌云等也成为了重要推动者。
值得关注的是许多致力于低代码、无代码开发领域的技术厂商,国内如网易数帆、明道云、伙伴云、APICloud等,国外如Outsystems、Kinstone、Mendix、Nino、Smartsheet等,也在为企业实现私有化部署,不断增强基于公有云平台的低代码、无代码开发服务。
不过,低代码、无代码开发走向完善与成熟,必然少不了标准化、生态化的构建。建立开发标准,有助于不同行业在相似应用中采用已有的用例、模块与工具。强化生态化,补充低代码、无代码开发过程遇到的更为多元与复杂的业务场景,以及业务场景交付,借助软件生态的力量,让低代码、无代码开发对接更多的应用,实现更高速的业务创新。
随着容器应用的兴起,也带动了DevOps的发展,同时编排调度也得以发展,从而形成当前微服务软件架构对软件开发平台整体发展的重要贡献。
基于微服务的概念,在软件平台系统设计中,将单一的应用程序划分成一组小的服务组件,再通过API进行高效访问和调用。从底层架构出发,优化软件开发的编程、测试等流程,软件人的开发效率得以很好提升。
微服务将业务应用化整为零,通过单一应用程序构成的小服务以全自动化方式来实现,也让软件人的开发工程变得更为简便。为此微服务的软件架构带来了将复杂业务应用问题简化的效果,实现更为敏捷的开发过程,直接实现软件开发模块化的提升,也使得软件部署更为灵活,最终提升了软件工程的整体效率。
采用微服务架构的诸如全球著名的厂商Amazon、Netflix、Spotify、Twitter等,国内公司如JEPaaS、博云等;公有云厂商如阿里云、腾讯云、华为云也同样非常重视微服务开发。
阿明最近关注到一款名为SoFlu的软件机器人,经了解,这款软件机器人微服务的模块化设计,让可视化编程带来了高效率与更多成功的可能性。并且不仅软件开发人员可以参与软件开发中,连业务人员也可以参与到开发“一线”。
软件机器人出现多年,虽不是一个新鲜名词,但在软件自动化开发之路上,原生低代码平台与解决简单重复性工作的软件机器人始终存在发展上的不足。为什么呢?
原生低代码平台厂商如简道云、易鲸云、元年云、炎黄盈动,软件厂商如用友、金蝶软件,虽然前端开发设计越来越成熟,但是对后端、无代码复杂逻辑开发的支持能力还需加强,测试、运维也需要更多考量,企业独立部署存在一定挑战。
而目前市面上已经出现了能够自动完成全栈式软件开发的机器人,即上文提到的SoFlu软件机器人。SoFlu软件机器人通过人机协同,实现了整个软件生产过程中的管理、开发、测试、运维的自动化及一体化,帮助开发者实现“一人一项目”,使得软件工程价值得以持续提升。
以小型软件开发项目为例,相比传统开发模式需要6人、耗时66小时才能完成软件开发全流程,变革后的人机协作模式,只需要3人、耗时9小时便能完成,实现了传统开发模式难以想象的成果。
综合以上软件开发六大趋势,不难发现,核心关键词还是“效率”。而如何提高软件开发效率被公认为软件工程的老大难问题,至今还没有得到很好的解决。SoFlu软件机器人这类工具出现的价值,正如中国工程院院士倪光南在近日召开的SoFlu软件机器人产品发布会上所说,“通过标准化、自动化的流程,代替大量重复繁琐的底层手工作业,降低了从开发、测试到运维的门槛,将敏捷管理制度落地,把技术经验沉淀在企业,形成良性循环复用,从而全面提升企业IT生产力,帮助企业做到降本增效,达到提升软件开发效率,提升软件业创新速度的目标。”
(by Aming)