
最 低 价:¥64.60
定 价:¥0.00
作 者:(美)皮隆(Pilone,D.),(美)迈尔斯(Miles,R.) 著
出 版 社:东南大学出版社
出版时间:2009-01-01
I S B N:9787564112363
| “《深入浅出软件开发》是本汇集了奇思妙想的书籍,经过精心地设计,它利用一系列图表将信息准确而又清晰全面地映入您的大脑。它是一本全新类型的书籍。” ——Scott Hanselman,软件开发者、演说家、作家Computer Zen “《深入浅出软件开发》讲述了软件开发中那些极少在课堂上出现但却亟需您 了解的内容。” ——Keith Wichmann.SOA架构师,Johns ttophins University Applied Physics Laboratory “无论您在软件开发这一行工作了多久,《深入浅出软件开发》都将带给您用于成功开发整个项目的必备工具。” ——Adam Z Szvmanski.软件项目经理Naval Research Laboratory |
| Intro 1 great software development: Pleasing your customer Toms Trails is going online Most projects have two major concerns The Big Bang approach to development Flash forward: two weeks later Big bang development usually ends up in a big MESS Great sottware development is... Getting to the goal with ITERATION Each iteration is a mini-project Each iteration is QUALITY software The customer WILL change things up Its up to you to make adjustments But there are some BIG problems... Iteration handles change automatically (well sort ot) Your software isnt complete until its been RELEASED Tools for your Software Development Toolbox 2 gathering requirements: Knowing what the customer wants Orions Orbits is modernizing Talk to your customer to get MORE information Bluesky with your customer Sometimes your bluesky session looks like this... Find out what people REALLY do Your requirements must be CUSTOMER-oriented Develop your requirements with customer feedback User stories detine the WHAT of your project... estimates define the WHEN Cubicle conversation Playing Planning Poker Put assumptions on trial for their lives A BIG user stoW estimate is a BAD user story estimate The goal is convergence The requirement to estimate iteration cycle Finally, were ready to estimate the whole project 3 project planning: Planning for success Customers want their software NOW! Prioritize with the customer We know whats in Milestone 1.0 (well, maybe) If the features dont fit, re-prioritize More people sometimes means diminishing returns Work your way to a reasonable milestone 1.0 Iterations should be short and sweet Comparing your plan to reality Velocity accounts for overhead in your estimates Programmers think in UTOPIAN days... Developers think in REAL-WORLD days... When is your iteration too long? Deal with velocity BEFORE you break into iterations Time to make an evaluation Managing customers The Big Board on your wall How to ruin your teams lives 4 user stories and tasks: Getting to the real work Introducing iSwoon Do your tasks add up? Plot just the work you have left Add your tasks to your board Start working on your tasks A task is only in progress when its IN PROGRESS What if Im working on two things at once? Your first standup meeting... Task 1 : Create the Date class Standup meeting: Day 5, end of Week 1... Standup meeting: Day 2, Week 2... We interrupt this chapter... You have to track unplanned tasks Unexpected tasks raise your burn-dovm rate Velocity helps, but... We have a lot to do... ...but we know EXAC, TLY where we stand Velocity Exposed 5 good-enough design: Getting it done with great design iSwoon is in serious trouble... This design breaks the single responsibility principle Spotting multiple responsibilies in your design Going from multiple responsibilies to a single responsibility Your design should obey the SRP, but also be DRY... The post-refactoring standup meeting... Unplanned tasks are still just tasks Part of your task is the demo itself When everythings complete, the iterations done 6 version control: Defensive development Youve got a new contract BeatBox Pro And now the GUI work... Demo the new BeatBox for the customer Lets start with VERSION CONTROL First set up your project... ...then you can check code in and out. Most version control tools will try and solve problems for you The server tries to MERGE your changes If your software cant merge the changes, it issues a conflict More iterations, more stories... We have more than one version of our software... Good commit messages make finding older software easier Now you can check out Version 1.0 (Emergency) standup meeting Tag your versions Tags, branches, and trunks, oh my! Fixing Version 1.0...tbr real this time. We have TWO code bases now When NOT to hranch... The Zen of good branching What version control does... Version control cant make sure you code actually works... Tools for your Software Development Toolbox 6.5 building your code: Insert tab a into slot b... Developers arent mind readers Building your project in one step Ant: a build tool forJava projects Projects, properties, targets, tasks Good build scripts... Good build scripts go BEYOND the basics Your build script is code, too New developer, take two Tools for your Software Development Toolbox 7 testing and continuous integration: Things fall apart Things will ALWAYS go wrong... There are three ways to look at your system... Black-box testing focuses on INPUT and OUTPUT Grey-box testing gets you CLOSER to the code White-box testing uses inside knowledge Testing EVERYTHING with one step Automate your tests with a testing framework Use your framework to run your tests At the wheel of CI with CruiseControl Testing guarantees things will work.., right? Testing all your code means testing EVERY BRANCH Use a coverage report to see whats covered Getting good coverage isnt always easy... What CM does... Tools for your Software Development Toolbox 8 test-driven development: Holdingyour code accountable Test FIRST, not last So were going to test FIRST... Welcome to test-driven development Your first test... ...fails miserably. Get your tests to GREEN Red, green, refactor... In TDD, tests DRIVE your implementation Completing a task means youve got all the tests you need, and they all pass When your tests pass, move on! Simplicity means avoiding dependencies Always write testable code When things get hard to test, examine your design The strategy pattern provides formuhiple imp!ementations of a single interface Keep your test code with your tests Testing produces better code More tests always means lots more code Strategy patterns, loose couplings, object stand ins... We need lots of different, but similar, objects What if we generated objects? A mock object stands in for real objects- Mock objects are working object stand-ins Good software is testable... Its not easy bein green... A day in the life of a test-driven developer-.. Tools for your Software Development Toolbox 9 ending an iteration: Its all coming together... Your iteration is just about complete... ...but theres lots left you could do System testing MUST be done... ...but WHO does system testing? System testing depends on a complete system to test Good system testing requires TWO iteration cycles More iterations means more problems Top 10 Traits of Effective System Testing The life (and death) of a bug So you found a hug.... Anatomy of a bug report But theres still plenty left you COULD do... Time for the iteration review Some iteration review questions A GENERAL priority list for getting EXTRA things done Tools for your Software Development Toolbox 10 the next iteration:/f it aint broke...you still better fix it What is working software? You need to plan for the next iteration Velocity accounts for.., the REAL WORLD And its STILL about the customer Someone elses software is STILL just software Customer approval? Check! Testing your code Houston, we really do have a problem... Trust NO ONE It doesnt matter who wrote the code. If its in YOUR software, its YOUR responsibility. You without your process You with your process 11 bugs: Squashing bugs like a pro Previously on Iteration 2 First, youve got to talk to the customer Priority one: get things buildable We could fix code... ...but we need to fix functionality Figure out what functionality works NOW you know whats not working What would you do? Spike test to estimate What do the spike test results tell you? Your teams gut feel matters Give your customer the bug fix estimate Things are looking good... ...and you finish the iteration successfully! AND the customer is happy Tools tbr your Software Development Toolbox 12 the real world: Having a process in life Pinning down a software development process A good process delivers good software Formal attire required... Some additional resources... More knowledge== better process Tools for your Software Development Toolbox Appendix 1 leftovers Appendix 2 techniques and principles |
商品评论(0条)