Books - No Fluff Just Stuff

NFJS Bookstore

  • Groovy brings you the best of both worlds: a flexible, highly productive, agile, dynamic language that runs on the rich framework of the Java Platform. Groovy preserves the Java semantics and extends the JDK to give you true dynamic language capabilities. Programming Groovy 2 will help you, the experienced Java developer, learn and take advantage of the latest version of this rich dynamic language. You'll go from the basics of Groovy to the latest advances in the language, including options for type checking, tail-call and memoization optimizations, compile time metaprogramming, and fluent interfaces to create DSLs.

    You don't have to leave the rich Java Platform to take advantage of Groovy. Groovy preserves Java's semantics and extends the JDK, so programming in Groovy feels like the Java language has been augmented; it's like working with a lighter, more elegant Java. If you're an experienced Java developer who wants to learn how Groovy works, you'll find exactly what you need in this book.

    You'll start with the fundamentals of programming in Groovy and how it works with Java, and then you'll explore advanced concepts such as unit testing with mock objects, using Builders, working with databases and XML, and creating DSLs. You'll master Groovy's powerful yet complex run-time and compile-time metaprogramming features.

    Much has evolved in the Groovy language since the publication of the first edition of Programming Groovy. Programming Groovy 2 will help you learn and apply Groovy's new features. Creating DSLs is easier now, and Groovy's already-powerful metaprogramming facilities have improved even more. You'll see how to work with closures, including tail call optimization and memoization. The book also covers Groovy's new static compilation feature.

    Whether you're learning the basics of the language or interested in getting proficient with the new features, Programming Groovy 2 has you covered.

    What You Need

    To work on the examples in the book you need Groovy 2.0.5 and Java JDK 5 or higher.

Making Java Groovy

by Ken Kousen

  • Summary

    Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day-to-day work with Java. It starts by introducing the key differences between Java and Groovy—and how you can use them to your advantage. Then, it guides you step-by-step through realistic development challenges, from web applications to web services to desktop applications, and shows how Groovy makes them easier to put into production.

    About this Book

    You don't need the full force of Java when you're writing a build script, a simple system utility, or a lightweight web app—but that's where Groovy shines brightest. This elegant JVM-based dynamic language extends and simplifies Java so you can concentrate on the task at hand instead of managing minute details and unnecessary complexity.

    Making Java Groov is a practical guide for developers who want to benefit from Groovy in their work with Java. It starts by introducing the key differences between Java and Groovy and how to use them to your advantage. Then, you'll focus on the situations you face every day, like consuming and creating RESTful web services, working with databases, and using the Spring framework. You'll also explore the great Groovy tools for build processes, testing, and deployment and learn how to write Groovy-based domain-specific languages that simplify Java development.

    Written for developers familiar with Java. No Groovy experience required.

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

    What's Inside

    • Easier Java
    • Closures, builders, and metaprogramming
    • Gradle for builds, Spock for testing
    • Groovy frameworks like Grails and Griffon

    About the Author

    Ken Kousen is an independent consultant and trainer specializing in Spring, Hibernate, Groovy, and Grails.

    Table of Contents

      PART 1: UP TO SPEED WITH GROOVY
    1. Why add Groovy to Java?
    2. Groovy by example
    3. Code-level integration
    4. Using Groovy features in Java
    5. PART 2: GROOVY TOOLS
    6. Build processes
    7. Testing Groovy and Java projects
    8. PART 3: GROOVY IN THE REAL WORLD
    9. The Spring framework
    10. Database access
    11. RESTful web services
    12. Building and testing web applications

Grails 2: A Quick-Start Guide

by Dave Klein and Ben Klein

  • Grails is a full-stack web development framework that enables you to build complete web applications in a fraction of the time and with less code than other frameworks. Grails uses the principle of convention over configuration and the dynamic Groovy programming language.

    This revised and updated new edition shows you how to use Grails by iteratively building a unique, working application. By the time you're done, you'll have built and deployed a real, functioning website. Using this hands-on, pragmatic approach, you'll explore topics such as Ajax in Grails, custom tags, and plugins. You'll dig into Grails' powerful view technology, Groovy Server Pages, and see how you can easily leverage the help offered by scaffolding to create custom user interfaces faster than you would have thought possible. Along the way, you'll learn about domain classes, controllers, and GSP views. And you'll see how Grails enables you to use powerful frameworks such as Spring and Hibernate.

    With Grails, you can get a lot done with little effort. With this book, you'll get a lot done as well. Get started with Grails today.

    What You Need:

    Grails 2 will run on any machine that supports Java. Grails applications can be deployed on any Java Servlet container, including Tomcat, Jetty, WebLogic, JBoss, and Websphere.

  • Virtualizing and Tuning Large-Scale Java Platforms

     

    Technical best practices and real-world tips for optimizing enterprise Java applications on VMware vSphere®

     

    Enterprises no longer ask, “Can Java be virtualized”? Today, they ask, “Just how large can we scale virtualized Java application platforms, and just how efficiently can we tune them?” Now, the leading expert on Java virtualization answers these questions, offering detailed technical information you can apply in any production or QA/test environment.

     

    Emad Benjamin has spent nine years virtualizing VMware’s own enterprise Java applications and working with nearly 300 leading VMware customers on projects of all types and sizes—from 100 JVMs to 10,000+, with heaps from 1GB to 360GB, and including massive big-data applications built on clustered JVMs. Reflecting all this experience, he shows you how to successfully size and tune any Java workload.

     

    This reference and performance “cookbook” identifies high-value optimization opportunities that apply to physical environments, virtual environments, or both. You learn how to rationalize and scale existing Java infrastructure, modernize architecture for new applications, and systematically benchmark and improve every aspect of virtualized Java performance. Throughout, Benjamin offers real performance studies, specific advice, and “from-the-trenches” insights into monitoring and troubleshooting.

     

    Coverage includes

    --Performance issues associated with large-scale Java platforms, including consolidation, elasticity, and flexibility

    --Technical considerations arising from theoretical and practical limits of Java platforms

    --Building horizontal in-memory databases with VMware vFabric SQLFire to improve scalability and response times

    --Tuning large-scale Java using throughput/parallel GC and Concurrent Mark and Sweep (CMS) techniques

    --Designing and sizing a new virtualized Java environment

    --Designing and sizing new large-scale Java platforms when migrating from physical to virtualized deployments

    --Designing and sizing large-scale Java platforms for latency-sensitive in-memory databases

    --Real-world performance studies: SQLFire vs. RDBMS, Spring-based Java web apps, vFabric SpringTrader, application tiers, data tiers, and more

    --Performance differences between ESXi3, 4.1, and 5

    --Best-practice considerations for each type of workload: architecture, performance, design, sizing, and high availability

    --Identifying bottlenecks in the load balancer, web server, Java application server, or DB Server tiers

    --Advanced vSphere Java performance troubleshooting with esxtop

    --Performance FAQs: answers to specific questions enterprise customers have asked

     

     

