O'Reilly logo

Learning Web App Development by Semmy Purewal

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 9. The Application

If you’ve made it this far in our journey, you should be able to make things happen on both the client and the server using HTML, CSS, and JavaScript. And if you have an idea for a web application, you can most likely use what you’ve learned to cobble some code together to do what you need it to do.

This chapter is mostly about why you shouldn’t do that, at least not yet. David Parnas once said that “one bad programmer can easily create two new jobs a year.” While I think this is true, in my experience “bad” programmers aren’t inherently bad, but rather they just lack the experience and wisdom to think about the organization and maintainability of their codebase. Code (especially JavaScript) can quickly become an unmaintainable mess in the hands of an inexperienced programmer.

As I mentioned in the preface, as a beginner it’s completely acceptable to hack code together while you’re learning, but as you continue on you’ll quickly find that it’s not the best way to handle larger, more complex engineering problems. In other words, there is still (and will always be) much to learn.

On the other hand, software engineers have been building database-driven web applications for many years now so it’s probably inevitable that some basic patterns have emerged that inform better code design. In fact, entire development frameworks, such as Ruby on Rails, have been engineered to force (or at least strongly encourage) developers to build applications using some of these ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required