0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

后端程序员是做什么的

工程师人生 来源:工程师吴畏 2019-07-26 17:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我刚开始做Web开发的时候,根本没有前端,后端之说。

原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器。

即使后来Javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次。因为页面的HTML主要还是用所谓“套模板”的方式生成:美工生成HTML模板,程序员用JSP,Veloctiy,FreeMaker等技术把动态的内容添加上去,仅此而已。

那个时候最流行的图是这个样子:

后端程序员是做什么的

在最初的J2EE体系中,这个表示层可不仅仅是浏览器中运行的页面,还包括Java写的桌面端,只是Java在桌面端太不争气, 没有发展起来。

每个程序员都是所谓“全栈”工程师,不仅要搞定HTML, JavaScript, CSS,还要实现业务逻辑,编写访问数据库的代码。等到部署的时候,就把所有的代码打成一个WAR包,往Tomcat指定的目录一扔,测试一下没问题,收工回家!

不差钱的公司会把程序部署到Weblogic,Websphere这样的应用服务器中,还会用上高大上的EJB。

虽然看起来生活“简单”又“惬意”,但实际上也需要实现那些多变的、不讲逻辑的业务需求,苦逼的本质并没有改变。

1前后端的分离

随着大家对浏览器页面的视觉和交互要求越来越高,“套模板”的方式渐渐无法满足要求,这个所谓的表示层慢慢地迁移到浏览器当中去了,一大批像Angular, ReactJS之类的框架崛起,前后端分离了!

后端的工程师只负责提供接口和数据,专注于业务逻辑的实现,前端取到数据后在浏览器中展示,各司其职。

像Java这样的语言很适合去实现复杂的业务逻辑,尤其是一些MIS系统,行业软件如税务、电力、烟草、金融,通信等等。 所以剥离表示层,只做后端挺合适的。

但是如果仅仅是实现业务逻辑,那后端也不会需要这么多技术了,搞定SSH/SSM就行了。

2后端技术

互联网,尤其是移动互联网开始兴起以后,海量的用户呼啸而来,一个单机部署的小小War包肯定是撑不住了,必须得做分布式。

原来的单个Tomcat得变成Tomcat的集群,前边弄个Web服务器做请求的负载均衡,不仅如此,还得考虑状态问题,session的一致性。

业务越来越复杂,我们不得不把某些业务放到一个机器(或集群)上,把另外一部分业务放到另外一个机器(或集群)上,虽然系统的计算能力,处理能力大大增强,但是这些系统之间的通信就变成了头疼的问题,消息队列(MQ),RPC框架(如Dubbo)应运而生,为了提高通信效率,各种序列化的工具(如Protobuf)也争先空后地问世。

单个数据库也撑不住了,那就做数据库的读写分离,如果还不行,就做分库和分表,把原有的数据库垂直地切一切,或者水平地切一切, 但不管怎么切,都会让应用程序的访问非常麻烦,因为数据要跨库做Join/排序,还需要事务,为了解决这个问题,又有各种各样“数据访问中间件”的工具和产品诞生。

为了最大程度地提高性能,缓存肯定少不了,可以在本机做缓存(如Ehcache),也可以做分布式缓存(如Redis),如何搞数据分片,数据迁移,失效转移,这又是一个超级大的主题了。

互联网用户喜欢上传图片和文件,还得搞一个分布式的文件系统(如FastDFS),要求高可用,高可靠。

数据量大了,搜索的需求就自然而然地浮出水面,你得弄一个支持全文索引的搜索引擎(如Elasticsearch ,Solr)出来。

林子大了,什么鸟都有,必须得考虑安全,数据的加密/解密,签名、证书,防止SQL注入,XSS/CSRF等各种攻击。

3“大后端”

前面提到了这么多的系统,还都是分布式的,每次上线,运维的同学说:把这么多系统协调好,把老子都累死了。

得把持续集成做好,能自动化地部署,自动化测试(其实前端也是如此),后来出现了一个革命化的技术docker, 能够让开发、测试、生成环境保持一致,系统原来只是在环境(如Ngnix, JVM,Tomcat,MySQL等)上部署代码,现在把代码和环境一并打包, 运维的工作一下子就简化了。

