Appendix A. How Tools Scale


If you change the order of magnitude of a problem, then it becomes a different problem.

Anonymous

This appendix discusses how tools scale as a project grows. When a project grows, there are a number of ways it can grow:

  • More files and directories, which demands more from the underlying filesystem. The subjective experience of working with 100 files in a single directory is quite different from that of working with 1,000 files.

  • Longer files, with more functions, methods, and classes in those files. A 1,000-line file can often be edited much more easily than a 100,000-line one. Generated source files can reach such sizes.

  • More generated files that need to be combined. Linking 100 object files into a library is much faster than linking 1,000 such files together. Creating a .jar file from 1,000 .class files is quite different from creating one with 10,000 .class files. That's not even trying to resolve references between the files, just handling an order of magnitude more files.

  • Different versions of the same product are produced from the same source code.

  • More products are produced using the same source code in different ways.

One purpose of the results in this appendix is to encourage toolsmiths to measure the tools that they support. Writing small project generators is an interesting challenge of making sure that the generated projects resemble real projects. I'm not aware of any public project that generates skeletons of projects' source code, but I think this would be an excellent tool to create. It could also be used to demonstrate best practices for creating build files for different build tools and to demonstrate how different SCM tools scale.




Practical Development Environments
Practical Development Environments
ISBN: 0596007965
EAN: 2147483647
Year: 2004
Pages: 150

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net