IT technology Q & A Top 40 list of top 40 titles of "programmer must-read" quoted most frequently in questions & answers with over 40 million community "Stack Overflow"
Q & A site for programmers "Stack OverflowAnalyzing more than 40 million questions and answers in (Stack Overflow) ", books frequently cited in the question, that is," books most trusted by programmers "are listed on the following site It is published in ranking format with.
Top listed books on stackoverflow.com
So, the top 10 books quoted most frequently among the questions and answers in the stack overflow are as follows.
◆ 01:Legacy Code Improvement Guide (Object Oriented SELECTION): 309 citations
Have you written legacy code in Java or .net?
This document will explain analysis methods and countermeasures for codes that are prone to system maintenance and that are complicated in structure and can not be understood. In other words, it introduces techniques that you can understand and test the code, enable refactoring, and add functionality. Legacy code is not the mainframe application, it refers to code that is difficult to change. In this book, the author says, "For me, code without test is a legacy code." "If you have a test code you can quickly change and confirm, even if you change behavior, if you do not have a test code, change the behavior I can not judge whether it is correct or bad. "" Is the source code clean and good structure enough? That is not the case. If you make a big fix without a test code, you can not believe it incredibly It is necessary to have a clear understanding and skill. " Although this document describes samples in Java, C, C ++, the described techniques are not language-dependent and can be used in other languages (Delphi, Visual Basic, COBOL, FORTRAN).
◆ 02:Design pattern for reuse in object oriented: Number of citations 277 times
Design pattern for reuse in object oriented
Bring the idea of architecture
Object oriented was born as a method of software development, but it is also spreading to other fields. One of the things to notice as one of them is the appearance of "design pattern".
The design pattern is a collection of catalogs to be used for object-oriented and software design. For example, if an experienced programmer finds that the previously solved problem is similar to the problem you are about to solve newly, you can apply the previously used solution. Design pattern can be thought of as a crowd of generalized (patterned) so that anyone can reuse such a solution.
This way of thinking and implementation method became famous in this book which is commonly referred to as GoF (Gang of Four: 4 people book). The GoF book is strongly influenced by the catalog collection of urban plan summarized by architect Christopher Alexander "The way of construction beyond time" (Kashima publishing association). This point is very interesting. It is because it shows that the structure can be patterned like the architectural studies in the software world with the object oriented introduction.
Using object-oriented principles and design patterns
In fact, what kind of judgment should be made when writing one line of one code,
It is a good book to learn skills that can also be called craftsmanship.
Object-oriented principles (SRP, OCP, etc.) and design patterns
We assume knowledge to a certain extent.
As the author wrote, "The Mystery of Agile Software Development"
It is good to think as a sequel to.
From the author's experience, to write code easy to understand, maintain and expand
Know-how is explained one by one while refactoring the code,
It will be very helpful.
The good point of this book is that while learning the idea based on the abundant experience of the author,
To be agreed, opposed, thoughtfully thought ,,,
It is to repeat that to polish the philosophy on the quality of the code.
To be honest, the chord will swell up as you proceed and the difficulty will also increase, so it's tough.
But believing and reading will be great.
That point is the same as "the mystery of Agile software development" above.
I will list some of the impressive remarks.
· The function is to perform some processing or return some response
You should do either and not do both.
· Programmers basically do not have the ability to maintain comments.
Because comments are lying after a long time, rather than spending time on comments
Let's spend some time writing descriptive code.
· Keep the first rule of the function small. The second rule is to make it even smaller.
There should be few functions with more than 20 lines.
◆ 04:Java concurrent programming - exploring its "foundation" and "latest API" -: Citations of 201 times
"In order not to fail with multithreading"Review will be helpful.
I had been doing server side for a while, but asynchronous processing was left to the container, there was hardly anything bothering me with multithreading. Recently, I have made some ordinary client programs, but I have to do some processing such as "execute multiple tasks at the same time and wait until I get all the results", "execute in the background and display the process on GUI parts" I had a pretty bone in my body. After that I came across this book, I felt it was good to have read earlier.
From the point of caution in multithreaded programs, it is a must-see person who writes multithreaded programs to how to use the Concurrent API. In addition, since this book may be somewhat difficult, beginners may be able to read from "Introduction to design patterns learned in Java language" (also recommended here) etc.
In the software development community, it is widely acknowledged that domain modeling is the center of software design. Through the domain model, software developers can express abundant functions and move them to implementation of software that truly responds to user requests. However, despite its obvious importance, few practical resources exist to explain how effective domain modeling can be incorporated into the software development process. Domain-driven design meets this requirement. This is not a book on concrete technology, it presents a reader a systematic approach to domain driven design. It is an introduction to the basic set of best practices of design, experience-based techniques, and basic principles that facilitate development in software projects facing complex domains.
◆ 07:Enterprise application architecture pattern: 173 citations
Common failures often arise in enterprise application development, as engineers who experience object development do development without understanding the architecture. This document shows a direct response to the annoying challenges facing enterprise application developers. Even though technologies change (from Smalltalk to Java, .NET, CORBA), you can apply the same fundamental design concept to solve common problems. This book introduces over 40 patterns. These are solutions applicable to enterprise application platforms. The first half is a short tutorial on developing enterprise applications. In the second half, each pattern is explained in detail. Each pattern details code examples in Java or C #, and explains usage and implementation. We also illustrate concepts with rich UML diagrams.
However, customer reviews include "No matter how difficult English you should get original document"It is a star with a translation, but the original work is a five-star without complaint."There is a difficulty in translation, but the splendor of the original document seems to be a seal.
◆ 08:Code Complete 2nd Edition Aiming for complete programming: 154 citations
This book is a hands-on programming manual that gathers knowledge about effective construction practices. Software development practice has made remarkable progress, but it is hard to spread to general programmers. This book will bridge the knowledge of industry leaders and general commercial practices. The concept is the same as the first edition 10 years ago, but the second edition reflects object-oriented thinking throughout. In addition, the chapter "Refactoring" has been added, and the sample code has been updated to C ++, C #, Java, Visual Basic etc. This book is an experienced programmer seeking a comprehensive guide to software development, a technical leader who educates inexperienced programmers, a self-taught programmer who has never received formal training, a student who goes to society or a new programmer Especially targeted. The research results and past experiences described in this book will help you to create high-quality software, minimize problems and work in less time. It also helps you to control large projects and properly maintain and correct software in response to changes in requirements.
The e-book version is 10,800 yen, the paperbook version isUp·underIt is divided into volumes, each is 6588 yen.
◆ 09:New version refactoring - Improve existing code safely - (OBJECT TECHNOLOGY SERIES): Number of citations 148 times
A new version is sold in Japan, "A Java programmer who has not read the old version is a must read. We recommend you to use it as a theme for reading and reading in the development team.It is recommended as there is a review called "It is recommended."
The basic contents are almost the same as "refactoring - program improvement technique"
A polite review by the original translator is also reflected in the new version.
I have not finished reading all yet ...
(Although it is not reading while keeping strict comparison with the old version, ...)
Since the old version is no longer on sale, it seems that a new version was released with the idea of purchasing for many people.
The main feature of the new version is the Appendix "Changes in the environment surrounding refactoring with Java version upgrade".
There is description of progress of Java and its testing framework since the old edition publication.
The target Java is up to seven.
After describing the progress of Java and its testing framework, reflecting its progress,
We refactor the code contained in this book. Actually, generics etc. are handled.
I think this part is the most noteworthy part of the new edition version.
I am dissatisfied about the fact that this book is not fully compatible with Java 7
From now on, Oracle seems to focus on strengthening the language specification of Java unlike before
Although it has already undergone considerable changes in Java 8, we believe that refinement of the appendix is sufficient for the new version.
A design pattern edition of the popular Head First series that explains gently and comfortably using illustrations and photographs for those who learn for the first time, those who have experienced frustration in the past, or those who want to solidify knowledge. You can go forward without getting tired of exciting layout, brilliant parables that knock your knees on occasion, small talk entrained, fun quizzes and puzzles. It is an epoch-making book of ecology from the eyes that understands the concept of complicated and difficult design patterns in an interesting way.
in Note, Posted by logu_ii