Interface Oriented DesignLearn by pragmatic example how to create effective designs composed of interfaces to objects, components and services.
You'll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations. ...
Programming Ruby 1.9 & 2.0, 4th EditionWould you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? Are you using Rails, and want to dig deeper into the underlying Ruby language? If so, then we've got a language and book for you!
Ruby is a fully object-oriented language, much like the classic object-oriented language, Smalltalk. Like Smalltalk, it is dynamically typed (as opposed to Java or C++), but unlike Smalltalk, Ruby features the same conveniences found in modern scripting languages such as Perl and Python. ...
Hello, Android, 3rd EditionGoogle's Android is shaking up the mobile market in a big way. With Android, you can write programs that run on any compatible cell phone in the world. It's a mobile platform you can't afford not to learn, and this book gets you started. This third edition covers all Android versions from Android 1.5 to Android 2. ...
HTML5 and CSS3HTML5 and CSS3 are the future of web development, but you don't have to wait to start using them. Even though the specification is still in development, many modern browsers and mobile devices already support HTML5 and CSS3. This book gets you up to speed on the new HTML5 elements and CSS3 features you can use right now, and backwards compatible solutions ensure that you don't leave users of older browsers behind. ...
Pragmatic Unit Testing in C# with NUnit, 2nd EditionPragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing. Now in it's second edition, Pragmatic Unit Testing in C# with NUnit, 2nd Ed. will show you how to do software unit testing, of course, but more importantly will show you what to test. ...
Programming Concurrency on the JVMStop dreading concurrency hassles and start reaping the pure power of modern multicore hardware. Learn how to avoid shared mutable state and how to write safe, elegant, explicit synchronization-free programs in Java or other JVM languages including Clojure, JRuby, Groovy, or Scala.
Programming Concurrency on the JVM is the first book to show you three prominent concurrency styles: the synchronization model of the JDK, Software Transactional Memory (STM), and actor-based concurrency. You'll learn the benefits of each of these models, when and how to use them, and what their limitations are so you can compare and choose what works best for your applications. ...
Programming ScalaScala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on the Java Platform. ...
Functional Programming in JavaGet 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. ...
Automate with GruntGrunt is everywhere. JavaScript projects from jQuery to Twitter Bootstrap use Grunt to convert code, run tests, and produce distributions for production. It's a build tool in the spirit of Make and Rake, but written with modern apps in mind. This book gets you up to speed with Grunt using practical hands-on examples, so you can wrangle your projects with ease. You'll learn how to create and maintain tasks and project builds, and automate your workflow with plugins and custom tasks.
JavaScript has moved from being the language you love to hate to the language you need to use. And as JavaScript applications get more complex, you need a process to manage that complexity. While online tutorials just explain how to slap together a configuration file, this book goes further and shows you how to create your own tasks, design your own project templates, combine plugins together to bring a web app to life, and build your own plugins. ...
Agile Web Development with Rails 4Rails just keeps on changing. Both Rails 3 and 4, as well as Ruby 1.9 and 2.0, bring hundreds of improvements, including new APIs and substantial performance enhancements. The fourth edition of this award-winning classic has been reorganized and refocused so it's more useful than ever before for developers new to Ruby and Rails.
Rails 4 introduces a number of user-facing changes, and the ebook has been updated to match all the latest changes and new best practices in Rails. This includes full support for Ruby 2.0, controller concerns, Russian Doll caching, strong parameters, Turbolinks, new test and bin directory layouts, and much more. ...