首页 > 其他分享 >如何高效的阅读项目源代码 All In One

如何高效的阅读项目源代码 All In One

时间:2023-08-17 22:55:26浏览次数:38  
标签:高效 代码 阅读 xgqfrms 软件 NetBSD 源代码

如何高效的阅读项目源代码 All In One

《代码阁读方法与实践》-- (希腊) Diomidis Spinellis 著 / 赵学良 译

无论是沟通程序的操作,还是将知识存储为可执行的形式,软件的源代码都是最终的介质。
我们可以将源代码编译成可执行程序 ,也可以阅读代码来了解程序的功能及其工作方式, 还可以修改源代码来改变程序的功能。
大多数编程课程和书籍都将重点放到如何从零开始编写程序上。
然而,在软件系统的工作投人中,40% ~70%是用在系统首次编写完成之后。
这些工作一定选及到阅读、理解、以及修改最初的代码。
另外,遗留代码持续不断、不可避免的累积; 对软件重用的强调,软件行业中人员的高流动性;
同时,随着开放源码开发工作和协同开发过程(包括外包、代码走查极限编程)日益重要,使得代码阅读成为当今软件工程师的一项基本技能。
此外,阅读实际的、编写良好的代码,可以更加深人地了解如何构造编写重要的系统,仅仅编写小型的程序学不到这种能力。
在编写程序时就应该考虑到使之易于阅读,并且,不管程序是否容易阅读,人们都需要去阅读它们。
虽然代码阅读是 "一项少有人称颂 、缺乏训练的活动” ( Robert Class ) , 但它不应该这样 ( 即应该给于足够的重视,并提供相应的培训。—译者注)。

本 书 中 , 您 將 会 通 过 一 些 具 体 的 例 子 ,学 习 如 何 阅 读 别 人 编 写 的 代 码 , 这 些 例 子 都 取 自 重要的、现实的、开放源码系统的代码。我们对代码进行了大量的释义,并应用到项目中所 有 机 器 可 读 的 部 分 :源 代 码 ( 及 其 注 释 ) 、文 档 、可 执 行 程 序 、源 代 码 储 存 库 、设 计 图 和 配 置 脚 本。

掌握了本书的内容之后,您将:

  • 能够阅读和理解重要软件的代码;
  • 领会许多重要的软件开发慨念;
  • 知道如何探素大型的代码体;
  • 拥有大多数重要的高级、低级编程语言的阅读能力;
  • 认识到现实软件项目的错综复杂性

1.1 为什么以及如何阅读代码

有时,阅读代码是一件不得不去做的事,比如:为了修复检查改进现存的代码,都必须去阅读相关的代码 。
有些时候,阅读代码也许是为了了解程序是如何工作的,对于任何能够“打开盖子”的事物,作为工程技术人员,我们总是倾向于分析一下它的内部结构
您阅读代码可能是想提取可供重用的材料,或者仅仅出于个人兴趣(很少,但我们希望在阅读了本书后能够多起来), 将代码作为一种文献。
每种原因的代码阅读都有自己的一套技术,强调不同方面的技能

...

辅助材料

本书中棍供的许多源代码示例都来自于 NetBSD 的源代码。
NetBSD 是一个免费的、高度可移植的类 Unix 操作系统,适用于多种平台,从 64 位 AlpbaServer 到手持式设备。
它清晰的设计和先进的特性 ,使得它无论对于生产环境 ,还是对于研究环境 ,都是一个极好的选择。
之所以选择 NetBSD, 而不选择其他同样优秀,且广泛应用的免费类 Unix 系统(比如 GNU/Linux , FreeBSDOpenBSD ) ,是因为 NetBSD 主要的目标就是强调正确的设计和编写良好的代码,这使得它成为提供源代码示例的最佳选择。

根据其开发者的思想,有些系統好像拥有这样的哲学: “ 如果它能够工作 ,那么它就是正确的。”, 而 NetBSD 可以描述为 “ 除非它正确 ,否则它就不能工作。”。

demos