Manage Your Job Search

by Johanna Rothman

  • Are you a technical person, such as a software developer, tester, writer, or project manager? You know that a job search is tough. You have to network, online and in person. You have to customize your resume for each job, so you can showcase your talent. You have to look for a culture that fits you. How do you start?



    Treat your job hunt like the project it is. Use agile and lean project management approaches that allow you to create a visual system.



    You’ll increase your productivity, track your progress, evaluate your work, gain feedback, and throw out what doesn’t work while building on your successes. Learn from your past career to optimize for your next step. Full of tips, stories, and humor, you’ll apply practical techniques to take control of the most important project you’ll ever work on: find your next best job.

  • Intermediate level, for programmers fairly familiar with Java, but new to the functional style of programming and lambda expressions.

    Get ready to program in a whole new way. Functional Programming in Java will help you quickly get on top of the new, essential Java 8 language features and the functional style that will change and improve your code. This short, targeted book will help you make the paradigm shift from the old imperative way to a less error-prone, more elegant, and concise coding style that's also a breeze to parallelize. You'll explore the syntax and semantics of lambda expressions, method and constructor references, and functional interfaces. You'll design and write applications better using the new standards in Java 8 and the JDK.

    Lambda expressions are lightweight, highly concise anonymous methods backed by functional interfaces in Java 8. You can use them to leap forward into a whole new world of programming in Java. With functional programming capabilities, which have been around for decades in other languages, you can now write elegant, concise, less error-prone code using standard Java. This book will guide you though the paradigm change, offer the essential details about the new features, and show you how to transition from your old way of coding to an improved style.

    In this book you'll see popular design patterns, such as decorator, builder, and strategy, come to life to solve common design problems, but with little ceremony and effort. With these new capabilities in hand, Functional Programming in Java will help you pick up techniques to implement designs that were beyond easy reach in earlier versions of Java. You'll see how you can reap the benefits of tail call optimization, memoization, and effortless parallelization techniques.

    Java 8 will change the way you write applications. If you're eager to take advantage of the new features in the language, this is the book for you.

    What you need:

    Java 8 with support for lambda expressions and the JDK is required to make use of the concepts and the examples in this book.

Hiring Geeks That Fit

by Johanna Rothman

  • Hiring a person for your team is the single most important decision you can make. It has long-lasting impact, whether you are the manager or a team member. Would you like to learn to hire great people? Not surehow? You need this book.


    Great geeks are not the same as skill-based staff. You need to analyze your culture, determine your problems, define the essentials you need in a candidate, and then you're off and running.


    Great geeks adapt their knowledge to your context. One developer or technical manager is not interchangeable with another. Hiring Geeks That Fit takes the guesswork and cost out of hiring.

Gradle in Action

by Benjamin Muschko

  • Summary

    Gradle in Action is a comprehensive guide to end-to-end project automation with Gradle. Starting with the basics, this practical, easy-to-read book discusses how to build a full-fledged, real-world project. Along the way, it touches on advanced topics like testing, continuous integration, and monitoring code quality. You'll also explore tasks like setting up your target environment and deploying your software.

    About the Technology

    Gradle is a general-purpose build automation tool. It extends the usage patterns established by its forerunners, Ant and Maven, and allows builds that are expressive, maintainable, and easy to understand. Using a flexible Groovy-based DSL, Gradle provides declarative and extendable language elements that let you model your project's needs the way you want.

    About the Book

    Gradle in Action is a comprehensive guide to end-to-end project automation with Gradle. Starting with the basics, this practical, easy-to-read book discusses how to establish an effective build process for a full-fledged, real-world project. Along the way, it covers advanced topics like testing, continuous integration, and monitoring code quality. You'll also explore tasks like setting up your target environment and deploying your software.

    The book assumes a basic background in Java, but no knowledge of Groovy.

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

    Whats Inside

    • A comprehensive guide to Gradle
    • Practical, real-world examples
    • Transitioning from Ant and Maven
    • In-depth plugin development
    • Continuous delivery with Gradle

    About the Author

    Benjamin Muschko is a member of the Gradleware engineering team and the author of several popular Gradle plugins.

    Table of Contents

      PART 1 INTRODUCING GRADLE
    1. Introduction to project automation
    2. Next-generation builds with Gradle
    3. Building a Gradle project by example
    4. PART 2 MASTERING THE FUNDAMENTALS
    5. Build script essentials
    6. Dependency management
    7. Multiproject builds
    8. Testing with Gradle
    9. Extending Gradle
    10. Integration and migration
    11. PART 3 FROM BUILD TO DEPLOYMENT
    12. IDE support and tooling
    13. Building polyglot projects
    14. Code quality management and monitoring
    15. Continuous integration
    16. Artifact assembly and publishing
    17. Infrastructure provisioning and deployment

