2019 年,我主要任职于一家猎头公司,出任开发经理一职。带领团队,为公司的基于B/S架构的校园招聘网站的重新复苏,开展工作。
4月1日前在柯达任职,由于任职时间较短,本文仅仅记录自4月1日至12月31日的主要工作汇总。
开发
开发类工作
团队、规范、章程
为团队集体开发工作提供行动指南
- 建立 Wiki 及相关维护制度
- 确立 自动化测试工作 开发、维护方式
- 确立 自动化集成与打包 开发和维护
- 部分 自动化发布
- 建立围绕 gitlab 为主要工具的《代码分支管理策略》、《源代码管理规定》、《代码审查规则》
- 确立 《程序错误页面处理》 规范
- 确立 《使用日志》 规范
- 确立 《HTTP API设计规范》 规范
- 确立 《H5调用APP》 规范
主要开发
主要开发工作包含有主导落实和亲手开发的所有内容。
以下只罗列需要超过至少 3人日 的工作。
以下事项均属于这些情况:已经完成、已经建立了机制后续需要逐步调整。
工作分类的说明:
- 代码基础设施,公共的代码工作,和特别的业务功能点没有直接关联,属于项目基石的工作。
- 底层优化工作,公共的代码工作,但是和特别的功能点有关联,或者原来也有,但是原来的实现有缺陷,需要重做或者重构。
- 自动化脚本工作,自动化工作。
- 业务功能性问题,和特定的业务功能有关。
所属分类 | 具体事项 | 针对问题 |
---|---|---|
代码基础设施 | 调整项目引用内容和依赖关系。 | 循环引用、过时的引用、错误的引用等等 |
代码基础设施 | 升级到 framework 4.8 | framework 4.5 早就已经停止维护,很多新组件已经无法使用 |
代码基础设施 | 重新选型日志框架。 | 没有异步写文件、不具备可分析性等等 |
代码基础设施 | 重新设计依赖注入模块机制。 | 不正常启动、维护方式不统一等等 |
代码基础设施 | 重新调整AutoMapper使用机制。 | 管理混乱,难以及时发现问题等等 |
代码基础设施 | 实现程序集统一版本号。 | 无法知道版本是否确实已经发布 |
代码基础设施 | 重新设计配置管理机制。 | 配置管理困难,非强类型不容易测试、旧配置未淘汰等等 |
代码基础设施 | 修复编译器警告CS1573 CS1572 CS1587 CS0105 CS1998 | 编译器警告 |
代码基础设施 | 后台服务编写风格统一化,统一为 Topshelf | 不够统一 |
代码基础设施 | 定时任务框架统一化,统一为 Hangfire ,抛弃 Quartz | 不够统一,缺少界面 |
代码基础设施 | 同步线上最新的表结构到本地 | 开发环境和线上表结构不一致 |
代码基础设施 | 同步线上最新的MVC视图到本地 | 开发环境和线上视图不一致 |
代码基础设施 | 选用 Swagger 自动API文档机制,及配套的客户端生成工具 | API文档维护困难,不易维护API变更 |
代码基础设施 | 选型决定使用 MassTransit 作为消息队列的公共中间件 | 原生消息队列组件缺少封装,不易用 |
底层优化工作 | 引入MVC视图预编译。 | 发布困难,编译时不报错运行时报错等等 |
底层优化工作 | 为所有表单添加服务端数据验证。 | 数据缺少服务端验证是极大的风险问题。 |
底层优化工作 | 修正“ID遍历漏洞” | 安全性问题 |
底层优化工作 | 从Solr迁移到ES。 | 缺乏Solr使用与维护专家、Solr性能下降等等 |
底层优化工作 | 邮件发件公共代码重写,统一接口和操作方式 | 不够统一 |
底层优化工作 | 基于 netcore 重写职位爬虫程序底层,设计下载器和解析器概念。 | QPS不合理,不可量化,不可扩展,CPU消耗极高等等 |
底层优化工作 | EDM服务发件机制重写,排队发送。 | 发件会导致内存溢出错误,后半程发件全部失败 |
底层优化工作 | 定时任务框架重写,任务重新编号,增加异常处理和日志。 | 出问题不好排查 |
底层优化工作 | MQ消费服务重写,任务重新编号,增加异常处理和日志。 | 出问题不好排查 |
底层优化工作 | 重写身份认证机制。 | 原来的身份认证方案有重大安全漏洞 |
底层优化工作 | 增加人机验证机制。 | 登录、注册、短信验证码等内容可以被恶意利用 |
底层优化工作 | 学生端PC端展示页面性能优化到500ms内:主页、找职位、公司详情、职位详情、文章相关等等展示类页面 | 页面加载极慢甚至无法正常加载 |
底层优化工作 | 缓存清理站点API机制调整,调整为排队处理。 | 并发时,大批量报错 |
底层优化工作 | 重构短信操作类 | 不够统一,没有重试机制,没有日志记录等等 |
底层优化工作 | SignalR身份认证和发送频次处理 | 存在被恶意利用的可能 |
底层优化工作 | 修正文件上传漏洞 | 原来没有身份认证,存在安全风险 |
底层优化工作 | 修正原站申请功能存在 XSS 漏洞问题 | 安全性问题 |
底层优化工作 | 发现修正部分SQL注入问题 | 安全性问题 |
自动化脚本工作 | 维护开发环境初始化脚本 | 确保项目成员用最小成本学习初始化开发环境 |
自动化脚本工作 | 维护自动化打包脚本 | 解决手动打包可能出现缺漏错的问题 |
自动化脚本工作 | 维护线上发布脚本 | 手动操作导致的发布失误 |
业务功能性问题 | 针对线上应用程序错误日志、IIS 500 日志,解决各类问题。 | 各类BUG |
业务功能性问题 | M站SEO优化初版 | SEO要求M站页面需要进行静态化处理 |
业务功能性问题 | 需求类 | 需求 |
运维
团队、规范、章程
- 订立《安全狗安装与设置》
- 订立《服务器软件列表》
- 订立《Windows服务器文件夹目录存放规则》
- 订立《Windows服务操作说明》
- 订立《线上软件版本控制操作说明》
- 订立《更新包上线操作说明》
- 订立《OpenResty运维手册》
- 订立《DNSPod维护规范流程》
- 订立《数据库异机备份》
具体运维
主要开发工作包含有主导落实和亲手开发的所有内容。
以下只罗列需要超过至少 3人日 的工作。
以下事项均属于这些情况:已经完成、已经建立了机制后续需要逐步调整。
工作分类的说明:
- 突发性工作,由于意料之外的情况导致的运维工作。
- 系统性工作,属于运维性质,对系统进行改良。
- 周期性工作,周期性的运维工作。
所属分类 | 具体事项 | 针对问题 |
---|---|---|
突发性工作 | 服务器迁移 | 服务器黑客入侵 |
系统性工作 | 物理机更换内存过渡指导 | 物理机内存故障 |
系统性工作 | 机房路由器改造建议 | 单路由器存在单点故障可能 |
系统性工作 | 线上ES搭建 | Solr切换ES上线 |
系统性工作 | 多线多活项目 | 负载均衡设计不合理 |
系统性工作 | 线上Redis系统迁移重建 | 单硬盘物理机需要升级 |
周期性工作 | 发布上线约100次,平均每2天一次发布 | 版本更新 |
事务
- 这一步测试环境重建与维护:站点、ES等等主要虚拟机管理
- gitlab 维护
- Wiki 系统维护