(

标签:高效,代码,阅读,xgqfrms,软件,NetBSD,源代码
From: https://www.cnblogs.com/xgqfrms/p/17639121.html

相关文章

  • 如何阅读并学习 MegEngine 的代码
    旷视开源的深度学习框架 MegEngine,MegEngine是一个快速、可拓展、易于使用且支持自动求导的深度学习框架。以最新的release版本release-1.13.0为例介绍一下MegEngine的代码结构以及如何学习MegEngine的代码。1.编译对于学习大型项目,我们建议源码编译项目而不是直接安装......
  • 高效的HTTP代理,python如何助力
    在使用Python编写高效的HTTP代理时,可以采用以下一些小技巧来提升性能和效率:1、使用异步请求库:使用异步的HTTP请求库,如aiohttp或httpx,可以实现并发处理多个请求,提高代理的吞吐量和响应速度。2、复用连接:在处理多个请求时,尽量复用已建立的连接,而不是每次请求都创建新的连接。这可以通......
  • 简单高效的api文档管理系统是如何提升工作效率的?
    简单高效的api文档管理系统是如何提升工作效率的?轻松管理文档,提高协作效率在现代软件开发过程中,api文档的管理至关重要。一套简单高效的api文档管理系统可以极大地提升工作效率,并且减少文档管理方面的麻烦。那么,api文档管理系统到底有什么特点?在日常工作中使用起来又有哪些好处呢?......
  • Xcode Mac高效开发工具
    XcodeforMac是一款高效的开发工具,它可以让您利用Mac电脑上的所有资源,从而大大提高生产力。您可以使用Xcode对您的代码进行编码、编译和调试。使用XcodeforMac,你可以将Xcode作为一种编程语言来构建应用程序或编写应用程序的代码,你甚至可以使用它来帮助你创建一个网站。与......
  • Programming abstractions in C阅读笔记: p114-p117
    《ProgrammingAbstractionsinC》学习第48天,p114-p117,​总结如下:一、技术总结主要通过randomnumber介绍了随机数的相关用法,interface​示例(random.h)​,clientprogram示例(craps.c)。#include<stdio.h>#include"genlib.h"#include"random.h"staticboolTryToMakePo......
  • 业务安全情报第20期 | 一个阅读活动,却吸引来大批羊毛党
    某新媒体小程序推出了一项有奖阅读活动,吸引了大量用户参与。该活动允许用户通过阅读推文任务获得红包奖励,并可直接提现。不过,这一活动很快遭遇了黑灰产问题,导致用户福利无法实现。 背景看新闻,领红包并不是新鲜事,2018年9月15日,号称一款新生代内容资讯APP的去趣头条,凭借着“......
  • 函数性能探测:更简单高效的 Serverless 规格选型方案
    作者:拂衣、丛霄2019年Berkeley预测Serverless将取代Serverful计算成为云计算新范式。Serverless为应用开发提供了一种全新系统架构。借助2023年由OpenAI所带来的AIGC风潮,以阿里云函数计算FC、AWSLambda为代表的Serverless以其更高成本效益、更简化的后端代码......
  • Java并发编程:实现高效、线程安全的多线程应用
    Java并发编程是开发高效、可扩展的多线程应用的关键。合理地利用多线程可以提高程序的性能和响应性,但同时也会引入线程安全的问题。本文将介绍Java并发编程的关键技巧,帮助读者实现高效、线程安全的多线程应用。 线程安全的数据结构和类Java提供了许多线程安全的数据结构和类,如Co......
  • 高效提升工作效率,亚马逊云科技热门课程带你入门生成式AI
    当前人工智能仍处于飞速发展阶段,作为当下最先进的科学技术之一,相信大家对AIGC关注已久。今天,引用亚马逊云科技最新发布的七项生成式AI新功能来跟大家聊聊近期的热门生成式AI! 有人说,生成式AI将带来充满创造性的新世界;有人说,生成式AI热潮正在掀起一场新的科技革命;有人认为生成式AI将......
  • Golang 高效并发安全的字节池
    记录一下,这里学的BytePoolCap,和sync.Pool总之就是这个BytePoolCap比sync.Pool快一些,目前不会测试,后面测试了再来填坑。packagemainimport( "fmt")funcmain(){ // varbpoolBytePoolCap bp:=NewBytePoolCap(500,1024,1024) buf:=bp.Get() deferbp.Put(buf......