关于oop的一点回忆
昨天在一个程序员行业群里看到别人发了一条消息,
大意是:要做好封装啦,不要随便用public啦,不要随便改别人代码啦。
说的好像就是我,因为,我这辈子最后悔的一件事情之一就是手贱改动别人代码。
那大概是2015年左右的事情了,事情大概是这样的。
前前公司是一家页游公司,我所在的项目组是一个已经上线运营稳定了约1年的项目,
基本上也就是开发小模块和优化的工作。
彼时公司KPI导入,
大家每个星期都要写工作总结,
所以组长为了照顾我们,
一旦有了新任务,
就分摊给大家好几个人去挂名。
然后,我就这样和另外一个人分到一个模块开发了。
双方使用git合作,在使用对方的代码的时候,
我发现对方有个奇怪的getter/setter基本上就相当于Eclipse或者Flash Builder右键生成出来的。
setter里面除了给对应的私有变量设值,完全没有别的逻辑;
getter里面除了取得这个私有值,也是没有其他操作。
这跟public功能上有什么区别呢?完全没有
另一个地方是一个从服务端获取的静态数据,
在从服务端获取之后就不会变动了的数据,
被对方封装成了好几个对象,
导致命名可以全部A.attr来访问的属性,
要用到A.B.attr甚至是A.B.C.attr来访问。
并且,这个对象的重用次数和后续重用次数可以肯定是0。
我在沟通无果,然后不小心瞥到几次之后,终于做了我这辈子最后悔的事情之一。
当然,这是肯定是闹起来了的。
对方对于getter/setter的回答是flex框架都是这样写的啊?
我100%肯定他是没看过flex代码里面的setter和getter。
因为,as里面脏数据用得很广,
在fl组件框架里,setter里面都会伴有一个脏数据flag;
在flex组件框架里,setter不仅会有脏数据flag,还会有对应的Event触发。
从过度的封装这个看来,此人多半是从java转过来的,因为java面试基本都是问oop三原则,原子性的啥的;
从getter/setter写法看来,此人多半只是个半吊子java,因为这个还是比较基本的一个东西,我现在看来好多js框架里面其实也是有getter/setter的。
从那以后,我对那些满口oop,动则封装继承多态,私有,但是基本功却不扎实的人,都没有什么好感。
当然,我认错了,使用git将版本返回;
然后在做了某次优化有些小bug的情况下被喷,
说这优化有什么用的情况下,
果断离职了。
关于oop的一点回忆的更多相关文章
- C#面试题记录
最怕的就是面试,每每到找工作的时候感觉压力山大,每次都要提前刷点题目去面对.所以这里自己对以后需要了解的知识做一个记录,方便自己随时的补充和深入了解,也给现在的自己留下一点点的印记,给未来留下一点回忆 ...
- 你好,OI
高二了才开通真正意义上的博客...以前一直比较懒没写过什么,现在为了给自己留下一点回忆还是过来了. 上半年的那次失败还是历历在目啊...几个月来一直在我心中挥之不去.虽说也是自己的能力不足造成的,但是 ...
- Delphi研究,对全局变量函数与OOP编程关系的一点体会 good
感叹:设计VCL的人真是神人啊,感觉比Pascal编译器的设计人还要牛很多,把整个Windows架构理了一遍,封装的如此之好,复用的如此之好(以至于Delphi的控件满天飞,使用还特别容易),简直惊为 ...
- Python2.6-原理之类和oop(下)
来自<python学习手册第四版>第六部分 五.运算符重载(29章) 这部分深入介绍更多的细节并看一些常用的重载方法,虽然不会展示每种可用的运算符重载方法,但是这里给出的代码也足够覆盖py ...
- 面向对象的OOA、OOD、OOP
OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题.OOA与结构化分析有较大的区别.OOA所强调的 ...
- javaSE ---OOP总结
面向对象编程(Object Oriented Programming,OOP)是当前最主流的编程范式之一,Java是一门纯面向对象的编程语言.我们常说C++是一门面向对象的编程语言,C++是C语言的一 ...
- scala 学习笔记(06) OOP(下)多重继承 及 AOP
一.多继承 上篇trait中,已经看到了其用法十分灵活,可以借此实现类似"多重继承"的效果,语法格式为: class/trait A extends B with C with D ...
- scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类
一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person ...
- Python2.6-原理之类和oop(上)
来自<python学习手册第四版>第六部分 一.oop:宏伟蓝图(26章) 在这之前的部分中,经常会使用"对象"这个词,其实,到目前为止都是以对象为基础的,在脚本中传递 ...
- 【PHP面向对象(OOP)编程入门教程】13.访问类型(public,protected,private)
类型的访问修饰符允许开发人员对类成员的访问进行限制,这是PHP5的新特性,但却是OOP语言的一个好的特性.而且大多数OOP语言都已支持此特性.PHP5支持如下3种访问修饰符: public (公有的. ...
随机推荐
- vue2中v-if 或者 v-show 使用数组中的值判断不生效
知识点来源:博客园==> 外号蓝大胖// 对象this.$set(obj, key, value)/vue.set(obj, key, value)// 数组this.$set(arr, ind ...
- 【网络知识】FTP主被动模式介绍及抓包分析
一.FTP是什么 FTP,即文件传输协议(File Transfer Protocol,FTP),基于该协议客户端与服务端可以实现共享文件.上传文件.下载文件. FTP 基于TCP协议生成两个连接,一 ...
- 【HarmonyOS】一文教你如何在低代码项目中跳转H5页面
[关键字] 元服务.低代码.H5页面跳转.WebView [1.写在前面] 今天我们来实现一个在低代码项目中通过按钮跳转到H5页面的功能,本项目是基于API6的JS工程,我们的实现思路是在页面B中 ...
- Java类加载原理中为何要设计双亲委派机制
首先,给大家演示两个示例代码,我们自定义一个与Java核心类库中java.lang.String类名相同的代码: package java.lang; /** * 自定义java.lang.Strin ...
- ndk std_thread 获取pid
本文链接 https://www.cnblogs.com/wanger-sjtu/p/16817532.html 最近在解决tvm绑核问题时,发现android下绑核只有sched_setaffini ...
- 前端Vue加载中页面动画弹跳动画loading
前端Vue加载中页面动画弹跳动画loading, 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id=13091 效果图如下: 使用方法 ...
- idea设置退出软件提示
进入设置
- 使用Git进行版本控制和协作:代码共享、协作和版本管理
目录 引言 Git 是一款开源的分布式版本控制系统,它已经成为了现代软件开发中必不可少的工具之一.在这篇文章中,我们将介绍如何使用 Git 进行版本控制和协作,以实现代码共享.协作和版本管理.Git ...
- 【webpack系列】从基础配置到掌握进阶用法
前言 本篇文章将介绍一些webpack的进阶用法,演示内容继承自上一篇文章的内容,所以没看过上一篇文章的建议先学习上一篇内容再阅读此篇内容,会更有利于此篇的学习- 文件指纹 文件指纹指的是打包输出的文 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-4-playwright等待浅析
1.简介 在介绍selenium的时候,宏哥也介绍过等待,是因为在某些元素出现后,才可以进行操作.有时候我们自己忘记添加等待时间后,查了半天代码确定就是没有问题,奇怪的就是获取不到元素.然后搞了好久, ...