我如何向新程序员解释松散耦合和信息隐藏?我有一个程序员,我为他写设计,但他似乎不能掌握松散耦合和信息隐藏的概念。
我写的设计将所有的东西都很好地按功能分解成类(数据访问是独立的,一个类用于请求,一个控制器,总共大约5个类)。他们带着修改过的设计回来了,其中一半的类继承了另一半的类(并且没有" is -a“关系),以及许多公共变量。
我如何才能理解这样一种观点,即保持事物分离会使其更容易维护?
发布于 2009-02-27 13:27:24
解释这类概念的最好方法是使用类比。选择一些与编程无关的东西,并用它来解释抽象的设计概念。
下图很好地解释了松散耦合的必要性:

试着想出这样的东西,让你的新程序员觉得有趣,并与之相关。
发布于 2009-02-27 13:27:33
问他借给你10美元是不是个好主意,把他的钱包给你片刻,然后自己拿钱。
发布于 2009-02-27 13:36:56
问题在于你的期望,而不是开发人员缺乏技能。您谈到松散耦合和信息隐藏,就好像它们是简单的事实或机械技术一样--事实并非如此。软件开发是一门手艺,在一门手艺上变得更好的唯一方法就是练习它,然后慢慢地、渐进地改进。
您正在寻找一条捷径。你想让开发人员体验“啊哈!”一瞬间,你会突然发现你的设计中的智慧。我说,不要屏住呼吸。
采用导师的心态。如果你想让他提高自己的设计技能,不要“递给”他一个设计,让他去设计吧!然后和他一起检查设计。这将给他带来经验,更深刻的主人翁意识,并更愿意在他深入实施之前听取你的建议。
顺便说一句,我注意到人们总是用抽象的技能来寻找这些捷径,而不是用更多的“物理”技能。以网球为例。如果你是一名网球教练,一个新球员一直在长时间地正手击球,你不会只是给他看一段罗杰·费德勒正手击球的YouTube视频,然后期望他“明白”。一个好的正手需要多年的经验,因为你需要学习这种感觉,并在不同的场景中使用它-这不是你的肌肉学习,而是你的大脑。这与软件设计没有什么不同。你可以通过一遍又一遍的做来变得更好。你慢慢地从你的错误中学习,并更好地欣赏每个单独设计决策的后果。
https://stackoverflow.com/questions/594698
复制相似问题