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

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

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

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

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

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

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

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

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

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

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

本文分享自微信公众号 - BeJavaGod(wxleechenxiang),作者:翔哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 以纯面向对象的JS编写最基本的数据字典案例

    之前有讲到过数据字典,什么是数据字典,用来干啥的,这个不细说了,今天来说说如何实现数据字典功能 无非就是维护数据字典,对数据字典对象进行增删改查,曾经我写过一个...

    风间影月
  • 开发机配置选型?

    对于现在的分布式开发, 一套机子要跑多个服务,开多个虚拟机,数据库,redis集群,solr集群,内存占用率动不动上10g,以最低适用的机子配置给开发员,应该可...

    风间影月
  • 数据字典的缓存刷新与读取的几种方式

    之前有写过数据字典的相关业务是怎么做的,有朋友留言问如何读取,其实很简单,最简单的方式就是每次读取数据库,但是这样的做法很不好,因为数据字典在数据库中属于冷资源...

    风间影月
  • 纯干货!如何做一个成功的大数据项目

    ? 1 失败大数据项目的特征 根据在美国做了15年的大数据项目、产品研发和管理,以及其它一些相关的数据分析的工作经验,了解到的其它的做的比较成功的和失败的项目...

    灯塔大数据
  • CLR、程序集、反射和控制反转

        以前面试包括自己学习的时候经常会碰到这3个东西,也查过相关介绍,晦涩难懂,虽然看完之后,当时勉强理解,不过过一段时间又忘了。其实这篇文章可以分两篇(cl...

    yaphetsfang
  • 人工智能,机器人技术和数据科学家将在2020年成为新兴工作

    根据LinkedIn 发布的《 2020年新兴工作报告》,人工智能,机器人技术(专门从事机器人过程自动化或RPA)和数据科学家角色在新加坡排名前5位。

    RPA小葵
  • 职场 | 还在狂攒MOOC证书?用它们做简历C位可能是个错误!

    失败的面试各有各的因果,但还是有一些共性问题可以让求职者以此为鉴,有些问题看上去不是那么致命,但是随着数据科学行业落地的日渐成熟,面试官对真正优秀数据科学家的甄...

    大数据文摘
  • 百度统计、Google Analytics和Adobe Analytics的数据差异有多大?

    百度统计、Google Analytics和Adobe Analytics的使用的都是页面标签技术跟踪,跟踪的原理都是一样的,三家在国内都有手机数据的服务器,原...

    GA小站
  • Nature子刊:卒中的可塑性调控:一种新的神经功能恢复模型

    非侵入性脑刺激(NIBS)技术可以用来监测和调节皮层神经回路的兴奋性。长期的皮层刺激可对大脑功能产生持久影响,这为NIBS在慢性神经疾病中的治疗奠定了...

    用户1279583
  • 真格基金顾旻曼:数据是下一代的石油,AI是下一代的电

    在前不久达观数据主办的“2018长三角人工智能应用创新张江峰会”上,真格基金董事总经理顾旻曼现场分享了《AI创业投资观察》的主题演讲。

    达观数据

扫码关注云+社区

领取腾讯云代金券