锘??xml version="1.0" encoding="utf-8" standalone="yes"?>1024成人,亚洲女同精品视频,久久九九免费http://m.shnenglu.com/zft19/archive/2011/08/11/153079.htmlSmileSmileThu, 11 Aug 2011 10:20:00 GMThttp://m.shnenglu.com/zft19/archive/2011/08/11/153079.htmlhttp://m.shnenglu.com/zft19/comments/153079.htmlhttp://m.shnenglu.com/zft19/archive/2011/08/11/153079.html#Feedback0http://m.shnenglu.com/zft19/comments/commentRss/153079.htmlhttp://m.shnenglu.com/zft19/services/trackbacks/153079.html

鍘熸枃鍦板潃錛?/h1>http://tom.preston-werner.com/2010/08/23/readme-driven-development.html


Readme Driven Development

23 August 2010 - San Francisco

I hear a lot of talk these days about TDD and BDD and Extreme Programming and SCRUM and stand up meetings and all kinds of methodologies and techniques for developing better software, but it's all irrelevant unless the software we're building meets the needs of those that are using it. Let me put that another way. A perfect implementation of the wrong specification is worthless. By the same principle a beautifully crafted library with no documentation is also damn near worthless. If your software solves the wrong problem or nobody can figure out how to use it, there's something very bad going on.

Fine. So how do we solve this problem? It's easier than you think, and it's important enough to warrant its very own paragraph.

Write your Readme first.

First. As in, before you write any code or tests or behaviors or stories or ANYTHING. I know, I know, we're programmers, dammit, not tech writers! But that's where you're wrong. Writing a Readme is absolutely essential to writing good software. Until you've written about your software, you have no idea what you'll be coding. Between The Great Backlash Against Waterfall Design and The Supreme Acceptance of Agile Development, something was lost. Don't get me wrong, waterfall design takes things way too far. Huge systems specified in minute detail end up being the WRONG systems specified in minute detail. We were right to strike it down. But what took its place is too far in the other direction. Now we have projects with short, badly written, or entirely missing documentation. Some projects don't even have a Readme!

This is not acceptable. There must be some middle ground between reams of technical specifications and no specifications at all. And in fact there is. That middle ground is the humble Readme.

It's important to distinguish Readme Driven Development from Documentation Driven Development. RDD could be considered a subset or limited version of DDD. By restricting your design documentation to a single file that is intended to be read as an introduction to your software, RDD keeps you safe from DDD-turned-waterfall syndrome by punishing you for lengthy or overprecise specification. At the same time, it rewards you for keeping libraries small and modularized. These simple reinforcements go a long way towards driving your project in the right direction without a lot of process to ensure you do the right thing.

By writing your Readme first you give yourself some pretty significant advantages:

  • Most importantly, you're giving yourself a chance to think through the project without the overhead of having to change code every time you change your mind about how something should be organized or what should be included in the Public API. Remember that feeling when you first started writing automated code tests and realized that you caught all kinds of errors that would have otherwise snuck into your codebase? That's the exact same feeling you'll have if you write the Readme for your project before you write the actual code.

  • As a byproduct of writing a Readme in order to know what you need to implement, you'll have a very nice piece of documentation sitting in front of you. You'll also find that it's much easier to write this document at the beginning of the project when your excitement and motivation are at their highest. Retroactively writing a Readme is an absolute drag, and you're sure to miss all kinds of important details when you do so.

  • If you're working with a team of developers you get even more mileage out of your Readme. If everyone else on the team has access to this information before you've completed the project, then they can confidently start work on other projects that will interface with your code. Without any sort of defined interface, you have to code in serial or face reimplementing large portions of code.

  • It's a lot simpler to have a discussion based on something written down. It's easy to talk endlessly and in circles about a problem if nothing is ever put to text. The simple act of writing down a proposed solution means everyone has a concrete idea that can be argued about and iterated upon.

Consider the process of writing the Readme for your project as the true act of creation. This is where all your brilliant ideas should be expressed. This document should stand on its own as a testament to your creativity and expressiveness. The Readme should be the single most important document in your codebase; writing it first is the proper thing to do.



Smile 2011-08-11 18:20 鍙戣〃璇勮
]]> 久久人人爽人爽人人爽av| 久久精品国产99国产精品| 乱亲女H秽乱长久久久| 久久精品国产精品亚洲毛片| 久久亚洲国产欧洲精品一| 亚洲欧美久久久久9999| 国产精品禁18久久久夂久| 久久九色综合九色99伊人| 久久久久AV综合网成人| 伊人久久大香线蕉综合5g| 国产精品久久久天天影视| 亚洲AV成人无码久久精品老人| 国产成人综合久久精品尤物| 久久久无码人妻精品无码| 一本久久a久久精品综合香蕉| 久久精品嫩草影院| 欧美va久久久噜噜噜久久| 日产精品久久久久久久| 久久久久亚洲AV无码专区网站 | 精品久久久无码中文字幕| 久久精品国产亚洲AV无码偷窥| 亚洲国产小视频精品久久久三级 | 99久久久久| 亚洲午夜久久影院| 久久久综合九色合综国产| 99久久久精品免费观看国产| 99精品国产免费久久久久久下载| 久久嫩草影院免费看夜色| 日本加勒比久久精品| 色综合久久天天综线观看| 久久久久国产一级毛片高清板| 99国内精品久久久久久久| 久久国产香蕉视频| 三级韩国一区久久二区综合| 青青热久久国产久精品| 欧美日韩中文字幕久久久不卡| 亚洲精品无码久久久久AV麻豆| 日本欧美国产精品第一页久久| 久久亚洲国产最新网站| 亚洲精品乱码久久久久久按摩 | 久久国产三级无码一区二区|