程序员分前端与后端,那么后端程序员都做些什么?看完你就明白了!

153 篇文章 1 订阅
订阅专栏

  我刚开始做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及其生态系统就应运而生了。

  之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,要做软件开发,成为核心程序员的话,就来湫湫学习C/C++吧!你如果感觉自学C/C++语言有困难的话,C/C++编程学习,六零四,一六8和719。即使是零基础的学习者,都可以一起成长进步。

                         

4、怎么学好后端?

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

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

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

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

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

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

  最后,以一张漫画来结束吧!学习C/C++编程,欢迎关注微信公众号:C语言编程学习基地。

                                        

程序人生:后台开发程序员的进阶之路!来自腾讯IEG工程师
致力于C语言C++知识分享!
03-17 291
作者:jiantang,腾讯IEG后台开发工程师 1.后台开发涉及的范围 简单地说,后台开发涉及的层面主要包括:网络、数据、业务逻辑、运维4个方面。如果扩展和延伸的话,可以为以下几类: (1)网络-布式系统-并行计算 (2)业务逻辑-WEB-游戏-交易-搜索 (3)数据-CACHE-DB-KeyValue-文件存储服务 (4)运维-负载均衡-容错-容灾-运维工具 不同类型的业务对以上4点的要求是不同的,简单总结了一下公司已有服务器的一些偏重点: 应该说每个成功的业...
后端开发人员需要具备哪些软件开发经验?
SiKi学院的博客
03-31 1105
后端开发是指设计、实现和维护服务器端应用程序。它是Web开发的一个重要组成部,负责处理与数据库、网络、硬件等相关的任务。后端开发人员负责设计、开发、测试、维护和优化服务器端应用程序。他们需要掌握多种技术和工具,包括编程语言、数据库、Web框架、RESTful API、版本控制、软件测试、虚拟化和安全等方面。通过这些工作,后端开发人员可以为前端提供优质的数据和服务,并让Web应用程序更加高效和可靠。
前端开发与后端开发的区别是什么?,大厂面试必备
2401_84023314的博客
04-02 825
在面试前我花了三个月时间刷了很多大厂面试题,最近做了一个整理并类,主要内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。HTML5新特性,语义化浏览器的标准模式和怪异模式xhtml和html的区别使用data-的好处meta标签canvasHTML废弃的标签。
前端后端,全栈程序员别都是做什么的?找工作应该选哪个?
dear_Kxs的博客
04-21 494
前端后端,全栈程序员别都是做什么的?找工作应该选哪个?
计算机后端有哪些工作岗位
Python单行客的博客
11-15 295
计算机后端有哪些工作岗位
2020年后台开发程序员应该学习的8大技术
资料qun832218493
02-28 5355
关于后台开发,变新的东西不多,但是设计的面很广。重点就在于自己能够掌握多少。 2020年风口与机会并存,那我就列举一些后台开发架构需要学习掌握的技术点,供大家参考。 一、源码析 包含:Nginx源码、Redis源码、ZeroMQ源码 无论基于什么样的原因,放弃阅读源码始终不是一个明智的选择,因为你失去了一个跟大师学习的机会。而且,当你读过几个源码之后就会发现,它们的思想以及实现方式是相通的。这就...
程序员前端后端,通用找工作模板简历,
01-29
这个模板简历是我从毕业开始,找后端开发岗位,前端开发岗位,四年来一直用的模板简历,下载之后只需要填写自己的信息和项目经验,简历呈现的简洁大方。原本想设置资源费0的,可是没法修改
后端程序员做些什么?
码农翻身
12-14 3007
这个问题来自于QQ网友,一句两句说不清楚,索性写个文章。我刚开始做Web开发的时候,根本没有前端后端之说。原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,...
java队列_用大白话告诉你 :Java 后端到底是在做什么?
weixin_39622891的博客
11-14 436
来自公众号:黄小斜阅读本文大概需要 6 钟。新手程序员通常会走入一个误区,就是认为学习了一门语言,就可以称为是某某语言工程师了。但事实上真的是这样吗?其实并非如此。今天我们就来聊一聊,Java 开发工程师到底开发的是什么东西。准确点来说,Java后端到底在做什么?大家都知道 Java 是一门后端语言,后端指的就是服务端,服务端代码一般运行在服务器上,通常我们运行Java 程序的服务器都...
后端是干什么的,要学一些什么东西
秀秀的奇妙旅行
12-18 330
后端项目实践——需要的时候做一下 后端后端都学什么
前端/后端程序员季度绩效考核模板
最新发布
05-07
前端/后端程序员季度绩效考核模板。 内容概要:从【工作成情况】【质量管理】【效率提升】【团队协作】【技能提升】等10个维度来详细划考核指标,据此管理个人的绩效考核。 你能得到什么:有了这个模版,既可以...
程序员简历模板(前端后端、测试)
06-05
程序员简历模板,适用于前端后端和测试等岗位,具体内容结合自身编辑。
程序员简历模板下载后端程序员简历实习生简历
03-21
HR 筛选简历时,看的不是求职者有多优秀,而是是否「合适」。我们在制作简历时,需要根据应聘的岗位来对自己的简历进行包装,给 HR 一种 「我是个颇有经验的候选人」的感觉。 一份好的简历可以在整个申请面试以及...
程序员面试宝典,无论你是前端还是后端都应该有点了解
03-01
程序员面试宝典,无论你是前端还是后端都应该有点了解 适合程序员面试所涉及的内容
后端开发怎么做得更优秀?记住这15个好习惯
weixin_53919192的博客
12-02 879
15个好习惯帮你更好的掌握后端开发~~
身为一个后端程序员如何快速制作后端管理系统的UI
聆听岁月的博客
08-25 1923
我的专业领域在后端开发上,前端我仅仅是熟悉,但是要从头开发一个前端UI界面有点难为人了。那么身为一个后端程序员我们怎么来开发后端管理系统UI界面呢?基于开发来说,肯定是 方案1 比较好,但如果项目交付周期短,没有多少时间开发的话,方案2也许更好。在中、大型项目中,采用前后端离(专业的人做专业事),前端技术栈采用vue会更好。一个全栈工程师做出来的程序不一定比一个前端和一个后端做出来的东西效果好,因为开发需要精力专注,全栈工程师将精力散到了前后端实际开发,反而降低了整个系统的质量。
写给后端程序员的HTTP缓存原理介绍
diaoxi4950的博客
01-04 148
There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton 通过Internet获取资源既缓慢,成本又高。为此,Http协议里包含了控制缓存的部,以使Http客户端可以缓存和重用以前获取的资源,从而优化性能,提升体验。虽然Htt...
程序员应该选择干前端还是干后端呢?
weixin_43549003的博客
09-27 4151
程序员新人的职业选择,应该是干前端工程师、还是后端工程师呢.我的一点见解
前端 程序员 还是后端 程序员 有前途
05-26
无论是前端程序员还是后端程序员,都有非常广阔的前途。但是,具体哪个方向更好,需要根据自己的兴趣和特长来选择。 前端开发主要负责网站和应用程序的界面设计和交互实现,需要掌握HTML、CSS、JavaScript等技术。随着互联网的普及和移动设备的广泛使用,前端开发的需求越来越大,而且前端技术也在不断更新和发展,如React、Vue等前端框架和工具的出现,使得前端开发变得更加高效和便捷。 后端开发主要负责网站和应用程序的后台逻辑实现和数据库设计,需要掌握各种后端语言和框架,如Java、PHP、Python、Node.js等。后端开发的需求也十广泛,特别是在互联网和移动互联网领域,随着人工智能、大数据等技术的发展,后端开发的工作也变得更加有挑战性和有意义。 综上所述,前端后端开发都有非常广阔的前景,选择哪个方向要根据自己的兴趣和特长来决定。另外,在实际工作中,前端后端开发也需要进行紧密的协作和配合,因此了解对方的工作也是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 适合编写C语言代码的编程软件有哪些?大学生赶紧行动起来! 33163
  • 程序员分前端与后端,那么后端程序员都做些什么?看完你就明白了! 14785
  • 最好用的手机端C/C++语言编程软件, 不要说没电脑就不学编程了! 14036
  • 为什么C语言还是被很多人说成过时了? 12804
  • 初学者怎么样提高c/c++编程能力? 12499

