当前位置: 网站首页>小程序开发>网站优化

如东400电话申请开通【如东企业网站建设】如东微信公众号小程序开发运营价格、如东微信公众号APP软件客户端设计运营、如东网页页面设计公司费用、如东公司网站制作方案流程改版维护大概需要多少钱

发表日期: 2021-04-26 17:19:27 浏览次数:164

如东400电话申请开通【如东企业网站建设】如东微信公众号小程序开发运营价格、如东微信公众号APP软件客户端设计运营、如东网页页面设计公司费用、如东公司网站制作方案流程改版维护大概需要多少钱


如东县,江苏省南通市下辖县 [1]  ,位于江苏省东南部、长江三角洲北翼。县境南与通州区为邻,西与如皋市接壤,西北与海安市毗连,东面和北面濒临黄海。截至2020年末,全县下辖3个街道、12个乡镇 [2]  ,陆域面积1872平方千米,海域面积4758平方千米 [3]  ,常住人口97.71万人,实现地区生产总值1053.42亿元 [4]  。

如东是江海盐垦文化的代表。秦汉以前县境为长江口沙洲,故称扶海洲。长江、黄淮冲积成陆后,如东盐业兴起,亭场林立,至明清繁盛一时。民国之后,沿海逐步废灶兴垦,现代农渔业得到发展。 [5]  1988年对外开放后,如东沿海进一步开发,建成南黄海优良深水港口洋口港。 [6] 

2019年7月,被列为国家知识产权强县工程示范县(区) [7]  。2019年10月8日,被评为2019年度全国综合实力百强县市、2019年度全国投资潜力百强县市、2019年度全国绿色发展百强县市、2019全国营商环境百强县 [8-9]  。2020年7月29日,入选2019年重新确认国家卫生乡镇(县城)名单。 [10]  2020年12月,社科院百强县榜单中如东排名第45 [11]  。

6.4.2 用特征草图分解“万能类”

在有一定历史的旧系统中,最为常见的是什么都做的“万能类”。这些类,往往没有明确的职责,而是当有新的功能代码时不加思考,为图方便就直接加在里面,久而久之,就慢慢变成了一个“万能类”。在它里面的方法,大部分都是静态方法,并且在一定程序上有所关联,看起来更像是糅合了多个协作类的全部接口功能。

对于“万能类”,在重写或者平时重构过程中,应该将其进行分解,使之更符合单一职责原则。那么问题是,面对臃肿,成千上万行的代码,我们应该怎么有序地进行分解?在我曾经入职的一家公司,我的上级跟我说过:最终结果和方式、过程,同样重要。下面来看下,使用什么方式,如何分解“万能类”。

先来介绍一个有用的工具,它虽然简单,但非常实用。它的名字叫特征草图,出自某本技术书籍。它的使用过程是这样的:打开需要分解的类,准备笔和草稿纸,以成员属性为矩形,成员函数为椭圆,并用实线的单向箭头表示依赖使用关系,最后便可得到此类的特征草图。下面是一个简单示例类:

<?phpclass Person {
    protected $name;
    protected $money = 0;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }

    public function earn($money) {
        $this->money += $money;
    }

    public function getMoney($money) {
        return $this->money;
    }}复制代码

Person是一个表示人员的类,它有两个成员属性,分别是表示名字的$name和表示所持有的金钱$money。对于名字,有简单的getter方法,而对于金钱,除了简单的getter方法外,还有赚钱的成员函数。根据绘画特征草图的方法,可以得到图6-4。

图6-4 Person类的特征草图

图6-4 Person类的特征草图

通过手动绘画类的特征草图,不仅操作简单,而且可以清晰地发现成员函数和成员属性在逻辑上的依赖关系。例如在上面的Person类中,可以分解为两个类,一个类只负责人员基本信息,而另一个类则只负责赚钱。