EJB 3 in Action

by Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan

  • Summary

    Building on the bestselling first edition, EJB 3 in Action, Second Edition tackles EJB 3.2 head-on, through numerous code samples, real-life scenarios, and illustrations. This book is a fast-paced tutorial for Java EE 6 business component development using EJB 3.2, JPA 2, and CDI. Besides covering the basics of EJB 3.2, this book includes in-depth EJB 3.2 internal implementation details, best practices, design patterns, and performance tuning tips.

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

    About the Book

    The EJB 3 framework provides a standard way to capture business logic in manageable server-side modules, making it easier to write, maintain, and extend Java EE applications. EJB 3.2 provides more enhancements and intelligent defaults and integrates more fully with other Java technologies, such as CDI, to make development even easier.

    EJB 3 in Action, Second Edition is a fast-paced tutorial for Java EE business component developers using EJB 3.2, JPA, and CDI. It tackles EJB head-on through numerous code samples, real-life scenarios, and illustrations. Beyond the basics, this book includes internal implementation details, best practices, design patterns, performance tuning tips, and various means of access including Web Services, REST Services, and WebSockets.

    Readers need to know Java. No prior experience with EJB or Java EE is assumed.

    What's Inside

    • Fully revised for EJB 3.2
    • POJO persistence with JPA 2.1
    • Dependency injection and bean management with CDI 1.1
    • Interactive application with WebSocket 1.0

    About the Authors

    Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan are seasoned Java architects, developers, authors, and community leaders. Debu and Reza coauthored the first edition of EJB 3 in Action.

    Table of Contents

      PART 1 OVERVIEW OF THE EJB LANDSCAPE
    1. What's what in EJB 3
    2. A first taste of EJB
    3. PART 2 WORKING WITH EJB COMPONENTS
    4. Building business logic with session beans
    5. Messaging and developing MDBs
    6. EJB runtime context, dependency injection, and crosscutting logic
    7. Transactions and security
    8. Scheduling and timers
    9. Exposing EJBs as web services
    10. PART 3 USING EJB WITH JPA AND CDI
    11. JPA entities
    12. Managing entities
    13. JPQL
    14. Using CDI with EJB 3
    15. PART 4 PUTTING EJB INTO ACTION
    16. Packaging EJB 3 applications
    17. Using WebSockets with EJB 3
    18. Testing and EJB

Getting Started with OpenShift

by Steve Pousty and Katie Miller

  • Intrigued by the possibilities of developing web applications in the cloud? With this concise book, you get a quick hands-on introduction to OpenShift, the open source Platform as a Service (PaaS) offering from Red Hat. You’ll learn the steps necessary to build, deploy, and host a complete real-world application on OpenShift, without having to read long, detailed explanations of the technologies involved.

    Though the book uses Python, application examples in other languages are available on GitHub. If you can build web applications, use a command line, and program in Java, Python, Ruby, Node.js, PHP, or Perl, you’re ready to get started.

    • Dive in and create your first example application with OpenShift
    • Modify the example with your own code and hot-deploy the changes
    • Add components such as a database, task scheduling, and monitoring
    • Use external libraries and dependencies in your application
    • Delve into networking, persistent storage, and backup options
    • Explore ways to adapt your team processes to use OpenShift
    • Learn OpenShift terms, technologies, and commands
    • Get a list of resources to learn more about OpenShift and PaaS

Enterprise Web Development: Building HTML5 Applications: From Desktop to Mobile

