转载:反面模式

今天看了一篇反面模式,感觉很有趣,说中了工作中的相当多的问题,转载一下:
原文出自:维基百科

反面模式,转至wikipedia

软件工程中,一个反面模式(anti-pattern或antipattern)指的是在实践中明显出现但又低效或是有待优化的设计模式,是用来解决问题的带有共同性的不良方法。它们已经经过研究并分类,以防止日后重蹈覆辙,并能在研发尚未投产的系统时辨认出来。

Andrew Koenig在1995年造了_anti-pattern_这个词[3],灵感来自于GoF的《设计模式》一书。而这本书则在软件领域引入了“设计模式”(design pattern)的概念[4]。三年后antipattern因《AntiPatterns》这本书而获得普及,而它的使用也从软件设计领域扩展到了日常的社会互动中。按《AntiPatterns》作者的说法,可以用至少两个关键因素来把反面模式和不良习惯、错误的实践或糟糕的想法区分开来:

  • 行动、过程和结构中的一些重复出现的乍一看是有益的,但最终得不偿失的模式
  • 在实践中证明且可重复的清晰记录的重构方案
    很多反面模式只相当于是错误、咆哮、不可解的问题、或是可能可以避免的糟糕的实践,它们的名字通常都是一些用反话构成的词语。有些时候陷阱(pitfalls)或黑色模式(dark patterns)这些不正式的说法会被用来指代各类反复出现的糟糕的解决方法。因此,一些有争议的候选的反面模式不会被正式承认。

这个概念很容易推广到工程学以及工程以外需要人们付出努力去争取的领域。尽管在工程学以外很少用到这个术语,但其概念是通用的。

由于内容实在太多,就简单看看描述!分别从社会和组织结构软件工程两大类分析

阅读更多

HTML5: 语义化的 div

HTML5规范新出的很多标签,比如header,footer等。先前,一般页面查看源代码时,使用看到满屏的DIV,HTML5的这些新标签实际上就相当于是有语义的div,在合适的位置,在合适的位置取代div,会使页面结构看起来更舒服。对SEO 也更友好。

还有一些标签如 time、source、mark 等,也可以认为是有语义的 span,不过支持HTML5的浏览器已经过这些标签做了处理,可以富显示。

除了一些画布,音乐视频等标签不算,有语义的标签如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<header>    定义 section 或 page 的页眉。
<footer> 定义 section 或 page 的页脚。
<nav> 定义导航链接。
<section> 定义 section。
<article> 定义 article。
<aside> 定义页面内容之外的内容。

<details> 定义元素的细节。
<figcaption> 定义 figure 元素的标题。
<figure> 定义媒介内容的分组,以及它们的标题。
<hgroup> 定义有关文档中的 section 的信息。
<mark> 定义有记号的文本。
<source> 定义媒介源。
<summary> 定义 details 元素的标题。
<time> 定义日期/时间。

这些标签在Chorme,FireFox,Safari等浏览器中都已经支持,在IE9或以上的版本也支持,如果想兼容IE9以下的浏览器,可以插入一个JS去兼容,然后就可以放心的使用HTML5的新标签进行编码了.

  • header/footer 标签:比较适合页头尾,或是一个文章的头尾使用
  • nav 标签: 比较适合头部或侧面导航,分页等地方使用
  • article : 代表一篇文章或一个评论等。
  • aside : 可以用于显示与文章无关的东西,比如广告
  • section : 一个片断,可自由发挥,片段里面的内容大体都是描述同一类的东西。或是文章的一个小片段。
阅读更多