后端开发除了增删改查还有什么?

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者|李历岷(骨来) 编辑|橙子君 出品|阿里巴巴新零售淘系技术部 作为后端开发,永远重复着「增删改查」,这些基础的操作占据了自己大部分工作时间,看到其他人成为技术大牛,而个人技术水平永远停在原地,也会很迷茫...... 需要学习的仅仅如此吗?当你工作久了是否会发现你的代码越来越复杂?文件的上传下载怎么提高效率?消息推送的实时性怎么保证?同时使用人数过多,服务器爆炸怎么办......需要学习的太多了。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


作者|李历岷(骨来)

编辑|橙子君

出品|阿里巴巴新零售淘系技术部

作为后端开发,永远重复着「增删改查」,这些基础的操作占据了自己大部分工作时间,看到其他人成为技术大牛,而个人技术水平永远停在原地,也会很迷茫......

需要学习的仅仅如此吗?当你工作久了是否会发现你的代码越来越复杂?文件的上传下载怎么提高效率?消息推送的实时性怎么保证?同时使用人数过多,服务器爆炸怎么办......需要学习的太多了。

希望此文能重燃你的热情,更好的提升技术能力和判断力,站在更高的角度去看自己写的代码和技术方案,从中看到技术的亮点和价值。

浅谈CRUD

从CRUD的定义进行解读,CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写,CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。

