The popularity of JavaScript and related technologies has exploded. As a result there are now numerous open source projects which rely on the language. JavaScript is widely used for web development and it sees further use beyond the web. The popularity and on-going evolution of the web platform poses a significant maintenance challenge to developers.
The purpose of this book is to give insight into these particular concerns. Even though the focus is open sourced, you will find techniques and ideas that go beyond this.
The book shows you how to organize npm packages and manage them. You will also learn about higher level topics, such as code quality, infrastructure, documentation, and future prospects. A good project is more than the technical implementation. For that reason you should understand what’s beyond the technical side as this knowledge has impact on project longevity and success.
The book has been split into a few distinct parts, each of which discusses the topic from a different angle. You can approach them one by one in any order you prefer and pick up techniques and ideas as you go along.
The parts of the book have been designed as follows:
There’s a short conclusion chapter after the main content that recaps the main points of the book. This contains a checklist that allows you to go through compare your projects with the book’s recommendations.
The appendices cover secondary topics and sometimes dig more deeply into the main ones. You can approach these in any order you wish, depending on your interests.
If you develop or maintain a web project, be it open source or not, you will have something to learn from this book. It captures aspects related to this particular niche allowing you to develop more effectively.
The book won’t teach you to use a specific language. Instead, it covers higher level topics and shows how they fit together. This higher level knowledge has value, regardless of your technology stack. The focus is on the web and open source, but certain ideas transcend the book despite this.
Given this book receives a fair amount of maintenance and improvements, there’s a versioning scheme in place. Release notes for each new version are maintained at the book blog. You can also use GitHub compare tool for this purpose. Example:
https://github.com/survivejs/maintenance-book/compare/v0.9.0...v0.9.18
The page shows you the individual commits that went to the project between the given version range. You can also see the lines that have changed in the book.
The current version of the book is 0.9.18.
If you run into trouble or have questions related to the content, there are several options:
If you post questions to Stack Overflow, tag them using survivejs. You can use the hashtag #survivejs on Twitter for the same result.
You can find more related material from the following sources:
This book wouldn’t have been possible without the earlier efforts. Anyone who contributed there deserves my thanks.
Special thanks to Gavin Orland for editing.
Thanks to Simon Lydell, Ryan Stegmann, Oliver Isenrich, Karen Grigoryan, and many others who have contributed direct feedback for this book!
This book is available through Leanpub. By purchasing the book you support the development of further content.