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

启东网站制作【启东网站优化】启东建网站、启东微信公众号运营、启东网页设计、启东微信小程序商城

发表日期: 2021-04-26 09:50:28 浏览次数:110

启东网站制作【启东网站优化】启东建网站、启东微信公众号运营、启东网页设计、启东微信小程序商城


启东市,江苏省直辖,南通市代管,位于江苏省东南端,长江入海口北岸,是江苏省日出最早的地方。 [1]  户籍总人口110.35万,常住人口94.95万(2019年)。 [2]  截至2020年6月,启东市下辖9个镇。 [3] 

后周显德五年(958年),置海门县于东布洲,隶于通州,海门县域包括今启东中部、北部地区。民国十七年(1928年),于崇明外沙设启东县。1989年,撤销启东县,设立县级启东市。 [14]  [56] 

启东是全国对外开放口岸 [4]  、中国建筑之乡 [5]  、国家卫生城市 [6]  、国家园林城市 [7]  、全国文明城市 [8]  、国家级生态示范区 [9]  、节水型社会建设达标县 [10]  、紧密型县域医共体建设试点县 [11]  、革命文物保护利用片区分县 [12]  ,海洋经济之乡、电动工具之乡、建筑之乡、教育之乡、版画之乡。 [1] 

2019年,启东市地区生产总值1157.55亿元,第一产业增加值79.64亿元,第二产业增加值581.29亿元,第三产业增加值496.62亿元。三次产业比为6.9:50.2:42.9。人均地区生产总值121879元。

如果真的这样,相信我们也就慢慢能体会到精益开发的乐趣。

至于调用关系,整体上讲,应根据从Api接口层、Domain领域层再到Model数据源层的顺序进行开发。

在开发过程中,需要注意不能越层调用也不能逆向调用,即不能Api调用Model。而应该是上层调用下层,或者同层级调用,也就是说,我们应该:

  • Api层调用Domain层

  • Domain层调用Domain层

  • Domain层调用Model层

  • Model层调用Model层

如果用一张图来表示,则是:

图2-6 ADM调用关系

图2-6 ADM调用关系

为了更明确调用的关系,以下调用是错误的:

  • 错误的做法1:Api层直接调用Model层

  • 错误的做法2: Domain层调用Api层,也不应用将Api层对象传递给Domain层

  • 错误的做法3: Model层调用Domain层

这样的约定,便于我们形成统一的开发规范,降低学习维护成本。比如需要添加缓存,我们知道应该定位到Model层数据源进行扩展;若发现业务规则处理不当,则应该进入Domain层探其究竟;如果需要对接口的参数进行调整,即使是新手也知道应该找到对应的Api文件进行改动。

2.3.6 扩展你的项目

涌现的数据分子

经历了一定岁月的项目系统,往往会变得臃肿、庞大、混乱。这是因为里面需要处理各种数据,而这些数据的来源更为多种多样,如来自文件、来自数据库、来自高效缓存、来自第三方平台接口。虽然PhalApi提供了Model层和Model代理层来统一负责这些不同来源的数据的处理,但若想得到更明确的划分、更一致的管理,还需要更细致的应对方案。

先来简单回顾一下中学时间所学的化学方程式。

图2-7 一条化学方程式
)

图2-7 一条化学方程式

上面是指二氧化碳和水在加热情况下可生成碳酸。化学方程式左边是反应前的分子,右边是反应后的产物。

类似地,在我们系统这个大环境下,在不同的场景下也会有不同的原材料,再根据不同的目的生成相应的数据产出物。这与化学反应有是点相似的。如果我们把数据的加工、处理看作化学的反应过程,而把数据源当作反应前的物质、把最终的页面数据比作化学的产物,我们可以得到这样一个类比:

图2-8 类似化学方程式的数据处理

图2-8 类似化学方程式的数据处理

这是一种以分子/原子的视角来看待数据,由此我们可以知道每份数据都会有其本身的一些特性,如:大小、稳定程度、名字、组成的结构等。若按数据的稳定程度分轨道划分,我们可以看到原来混沌的数据分布将显得有序、可视化。

图2-9 划分前后的数据分布

图2-9 划分前后的数据分布

由分子组成的化学物质,有活泼、稳定之分。越活泼的物质变化越快,反之,越稳定的物质变化缓慢,可以放置很长一段时间。同样,对于接口服务系统中的数据,有的需要频繁更新甚至实时更新,如商品库存;有的则相对稳定,不需要频繁更新并在业务上可以接受一定时间的延时,如商品的信息;有的甚至非常稳定,通常很长的时间内都不会发生变化,如全站的通用的开关配置。

因此明显地,为了在高效缓存和实时性之间取得更好的平衡,我们需要为不同的业务数据,根据各自的稳定程序,为其选择不同的缓存策略。以便得到合理的划分,分配正确的缓存策略。

通过上面新视角的划分,结合数据的使用场景,我们可以得到数据稳定-访问象限分布图。

图2-10 数据稳定-访问象限分布图

图2-10 数据稳定-访问象限分布图

在进行了这么多理论的说明后,让我们结合个示例来实践一下。

假设,我们的Shop商城项目中,有三种缓存机制,分别是:

  • 实时数据,无缓存

  • 轻量级缓存,只使用本地服务器缓存,特点是快但不可共享

  • 重量级缓存,同时使用本地和集群服务器的高效缓存,特点是可共享但有网络I/O消耗

则可以创建三个对应的模型代理目录,如下:

$ tree ./Shop/ModelProxy/./Shop/ModelProxy/├── Heavy      # 重量级缓存├── Light      # 轻量级缓存└── Realtime   # 实时数据复制代码

并且,假设我们有四份这样的数据:

  • 来自数据库的商品信息

  • 来自第三方接口系统的推荐商品

  • 来自配置文件的全局站点配置

经过分析数据的稳定性和来源,可以得到以下这样的缓存策略分配。

表2-10 业务数据的缓存策略示例

业务数据

缓存策略

考虑点

商品信息

重量级缓存

商品信息可共享缓存,并且访问量大,需避免DB穿透

推荐商品

实时数据

每个用户所看到的推荐商品不一样,需要千人千面

站点配置

轻量级缓存

适合使用单机缓存,且允许回源到文件

在Model层的目录里,默认情况下,数据来源于数据库。如果有其他来源的数据,可在Model目录里面添加子目录,以示区分。如添加以下目录:

$ tree ./Shop/Model/./Shop/Model/├── Connector # 连接器,与外部接口进行通信├── File      # 文件数据复制代码

然后,在Model相应的子目录里实现对应业务数据的原始操作。假设最终的实现文件列表如下:

./Shop/Model/Connector/Recommend.php # 推荐商品./Shop/Model/File/SiteConfig.php     # 站点配置./Shop/Model/Goods.php               # 商品信息复制代码

接着,在ModelProxy层,各自添加相应的缓存策略,如下:

./Shop/ModelProxy/Heavy/Goods.php        # 重量级的商品信息./Shop/ModelProxy/Light/SiteConfig.php   # 轻量级的站点配置./Shop/ModelProxy/Realtime/Recommend.php # 实时的推荐商品复制代码

至此,我们便得到了一个清晰的数据划分。对于每个业务数据,我们都能一种更细粒度上的管理和分布视角。同时对于何种业务数据使用何种缓存策略也一目了解。当然,这里只是作为一个示例,实际项目中,还应实现完善各种缓存策略的基类,以及添加类似下面这样的查询类。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

启东网站制作启东网站优化启东建网站、启东微信公众号运营、启东网页设计、启东微信小程序商城

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