Mac

音频

  • 库乐队

    剪音频

  • ffmpeg

    转格式

    1
    2
    // mp3
    ffmpeg -i ${file} -acodec libmp3lame -b:a 320k -vn ${output} -y -loglevel quiet
Read more »

Lead Programmer

核心能力

技术深度

架构设计能力

  • 设计系统

对游戏性的理解

  • 玩家体验

    交互反馈,目标感成就感。

  • 节奏

    玩游戏一直有事做,一直有进展。

  • 容错

    操作保护,断线重连等。

  • 可调性

    不改代码的情况下调整体验,数值配置,ab 配置。

性能和稳定

跨模块、跨角色沟通

对象 你要做的事
策划 把想法翻译成可实现结构
程序 把需求拆成合理模块
美术 协调资源规范和性能
运营 解释限制和风险
老板 成本 / 风险说人话

项目管理与风险控制

  • 功能系统是否容易延期。
  • 功能修改会导致连锁反应。
  • 技术债偿还。

项目管理

两周开发周期

  1. 需求确认,技术评估
  • 活动的目的是什么。
  • 工作量排期。
  • 技术上预测开发难点。
  • 预先研究技术关键难点。
  1. 拆分任务和制定排期

  2. review 代码

  3. 体验逻辑和性能测试

需求与版本

  • 确定需求时直接判断是否大量复用,拆分成公用组件。
  • App 版本号规范,MAJOR.MINOR.PATCH。

    版本迭代更新 MINOR,服务器也至少通过 MINOR 判断对应服务器。PATCH 更新不需要对应服务器。iOS App 每次提审后都需要更新 PATCH 版本号,因此如果使用 PATCH 对应服务器版本,则提审后再次更新都需要更新对应服务器。

目录结构

定义类型声明

  • 通用类型声明最好放一块, 便于查找, 避免定义过多重复类型。
  • 单独类型放入各自目录下, 避免于通用类型声明混淆。
1
2
3
4
5
6
7
scripts/
├── interfaces/ -->接口
│ ├── IUser.ts
│ └── IReward.ts
├── activities/activity/ -->某单独活动
│ └── interfaces/
│ └── IActivity.ts

工程实践

软件构建中的设计

代码设计基本特性

  • 最小复杂度
  • 易于维护
  • 松散耦合
  • 可扩展性
  • 可重用性
  • 高扇入 (大量的类使用给定的类, 例如工具类)
  • 低扇出 (一个类适中地使用其他类)
  • 可移植性
  • 精简性
  • 层次性
  • 标准技术
    Read more »

Mac

Git

  • 查看 ts 文件增删记录

    1
    2
    date="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
    11
    brew 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-dotfiles
  • rvm 安装警告,乱七八糟的问题。

    1
    2
    3
    4
    // 直接重装
    rvm implode
    \curl -sSL https://get.rvm.io | bash
    source ~/.rvm/scripts/rvm

Ubuntu

Certbot

  • 自动部署,添加nginx配置
    1
    2
    sudo 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
    2
    net stop winnat
    net start winnat
0%