by Yakov Fain, Victor Rasputnis, Anatole Tartakovsky, and Viktor Gamov

  • If you want to build your organization’s next web application with HTML5, this practical book will help you sort through the various frameworks, libraries, and development options that populate this stack. You’ll learn several of these approaches hands-on by writing multiple versions of a sample web app throughout the book, so you can determine the right strategy for your enterprise.

    What’s the best way to reach both mobile and desktop users? How about modularization, security, and test-driven development? With lots of working code samples, this book will help web application developers and software architects navigate the growing number of HTML5 and JavaScript choices available. The book’s sample apps are available at http://savesickchild.org.

    • Mock up the book’s working app with HTML, JavaScript, and CSS
    • Rebuild the sample app, first with jQuery and then Ext JS
    • Work with different build tools, code generators, and package managers
    • Build a modularized version of the app with RequireJS
    • Apply test-driven development with the Jasmine framework
    • Use WebSocket to build an online auction for the app
    • Adapt the app for both PCs and mobile with responsive web design
    • Create mobile versions with jQuery Mobile, Sencha Touch, and PhoneGap
  • Master The Crucial Technical Skills Every Software Architect Needs!

     

    To succeed as a software architect, you must master both technical skills and soft skills. Dave Hendricksen illuminated the soft skills in his highly-regarded 12 Essential Skills for Software Architects. Now, in 12 More Essential Skills for Software Architects he turns to the technical side.

     

    Drawing on his decades of experience, Hendricksen organizes technical skills into three areas.

     

    PROJECT SKILLS: driving projects from ideation through delivery
    TECHNOLOGY SKILLS: building, buying, and/or leveraging the right technologies
    VISIONARY SKILLS: realizing an architectural vision that improves long-term competitiveness

     

    He helps you develop and sharpen these key technical skills: from conceptualizing solutions to developing platforms and governance, and from selecting technology innovations to infusing architectures with an entrepreneurial spirit.

     

    This guide reveals the technical skills you need and provides a coherent framework and practical methodology for mastering them.

     

    Taken together, Hendricksen’s two books offer the most complete, practical pathway to excellence in software architecture. They’ll guide you through every step of your architecture career—from getting the right position to thriving once you have it.

     

    Essential Architect Skills

     

    Visionary Skills
    Entrepreneurial Execution
    Technology Innovation
    Strategic Roadmapping

     

    Technology Skills
    Governance
    Platform Development
    Know-how
    Architectural Perspective

     

    Project Skills
    Estimation
    Partnership
    Discovery
    Management
    Conceptualization

     

    Dave Hendricksen is a big data architect for Thomson Reuters, where he works closely with the firm’s new product development teams to create innovative legal products for large-scale online platforms such as Westlaw.com. Hendricksen presented “Designing and Building Large-Scale Systems in an Agile World” at Carnegie Mellon University’s influential Software Engineering Institute. 

  • Groovy in Action: Covers Groovy 2.4- Wiley India-Dierk Konig and Paul King-2015-EDN-2
  • Quick and painless Java programming with expert multimedia instruction

    Java Programming 24-Hour Trainer, 2nd Edition is your complete beginner's guide to the Java programming language, with easy-to-follow lessons and supplemental exercises that help you get up and running quickly. Step-by-step instruction walks you through the basics of object-oriented programming, syntax, interfaces, and more, before building upon your skills to develop games, web apps, networks, and automations. This second edition has been updated to align with Java SE 8 and Java EE 7, and includes new information on GUI basics, lambda expressions, streaming API, WebSockets, and Gradle. Even if you have no programming experience at all, the more than six hours of Java programming screencasts will demonstrate major concepts and procedures in a way that facilitates learning and promotes a better understanding of the development process.

    This is your quick and painless guide to mastering Java, whether you're starting from scratch or just looking to expand your skill set.

    • Master the building blocks that go into any Java project
    • Make writing code easier with the Eclipse tools
    • Learn to connect Java applications to databases
    • Design and build graphical user interfaces and web applications
    • Learn to develop GUIs with JavaFX

    If you want to start programming quickly, Java Programming 24-Hour Trainer, 2nd Edition is your ideal solution.

  • You’d like to estimate your project’s cost or schedule accurately. So far, none of your approaches have worked. It’s time to consider how you can create an accurate estimate. You might not be able to develop an estimate at the beginning of a project that is good until the end. Few project teams can. Instead, learn a number of ways to see your project and how to address your uncertainties in ways your managers will accept.
  • Our industry is moving toward functional programming, but your object-oriented experience is still valuable. Scala combines the power of OO and functional programming, and Pragmatic Scala shows you how to work effectively with both. Updated to Scala 2.11, with in-depth coverage of new features such as Akka actors, parallel collections, and tail call optimization, this book will show you how to create stellar applications.

    This thorough introduction to Scala will get you coding in this powerful language right away. You'll start from the familiar ground of Java and, with easy-to-follow examples, you'll learn how to create highly concise and expressive applications with Scala. You'll find out when and how to mix both imperative and functional style, and how to use parallel collections and Akka actors to create high-performance concurrent applications that effectively use multicore processors.

    Scala has evolved since the first edition of this book, and Pragmatic Scala is a significant update. We've revised each chapter, and added three new chapters and six new sections to explore the new features in Scala. You'll learn how to:

    Safely manage concurrency with parallel collections and Akka actors

    Create expressive readable code with value classes and improved implicit conversions

    Create strings from data with no sweat using string interpolation

    Create domain-specific languages

    * Optimize your recursions with tail call optimization

    Whether you're interested in creating concise, robust single-threaded applications or highly expressive, thread-safe concurrent programs, this book has you covered.

    What You Need:

    The Scala compiler (2.x) and the JDK are required to make use of the concepts and the examples in this book.

  • Using the Android Studio IDE and the Gradle build tool will make Android app development much simpler—as long as you know your way around Gradle. This practical guide shows you how Gradle works with Android so that you can use it effectively on your projects. You’ll learn ways to customize project layouts, add dependencies, and even generate multiple different versions of your application.

    • Use Gradle independently and from with the new preferred IDE, Android Studio
    • Integrate tests into standard Android project builds
    • Easily customize builds to add popular third-party libraries as dependencies
    • Generate artifacts with various properties, like debug or release, and different flavors, like paid or free
  • If you’re trying to use agile and lean at the program level, you’ve heard of several approaches, all about scaling processes. If you duplicate what one team does for several teams, you get bloat, not delivery. Instead of scaling the process, scale everyone's collaboration.

    With autonomy, collaboration, and exploration, teams and program level people can decide how to apply agile and lean to their work.

    Learn to collaborate around deliverables, not meetings. Learn which measurements to use and how to use those measures to help people deliver more of what you want (value) and less of what you don’t want (work in progress). Create an environment of servant leadership and small-world networks. Learn to enable autonomy, collaboration, and exploration across the organization and deliver your product.

    Scale collaboration with agile and lean program management and deliver your product.
  • Does your organization value and rank projects based on estimation? Except for the shortest projects, estimation is often wrong. You don’t realize the value you planned when you wanted. How can you finish projects in time to realize their potential value? Instead of estimation, consider using cost of delay to evaluate and rank projects. Cost of delay accounts for ways projects get stuck: multitasking, other projects not releasing on time, work queuing behind experts, excessive attention to code cleanliness, and management indecision to name several. Once you know about cost of delay, you can decide what to do about it. You can stop the multitasking. You can eliminate the need for experts. You can reduce the number of projects and features in progress. You can use cost of delay to rank projects and work in your organization. Learn to use cost of delay to make better decisions for your project, program, or project portfolio.
  • You have too many projects, and firefighting and multitasking are keeping you from finishing any of them. You need to manage your project portfolio. This fully updated and expanded bestseller arms you with agile and lean ways to collect all your work and decide which projects you should do first, second, and never. See how to tie your work to your organization's mission and show your managers, your board, and your staff what you can accomplish and when. Picture the work you have, and make those difficult decisions, ensuring that all your strength is focused where it needs to be.

    All your projects and programs make up your portfolio. But how much time do you actually spend on your projects, and how much time do you spend on emergency fire drills or waste through multitasking? This book gives you insightful ways to rank all the projects you're working on and figure out the right staffing and schedule so projects get finished faster.

    The trick is adopting lean and agile approaches to projects, whether they're software projects, projects that include hardware, or projects that depend on chunks of functionality from other suppliers. Find out how to define the mission of your team, group, or department, with none of the buzzwords that normally accompany a mission statement. Armed with the work and the mission, you'll manage your portfolio better and make those decisions that define the true leaders in the organization.

    With this expanded second edition, discover how to scale project portfolio management from one team to the entire enterprise, and integrate Cost of Delay when ranking projects. Additional Kanban views provide even more ways to visualize your portfolio.

