亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? thesourcecodeisthedesign.html

?? 極限編程 Extream Programing
?? HTML
?? 第 1 頁 / 共 3 頁
字號:
<head><title>The Source Code Is The Design</title></head><body><h1><img src="logo.gif"> The Source Code Is The Design</h1>Years ago I read an article that completely changed how I thought about
software design.  I hope that it XP picks this up because I see it as
a very insightful view which XP completely validates empirically.  For
me, it couldn't have come at a better time.  When I first read it, I was
effectively post-documenting a project using IEEE software documentation
standards and cursing the incredibly surreal waterfall process.
<p>The name of the article is <em>What Is Software Design?</em>  It was written
by <a href="http://c2.com/cgi/wiki?JackReeves">JackReeves</a> and published in The C++ Journal Vol. 2, No. 2. 1992.  I
think the journal is defunct, which is a shame.  I really wish everyone
had a chance to read the article.
[...not to be confused with the &quot;C <em>Users</em> Journal&quot; (now the &quot;C/C++ Users Journal&quot;) at <a href="http://www.cuj.com/">http://www.cuj.com/</a> ].
The article is available at <a href="http://gosh.exeter.ac.uk/~cs98abh/archive/documents/what_is_software_design.html">http://gosh.exeter.ac.uk/~cs98abh/archive/documents/what_is_software_design.html</a>.
<p>Essentially the point is this.  When the original <em>phases</em> of software
development were laid down, they were just plain wrong.  Requirements,
Design, Implementation, and Test are not what we think they are.  Design
is not something that you do only before you code.  Implementation is
not the act of coding.  We can see this if we look realistically at what
they are in other engineering disciplines.
<p>(from the article):
<p><DL><dt> <dd><em>The final goal of any engineering activity is to create some kind of documentation.  When a design effort is complete, the design documentation is given to the manufacturing team.  This is a different set of people with a different set of skills from those of the design team.  If the design documents truly represent a complete design, the manufacturing team can proceed to build the product.  In fact, they can proceed to build much of the product without further assistance from the designers.  After reviewing the software development lifecycle today, it appears that the only software documentation that actually seems to satisfy the criteria of an engineering design are the source code listings.</em>
<p><p></DL>This is how people build bridges and buildings and toasters.  See also:  <a href="http://c2.com/cgi/wiki?AnalogyBetweenProgrammingAndManufacturing">AnalogyBetweenProgrammingAndManufacturing</a>
<p>Think about it..  When you are programming, you are doing detailed
design.  The manufacturing team for software is your compiler or
interpreter.  The source is the only complete specification of what the
software will do.  The cute boxes in class diagrams are not the design,
they are a high level view of the design.
<p>What are the ramifications? (paraphrased from the article)
<p><UL><li> <em>Software runs on computers.  It is a sequence of ones and zeros.  Software is not a program listing.</em>
<li> <em>A program listing is a document that represents a software design.  Compilers, linkers, and interpreters actually build (manufacture) software.</em>
<li> <em>Software is very cheap to build.  You just press a button.</em>
<li> <em>Software is expensive to design because it is complicated and all phases of the development cycle are part of the design process.</em>
<li> <em>Programming is a design activity; a good software design process recognizes this and does not hesitate to code when coding makes sense.</em>
<li> <em>Coding actually makes sense more often than believed.  Often the process of rendering the design in code will reveal oversights and the need for more design effort.  The earlier this happens, the better.</em>
<li> <em>Testing and debugging are design activities - they are the equivalents of design validation and refinement in other engineering disciplines.  They can not be shortchanged.</em>
<li> <em>Formal validation methods are not of much use because it is cheaper to build software and test it than to prove it.</em>
<p></UL>-- <a href="http://c2.com/cgi/wiki?MichaelFeathers">MichaelFeathers</a>
<hr>
<DL><dt> <dd>Well!  I just did a <em>major</em> refactoring of this page -- it is now seven(!) pages on the article itself and the topics that came out of it. Now I understand what Ron says about needing to refactor all the time.  Ugh.
<p><dt> <dd>If you don't like where I put something, don't whine about it, fix it. Also, I don't like the &quot;See&quot; references -- a bit more lead-in would be good.  And finally, I think this page and a few of the offspring are <em>still</em> too long...
<p><dt> <dd>-- <a href="http://c2.com/cgi/wiki?BillTrost">BillTrost</a>
</DL><hr>
See <a href="http://c2.com/cgi/wiki?DocumentationBeyondTheSourceCode">DocumentationBeyondTheSourceCode</a>
<a href="http://c2.com/cgi/wiki?SourceCodeAndModeling">SourceCodeAndModeling</a>
<a href="http://c2.com/cgi/wiki?TheWhatButNotTheWhy">TheWhatButNotTheWhy</a>
<a href="http://c2.com/cgi/wiki?SelfDocumentingCode">SelfDocumentingCode</a>
<a href="http://c2.com/cgi/wiki?WhatIsSourceCode">WhatIsSourceCode</a>
<hr>
<em>&quot;The final goal of any engineering activity is to create some kind of documentation.&quot;</em>
<hr>
Since this topic seems to be generating some interesting discussion (still) I have posted the original article on the web at <a href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm">http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm</a> Needless to say, I am thrilled that finally someone is starting to look at this. To me, the entire software industry has a <em>serious</em> quality problem. However, as <a href="http://c2.com/cgi/wiki?WilliamEdwardsDeming">WilliamEdwardsDeming</a> has repeatedly shown, the only way to really improve quality is to modify the process. In order to modify the process, you have to first understand it. -- <a href="http://c2.com/cgi/wiki?JackReeves">JackReeves</a>
<p>This confuses me more than the average thing, all of which confuse me.  I would have thought that the final goal of software engineering was to produce the program.  Is this just another proof that there isn't any such thing as software engineering? --<a href="RonJeffries.html">RonJeffries</a>
<p><em>His formulation is confusing because we use the word documentation differently.  Consider engineers making a bridge.  They make plans (which he calls design documents) and hand them to the construction team building the bridge.  EE's make schematics (which he calls design documents) and hand them to the techs with soldering irons.  We make source code (which he calls design documents) and hand it to the computer which manufactures software.  The parallel is striking.	We are just the first branch of engineering that had a way to go directly from design to product at the press of a button.  Building, or implementation, is so easy in software that we overlooked it and called programming implementation.  We forget that every coding decision is a design decision which impacts the capabilities of the product.  -- <a href="http://c2.com/cgi/wiki?MichaelFeathers">MichaelFeathers</a></em>
<p><DL><dt> <dd>This is very pretty but I don't think it is true. I know our need to abstract and draw parallels but I'm not sure how accurate this one is. But then again, Michael, I also don't feel comfortable with the idea that source code is the construction material analogous to girders or other composable parts from the physical world. Both viewpoints (i.e. source code is design documentation and source code is construction material) seem wrong to me. However, once again I will say that is is a <em>very</em> nice formulation -- I kind of wish it <em>were</em> true. --<a href="http://c2.com/cgi/wiki?RobertDiFalco">RobertDiFalco</a>
<p><p></DL>This resonates with some thoughts about project management. It seems like a common error in software project management is in treating all the stuff that developers do as a <em>manufacturing</em> activity. This seems to be a driver behind a lot of poor management decision making, and unrealistic goal setting.
<p>Maybe if software managers understood better (I could just leave it there ;-) that software product (executables) may indeed be <em>manufactured</em> in any quantity in a short time, flawlessly and cheaply by the machine, they wouldn't try so hard to map all the activities upstream from final build onto a production line.
<p>I guess everyone from <a href="http://c2.com/cgi/wiki?FredBrooks">FredBrooks</a> on has being saying these things, but Micheal's comment really crystallized this idea for me.
<p>(If you are a software development manager reading this, be assured I'm talking about someone else.)
--<a href="http://c2.com/cgi/wiki?KeithBraithwaite">KeithBraithwaite</a>
<hr>
The position of the article was not that source code makes all other
documentation obsolete, it is simply that the act of programming is
designing.  To be quite honest, I sometimes fear that people who read
about XP superficially may get the impression that it is &quot;let's go in
like gangbusters and hack something up.&quot;  Especially those who come
from places with formal trails through a development process, and the
managers chant &quot;what do you mean you don't have a pile of documents??&quot;
You don't really hear the word design thrown around in XP.  Yet, I do
believe, from experience, that <a href="http://c2.com/cgi/wiki?WardAndKent">WardAndKent</a> are right.  You do just have
to try things out in code.  It is how you solidify and validate design.
<a href="TheSourceCodeIsTheDesign.html">TheSourceCodeIsTheDesign</a>.
<p>The thing about <a href="TheSourceCodeIsTheDesign.html">TheSourceCodeIsTheDesign</a> is that it recognizes that coding is part of designing.  The difference between someone who can step up to the computer and program/design something well without having elaborately diagrammed it, and a hack who paints himself into corners is really one of experience, talent, and motivation to learn.  The artificial line between programming and design causes tremendous waste.  Everyone thinks that software is intrinsically different.  That it requires a completely different approach from anything else in engineering.  It isn't different, we just misunderstood it.  We believed that coding and testing were not part of design.  They are just like prototyping on a breadboard.  Part of design. 
<p>This is one of the <a href="http://c2.com/cgi/wiki?TwoIrreparableMistakesOfTheSoftwareField">TwoIrreparableMistakesOfTheSoftwareField</a>, IMHO. -- <a href="http://c2.com/cgi/wiki?MichaelFeathers">MichaelFeathers</a> 
<hr>
See <a href="http://c2.com/cgi/wiki?UnderstandingHotDraw">UnderstandingHotDraw</a> and <a href="http://c2.com/cgi/wiki?TheSourceCodeAndTheArchitecture">TheSourceCodeAndTheArchitecture</a>.
<hr>
''It looks like you buy it but you are looking for something else.
Suppose you visit NASA and you ask to see the design for a Saturn V.
The handtruck full of documents comes in and you are lost.  Then someone
comes up with a one page breakdown of the major components.  You are
back on track again.  Does that mean that the one pager is the design
and the handtruck contents aren't?  No.  It just means that there are
many views into the design.''
<p>See <a href="http://c2.com/cgi/wiki?XpCritique">XpCritique</a>.
<hr>
I can certainly see why we want the source code to be the design, but
I'm not convinced it is <em>all</em> of the design.  For example, for folks
using file-based programming environments and their languages, there

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合婷婷国产精品久久免费| 一本大道av一区二区在线播放| 欧美在线视频日韩| 亚洲欧美视频在线观看| 成人免费高清在线观看| 亚洲乱码国产乱码精品精的特点 | 国产亚洲1区2区3区| 久久成人久久爱| 91精品国产一区二区三区| 亚洲午夜精品网| 777久久久精品| 国产一区亚洲一区| 国产精品美女久久久久久久久久久 | 欧美午夜电影网| 日本不卡视频在线| 久久精品一区四区| 成年人网站91| 亚洲少妇最新在线视频| 色偷偷久久人人79超碰人人澡| 亚洲成av人片一区二区梦乃| 欧美一二三在线| 成人性视频网站| 五月婷婷激情综合网| 亚洲精品一区二区三区影院| av爱爱亚洲一区| 日韩不卡在线观看日韩不卡视频| 精品国产亚洲一区二区三区在线观看| 成人午夜看片网址| 亚洲高清在线精品| 久久九九久精品国产免费直播| 91麻豆国产福利在线观看| 日韩专区欧美专区| 国产精品色一区二区三区| 欧美三级视频在线观看| 国产91在线观看| 午夜av一区二区三区| 亚洲国产精品激情在线观看| 欧美色爱综合网| 成人午夜视频网站| 麻豆精品久久精品色综合| 日韩美女精品在线| 欧美成人三级在线| 欧美在线影院一区二区| 国产一区二区三区香蕉 | 欧美色涩在线第一页| 国产不卡在线一区| 秋霞成人午夜伦在线观看| 国产精品拍天天在线| 日韩精品一区二区三区中文精品| 色综合网色综合| 国产精品亚洲人在线观看| 亚洲成人一区在线| 国产精品久久久久久久久久久免费看 | 欧美一卡二卡三卡| 在线免费观看不卡av| 国产精品18久久久久久久久久久久 | 欧美视频一区二| 国产99久久久国产精品免费看| 三级亚洲高清视频| 亚洲精品国产无天堂网2021| 国产精品天美传媒沈樵| 欧美成人性战久久| 欧美大片国产精品| 宅男在线国产精品| 在线看不卡av| 91看片淫黄大片一级在线观看| 大陆成人av片| 粉嫩13p一区二区三区| 麻豆精品一二三| 麻豆91精品91久久久的内涵| 丝袜美腿亚洲一区二区图片| 亚洲午夜精品一区二区三区他趣| 亚洲精品日韩综合观看成人91| 国产亚洲视频系列| 久久久久久久久99精品| 精品久久国产字幕高潮| 欧美日韩国产美| 7878成人国产在线观看| 欧美久久久久免费| 欧美高清dvd| 欧美一区二区三区在线电影| 欧美一区二区三区四区视频| 日韩欧美资源站| 2021国产精品久久精品| 久久综合狠狠综合久久激情| 久久先锋影音av鲁色资源网| 久久嫩草精品久久久精品| 久久亚洲影视婷婷| 中文字幕乱码一区二区免费| 国产欧美精品在线观看| 中文字幕五月欧美| 亚洲精品日日夜夜| 日本女人一区二区三区| 久久精品国产久精国产爱| 国产一区二区在线看| 成人高清在线视频| 色国产精品一区在线观看| 精品视频资源站| 欧美日韩成人在线| 日韩一级黄色大片| 国产欧美日韩卡一| 亚洲女同女同女同女同女同69| 夜夜嗨av一区二区三区网页| 一区二区欧美精品| 日韩高清欧美激情| 韩国女主播一区二区三区| 国产美女精品人人做人人爽 | 亚洲第一激情av| 青青草国产成人av片免费| 国产呦萝稀缺另类资源| 国产精品影视网| 欧美私模裸体表演在线观看| 91麻豆精品国产91久久久久久 | 另类综合日韩欧美亚洲| 国产精品影音先锋| 欧美在线视频日韩| 国产调教视频一区| 亚洲制服欧美中文字幕中文字幕| 久久国产剧场电影| 91麻豆国产香蕉久久精品| 欧美一区二区三区在线电影| 国产精品久久久久久久久图文区| 五月天一区二区| 成人免费av网站| 在线播放亚洲一区| 国产精品久久久久久久久图文区 | 激情五月婷婷综合| 色激情天天射综合网| 欧美电影免费观看完整版| 日韩美女啊v在线免费观看| 久久爱另类一区二区小说| 99国产一区二区三精品乱码| 日韩一区二区在线播放| 综合久久综合久久| 激情文学综合丁香| 欧美日韩dvd在线观看| 中文字幕欧美激情一区| 免费成人av资源网| 欧美性猛片aaaaaaa做受| 久久亚洲免费视频| 香蕉久久夜色精品国产使用方法| 久久99久久99| 欧美日韩一二三| 国产蜜臀av在线一区二区三区| 亚洲国产成人91porn| 不卡免费追剧大全电视剧网站| 日韩欧美在线1卡| 亚洲精品乱码久久久久久黑人| 国产·精品毛片| 久久久精品一品道一区| 日韩 欧美一区二区三区| av午夜精品一区二区三区| 精品免费99久久| 五月天丁香久久| 欧美日韩情趣电影| 1000精品久久久久久久久| 国产乱码字幕精品高清av | 欧美性生活一区| 一区二区三区四区在线| kk眼镜猥琐国模调教系列一区二区| 日韩欧美色电影| 日韩在线一区二区| 欧美日韩国产精品自在自线| 亚洲精品你懂的| 在线精品视频小说1| 日韩理论片在线| 91在线视频官网| 亚洲视频资源在线| 99re这里只有精品6| 亚洲欧美一区二区三区久本道91| 99re热视频这里只精品| 1024成人网色www| 色狠狠av一区二区三区| 亚洲人成亚洲人成在线观看图片| 福利一区二区在线观看| 欧美肥妇free| 精品一区二区三区在线观看 | yourporn久久国产精品| 中文字幕精品—区二区四季| 成人蜜臀av电影| 亚洲精品国产精品乱码不99| 欧美在线观看一二区| 亚洲一区二区三区不卡国产欧美| 欧美做爰猛烈大尺度电影无法无天| 一级精品视频在线观看宜春院| 欧美性生交片4| 免费成人小视频| 久久久777精品电影网影网 | 日本最新不卡在线| 日韩一级视频免费观看在线| 久久91精品久久久久久秒播| 久久久精品tv| 91女人视频在线观看| 亚洲午夜三级在线| 日韩小视频在线观看专区| 国产在线麻豆精品观看| 国产精品亲子伦对白| 欧美色综合天天久久综合精品| 蜜臀av一区二区在线观看| 久久亚洲捆绑美女|