业务逻辑很复杂而且多变
『前端的逻辑复杂度基本不如后端』这个只是但从数据处理的角度来看的,前端对于数据处理的确是模板 + 变量一套一展示就好了,这个是挺简单的。
前端逻辑复杂度主要在于数据 + UI + 交互的实现,就比如一个简单的多 tab 页的功能,可以用 CSS 实现、用 JS 实现,JS 可以通过切换 remove DOM 或者添加 classname 隐藏,虽然效果上都可以实现,remove DOM 无法原有结构的状态,添加 classname 的 CSS 方式很难实现初始化状态。除此之外还可能需要对浏览器进行兼容性处理 + 响应式。然后突然来个业务需求说要加个 iframe 嵌入别人的页面,或者改什么效果,如果之前开发的不合理,基本上要重做了。
相比后端,只输出数据模型给前端,如果业务不需要什么字段了,甚至让前端不读取好了,改都不用改。我们几次大的业务平台重构,前端基本要重新开发一遍(效果、交互完全不同),后端模型和数据库则可以递进式的复用、扩展、升级。这也是导致前端需要堆人大力出奇迹的问题。
垂直领域解决方案很难
切页面是没什么难度的,但是在淘宝一到双十一、双十二大促根据经常多变的运营需求切几百个页面就很难了。这已经不是堆人堆外包可以解决的了,所以我们有 TMS 等各种运营系统,前端切模块,运营自己设置、文案、组装成运营页面,想改自己在后台改不用麻烦前端。这一套系统是个比较庞大的工程,从模块规范、模块开发工具链、模块发布和版本管理、在线管理、在线可视化搭建、数据填写和数据源导入、页面生成和 CDN 同步等等,都需要前端架构师设计然后开发。设计这个系统是很难的。
再比如富文本内容发布业务需求,光是一个富文本编辑器就很复杂,要实现各种功能和兼容性,更复杂的是要适应业务发展。当时刚开始交接淘宝内容业务的时候,需要重新开发编辑器等,跟后端大神们进行讨论推测未来业务可能会有大量表单而且需要完全的数据驱动,所以我们前端设计开发了 现在有个项目表单很多,用什么技术框架合适? - 知乎 技术产品然后后端有对应的 SDK 进行解析和数据存储、表单生成服务,前端只需要开发组件,然后后端按照业务需求进行配置即可产出内容发布表单。
此外,富文本我们选用了 JSON base 的存储,对比 HTML base 的编辑器,因为淘宝内容详情页充满了各种商品、优惠券、店铺等信息,而且这些信息是需要被理解、识别而且在详情页输出前实时补全最新价格、优惠券可用状态、店铺名等信息的。用传统输出 HTML 的编辑器输出,让后端解析的话复杂度太高了,每一种素材你都需要设计、约束特定的 HTML 标记让后端进行解析。所以我们基于 跳转中 封装了一套 JSON base 的富文本编辑器,设计了完全数据驱动的插件机制,可以通过配置任意控制要提供的功能等。
虽然知乎的编辑器也是基于 draft-js 开发的,但遇到的业务挑战完全不同。它不需要功能动态变化,因为所有人都一样。然后不知道是后端的数据处理逻辑的问题,它在提交和回填的时候是通过 HTML 作为媒介进行传播,将 draft-js 的 JSON 数据协议转成 HTML 提交给后端存储。所以不同业务场景、特点,需要完全不同的前端解决方案,在开发这些垂直解决方案的时候,业务分析、技术选型、架构设计、开发落地是非常难的。
1第一阶段:前端页面重构
内容包含了:PC端网站布局项目、HTML5+CSS3基础项目、WebApp页面布局项目
2第二阶段:JavaScript高级程序设计
内容包含:原生 JavaScript交互功能开发项目、面向对象进阶与 ES5/ES6应用项目、JavaScript工具库自主研发项目
3第三阶段:PC端全栈项目开发
内容包含:jQuery经典交互特效开发、>
4第四阶段:移动端项目开发
内容包含:Touch端项目、微信场景项目、应用 Angular+Ionic开发 WebApp项目、应用 Vuejs开发 WebApp项目、应用 Reactjs开发 WebApp项目
5第五阶段:混合(Hybrid,ReactNative)开发
内容包含:微信小程序开发、React Native、各类混合应用开发
6第六阶段:NodeJS全栈开发
内容包括:WebApp后端系统开发、NodeJS基础与NodeJS核心模块、Express、noSQL数据库
7第七阶段:大数据可视化
内容包含:大数据可视化化基础与实战、数据可视化入门、D3js详解、其他JS库
扩展资料
web特点
1图形化
Web 非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特性。
2与平台无关
无论用户的系统平台是什么,你都可以通过Internet访问>
如Mozilla的Firefox、Google的Chrome、Microsoft的Internet Explorer等。
3分布式的
大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上,只需要在浏览器中指明这个站点就可以了。在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。
4动态的
由于各Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。如某个协议的发展状况,公司的广告等等。一般各信息站点都尽量保证信息的时间性。所以Web站点上的信息是动态的、经常更新的,这一点是由信息的提供者保证的。
5交互的
Web的交互性首先表现在它的超链接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过FORM的形式可以从服务器方获得动态的信息。用户通过填写FORM可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。
参考资料:
Web开发是一个广义的术语,指的是编写Web页面或网站的过程。网页是用HTML、CSS和JavaScript编写的。这些页面可能是与文档类似的简单文本和图形。该页面也可以是交互式的或显示不断变化的信息。编写交互式服务器页面稍微复杂一些,但它可以实现更丰富的网站。今天的大多数网页都是交互式的,并提供现代在线服务,如购物车、动态可视化甚至复杂的社交网络。
一般来说,web开发就是我们所说的网站。它分为网页部分和逻辑部分,即前台和后台。前台负责与用户交互和显示数据。Html用于显示数据,CSS控件样式,JS用于编写复杂的交互。后台用来编写程序来处理这些逻辑。可使用C#、Java、vbphp等语言。
不管你是自学还是培训,找工作主要看的是技术能力、相关工作经验、综合实力及沟通能力等。只是对于自学的小伙伴来说,不知道企业需要哪些技术,并且不知道需要达到什么样的技术水平才能就业?所以在学习过程中很迷茫,学了很久之后也可能达不到要求,因此找工作很难。蜗牛学院这里根据行业变化和企业需求整理了一份最新的web前端学习路线,都是企业招聘时所需的技术,希望对自学的小伙伴有所帮助。
第一阶段:专业核心基础
阶段目标:
1 熟练掌握HTML5、CSS3、Less、Sass、响应书布局、移动端开发。
2 熟练运用HTML+CSS特性完成页面布局。
4 熟练应用CSS3技术,动画、d性盒模型设计。
5 熟练完成移动端页面的设计。
6 熟练运用所学知识仿制任意Web网站。
7 能综合运用所学知识完成网页设计实战。
知识点:
1、Web前端开发环境,HTML常用标签,表单元素,Table布局,CSS样式表,DIV+CSS布局。熟练运用HTML和CSS样式属性完成页面的布局和美化,能够仿制任意网站的前端页面实现。
2、CSS3选择器、伪类、过渡、变换、动画、字体图标、d性盒模型、响应式布局、移动端。熟练运用CSS3来开发网页、熟练开发移动端,整理网页开发技巧。
3、预编译css技术:less、sass基础知识、以及插件的运用、BootStrap源码分析。能够熟练使用 less、sass完成项目开发,深入了解BootStrap。
4、使用HTML、CSS、LESS、SASS等技术完成网页项目实战。通过项目掌握第一阶段html、css的内容、完成PC端页面设计和移动端页面设计。
第二阶段:Web后台技术
阶段目标:
1 了解JavaScript的发展历史、掌握Node环境搭建及npm使用。
2 熟练掌握JavaScript的基本数据类型和变量的概念。
3 熟练掌握JavaScript中的运算符使用。
4 深入理解分之结构语句和循环语句。
5 熟练使用数组来完成各种练习。
6熟悉es6的语法、熟练掌握JavaScript面向对象编程。
7DOM和BOM实战练习和H5新特性和协议的学习。
知识点:
1、软件开发流程、算法、变量、数据类型、分之语句、循环语句、数组和函数。熟练运用JavaScript的知识完成各种练习。
2、JavaScript面向对象基础、异常处理机制、常见对象api,js的兼容性、ES6新特性。熟练掌握JavaScript面向对象的开发以及掌握es6中的重要内容。
3、BOM *** 作和DOM *** 作。熟练使用BOM的各种对象、熟练 *** 作DOM的对象。
4、h5相关api、canvas、ajax、数据模拟、touch事件、mockjs。熟练使用所学知识来完成网站项目开发。
第三阶段:数据库和框架实战
阶段目标:
1 综合运用Web前端技术进行页面布局与美化。
2 综合运用Web前端开发框架进行Web系统开发。
3 熟练掌握Mysql、Mongodb数据库的发开。
4 熟练掌握vuejs、webpack、elementui等前端框技术。
5 熟练运用Nodejs开发后台应用程序。
6 对Restful,Ajax,JSON,开发过程有深入的理解,掌握git的基本技能。
知识点:
1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,mongodb数据库。深入理解数据库管理系统通用知识及MySQL数据库的使用与管理,为Nodejs后台开发打下坚实基础。
2、模块系统,函数,路由,全局对象,文件系统,请求处理,Web模块,Express框架,MySQL数据库处理,RestfulAPI,文件上传等。熟练运用Nodejs运行环境和后台开发框架完成Web系统的后台开发。
3、vue的组件、生命周期、路由、组件、前端工程化、webpack、elementui框架。Vuejs框架的基本使用有清晰的理解,能够运用Vuejs完成基础前端开发、熟练运用Vuejs框架的高级功能完成Web前端开发和组件开发,对MVVM模式有深刻理解。
4、需求分析,数据库设计,后台开发,使用vue、node完成pc和移动端整站开发。于Nodejs+Vuejs+Webpack+Mysql+Mongodb+Git,实现整站项目完整功能并上线发布。
第四阶段:移动端和微信实战
阶段目标:
1熟练掌握Reactjs框架,熟练使用Reactjs完成开发。
2掌握移动端开发原理,理解原生开发和混合开发。
3熟练使用react-native和Flutter框架完成移动端开发。
4掌握微信小程序以及了解支付宝小程序的开发。
5完成大型电商项目开发。
知识点:
1、React面向组件编程、表单数据、组件通信、监听、声明周期、路由、Redux基本概念。练使用react完成项目开发、掌握Redux中的异步解决方案Saga。
2、react-native、开发工具、视图与渲染、api *** 作、Flutter环境搭建、路由、ListView组件、网络请求、打包。练掌握react-native和Flutter框架,并分别使用react-native和Flutter分别能开发移动端项目。
3、微信小程序基本介绍、开发工具、视图与渲染、api *** 作、支付宝小程序的入门和api学习。掌握微信小程序开发了解支付宝小程序。
4、大型购物网站实战,整个项目前后端分离开发;整个项目分为四部分:PC端网页、移动端APP、小程序、后台管理。团队协作开发,使用git进行版本控制。目期间可以扩展Threejs 、TypeScript。
老实说,前端经过这几年的快速发展,网上的文章和教程还是蛮多的,有经验的人能够根据资料制定出属于自己的学习方法和路径,但对于小白来说,还是有些难度。知了姐来给大家分享前端学习路径。针对0基础,非科班,没有编程经验,想学前端,但是不知道如何入门的人群。
基础部分:
1、HTML + CSS 这部分学习,可以模仿一些网站做些页面,在实践中积累经验。做到能与UI对接,能100%重构网站静态页面的开发,为后期编写页面逻辑、动态效果打基础。
2、Javascript 要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,这个阶段需要掌握编程基础概念,培养逻辑思维能力。能够独立完成网站的页面开发(包括合理布局,JavaScript *** 作DOM)
进阶部分:
有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。
3、JavaScript高级与服务器基础,深入面向对象编程,具备移动端开发能力,处理浏览兼容问题,深入学习ES6/ES7语法规范,前后端分离开发思想。
4、框架与服务器,数据库,前端安全的学习,深入了解Node,数据库 *** 作,前后端分离技术,前后台协作开发。熟悉NPM(Yarn),Node模块fs,>
5、React与组件化开发,深入学习组件化开发思想,了解webpack使用,掌握React开发基础,Hook,create-react-app等等。
升级部分:
有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1)易维护,2)可测试,3)高性能,4)低流量(移动端)。
其他补充部分:
前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用Svn和Git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,比需要学会使用Grunt、Gulp等前端构建工具。
以上内容只是简单说了前端学习的顺序。对于前端开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。
1、交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端一定不是好前端。推荐《简约至上》。
2、后端。应该说前端工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,如今NodeJs在大公司已经得到普遍的使用,推荐大家使用在Node上使用Express框架做一些后端服务的开发。
最后,有经验的程序员都知道,学习编程最有效率的方式就是把你扔到一个项目组,连滚带爬的做一两个项目下来你马上会发现所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。 一个项目就是一根绳子可以把大片的知识串到一起。
如果想锻炼实际开发的能力而不仅仅是背诵或者了解一些知识点,如果想成为真正的好手,那么,还是做项目吧!
整体来看的话,Web前端开发需要学习的内容还是比较多的。前端是一门涵盖面很广的学科,而且技术更新较快,优秀的Web前端开发工程师应该具备快速学习能力。如果没有快速学习能力,就跟不上Web发展的步伐,所以需要不断提升自己,不断学习新技术、新模式。
以上就是关于前端开发的难点到底在什么地方全部的内容,包括:前端开发的难点到底在什么地方、web前端培训课程都学习什么内容、web网页开发是指等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)