我现在是这样编程的

  我在做什么

  曾经,我试过接到一些需求。一眼带过后,脑袋马上随着高昂的斗志沉溺在代码的世界中 ,马不停蹄地敲着键盘直到最后测试的完成。我从思绪中恢复过来,乍一看自己写的功能,和需求差了十万八千里,我TM都在干嘛?

  除此之外,我还见过类似的很好笑的事情。有一个程序员,经理提了需求,然后他在那里折腾了一天。结果不但没做出来,而且和实际需求都是完全搭不上调。经过询问发现,他不知道经理说了什么,也不知道自己到底在做什么。

  代码的世界可能是昏天暗地的,但是我们的思维不能这样随之混乱,否则一切都会前功尽弃。所以我现在编写程序的时候,经常会想一下:我要做什么,我在做什么。更好的方法是把详细需求落实到文档,并时刻核对文档。

  大局为重

  2-8法则告诉我们,一个项目核心的功能只有很少,其它大部分都是对核心功能辅助或增强的。但当任务分发下来,我手头总有一些自己很想开发的模块,不过它们不属于那20%。我以前经常会在这些感兴趣的模块上花费很多时间和精力。

  结果项目快要到上线期限,主要的功能却没开发完成,其它一些不起眼的功能却做得很好,但为此项目不得不延期了。如果反过来,只要对整体功能预期不会有太大偏差,可以将就的先上线。重要一点是:即使功能还有遗漏,但项目可以上线了,老板自然不会太追究,自己工作也能图个安心。如果不知道那些功能模块是最重要的,先问问经理。

  人总是喜欢做一些自己感兴趣或者有挑战的事。不过在这方面,为了项目和团队着想,应该尽量压制这种诱惑。

  性能永远不是优先考虑的问题

  我从来不会一开始就考虑性能问题。如果项目成本很低,甚至到项目结束时,如果没有感觉到明显的性能问题,也不会去管。要知道现在已经不是DOS的年代,CPU的计算能力很高,但成本很低了。重要一点是,如果只针对提升性能对代码做改动,很容易破坏代码的复用性和可维护性。而返过来,提高了代码的复用性和可维护性,则很容易提高性能。

  下面有一个php的代码实例,功能是帮助用户重置密码(代码为了简单说明问题,请不要太在意一些无关的细节)

  requestResetPassword是接收用户重置密码的请求并且做了相应的检查。为了更好的复用性,我将重置密码的操作单独分配到一个新的resetPassword的函数,更改完密码的后再调用sendEmail向用户发送一封通知邮件。

01    /**02     * 用户请求重置密码的接收器03     */04    function requestResetPassword() {05        //检查用户是否存在06        if( !checkUserExists( $_GET['userid'] ) ) {07            exit('抱歉,用户不存在,请确认用户帐号。');08        }09        resetPassword( $_GET['userid'] );10        //最后向用户发送一封邮件11        sendEmail( $_GET['userid'], '重置密码成功', '新的密码是xxxx' );12        exit('新密码已经发送到你的邮箱。');13    }14     15     16    /**17     * 帮助用户重置密码18     */19    function resetPassword( $userid ) {20        //检查用户是否存在21        if( !checkUserExists( $userid ) ) {22            return false;23        }24     25        //进行重置用户密码的操作26        //略...27        return true;28    }29     30     31    /**32     * 向用户发送一封邮件33     */34    function sendEmail( $userid, $title, $content ) {35        //检查用户是否存在36        if( !checkUserExists( $userid ) ) {37            return false;38        }39     40        //发送邮件操作41        //略...42        return true;43    }44     45     46    /**47     * 检查某个用户是否存在48     */49    function checkUserExists( $userid ) {50        $user = getUserInfo( $userid );51        return !empty( $user );52    }53     54     55    /**56     * 获取某个用户的数据57     */58    function getUserInfo( $userid ) {59        //假设我有一个query的函数,它用来查询数据库并返回数据60        $user = query( "SELECT * FROM `user` WHERE `uid`=" . intval( $userid ) );61        return is_array( $user ) ? $user : array() ;62    }

it知识库我现在是这样编程的,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。