制定规范、规矩
似乎总是从新人对接开始说事,这事整的,好像每个公司人员流动性都很大,带来的问题也已经从侧面说明了。团队总是具有不稳定性,团队要继续高速前行势必需要早做准备,需要做一些不依赖人员的东西、跟团队业务发展相关的东西,这也仅仅是制定规范的好处之一,更多的还是为了更好、更舒服的工作。
- 新人培训:了解组织架构、业务划分、团队情况,职责定位、开发测试规范
- 老带新:不能让新人跟老人没有交集,优秀的东西需要传承
新人三知:始、中、终。新人和老人都需要具备一定的主动性,主动问、主动告知。 了解某一事情的开始、发展、和结果。具体表现为:事件背景、事件发展阶段、各阶段预期结果以及最终预期结果。
规范的延续
也就是规范的载体
如同文化的传参有典籍、实物和活态三种渠道一样,规范传参可以简单概括为两种方式:“物承”和“口承”。
工作中“口对口”传达需求的情况比比皆是,对于“口授”者相当方便,承接者就遭殃了。
口头传达缺点:
- 容易遗漏
- 表意不当
- 双方理解偏差
- 不易留痕
- 极易变更,会导致相关人员工作混乱
相比而言,有实物的输入输出就会带来更舒服的工作体验,各方面工作可以有条不紊的推进,准点下班不是梦(WLB)
实物也就是文档,包括:业需、软需,还有前后端、UI以及测试人员的文档
UI:
- 交互原型(低保真原型)
- 高保真原型
前端:
- 前端开发详细设计文档
后端
- UML图
- 数据库表设计文档
- 后端开发详细设计文档
- 后端接口规范文档(BFF 前后端协商)
测试
- 功能点拆分文档
- 编写测试用例文档
- 测试报告
以上是前后端测试人员需要产出的不完全文档,还包括各阶段产出文档的评审、多方同步、会议纪要、评审报告等等
具体实施阶段还包括各方排期、进度跟踪反馈、问题上报、变更调整、版本窗口期等等
软件开发方式:
- 瀑布模型
- 迭代式开发
- 螺旋开发
- 敏捷开发模式
- DevOps模式
真实的工作中基本不存在单一的软件开发模式,更多的是“混合”开发模式,这里“混合”的意思是混合多种开发模式
在产品生命周期的各个阶段有哪些人员需要介入、同步进行、依赖输入和最终产出等等,是需要方法论指导的,而不是乱打一气。
规范文档的好处:
- 有记录
- 有产出
- 有计划
- 可回溯
- 可量化
- 易交接
- 易把控
好处多多✨✨
文档存放
- Confluence
- 飞书云文档
- ....
项目框架模板
前端细分领域很多,对于公司而言,新产品的快速落地至关重要,对技术人员来说就需要准备一套前后端产品开发框架
- 小程序
- Web端
- H5端
- 移动端原生
- 微前端
- SSR
- Node
- 大屏、可视化
- ......
不同产品的技术框架可以自研,也可以在GitHub上寻找模板二次开发之后用作自己的框架模板
总之,就是为了可以快速的开发业务功能,而不用花太多时间在基础框架开发上面(正常来说这属于架构组的工作,对于这个职位的划分,存在肯定是有一定的道理的,毕竟每家公司情况都不太一样。我有自己的看法,不展开说了,技术是服务于业务的)
公共库
- 前端UI组件
- 前后端中间件
- 前后端依赖插件
- 网络安全验证插件(组件签名)
- .......
开发
基础框架搭建:
- 面向对象封装
- 业务框架自上而下、自下而上组件设计
- 可扩展、可维护、可配置化架构
- 打包分析优化
- 错误补偿、捕获机制
- ......
规范:
- 设计大于开发(设计模式)
- Hooks
- 函数式编程
- Utils
- Lint 代码检测
- commit-msg规范
- css BEM命名规范
- 组件化
- 更多参考业内顶流开源项目编码方式
- 前后端配合开发
- ......
性能优化
很多人都讲性能优化,优化的角度比较混乱,基本上是想起什么了才开始弄,基本可以从加载时、运行时两方面分析优化。
维度这个东西直接影响着方向,有一个好的划分维度既不会遗漏,也很有条例,可见维度至关重要
performance真是个好东西,包涵重定向、DNS解析到页面加载完成、卸载各阶段的市场统计,逐个分析优化,优化效果时长也立即可以看到,工作成果报告也很直观。我推荐从performance入手分析优化,具体指标不展开说了。
DevOps
持续构建(CI)、持续集成(CD)
- gitlab\github\gitee\coding...
- Jenkins
- Nginx
- Sonar
- Docker
- JForg\Docker hub(镜像仓库、制品库)
- 容器云平台(集群部署)
- Service Mesh(微服务)
- 制品晋级
- 自动化部署
- 灰度发布、蓝绿部署
技术型公司
- 自研ui库
- 自研产品架构(小程序)
- Web3
- DevOps
- 各平台插件开发
- 云原生
- 音视频
- 3D建模
- 游戏引擎
- 元宇宙
- 物联网
- 10G
- 黑科技......
网络通信相关
- 业务区
- 渠道区
- 开发网
- 办公网
- 网关
- 软硬负载
- 网络策略
测试、生产环境
- SIT
- UAT8
- UAT6
- 安全测试
- 性能测试
- 同城
- 灾备
- 异地(终极方案:异地多中心,烧钱烧的厉害!)
基础应用服务平台建设
- 文件传输平台
- 影响平台
- 统一身份认证平台、SSO(向上分层)
- API治理平台
- ServiceMesh平台
- 报表平台
- 日志平台
- 消峰平台
- 分布式缓存、消息队列
- 消息中心
- 加密平台
- ......
团队建设
- 定期组织分享学习
- 建设团队号、技术推广(打造影响力,也让分享人员获得荣誉感、成就感)
- 评比、奖品激励
- 工作之余一块搞事情(开发、团建)
- 和谐,包容,相互学习
还有
数据埋点统计、异常监控、低代码(个人不看好低代码,架构做的好要什么低代码,低代码跟PaaS
结合起来,开放给用户,让用户去创造价值,赋能企业数字化)
最后
发现写着写着变成技术条线建设了,很难拆分开,果然基建、团队、公司建设是分不开的。
什么是真正有价值的东西?我不知道,任何行业要想称为高级玩家,就必须摸清本质,慢慢捋顺。
“互联网公司”只是互联网技术时代过渡性的叫法,以后所有公司都会被互联网技术加持。互联网的核心价值在于跨时间、跨地域、跨平台、跨终端的资源的高效、合理、共享分配,听起来真是一个让人向往的地方。