zoukankan      html  css  js  c++  java
  • 设计方案系列-如何看待前端框架选型 ?

    对于前端团队,可以实现企业受益最大化要点。

    一、技术选型的策略

    1、保证产品质量

    (1)功能稳健:网页不白屏,不错位,不卡死;操作正常;数据精准。

    (2)体验优秀:加载体验,交互体验,视觉体验,无障碍访问。

    2、降低人力成本

    (1)降低前期开发成本;

    (2)降低后期维护成本。

    二、前端开发模式选择

    开发模式:1、纯前端开发;2、前后端分离开发;3、后端主导的开发。

    1、纯前端开发

    主要是针对静态页面。没有模板和框架参与,基本上一个人就可以hold住,比如:官方网站,招聘站,以及设计感强烈且运营活动页面等。自主权最大,正常是使用nodejs进行辅助开发,上线等。

    2、前后端分离开发

    现在很多公司的系统都是采用前后端分离的开发模式。根据项目的性质,使用nodejs进行模板渲染(ejs模板,jade模板,dot模板,artTemplate模板),要不是框架自带的渲染的方式(vue,react),但是实质上一样的,都是使用js对页面进行构建。控制权很大。

    3、后端主导开发

    由于很多历史遗留问题,有的产品还是采用后盾渲染的开发模式,比如一些内部行政系统相关的。在和他们合作的时候,交付原型的时候,需要克制自己:

    (1)不要使用sass,less产不多的前端预处理器;

    (2)不使用类似于seajs之类的模块化组件库,而是采用效率更低的人工模块耦合;

    (3)不追求新技术,使用更基础代码,采用更传统首发,良好的代码设计保证质量【参数接口暴露在外,后端可以轻松配置,而不是耦合在js中】。

    这种前端属于支援角色,后期维护通常都是与后端开发一起维护。这就是有时候会出现维护很痛苦的问题。

    缺点:增加开发人力成本;

    优点:自我牺牲保证项目正常维护下去,职业的体现。

    三、前端开发技术选型

    对于同一个类型的项目,采用开发模式,使用的基本框架都是一致的。

    前端技术选型:

    (1)外部用户的PC站;

    (2)外部用户的mobile站;

    (3)外部用户的Native App开发;

    (4)内部员工的管理后台

    1、外部用户的PC站

    需要有SEO,有加载体验,采用的是前后端分离开发模式,页面直接渲染,基于jquery。

    为什么使用jquery?

    (1)主要是为了兼容IE8;

    (2)是外部用户,视觉体验高,权重高。适合先有行,再有行。就是说视觉和行为要尽可能分离,会牺牲一点开发成本,但是用户更重要。

    (3)绝大多数页面交互轻量用不上数据驱动。

    2、外部用户的Mobile站

    这里说的Mobile站主要是浏览器访问为主的,因此,页面切换都是传统连接跳转,属于传统web应用,前后端分离开发模式,页面直接渲染,采用react。大致原因:使用react 是为了 和APP端的react native保持同步。

    3、外部用户的Native App开发

    前端组有直接参与 Native APP 开发的项目,使用的是 React Native 进行开发。

    为啥选择RN,之前Hybrid模式开发有性能优化瓶颈,采用React Native性能可以突破这个瓶颈,有原生的性能,且支持热更新,上手不算太难,跨平台,IOS和android代码复用率90%。适合交互和动画不太复杂的项目,最终要根据项目来。特别适合快速迭代的项目或者前期需要大量试错的项目。

    (1)不要随意使用第三方库,后期修改维护不方便,尽量自己写还是自己写;

    (2)前期还是需要客户端帮忙配合,项目搭建。

    4、内部员工的管理后台

    前后端分离开发,页面侧重异步渲染,使用vuejs。

    大致内容是:后台管理系统有大量的增删改查操作,适合具有双向绑定的类库或者框架进行渲染。同时没有兼容性的要求(SEO,首屏渲染),因此单页面是合适的。可以选择vue,react,angular。因为vue对api,文档对开发者更友好。选用好的UI组件,规范贯彻,拆分和按需加载,自动化测试有待加强。

    四、总结

    对于比较正式的项目,前端技术选型策略一定是产品收益最大化用户在首位。考虑到亿级的用户量,自然技术选型更为谨慎,于是优先选成熟,经典的解决方案。

    但是不是说,排斥热门技术。相反,就算还是很不成熟的新技术,只要对产品带来收益的,一定要鼓励应用的,比如AMP和PWA的实践。

    其实这时候也会带来一个问题,技术人员对新技术有着天然的学习和实践需求,因为这有助于降低内心的焦虑和不安全感。

    尤其是对技术有着狂热的爱好的小伙伴,这些成熟项目由于规范约束,不能随便乱来,很容易让开发人员报国无门的感觉,这该如何达到心理的平衡

    通过边缘项目,实践性的项目,以及团队会自发发起一些有价值的内部项目来满足这样的需求,同时积累宝贵的经验。相当于嵌入了新的平台,让产品,团队和个人都达到非常好的平衡。

    产品驱动的文化下,心中想的更多是把用户和产品做更好,让技术服务产品,因产品而技术,而非因技术而技术。

    运营驱动的文化下,本质上是吆喝做买卖,成为前言技术的弄潮儿就是和企业文化的契合。

  • 相关阅读:
    使用gradle打包时将依赖也合并入jar包
    fiddler win10-1703Failed to register Fiddler as the system proxy
    VC编译选项 多线程(/MT)
    [转载]ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)
    线程操作函数
    注册表使用技巧
    在github上参与开源项目日常流程
    盘点富人和穷人九大经典差异
    C++程序风格的思考
    mfc窗口,父窗口parentwindow,所有者窗口ownerwindow 区别
  • 原文地址:https://www.cnblogs.com/chengxs/p/10910004.html
Copyright © 2011-2022 走看看