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

简介: 作为后端开发,永远重复着「增删改查」,这些基础的操作占据了自己大部分工作时间,看到其他人成为技术大牛,而个人技术水平永远停在原地,也会很迷茫......需要学习的仅仅如此吗?当你工作久了是否会发现你的代码越来越复杂?文件的上传下载怎么提高效率?消息推送的实时性怎么保证?同时使用人数过多,服务器爆炸怎么办......需要学习的太多了。希望此文能重燃你的热情,更好的提升技术能力和判断力,站在更高的角度去看自己写的代码和技术方案,从中看到技术的亮点和价值。

lAHPGo_k77M3cDvMls0DhA_900_150.gif

作者|骨来
编辑|橙子君
出品|阿里巴巴新零售淘系技术部

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

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

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

浅谈CRUD

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

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

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

技术持续演进

回看计算机的发展史,从单机到网络计算机,从单体应用到分布式应用,从这2篇文章可以看到技术的飞速发展。

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

1.png

冰山下的后端领域

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

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

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

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

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

image.png
image.png

后端开发职责

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

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

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

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

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

image.png

后端基础拆分

纵观近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投入产出比,在业务需求下作出正确的技术判断,技术发展日新月异,将来更需要密切把握技术脉搏、又要兼具全局视野,做出关键判断和取舍,给用户带来价值。

image.png

加油后浪

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

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

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

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

未来在5G时代,更需要技术的持续革新,新的业务场景和产品必将出现,需要我们做好技术储备和技术创新,应对新的变化和挑战,加油,奔涌中的后浪们!
最后,愿我们能与时代同行,具备技术前瞻性和创新变革,携手共进!

淘系 IM 消息平台

我们负责阿里新零售领域 IM 消息平台的建设,通过 IM即时通讯产品(push、聊天机器人、单聊、群聊、消息号和聊天室)构建连接消费者和商家的沟通和触达渠道,我们每天服务上亿消费者和数百万商家,处理百亿级的消费规模,支撑了直播互动、客服服务、商家群运营、品牌资讯、营销推送等电商领域 BC 互通的业务场景;同时,我们在消费者的购物体验上不断探索创新——直播、AR试用、游戏互动,为新的购物玩法提供灵活稳定的基础设施,实现阿里电商生态重要支点,为上百家APP 提供安全、稳定、标准化的电商组件SDK。不断提升消费这的体验和活跃,提升商家服务的效率和能力,促进商家业务增长。
联系电话:18651806651
邮箱📮:limin.llm@alibaba-inc.com

image.png
关注「淘系技术」微信公众号,一个有温度有内容的技术社区~
image.png

相关文章
|
4天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
19 1
|
14天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
8天前
|
JSON API 开发者
构建高效API:后端开发中的RESTful最佳实践####
在数字化时代,API作为不同系统间通信的桥梁,其重要性日益凸显。本文将深入探讨RESTful API的设计原则与最佳实践,通过实际案例分析,揭示如何构建高效、可维护且易于使用的API接口,助力后端开发者提升项目质量与用户体验。 ####
|
9天前
|
JSON 缓存 API
探索后端开发中的RESTful API设计原则
【10月更文挑战第41天】在后端开发的广阔天地中,API的设计如同绘制一幅精细的地图,指引着数据的流向和前端的交互。本文将带你走进RESTful API的世界,一起探索如何用简洁高效的设计原则来构建一个清晰、可维护且易于理解的API结构。我们将从RESTful API的基础概念出发,通过实际案例分析,揭示如何在实践中应用这些设计原则,并讨论如何在复杂的业务逻辑中保持API的简洁性和一致性。
|
13天前
|
JSON 前端开发 API
后端开发中的API设计与文档编写指南####
本文探讨了后端开发中API设计的重要性,并详细阐述了如何编写高效、可维护的API接口。通过实际案例分析,文章强调了清晰的API设计对于前后端分离项目的关键作用,以及良好的文档习惯如何促进团队协作和提升开发效率。 ####
|
15天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
31 4
|
14天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第36天】本文将引导您探索Node.js的世界,通过实际案例揭示其背后的原理和实践方法。从基础的安装到高级的异步处理,我们将一起构建一个简单的后端服务,并讨论如何优化性能。无论您是新手还是有经验的开发者,这篇文章都将为您提供新的视角和深入的理解。
|
15天前
|
监控 API 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势、面临的挑战以及最佳实践策略。不同于传统的单体应用,微服务通过细粒度的服务划分促进了系统的可维护性、可扩展性和敏捷性。文章首先概述了微服务的核心概念及其与传统架构的区别,随后详细阐述了构建微服务时需考虑的关键技术要素,如服务发现、API网关、容器化部署及持续集成/持续部署(CI/CD)流程。此外,还讨论了微服务实施过程中常见的问题,如服务间通信复杂度增加、数据一致性保障等,并提供了相应的解决方案和优化建议。总之,本文旨在为开发者提供一份关于如何在现代后端系统中有效采用和优化微服务架构的实用指南。 ####
|
17天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
13天前
|
缓存 前端开发 API
探索后端开发中的API设计原则
【10月更文挑战第37天】本文旨在引导读者理解API设计的核心理念,通过简明的语言和直观的示例,揭示如何构建高效、稳定且易于维护的后端接口。我们将深入浅出地探讨RESTful API的设计规范,并通过一个简易的代码样例,展示如何在实战中应用这些原则。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的参考和启示。

热门文章

最新文章

下一篇
无影云桌面