Give you a example, when you want travel, If your destination is near or in your town, you can start right away. When you want travel to another country, you need package your self first.
Design is for preparation, without it , you cannot go too far(or go the wrong way).
It is not a black and white situation: for some projects it is much better to jump in and start coding, for some it's better to have an extensive planning stage, and for others it is not clear cut.
If the project is small and simple enough that only a single developer is working on it, and how to build it is obvious enough that they can imagine every aspect of it in their head, then they can very well jump in and start designing.
The need for more extensive planning comes about when you have multiple developers, or when the project is large and complicated enough that a developer cannot know everything possible about how it will work from the outset, because it is too complicated to know all aspects of it in your head.
What you describe only works well if you are writing something well well understood and contained. If it is similar to other software you've written you don't need a new design because you can just re-use the old one. however, if it is something totally new, designing on the fly will get expensive. You'll find yourself rewriting too much of the code or worse, stuck with a poor architecture which slows you down. Likewise, if you need your code to be extensible, planning ahead is necessary. If you need it to work with components from other people, planning ahead is necessary.
This approach only really works well if you are working on your own. If you have to work within a team of people, it is important to have a good plan so that everyone else knows what you think is the end goal. This doesn't reduce creativity it just allows you to make sure everyone is on the same page, and it reduces the opportunities for confusion. (source: yang.id.au)
只是为了给你的方程场景添加一条思路,让我在下文中贡献一点:我在一家名为 YES INTERNATIONAL CORPORATION (www.yesintl.com.au) 的公司工作。有时,确实会出现开发人员之前开发过某些东西的情况。所以在这种情况下,设计已经在脑海中了。 例如,我过去开发过数据库解决方案,当我坐下来开始开发一个项目时,与我们的竞争对手相比,这使我们成为一家交付速度非常快的公司。 随着时间的推移,更多的经验会让你变得超级完美......我希望这会有所帮助......安迪
Just to add a line of thought to your equation scenario, let me contribute this little bit hereafter: I work in a business called YES INTERNATIONAL CORPORATION (www.yesintl.com.au) Sometimes, it does happen that developers may have developed something before so in that case the design is already in the mind. For example, I have developed database solutions in the past which makes us a very fast delivering corporation compared to our competition when I sit down and start developing a project. More experience will make you super perfect as the time goes by... I hope this helps... Andy
发布评论
评论(5)
举个例子,当你想去旅行时,
如果您的目的地靠近您的城镇或在您的城镇内,您可以立即出发。
当你想去另一个国家旅行时,你需要先收拾好自己。
设计是为了准备,没有它,你就不能走得太远(或者走错路)。
Give you a example, when you want travel,
If your destination is near or in your town, you can start right away.
When you want travel to another country, you need package your self first.
Design is for preparation, without it , you cannot go too far(or go the wrong way).
这不是一个非黑即白的情况:对于某些项目来说,最好是立即投入并开始编码,对于某些项目来说,最好有一个广泛的规划阶段,而对于其他项目来说,情况并不明确。
如果项目足够小且简单,只有一个开发人员在处理它,并且如何构建它足够明显,他们可以在脑海中想象它的各个方面,那么他们就可以很好地投入并开始设计。
当您有多个开发人员时,或者当项目足够大且复杂以至于开发人员无法从一开始就了解其如何工作的所有可能信息时,就需要进行更广泛的规划,因为太复杂而无法了解它的所有方面在你的脑海里。
It is not a black and white situation: for some projects it is much better to jump in and start coding, for some it's better to have an extensive planning stage, and for others it is not clear cut.
If the project is small and simple enough that only a single developer is working on it, and how to build it is obvious enough that they can imagine every aspect of it in their head, then they can very well jump in and start designing.
The need for more extensive planning comes about when you have multiple developers, or when the project is large and complicated enough that a developer cannot know everything possible about how it will work from the outset, because it is too complicated to know all aspects of it in your head.
只有当你写的东西容易理解和包含时,你所描述的内容才会有效。 如果它与您编写的其他软件类似,您不需要新的设计,因为您可以重复使用旧的设计。 然而,如果它是全新的东西,即时设计就会变得昂贵。 您会发现自己重写了太多代码,或更糟的是,陷入了糟糕的架构中,这会减慢您的速度。 同样,如果您需要代码可扩展,则需要提前规划。 如果您需要它与其他人的组件一起工作,则需要提前规划。
What you describe only works well if you are writing something well well understood and contained. If it is similar to other software you've written you don't need a new design because you can just re-use the old one. however, if it is something totally new, designing on the fly will get expensive. You'll find yourself rewriting too much of the code or worse, stuck with a poor architecture which slows you down. Likewise, if you need your code to be extensible, planning ahead is necessary. If you need it to work with components from other people, planning ahead is necessary.
只有当您自己工作时,这种方法才真正有效。 如果您必须在一个团队中工作,那么制定一个良好的计划非常重要,以便其他人都知道您认为的最终目标是什么。 这不会降低创造力,它只是让您确保每个人都在同一页面上,并且减少了混乱的机会。
(来源:yang.id.au)
This approach only really works well if you are working on your own. If you have to work within a team of people, it is important to have a good plan so that everyone else knows what you think is the end goal. This doesn't reduce creativity it just allows you to make sure everyone is on the same page, and it reduces the opportunities for confusion.
(source: yang.id.au)
只是为了给你的方程场景添加一条思路,让我在下文中贡献一点:我在一家名为 YES INTERNATIONAL CORPORATION (www.yesintl.com.au) 的公司工作。有时,确实会出现开发人员之前开发过某些东西的情况。所以在这种情况下,设计已经在脑海中了。 例如,我过去开发过数据库解决方案,当我坐下来开始开发一个项目时,与我们的竞争对手相比,这使我们成为一家交付速度非常快的公司。 随着时间的推移,更多的经验会让你变得超级完美......我希望这会有所帮助......安迪
Just to add a line of thought to your equation scenario, let me contribute this little bit hereafter: I work in a business called YES INTERNATIONAL CORPORATION (www.yesintl.com.au) Sometimes, it does happen that developers may have developed something before so in that case the design is already in the mind. For example, I have developed database solutions in the past which makes us a very fast delivering corporation compared to our competition when I sit down and start developing a project. More experience will make you super perfect as the time goes by... I hope this helps... Andy