专业网站建设模板弄一个app要多少钱
专业网站建设模板,弄一个app要多少钱,vps 做镜像网站,衡水电商网站建设价格英文#xff1a;https://larr.net/p/namings.html翻译#xff1a;
程序员和软件开发者在命名工具时迷失了方向
引言
2022年12月#xff0c;我观看了理查德斯托曼在EmacsConf上的演讲#xff0c;题目是我希望在Emacs中看到什么。斯托曼先生在这次演讲中提到的一…英文https://larr.net/p/namings.html翻译程序员和软件开发者在命名工具时迷失了方向引言2022年12月我观看了理查德·斯托曼在EmacsConf上的演讲题目是我希望在Emacs中看到什么。斯托曼先生在这次演讲中提到的一个有趣观点是易记的名字“我认为你们每一个包 应该有一个能帮你记住它完成什么任务的名字。 我们有一种倾向即纯粹为了文字游戏或缺乏明显意义而给包命名”。斯托曼在2022年觉得有必要提出这一点说明了我们已经偏离正轨有多远即使是在Emacs生态系统中以其描述性的命名约定而闻名如dired表示目录编辑器eshell表示Emacs shell。现代软件开发中有一种奇怪的趋势我们集体决定用随机名词、神话生物或随机喜爱的虚构角色来命名事物在某种程度上是可以接受的专业实践。这在几乎任何其他技术领域都会导致职业生涯的终结。同样的情况也适用于化学工程等领域那里的人们保持着更严格的纪律。IUPAC命名法确保2,2,4-三甲基戊烷精确地描述一种分子。没有化学家会醒来后决定称它为史蒂夫因为史蒂夫是个有趣的名字他们认为这会让他们的论文更平易近人。曾经并非如此我相信我阅读了很多软件历史我不能说曾经有过一个极佳命名的时代即使是经验丰富的工程师也会做出一些愚蠢的命名但至少在80年代还有一些努力试图让命名有意义grep全局正则表达式打印、awkAho、Weinberger、Kernighan创建者的首字母缩写、sed流编辑器、cat连接、diff差异。即使缩写这些名称要么是功能描述要么是系统派生。没有人把复制命令命名为Sparkle或把移动命令命名为Whisper。早期编程语言遵循类似的逻辑FORTRAN公式翻译、COBOL通用商业导向语言、BASIC初学者通用符号指令代码、SQL结构化查询语言我相信Lisp代表列表处理。模式很清晰名称传达目的或起源。大约在2010年代左右一种模因病毒感染了软件工程。也许它开始时是无辜的厌倦了无聊的企业命名惯例的开发人员希望在他们的开源项目中添加个性也许吧。几个古怪的名字很迷人。以动物命名的数据库当然MongoDB来自humongous至少在词源上与其目的有关联即使Mongo变成了简称。但我们没有就此止步。我们继续前行。现在我们淹没在一个无意义称呼的动物园中名称与功能之间的联系完全被切断了。也许这种模式随着GitHub和创业文化的兴起而加速。每个人都想成为下一个谷歌一个通过市场主导地位变得标志性且毫无意义的名称。谷歌可以通过数十亿美元的广告投入和成为一个动词来建立品牌认知。你那个拥有45个GitHub星标、MIT许可证的文件解析器无法做到。认知税收每一个晦涩的名称都是对每个遇到它的开发人员征收的交易成本。当你看到libsodium时你必须从解决问题模式切换到侦探模式“这是做什么的让我查看README。啊这是一个加密库。为什么叫钠因为化学因为NaCl聪明我想。” 现在将此乘以现代项目中的数十个依赖项。每一个都要求奉献几秒钟的心理处理时间来解码语义密码。这些秒积累成分钟和努力然后是职业跨度内浪费的认知努力的山峦。想象一下你要向新工程师解释代码库的结构某个项目的总体架构以及你用来委托某些任务的依赖关系以及它们如何协调工作。实际上让我再次引用朋友的话“我们使用Viper进行配置管理它输入到Cobra进行CLI然后Melody处理我们的WebSocket连接Casbin管理权限全部通过Asynq进行作业队列”。现在停下来实际处理这句话。有一条蛇另一条蛇音乐一个神秘的专有名词还有…异步带Q你一半的内存都在忙于将这些任意标记与其实际功能进行模式匹配而不是专注于正在讨论的架构决策。这相当于心脏病专家说我们将在你的Thunderbeat中安装一个Butterfly到Whisper以改善你的心脏输出而不是我们将在你的动脉中放置一个支架以改善你的心脏输出。 将此与材料科学中的科学论文进行比较。当你遇到高熵合金或形状记忆聚合物时名称本身传达信息。在阅读任何描述之前你可以做出关于特性和应用的有根据的猜测。我听到的一些借口在我之前分享对命名的担忧时有人告诉我以下一些观点这里是我对其中一些的想法“但是易记的名称有助于营销”当然如果你正在构建消费产品。你的HTTP客户端、CLI实用程序助手、无论什么库都不是消费产品。那些关心它的人只是想知道它做什么。“描述性名称很无聊”是的手术器械也很无聊。当清晰度至关重要时无聊是可以的。这不是创意写作课。“这只是为了好玩你的乐趣有外部性。”每个遇到你有趣名称的人都会付出一小笔税。在整个行业中这些税收复合成显著的浪费。“所有好的描述性名称都被占用了”我们可以像其他工程学科几百年来所做的那样使用命名空间、前缀或复合术语。我们有技术。但即使你做不到至少让名称与产品有任何关系加上DB后缀做一些像magit这样的文字游戏。如果你不能清楚你至少可以让它相关。前进的道路无论发生了什么都不是恶意的——而是文化的。随着编程从企业大型机工作转向社区建设者这是一件好事社会规范也转移了。因此我们需要文化修正。不是监管开源在自由中蓬勃发展但通过社会压力和教育来恢复专业标准。根据其功能为库命名。使用复合术语。如有必要拥抱冗长。当某人在凌晨2点扫描依赖项以调试生产事故时http-request-validator比zephyr无限优越。如果你绝对必须有一个可爱的吉祥物或引用好吧——让它成为项目吉祥物而不是名称。PostgreSQL有大象Slonik。PostgreSQL仍然叫做PostgreSQL。大象不会取代语义含义。为最终用户产品保留创意名称品牌在这里很重要。对于基础设施、工具和库选择清晰。每一次都要这样。下次你想用你最喜欢的动漫角色命名你的项目时请暂停。问问自己“土木工程师会以这种方式命名桥梁支撑系统吗” 如果答案是否定的选择一个更好的名称。我们的领域值得比一堆伪装成专业命名法的随机名词动物园更好的东西。清晰并不无聊它是对你用户时间和认知资源的尊重。注释[1] 是的我知道这不是我们面临的最大问题也不是目前业界面临的最大问题但抱歉我必须谈论它。[2] 这是一件好事。