当前位置: 首页 > news >正文

从代码操作层面解释什么是“面相对象编程”?

起因:

        今天开了一个小会,会上朋友给我们说了一个事,Java项目上他开发一个小功能 用了很多代码,项目经理发现代码太多,说要优化一下,然后亲自帮同事优化,结果是查库的代码少了至少10条sql,同时代码复杂度降低了很多,代码去掉了有一半,我去翻了这些代码后对这个事情做了一个总结。

问题:

        项目经理在方法间传递用的是对象,同事用的是字符串。项目经理玩的是从1到N,同时玩的是从0到N,所以同事要反复查询数据库去构建那个1 代码就变多了,本质原因是对前端不信任、不放心造成的。

解决方式:

        如果对前端信任或则让前端知道不配合那么功能就不能正常运行,这样就应该要求前端转发更多的带ID的对象来实现接口数据传输,帮后端同事把拿到数据后再查数据库的那一步省掉了,所以省了很多查询库的操作和代码逻辑。(前端只负责转发,这样锅就由后端来背了,前端也轻松)。【当然这也为逆向工程留下了漏洞】

        同时后端的方法尽量用传对象的方式去解决问题,让车跑在轮子上,前后端的数据形成一个闭环,编程的数据流就产生了,非常丝滑!

        关键是开发时间还变少了很多,且开发代码也变少了,以后定位bug也会非常容易。维护起来也简单了。以后扩展起来也容易,因为有足够的冗余对象数据来便于功能的扩展。

        这就是Java跟Php的区别(Php其实也可以这样玩),传说中的java面向对象编程。程序员思考问题的起点是基于表的对象维度而不仅仅是产品的要求,这是编程效率的提升点。

        这就把代码的设计思路维建立在项目设计的维度上了,让起初的项目总体设计来承载目前需求的代码设计的风险,这样也就可以拿着数据库表的设计维度和代码风险去跟产品掰扯了。

总结:也就是以面对象的方式去编程(这个对象包括基础表对象,业务数据传递的vo、dto等),要以他们为轮子去走流程,这些对象背后所代表的维度就是代码编程的轨道,一旦脱离了轨道,代码就会显得非常的混乱和不好管理,内行人说“你的代码是逗的,不是这么写的”,说的就是这个道理。一旦开始逗代码了,项目就开始烂了。

http://www.lryc.cn/news/177721.html

相关文章:

  • 【MySQL】SQL优化、char、varchar、外键约束、排查慢sql等重点知识汇总
  • git管理常用命令
  • Python 逢七拍手小游戏2.0
  • 基于微信小程序的在线小说阅读系统,附数据库、教程
  • 216. 组合总和 III
  • 【Java】数组的深浅拷贝问题(二维数组举例)(136)
  • 【轮趣-科大讯飞】M260C 环形六麦测试 2 - ROS1功能测试与唤醒、语音识别程序解析
  • 油猴(篡改猴)学习记录
  • LeetCode 面试题 05.08. 绘制直线
  • 机器人中的数值优化|【六】线性共轭梯度法,牛顿共轭梯度法
  • FastestDet---原理介绍
  • ORACLE 在内存管理机制上的演变和进化
  • Linux ❀ 进程出现process information unavailable时的消除方法
  • ps智能填充功能平替:alpaca的安装和使用
  • 【前端打怪升级日志之ES6篇】玩转函数
  • 网址静态码手机制作教程,附图文详解!
  • 服务器性能测试监控平台export+prometheus(普罗米修斯)+grafana搭建
  • 【24种设计模式】责任链模式
  • C#异步委托的三种实现 BeginInvoke / EndInvoke / IsCompleted
  • 在HTTP请求中安全传输base64编码的字符串
  • 05预测识别-依托YOLO V8进行训练模型的识别——对视频中的图片进行识别
  • LeetCode算法题---第3天
  • 欧洲FBA专线海运与陆运的差别
  • UDS诊断
  • 计算材料学学习记录1
  • PHP8中的构造方法和析构方法-PHP8知识详解
  • 【GPU编程】Visual Studio创建基于GPU编程的项目
  • MySQL面试题-索引的基本原理及相关面试题
  • MySQL学习笔记19
  • 为什么u盘在mac上显示不出来