资讯专栏INFORMATION COLUMN

为什么好么些人在谈论怎么做完美,而不是怎么做好?

callmewhy / 1219人阅读

摘要:做只在乎怎么把告诉我的东西再交给,怎么把的东西交给。做超人无敌了比我差一点,有件事不能做。。想到什么都写这里我是男的,所以上面没写男超人,呵呵。

这是我在segmentfault回答的一个问题里的回复,觉得写的挺多的有点恶搞在里面,拿来给大伙分享一下。

其实做了这些年的项目,经历和见识了很多种的设计。
比如:给你文档要你完全按照文档来写甚至每个service里面的方法名都有规范,只是没有严格 到怎么去实现他们,我觉得这就是半填空的coding;

有一种是完全填空的coding甚至说调用的方法都有参考文档,让你来做的目的就是把谁调用谁填进去,这种是完全填空coding;

需求拿来自己设计自己来实现,我觉得这是全包的coding啊,小公司很多这样;还有一种接手的项目已经存在且有自己的 架构了,我们做的目的就是来完美它丰满它;

公司有个新的案子要从头来做,你们团队中有架构有pg有qa,各司其职这种应该算是比较正常的了。

上面说的这些例子有没有发现一个问题,除了严格的限制你要做什么和你只能做什么以外,其实在团队开发中你身处的角色决定了这个框架的走向,做ui的 只是在乎view,甚至他们只是看js css纯ui哦!做service的只是在乎前台和他交互,他怎么和dao去交互。做dao只在乎怎么把service告诉我的东西再交给db,怎么把 db的东西交给service。

说的这些可能会认为我跑题太严重了,其实不然!我举的例子不可能包含了全部,还只是很小的一部分,就和设计模式一样,曾经看到有人说“什么设计 模式啊,很多的这种所谓的设计模式放到其他的语言都没有意义”(我是搞java的),他说的有些是对的,正如中国从古代就讲究不完美一样,那个怎么说来 着?“大道五十,天衍四十九,留一线生机,遁去一道”,别吵!我不是看仙侠小说看多了!

我想说的其实是没有完美的!人不完美,事物也不完美,随着你的学识、见闻、体验总能从以前看似完美的东西里面去找出不完美的一面,所以大家还是不要 费劲的去追求完美了,如果完美了就不会有什么多少种的设计模式了,一种足以,还有什么nosql,还有什么mvc框架,mvc只是个主流而已,还有很多叫 不上名字的(因为人家可能根本没起个好听的名字)。

好吧,题主的问题我到现在都没有认真的回复这是不对的,上面这些就是想说一个道理,做自己在这个时刻认为是对的事情就可以了,以后的事情可以适当的去想,但是你的这个以后其实也是有个长度的,想的总是不会太远。

这里开始说下问题的回答。

public class OrderComposeService{
        public void  composeOrder(){
            //TODO
        }

        public void  composeSku(){
            //TODO
        }
    }

这段代码,你觉得和上下文不一致性,“关于业务分层”的帖子特意去看了下,后面有人提到用helper,manager,facade来做那段“不 和谐”的代码都对,哪怕你准备用XX来做都可以的,不就是个名字吗?咱们要的是种思想!我意识到了这段“不和谐”,我就去让它看上去“和谐”点呗。

  

其实我们周围的写的很多代码,都是过程式的书写。

这句话我非常认同,还记得学oo之前,老师跟我吹呼说很多的语言都是过程的、函数的、程式的、方法的,java可是面向对象的,听上去高大上,但实际呢?就好像每天在家里看ccav非常美好,但出门怎么样?现实和想象总是有差距的。

真正去使用的时候总是图省事没有写“繁琐”的oo代码,比如下面这段

class 我{
     N种牛X的属性。。。
     public void 做超人(){
         无敌了。。想到什么都写这里
     }
} 

一个method就是超人了,牛不牛?写的时候为什么就不想想,最少得有个红裤衩传给你才能变身呢?超人会干啥?眼睛冒激光,这不得有个光学的类 吗?力大无穷?好么这最少牵扯到了人体学。还能飞呢!我们在这能把人体学重用了!超人不是还有女的吗?但是女超人有件事不能做哦!

class 她{
    N种牛X的属性。。。
    public void 做超人(){
        无敌了(比“我”差一点 ,有件事不能做!)。。想到什么都写这里
    }
} 

