大型项目前端架构浅谈( 五 )

总的来说,技术栈统一的好处很多,可以有效提高开发效率,降低重复造轮子产生的成本 。
意义:
方便招人,简化团队成员培养成本,以及提高项目的可持续性 。
3.5、浏览器兼容
常见的问题是IE6、7、8,以及部分小众浏览器(PC和手机)产生的奇怪问题 。因此应该考虑统一解决方案,避免bug的重复产生 。常见解决方案有:

  • 配置postcss,让某些css增加兼容性前缀;
  • 写一个wepback的loader,处理某些特殊场景;
  • 规范团队代码,使用更稳定的写法(例如移动端避免使用fixed进行布局);
  • 对常见问题、疑难问题,总结解决方案并团队共享;
  • 建议或引导用户使用高版本浏览器(比如chrome);
意义:
避免浏览器环境产生的bug,以及排查此类bug所浪费的大量时间 。
3.6、内容平_台建设
为了提高公司内部的沟通效率,总结经验,以及保密原因 。应建设一个内部论坛+博客站点 。其具备的好处如下:
  • 可以记录公司的历史;
  • 研发同学之间分享经验;
  • 总结转载一些外界比较精品的文章,提高大家的眼界;
  • 增加公司内部同学的交流,有利于公司的团队和文化建设;
  • 对某些技术问题可以进行讨论,减少因没有达成共识带来的沟通损耗;
众所周知,大型互联网公司通常都有这样一个内部论坛和博客站点 。其降低了公司的沟通和交流成本,也增加了公司的技术积累 。
意义:
博客增强技术积累,论坛增强公司内部沟通能力 。
3.7、权限管理平_台
当公司内部人员较多时,应有一个专门的平_台,来管理、规范用户的权限以及可访问内容[原创水印-作者:零零水(王冬),微信:qq20004604] 。权限管理平_台有几个特点:
  • 必然和Server端天然高耦合度,因此需要有专门的控制模块负责处理权限问题(负责Server端开发处理,或者前端通过中间层例如Node层介入处理);
  • 自动化流程控制,即用户创建、申请、审批、离职自动删除,都应该是由系统推进并提醒相关人士,必要时应能触发报警;
  • 权限应有时效性,减少永久性权限的产生;
  • 审批流程应清晰可见,每一阶段流程应具体明确;
  • 应与公司流程紧密结合,并且提高可修改性,方便公司后期进行流程优化;
意义:
使得公司内部流程正规化、信息化 。
3.8、登录系统设计(单点登录)
当公司内部业务线比较复杂但相互之间的耦合度比较高时,我们应该考虑设计添加单点登录系统 。具体来说,用户在一处登录,即可以在任何页面访问,登出时,也同样在任何页面都失去登录状态 。SSO的好处很多:
  • 增强用户体验;
  • 打通了不同业务系统之间的用户数据;
  • 方便统一管理用户;
  • 有利于引流;
  • 降低开发系统的成本(不需要每个业务都开发一次登录系统和用户状态控制);
总的来说,大中型web应用,SSO可以带来很多好处,缺点却很少 。
意义:
用户体验增强,打通不同业务之间的间隔,降低开发成本和用户管理成本 。
3.9、CDN
前端资源的加载速度是衡量用户体验的重要指标之一 。而现实中,因为种种因素,用户在加载页面资源时,会受到很多限制 。因此上CDN是非常有意义的,好处如下:
  • 用户来自不同地区,加入CDN可以使用户访问资源时,访问离自己比较近的CDN服务器,降低访问延迟;
  • 降低服务器带宽使用成本;
  • 支持视频、静态资源、大文件、小文件、直播等多种业务场景;
  • 消除跨运营商造成的网络速度较慢的问题;
  • 降低DDoS攻击造成的对网站的影响;
CDN是一种比较成熟的技术,各大云平_台都有提供CDN服务,价格也不贵,因此CDN的性价比很高 。
意义:
增加用户访问速度,降低网络延迟,带宽优化,减少服务器负载,增强对攻击的抵抗能力 。
3.10、负载均衡
目前来看,负载均衡通常使用Nginx比较多,以前也有使用Apache 。当遇见大型项目的时候,负载均衡和分布式几乎是必须的 。负载均衡有以下好处:
  • 降低单台server的压力,提高业务承载能力;
  • 方便应对峰值流量,扩容方便(如举办某些活动时);
  • 增强业务的可用性、扩展性、稳定性;
负载均衡已经是蛮常见的技术了,好处不用多说,很容易理解 。
意义:
增强业务的可用性、扩展性、稳定性,可以支持更多用户的访问 。


推荐阅读