分类专栏

  • c
  • 大学生 73篇
  • C语言 98篇
  • c++ 46篇
  • 编程 104篇
  • bug 10篇
  • 程序员 153篇
  • 程序媛 6篇
  • 对象 4篇

最新评论

  • 一篇文章带初学者明白:什么是编译器,什么是集成开发环境(IDE)?

    斯文之后: C编译器可以找出C源程序中所有的语法错误和逻辑错误吗?

  • C语言成为大学必修课!想要不挂科?你只需要这样做

    2301_76298154: 我需要

  • C语言中".h"文件和".c"文件如何理解?看完详细解析,小白也能懂!

    hq_xjq: 有一个问题问一下,上面你说:我在aaa.h里定义了一个函数的声明,然后我在aaa.h的同一个目录下建立aaa.c,aaa.c里定义了这个函数的实现,然后是在main函数所在.c文件里#include这个aaa.h 然后我就可以使用这个函数了。main在运行时就会找到这个定义了这个函数的aaa.c文件。 下面你说:如果 a.c 中不写#include a.h,那么编译器是不是会自动把 .h 文件里面的东西跟同名的 .c 文件绑定在一起?(不会)。 我想问的是如果不会的话,那你上面没提到在aaa.c中要#includ eaaa.h,那编译器是怎么找到aaa.c的呢?还是说同一个目录下会影响这个过程?

  • 一篇文章带初学者明白:什么是编译器,什么是集成开发环境(IDE)?

    宁小寒: 网上找找io,可以看看,我们学校也不讲

  • 一篇文章带初学者明白:什么是编译器,什么是集成开发环境(IDE)?

    平凡之初: 学习路线里面,没有C语言的吗,我们学校教的特别简单,我都不知道能干嘛。另外接口一点没学,真烦

大家在看

  • CTFHUB-信息泄露-Git泄露
  • 码农一战上岸985名校MBA历程
  • springboot+vue的养老院管理系统
  • 数据结构(C语言严蔚敏版)——第一章绪论
  • Java对象内存图 82

最新文章

  • 电脑广告弹窗多?安利一下:程序员常用 7 款Chrome去广告插件
  • C/C++工程师需要掌握哪些技能?他们的工资这么高,是有原因的!
  • C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解
2019年260篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司莆田关键词排名包年推广公司台州百度竞价包年推广价格眉山seo网站推广六安网站优化推广报价塘坑网页制作公司许昌网站seo优化价格辽源网站推广方案推荐许昌网站推广多少钱梧州网站优化推广价格三亚网站排名优化价格汕头营销型网站建设报价沙井seo推荐汕头网站建设迪庆关键词按天计费价格三明网站推广方案哪家好衢州网站开发报价天津网站开发哪家好宝鸡网站推广系统哪家好赣州SEO按效果付费推荐惠州关键词按天收费公司沧州网站推广系统多少钱徐州百搜标王价格榆林SEO按效果付费推荐伊犁SEO按效果付费公司平凉企业网站设计报价四平seo排名报价平顶山网页设计价格宝鸡网站改版和县网站制作设计公司张家口SEO按天计费哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化