首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最佳实践-编码前设计

最佳实践-编码前设计
EN

Stack Overflow用户
提问于 2008-12-17 08:34:33
回答 9查看 6.8K关注 0票数 44

我很好奇你们是怎么想的?(我指的是一种思考方式)在开始编码之前,先了解一下你的库、系统、框架等的设计架构。

最近,我发现自己在所做的事情中感到痛苦,几乎每次我都想从头开始。

我以前做过设计,在纸上画了一些方案,想象它是如何工作的,但也许我做错了?

例如,您如何决定需要哪些接口,或者如何以最佳方式连接所有接口?

(前几天我遇到了一个问题,我的朋友问我之前做了什么库,我不是只给他一个文件,我必须给他大约3-4个文件,这是因为它们以某种方式联系在一起……但我认为不是在正确的位置:)所以这是我设计上的错误。)

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-12-17 11:16:42

我通常会在纸/白板上对问题域做足够的分析,以便对问题域有足够的理解,然后开始编写代码。我很少在纸上画实现或类图。我发现实现更好设计的一个关键技术是不要太执着于你写的代码。如果我不喜欢它,我会对它进行删除、重命名、移动和混洗,直到它对我想要解决的问题表达出足够好的解决方案。听起来很简单?不用谢!但是有了好的“编码”工具,实际上编写代码并不是主要的工作。写一些,重构,删除,再写一遍...

好的设计几乎不会一开始就是好的。接受了这一点,可以更容易地以小步骤进行工作,而不会因为设计不“完美”而感到沮丧。然而,为了让这个过程工作,你必须拥有良好的设计技能。关键是,即使是优秀的设计师也不会在第一次就做对。

很多时候,当我刚开始的时候,我认为我理解了问题域,但我没有。然后我回到白板上,与某人交谈或阅读问题域,如果我意识到我不够理解它。然后,我返回到代码。

这是一个非常迭代的过程。

在处理程序员如何思考时,一个有趣的问题是他们是如何发展自己的思维方式的。就我个人而言,我的思维方式多年来一直在发展,但有一些事件对我开发软件的方式产生了深远的影响。其中最重要的是与专业设计师一起设计软件。没有什么比与伟大的设计师一起迭代更能影响我了。另一个事件已经并仍然影响着我思考的方式,那就是回到过去,看看我不久前写的软件。

票数 34
EN

Stack Overflow用户

发布于 2008-12-17 08:39:06

对于面向对象的方法,我发现离开用户界面一段时间,专注于系统中将存在的实体(对象)以及适当的属性和操作通常是一个好主意。

在白板或大纸上绘画,使用不同的颜色来识别不同的特征也是一个好主意。便利贴也是可视化模型的一种很好的方式。

即使我花了很多时间仔细考虑一个设计,但我总是会随着时间的推移而改变。因此,请记住,当您决定如何记录您的设计时,您的设计会发生变化。

票数 6
EN

Stack Overflow用户

发布于 2008-12-17 08:41:10

我主要从一盒卡片开始,然后写下我想要建模的领域的概念。有时我会使用思维导图来做到这一点。

看看利益相关者,以及他们想要实现的目标。从那里开始是很重要的,因为它可以让你正确地确定优先级(即不是最有趣的技术部分,而是最具商业价值的部分)

关于设计的想法大多是在测试中写下来的。在编写代码之前实现它。从利益相关者的最终目标开始,从那里向后工作到开始(时间反转)。这确保了你专注于什么,而不是如何。对象之间的交互比对象属性更重要。

另一部分主要在白板上。如今,紧凑型数码相机是标准设备。

在你有三个需要的实现之前做一个框架是一种糟糕的做法。如果有必要,请为重大的接口(和实现)更改做好准备。

请参见:

  • http://www.robvens.nl/en/articles/computers/29-time-inversion-pattern
  • http://www.robvens.nl/en/articles/computers/28-active-passive-pattern
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/373988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档