从软件分层架构的角度来看,这一层在业界被定义为DAO(DataAccessObjects数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。

顾名思义,如果把CRUD等同于为后端开发技术栈内容,那么就是偷换概念和错误总结,从大部分后端工程师日常口头禅来看:在产品需求不明确或者不是特别有价值的情况下,常常对自己所做的事情或者需求,简单的定义为CRUD,这是一种“自我调侃”和“对产品需求的轻视”。

技术持续演进

从Web时代到移动互联网时代再到人工智能时代,硬件的加速发展带来软件的飞速发展,无论是传统软件和互联网软件,软件岗位角色被一步步的细化,譬如前端、客户端、后端、算法、大数据等细分角色出现,每个角色面临的技术挑战和解决的问题域被重新定义和划分,职责更加清晰,能力范围更加专注和聚焦,技术栈更加清晰和明确,从这个划分来看后端除了CRUD,还需要具备什么?

1
2
3
4
5
6
7
8

冰山下的后端领域

软件应用程序就像冰山一样,用户看到的只是应用程序的极小的部分,应用程序的最大部分是看不到的,这就是令人难以捉摸又神秘的“后端领域”。

作为后端人员,不仅仅停留在用户端侧体验以及交互形式,更重要的是从用户的数据模型、业务场景、业务模型、系统架构设计、领域建模、业务流程以及高并发、高可靠、规模化等稳定性角度,去提升产品整体的体验和价值,解决用户的诉求。

后端开发即“应用服务器后端”开发,主要涉及软件系统“后端”支撑。

比如,用于支撑Web网站和App客户端的服务器,同样介于后端服务器与浏览器以及App之间的应用中间件,它们都属于后端范畴。

9


简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的数据和服务等基础服务以及对应的业务系统就是后端开发核心需要思考和解决的范畴。

后端开发职责

作为后端技术同学,需要针对技术栈进行完备的技能储备,并且需要从宏观技术广度和微观技术深度进行拓展,基于业务的场景和价值映射技术的方案和策略,从业务扩展性的角度进行架构设计,更好的保证可持续产品交付能力,从需求、产品、研发、质量、运维、运营等进行过程中精细化考量,站在用户的角度提升用户的体验,提升用户对产品的忠诚度,最终实现产品业务价值。

当下,后端技术发展日新月异,一句话:“永远不要停止学习”。

以产品的生命周期作为研发的目标,从一而终直到产品下线,过程中各种产品的需求和问题,均需要后端开发持续性的投入和解决,以及通过引进新技术或技术创新,给产品带来进一步的增量价值。

举个例子,譬如现在非常热门的电商直播,涉及高清直播能力、人脸识别能力、直播间实物捕获能力、大规模实时互动能力、大型秒杀购物能力等,都需要前后端深度技术以此带来情景丰富性和实时互动性。

对于产品来说,需要保障7x24小时高可靠不停机服务,一切以满足用户的需求且高质量提供服务为遵旨,技术带来业务价值。

10

后端基础拆分

纵观近10年互联网发展,尤其是移动互联网开始兴起以后,亿级DAU用户产品大量涌现,一个单应用很难再垂直压榨硬件资源来提升性能,并且单点故障不能满足“停机不停服务SLA”要求,需要做水平架构扩展支持集群部署以及单元化异地多活部署。

前台流量入口需要基于DNS服务做VIP路由负载均衡,并且基于nginx服务器做反向代理;不仅如此,还得考虑登陆状态session问题和session的一致性。

随着业务场景和业务流程越来越复杂,我们不得不把某些业务逻辑放到一个集群上,把另外一部分业务放到另外一个机集群上,”微服务架构理念”就此产出。

显然系统的计算能力和处理能力大大增强,但是这些系统之间的通信就变成了头疼的问题,消息队列和RPC框架因此出现,为了提高通信效率,各种序列化的工具等解决数据压缩和效率问题。

当海量大数据出现的时候,单个数据库也撑不住了,开始做数据库的读写分离,如果还不行,就做分库和分表,因为数据要做跨库跨表查询和分布式事务,为了解决这个问题,又有各种各样存储方案和存储技术出现。

另外,随着VM技术和Docker/k8s技术出现,大规模部署成为可能,同样伴随单机内存大小限制以及集群共享内存诉求,缓存从应用集群剥离出去单独进行集群部署提供高质量的分布式缓存服务,同样伴随servicemesh等应用技术飞速发展。

与此同时多媒体技术越来越互动性和丰富性,基于强大的手机终端技术,随时随地拍摄照片和视频上传到云端,亿级用户在终端需要更快的下载和观看体验,基于CDN边缘节点缓存加速和OSS云存储能力诞生。

随着互联网尤其是移动互联网的快速增长以及海量信息获取的诉求,搜索引擎高速发展和应用。

近来,人工智能的飞速发展和丰富的应用场景,端到端的智能化进一步降低用户获取信息的成本和效率,转变用户主动搜索到被动接收获取有价值的信息,精准推荐帮助用户做决策。

跟随3G/4G的飞速发展,端侧即时性和实时交互的要求,其中以直播互动以及即时消息IM等应用场景出现,用户实时交互和实时感知。基础设施尤其是网络通信的发展和终端设备处理能力增强,让海量的移动设备接入和端边缘计算接入成为现实。

从传统以太网,到无线局域网的WIFI(IEEE 802.11 b/g/n/ac),到不断发展的广域网蜂窝网络(3GPP的GSM、GPRS、UMTS、LTE、LTE-Advanced……),甚至整个广域网在IoT领域兴起以及终端技术的演进(蓝牙、NFC),标志着设备的泛化连接和网络接入的丰富性爆发式增长,尤其是IoT/5G的时代的到来,技术带来的新局面和新场景伴随而生,未来可期。

后端业务拆分

聊完后端的基础中间件和移动中间件系列,后端面对业务系统应该怎么建设呢?

从技术视角去看,基础中间件已经被更多细分化和深度化,从业务视角看,首先需要掌握中间件的基本原理和应用场景,以及各个中间件的特性,针对业务场景进行选择和应用。

除了技术选型之外,作为业务后端角色需要重点聚焦在需求分析、系统架构设计、领域模型构建、产品交付质量等,包括近年来比较火的“大中台,小前台”架构理念,作为前台的一线业务会更敏捷,更快速适应瞬息万变的市场,中台将集合整个集团的运营数据能力、产品技术能力,对各前台业务形成强力支撑。

诚然,基于拆分后的每个子系统,后端同学同样需要聚焦到应用上下游依赖关系、接口API/SPI的设计、核心性能指标、业务指标和相应的流控策略、安全防控等,基于业务的需求设计出对应的领域模型和业务逻辑以及SOP操作流程等;

包含对设计模式的采用和框架的选型考量,以及对中间件(缓存、存储、文件、网络)等依赖选择,对整个的发布过程和代码质量的把控,最终完成发布上线和后期的运维过程,产品的持续交付和迭代需要进一步作出技术的判断和演进思考,推动技术演进和产品持续迭代,充分考虑技术ROI投入产出比,在业务需求下作出正确的技术判断,技术发展日新月异,将来更需要密切把握技术脉搏、又要兼具全局视野,做出关键判断和取舍,给用户带来价值。

加油后浪

互联网技术一直在变化,技术越来越更聚焦,后端的技术发展越来越精细化和分层拆分。

作为后端的同学,更需要关注业界的动态和方向,包括QCon技术峰会、架构峰会以及github和技术社区。

需要能够有敏锐的嗅觉和判断力,通过技术栈的组合和应用,作出正确判断和技术选型,提升产品能力和推动产品和技术演进,在业务飞速发展下持续交付高质量产品和缩减产品交付迭代周期,快速落地业务和解决用户需求。

后端开发需要具备全情投入,能够做到真正地掌握背后技术原理同时做到触类旁通,能够把各个技术栈转化为自己的理解,再也不会以一句“后端CRUD“作为简单定论了。

未来在5G时代,更需要技术的持续革新,新的业务场景和产品必将出现,需要我们做好技术储备和技术创新,应对新的变化和挑战,加油,奔涌中的后浪们!

最后,愿我们能与时代同行,具备技术前瞻性和创新变革,携手共进!

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-06-18
本文作者:阿里巴巴淘系技术
本文来自:“掘金”,了解相关信息可以关注“掘金”

相关文章
|
18天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
23 0
|
1月前
|
负载均衡 测试技术 持续交付
高效后端开发实践:构建可扩展的微服务架构
在当今快速发展的互联网时代,后端开发扮演着至关重要的角色。本文将重点探讨如何构建可扩展的微服务架构,以及在后端开发中提高效率的一些实践方法。通过合理的架构设计和技术选型,我们可以更好地应对日益复杂的业务需求,实现高效可靠的后端系统。
|
1月前
|
监控 Kubernetes 持续交付
构建高效可扩展的微服务架构:后端开发实践指南
在数字化转型的浪潮中,企业对软件系统的要求日益提高,追求快速响应市场变化、持续交付价值成为核心竞争力。微服务架构以其灵活性、模块化和独立部署的特点,成为解决复杂系统问题的有效途径。本文将深入探讨如何构建一个高效且可扩展的微服务架构,涵盖关键设计原则、技术选型及实践案例,为后端开发者提供一条清晰的指导路线,帮助其在不断变化的技术环境中保持竞争力。
133 3
|
7天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
28天前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性和容错性成为企业技术战略的关键组成部分。本文深入探讨了微服务的核心概念,包括其设计原则、技术栈选择以及与容器化和编排技术的融合。通过实际案例分析,展示了如何利用微服务架构提升系统性能,实现快速迭代部署,并通过服务的解耦来提高整体系统的可靠性。
|
1月前
|
机器学习/深度学习 人工智能 搜索推荐
未来人工智能在后端开发中的应用前景
随着人工智能技术的不断发展,后端开发领域也迎来了新的机遇与挑战。本文探讨了人工智能在后端开发中的应用前景,分析了其对传统开发模式的影响和未来发展趋势。
|
1月前
|
监控 数据管理 API
构建高效微服务架构:后端开发的新趋势
在现代软件开发领域,随着业务需求的不断复杂化以及敏捷迭代的加速,传统的单体应用架构逐渐暴露出其局限性。微服务架构作为一种新的解决方案,以其高度模块化、独立部署和可扩展性,正成为后端开发领域的新趋势。本文将探讨微服务架构的核心概念,分析其优势与面临的挑战,并提供实施高效微服务的策略和最佳实践,帮助读者理解如何利用这一架构模式提升系统的可靠性、灵活性和可维护性。
137 5
|
1月前
|
运维 Cloud Native 云计算
未来趋势:云原生技术在后端开发中的应用
随着云计算技术的快速发展,云原生技术作为一种新兴的软件架构理念,在后端开发领域日益受到关注。本文将探讨云原生技术的基本概念、优势以及在后端开发中的应用,展望未来云原生技术对于软件开发的影响和发展趋势。
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
2天前
|
持续交付 API 开发者
构建高效微服务架构:后端开发的新范式
【4月更文挑战第24天】 随着现代软件系统的复杂性日益增加,传统的单体应用已难以满足快速迭代与灵活扩展的需求。微服务架构作为一种新兴的软件开发模式,以其服务的细粒度、独立部署和弹性伸缩等优势,正在逐渐成为后端开发的重要趋势。本文将深入探讨微服务架构的设计原则、关键技术以及在实际业务中的应用实践,旨在为后端开发者提供构建和维护高效微服务架构的参考指南。