Angular 2 Development with TypeScript

by Yakov Fain and Anton Moiseev

  • Angular 2 is a JavaScript-based development platform for building dynamic, interactive web applications, SPAs, and mobile apps. Angular applications can be built with JavaScript or TypeScript. TypeScript offers great IDE support and the TypeScript compiler helps coders quickly find and fix errors. TypeScript feels familiar, much like using ES6 with the same standard and third-party libraries, idioms, and tools. TypeScript supports classes, modules, annotations, and lazy loading and minimizes the amount of code for supporting the framework's life cycle, letting developers focus on writing the application code.

    Angular 2 Development with Typescript teaches the reader Angular 2, while it also teaches TypeScript and how to take advantage of its benefits. This hands-on book begins with an overview of Angular 2 architecture and an introduction to the online auction application that will be developed throughout the book. It teaches TypeScript and how to write classes, interfaces, and generics, as well as how to transpile TypeScript code into today's JavaScript that can be deployed in all Web browsers. More topics include data and views, user interaction with forms, and communicating with servers. Finally, the book shows how to test and deploy Angular 2 applications.

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

  • Debunk the myth that JavaScript is not easily testable. Whether you use Node.js, Express, MongoDB, jQuery, AngularJS, or directly manipulate the DOM, you can test-drive JavaScript. Learn the craft of writing meaningful, deterministic automated tests with Karma, Mocha, and Chai. Test asynchronous JavaScript, decouple and properly mock out dependencies, measure code coverage, and create lightweight modular designs of both server-side and client-side code. Your investment in writing tests will pay high dividends as you create code that's predictable and cost-effective to change.

    Design and code JavaScript applications with automated tests. Writing meaningful tests is a skill that takes learning, some unlearning, and a lot of practice, and with this book, you'll hone that skill. Fire up the editor and get hands-on through practical exercises for effective automated testing and designing maintainable, modular code.

    Start by learning when and why to do manual testing vs. automated verification. Focus tests on the important things, like the pre-conditions, the invariants, complex logic, and gnarly edge cases. Then begin to design asynchronous functions using automated tests. Carefully decouple and mock out intricate dependencies such as the DOM, geolocation API, file and database access, and Ajax calls to remote servers.

    Step by step, test code that uses Node.js, Express, MongoDB, jQuery, and AngularJS. Know when and how to use tools such as Chai, Istanbul, Karma, Mocha, Protractor, and Sinon. Create tests with minimum effort and run them fast without having to spin up web servers or manually edit HTML pages to run in browsers. Then explore end-to-end testing to ensure all parts are wired and working well together.

    Don't just imagine creating testable code, write it.

    What You Need:

    A computer with a text editor and your favorite browser. The book provides instructions to install the necessary automated testing-related tools.

Professional Git