当然,实际中根据历史遗留系统中的“万能类”画出来的特征草图并没有那么简单,但也能从中发现一些端倪。一个经验法则是,通常在特征草图中会存在一个汇点,以此汇点为切入点画一条直线,便可把原来庞大的类一分为二。你发现的汇点越多,最终分解的类就越清晰。那么汇点是什么呢?它往往是某个成员函数,并且是承上启下的一个关键节点,类似两个逻辑世界的通道。如图6-5,灰色的椭圆节点即为汇点,虚线表示可以把上、下两组成员函数和成员属性分解到两个类中。

图6-5 带有汇点的特征草图

图6-5 带有汇点的特征草图

那汇点本身这一成员函数应该划分在哪个拆分类里呢?汇点箭头以下的部分,使用抽取子类的重构方法,可以得到一个分解后的类。通常汇点应通过提取子函数的重构方法迁移到分解后的新类中,而在原来的成员函数里,使用委托,调用新的类方法。

如此,通过使用特征草图作为参考依据,结合恰当的重构方法,便可对臃肿的类进行很好的分解,最终得到职责更单一,更内聚的类。

6.4.3 消化复杂的领域业务

Family 2.0 一个很重要的业务是加入家庭圈。图6-6的交互设计图展示了从创建家庭圈到加入家庭圈这一过程。具体的场景可描述为:用启根据四位数字的家庭号和密码,可加入指定已创建的家庭圈。这一过程因为有着各种规则,蕴含着领域业务,因此在开发实现上是有一定复杂度的。下面,一起来看下如何消化复杂的领域业务。

图6-6 加入家庭圈的操作流程

图6-6 加入家庭圈的操作流程

为了更加了解这其中细致的业务规则,让我们来看下当时为加入家庭圈这一接口服务所写的测试用例。

// Family-2.0$ vim ./Apps/Fami/Tests/Api/Group/Api_Group_Member_Test.php
    public function testJoinGroup()
    {
        DI()->notorm->group_member->where('user_id', 110)->delete();

        // Step 1. 构建请求URL
        $url = 'app_key=mini&client=ios&version=1.0.0&service=Group_Member.JoinGroup&sign=8c3b4&__debug__=1&UUID=A3D779AF491F86ECFCD22F05CD6A9D1C9F8719CFE4BCEA06B0&group_num=1763&group_pwd=1111';

        // Step 2. 执行请求
        $rs = PhalApi_Helper_TestRunner::go($url);

        // Step 3. 验证
        $this->assertNotEmpty($rs);
        $this->assertArrayHasKey('code', $rs);
        $this->assertArrayHasKey('group_id', $rs);

        $this->assertEquals(0, $rs['code']);
        $this->assertGreaterThan(0, $rs['group_id']);

        // 不能再次加入
        $rs = PhalApi_Helper_TestRunner::go($url);
        $this->assertEquals(3, $rs['code']);

        // 家庭圈密码错误
        $url = 'app_key=mini&client=ios&version=1.0.0&service=Group_Member.JoinGroup&sign=8c3b4&__debug__=1&UUID=A3D779AF491F86ECFCD22F05CD6A9D1C9F8719CFE4BCEA06B0&group_num=1763&group_pwd=1112';
        $rs = PhalApi_Helper_TestRunner::go($url);
        $this->assertEquals(2, $rs['code']);

        // 家庭圈不存在
        $url = 'app_key=mini&client=ios&version=1.0.0&service=Group_Member.JoinGroup&sign=8c3b4&__debug__=1&UUID=A3D779AF491F86ECFCD22F05CD6A9D1C9F8719CFE4BCEA06B0&group_num=4444&group_pwd=1111';
        $rs = PhalApi_Helper_TestRunner::go($url);
        $this->assertEquals(1, $rs['code']);
    }

c51c866ffa1ab3457f2021e8bbdbcc1.jpg


如东400电话申请开通如东企业网站建设如东微信公众号小程序开发运营价格、如东微信公众号APP软件客户端设计运营、如东网页页面设计公司费用、如东公司网站制作方案流程改版维护大概需要多少钱


400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878