En 1187, le jour de son mariage, devant la noce scandalisée, la jeune Esclarmonde refuse de dire «oui» : elle veut faire respecter son vou de s´offrir a Dieu, contre la décision de son pere, le châtelain régnant sur le domaine des Murmures. La jeune femme est emmurée dans une cellule attenante a la chapelle du château, avec pour seule ouverture sur le monde une fenestrelle pourvue de barreaux. Mais elle ne se doute pas de ce qui est entré avec elle dans sa tombe... Loin de gagner la solitude a laquelle elle aspirait, Esclarmonde se retrouve au carrefour des vivants et des morts. Depuis son réduit, elle soufflera sa volonté sur le fief de son pere et ce souffle l´entraînera jusqu´en Terre sainte. Carole Martinez donne ici libre cours a la puissance poétique de son imagination et nous fait vivre une expérience a la fois mystique et charnelle, a la lisiere du songe. Elle nous emporte dans son univers si singulier, reveur et cruel, plein d´une sensualité prenante.
The superb new psychological thriller from ´Queen of Crime´ Val McDermid fuses her trademark plot twists and characterization with one of the most important events in recent UK history - the 1984 Miners´ Strike. Twenty-five years ago, the daughter of Scotland´s richest man and her baby son were kidnapped and held to ransom. But Catriona Grant ended up dead and little Adam´s fate is still unknown. Where did he really go? And is there a link to the Grant mystery? The truth is stranger - and far darker - than fiction.
´´Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. ´´His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. ´´The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers-it is a future classic.´´ - Ralph Johnson , author of Design Patterns ´´If you don´t think you are getting value from your investment in object-oriented programming, this book will tell you what you´ve forgotten to do. ´´Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion.´´ - Dave Collins , author of Designing Object-Oriented User Interfaces ´´Eric weaves real-world experience modeling-and building-business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric´s descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field.´´ - Luke Hohmann , author of Beyond Software Architecture This book belongs on the shelf of every thoughtful software developer. --Kent Beck What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We´ve given away bits and pieces of this knowledge...but we´ve never organized and systematized the principles of building domain logic. This book is important. --Kyle Brown, author of Enterprise Java(TM) Programming with IBM® WebSphere® The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Dr
This book primarily focuses on the domain conditions under which a number of important classes of binary social decision rules give rise to rational social preferences. One implication of the Arrow and Gibbard theorems is that every non-oligarchic social decision rule that satisfies the condition of independence of irrelevant alternatives, a requirement crucial for the unambiguity of social choices, and the weak Pareto criterion fails to generate quasi-transitive social preferences for some configurations of individual preferences. The problem is exemplified by the famous voting paradox associated with the majority rule. Thus, in the context of rules that do not give rise to transitive (quasi-transitive) social preferences for every configuration of individual preferences, an important problem is that of formulating Inada-type necessary and sufficient conditions for transitivity (quasi-transitivity). This book formulates conditions for transitivity and quasi-transitivity for several classes of social decision rules, including majority rules, non-minority rules, Pareto-inclusive non-minority rules, and social decision rules that are simple games. It also analyzes in detail the conditions for transitivity and quasi-transitivity under the method of the majority decision, and derives the maximally sufficient conditions for transitivity under the class of neutral and monotonic binary social decision rules and one of its subclasses. The book also presents characterizations of some of the classes of rules for which domain conditions have been derived. The material covered is relevant to anyone interested in studying the structure of voting rules, particularly those interested in social choice theory. Providing the necessary social choice theoretic concepts, definitions, propositions and theorems, the book is essentially self-contained. The treatment throughout is rigorous, and unlike most of the literature on domain conditions, care is taken regarding the number of individuals in the ´necessity´ proofs. As such it is an invaluable resource for students of economics and political science, with takeaways for everyone - from first-year postgraduates to more advanced doctoral students and scholars.
In this pragmatic, down-to-earth guide, you´ll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach.
Designed as a wide-ranging guide to Domain Specific Languages (DSLs) and how to approach building them, this book covers a variety of different techniques available for DSLs. The goal is to provide readers with enough information to make an informed choice about whether or not to use a DSL and what kinds of DSL techniques to employ. Part I is a 150-page narrative overview that gives you a broad understanding of general principles. The reference material in Parts II through VI provides the details and examples you´ll need to get started using the various techniques discussed. Both internal and external DSL topics are covered, in addition to alternative computational models and code generation. Although the general principles and patterns presented can be used with whatever programming language you happen to be using, most of the examples are in Java or C#. Product Description When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages , noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications. This book´s techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format. Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs-and, where appropriate, gain the significant technical and business benefits they offer. The topics covered include: . How DSLs compare to frameworks and libraries, and when those alternatives are sufficient . Using parsers and parser generators, and parsing external DSLs . Understanding, comparing, and choosing DSL language constructs . Determining whether to use code generation, and comparing code generation strategies . Previewing new language workbench tools for creating DSLs Backcover Designed as a wide-ranging guide to Domain Specific Languages (DSLs) and how to approach building them, this book covers a variety of different techniques available for DSLs. The goal is to provide readers with enough information to make an informed choice about whether or not to use a DSL and what kinds of DSL techniques to employ. Part I is a 150-page narrative overview that gives you a broad understanding of general principles. The reference material in Parts II through VI provides the details and examples you will need to get started using the various techniques discussed. Both internal and external DSL topics are covered, in addition to alternative computational models and code generation. Although the general principles and patterns presented can be used with whatever programming language you happen to be using, most of the examples are in Java or C#. Preface xix Part I: Narratives 1 Chapter 1: An Introductory Example 3 Gothic Security 3 The State Machine Model 5 Programming Miss Grant´s Controller 9 Languages and Semantic Model 16 Using Code Generation 19 Using Language Workbenches 22 Visualization 24 Chapter 2: Using Domain-Specific Languages 27 Defining Domain-Specific Languages 27 Why Use a DSL? 33 Problems with DSLs 36 Wider Language Processing 39 DSL Lifecycle 40 What Makes a Good DSL Design? 42 Chapter 3: Implementing DSLs 43 Architecture of DSL Processing 43 The Workings of a Parser 47 Grammars, Syntax, and Semantics 49 Parsing Data 50 Macros 52 Chapter 4: Implementing an Internal DSL 67 Fluent and Command-Query APIs 68 The Need for a Parsing Layer 71 Using Functions 72 Literal Collections 77 Using Grammars to Choose Internal Elements 79 Closures 80 Parse Tree Manipulation 82 Annotation 84 Literal Extension 85 Reducing the Syntactic Noise 85 Dynamic Reception 86 Providing Some Type Checking 87 Chapter 5: Implementing an External DSL 89 Syntactic Analysis Strategy 89 Output Production Strategy 92 Parsing Concepts 94 Mixing-in Another Language 100 XML DSLs 101 Chapter 6: Choosing between Internal and External DSLs 105 Learning Curve 105 Cost of Building 106 Programmer Familiarity 107