There is room for improvement in the way introductory computer science is taught. In general, most of the available time is spent on teaching programming language syntax and very little on studying examples of good pr...
详细信息
This paper describes an approach to the methodology of answer set programming that can facilitate the design of encodings that are easy to understand and provably correct. Under this approach, after appending a rule o...
详细信息
This paper describes an approach to the methodology of answer set programming that can facilitate the design of encodings that are easy to understand and provably correct. Under this approach, after appending a rule or a small group of rules to the emerging program, we include a comment that states what has been "achieved" so far. This strategy allows us to set out our understanding of the design of the program by describing the roles of small parts of the program in a mathematically precise way.
Even bad code can function. But if code isnt clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesnt ha...
详细信息
ISBN:
(纸本)0132350882;9780132350884
Even bad code can function. But if code isnt clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesnt have to be that *** software expert Robert C. Martin, presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin, who has helped bring agile principles from a practitioners point of view to tens of thousands of programmers, has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of software craftsman, and make you a better programmerbut only if you work at *** kind of work will you be doing? Youll be reading codelots of code. And you will be challenged to think about whats right about that code, and whats wrong with it. More importantly you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up codeof transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and smells gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean *** will come away from this book understandingHow to tell the difference between good and bad codeHow to write good code and how to transform bad code into good codeHow to create good names, good functions, good objects, and good classesHow to format code for maximum readability How to implement complete error handling without obscuring code logicHow to unit test and practice test-driven developmentWhat
Master Java 5.0 and TDD Together: Build More Robust, Professional SoftwareMaster Java 5.0, object-oriented design, and Test-Driven Development (TDD) by learning them together. Agile Java weaves all three into a single...
详细信息
From the Book: Estimating the time and costs of web projects has been my obsession for over five years. Starting with wild guestimates and little success I was quickly attracted to the analysis practices of the Ration...
详细信息
ISBN:
(纸本)9780201794274
From the Book: Estimating the time and costs of web projects has been my obsession for over five years. Starting with wild guestimates and little success I was quickly attracted to the analysis practices of the Rational process. I spent weeks with customers doing Use Cases and Activity Diagrams trying to define the scope of the project. Still these specifications told me nothing about the work effort involved and lead to huge fights with customers over the changes the customer would ineviably want. Three years ago I went to the Software Expo in San Jose and heard Martin Fowler talking about a new set of practices called XP. I was hooked. XP let me face the facts about the futility of estimation. It taught me about the interconnectedness of price, time, scope and quality and the importance of letting the customer continuously make the trade-offs between the four. As a project manager XP changed the rules of how I engaged with customers and overnight improved my customer relationships and my bottom-line. If estimation was my obsession then development was my curse. Every project seemed to be going fine and then stalled at 90%. It would take us 3 months to do 90% of the work and six months to do the last 10%. Once completed the sites we were building were a nightmare to maintain and I had lost many good programmers who would rather abandon ship than baby-sit a mass of unintelligible brittle code. Developing sites in iterations and using unit tests made a lot of sense but didn't translate naturally in to web development. While the pure coding server side issues melded well with XP we had client-side issues, graphical design issues and serious conflicts trying to use apractice meant for object oriented systems on the inherently non object oriented web page architecture. IF web projects were going to use XP then XP would have to change and so would the way web sites are structured and developed. Over the last two years we have experimented with practices to get the most o
From the Book: Clean code that works is Ron Jeffries' pithy phrase. The goal is clean code that works, and for a whole bunch of reasons: Clean code that works is a predictable way to develop. You know when you are...
详细信息
ISBN:
(纸本)9780321146533
From the Book: Clean code that works is Ron Jeffries' pithy phrase. The goal is clean code that works, and for a whole bunch of reasons: Clean code that works is a predictable way to develop. You know when you are finished, without having to worry about a long bug trail. Clean code that works gives you a chance to learn all the lessons that the code has to teach you. If you only ever slap together the first thing you think of, you never have time to think of a second, better, thing. Clean code that works improves the lives of users of our software. Clean code that works lets your teammates count on you, and you on them. Writing clean code that works feels *** how do you get to clean code that works Many forces drive you away from clean code, and even code that works. Without taking too much counsel of our fears, here's what we dodrive development with automated tests, a style of development called Test-Driven Development (TDD for short). In Test-Driven Development, you: Write new code only if you first have a failing automated test. Eliminate duplication. Two simple rules, but they generate complex individual and group behavior. Some of the technical implications are: You must design organically, with running code providing feedback between decisions You must write your own tests, since you can't wait twenty times a day for someone else to write a test Your development environment must provide rapid response to small changes Your designs must consist of many highly cohesive, loosely coupled components, just to make testing easy The two rules imply an order to the tasks ofprogramming: 1. Redwrite a little test that doesn't work, perhaps doesn't even compile at first 2. Greenmake the test work quickly, committing whatever sins necessary in the process 3. Refactoreliminate all the duplication created in just getting the test to work Red/green/refactor. The TDD's mantra. Assuming for the moment that such a style is possible, it might be possible to dramatically red
When software development teams move to agile methods, experienced project managers often struggledoubtful about the new approach and uncertain about their new roles and responsibilities. In this book, two long-time c...
详细信息
ISBN:
(纸本)9780321502759
When software development teams move to agile methods, experienced project managers often struggledoubtful about the new approach and uncertain about their new roles and responsibilities. In this book, two long-time certified Project Management Professionals (PMPRs) and Scrum trainers have built a bridge to this dynamic new paradigm. They show experienced project managers how to successfully transition to agile by refocusing on facilitation and collaboration, not command and control. The authors begin by explaining how agile works: how it differs from traditional plan-driven methodologies, the benefits it promises, and the real-world results it delivers. Next, they systematically map the Project Management Institutes classic, methodology-independent techniques and terminology to agile practices. They cover both process and project lifecycles and carefully address vital issues ranging from scope and time to cost management and stakeholder communication. Finally, drawing on their own extensive personal experience, they put a human face on your personal transition to agile--covering the emotional challenges, personal values, and key leadership traits youll need to succeed. Coverage includes Relating the PMBOKR Guide ideals to agile practices: similarities, overlaps, and differences Understanding the role and value of agile techniques such as iteration/release planning and retrospectives Using agile techniques to systematically and continually reduce risk Implementing quality assurance (QA) where it belongs: in analysis, design, defect prevention, and continuous improvement Learning to trust your teams and listen for their discoveries Procuring, purchasing, and contracting for software in agile, collaborative environments Avoiding the common mistakes software teams make in transitioning to agile Coordinating with project management offices and non-agile teams Selling agile within your teams and throughout your organization For every project manager who wants to become m
From the Book: This purpose of this book is to provide you with lots of information on pair programming. If you are already pairing, then the book will give you additional insights and techniques to make your pairing ...
详细信息
ISBN:
(纸本)9780201745764
From the Book: This purpose of this book is to provide you with lots of information on pair programming. If you are already pairing, then the book will give you additional insights and techniques to make your pairing even more successful. We answer many of the questions and concerns that you may have about using the technique. In Section One, our aim is for you to gain greater understanding about pair programming. We'll describe the technique and will be looking at pair programming from many perspectives . . . from those who want to try and those who would rather not try, from those who are employees trying to convince their managers to let them try and those who are managers who are trying to convince their employees to try. In Section Two, we deal with some operational details of pairinglike furniture and hints and tips for daily operation. We discuss the importance of pair rotation and how that can lead to better knowledge management. In Section Three, we explain benefits and shortcomings of many different kinds of pairs and the context when each kind of pair works best. We offer ideas to help enhance the pairing and solutions for most problem pairings. Unfortunately, not all pairs will work and we provide ways to recognize the potential problems before they happen. Section Four gives two case studies of pair programming in different methodologies. The first describes pairing in Extreme programming (XP), while the second discusses the Collaborative Software Process (CSP). In both cases, pair programming is an essential ingredient to success. We conclude in Section Five with some future directions and by enumerating Seven Habits of Effective PairProgrammers. Who Should Read This Book We've written this book for software development team members and their managers. When we use the term "software development team," it goes beyond those who write production code. For example, this book is certainly appropriate for team leaders and coaches, GUI designers, architects,
PRAISE FOR MANAGING AGILE PROJECTS"In the hands of another, this class of material could become incoherent, but Sanjiv has enough intellectual power to ground his subject...Fans of APM and those who prefer new id...
详细信息
ISBN:
(纸本)9780131240711
PRAISE FOR MANAGING AGILE PROJECTS"In the hands of another, this class of material could become incoherent, but Sanjiv has enough intellectual power to ground his subject...Fans of APM and those who prefer new ideas as a catalyst for their management approach should find Managing Agile Projects rewarding."Wes Balakian, Chairman and Executive Advisor, PMI eBusiness SIG"I only wish I had read this book when I started my career in software product management, or even better yet, when I was given my first project to manage. In addition to providing an excellent handbook for managing with agile software development methodologies, Managing Agile Projects offers a guide to more effective project management in many business settings."John P. Barnes, former Vice President of Product Management at Emergis, Inc."The agile software development movement evolved from a half-dozen methodologies-Scrum, Adaptive, XP, Crystal-that while different, embodied a consistent set of values and similar practices. The agile project management movement is following the same path-strength through a blend of consistency and diversity. Sanjiv's book, Managing Agile Projects, adds both-consistency and diversity-to the concepts and practices of agile project management. His book is rich in ideas and practical advice. It is a wonderful addition to the growing literature about 'alternative' styles of project management."Jim Highsmith Sr. V.P. and Director Agile Software Development and Project Management Practice Fellow, Business Technology Council Cutter Consortium LLC, Arlington, MA"Here is an innovative approach to the management of agile projects, examining traditional project management practices that do not align well with new agile methodologies. Augustine's alternative approaches in regard to personnel, organization, and change make this a valuable resource for project managers as well as for the customer/product owner."Sydney H. Jammes, Retired C.I.A. Economist"Project management has almost
暂无评论