目前,软件对于钻研而言至关重要。这意味着钻研职员需要了解如何创立、检查、运用和共享次序。但是,大多数编程指南侧重于开发商业应用,而不探索那些尚未得到解答的问题。而在本文介绍这本开源书《Research Software Engineering with Python》中,作者旨在向读者展示如何做到这一点,无论作为个人还是团队成员。
书地点:https://merely-useful.github.io/py-rse/
GitHub 项目地点:https://github.com/merely-useful/py-rse
作者认为,每位钻研职员都应该了解如何编辑能够重复清理和分析数据的短次序,以及如何运用版本控制来跟踪自己做的事情。但正如一些天文学家致力于设计望远镜一样,一些钻研职员专注于建立使钻研成为可能的软件。从事这项工作的人被称为钻研软件工程师(research software engineer),他们主要建立其他钻研职员依赖的专用软件。在本书中,作者通过帮助读者为自己编辑代码以及创立有助于整个领域进步的对象,为钻研软件工程这一角色做好准备。
据书主页介绍,本书既可以作为大学层次的课程材料,也可以用于读者自学。俄勒冈大学助理教授 Grant McDermott 两次转推了该书,表示大多数钻研职员将大量的时间花费在了自学软件工程上,这本书指南可以使钻研职员在这方面做得更好。这本书还提供了软件工程方面的最佳实践,非常值得向学生推荐。
本书的目标读者是那些运用 Python 进行数据分析、但又想将自身编码与软件开发提升至更高水平的钻研者。读者没有必要非常精通 Python,但应该已经习惯了从文档中读取数据以及编辑循环体、条件语句和函数。此外,就书内容而言,本书并不只是简单地提供一些关于好的编码实践的参考资料,而侧重于创立软件包以解决实际的钻研问题。
书目次
本书共有 15 章,涵盖了运用 Unix shell 管理数据和代码、运用 Python 建立号令行对象、运用 Git 和 GitHub 跟踪和分享工作、配置次序、测试软件、创立以标准方式安装的 Python 包等诸多方面。以下只列举了前 5 章的具体内容,其他章节内容可参考原书。
第 1 章:入门指南
项目结构
下载数据
安装软件
第 2 章:Unix shell 的基础知识
文献和目次
移动
创立新文献和目次
移动文献和目次
复制文献和目次
删除文献和目次
通配符
阅读手册
第 3 章:运用 Unix shell 创立对象
组合号令
Pipe 如何运行
在多个文献中重复号令
变量命名
重做
自动创立新文献名
第 4 章:运用 Unix shell 进一步探索
创立新号令
使底本功能性更强
将交互式转化为底本
在文献中查找
查找文献
配置 Shell 底本
第 5 章:运用 Python 建立号令行对象
次序与模块
处理号令行选项
文档
词频计算
管道
位置和可选参数
结果理序
编辑自己的模块、
绘图
……
主要作者介绍
Damien Irving,分别于 2009 年和 2016 年取得墨尔本大学的学士和博士学位。虽然目前主要从事海洋温度与盐度变化的检测与归因钻研,但对科学计算与开放科学具有浓烈的兴趣。业余时间担任学习网站 Software Carpentry 的讲师。注:Software Carpentry 网站专为科学家和工程师提供在计算技能方面的速成课程。
个人主页地点:https://people.csiro.au/I/D/Damien-Irving
Greg Wilson,本科毕业于加拿大女王大学,之后在爱丁堡大学取得了人工智能硕士与计算机科学博士学位。在其丰富的职业履历中,他曾担任企业软件开发者、独立咨询顾问、高级软件工程师、大学助理教授、数据科学家、专业教育家等。此外,他还是学习网站 Software Carpentry 和开源软件架构(The Architecture of Open Source Applications)的联合创始人。
个人主页:https://third-bit.com/