想问一下各位大佬怎么在公司能建立完善的代码管理机制

2023-01-03 08:31:00 +08:00
Corey0606  Corey0606

行业:半导体集成行业

代码管理:公司服务器搭建的 gogs (完全是存储代码)

项目概况:一人一个项目 从 0 到 1 开发上位机软件

OP 概况:组长,负责项目售前,交付开发,以及组内人员工作分配

目前问题:

这些问题苦恼我好久了,想提高部门工作效率感觉好难。望各位大佬赐教!

7298 次点击
所在节点   酷工作  酷工作
67 条回复
unco020511
unco020511
2023-01-03 11:27:20 +08:00
我就说代码 review 这个,最好的办法就是入代码的时候限制 pr mr 这种才能入主分支,所有入的代码必须两位同事看了在之后没问题才点通过.
nieboqiang
nieboqiang
2023-01-03 11:46:02 +08:00
除非大家都需要加班,否则不用思考提升效率问题。
cbdyzj
cbdyzj
2023-01-03 11:46:57 +08:00
直接用 GitHub 吧
leonshaw
leonshaw
2023-01-03 11:56:02 +08:00
都没活谈什么提高效率
没项目就去找项目
找不到项目就裁人
裁不了人说明人家干的活就值这个价
wcao
wcao
2023-01-03 12:01:13 +08:00
@Corey0606 领导给压力就没办法了,该搞还是得搞。我现在公司也是接手了 15 年的那种老项目,antd 还在 1.0 。经过了差不多块 3 年时间慢慢升级到了 3.0 。UI 样式也渐渐统一了,别问为啥用 antd 需要统一样式。最开始的项目全部拉源码来自定义,吐了。

没有什么好的建议,说一下我们的优化过程以及目前的一个结果吧,今年 4 月份就 3 年了。

- 不去过渡重构,优化。比如本次需求只改 A ,那么优化的范围只有 A ,不会去优化 B 。好处:测试做验收的时候,可以暴露出来问题。如果改了 B ,测试不会去做相关测试。出了问题很难搞哦(公司没有单元测试、自动化)
- prettier 加上去,eslint 先不慌。等 pretter 差不多都好了在加 eslint 。好处:可以先把代码风格给确定下来。git 提交的时候不会有那么多冲突。eslint 因为会检测语法,在代码风格不统一,历史包袱很严重的情况下,用起来很恶心人。到处报错。
- git hooks 先加上 ,每次提交前检测 prettier 。执行一下脚本。保证服务器上的代码风格统一。
- git commit 规范 + 日志 changlog ,这个更多的是增加信心,每隔几个迭代看一下项目日志,成就感就有了。有更多动力去优化。
- 这个比较特殊了,是升级 antd 的,原则就是项目反正都是屎山了。不在乎多一点屎,不删除 antd1.0 的情况下,直接引入 antd3 。需求来了,就把当次需求的 antd1.0 换成 3.0 ,然后参考第一条。(我们是后台管理系统)

好像就这么多,目前已经快 3 年了,只有优化了这些。其他的一些逻辑上的优化还是挺少的。历史包袱太严重,不敢动。有多个文件,单个文件达到 1w 多行,就问你怕不怕。

全是坑,希望能帮助到你。。。

最后还是想说一哈,针对一人维护一个项目的情况,review 真的没必要。反正都是自己管自己,能做到代码风格统一都不错了,还想让我 review 之后,如果有问题让我重写,不可能。哈哈哈
duke807
duke807
2023-01-03 12:18:17 +08:00
用 gerrit ,必须审核通过才能提交到 git 库,且不会产生多余分支
akira
akira
2023-01-03 12:47:06 +08:00
参考下同行是怎么做的呢。。。
就你的描述的话 你们其实还是处于手工作坊的模式,这个时候其实缺的不只是代码管理,而是整个开发流程模式都可能需要调整,配套的各种需求缺的就更多了。
Corey0606
Corey0606
2023-01-03 13:43:31 +08:00
@wcao 感谢大佬,很用心的回复。我们这边历史问题太多了,得慢慢解决。之前同事离职也是一个 py 文件 1w 多行代码,0 注释根本没法看.
Corey0606
Corey0606
2023-01-03 13:44:16 +08:00
@akira 是的感觉好多事情都处于原始阶段
zw1one
zw1one
2023-01-03 13:45:12 +08:00
对客户定制化,本来就是挣的外包钱,组员划水客户没意见你有意见干啥?

说点实际的:你想做到客户定制复用的话,需要极强势、极专业的客户对接人员(产品?客户顾问?),提取客户标准需求然后你们再开发个通用的标准版本。通常这不现实,因为给钱的是大爷。
dlmy
dlmy
2023-01-03 14:17:08 +08:00
@zw1one 就相当于不同的客户要做 SaaS 定制化,而他们只想做一个通用的 SaaS 系统,能兼容所有客户的定制化需求。这个除非他们公司垄断了整个行业,不然还真的是挺难的。
dynastysea
dynastysea
2023-01-03 14:44:16 +08:00
很多项目的价值根本不需要代码 review 。。。你就是太闲了。
zw1one
zw1one
2023-01-03 14:50:47 +08:00
@dynastysea 太认可了哈哈哈,一座屎山你非去看它干啥。
zw1one
zw1one
2023-01-03 14:52:12 +08:00
@lscbqr 是的,我们业务也遇到了这个问题,目前是把客户区分来看,强势的有价值的客户,还是老老实实给他们定制化,有些没牌面的小鱼小虾客户,就丢标准化项目给他们。
isnullstring
2023-01-03 16:14:49 +08:00
哈哈,目前我就是底下的“组员”,跟设备对接 做非标
review 着实没什么意义,没去过现场,没跟客户沟通过,不具备行业基本术语 很难沟通的
而且设备虽然是同一个厂家,甚至相同型号,不同客户可能有不同的运行逻辑
即便代码完全开放,估计也知其然不知其所以然
你还好 有上司 支持,我想打造一个通用的类库、UI 等,任何项目上手都可以快速完成基本的数据展示等等,奈何上司只求快,完全不管复用
Corey0606
2023-01-03 16:16:45 +08:00
@isnullstring 哈哈,吓得我赶紧点开了你的主页。我们尝试过通用的 UI 类库,再绝对定制面前根本不成立
isnullstring
2023-01-03 16:24:25 +08:00
@Corey0606 小厂子没那么多要求,都是人适应软件。也不知道销售接的啥单子,走量冲个业绩,苦了我。
封装一些基本控件,省去程序员的重复劳动
绝对定制 那就没法子,毕竟钱多。
Corey0606
2023-01-03 16:29:56 +08:00
@isnullstring 哎,我们也差不多,现在领导为了验收都承诺永久升级,说白了就是验收以后还可以改需求。
allgy
2023-01-03 16:57:05 +08:00
小公司别跟自己找麻烦
Corey0606
2023-01-03 17:06:06 +08:00
@allgy 哎,都是打工人,有的时候也没办法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906151

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX