且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《jQuery EasyUI开发指南》——10.5 分析能力

更新时间:2022-09-22 22:06:17

本节书摘来自异步社区《jQuery EasyUI开发指南》一书中的第10章,第10.5节,作者:王波著,更多章节内容可以访问云栖社区“异步社区”公众号查看

10.5 分析能力

在Java Web的开发中,总不会是一帆风顺的。有时候,明明公司的产品做得非常出色,可仍然会有客户提出定制化的方案。当然,产品如此,项目面临的压力就更大了。作为一个软件工程师,首先,需要有大局观,在接到需求的时候,不要慌张,要静下心来,对这个需求进行一次全方位的分析,然后,总结出一两套方案。有时候,大家的讨论也很重要,一个人的力量毕竟有限,如果集思广益,就可以避免很多弯路。举个典型的例子,开发站内信的功能。

在接到站内信的需求时,有些开发人员肯定会慌张,心想,怎么会接到这样一个棘手的需求呢?其实,作为一个软件工程师,大家都会有这样的心态,但躲得了一时躲不了一世,该来的总会来,与其抱怨,还不如勇敢面对。

首先,可以分析一下这个需求。站内信,如果需要做一个群发功能,该怎样实现呢?有些人首先联想到的就是类似于发邮件这样高大上的功能。其实,并不是这样的。翻翻网上的资料,就有简单的实现方式。例如,在做群发的时候,可以把管理员群发的每一条信息,都统一放在一张表里。如果有用户登录,并且打开自己的信箱,就可以去这张表里查找最新的信息,如果有的话,就让它显示;如果没有,就不显示,这不是一个很简单的方案吗?在完成了这个基本功能后,复杂的需求也就会变得简单了。

例如,怎样确定一条信息是否被查看了呢?在用户单击“查看”的时候,不管用户是否真地查看了,只要他触发了那个动作,就可以把这条信息置为已查看,在对应的数据库字段里做一个更改。这样的话,当用户再次进入信箱时,这些已经查询过的信息,不就可以通过简单的SQL语句来过滤掉了吗?

如果客户提了新的需求,要支持删除信息,又该怎么办?其实,只要完成了基本的功能,表结构设计合理的话,这些都可以实现。在考虑这个问题的时候,就需要联想到,如果删除了某条信息,那么会不会所有人的这条信息都被删除呢?如果不做控制,答案是肯定的。只要某个用户删除了这条信息,所有人都不会看到了。

为此,可以在某个用户登录的时候,使用游标,将所有他没有的信息,统一生成一次,并且增加属于该用户的字段。这样的话,就可以完美地解决这个问题了。当某个用户删除一条信息时,只需要在数据库中删除该用户所拥有的这条信息即可。而这个问题的关键,就是在信息的记录中增加用户字段,表明信息的所有者。

综合起来,程序员的分析能力是非常重要的。所谓分析,就是把复杂的需求,分解成若干个独立并且相互关联的模块,并且可以串成一个整体。在开发的时候,也要注意,从最基础的、最重要的做起,只有把基础功能做好了,往上叠加的内容才可以畅通无阻,这就跟修建房屋是一个道理。如果有了很强的分析能力,并且开发能力也不差,那么,完成一个需求就算多花点时间,也不至于搞不出来。程序员要面对的需求是纷繁杂乱的,但总而言之,很多东西,都是可以复用的,这跟EasyUI插件是一样的,在平时的工作当中,要善于积累,把一个完整的功能模块的实现步骤牢牢地写下来,做成一个Demo,这样的话,下次遇见类似的功能,就可以很快地解决了。当然,也不介意问项目经理多要点时间,然后,伪装成很忙的样子。