• 关于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的情况下被喷,

    说这优化有什么用的情况下,

    果断离职了。

  • 相关阅读:
    wx_sample.php

    手机装linux系统
    MySQL导入导出命令
    PHP对表单提交特殊字符的过滤和处理
    sublime开启php自动代码补全
    寻找Linux单机负载瓶颈
    怎样成为PHP 方向的一个合格的架构师
    说说大型高并发高负载网站的系统架构
    数据库水平分割,垂直分割,库表散列浅谈
  • 原文地址:https://www.cnblogs.com/adoontheway/p/6376710.html
Copyright © 2020-2023  润新知