关于软件开发准则,我们听得最多的是 DRY,即 Don't Repeat Yourself,简单来说就是系统中每一部分都是单一且明确的,不能出现重复的代码。
在现实的软件开发中,我们当然希望不出现重复的代码,不重复就意味要做抽象,但一个好的软件架构是不断进化而来的,我们很难在最初就做好抽象,我们也预料不到未来会发展成什么样子。过早和过度的抽象,甚至是错误的抽象带的问题要比重复代码严重的多,所以最好的办法是在意识到需要做抽象时再去做,不要害怕重复代码,重复代码某种程度上也能够提高架构的灵活性。
这也就是 AHA 编程,即 Avoid Hasty Abstractions,避免仓促的抽象,优先考虑如何更好地应对未来可能发生的变化。
技术
Next.js 13.3
Next.js 发布 13.3 版本,带来了一些新特性,如基于文件的 Metadata API、app
目录支持静态导出、动态生成 OG 图片等。
我用 GPT4 写了个 macOS 的云剪贴板小工具
非程序员在 ChatGPT 的辅助下写了一个 macOS 小软件,虽然软件比较简单,但也证明了 ChatGPT 的强大,程序员真的要失业了吗!
工具
OrbStack
在 Mac 上运行 Docker 和 Linux 的工具,可以用来替代 Docker Desktop,性能远高于 Docker Desktop,很好用。
bloop
又一个基于 GPT-4 的编程辅助工具,可以理解你的代码仓库,然后可以通过自然语言进行搜索、解释和总结代码等。
Copy UI
Copy UI 是一组基于 React 和 Tailwind CSS 实现的组件和模版,样式都比较好看,但想要看到代码要付费。