JDK里的设计模式

JDK里的设计模式

下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:
http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns

Structural(结构模式)

Adapter:
把一个接口或是类变成另外一种。

  • java.util.Arrays#asList()
  • javax.swing.JTable(TableModel)
  • java.io.InputStreamReader(InputStream)
  • java.io.OutputStreamWriter(OutputStream)
  • javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
  • javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()

Bridge:
把抽象和实现解藕,于是接口和实现可在完全独立开来。

  • AWT (提供了抽象层映射于实际的操作系统)
  • JDBC

Composite:
让使用者把单独的对象和组合对象混用。

  • javax.swing.JComponent#add(Component)
  • java.awt.Container#add(Component)
  • java.util.Map#putAll(Map)
  • java.util.List#addAll(Collection)
  • java.util.Set#addAll(Collection)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (10 人打了分,平均分: 4.50 )
Loading...
几个在线颜色选择器

几个在线颜色选择器

下面是一些在线的颜色配色方案,也许可以为你的Web配色方面提供一些参考。还有一些非常有意思的杂项资源你也可以去看看。

好烂啊有点差凑合看看还不错很精彩 (6 人打了分,平均分: 4.33 )
Loading...
几篇技术文章

几篇技术文章

The Art of Unix

http://www.faqs.org/docs/artu/

Perl for Impatient Developer

http://blob.perl.org/books/impatient-perl/iperl.pdf

Game Development with Javascript

http://www.brighthub.com/hubfolio/matthew-casperson/blog/archive/2009/06/29/game-development-with-javascript-and-the-canvas-element.aspx

Introduction to x64 Assembly

http://software.intel.com/en-us/articles/introduction-to-x64-assembly/

Database Fundamental

https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+ebook+-+Database+fundamentals

好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 4.33 )
Loading...
Jeff Dean的Stanford演讲

Jeff Dean的Stanford演讲

Google 公司的 Jeff Dean 在Stanford大学做了一个非常 精彩的演讲(视频未墙)。我觉得我们每一个人都应该去看一看这个视频,当然,没有字幕,需要不错的听力,当然,我不可能全部翻译出来,因为我也不是完全能听懂,下面是一些相关的Notes,供你参夸,并欢迎牛人指证。

  • 比较了从1999年到2010年十年来的搜索量的变化。搜索量增加了 1000 倍,而搜索速度快了5 倍。1999年,一个网页的更新最多需要一个月到两个月,而今天,只需要几秒钟,足足加快了5w倍。
  • 一开始,这些大量的查询产生了大约30GB的I/O量。2004年,他们考虑过全部重写infrastructure。
  • 讨论了一些关于变量长度字节对齐的东西。
  • 今天的MapReduce 有400万个作业,处理将近1000PB的数据,130PB的中间数据,还有45PB的输出数据。(1PB =1024TB)关于 MapReduce (Google云计算的精髓) 的一些统计,见下图:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (6 人打了分,平均分: 4.83 )
Loading...
架构师给程序员的一封信

架构师给程序员的一封信

下面的邮件是某Architect发给他的Engineering团队的(来源),我觉得挺不错的,翻译过来,我相信我们所有的程序员都能从中学到很多东西。下面是这封邮件——

每次当我开始做新的东西是我就会很兴奋。就算在软件圈里做了20年以后,每当开始新的旅程里,我都觉得我心中有一些东西不吐不快。这是我们大家一起的旅程。我强烈地相信我们详细规划的过程是很有乐趣的,富有挑战的和丰富多彩的。我想让这个旅程让你们难忘,并且能增添你们所有人的阅历。

这看起来有些唯心主义,不过,我想制订我的工作日程,我们的技术策略,以及你们密切合作的进度。这样一来,当你们做了什么相当不错的事,我们所有人都可以受益。我相当的尊重第一个工程师和他们的代码。

1. 代码是王。文档仅随其后 。所以,代码一定要和文档一致,并可以正确执行。

2. 测试,测试,测试。

3. 单元测试非常关键 。每一个在单元测试之后发现的bug需要开发人员双倍的开销。记住,我宁可增加你的薪水,也不愿意把这些钱发给另一个QA团队然后你再修正bug。因此,如果你的代码满是bug的话,我不得不把钱付给更多的人,而你也只能分得很小的一块饼。

4. 写下有效率的代码,不但是让人读得有效率,而且也是让CPU执行 地有效率。对于坏代码永远不会善罢甘休。

5. 多了解今天工作需要之外的事情。你不仅仅要知道今天干什么,还要知道明天需要什么。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (14 人打了分,平均分: 4.50 )
Loading...
C++的字符串格式化库

C++的字符串格式化库

这里向大家介绍一个C++的字符串格式化库,叫cpptempl,这个库支持对字符串格式的条件,循环,变量插入。看上去很不错,只不过其是基于boost库的。

下面是一个例子:

// The text template
wstring text = L"I heart {$place}!" ;
// Data to feed the template engine
cpptempl::data_map data ;
// {$place} => Okinawa
data[L"place"] = cpptempl::make_data(L"Okinawa");
// parse the template with the supplied data dictionary
wstring result = cpptempl::parse(text, data) ;

输出结果是:

I heart Okinawa!

是不是很方便?让我们看一个更复杂的例子:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 4.86 )
Loading...