14, further reading
Agile Architecture Design One Text has all been ended, because architecture design is a big topic, and it is difficult to explain the architecture design in an article. Therefore, a set of books and articles are provided in the last chapter of this article, which are related to architecture design. The writing process of this paper has benefited much from high, so it is recommended to be interested in readers.
Do not doubtful, model is an effective tool for software design. However, when designing the software design in the model and reality, many people tend to confuse how the pattern is applied. The result is to show two extremes: one is used in poor mode, and the second is excessive abuse mode. The pattern is a summary of others' design experience, but it will also increase certain complexity while providing excellent design ideas. Therefore, it is very dangerous to use the context environment that does not understand the context environment. Not only does not reach the original effect, but also caused difficulties in understanding and designing team communication. At the beginning of the article, the author criticizes the practice of abuse mode. So, how do you think it is the correct mode of use? The author borrowed the reconstruction method of Martin Fowler. Through the actual example, discuss how to refine a design model to a beautiful design pattern for designing a general, not flexible, and uneducated. Therefore, the core of this article is how to identify which design needs to be reconstructed? How to determine the timing of reconstruction? How to evaluate the advantages and disadvantages before and after reconstruction? And how to reconstruct it? This book is currently in writing, from http://industriallogic.com, you can find a draft. On a transparent website and Umlchina, a partial translation can also be found. After reading the architecture reconstruction mode, you can read this article so you can understand the implementation of this mode at the code level.
Effective Java (Joshua Bloch) This book is located in program habits (IDiom) and good OO thinking. Any design cannot be detached from the final code. Therefore, designers specializing in architecture must also have a thick coding skill. The excellent software process is spliced from a large number of excellent practices, and the architecture design is the same, it is accumulated by a large number of code level practices. In addition, many discussions on this book are about how to make an excellent OO design. In this article, many of our discussions are based on OO design, and we also discussed OO design excellent in stabilization mode. Therefore, after understanding the basic ideas of architecture design, read this book, you can further understand and strengthen the design ideas of the OO architecture. By the way, the Chinese version of this book is about to be available.
Writing Effective Use Case (Alistair Cockburn) Text, this book mainly introduces how to write knowledge of use cases. In architectural design, we continue to emphasize the importance of demand, it can be said that there is no demand, there is no architecture. So, how should demand organizations? The use case is a good demand organization. Note that the use case does not replace the demand, similar to business processes, and non-functional needs are not good at use. The essence of this book is that it describes the various aspects of the narrative type of use, and describes the composition of the use case from the scope of the use case, role, hierarchy, etc., and discusses a number of related knowledge of the use case. More precious is that this book contains a lot of instances. Compared to some introductions, the book is more practical. The value of an excellent demand is that it can easily convert the workpieces required for other practices during software development. If we carefully understand this book, we will find that many ideas in the book are based on this. This book can find two versions of Chinese and English version on the market.
Thinking In Patterns (Bruce Eckel) Bruce Eckel's two books "Thinking In C " and "Thinking in Java" can be said to be very famous. There are three versions of the latter. The first two versions have Chinese translation. Tanjie is personally translated the second version, the third version is currently writing, from the Bruce Eckel website (http: // www .MindView.net /) can be downloaded. "Thinking In Patterns" is still in writing, but it has been slightly larger. Bruce Eckel discusss the difference between the model and the connotation between the model from different application perspectives. For example, discussions on factory models are discussed from the perspective created by the package object, and discussing the adapter mode is discussed from the perspective of changing the interface. The key to the model is the application, read this book, you can experience this. Java and Mode (宏) If some of the above good texts are from foreign experts, then this book is an absolute Chinese original. The focus of this book is to discuss the object-oriented rules hidden behind the mode, and analyze and instance discussions on various design patterns. Using a lot of interesting examples and using philosophical thinking to explain the two major features. When reading the book, please pay attention to distinguish between technology details and frame code. The advantage of designing mode is that it is possible to design a framework for flexibility, scalability, and low coupling according to the context environment. This is the same as the idea of architecture design, do not consider too much detail in the early days of the software development process.
Patterns of Enterprise Application Architecture (Martin Fowler) This is an absolute discussion architecture design mode, but the architecture here is an architecture that refers to the enterprise information system, which is the same as the issues discussed in this article. According to the theory of the three-layer structure, the model of this book can be roughly divided into 5 categories: representing layer mode, logical layer mode, data layer mode, distributed mode, and some basic mode. The early versions of the book use this classification method. After the publication, the classification of the pattern is further refined. For example, the data layer mode is further distinguished into a data source architecture mode, an object-relational behavior mode, an object-relational structure mode, an object-relational metadata mapping mode. The content coverage of this book is very wide, and Martin Fowler has very excellent talents on the organization of material. The book "Reconstruction" is an example of this. Read this book, you will have a deep understanding of the technical level of architecture design, but it should be noted that some modes in the book seem simple, but if it is truly realized, it takes a lot of effort, so listening " Refactoring to Patterns "The book and the recommendations of the reconstruction mode of this paper, only the design is only used as a model when needed.
DEALING WITH ROLES (MARTIN FOWLER) This is only a small piece of text. The focus of discussion is about the knowledge of role processing, but from the object-oriented basic knowledge, discuss how to do different design according to demand, and use actual Example, demonstrate how the design changes. This idea is very similar, and the architecture design is not able to exist independently of demand. It is recommended that people who are interested in object-oriented design or interested in software engineering can read this article. On the Martinfowler website (http://www.martinfowler.com) can find this article, subsequent, and other excellent works on the website, "DEALING WITH Properties" is one of them. I have written a book notes for "DEALING WITH ROLES", released on the point space (http://www.dotspace.twmail.net/patternscolumn/analysis patterns/rosemodelingnotes_s.htm), if you are interested, You can also guide one or two. The author of "framework process pattern" (James Carey, Brent Carlson) This book is a member of IBM, and they have design experiences for object-oriented operating systems and enterprise application frameworks, which are famous IBM Sanfrancisco frameworks. They organized the knowledge of the knowledge in the frame design as the form of process mode, and there was not much theory in the book, but the authors were reflected in the author's rich experience. When reading this book, you must keep in mind the characteristics of the frame design of the promotion, and then understand and apply these modes. Don't blindly apply the models introduced in the book to itself, this is my advice. The Chinese version of this book is translated by me and a friend, will not be available.
IBM Sanfrancisco framework, this is not a book, but a real product. According to market experience, IBM designs a corporate application framework to provide general components for enterprise application developers. From this product, you can fully understand how the mode is applied in a mature product. To understand the design idea of this product, the key is to understand its level division. The Sanfrancisco framework is divided into three levels: Foundation Layer, Common Business Objects Layer, Core Business Process Layer. Foundation Layer defines the basic class and class's use policies, such as factory classes to be responsible for all objects; Common Business Objects Layer defines some general objects in the company, such as company, accounts, customers, etc., and Core Business Process Layer definition The key business processes needed by enterprise applications, including accounting frameworks, receivables, order processing, and inventory management. These three levels can be reused, the higher the reuse value of the level. When understanding such a product, we have to have such ideas. For a large product, consistency is sometimes more worthy of value, for example, in terms of object creation, the product is uniformly used in factory model, and On the properties process, unified design of dynamic properties is used. Although in some places do not need to use these two design patterns, this mode must also be used in order to maintain design consistency. This may not be applicable for ordinary project development or small product development, but it is very important for large projects or products.
Applying Patterns (Frank Buschmann) This is an article describing how to apply design patterns in actual application. The article is short and delicate, summarizing the application of design patterns as several modes, no specific example is a regret. For people who are studying design patterns, spend some time to understand how others apply design models. Original links and traditional translations can be found on the point space. The architectural vision mode of this article refers to the content in this article. Martin Fowler, in fact, this book is no longer introduced, his value is that he can upgrade the daily outstanding practices of programmers to the theoretical stage, and provide guidance for more programmers. This is also a major reason why I have excellent organizational tissue in the above proposal Martin Fowler. Unfortunately, this book has not had Chinese translation, but this regret is coming soon, Waiting and transparency are being translated into this book, I believe it will be full of attention. http:// http://www.refactoring.com is the reconstruction site created by Martin Fowler, which will also be more related. Another aspect of the refactoring is that there is already a growing modeling tool to reconstruct one of the important features, which will undoubtedly save a lot of energy for programmers.
http:// http://www.AgileData.org (Scott W. Ambler) This is a website for the latest maintenance of Scott W. Ambler, which also represents a direction of the development of the Agile method - how to perform database items with agile postures Development. After reading the content of the site, you will learn how to do the development of the database project. Currently, this site is still updated under SCOTT W. AMBLER. Database design has always been an object-oriented camp that emphasizes a key point. The basic view is that the key is that the design is sufficiently standardized, and the database is not the main problem. However, in actual projects, databases, especially relational databases are often unable to ignore, including design, performance optimization, database connection management, and data manipulation languages. In addition, legacy databases, concurrency issues, security, relational data to object mapping, business logic processing, all need to consider when architecture design. There is no special chapter in this article to discuss the knowledge of the database, because the discussion of the database is preferably done in conjunction with specific databases. If you have a database in architecture design, you can refer to this website.
Designing for Scalability With Microsoft Windows DNA (STEN SUNDBLAD) is currently not having excellent books for discussing Microsoft System platform design, and this book is one of them. This book introduces questions that design a hierarchical architecture under the DNA system. Its core thinking is to avoid the object-oriented design of pure theory. For example, when the book is introduced in the field object, it is recommended to separate the read-only object and writable objects, so that only the read-only object does not require Com support, it is possible to improve efficiency, but this is a package that does not match object-oriented design. Idea. In addition, in order to be able to use object buffer pool technology, this book proposes not to include status data when designing business objects, which is also known for the basic ideas of data and behavior. From this book, we can understand the status of the real system design and classical orientation of object-oriented ideas.
Designing data layer components and delivering data between Angela Crocker, Andy Olsen, and Edward Jezierski. This is another article discussing Windows Systems Platform. Microsoft's products are suitable for small development, on the one hand and specific technologies, and on the other hand, it is also related to the design of the architecture. The Windows architecture is rapidly developed. Therefore, in some small projects, the development speed of Microsoft products is faster, but with the increase in the scale of the project, the problem of rapid development is gradually revealed. . Therefore, the main content of the article is how to optimize the structure. Its main idea is to lay a strategy for the system and implement the strategy of interlayer data transmission. These two points are key issues in which type of system is critical. In layered mode, we have also discussed the two problems. Compared with the Java system, the Window system has its own special side, and it can also play the effect of the stone of his mountain. EJB Design Patterns (FLOYD Marinescu) is divided into two parts. The first part focuses on how to apply mode language in a hierarchical system and design, data transmission (ie, the layers discussed in the previous paragraph, respectively. Transfer data), transaction and persistence, server and client interaction, primary key generation policies, etc. Discuss possible design patterns. The second part discusses the practice activities and processes in the EJB design process. Although all content of this article is designed for EJB, its idea can also be led to other systems. The book's e-book can be downloaded on the MiddleWare website.
About the Author:
Lin Xing, Chen Yun Software Studio Project Management Group Senior Project Manager, many years of project implementation experience. Chen Xun Software Studio is committed to the application of advanced software ideas, software technology applications, main research directions lies in software process ideas, Linux cluster technology, OO technology and software plant models. You can contact him by email IAMLINX@21cn.com.
"Full text"