ps:我是男的,所以上面没写男超人,呵呵。

好吧,女超人比较惨咱们让她少做一件事,但他们都是超人啊!怎么能写2个类?就要写一个!但是我就一个做超人的method啊,怎么办?这样吧,咱弄个子类继承男超人的优点吧!不行咱就重载一下做超人的method好了。下面就不写了,多态的孩子快出来了。

上面恶搞了一下,很多概念工作年头多了的人都明白,其实概念不会是记的很清楚,但是都知道是怎么回事,我也记的不是很清楚,但就是随便写了,哪怕看到的可能有问题,但总是从一个角度去看可以说通!

这不就是设计吗?这不就是分层吗?这不就是学以致用吗?学java之初说的那个oo的概念,其实我总觉得和那句“道可道,非常道”很相同,道不是说 他们说的事情相同,而是那种描述的感觉很像,有些事情可能说不清楚,但是你明白,这就是只可意会不可言传啊,之前在segmentfault看到过个例子 (人类玩扑克开车之类的……)帮忙说怎么写class,还是segmentfault的人不多,或者很多人瞧不上这种问题,我敢说如果有100个人让他们 去写,可能会出现101种方式,你不能要求一个人只能写一种。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64328.html

相关文章

  • 云计算未来是什么样子?

    摘要:年是云计算落地元年评判标准有两个至顶网各位网友大家好,这里是第七届中国云计算大会的现场,我们请来了青云黄允松接受采访。你认为云计算发展这几年是一个什么样的变化黄允松我特别喜欢谈论这种话题,我觉得其实到年一切都在预期中,但眼不见为虚。 在不久前在京举办的第七届中国云计算大会上,连续三次参加大会的青云QingCloud CEO黄允松接受了ZD至顶网的视频专访,分享了他眼中的云计算市场、互联...

    tulayang 评论0 收藏0
  • 搞机器学习要哪些技能

    摘要:每个机器学习的模型算法都能说出个所以然来了。好,我们通过这个流程来看看一个机器学习的算法工程师到底还要什么能力。 今天文章比较轻松,不涉及技术,前天抢了两张张学友的演唱会门票,很开森~~~在SF这充满90后的地盘暴露年龄了。。。 1. 前言 本来这篇标题我想的是算法工程师的技能,但是我觉得要是加上机器学习在标题上,估计点的人会多一点,所以标题成这样了,呵呵,而且被搜索引擎收录的时候多了...

    Jacendfeng 评论0 收藏0
  • 如烹小虾: 运维自动化闭环,腾讯是这样

    摘要:我加入了腾讯,腾讯企业文化很好,经常会有很多小组活动部门活动什么的,但是做运维很苦。所以,年的时候我们几个腾讯的同事一同创业,希望把我们的想法和经验能够传递出来。这里我列出了腾讯互联网运维团队所经历的三个阶段。 本文是数人云深圳技术分享课上优维科技联合创始人彭鲤航的演讲实录,演讲主题是《运维自动化实践》。 精彩观点抢鲜看 实现运维自动化闭环,最主要就是配置管理、状态管理和变更管理能力。...

    RyanQ 评论0 收藏0
  • 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记【社交

    摘要:在上一篇文章基于分支,从到,再到,简单的介绍了这里分享在开发过程中,前端选择的心理活动。而作为核心开发之一,也负责前端这块的开发。 在上一篇文章《 ThinkSNS+基于Laravel master分支,从1到 0,再到0.1》,简单的介绍了 ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动。 Laravel Mix的放弃 在 Laravel 中,前端工作流默认是由 la...

    songze 评论0 收藏0
  • SegmentFault 创始人祁宁对话 C# 之父 Anders Hejlsberg

    摘要:加入微软的年里,一直致力于和的研发工作。圆桌对话由祁宁江宏以及云适配马铎共同参与。圆桌对话深入了解江宏大家好,我是的江宏。因为函数式语言有了里的很多特性,当然微软也有自己的函数式语言。 导读 上周,C#、Delphi 之父 Anders Hejlsberg 亲临帝都,就 TypeScript 做了一场技术分享,并与众多开发者就此进行了技术探讨。Anders Hejlsberg 加入微软...

    TesterHome 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<