Reading computer program code and documentation written by others is, we are told, one of the best ways to learn the art of writing intelligible and maintainable code and documentation. The software resurrection exercise, introduced in this paper, requires a motivated learner to compile and test a historical release (e.g. 20 years old) version of a well maintained and widely adopted open source software on a modern hardware and software platform. This exercise concludes by writing a critique based on issues encountered while compiling and testing a historical software release on a hardware and software platform that could not have been foreseen at the time of release. The learner is also required to fix the issues as a part of the software resurrection exercise. The seemingly pointless exercise of resurrecting a historical software allows motivated learners to experience the pain and joy of software maintenance which is essential for understanding the factors that contribute to intelligibility and maintainability of program code and documentation. The concept of software resurrection exercise is illustrated using a version of the SQLite database engine that was released 20 years ago. This illustration shows that software engineering principles (or programming pearls) emerge when a historical software release is adapted to run successfully on a modern platform. The software resurrection exercise also has the potential to lay foundations for a lifelong willingness to explore and learn from existing program code.
翻译:我们被告知,阅读他人编写的计算机程序代码和文件的最佳方法之一是学习写作、可理解和可维护的代码和文件的艺术。本文件介绍的软件更新练习,需要一位积极学习者在现代硬件和软件平台上汇编和测试一个保存良好和广泛采用的开放源码软件的历史版本(例如20年),该练习最后根据汇编和测试在发布时无法预见到的硬件和软件平台上遇到的问题撰写批评性意见。学习者还需要将问题作为软件更新练习的一部分加以修正。重现历史软件似乎毫无意义,使积极学习者能够体验软件维护的痛苦和快乐,这对于理解有助于程序代码和文件的可理解性和可维护性的因素至关重要。软件更新练习的概念是用20年前发布的SQLite数据库引擎的版本来说明的。该插图显示,当历史软件发布过程的原理(或编程珍珠)从一个历史软件发布过程中成功调整到一个现代平台的探索基础时,软件的更新工作也具有潜力。