公司官网前端开发经验分享

惰性珊瑚
• 阅读 4305
公司官网的重要性和特殊性不言而喻。
很多前端都会经历这个项目,笔者有幸在所就职的每家公司都负责过官网的前端开发工作。开发中遇到过很多问题,反思起来值得和大家一起分享,以减少或者减低大家可能遇到的问题。

理想开发流程
UI => 开发 =》 测试 =》 上线

现实开发流程
需求方 =》 UI => 开发 =》需求方 =》 UI => 测试 =》需求方 =》 ...... UI => 上线 =》需求方 =》 UI => 开发 测试 =》上线

实际开发中需求及UI会一直调整,直到上线以后仍会不停调整。
所以,前期的需求评审至关重要。一定要让需求方(一般是市场部负责人)评审通过以后再开发。

吐槽:官网是我见到为数不多的产品总监PK不过市场总监的项目之一。一般项目,前端展示效果产品总监拍板即可。


0. 特性

  1. 跨部门沟通
  2. 跨项目耦合
  3. PWA
  4. 测试的重要性
  5. 工期的紧迫性
  6. 项目重要性
  7. SEO的重要性

1. 跨部门沟通

由于官网的特殊性,官网通常会涉及多部门协作。

  • 市场部:需求方,一般官网都必须满足市场部推广需求
  • 销售部:半需求方,一般官网都必须满足市场部推广需求
  • 人力部:半需求方,辅助招聘需求
  • 客服部:半需求方,辅助客服需求
  • 产品部:设计,对UI及UE负责
  • 开发部:开发,对技术及开发进度负责
  • 测试部:测试,对质量、效果负责,保证测试充分
  • 运维部:运维,对网络及服务器负责
  • 运营部:文案,对文案及SEO推广负责
  • 国际化:翻译,保证文案翻译的准确性及效率(一般小公司会外包,所以必须保证时效)

2. 跨项目耦合

  • 用户系统:实现单点登录(SSO)功能
  • 公司产品:涉及到公司产品的子项目
  • 官方博客:如blog、wiki、zendesk等
  • 客服功能:WeChat、App、小程序、微博等功能的集成

3. PWA

1. 可靠性

  • 跨终端可用性
  • 离线可以访问基本功能
  • 保证服务长期可访问

2. 快速性

  • 可交互等待时长
  • 加载速度

3. 友好性

  • 合理的布局
  • 友好的UI设计
  • 便捷的交互
  • 适合不同国家的用户使用习惯,如阿拉伯语国家 direction
  • 无障碍阅读

4. 测试的重要性

  • 自测
  • 产品
  • 测试部门
  • 公司内测

5. 工期的紧迫性

由于官网是企业对外宣传的重要工具,所以一般会要求时效性,如新闻、咨询、招聘信息等及时更新。

以及活动页的开发,如周年庆、春节、促销、展会、推广等活动。

6. 项目重要性

由于官网是企业的门面,一般公司(中小型企业)的老板都会对官网亲自把关,通过官网来展现公司的企业文化。所以,倘若你在中小型企业,接手官网的话,拿出看家本领把官网做好也是非常值得的。

7. SEO的重要性

由于官网的特殊性,往往公司会付费做SEO推广,所以,官网的SEO友好性不言而喻。这就要求我们在项目技术选型期要慎重考虑,想办法将SEO做的更好,这样就可以大幅节省推广成本,达到事半功倍的效果。

现在适合SEO的方法比较多,如SSRPrerender等其他方式。

检查清单

  1. 参与需求评审,待定稿后开始开发
  2. 工期预估,按正常工时的1.5-2倍时间进行预估,后期更改会比较频繁
  3. 硬件条件提前准备,如服务器、SSL、HTTPS等需要提前准备,待项目上线前搞定。
  4. 对老官网的兼容性,新官网发布前务必邮件告知公司全部高管,让大家自行修改,处理新老官网更换代理的问题。如,页面路径发生变化。
  5. 统计工具兼容(友盟、GA等)
  6. 埋点及上报代码不应遗漏
  7. 公测(公司内部测试,尽量保证1周左右的时间,让大家体验并上报问题)
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这