niyue

Archive for 2023|Yearly archive page

调试宣言

In other on 2月 3, 2023 at 8:20 上午

Julia Evans是我很喜欢的一个漫画家。他画的漫画很多是关于编程的,所以比较感同身受。他的漫画技巧其实一点也不高超,画的都是我也能画出来的那种火柴棍小人。他的编程技能我估计也不是很高超,毕竟不是职业程序员。不过他是少数能把编程里面的一些问题和体验用漫画很好表达出来的一位创作家,按现在的说法可以算是复合型人才。

你可以在https://wizardzines.com找到他的很多作品,比如《Linux容器是如何工作的》这种。他的所有作品中,我觉得最感同身受同时也看了不止一次的漫画是一副叫做debugging manifesto的作品。甚至在工作中遇到困难时,看看这幅作品我觉得都有机会能够想出一些新的解决思路,因此,我自己动手把这幅作品画了一个中文改(抄)造(袭)版放在这里。

用ChatGPT做paper prototyping

In programming on 1月 15, 2023 at 9:25 上午

ChatGPT是一个很有意思的技术,我最近看到一些人推荐说可以把chatGPT和软件开发流程做一些结合的想法,于是我也做了一些尝试。

我昨天把Kafka KIP-848整个设计文档都丢给ChatGPT读了一遍,然后开始问它问题,很多术语和可能的实现方向它都能立刻给出答案,结合自己的判断其实能很快深入实现层面。感觉和ChatGPT非常适合用来做快速的不用写代码只是方向探索性的原型设计和验证。

一次对话

比如我和它讨论文档里面的”Reconciliation Loops”,它能告诉我zookeeper/cassandra/etcd都用到了

当我有进一步实现层面的想法的时候,它也能快速告诉我可能的方案和问题

甚至当我有更复杂的改进想法的时候,它也能够应答告诉我这里可能碰到的一些问题

因为它的无所不知,所以你可以非常快的去提出一些可能的其他的设计和实现方案,比如我考虑是不是可以用关系数据库而不是etcd去实现这里的功能,它也能应答:

它甚至提出了使用SQLite的WAL mode而不是使用它之前说的触发器来解决这个问题,可以说是点子非常多了,这个对于原型设计过程中去找寻可能的思路是非常有帮助的。你甚至可以问它做出这种设计的原因是什么:

必要的时候也可以使用一些事实去验证它是不是在一本正经的胡说八道:

总结

结合ChatGPT的大量信息,我们能快速得到和验证很多开发过程中延伸的想法,只要我们保持自己的判断以及用额外的一些渠道去验证这些想法,其实可以把ChatGPT作为一个很好的快速原型的工具来使用。