工程实践与研发管理
Posted on
Edited on
Lead Programmer
核心能力
技术深度
架构设计能力
- 设计系统
对游戏性的理解
- 玩家体验
交互反馈,目标感成就感。
- 节奏
玩游戏一直有事做,一直有进展。
- 容错
操作保护,断线重连等。
- 可调性
不改代码的情况下调整体验,数值配置,ab 配置。
性能和稳定
跨模块、跨角色沟通
| 对象 | 你要做的事 |
|---|---|
| 策划 | 把想法翻译成可实现结构 |
| 程序 | 把需求拆成合理模块 |
| 美术 | 协调资源规范和性能 |
| 运营 | 解释限制和风险 |
| 老板 | 用成本 / 风险说人话 |
项目管理与风险控制
- 功能系统是否容易延期。
- 功能修改会导致连锁反应。
- 技术债偿还。
项目管理
两周开发周期
- 需求确认,技术评估
- 活动的目的是什么。
- 工作量排期。
- 技术上预测开发难点。
- 预先研究技术关键难点。
拆分任务和制定排期
review 代码
体验逻辑和性能测试
需求与版本
- 确定需求时直接判断是否大量复用,拆分成公用组件。
- App 版本号规范,MAJOR.MINOR.PATCH。
版本迭代更新 MINOR,服务器也至少通过 MINOR 判断对应服务器。PATCH 更新不需要对应服务器。iOS App 每次提审后都需要更新 PATCH 版本号,因此如果使用 PATCH 对应服务器版本,则提审后再次更新都需要更新对应服务器。
目录结构
定义类型声明
- 通用类型声明最好放一块, 便于查找, 避免定义过多重复类型。
- 单独类型放入各自目录下, 避免于通用类型声明混淆。
1 | scripts/ |
工程实践
软件构建中的设计
代码设计基本特性
- 最小复杂度
- 易于维护
- 松散耦合
- 可扩展性
- 可重用性
- 高扇入 (大量的类使用给定的类, 例如工具类)
- 低扇出 (一个类适中地使用其他类)
- 可移植性
- 精简性
- 层次性
- 标准技术
开发环境与部署笔记
Posted on
Edited on
Mac
Git
查看 ts 文件增删记录
1
2date="2025-04-29";authorName=$(git config user.name);git log --all --author=${authorName} --since="${date} 00:00:00" --until="${date} 23:59:59" --pretty=tformat: --numstat | awk '$3 ~ /\.ts$/ { add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
查看所有提交记录
1
date="2025-02-20";authorName=$(git config user.name);git log --source --all --author="${authorName}" --since="${date}" --until="${date} 23:59:59" --oneline --graph --decorate
System
- 查看应用内存使用
1
ps -axo rss,comm | grep 'Google Chrome' | awk '{sum+=$1} END {print sum/1024 " MB"}'
Ruby
rvm 安装 ruby 报错。
1
2
3
4
5
6
7
8
9
10
11brew install ruby
// 查看自己安装的是哪个版本
rvm mount /usr/local/Cellar/ruby/3.4.2
// mount 命令好像会让你自己起名,没起直接用默认的了。
// rvm list 查看名字
rvm use ext-ruby-3.4.2-rd2930f8e7a --default
// use 后环境可能有问题,重登 shell ruby 依然使用的系统 ruby,直接重装 rvm
rvm get stable --auto-dotfilesrvm 安装警告,乱七八糟的问题。
1
2
3
4// 直接重装
rvm implode
\curl -sSL https://get.rvm.io | bash
source ~/.rvm/scripts/rvm
Ubuntu
Certbot
- 自动部署,添加nginx配置
1
2sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d {url} - 只生成证书
1
sudo certbot certonly --standalone -d dice.dogeggs.cn
Windows
Deploy
Error: listen EACCES: permission denied 0.0.0.0:xxxx
检查端口是否被占用:
1
netstat -ano | findstr "xxxx"
重启 winnat:
1
2net stop winnat
net start winnat