by Brent Laster

  • Leverage the power of Git to smooth out the development cycle

    Professional Git takes a professional approach to learning this massively popular software development tool, and provides an up-to-date guide for new users. More than just a development manual, this book helps you get into the Git mindset—extensive discussion of corollaries to traditional systems as well as considerations unique to Git help you draw upon existing skills while looking out—and planning for—the differences. Connected labs and exercises are interspersed at key points to reinforce important concepts and deepen your understanding, and a focus on the practical goes beyond technical tutorials to help you integrate the Git model into your real-world workflow.

    Git greatly simplifies the software development cycle, enabling users to create, use, and switch between versions as easily as you switch between files. This book shows you how to harness that power and flexibility to streamline your development cycle.

    • Understand the basic Git model and overall workflow
    • Learn the Git versions of common source management concepts and commands
    • Track changes, work with branches, and take advantage of Git's full functionality
    • Avoid trip-ups and missteps common to new users

    Git works with the most popular software development tools and is used by almost all of the major technology companies. More than 40 percent of software developers use it as their primary source control tool, and that number continues to grow; the ability to work effectively with Git is rapidly approaching must-have status, and Professional Git is the comprehensive guide you need to get up to speed quickly.

  • Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users? If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help. In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment. Mike explains that many problems with systems today start with the design.
  • The introduction of functional programming concepts in Java SE 8 was a drastic change for this venerable object-oriented language. Lambda expressions, method references, and streams fundamentally changed the idioms of the language, and many developers have been trying to catch up ever since. This cookbook will help. With more than 70 detailed recipes, author Ken Kousen shows you how to use the newest features of Java to solve a wide range of problems.

    For developers comfortable with previous Java versions, this guide covers nearly all of Java SE 8, and includes a chapter focused on changes coming in Java 9. Need to understand how functional idioms will change the way you write code? This cookbook—chock full of use cases—is for you.

    Recipes cover:

    • The basics of lambda expressions and method references
    • Interfaces in the java.util.function package
    • Stream operations for transforming and filtering data
    • Comparators and Collectors for sorting and converting streaming data
    • Combining lambdas, method references, and streams
    • Creating instances and extract values from Java’s Optional type
    • New I/O capabilities that support functional streams
    • The Date-Time API that replaces the legacy Date and Calendar classes
    • Mechanisms for experimenting with concurrency and parallelism
  • You think agile techniques might be for you, but your projects and organization are unique. An "out-of-the-box" agile approach won't work. Instead, unite agile and lean principles for your project. See how to design a custom approach, reap the benefits of collaboration, and deliver value. For project managers who want to use agile techniques, managers who want to start, and technical leaders who want to know more and succeed, this book is your first step toward agile project success.

    You've tried to use an off-the-shelf approach to agile techniques, and it's not working. Instead of a standard method or framework, work from agile and lean principles to design your own agile approach in a way that works for you. Build collaborative, cross-functional teams. See how small batch sizes and frequent delivery create an environment of trust and transparency between the team, management, and customers. Learn about the interpersonal skills that help agile teams work together so well.

    In addition to seeing work and knowing what "done" means, you'll see examples of many possible team-based measurements. Look at tools you can use for status reporting, and how to use those measurements to help your managers understand what agile techniques buy them. Recognize the traps that prevent agile principles from working in too many organizations, and what to do about those traps. Use agile techniques for workgroups, and see what managers can do to create and nurture an agile culture. You might be surprised at how few meetings and rituals you need to still work in an agile way.

    Johanna's signature frankness and humor will get you on the right track to design your agile project to succeed.

    What You Need:No technical expertise or experience needed, just a desire to know more about how you might use agile in your project.

The JHipster Mini-Book

by Matt Raible

  • The things you need to do to set up a new software project can be daunting. First, you have to select the back-end framework to create your API, choose your database, set up security, and choose your build tool. Then you have to choose the tools to create your front end: select a UI framework, configure a build tool, set up Sass processing, configure your browser to auto-refresh when you make changes, and configure the client and server so they work in unison. If you're building a new application using Spring Boot and Angular, you can save days by using JHipster. JHipster generates a complete and modern web app, unifying: - A high-performance and robust Java stack on the server side with Spring Boot - A sleek, modern, mobile-first front-end with Angular and Bootstrap - A robust microservice architecture with the JHipster Registry, Netflix OSS, the ELK stack, and Docker - A powerful workflow to build your application with Yeoman, Webpack, and Maven/Gradle

Liquid Software: How to Achieve Trusted Continuous Updates in the DevOps World

by Fred Simon, Yoav Landman, and Baruch Sadogursky

  • Software affects everything in our lives.Imagine that software could be constantly updated without our involvement! No need to figure out hardware specifications. Nothing to interrupt our digital activities. No waiting for lengthy downloads and reboots. What if it all just happened in the background, and we could simply enjoy the benefits?

    Liquid Software explores a future in which developers code high-quality applications that securely flow to end-users with zero downtime. The authors bring insights from their more than 50 years of collective experience in building software in modern development environments. They explain that what sounds like Software Utopia is possible and practical!

    We’re at the dawn of the next great leap forward in computing – the achievement of continuous software updates. The Liquid Software revolution has begun!

Jenkins 2 - Up and Running

by Brent Laster

  • All about Jenkins 2, Pipelines-As-Code, CI/CD, etc.

Angular Development with Typescript

