AI 编程,让我这种已经落伍退役的中老年程序员们焕发了第二春。 先回顾一下 3月初,开始尝试AI零代码编程 三小时零基础AI编程做产品,到底行不行? 然后3月份带娃去了吉隆坡一周,所以工作时间不完整。 4月初,零代码编程产品发布上线 零代码编程产品发布,简要复盘 。然后回国浪了20多天。期间谷歌市场公测通过。 5月初,谷歌市场正式版发布,苹果市场更新,然后继续优化调整 在屎山中挣扎前行 。 那么最近Claude 4发布,是个不错的利好,我也是第一时间开始使用,并利用它对之前代码进行了一次清理。 我先跟大家解释一个问题,上一篇文章有读者质疑我的能力,认为不是cursor的问题,是我的问题,我坦白,他说的是对的。确实我很多年没有碰编程,最近只尝试了两个月,就跑出来分享,水平不足是必然的。我的读者,有人编程水平比我高,用AI工具的效率比我高,很合理,也很荣幸。 其实发现自己的认知盲区也是好事情,当天我就去研究了cursor rules是什么,该如何设置,目前已经设置了一些规则,但是怎么说呢,和我预期还是有些不一致,有些规则执行的还是挺有效果的,有些规则似乎没有按照我的预期执行,可能还是我水平不足吧。此外,也了解了mcp的设置方法,但是目前还没有设置,后续会基于开发需求酌情考虑。 而且整个开发过程本身也是我的体验目标,这也是为什么我从copilot 换到 augment 又换到 cursor,确实一款好用的工具就足够了,但对于一个自媒体作者来说,多了解几种可能更有利于和读者沟通分享。 还有一点就是,我从做这件事开始,就没有把自己当作一个程序员,从一开始,就没有基于程序员的思路做完整的架构设计,代码结构,数据结构设计,为什么没有,这不也是想更好理解AI编程的能力边界在哪里,当然也是因为自己的慵懒。那么我的开发模式其实特别业余,我甚至都没有想明白这个游戏最终应该是什么样子的,先让AI做做看,做出来看看行不行,如果特别不行,可玩度很差,直接放弃掉,是的,我放弃了几个小游戏。如果发现做出来还是可玩的,但是交互体验不好,再想想怎么修改和优化,然后一点点打磨,所以,这个过程中,确实垃圾代码,冗余逻辑和各种前后不一致的情况就会很多。 最近通过firebase做了云端的玩家登录和游戏记录,回放记录存储能力,然后在这个过程中,就发现各种不一致,各种测试的复杂度特别高,那么趁着Claude 4发布的东风,也是下定决心,彻底清理一次。 我先讲一下遇到的问题,因为之前是一个游戏一个游戏开发的,每个游戏的玩家数据状态,存储,回放,游戏难度选择列表,回放列表,全都是独立生成的,数据结构也都是各自的,在做云端处理的时候,需要一个个去进行处理,而且不断的版本迭代中,命名规则也在各个版本里被改的面目全非,比如中等难度,有的地方赋值时normal,有的地方判断时mediate,就特别多诡异问题。 代码不复用,数据结构不复用,命名规则不一致,各种参数硬编码在代码里,就都是我们常见的代码屎山表现。 然后通过claude 4,我开始逐步进行清理,要求玩家游戏状态(胜利次数,连胜次数,最佳时间等)归一化,数据结构归一,存储逻辑归一;然后游戏难度选择页统一,基于参数通过配置文件获取不同游戏的特征字符串。然后回放记录的生成的获取统一,同样基于配置文件获取相应的命名规则,保证存取一致性,云端同步逻辑归一,不再区分游戏进行数据同步,游戏只是一个字段而已。游戏回放记录列表页归一,和难度选择页同理。清理工作中间有些反复(主要是测试有些繁琐,而且很难一次成功),不过差不多两三天时间还是基本搞定了。 可复用代码归一,游戏配置归一之后,清理之前冗余代码,重复的逻辑。就很爽的感觉,大量的冗余代码删除,给系统瘦身。再往后又校验了一下回放存储的逻辑,因为之前都是系统生成的,发现数独存储内容过于庞大,不够精简,重新自己设计了存储结构,让它重新按照我设计的结构进行记录存储和回放实现,存储资源减少了94%,当然,其实我没有追求极端的优化,所以只是针对特别过分,无法忍受的设计做了相应的处理,对于一些有优化空间,但暂时还不算什么风险的地方,也是睁一眼闭一眼,懒得改来改去。 此外还做了一个狠心的决定,就是不做向后兼容,因为中间很多地方涉及命名规则一致性的问题,其实新版本如果还要兼容旧版本的统计数据和回放记录就会又要保留超级多垃圾,想想玩家日活双平台一起都不一定有两位数,算了,不在这个环节上较劲了,保持代码的干净。但是新的结构,所有数据会有服务端保存,而且结构也都做了相应的标准化处理,以后再有版本升级,或玩家的设备变更,就可以轻松做到数据的持续化。 清理屎山后,还在github官方创建了相应的项目,并进行了远程代码同步,这样防止我工作电脑受损后项目无法恢复。不过,这个项目目前设置了私有化状态,就不跟大家分享了。 如果后续顺利,6月初我会发布一个新的版本,更新内容主要是,增加了一款堆叠式三消游戏(游戏难度数值设计这块还在优化,挑战很大)。增加了所有游戏的回放能力,增加了用户登录状态和游戏数据服务端存储(但放弃了对旧系统数据的兼容),远程同步能力。 6月之后是接连是带娃回国度假和欧洲徒步之旅,大概两个月将停止一切更新。 新产品的计划无限延后,希望8月份可以重新开始。 那么后面,多说一点,我用自己的切身行动来讲,不需要等一切都做的很好再去分享,不需要怕人说自己不专业,水平不足;其实更多的人是菜鸟对不对,更多的是刚入行的新手对不对,还有更多的人还没有行动,还在纠结和犹豫对不对,如果我的分享能帮助到这些人,让他们对相关领域有了进一步的认识,或者能鼓励他们进一步的尝试行动,就很棒了对不对。专业的人士质疑你没什么关系,正好可以基于此查漏补缺提升自己,所谓分享即学习,我公众号开篇第一篇对不对。 就算开始设计的不好,弄成一坨屎山,也是可以优化,可以调整的,没什么大不了,但该怎么调整,确实需要自己心里有数,所谓低耦合,高复用,依然是降低后期维护成本重要的原则,就算是AI编程时代,一样有效,就比如我今天说我自己的例子,如果做不到归一化处理,我需要对每个游戏,每个难度的数据存取和胜利条件触发的数据变化做校验,做设计;但是如果归一化了,那不就简单多了,后续如果有新的游戏开发计划,只要还在这个结构内,很多功能就自然而然的加个配置参数就行了。摘要:AI 编程,让我这种已经落伍退役的中老年程序员们焕发了第二春。先回顾一下3月初,开始尝试AI零代码编程三小时零基础AI编程做产品,到底行不行?然后3月份带娃去了吉隆坡一周,所以工作时间不完整。4月初,零代码编程产品发布上线零代码编程产品发布,简要复盘。然后回国
来源:高峰观天下