公司自己购买服务器比较贵,维护也很麻烦,又难于弹性地增长,那就搞点虚拟的服务器吧,硬盘、内存都可以动态扩展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是云计算的一个场景。

随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?

有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。

可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄,Hadoop及其生态系统就应运而生了。

之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。

4怎么学?

现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了。

培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。

那么问题来了, 后端这么多东西,我该怎么学?

之前写过一篇文章叫做《上天还是入地》,说了学习的广度和深度,在这里也是相通的。

往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。

往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    956

    浏览量

    31007
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Supabase怎么用?5个实用技巧让你轻松开发后端项目

    Supabase作为开源的后端即服务(BaaS)平台,以PostgreSQL为核心,集成了数据库、用户认证、文件存储等全套后端能力,无需复杂配置即可快速上手。
    的头像 发表于 03-25 13:20 161次阅读
    Supabase怎么用?5个实用技巧让你轻松开发<b class='flag-5'>后端</b>项目

    【高端人才招聘】格见半导体 资深数字后端工程师

    职位概述 负责芯片后端物理实现,与前端设计团队紧密协作优化芯片的功耗(Power)、性能(Performance)和面积(Area),同时支持DFT设计对接,确保芯片测试性和高质量交付。 主要职责
    发表于 03-14 17:52

    芯盾时代SDP助力企业应对核心机密泄露危机

    无论你是程序员、文案、财务,无论你想撸代码、出海报、做报表,各式各样的AI总能满足你的需求,让你的工作更加轻松。
    的头像 发表于 12-26 11:49 851次阅读

    大理的AI野心藏不住了——风花雪月中千名程序员探讨人工智能

    2025 年12月4日至6日第二届CCF程序员大会暨大理人工智能与应用国际开发者大会在大理圆满落幕。
    的头像 发表于 12-24 17:45 898次阅读
    大理的AI野心藏不住了——风花雪月中千名<b class='flag-5'>程序员</b>探讨人工智能

    程序员最常见谎言

    了。 28我已经测试过了,这个功能没问题,可以上线了。 29别担心,这个问题很快就能解决。 30代码快写完了,已经完成 90% 了 。 希望大家对程序员多一些容忍以及谅解! 各位程序员你们都被我说中了哪些?说说你们的观点
    发表于 12-10 08:24

    堆和栈的区别

    程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
    的头像 发表于 11-27 18:13 1235次阅读

    模拟前端芯片是做什么的(什么是模拟前端芯片)

    模拟前端芯片,常简称为AFE,是位于信号处理链最前端的集成电路。它负责接收、调理和转换来自传感器或其他信号源的模拟信号,如电压、电流、温度、压力等,并将其转换为高精度的数字信号,供后续的数字处理器(如MCU)进行运算与分析。模拟前端AFE芯片是连接真实模拟世界与数字计算世界的“精准翻译官”,其性能直接决定了整个系统的测量精度与可靠性。
    的头像 发表于 11-21 14:33 808次阅读

    软通国际亮相2025沙中开源与AI科技峰会

    2025年11月11日,由沙特程序员协会(parmg)主办的"2025沙中开源与AI科技峰会"在利雅得盛大启幕。
    的头像 发表于 11-14 17:45 1606次阅读

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 968次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 866次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    如何理解芯片设计中的后端布局布线

    后端布局布线(Place and Route,PR)是集成电路设计中的一个重要环节,它主要涉及如何在硅片上合理地安排电路元器件的位置,并通过布线将这些元器件连接起来,以确保芯片能够正确地工作。这个过程是芯片设计的最后阶段之一,它将前端的逻辑设计转化为物理实现。
    的头像 发表于 08-15 17:33 1611次阅读

    紫光国芯如何助力芯片后端设计

    众所周知,芯片产品的诞生需要经历设计、制造、封测等阶段,其中的芯片设计又包括架构、代码、验证、中端、后端等步骤。后端设计将抽象的代码转化成为可制造、功能正确、满足性能功耗指标的物理图纸数据,最终由芯片生产工厂制造。
    的头像 发表于 07-08 16:40 1342次阅读

    人工智能是做什么的

    在当今科技日新月异的时代,人工智能(ArtificialIntelligence,简称AI)已成为推动社会进步和经济发展的重要力量。本文旨在深入探讨人工智能的核心功能、应用领域,并通过具体实例解析其如何改变我们的生活与工作方式。同时,我们还将介绍万达宝LAIDFU(来福)作为无限AI助理的一些独特功能,如数据分区设计和用户自定义嵌入属性,以展示AI技术的最新
    的头像 发表于 05-30 10:04 1027次阅读
    人工智能是<b class='flag-5'>做什么的</b>

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    继电保护是用来做什么的

    继电保护是电力系统中的“安全卫士”,其核心任务是‌快速检测故障并隔离故障区域‌,确保电力设备免遭损坏、防止停电范围扩大,同时维护电网的稳定运行。在现代电力系统中,继电保护装置如同人体的免疫系统,能够在毫秒级时间内识别异常并采取行动,是保障供电安全的核心技术之一。 一、继电保护的四大核心功能 ‌故障检测‌ 实时监测电流、电压、频率等电气参数,精准识别短路、过载、接地故障等异常状态。例如: 短路故障:电流骤增至正常值的数倍至数十倍。 接地故障:中性点电压偏移或零序电流异常。 ‌故障隔离‌ 通过控制断路器在‌20-100毫秒内‌切断故障线路,避免故障蔓延。例如: 输电线路发生短路时,距离保护装置可迅速定位故障点并跳闸。 ‌告警与记录‌ 触发声光报警,并记录故障波形、动作时间等数据,为后续故障分析提供依据。 ‌系统自愈支持‌ 配合自动化设备(如重合闸装置),在故障清除后尝试恢复供电,减少停电时间。 二、继电保护的组成与工作原理 ‌系统架构 ‌组件 ‌功能‌ ‌测量元件 采集电流互感器(CT)、电压互感器(PT)信号 ‌逻辑判断单元 分析参数是否符合故障特征(如过流、差动) ‌执行元件 驱动断路器或发信装置动作 ‌ ‌典型保护原理‌ ‌过电流保护‌:检测电流超过设定阈值(如1.2倍额定电流),适用于配电网线路。 ‌差动保护‌:比较设备两端电流差值,若差值超限则判定内部故障(常用于变压器、发电机)。 ‌距离保护‌:通过阻抗计算定位故障点位置,适用于长距离输电线路。 三、继电保护的应用场景 ‌发电环节‌ 发电机保护:定子接地保护、转子过负荷保护、失磁保护等。 案例:某水电站因差动保护动作,0.1秒内隔离发电机内部短路,避免机组烧毁。 ‌输电与变电环节‌ 输电线路:纵联保护、光纤差动保护,保障跨区域电网安全。 变压器:瓦斯保护(非电量)、比率制动差动保护,防止绝缘油分解或绕组故障。 ‌配电环节‌ 配网馈线:过流保护配合自动重合闸,减少用户停电时间。 数据:90%的配电故障可在300毫秒内隔离并恢复供电。 四、继电保护的技术演进 ‌从电磁式到数字化‌ ‌早期电磁继电器‌:依靠机械触点动作,响应速度慢(>100ms),维护频繁。 ‌微机保护装置‌:集成DSP芯片,支持多判据融合计算,动作时间缩短至20ms以内。 ‌智能化升级‌ ‌广域保护系统‌:基于5G通信实时共享电网状态,实现跨区域协同控制。 ‌AI故障预测‌:利用机器学习分析历史数据,提前预警绝缘老化风险。 ‌挑战与突破‌ 新能源并网:光伏、风电的波动性要求保护装置具备自适应能力。 解决方案:引入“方向性过流保护”应对分布式电源双向电流冲击。 五、总结 继电保护是电力系统安全运行的基石,其价值体现在三个方面: ‌经济性‌:减少设备损坏带来的巨额维修成本(如一台500kV变压器损坏损失超千万元)。 ‌可靠性‌:保障99.99%以上的供电可用性,支撑现代社会稳定运转。 ‌智能化‌:随着数字孪生、边缘计算等技术的融合,继电保护正从“被动响应”迈向“主动防御”。 未来,继电保护将与能源互联网深度结合,成为构建新型电力系统的核心防线。
    发表于 05-06 10:32