上周末见了好多开发的年轻朋友,问了我一个问题:“前后端的区别和要求是什么?”分不清前后端开发的区别和要求,一种是因为前后端都了解,号称“全栈工程师”,但又什么都不是很精通;另一种是前端的不理解后端,后端的不理解前端。那前后端的区别到底在哪里呢?

一、前后端开发岗位的区别

1、对于初学者来说

(1)前端:入门简单,先易后难,能看到自己做出来的展示界面,有成就感;

(2)后端:入门难,深入更难,枯燥乏味,没有太大成就感,看一堆业务逻辑代码。

2、对于程序员来说

在实际的开发过程中,这个阶段对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都可以参与到后端开发中,这些都是比较浅的技术层面,没有太高的技术门槛,唯一需要做的是先编码成为熟练工种。

(1)前端开发人员精通HTML、CSS和JS,能熟练使用JQuery,并能熟练应用于页面布局、页面样式和屏幕分辨率自适应以及交互效果的开发等工作;

(2)后端开发人员熟练使用一门编程语言(比如:Java、C#、Python、C++等)和懂一些设计模式,会编写SQL语句并懂数据库设计。

3、对于工程师来说

(1)对于有了一定经验的前端软件工程师来说,这个阶段需要懂Node.js、Vue.js、React.js等前端框架,涉及到前端开发架构和开发效率(比如:组件、模版和验证/解析方法封装等等)等一系列问题。

(2)对于有了一定经验的后端软件工程师来说,这个阶段需要懂Spring/MVC、iBatis等框架,涉及到数据结构、设计模式、后端开发架构和开发效率(比如:业务功能和方法封装等等)等一系列问题。

4、对于技术经理或者架构师来说

这个阶段编程已经不是主要工作了,但必须具备上面的技能,还需要具备架构能力,跟开发者已经不在一个level上了,主要区别在于技术领导力,本文只探讨前后端开发,就不再往下延伸了。

二、前端和后端开发内容的区别

1、运行环境不同

(1)Web前端代码主要在客户端(PC、手机、pad)运行;

(2)Web后端的代码主要在服务端运行,服务器可以在提供服务厂家的数据中心,也可以在云端。

2、与用户紧密关系不同

(1)前端重用户体验,主要是考虑怎样能让用户觉得用起来更舒服,考虑界面布局、交互效果、大数据量页面加载速度等等,主要是偏向用户看得见的部分,客户端(pc、手机、pad)上浏览web页面,处理各个浏览器平台的兼容和对界面的渲染差异,对UI库的依赖较强;

(2)后端更多是考虑业务逻辑、数据库表结构设计、数据的事务操作、跨平台API设计、负载均衡、应用和服务部署等等,更多的是考虑用户看不到的部分,保证业务逻辑处理数据的严谨,保证用户访问数据吞吐的性能。

3、需求变更带来的影响不同

(1)前端主要怕系统原型的频繁变更,布局样式、交互效果的需求变更;

(2)后端主要怕业务逻辑变更,或者当使用规模增大之后对稳定性带来的影响。

4、前后端通吃的全栈工程师

作为一个前端开发人员,如果它懂得后端,那他可能会很容易理解为什么要通过多个后端接口获取数据后,才能组装上它所需要的数据?

而作为一个后端开发人员,如果它懂得前端,那他可能会很容易理解为什么后端接口都设计得如此完整,而前端还要求我再定义一个接口来返回一部分的数据呢?

这两种情况下如果大家相互理解,如果全栈工程师就不需要大量沟通提高了开发效率;而为了解决这个问题,很多开发架构分离出数据操作的职责给ViewModel,它是由MVC框架演变为MVP和MVVM框架而来的,在MVP框架中View 与 Model 不发生联系,由后端实现通过 Presenter 传递;而MVVM框架中ViewModel 只关心数据和业务的处理,不关心 View 如何处理数据,在这种情况下,View 和 Model 都可以独立出来,由前端实现双向数据绑定。

三、前后端开发业务应用的区别

很多开发者跟我交流,大多数开发人员认为:做后端开发天生是有优越感的。因为与前端相比,后端更加接近业务本质,数据结构基本上都是后端来设计的,对公司的业务后台开发也更加了解,所以在很多人眼中或者潜意识里:后端比前端要重要。这也是很多人选择做后台开发的原因。然而事实真的如此吗?

如果非得下个结论的话,就从软件项目和软件产品两个维度说一下侧重点:

如果是做项目的思路:初期以功能为主,更侧重后端开发,后期功能稳定后更侧重前端开发,做得好可以把项目软件提升档次;

如果做产品的思路:更多的是采用MVP(minimum viable product,最小化可行产品)不断迭代的开发方式,而MVP方式更注重在前端界面等涉及到用户体验方面的模块开发,当然相对应的后端功能开发也必须跟上。

总体来说,不管是前端还是后端,大家都是为了把项目或者产品做好,通过项目或者产品实现其用户或社会价值,都是朝着这样一个共同的目标努力。

想学好任何一门技术,还要看自己对这门技术的兴趣度,如果是想从事软件开发又不喜欢的朋友,真得想好了是不是要保护自己的发际线位置和头发的颜色

3分钟搞懂前后端开发的区别相关推荐

  1. 一分钟搞懂 微调(fine-tuning)和prompt

    一分钟搞懂 微调fine-tuning和prompt 区别与联系 区别 联系 优缺点 微调的优点 微调的缺点 prompt的优点 prompt的缺点 在CV领域 Reference 大家都是希望让预训 ...

  2. Node.js七天搞定微信公众号(又名:Koa2实现电影微信公众号前后端开发)- 问题汇总

    未完待续 视频资料在上一篇博客<Node.js七天搞定微信公众号(又名:Koa2实现电影微信公众号前后端开发)> 问题1:该公众号提供的服务出现故障,请稍后重试! 出处:<第4章 实 ...

  3. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 我的前后端开发简史...

    ---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...

  4. html网页和cgi程序编程,十分钟搞懂什么是CGI

    原文:CGI Made Really Easy,在翻译的过程中,我增加了一些我在学习过程中找到的更合适的资料,和自己的一些理解.不能算是严格的翻译文章,应该算是我的看这篇文章的过程的随笔吧. CGI真 ...

  5. python数据分析建模-十分钟搞懂“Python数据分析”

    原标题:十分钟搞懂"Python数据分析" 引言:本文重点是用十分钟的时间帮读者建立Python数据分析的逻辑框架.其次,讲解"如何通过Python 函数或代码和统计学知 ...

  6. 一分钟搞懂JavaME、JavaSE和JavaEE的区别

    一分钟搞懂JavaME.JavaSE和JavaEE的区别 JavaME微缩版 JavaSE标准版 JavaEE企业版 多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(pa ...

  7. .net core webapi 前后端开发分离后的配置和部署

    背景:现在越来越多的企业都采用了在开发上前后端分离,前后端开发上的分离有很多种,那么今天,我来分享一下项目中得的前后端分离. B/S  Saas 项目:(这个项目可以理解成个人中心,当然不止这么点功能 ...

  8. mysql decimal型转化为float_5分钟搞懂MySQL数据类型之数值型DECIMAL类型

    速成指南 5分钟搞懂MySQL数据类型 之数值型--DECIMAL类型 DECIMAL类型的语法:DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL].其中M指定的是数字的总位 ...

  9. ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理

    在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...

最新文章

  1. 安装sql 2005 闪退 连接到服务器失败。错误:0x80070424
  2. Boost中的Timer的使用——计算时间流逝
  3. StringBuilder内存碎片对性能的影响
  4. VB.NET在线升级程序源代码,可以独立使用
  5. Python中创建守护进程
  6. python写连点脚本_python鼠标连点器-测试版
  7. css 设置背景图一半_CSS背景颜色 背景图片 居中 重复 固定样式background经验篇
  8. 学术英语理工(第二版)Unit5课文翻译
  9. 微信小程序 自动解决分包大小问题_微信小程序-分包 -每包2M
  10. 如何开启任务计划程序
  11. 学校Win7 KMS激活服务器已经可以用了
  12. HTML5+CSS3小实例:自定义滤镜实现液体加载动画
  13. 让我摘下星星送给你_抖音摘下星星给你是什么歌_抖音想摘下星星给你歌名是什么_好特教程...
  14. aul软件oracle,aul6 oracle数据库恢复工具
  15. 走了!再无百年阿里~
  16. Chrome 出现“您未安装Flash Player播放器或者版本过低”问题
  17. 【强烈推荐】超详解Python-魔法函数(高级语法)
  18. Sql 语法练习
  19. 速达软件 移动端 App 功能说明
  20. linux如何禁用ntp服务,Linux系统下NTP服务的配置注意要点

热门文章

  1. [原] XAF How to implement a custom attribute to customize the Application Model
  2. 【转贴】mysql导入数据load data infile用法
  3. 搭建spring boot环境并测试一个controller
  4. 教你创建Google网站地图Sitemap.xml(转)
  5. 数据库 创建 / 查看/ 删除
  6. Wpf控件ListBox使用实例2
  7. 常见的http状态码
  8. 测试Live Writer 发表博客
  9. 关于MySQL 查询表数据大小的总结
  10. group client policy无法登录,谢绝访问