当前位置:  开发笔记 > 程序员 > 正文

最佳实践 - 编码前设计

如何解决《最佳实践-编码前设计》经验,为你挑选了3个好方法。

我很好奇你们怎么想?(我的意思是一种思考方式)关于你的库,系统,框架等的设计架构,然后再开始编码.

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

我之前做过设计,在纸上绘制一些方案并想象它是如何工作的,但也许我以错误的方式做到了?

例如,您如何确定所需的接口,以及如何以最佳方式连接所有接口?

(前一天我遇到了问题,我的朋友问我一个库,我前段时间做了什么,而不是给他一个文件,我不得不给他约3-4个文件,那是因为他们是以某种方式连接..但我认为不是正确的:)所以这是我在设计中的错误..)



1> Kim Major..:

我通常在纸/白板上对问题域进行足够的分析,以便对问题域有足够的了解,开始编写代码.我很少在纸上绘制实现或类图.我发现实现更好设计的关键技术是不要太依赖你编写的代码.如果我不喜欢它,我会删除,重命名,移动和随机播放它,直到它表达了我正在尝试解决的问题的足够好的解决方案.听起来很容易?一点也不!但是使用良好的"编码"工具,实际编写代码并不是主要的努力.写一些,重构,删除,再写一次......

好的设计几乎从未开始好.它演变成了好的.接受这一点使得更容易在小步骤中工作而不会感到沮丧为什么设计不"完美".为了使这个过程发挥作用,你必须拥有良好的设计技能.重点是,即使优秀的设计师也不会在第一时间做到正确.

很多次,当我开始时,我以为我理解了问题域,但我没有.然后我回到白板,与某人交谈或阅读问题域,如果我发现我不太了解它.然后我回到代码.

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

在处理程序员如何思考时,一个有趣的问题是他们如何发展他们的思维方式.就个人而言,我的思维方式多年来不断发展,但是一些事件对我开发软件的方式产生了深远的影响.其中最重要的是与专家设计人员一起设计软件.没有什么比对伟大的设计师进行迭代更能影响我了.另一个事件已经并且仍然会影响我的思考方式,并且会回顾一下我写的软件.



2> Ola Eldøy..:

对于面向对象的方法,我发现离开用户界面一般是一个好主意,并关注系统中将存在哪些实体(对象),以及适当的属性和操作.

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

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



3> Stephan Egge..:

我主要从一盒纸牌开始,然后写下要建模的域的概念。有时我为此使用思维导图。

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

有关设计的思想大多记录在测试中。在实现它的代码之前编写。从利益相关者的最终目标开始,从那里开始一直到起点(时间倒置)。这样可以确保您专注于什么,而不是如何专注。获得正确的对象之间的相互作用比获得对象属性更重要。

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

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

看到:

http://www.robvens.nl/zh-CN/articles/computers/29-time-inversion-pattern

http://www.robvens.nl/zh-CN/articles/computers/28-active-passive-pattern

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有