- 出版社: Manning Publications; Pap/Psc (2009年5月28日)
- 平装: 550页
- 语种： 英语
- ISBN: 1933988711
- 条形码: 9781933988719
- 商品尺寸: 18.7 x 2.2 x 23.5 cm
- 商品重量: 708 g
- ASIN: 1933988711
- 用户评分: 分享我的评价
- 亚马逊热销商品排名: 图书商品里排第2,941,240名 (查看图书商品销售排行榜)
Brownfield Application Development in .NET (英语) 平装 – 2009年5月28日
Kyle Baley has been developing applications since 1998 with a focus on webapplications. He has built software for a number of industries, including transportation,telecommunications, private banking, oil and gas, online education,and hotels and hospitality.Donald Belcham is an independent contractor who has been developing applicationsfor the public and private sectors of North America and the South Pacificsince 2000. In those years he has built some green field applications, but moreoften than not he has inherited partially completed systems (brownfield) whichwere in dire need of resuscitation.
Don't let the title fool you, it could have been "Modern Object Oriented development with .NET". In the context of improving an existing active project (brownfield) this books walks you through separation of concerns, isolating dependencies, test driven development and many other concepts in a very practical and easy to understand way.
They also cover many of the political, cultural and personality issues you will face working with any company or team and suggest ways to work around, mitigate and sell new ideas into a situation. It is very easy to go with the flow but having the confidence to buck the flow on occasion can be a big win for everyone!
This was a good book for me. I was trained as an electrical engineer and spent 20 years designing computers before taking a turn into application development 17 years ago. I read constantly, listen to podcasts and hang around a lot of very smart people so have picked up most of the modern software design patterns. The advantage of applying particular patterns is not always clear so it takes a while to work new things into my development methodology.. mostly a good thing.
I thought the book did a good job of putting many concepts into a more comprehensive context than is normally presented. This approach has given me many good ideas about how I can better apply the techniques and motivation to investigate a few things I have ignored.
I started reading this book while I was working on a Brownfield application project. I knew from the start of the project that the task will be challenging. This book helped to maintain a positive attitude and gather my wits when the project became depressing. Sometimes it is just good to know that someone, somewhere were in a similar situation before and prevailed.
I wish there were more books like this; there are just a few enjoyable books about Software Ecosystem. Software Ecosystem in relation to Legacy / Brownfield apps is often misunderstood and usually documented by academics and not practitioners.
It focusses on strategies to try and improve the quality of that sort of beast and therefore our day-to-day developer life.
It does a great job at covering good practices, both in the software development process (issue tracking and management, automation of tests and builds, deployment) and in good programming principles (OO principles). It is full of directly applicable tips and helps avoiding the well-known traps that can show up when improving the application.
In addition to developers working on brownfield applications, I would recommend it to any developer who needs a good overview of the Software development process and good practices.
I found that it also helped improve my morale regarding the terrible codebase I am working on.
First, while it indeed doesn't contain much original material, it is an excellent compilation of generally accepted best practices in software development (version control, continuous integration, unit testing, logical layering, refactoring UI and data access code, etc.).
What makes this even better is that I find the explanations of these best practices far more accessible than what I've seen in other places, such as in articles on the internet. For example, while the comparison of various UI patterns doesn't go into depth, it's very good at pointing at the core differences. I haven't yet seen something as easily accessible as this.
Third, this book is not *just* about code. The authors keep pointing out that software development also includes political and social aspects that can hinder code improvement if not approached the right way. That's something all too easily forgotten (depending on in what kind of team one works).
Lastly, the book isn't just theoretical. It's built around fictional short stories of developers going about their daily tasks to show where, and how, code ought to be improved. These "stories" get to the relevant points very quickly and I could easily identify with the portrayed situations. The book then usually gives some theory on how to refactor, and goes on demonstrating such a refactoring.
In conclusion, I clearly underestimated that book at first -- it's in fact a highly useful concrete guide for software improvement.
The first half of the book covers topics of infrastructure to support the project development. Topics covered include version control, build automation, automated tests, code metrics,
The second half is about the code, and covers OOP principles, layering, refactoring, and dependency management.
Very useful to have handy when reviewing projects for pain points and friction areas.