前端开发,指只做过HTML、CSS、JavaScript以及具备使用在此基础上构建的各种Web类型的UI框架开发的能力,例如React、Vue、Elm等Web框架,同时对NodeJS生态下的Gulp、Webpack等打包工具链、有所熟悉。前端开发人员还需要对PC端网页渲染、移动端网页渲染,或响应式渲染有所熟悉。必要的,前端开发人员还需要熟悉微信开发、微信环境的H5开发、以及各种小程序的开发等。

客户端开发,指完整的开发过PC端程序、移动端(Android、iOS、或者ReactNative等跨平台开发框架)程序的开发人员。客户端开发要处理的复杂度指数比上述前端开发人员高。客户端开发一般也会对UI层、逻辑层、数据层分离的构架有所理解,并能主动做此分类。客户端开发也可能需要处理多线程、本地文件读写、网络通信、多进程构架等问题。

相对来说,一个前端开发的熟手可能对Web的各种框架和工具链有熟练上的优势能力。但是另一个方面,前端开发相对于客户端开发来说,可能对端内的分层构架没有什么意识,对常见的OOP封装也没有什么概念,因为他们大量的精力都消耗在了如何调整Web组件、如何做好样式、如何写交互上。因此他们对如何做分层、如何做封装、如何做规约的经验增长的比较慢。

后台开发,需要掌握Linux上的各种基本命令,并以此为基础掌握这些系列的能力:网关配置,例如nginx,需要熟悉网关的服务路由配置策略、反向代理策略等;静态路由导向静态网站,反向代理则可能导向内部的Web服务,例如Java、NodeJs等内部起的Web服务;Web服务背后可能就是一系列Rest接口的实现或者RPC接口的实现;进一步背后可能有缓存层、数据库CRUD读写层。但这只是最基本的形式,后台构架会一步步演化,演化到最后又会变成开发人员只需要写业务代码,通过工具链一件部署等。

实际上后台这部分混合着基础组件的开发和业务逻辑的开发。业务逻辑层面的技术需求和基础组件的技术需求并不相同。基础组件部分,需要的是做云资源的资源抽象、虚拟化组件的掌握、调度、消息中间件等等分布式组件的技术,而面向业务,最常规的来说就是要对缓存、数据库的设计有良好的把握,以及一条完整业务流程全过程中,所有端的时序、事件、数据流的把握。

最后一个是核心开发。其实核心两个字具有骗人的作用,好像其他开发都显得无足轻重,其实不然。核心开发一般是指开发某种Kill级别的底层技术,例如Google的QUIC网络协议设计和开发、一种满足特定需求的存储系统/数据库、一个车辆识别系统等等。一个典型例子是Microsoft的浏览器团队能开发独立的浏览器核心引擎,但是生态没构建好,原版Edge浏览器并没有获得成功,反之,基于Chromium版本的Edge则反而有跟原版Chrome在市场上一争的潜力,本文就是在基于Chromium版本的Edge浏览器上编写的。

理解和区别这些不同类型的开发,对于一个项目的人员安排和调度是必要的。我深刻理解到一个项目的延期时间基本上是由耗时最长的那个端决定的。能不能某些端放的人靠谱,某些端放的人不靠谱呢?有风险。基本上来说,要想做出高质量的项目,就需要在合适的端放上合适的人。

如果人上面没有办法满足,意味着那个人在那个端上没办法独立Hold住一面,这个时候就一定要在整体上对那个端有一个经过设计的构架,把风险规约到构架里面,我想构架的作用在这个时候就会本质的显露出来必要性,而不是装饰性。

从项目业务构架的角度来说,理解和区分不同类型的开发也是必要的,你能识别和区分不同类型的开发,也就有了识别和区分不同端的业务边界的基础,这对业务构架的设计和理解是有必要的。

全栈是一个谎言,双拳难敌四手,TeamWork不应该是一个人把所有的事情都做了,这是不对的。好的软件开发过程,如果出现了一个人做了过多角色工作,一定是这个软件过程的警告信号,不是什么好事。技术人员可以拥有很多个技术栈的能力,随着项目的锻炼和经验的丰富,也会有这样一个自然而然的过程。但是还是要从角色上区分不同位置需要的不同能力,这是思维方式的问题。

举个例子,初学UI开发的时候,有人会陷入如何画出好看的UI的陷阱,甚至归结于审美不行,所以不适合做UI。

首先,这就是思维方式的问题,不要自己做设计,做UI开发,纯界面技术上需要掌握的是如何布局(基于坐标的布局或者基于排版的布局)、如何配置样式(直接绘制方式的或者CSS调整样式的方式)、如何模块化UI(组件化、组合方式)、如何路由(跳转、前进、后退)、如何处理事件等。进一步的是如何做UI层、逻辑控制层、数据层的分离等。

而美工方面,你应该放心的交给美工设计师去设计,你需要做的只是把美术设计师设计的原型,通过你掌握的上述技术呈现出来。你只要思考一下,美术设计师做不了你的工作,但TA做的也是【UI】的一部分。

