项目管理

ooowl
  • 代码之外
About 4 min

项目管理

千里之堤,溃于蚁穴。项目管理不是单纯的技术问题,是自己或团队不同环节配合起来的规范,个人主要从做事配合效率的角度出发整理能想到的。

技术编码规范

异常处理的最佳实践是只捕获自己能处理的异常,其它的都让它抛出去 模块之间的依赖应该为树状的而不是图,控制好边界 关注编程环境,刻意创造出允许高效试错的“代码乐园” 做一个项目需要注意的是什么: 各个组件和中间件的要版本固定和记录 系统版本要兼容一致 框架版本 依赖的包版本

写代码看代码时多想想,think twice,code once。

  • 编码标准
  • 命名约定
  • 设计模式
  • 注释
  • 用到的测试脚本和测试用例等
  • 为什么使用特定的设计模式?
  • 为什么使用特定的语言?
  • 缺点是什么?它可以与你的代码一起使用吗?
  • 这些代码是否易于维护?

工具层面能解决的安全问题,不要写到手册里。

命名

这种事情最好交给强迫症来做

常见示例常见用途(不同语言可能不一样)
PascalCase 大驼峰UserProfile, GetUserInfo类名、结构体、枚举、公共方法
camelCase小驼峰userProfile, getUserInfo变量名、函数参数、方法名
snake_case蛇形user_profile, get_user_infoPython 变量/函数、数据库字段名
MACRO_CASE常量命名法MAX_SIZE, DEFAULT_TIMEOUT常量、宏定义(C/C++)、环境变量

CodeReview

【团队建设】如何做好团队开发中的 CodeReview(代码评审)? - CodeBlogMan - 博客园open in new window #todo 这个人的博客也挺有意思,多看看其他文章也有好处

GitHub - itchaox/annotree: Generate folder directory annotation tree | 生成文件夹目录注释树open in new window

游戏项目规范

给起名困难症用的
动作分类用途示例
创建/销毁
Create创建实例,常用于实例化方法和工厂方法的命名CreateInstance
Initialize初始化实例的属性和设置,也可作为类方法初始化InitializeInstance, Initialize
Load加载配置,根据配置创建内容LoadFromConfig
Destroy销毁实例,常用于析构方法DestroyInstance
Uninitialize清理实例的属性和设置,通常与 Initialize 对应UninitializeInstance, Uninitialize
获取/设置
Get取属性或通用获取GetStartTime
Fetch通过网络请求获取内容FetchAllUsers
Calculate通过计算获取内容CalculateTotalAmount
Read读取(多用于文件、配置等)ReadFile, ReadConfig
Query查询QueryRemainingAmount
Find查找(多用于数据库、集合等),与 search 相似FindOrder
Receive接收(多用于文件、消息等)ReceiveNewMessage
Pull拉取PullLastestSourceCode
Set设置属性或通用设置SetStartTime
Write写入(文件/配置等)WriteFile, WriteConfig
Put放入PutUserWithId
Push存入,推送(通知)PushNotification
更新
Reset强调重置(标记、状态)ResetTimer
Refresh刷新(多用于页面、缓存等)RefreshCurrentPage
Update更新(多用于配置、状态等)UpdateUserSetting
添加/移除
Add通用添加方法命名AddNewStudent
Append强调在尾部添加(追加)AppendCharacter
Insert强调插入(可在任意位置)InsertCharacter
Delete表示删除,与 Remove 相近DeleteDirectory
Remove表示移除,与 Delete 相近RemoveInvalidDeals
启动/停止
Open开启(多用于开启状态、打开文件等)OpenEnhanceMode
Start开始(强调开始某个流程)StartPortListening
Launch发动/启动(多用于启动程序、服务)LaunchAssistService
Close关闭(多用于关闭状态、关闭文件等)CloseEnhanceMode
Stop停止(强调流程的终止)StopPortListening
Pause暂停(强调流程暂停,可能后续继续)PausePageLoading
Finish完成(强调流程的完成)FinishRequesting
集合处理
Filter过滤、筛选(按条件)FilterByName
Merge合并(有时带合并规则)MergeTwoConfig
Concat拼接(直接在结尾添加)ConcatToArray
Split分割SplitInput
Deduplicate去重(去除完全相同的项)DeduplicateList
Reverse颠倒、反向排列ReverseRecord
Sort排序(有时带排序规则)SortDealsByAmount
Fill填充(一般会覆盖)FillAmountList
业务处理
Parse解析(成格式或提取内容)ParseFromJson, ParseResult
Analyse分析(不能简单获取)AnalyseLocation
Convert类型转换(一种类型转另一种)ConvertToString
Format格式化数据FormatToLocaleString
Validate合法性/有效性校验ValidateUserInputs
Ensure期待值的校验EnsureUserAge
Compose组成(多项内容组成一个结果)ComposeMessage
Encode编码(依赖约定格式)EncodeUrl
Decode解码(依赖约定格式)DecodeUrl
Encrypt数据加密(依赖约定算法)EncryptContent
Decrypt数据解密(依赖约定算法)DecryptContent
Backup备份(注意拷贝方式,避免误导)BackupUserSettings
Restore恢复RestoreUserSettings
Import导入(按特定格式文件转换)ImportFromFile
Export导出(转换成特定格式文件)ExportToFile
Compress压缩(依赖约定算法)CompressOversizedFile
Decompress解压缩(依赖约定算法)DecompressOversizedFile

GitHub - gscheartA/Improve-your-code: 《改善丑陋的代码》——红桃A士视频分享系列open in new window



Last Edit: 2025-09-15 22:03:33

Loading...