Practical Software Development Techniques - Edward Crookshanks.pdf
(
7431 KB
)
Pobierz
For your convenience Apress has placed some of the front
matter material after the index. Please use the Bookmarks
and Contents at a Glance links to access them.
Contents at a Glance
About the Author ............................................................................
xiii
Acknowledgments ...........................................................................
xv
Introduction ...................................................................................
xvii
Chapter 1: Version Control..............................................................
1
Chapter 2: Unit Testing and Test Driven Development ..................
31
Chapter 3: Refactoring .................................................................
49
Chapter 4: Build Tools and Continuous Integration ......................
65
Chapter 5: Debugging ...................................................................
79
Chapter 6: Development Methodologies and SDLC .......................
91
Chapter 7: Design Patterns and Architecture .............................
101
Chapter 8: Software Requirements ............................................
123
Chapter 9: Just Enough SQL .......................................................
137
Appendix A: Enterprise Considerations and Other Topics ..........
163
Appendix B: Discussion Questions .............................................
171
Appendix C: Database Details .....................................................
179
Appendix D: Bibliography ...........................................................
183
Index ..............................................................................................
185
v
Introduction
Purpose
The
purpose of this book is to discuss and provide additional resources for topics and
technologies that current university curriculums may leave out. Some programs or
professors may touch on some of these topics as part of a class, but individually they
are mostly not worthy of a dedicated class, and collectively they encompass some of the
tools and practices that should be used throughout a software developer’s career.
Use of these tools and topics is not mandatory, but applying them will give the student a
better understanding of the practical side of software development.
In addition, several of these tools and topics are the ‘extra’ goodies that employers
look for experience working with or having a basic understanding of. In discussions with
industry hiring managers and technology recruiters, the author has been told repeatedly
that fresh college graduates, while having the theoretical knowledge to be hired, are
often lacking in more practical areas such as version control systems, unit testing skills,
debugging techniques, interpreting business requirements, and others.
This
is not to
slight or degrade institutional instruction, only to point out that there are tools and
techniques that are part of enterprise software development that don’t
fit
well within
the confines of an educational environment. Knowledge of these can give the reader an
advantage over those who are unfamiliar with them.
This
guide will discuss those topics and more in an attempt to
fill
in the practical
gaps. In some cases the topics are code-heavy, in other cases the discussion is largely
a survey of methods or a discussion of theory. Students who have followed this guide
should have the means to talk intelligently on these topics and this will hopefully
translate to an advantage in the area of job hunting. While it would be impossible to
cover all tools and technologies, the ones covered in this guide are a good representative
sample of what is used in the industry today. Beyond the theoretical aspects of computer
science are the practical aspects of the actual implementation; it is this realm that this
book attempts to de-mystify.
In short, it is hoped that this companion guide will help graduates overcome the
“lack of practical experience” issue by becoming more familiar with industry standard
practices and common tools.
This
volume we cannot create experts but it can at least
provide enough cursory knowledge such that the reader can discuss the basics of each
topic during an interview. With a little practice and exploration on their own, the student
should realize that supplementing an excellent theoretical education with practical
techniques will hopefully prove useful not only in writing better software while in school,
but also translate to an advantage when out of school and searching for a job.
xvii
INTRODUCTION
Overview of Topics
The
following topics and tools are discussed:
Version control
Unit Testing and Test Driven Development
Refactoring
Build tools, automated build engineering, and continuous
integration
Debugging
Comparison of development methodologies
Design patterns and architecture
Requirements
Basic SQL statements and data frameworks
Prerequisites
It is assumed the reader is already familiar with many facets of languages and tools.
The
typical student would have used Java, .NET, C++, or some other high-level language
for course assignments in a typical computer science or software curriculum and is
probably at the sophomore, junior, or senior level.
The
reader should also be familiar with
the differences between console applications, GUI applications, and service/daemon
applications.
The
nuances of procedural, object-oriented, and event-driven program
should be known at a high-level if not better.
The
examples will be kept as simple as
possible where needed because the intent is not to teach CS topics and object-oriented
design, but how to use these particular tools and concepts to assist in implementing the
problem at hand.
Disclaimer
The
tools and techniques discussed in this guide are not the only ones on the market.
If a particular tool is mentioned in this guide it does not mean that it is the only tool for
the job, is endorsed in any way by the author or publisher, or is superior in any way to any
of its competitors. Nor does mention of any tool in this publication insinuate in any way
that the tool owners or resellers support or endorse this work.
Java and Java-based trademarks are the property of Sun Microsystems.
Visual Studio® is a registered product of Microsoft and all other Microsoft product
trademarks, registered products, symbols, logos, and other intellectual property is listed at
Eclipse
™
is property of the Eclipse Foundation. All other trademarks, registered
trademarks, logos, patents, and registered names are the property of their respective
http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx
xviii
Plik z chomika:
jonedave3
Inne pliki z tego folderu:
Paula Deen Celebrates! - Paula Deen.epub
(14603 KB)
Pacific Northwests Best Trips 3.epub
(92587 KB)
P. G. Bell - The Train to Impossible Places.epub
(19719 KB)
P. R. Halmos - A Hilbert Space Problem Book (1974) [978-1-4615-9976-0].pdf
(26003 KB)
P Finnigan - Oracle Incident Response and Forensics.pdf
(2399 KB)
Inne foldery tego chomika:
@other-lang
@packed
0
1
2-1
Zgłoś jeśli
naruszono regulamin