2gua
25-07-10 08:09 微博认证:互联网资讯博主 AI博主 头条文章作者

很多人在诟病Java的过度设计,说的是没错的。

但是想一想,为什么会有这种设计出来呢?这些设计者傻吗?我觉得他们一定是吃够了没有这二十几种设计模式约束的苦头,就像大公司,慢慢做大之后,发现各种漏洞,然后日积月累地完善、修补各种规章制度。所以呢,最后大公司就有了所谓的大公司病,Java也就有了大家嘴上的过度设计。

我讲这个什么意思呢?就是:①这种设计是有现实出发点的,不是脑子短路的结果;②任何事物都一样,东西多了就复杂了。

但是,软件设计跟大公司发展又不一样。大公司病可能很难治,或者说100个牛逼老板有100个整治思路。而软件开发有一条银弹法则,就是软件开发没有银弹。你能保证C、Go就能取代Java吗?显然不能,反过来也一样,Java也不能遮盖其他开发技术栈。Java在它的圈子范围内,怎么用其实就是人的事情了,其实你也可以不要那么过度OOP,比如你有stream。总之,该软件解决问题的时候,看这个软件技术栈能给你提供什么;该人决定取舍的时候,人或团队的能力因素就要担起职责。

大家在讨论开发技术的时候,大多数时候都是盲人摸象,无法全面覆盖,所以你扯啥都有人怼,但是对还是错,得放在具体场景里看,这个场景不只是业务场景,还有团队能力、领导能力、架构/设计能力、人员习惯等等。

发布于 福建