The Pragmatic Programmers
By professional developers for professional developers.

Programming Groovy 2 — Pragmatic Programmers (150 / 152)

👈 19.11 ExpandoMetaClass and DSLs | TOC | Appendix 2 Bibliography 👉

A Bit of Groovy History

http://glaforge.free.fr/weblog/index.php?itemid=99

A blog by Guillaume Laforge on Groovy history.

API for ​FactoryBuilderSupport

http://groovy.codehaus.org/api/groovy/util/FactoryBuilderSupport.html

API for the ​FactoryBuilderSupport​ class, which is the new base class for ​SwingBuilder​.

ASTTest Annotation

http://groovy.codehaus.org/gapi/groovy/transform/ASTTest.html

Groovy annotation for testing and debugging AST transformations.

Clip from ​Raiders of the Lost Ark​

http://www.youtube.com/watch?v=Epw-LSC3L2U

Swordfight scene from the movie ​Raiders of the Lost Ark​.

CodeNarc

http://codenarc.sourceforge.net

CodeNarc is a Groovy-based static code-analysis tool.

Crash of the Mars Orbiter

http://www.cnn.com/TECH/space/9909/30/mars.metric.02

CNN coverage of the crash of the Mars Orbiter.

Duck Typing

http://c2.com/cgi/wiki?DuckTyping

What’s…


Test-Driving JavaScript Applications — Pragmatic Programmers (106 / 108)

👈 Rock On! | TOC | Bibliography 👉

3-As Pattern

http://c2.com/cgi/wiki?ArrangeActAssert

A short description of the Arrange-Act-Assert, or 3-As, pattern.

Manifesto for Agile Software Development

http://www.agilemanifesto.org

The website for the Agile Manifesto, which espouses some core values and practices for lightweight software development.

Angular

https://angularjs.org

The website for the Angular framework.

Book Resources

http://www.pragprog.com/titles/vsjavas

Official website for this book, with links to the source code, errata, and forum for discussions.

Chai

http://chaijs.com

Website for Chai, a fluent and expressive assertion library.

Express

http://expressjs.com

Website for Express, a lightweight web framework for Node.js.

Express Generator

http://expressjs.com/en/starter/generator.html

A convenience tool to generate…


Agile Web Development with Rails 6 — Pragmatic Programmers (87 / 102)

👈 Processing Forms | TOC | Using Helpers 👉

Your application may allow users to upload files. For example, a bug-reporting system might let users attach log files and code samples to a problem ticket, or a blogging application could let its users upload a small image to appear next to their articles.

In HTTP, files are uploaded as a multipart/form-data POST message. As the name suggests, forms are used to generate this type of message. Within that form, you’ll use <input> tags with type=”file”. When rendered by a browser, this allows the user to select a file by name…


Agile Web Development with Rails 5.1 — Pragmatic Programmers (92 / 107)

👈 Processing Forms | TOC | Using Helpers 👉

Your application may allow users to upload files. For example, a bug-reporting system might let users attach log files and code samples to a problem ticket, or a blogging application could let its users upload a small image to appear next to their articles.

In HTTP, files are uploaded as a multipart/form-data POST message. As the name suggests, forms are used to generate this type of message. Within that form, you’ll use <input> tags with type=”file”. When rendered by a browser, this allows the user to select a file by name…


React for Real — Pragmatic Programmers (21 / 48)

👈 Update the State with Events | TOC | What You Learned 👉

You already know how to update the application state in response to user actions. Another common scenario is updating the state based on the response from a remote server. What makes this different is that communications like this are asynchronous, meaning the server request goes on in the background while your code keeps running. Nevertheless, setState also fits the bill when you need to update the state in response to a server. As an example, we’ll add save functionality to the word counter. …


Ship It! — Pragmatic Programmers (86 / 99)

👈 What’s Available (Test Harnesses): | TOC | Key Concepts: 👉

Cobertura

http://cobertura.sourceforge.net

Cobertura (Spanish for “coverage”) is a code coverage tool. When you run a set of tests, it tells you how well tests exercise the tested code. As an added bonus, it also calculates McCabe’s Cyclomatic Complexity, one of the best metrics we’ve seen for spotting complicated code that’s sure to have bugs.

Emma

http://emma.sourceforge.net/

Emma is another great, very popular coverage tool.

Clover

http://www.cenqua.com/clover

Another code coverage tool, Clover has integrated plug-ins for most of the popular IDEs out there.

Fit

http://fit.c2.com

Fit takes a unique, user-friendly…


Ship It! — Pragmatic Programmers (70 / 99)

👈 Appendix 4 Continuous Integration Systems | TOC | Key Concepts: 👉

CruiseControl

http://cruisecontrol.sourceforge.net

An open-source CI system written in Java, CruiseControl has a lot of functionality and an active developer base. It’s the one we use.

CruiseControl.NET

http://sourceforge.net/projects/ccnet

CruiseControl for the .NET Framework. A somewhat different set of features than CC for Java but the same concept.

CruiseControl.rb

http://cruisecontrolrb.thoughtworks.com/

ThoughtWorks has now created a Ruby version of the original classic. Many people are latching on to this new system. Although it doesn’t have a great variety of plugins or tons of source code management support yet, it is getting…


Ship It! — Pragmatic Programmers (65 / 99)

👈 Appendix 3 Build Scripting Tools | TOC | Key Concepts: 👉

OS Scripting Languages (e.g. Shell, Batch Files)

These are available on your existing operating system, but tend to be very generic and lack many of the common functions you’ll need. Use them, and you risk reinventing the wheel.

make

make

http://sources.redhat.com/cygwin

make comes on all modern Unix and Unix-like systems; you can get a free version for Windows at this URL.

make is the grandaddy of all the build scripts, and has been around for decades. Tools like make move you forward a little, but still force you to write your own code for many common…


Ship It! — Pragmatic Programmers (60 / 99)

👈 Appendix 2 Source Code Management | TOC | Key Concepts: 👉

CVS

http://www.cvshome.org

A free, open-source client-server SCM. Does everything you need, but the command-line interface is a bit arcane. CVS is used by companies large and small all over the world.

Subversion

http://subversion.tigris.org

The self-avowed replacement for CVS, it does most of what CVS does, plus a lot more. Like CVS, it’s open-source and free.

MS Visual SourceSafe

http://msdn.microsoft.com/vstudio/previous/ssafe

Microsoft’s SCM, it’s integrated with a lot of their development tools and IDEs. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store