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

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

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


作者|李历岷(骨来)

编辑|橙子君

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

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

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

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

浅谈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
本文作者:阿里巴巴淘系技术
本文来自:“掘金”,了解相关信息可以关注“掘金”

相关文章
|
19天前
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
47 4
|
10天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
38 3
|
25天前
|
存储 前端开发 Java
深入理解后端开发:从基础到高级
本文将带你走进后端开发的神秘世界,从基础概念到高级应用,一步步揭示后端开发的全貌。我们将通过代码示例,让你更好地理解和掌握后端开发的核心技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
28天前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
24天前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
23天前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
35 1
|
24天前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
43 1
|
25天前
|
负载均衡 监控 API
后端开发中的微服务架构实践与挑战
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势和面临的挑战,并通过案例分析提出了相应的解决策略。微服务架构以其高度的可扩展性和灵活性,成为现代软件开发的重要趋势。然而,它同时也带来了服务间通信、数据一致性等问题。通过实际案例的剖析,本文旨在为开发者提供有效的微服务实施指导,以优化系统性能和用户体验。
|
28天前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
27天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。

热门文章

最新文章