不能因为方便了自己而破坏软件设计的原则(字数很多,请耐心读完)

其实很多团队开发中很多人都是负责自己的模块,做完了事,自己做的尽量简单话能用就行,不需要考虑过的以后的事,反正是打工的,是拿死工资的,项目做得好不好,和自己无关,其实这在很多团队中都或多或少有这样的人,当然这是不对的

先来说说项目本身的架构,maven配置各个模块,使得模块化并且解耦,后台,接口,单点登录,消息队列,定时服务,都是作为单独的服务去运行的,DAO层,service层同样也是通过maven配置的子模块(配置方面可以去我的博客参考),目前订单服务没有拆分,但是肯定要考虑以后拆分后的事。

那么问题来了,我们提供了<查询订单列表接口>以及<查询订单详情接口>,这都是单表查询的,再提供给jsp页面的时候,展现后,有些数据,例如用户数据等是可以通过ajax异步调取,这样的好处是大并发查询的时候减少数据库压力,把部分压力放在客户端,可以通过阿里巴巴的数据源监控到查询数据库的时间,如下图

这么做是没有什么问题的,但是在手机端上的处理被要求在展现的时候需要一次性把所有数据全部查询出来,那么现在只有用户数据,以后有积分数据,评价数据,这些是不是也要多表查询出来呢,如果多表,那么db查询效率肯定降低,为了方便自己要使用某个字段,而破坏软件设计原则,这样是不可取的。并且,在以后做订单服务拆分的时候,那些多表关联太耦合了,还不好拆,这就跟你在装修房子的时候一样,好的师傅是会把很多地方解耦的,以防万一以后维修的时候方便。

再者,图片上传组件是一个单图多图通用组件,不论是否成功,会有一个状态码对应一张图封装在各自的json result中,在ajax异步上传的时候,只有判断单独的状态码是否成功就可以展示或者提示错误,在做jsp页面的时候是没有问题的,但是手机端确被要求,只要有一个错,就全错,这样就不得不修改整个接口,包括js,这样是不可取的,组件是通用的。

再说说第三点,这个是我要吐槽的,在做form提交的时候把所有数据通过get方式提交,没有也就算了,关键是连<form>都没有,是通过js拼接的,当时我傻眼了,事情发生在大半年前,始终困扰我久久不能散去啊有木有。。。虽然字段不多也不能这么做啊,还有个textarea文本啊。。。这个是绝对要吐槽的

最后说说缓存吧,某家做云计算的公司当时在做项目重构的时候,项目总监提出了公用静态数据的保存,浅白点说就是使用缓存保存一些数据,比如数据字典,省市区这样的公用数据,我当时提出使用redis,并且可以在后台进行管理,但是我得到的回答是“No!”,项目总监提出使用application,在每次在项目启动的时候把所有静态数据往这里面存,我的天呐!

我不知道为什么要做这样的设计,况且自身还是做云计算的!我就不多吐槽了。。。

所以说在做软件开发设计的时候一定要设计好,设计好后就不能随意更改,开发项目是为项目本身,为企业获得价值,其实就是提升你自己的价值以及技术,好了不多说了,看官们轻拍。

原文发布于微信公众号 - BeJavaGod(wxleechenxiang)

原文发表时间:2016-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Coding01

「转」论微服务架构

微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系...

1234
来自专栏WeTest质量开放平台团队的专栏

5天2亿活跃用户,2017QQ“LBS+AR”天降红包活动后台揭密

作者王家彬,腾讯后台开发工程师,参与“LBS+AR”天降红包项目,其所在“2016春节红包联合项目团队”获得2016公司级业务突破奖。

1653
来自专栏媒矿工厂

编码,打包,CDN交付和视频播放器端的延迟优化

在本系列上一篇文章《定义和测量延迟》中,介绍了为什么延迟是OTT传输的一个问题以及如何测量端到端延迟中不同传输步骤所占的延迟比重。 本文接下来介绍可能的延迟优化...

4154
来自专栏腾讯移动品质中心TMQ的专栏

解放程序猿(媛)的双手---iOS UI自动化测试

前言 随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化...

1.4K8
来自专栏互联网杂技

复杂单页应用的数据层设计

很多人看到这个标题的时候,会产生一些怀疑: 什么是“数据层”?前端需要数据层吗? 可以说,绝大部分场景下,前端是不需要数据层的,如果业务场景出现了一些特殊的需求...

3717
来自专栏FreeBuf

如何通过Python实现自动填写调查问卷

0X00 前言的,我才想起来貌似我也还没做。对于这种无意义的问卷,我是不怎么感冒的,所以我打算使用”特技”来完成,也就是python,顺便重新复习一下pytho...

5875
来自专栏张善友的专栏

别再设计易碎的Web API

原文作者Mathieu Fenniak在博文中大呼:不要再设计易碎的Web API 了,否则你的合作伙伴或第三方开发者会因此恨你,而离你远去的。他认为,想设计出...

2168
来自专栏杨建荣的学习笔记

DBA和开发同事的代沟(二)(r7笔记第18天)

参考:DBA和开发同事的一些代沟(一)(r7笔记第17天) 有些朋友给我反馈了他们遇到的小故事,我后续再整理整理,看看有多少。 我还是继续来分享我这边碰到的一些...

3323
来自专栏腾讯大讲堂的专栏

数据库schema设计与优化

1、 前言 对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分...

3706
来自专栏编程

小白零基础编程到大佬级别是怎么学习Python的?

程序员在普通人眼里就像魔法师,一个脚本轻松抢几十盒月饼(虽然最后被开除),一个插件解决春运抢票难题,几十行代码搭建一个 Web 网站,用微信自动和妹纸聊天,在程...

3827

扫码关注云+社区

领取腾讯云代金券