资讯专栏INFORMATION COLUMN

【译】《学习JavaScript设计模式》(二)

lifefriend_007 / 3300人阅读

摘要:学习模式设计的过程中,我们遇到原生模式这玩意儿也不是啥大惊小怪的事。最好的设计模式通常不直接给出问题的答案,这被人认为是解决困难问题的必要步骤。

原书链接Learning JavaScript Design Patterns
水平有限很多地方不通顺,错翻漏翻欢迎交流。

模式测试,原生模式&约法三章

记住并不是所有的算法啊,最佳实践啊,解决方案啊什么的都可以被称为一个完整的模式的。很可能它就缺了点什么,而社区里的那些家伙就喜欢揪着这小辫子不放,直到它经过千锤百炼出关。即使一个模式已经满足了所有模式标准,还需要经过时不时的合适的测试审查的调教才能成长为一个真正的男人,哦不,模式。

回头看看Alexander说过的,一个模式既是一个过程,也是一个完整的事物。

学习模式设计的过程中,我们遇到"原生模式"这玩意儿也不是啥大惊小怪的事。这是个啥?Well,一个还没通过模式测试毕业考试的模式通常就叫原生模式。原生模式的主人把它造出来之后拿到社区里让大家一起玩儿,但是由于年纪太小了,还没被从里到外翻云覆雨地玩。

或者把原生模式生下来的人对这一系列的测试根本没啥兴趣,给脖子上挂个出生证明就让它自生自灭去了。我们通常把这个出生证明叫做"patlets"。

也不怪他们,给这些模式写个完整的文档确实让人萌生退意。回头看看早期的一些工作,满足下列条件的模式才能成为好的模式:

解决了一个特定的问题: 我写了一个模式出来,一岁出头鹅蛋脸眉眼带笑鼻子挺直嘴角上扬唇红齿白,可她只能看啥事都做不了有啥用啊。能做事儿,这是一个好的模式最关键的特征。

高手都是会隐藏的: 我们知道解决问题的技术通常都是从一些出名的基本原理衍生出来的。最好的设计模式通常不直接给出问题的答案,这被人认为是解决困难问题的必要步骤。高手嘛,教的都不是形,而是意。

给出的概念一定要是被证实过的: 设计模式要给他们的功能提供专业鉴定书,没有专业鉴定书的都是野路子上不了台面。只有勇士和走投无路的人才敢用那些没来历的野生模式。

必须阐释清楚代码关系: 有些情况下,模式只是解释了一些模块。很多已经成型的模式可能也只是吊样,但是官方定义的模式必须阐释更底层的系统关系结构并解释清楚代码之间的关系。

看到这儿你或许觉得自己不去学习那些不太规则的原生模式没什么关系吧。可不是这样。很多原生模式也是依壁雕凿,当然不是说所有的原生模式都样儿,但是肯定有不少很好的原生模式,使用我上面告诉你的方法来自行判断吧。

为了保持模式的可重用性,我们要约法三章,并将三规则核心价值观时刻牢记心中(别问我这仨有啥区别,核心价值观记住就行了):

对目标的可用性: 模式是怎么被认为是成功的?

有用性: 为什么这个模式被认为是成功的?

适用性: 这是一个因为有广泛适用性所以能成为一个模式的设计吗?如果是,好好写文档吧。重写或者定义模式的时候,记住上面三点是非常重要的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79396.html

相关文章

  • 那些年,我的前端/Java后端书单

    摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...

    fxp 评论0 收藏0
  • 那些年,我的前端/Java后端书单

    摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...

    Tecode 评论0 收藏0
  • 那些年,我的前端/Java后端书单

    摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...

    VPointer 评论0 收藏0
  • 那些年,我的前端/Java后端书单

    摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...

    idealcn 评论0 收藏0
  • []JSX:硬币的另一面

    摘要:它不过是硬币的另一面。因此,既然我们能够接受与通过这种方式混合在一块儿,那么是时候让介入并向我们展示硬币的另一面了第三阶段的并不是一个激进的改变,是因为我们这个行业从一开始就注定和应该是在一起的。 React框架刚刚发布的时候,JSX颠覆了很多人的想法。习惯了HTML标签与JavaScript代码分离的前端工程师们,看到JSX大概都会不禁吐槽:这些奇怪的标签出现在JavaScript里...

    mudiyouyou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<