• 2011-07-31

    当单复数需要转换

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/152956186.html

    项目组里的一个程序员走过来:这个地方要怎么处理?

    问题是这样的,系统里会根据tag搜索图片,于是,在搜索结果页面上,有这样一个提示,显示某个空间的所有图片,比如:Show All Kitchen Images。在我们的系统里,所有空间tag都是复数的,比如kitchens。

    看到了吗?问题就在于此。页面的提示是单数,而在系统里存储的是复数。怎么办?

    程序员的直觉是用程序解决这个问题。

    一开始我们想做一个简单的去“s”处理,但是,需求告诉我们,tag可能会改变,所以,简单的去“s”是不够的,也许,我们需要一个算法将复数变成单数。于是,我们想搜一个单复数转换的算法。

    在搜索之前,我们还是先讨论一下有没有其他的方案。

    因为tag数量有限,我们想做一个简单的映射。把它写死在程序里的方案最简单,但也是最不灵活的方案。所以,想到的一个方案是,用一个文件做映射,在运行时加载进来。身为程序员,我们都觉得这个方案是可行的。

    就这样做吗?大家都满意了,可以开始动手了。但是,请等等。我们还有业务分析人员,我们的BA。

    于是,BA同学跑去和客户商量如何解决问题,客户的答案是,把这段提示稍微改一下:Show All Images for Kitchens。

    这是个令费尽心思想解决方案的程序员吃惊的答案,简单到令人发指,只要改一下页面提示,根本无需考虑什么解决方案。

    其实,这是一个关于沟通的故事,特别献给愿意走进牛角尖,用技术解决业务问题的程序员们。

    分享到:

    历史上的今天:

    回头读书 2009-07-31
    跨时区工作 2008-07-31
    思考微内核 2005-07-31
    引用地址:

    评论

  • ”看到了吗?问题就在于此。页面的提示是单数,而在系统里存储的是复数。怎么办?" -- 什么叫页面显示的都是单数。。。。
  • 看来谁都会碰到憋死人的问题
  • 这个很有启发,个人的思维终归不能覆盖全部,也无法考虑到各个方面,尤其是特别关注技术的程序员们,我也是这样的,往往和别人描述了一下自己的思路,听的人可能会说:为什么不这样。。。。问题一下简单起来。
  • 我感觉这是一个可控因素的问题:一个人思考的方向总是 局限(用这个词有点负面意思了;这里不是要表达负面意思)在他能够控制的范围;而客户需求,只要不是特别不靠谱/可执行,在一般情况下,被程序员认为是不可变更的。所以,这种“改下提示语”的简单解决方案不在程序员的考虑范围之内;同时,即使程序员提出了这个解决方案,交给客户,客户可能会不满于这个方案。久而久之也是让程序员更愿意变更自己这里的可控因素。
  • 马上想到了ruby的pluralize方法