by Yakov Fain and Anton Moiseev

  • This practical book covers real-world development concerns like state management, data and views, user interaction with forms, and communicating with servers, as well as testing and deploying your applications. This new edition has been fully revised to cover the latest Angular CLI along with current best practices and updates to Angular 5.

    Angular Development with Typescript, Second Edition is an intermediate-level tutorial that introduces Angular and TypeScript to developers comfortable with building web applications using other frameworks and tools. You'll start by exploring what makes Angular different by building an online auction app. As you move through the chapters, you'll explore TypeScript as you learn to write type-aware classes, interfaces, generics, and more.

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

  • Spring Framework has been making Java developers more productive and successful for over a dozen years, and it shows no signs of slowing down!

    Spring in Action, 5th Edition is the fully-updated revision of Manning's bestselling Spring in Action. This new edition includes all Spring 5.0 updates, along with new examples on reactive programming, Spring WebFlux, and microservices. Readers will also find the latest Spring best practices, including Spring Boot for application setup and configuration.

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

  • Distributed agile teams have a terrible reputation. They don’t deliver “on time,” and too often, they don’t deliver what the customer needs. However, most agile teams, have at least one remote team member. And, agile approaches are here to stay. Don’t blindly apply agile practices designed for collocated teams. Instead, learn to use three mindset shifts and the agile and lean principles to create your successful distributed agile team. Use the tips and traps to help your team succeed.Leave the chaos of virtual teams behind. See how to help your distributed team succeed.
  • Change is difficult but essential—Esther Derby offers seven guidelines for change by attraction, an approach that draws people into the process so that instead of resisting change, they embrace it. 

    Even if you don’t have change management in your job description, your job involves change. Change is a given as modern organizations respond to market and technology advances, make improvements, and evolve practices to meet new challenges. This is not a simple process on any level. Often, there is no indisputable right answer, and responding requires trial and error, learning and unlearning. Whatever you choose to do, it will interact with existing policies and structures in unpredictable ways. And there is, quite simply, a natural human resistance to being told to change. 

    Rather than creating more rigorous preconceived plans or imposing change by decree, agile software developer turned organizational change expert Esther Derby offers change by attraction, an approach that is adaptive and responsive and engages people in learning, evolving, and owning the new way. She presents a set of seven heuristics—guides to problem-solving—that empower people to achieve outcomes within broad constraints using their personal ingenuity and creativity. 

    When you work by attraction, you give space and support for people to feel the loss that comes with change and help them see what is valuable about the future you propose. Resistance fades because people feel there is nothing to push against—only something they want to move toward. Derby’s approach clears the fog to provide a new way forward that honors people and creates safety for change.
  • JavaScript has finally grown up. Armed with a slew of new features, JavaScript now makes writing the code that powers your applications elegant, concise, and easy to understand. This book is a pragmatic guide to the new features introduced in JavaScript, starting with Edition 6 of ECMAScript, and ending with Edition 9. 

    Using a "compare and contrast" approach, each chapter offers a deep dive into new features, highlighting how best to use them moving forward. As you progress through the book, you'll be offered multiple opportunities to see the new features in action, and in concert with one another.

    Backed by an example-driven writing style, you'll learn by doing, and get ready to embrace the new world of JavaScript. 

    What You'll Learn

    • Provide a deep exposition of the new features introduced in ES6 through ES9 
    • Review how JavaScript's new features by-pass any limitations of an existing approach
    • Examine the refactoring necessary to go from old to new
    • Demonstrate how JavaScript's new features work in unison with each other 

    Who This Book Is For

    New and experienced developers who wish to keep abreast of the changes to JavaScript and deepen their understanding of the language. 

  • In software, sometimes you only have one chance to get it right. It is possible by leveraging well-defined architecture to create an amazing Angular application. Maximize the capabilities of Angular, Typescript, Visual Studio Code tools to enable architectural patterns that were once not available or easy to implement in modern web applications.
  • You can become an excellent manager when you manage yourself first.

    If you’re like most managers, you’ve never seen management excellence. You are not alone.

    Modern management requires we first manage ourselves—and that might be the most challenging part of management. Based on research and backed up by personal stories, you'll see how you can manage yourself.

    Through questions, stories, and proven options, learn how you can:

    * Move from expert to coach.
    * Recognize and avoid micromanagement.
    * Support the people doing the work to solve more of their problems.
    * Make time to think so you can be your best self.
    * Trust the people you lead and serve.

    And, much more.

    With its question and myth, each chapter offers you options to rethink how you manage yourself.

    Become a modern manager.

    Learn to manage yourself so you and the people you lead and serve can deliver the results everyone needs.
  • You can excel at managing people when you lead and serve them.

    You might have only seen managers try to direct and control others. You might think you can't possibly lead and serve others. Especially not with all the pressure you feel. You can.

    Great managers create an environment where people can do their best work. These excellent managers lead and serve others—not control or direct them.

    Based on research and backed up by personal stories, this book will show you how modern managers lead and serve others.

    Through questions and stories, learn how you can:

    * Change your focus from individuals to teams.
    * Create more capability in each person and as a team.
    * Create more engaged teams or workgroups.
    * Support people as they manage their careers and eliminate the need for performance reviews.
    * Support teams as they can learn to manage themselves.

    And, much more.

    With its question and myth, each chapter offers you options to rethink how you lead and serve others.

    Become a modern manager.

    Learn to lead and serve others to deliver the results everyone needs.
  • Would you like your organization to innovate more? Start with your management practices.

    You might never have seen innovation in management. You are not alone.

    Learn to create an environment where people can innovate. See how to use the organization’s purpose to manage for better outcomes. Free people to work better and faster.

    Based on research and backed up by personal stories, you'll see how modern managers practice innovation.

    Through questions and stories, learn how you can:

    * Create management teamwork at all levels.
    * Reduce management decision time.
    * Manage for effectiveness to promote innovation.
    * Plan by value.
    * Welcome experiments and learn from them.
    * Move from change management to embracing change.

    And, much more.

    With its question and myth, each chapter offers you options to rethink how you can create management innovation. Change your practices and free the people to deliver better outcomes.

    Become a modern manager.

    Learn to lead an innovative organization.

