课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于大多数的初级软件开发程序员来说,高级程序员除了掌握软件开发技术以外同时也会许多其他岗位的技术知识,而这除了是因为自身求知欲以外,更多的是因为工作环境的逼迫,下面我们就一起来了解一下具体情况吧。
项目经理和架构师
无论是买成型的软件产品,还是出资开发项目,客户投资的是软件的业务价值。项目经理直接为这个目标负责,尽量少的成本,尽量短的时间,生产出高业务价值的软件产品。架构师则是跨越单个项目,长期为这个目标负责。
项目经理与架构师是天生的敌人,短期看这是对的,长期来看,他们是真正的朋友,是战略朋友。没有项目经理项目会死得很快;还而没有架构师,公司会死得很惨。
项目经理的角色和作为,我仍比较容易理解。一则,他以短期为目标,人都是短视的,所以项目经理的角色比较接近人的直觉;二则,项目经理的活动也是我们常见,常说的,例子故事较多。而对架构师,我们却颇多误解,至少也是含混不清。
从MVC到测试
MVC不是三层架构。虽然看起来它也分三块,但决对不是。另外,MVC中的M不是业务域,决对不是,虽然有些系统实现采取了这种方式,把MVC的M和业务域对象合二为一,但是原则上它们完全不是一回事。微软用VM(View Model)代替M还是有点意思的。
MVC 大的目的和功能,是把 终界面相关(V的部分)的东西 大限度的隔离出去,因为这部分是不可测试的,而那些仍然与界面相关,含有大量逻辑(算法?)的部分抽象出来,或者放入C中,或者放入M中。使得可测试的代码的边界,尽可能推到UI的 前沿。虽然,慢慢现有不少UI测试自动化工具的出现,功能还不错,但是与单元测试,代码直接接口的测试相比,效率和质量还是不可同语。
从自动化测试到Domain
单元测试,行为测试,集成测试, 众多名词,我不想讨论它们之间的差别,作为一类概念,从名称上,他们只呈现了一半的内涵。还有一个重要部分被漏掉“自动化”。自动化单元测试, 自动化集成测试,才更为准确。自然,这里我也不讨论非自动化测试,如功能测试,验收测试。
自动化测试的好处是不言而喻的。前文中MVC提到的测试,就是指提高自动化测试的覆盖率。对整个系统来说,达到完全的覆盖率是根本不可能的。在这个大前提下,我们很容易忽略提高自动化测试覆盖率的重要意义。90%与70%只是数字的区别?让我么走近一点,把系统拆分一下再看。整个系统不能达到完全,具体是那部分不行呢?前面提到的View是一个,数据库又是一个,不是完全不能测,理论可以,实际有些麻烦,不值当。还有就是一些外部功能,如发邮件,读写文件。文件操作这个看来经常用到的功能块却是单元测试的大敌。所有这些排除后,再回头看看,我们可以说剩下的完全能测试,也必须测试,不然就是架构和设计的问题。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。