标签: 写作
我的书籍印记
我已经写了不少书了,人们不时会问我的一个问题是,我用什么工具来写书。多年来,我已经开发出了一套非常棒的工具链——至少对我来说是这样——所以这就是我对这一切是如何结合在一起的看法。
关于电子书的思考
我拥有第一台电子书阅读器才一年多一点。现在,我只在万不得已的时候才会买纸质书。我写上一本书的时候,主要把它当作一本纸质书来写,但这将是最后一次了,将来电子版将是我的首要考虑。这些变化将彻底改变书籍的面貌,但除此之外,下一步的方向并不明朗。
编写软件模式
我把很多写作精力都花在了编写模式上。我时不时会被问到为什么要这样做,以及是什么造就了一个好的模式。这是一篇简短的文章,介绍了我如何看待模式,以及我对有兴趣自己编写模式的人的一些建议。
模式
我在IEEE专栏中谈到了模式对理解软件设计所做的宝贵贡献。
使用XML写作
很长一段时间以来,我一直使用XML进行大部分写作——甚至到了用XML写上一本书的程度。当我向人们提到这一点时,他们问了我很多关于我的经历的问题,这促使我写了这篇关于整件事的小文章。
使用ChatGPT作为技术写作助手
一位经验丰富的技术作者探索使用ChatGPT来协助完成一些写作项目。他发现ChatGPT可以通过草稿和提示额外内容来节省时间,但缺乏准确性和深度——而且还过于乐观。总的来说,如果你迭代地工作,用精心设计的提示要求小块内容,它还是很有用的。
我如何使用推特
我做的事情让推特变得有用,并避免了时间陷阱
探索Mastodon
鉴于推特目前的不确定性,我开始探索使用Mastodon
轶事证据
软件开发领域令人沮丧的一点是,很难在不同的技术和工具之间做出选择。通常,当有人谈论这个问题时,他们会被要求提供“硬数据”,证明该技术或工具比其他技术或工具更好。这是一个可以理解的要求,但最终这是一个注定要失败的要求。首先,我们无法衡量生产力。
反模式
安德鲁·柯尼格在JOOP的一篇文章中首次创造了“反模式”一词,遗憾的是这篇文章在互联网上找不到。其基本思想(就我记忆所及)是,反模式是指一开始看起来是个好主意,但最终却会让你陷入困境的东西。从那时起,这个词经常被用来表示任何坏主意,但我认为最初的重点更有用。
诉诸权威
我经常会遇到一些人,他们不仅不同意我说的话,而且还对我所说的话感到震惊。“像你这样的权威人士说的话,很多人都会盲目地照做”。
避免视频
制作和编辑视频曾经是一项昂贵的活动,但现在摄像机和编辑软件都很便宜了。因此,许多像我这样夸夸其谈的人开始制作视频来传播他们的想法。这样做有很多原因,这是一种有很多可能性的媒介,它适合像我这样在舞台上讲话出色的人,而且有充分的证据表明人们愿意为视频付费——这对一个人的收入和人们认真对待视频的证据都有好处。尽管有这些原因,但我至今还没有迈出这一步。
书籍代码
我现在不怎么写生产代码了,但我仍然花相当多的时间写代码。这种代码是一种特殊形式的代码,旨在解释书籍中的概念。书籍代码与真实的代码不太一样,在编写代码时需要考虑一些不同的因素。
代码示例
我写的是关于设计的,我认为即使你在讨论一些抽象的设计模式时,提供源代码示例也是有用的。当然,这可能会导致人们认为代码示例就是模式,但我认为这种风险与代码提供的精确性相比微不足道。有几次,我不太确定一个想法,但一个代码示例帮助我澄清了它。因此,在我关于设计的文章中,我总是尽量提供代码示例。
比较价值观
敏捷软件开发宣言最引人注目的一点是其价值观的格式“我们更喜欢x而不是y”。我不记得是谁想出了这个主意,也不记得它是怎么产生的。它可能是我们在集思广益时冒出来的。但它独特的格式让一些人尝试再次使用这种格式。
双面书
上周,我收到了我的签名系列的最新著作:Gerard Meszaros的xUnit测试模式。我和Gerard断断续续地合作了几年,所以我对它的内容相当熟悉,但不知何故,看到实体书让我相当震惊。不知何故,我一直没有意识到这本书有多大——883页,轻松成为我系列中最大的一本书。
不断发展的出版
当我开始我的写作生涯时,我首先为技术杂志撰写文章。现在,当我写文章长度的文章时,它们都是为网络而写的。纸质杂志仍然存在,但它们正在萎缩,可能注定要灭绝。然而,尽管纸质杂志正在消亡,但纸质杂志的许多假设仍然对作家和出版商产生着影响。这在我最近与一些人就我想在我的网站上发表的文章进行的对话中尤为突出。
说明性架构
我们在加深对软件系统的理解方面遇到的一个问题是,我们看到的例子不够多。在许多专业学科中,人们都是通过观察已经完成的工作来学习的。例子可以作为灵感来源、好主意的来源,以及困难的警示。很长一段时间以来,用这种方式学习软件要困难得多。
John Vlissides
周末,我听到了一个悲伤的消息,John Vlissides在与癌症长期斗争后去世了。John最广为人知的身份是“四人帮”中的一员,他们创作了可能是关于软件设计的最好的书。
更多版本控制
作为一个一直使用版本控制的人,我认为它可以扩展到计算机使用的更多领域。除了软件开发人员之外,很少有计算机用户使用版本控制。然而,正如软件开发人员所知,版本控制是一种很好的协作工作机制,允许多个人在一个软件系统上协同工作。更广泛地使用版本控制会带来什么好处?
动态图形
由于我一直将幻灯片作为演讲中的一个视觉通道,因此我一直在使用图表动画来帮助传达我的观点。主要的演示文稿程序(Keynote和Powerpoint)长期以来一直支持动画,但我一直倾向于寻找功能更强大、更容易使用的动态图形工具。
放弃Xslt
这个网站的所有内容都是用简单的XML文档编写的,并转换为HTML。我发现这样做效果很好,这意味着我永远不必担心处理HTML格式。(你可能也看出来了,花哨的布局不是我的风格。)我甚至用这种方式写了一本书。
多桌面
几年前,我改变了工作生活中一个重要的方面。在那之前,我尽量只在一台电脑上工作(或者更严格地说,只在一个硬盘上工作)。我所有的工作文件都保存在我的笔记本电脑硬盘上。如果我使用台式机,我会通过文件共享功能使用这些文件。
新词
新词
1:新词、用法或表达。
2:精神病患者创造的毫无意义的词。-- 韦氏词典
如果你读过我写的很多东西,你很快就会注意到我是一个强迫性的新词创造者。我一直在寻找新的词语和短语,事实上,这个博客就是围绕着这个习惯设计的。
模式共享
微软发布了一个名为PatternShare的新社区资源。其想法是汇集来自许多模式作者的模式摘要,并为讨论和进一步探索它们之间的相互联系提供一个平台。这项工作的大部分是由Ward Cunningham领导的,他的模式谱系是首屈一指的。你会在那里找到来自我本人、GOF、POSA、Hohpe/Woolf、Evans和微软的模式。
模式并不是什么新鲜事
对模式书籍的一个常见抱怨是,它们对经验丰富的开发人员来说没有什么新鲜事。(我最近在亚马逊评论和The Server Side上看到了一些这样的评论,所以我现在可能有点敏感。)这不仅是真的,而且是模式的全部意义所在。
恐高症
我作为一名作家取得成功的一个副作用是,我成了一位小有名气的极客。它非常微不足道,通常只在极客大会上才会产生影响(尽管我曾在旧金山的餐馆里遇到过几次有人走到我面前)。在它发生之前,我真的没有想太多,只是稍微渴望成名。现在它发生了,我更加意识到了这一点——总而言之,我讨厌它。
语义扩散
我习惯于创造新词来描述我在软件开发中看到的事物。这在该领域的作家中是一种常见习惯,因为软件开发仍然缺乏很多有用的术语。构建术语的一个问题是,术语很容易失去其含义,这一过程称为语义扩散——这又是一个可能添加到我们术语中的新词。
签名系列标准
人们时不时会问我如何让一本书进入我的签名系列。市面上有很多丛书,每个系列都有自己的决定接受哪些书的方式。以下是我决定接受哪些书的方式
Smalltalk 书籍
我时不时会遇到一些想了解 Smalltalk 并试一试以了解其究竟如何的人。我以前最喜欢的Smalltalk 入门书籍已经绝版了,但我刚刚发现你现在可以从这里下载它以及许多其他与 Smalltalk 相关的资料。这些资料由 Stéphane Ducasse 提供,他是一本关于重构模式的优秀书籍的合著者。
社交网络
我不够酷,没有收到第一波邀请,但我现在已经加入了Google+,这可能是社交网络领域的下一个大事件。现在似乎很适合通过写一些关于我迄今为止如何使用社交网络的文章,以及对 Google+ 影响的一些无根据的猜测,来纪念这一重大事件。
标准用语
如果你阅读了许多标准文档,除了需要过量饮用咖啡外,你还需要注意一些词语的含义重载。
翻译
在闲暇时间阅读这篇博客是一回事,但有些人也喜欢翻译它。因此,我想欢迎由 Wee Witthawaskul 领导的团队完成的泰语翻译。大约 15 年前,我作为一名典型的西方背包客访问了泰国。我对曼谷的河上巴士、拜县附近的徒步旅行、皮皮岛的浮潜以及一些美味的食物有着美好的回忆。我第一次见到 Wee 是在他和 Ralph Johnson 一起工作的时候,他现在已经加入了我在 Thoughtworks 的团队。
XML 的使用
XML 已经出现一段时间了,而且它被广泛使用——事实上比它应该被使用的范围还要广。像大多数工具一样,XML 适用于某些事情,而不适用于其他事情