其次,审美是会随着经验的增加而一点点改变的,它不是静态的,所以也不必妄自菲薄,审美并非仅仅意味着「好看」,还包含「合理」、「用户友好」...等等。

--end--

炼金术(5): 区分前端开发/客户端开发/后端开发/核心开发相关推荐

  1. 前端/客户端/中间件/后端/核心开发—方向选择

    前端开发 指只做过HTML.CSS.JavaScript以及具备使用在此基础上构建的各种Web类型的UI框架开发的能力,例如React.Vue.Elm等Web框架,同时对NodeJS生态下的Gulp. ...

  2. 【两万字图文详解】 运动会管理系统-前后端分离-项目开发:【后端】SpringBoot, SpringMVC, MyBatis【前端】Vue.js,ElementUI

    项目名称:运动会管理系统  技术栈:      后端:SpringBoot,SpringMVC,MyBatis,tkmapper,Maven聚合工程等      前端:Vue.js,Element-u ...

  3. 前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义

    前端和后端开发人员比例 Websites and applications are complex! Buttons and images are just the tip of the iceber ...

  4. 实战react技术栈+express前后端博客项目(8)-- 前端管理界面标签管理+后端对应接口开发...

    项目地址:https://github.com/Nealyang/R... 本想等项目做完再连载一波系列博客,随着开发的进行,也是的确遇到了不少坑,请教了不少人.遂想,何不一边记录踩坑,一边分享收获呢 ...

  5. flask web开发是前端还是后端_Flask Web开发实战:入门、进阶与原理解析 PDF 全格式版...

    给大家带来的一篇关于Flask相关的电子书资源,介绍了关于Flask.Web.开发实战方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小12.2M,李辉编写,目前豆瓣.亚马逊.当当.京东等 ...

  6. 前端工作累还是Java工作累_前端开发累还是后端开发累?

    前端开发累还是后端开发累? 总的来说,在开发的过程当中,前端的工作量大于后端的工作量. [复杂度问题] 关于程序复杂度的问题,如果你的程序的规模,跟你的程序的复杂度成正比的话,说明你的程序架构出问题了 ...

  7. GIS底层开发、GIS前端开发和GIS后端开发有什么区别?

    使用哪些语言? GIS底层开发 说白了就是做软件,国内外有各种GIS软件公司,例如美国的ESRI公司的arcgis,国产的超图的supermap和中地数码的mapgis等,都属于gis软件. 软件开发 ...

  8. 前端开发真的没有后端工资高?

    来自知乎,匿名用户 https://www.zhihu.com/question/268677313/answer/386910532 这是来自知乎的问题,是一个大二学生问的,说老师在讲课时说,从工资 ...

  9. 前端要不要学习一门后端语言_这是一门免费课程,可帮助前端开发人员学习数学

    前端要不要学习一门后端语言 Are you looking to become a more effective developer by improving your fundamental mat ...

最新文章

  1. 数据中心节水管理办法(范例)
  2. 电子书下载 | 超实用!阿里售后专家的 K8s 问题排查案例合集
  3. C# winform窗体 ComboBox控件
  4. IBM “第8格(Debug)”开发者技术沙龙首站招募中,有胆你就来!
  5. 学习 TList 类的实现[6]
  6. 阿里云服务器默认登录密码是什么?
  7. Excel中的LEN和LENB,VBA中的Len和LenB
  8. 回首2013,一个屌丝码农的感慨
  9. 影视网站导航PHP源码
  10. MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录
  11. Vue3 - props
  12. 区块链链上数据全公开,你却不知道怎么查?找Gikee啊
  13. Java编程学习-枚举
  14. 香港国际珠宝展及香港国际钻石、宝石及珍珠展揭幕
  15. 东财《人际沟通与交往艺术》综合作业
  16. Java实现 蓝桥杯 算法训练 字串统计
  17. 《思维导图》 - 东尼.博赞(英国) 巴利.博赞(英国)
  18. 关于稠密性和连续性的通俗理解
  19. git 撤销更改_如何撤消Git中的更改
  20. 一枚程序猿的MacBook M1详细体验报告

热门文章

  1. 高通WLAN框架学习(9)- - Dual-band simultaneous (DBS)双频同步
  2. java 学习书籍-想精通java的必看
  3. C语言extern详解必懂
  4. zoj 1137 Girls and Boys
  5. 51单片机的四路抢答器c语言,用51单片机制作4路抢答器
  6. 爱尔兰圣三一大学计算机专业硕士,圣三一大学两大热门硕士专业
  7. 盘点2021年Apache年报中出现的国产项目
  8. 深度挖掘用户需求?按这五个步骤做!
  9. 万亿级重磅!刚刚,新一批基金投顾资格正式获批!广发、博时、招商等在列
  10. 5778. 【NOIP提高A组模拟2018.8.8】没有硝烟的战争