TypeScript Quickly

by Yakov Fain

  • TypeScript is JavaScript with an important upgrade! By adding a strong type system to JavaScript, TypeScript can help you eliminate entire categories of runtime errors. In TypeScript Quickly, you’ll learn to build rock-solid apps through practical examples and hands-on projects under the expert instruction of experienced web developers Yakov Fain and Anton Moiseev.

    About the technology

    Strong typing can eliminate nearly all errors caused by unanticipated data values. With TypeScript, an enhanced version of JavaScript, you can specify types and type annotations so your code is easier to read and far less likely to fail at runtime. And because the core of TypeScript is standard JavaScript, it runs on all major browsers and can be used with frameworks like Angular, Vue, and React.


    About the book

    TypeScript Quickly teaches you to exploit the benefits of types in browser-based and standalone applications. In this practical guide, you’ll build a fascinating blockchain service app that takes you through a range of type-sensitive programming techniques. As you go, you’ll also pick up valuable techniques for object-oriented programming with classes, interfaces, and advanced features such as decorators and conditional types.
  • This study guide walks you through all the topics you need to fully prepare for the Certified Kubernetes Application Developer (CKAD) exam. Author Benjamin Muschko also shares his personal experience with preparing for all aspects of the exam.
  • A new edition of the classic bestseller! Spring in Action, 6th Edition covers all of the new features of Spring 5.3 and Spring Boot 2.4 along with examples of reactive programming, Spring Security for REST Services, and bringing reactivity to your databases. You'll also find the latest Spring best practices, including Spring Boot for application setup and configuration.
  • Voice recognition is here at last. Alexa and other voice assistants have now become widespread and mainstream. Is your app ready for voice interaction? Learn how to develop your own voice applications for Amazon Alexa. Start with techniques for building conversational user interfaces and dialog management. Integrate with existing applications and visual interfaces to complement voice-first applications. The future of human-computer interaction is voice, and we’ll help you get ready for it.
  • Many people who use Git rely on "recipes"--copying and pasting commands they find on the internet without really understanding how Git actually works. But what do you do if you find yourself in a tight spot? You can't simply wing it. With this unique hands-on guide, you'll learn the ways of Git and have fun while doing it. Raju Gandhi peels back the layers to reveal the simple yet powerful engine that powers Git, so you'll understand not just the how but the why. You'll master branches, merges, commit messages, search, utilities, and more; learn best practices for collaborative work; and unlock the full potential of Git.

    If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. With this book, you'll learn Git through a multisensory experience that engages your mind rather than a text-heavy approach that puts you to sleep.

DevOps Tools for Java Developers: Best Practices from Source Code to Production Containers

by Stephen Chin, Melissa McKay, Ixchel Ruiz, and Baruch Sadogursky

  • With the rise of DevOps, low-cost cloud computing, and container technologies, the way Java developers approach development today has changed dramatically. This practical guide helps you take advantage of microservices, serverless, and cloud native technologies using the latest DevOps techniques to simplify your build process and create hyperproductive teams.

    Stephen Chin, Melissa McKay, Ixchel Ruiz, and Baruch Sadogursky from JFrog help you evaluate an array of options. The list includes source control with Git, build declaration with Maven and Gradle, CI/CD with CircleCI, package management with Artifactory, containerization with Docker and Kubernetes, and much more. Whether you're building applications with Jakarta EE, Spring Boot, Dropwizard, MicroProfile, Micronaut, or Quarkus, this comprehensive guide has you covered.
  • This study guide walks you through all the topics you need to fully prepare for the Certified Kubernetes Administrator (CKA) exam. Author Benjamin Muschko also shares his personal experience with preparing for all aspects of the exam.
  • This study guide walks you through all the topics you need to fully prepare for the CertifiedSecurity Specialist (CKS) exam. Author Benjamin Muschko also shares his personal experience with preparing for all aspects of the exam.
  • If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. From the authors of Fundamentals of Software Architecture, Head First Software Architecture teaches you how to think architecturally and explores the unique challenges of software architecture. You'll learn the distinction between architecture and design and the relationship between code, components, and architectural styles. You'll also learn how to work with some common architectural styles through vivid, fun examples. Quick, easy, and entertaining, this book is a valuable introduction to the world of software architecture.
  • This study guide walks you through all the topics you need to fully prepare for the Certified Kubernetes Application Developer (CKAD) exam. Author Benjamin Muschko also shares his personal experience with preparing for all aspects of the exam.

    New topics include: Deployment strategies, the Helm package manager, resources that extend Kubernetes (CRD), building container images, and more

Spring AI in Action

by Craig Walls

  • Generative AI tools like ChatGPT cause an immediate jaw drop for almost everyone who encounters them. Until recently, though, Java developers have had few good tools for adding AI features to existing and new applications. Spring AI, an exciting new extension for Spring and Spring Boot, changes the equation. Spring AI provides generative AI capabilities natively within the framework, so you can stick with Java end-to-end. Spring AI in Action shows you how!