首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件方法--推荐阅读

在为软件组织提供服务时,我一直采取拿来主义的做法,不拘泥于流派或风格,着力于细节和应用。...下面是我推荐大家阅读的需求和设计书籍和资料。这些书籍和资料我当然都读过,否则就没有资格在此处推荐了。...The Mythical Man-Month”、GoF的“Design Patterns”等不在其中,不是因为我没有读过——事实上,需求和设计书籍只要有中文译本或者英文版能有渠道找到电子版,绝大多数我都阅读过...只是我认为,对于需求和设计技能的提升,阅读以下推荐的资料帮助更大。 另外要说的是,要用发展的眼光看问题,不能搞“原教旨主义”。...Jonsson 软件复用:结构、过程和组织 Use Cases: Requirements in Context: 2nd Edition 2003 Daryl Kulak 用例:通过背景环境获取需求

55420
您找到你想要的搜索结果了吗?
是的
没有找到

为什么要阅读Linux内核源码以及如何阅读Linux内核源码

获取内核源码: https://www.kernel.org/ 阅读linux内核,常用下面两种方法: bochs+linux0.11+书(linux内核完全注释、linux内核完全剖析、linux内核设计的艺术...阅读源码分为纵向阅读和横向阅读。纵向就是跟着内核的执行流程来读,横向就是按照内核的各大功能模块来读。 第一种方法纵向或者横向来读都可以,因为代码量不是很大。...《linux内核完全剖析》《linux内核完全注释》是引导你横向阅读的书,《linux内核设计的艺术》是引导你纵向阅读的书。...《linux内核情景分析》中的内核版本是2.4.X,现代内核版本还是推荐横向阅读,纵向几乎不可能。...在线阅读Linux内核源码网站: https://elixir.bootlin.com/linux/latest/source 初学者建议书籍(实拍): 个人建议内核和驱动一起学。 ?

4.2K30

软件设计之美》阅读笔记

开篇词 「算法对抗的是数据的规模,而软件设计对抗的是需求的规模。」 软件设计包括:「程序设计语言、编程范式、设计原则、设计模式、设计方法」。 软件设计 「软件设计就是构建出一套模型。」...规范的两个常见问题:「项目缺乏显示、统一的规范、规范不符合软件设计原则」。 分离关注点,关注点越多越好,粒度越小越好。 了解软件的设计 三个部分着手:「模型、接口和实现」。...「模型」也就是软件的核心,也称为抽象。 「接口」决定了软件通过怎样的方式,将模型提供的能力暴露出去。 「实现」是指软件的模型和接口具体是如何实现的。必须建立在模型和接口的基础之上。...模型和接口的稳定性比实现高,实现要随着软件发展不断调整。可以理解为「向下兼容」。 了解软件的模型 首先我们要知道项目提供了哪些模型,模型提供了哪些能力。...语言的接口 封装出一个好的程序库所需的能力,就是软件设计所需的能力。 程序库是为了消除重复出现的。而「消除重复」是软件设计的初衷。

35120

阅读软件怎么添加书源_使用OneDrive给文献管理和阅读软件知之阅读添加云同步功能…「建议收藏」

“最近发现一款不错的文献管理和阅读软件——知之阅读点击文章末尾查看原文即可打开 软件的官方主页 ” 目前,知之阅读的最新版本是在2019年10月15日发布的V1.5.0.7版,虽有近一年没有更新过了但在功能方面已经没有什么大的缺失...,对于基本的文献阅读和管理已经够用,软件中也存在不少亮点功能可以在使用中慢慢感受; 对 于需要在 多设备 上切换 阅读的 用户(我) 来讲,知之阅读存在的最主要问题就是没有云同步功能,开发者在网站中提供了一种使用...注:在知之阅读运行时,部分配置文件无法在云端同步,在软件关闭后方可成功同步;6....打开这台设备上的知之阅读,在设置中将 “笔记存储在”的地址更改为上一步复制的地址,关闭软件。...至于文献翻译和对其他格式文献的支持的功能,完全可以用更加专业的工具和通过其他途径获取文献来解决,此类功能并不是一款文献阅读和管理软件本身的必要功能,算不上是软件的缺点;最后,希望大家不要沉迷在给文献的分类

1.2K20

Crazy无人机源码阅读软件配置)

开始正式的读源码啦,我们这次使用三个软件来读,在下面有 ? 这里是因为它软件本身的编辑功能很弱,所以需要外置的编辑器帮忙 这个软件很有趣,在阅读源码上面,会尝试生成一些脑图一样的东西 ?...就是新的脑图软件 老牌的源码阅读软件,逆天了 VSCode编辑器 ? 欧耶,继续看~ ? 、 第二款的软件的图表相当不错,下面生成一些 ? 这个是按照语言的种类去生成 ?...我们接下来做一些对比,对三款软件 ? 首先是code,目录清晰 ? 代码分明,快捷键很方便的操作(废话,天天用能不好使) ? ?...接下来是我们新兴的阅读工具,反正很好看 其实我也看不懂是什么意思。。。。 https://www.sourcetrail.com/documentation/ 文档附上,补补课,补补脑子 ?...这里的话,看会这里看我们的软件就没有什么难度了

59230

【扩展阅读】流氓软件你造吗?

“流氓软件”是介于病毒和正规软件之间的软件,通俗地讲是指在使用电脑上网时,不断跳出的窗口让自己的鼠标无所适从;有时电脑浏览器被莫名修改增加了许多工作条,当用户打开网页却变成不相干的奇怪画面,甚至是黄色广告...有些流氓软件只是为了达到某种目的,比如广告宣传,这些流氓软件不会影响用户计算机的正常使用,只不过在启动浏览器的时候会多弹出来一个网页,从而达到宣传的目的。...2)未明确提示用户,诱导或误导用户安装恶意软件的行为; ? 3)在软件中捆绑已被认定为恶意软件的行为; ? 5)启动卸载程序后,未经许可的情况下,自动在用户电脑里安装恶意软件行为; ?...2、难以卸载:未提供通用的卸载方式,或在不受其他软件影响、人为破坏的情况下,卸载后仍活动或残存程序的行为。 ?...4、广告弹出:未明确提示用户或未经用户许可的情况下,利用安装在用户计算机或其他终端上的软件弹出色情广告等广告的行为。 ?

79180

linux 软件安装

创建小环境:-n 指定小环境的名字 rna,并指定环境的python版本为python=3 conda create -y -n rna python=3 创建小环境成功后会出现3个done 图片 三、安装软件...图片 1.安装软件的方法: 图片 安装 conda install 出现三个done 显示安装完成 图片 2.安装特定版本 图片 3.特殊情况 图片 4.查看conda 环境中已经安装的软件...conda list #基本用法 conda list fast #查看符合正则表达式的软件 conda list -n rna #查看指定环境的软件 5.删除软件 conda remove conda remove -n rna #删除指定环境里的软件 6.常用命令 图片 7.安装软件的另一种方式:用yml文件安装 • 导出当前环境: conda env export...envname > env.yml • 导入环境: conda env create -n envname --file env.yml 8.mamba 安装软件更加丝滑 #安装mamba conda

19720

使用 Source Insight 阅读 Linux 内核源码

但是以后学习大型 APP 时,也可以使用 Source Insight 来阅读、编写代码,可以借鉴本节讲解的 Source Insight 用法。...参考网址: 官网主页 https://www.sourceinsight.com/ 软件下载页面https://www.sourceinsight.com/trial/ 用户使用教程https://www.sourceinsight.com...这是因为 Linux 下的文件区分大小写,a.c 和 A.c 以不同的文件,但是 Windows 下不区分大小写,这 2 个文件是同一个。这些错误不会影响我们阅读源码。...7.4.3 建立工程示例 本节新建一个 linux kernel 的 source Insight 工程,你也可以为其他 APP 建立工程,方法是一样的。...同步文件 同步文件的意思是让 Source Insight 去解析源码,生成数据库,这样有助于以后阅读源码。比如点击某个函数时就可以飞快地跳到它定义的地方。

4.5K20

Linux软件管理

Linux 软件管理 1、软件管理简介 Redhat和Centos中软件管理是依靠软件包管理器(RPM)来实现的。...RPM(Redhat Package Manager)软件包管理器提供了在linux操作系统中安装,升级,卸载软件(程序)的方法,并提供对系统中所有软件(程序)状态信息的查询;除了这些功能外,RPM软件包管理器还提供了制作软件包的功能...2.2 软件包管理器的核心功能 制作软件包 安装软件 卸载软件 升级软件 查询软件 校验软件 3、软件包简介 3.1 软件包组成 软件包的组成清单 文件清单 安装或卸载的运行脚本 数据库(公共) 程序包名称及版本...6.1 系统发行版本的光盘 linux的ISO镜像文件自带了非常多的RPM安装包,且这些软件版本是最适合当前linux系统的。...############# [100%] [root@zsl ~]# rpm -qa | grep wget wget-1.19.5-10.el8.x86_64 升级注意事项 不要对内核做升级操作 Linux

4K10

LINUX 安装软件

Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。Yum软件仓库可以根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安装到系统。...yum info 软件包名称查看软件包信息yum install 软件包名称安装软件包yum reinstall 软件包名称重新安装软件包yum update 软件包名称升级软件包yum remove...1.5 系统初始化进程Linux系统的开机过程是这样的,即先从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。...初始化进程作为Linux系统启动后的第一个正式服务,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。同学们可以将初始化进程粗犷地理解成从我们按下开机键到看见系统桌面的这个过程。...Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(unit),systemd用目标(target)代替了System V init

7.4K30

Linux 软件管理

yum -y install 软件包 安装软件过程中出现依赖安装的时候 Linux系统会暂停提示y或n,则-y 含义是回答全部问题为是 yum -y install nginx 已加载插件:fastestmirror...14.gif – 删除无用孤立的软件包 用处:当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。...”Educational Software”这个软件包组) 命令:# dnf groupinstall ‘Educational Software’ – 升级一个软件包组中的软件包 用处:该命令用于升级一个软件包组中的软件包...’ – 从特定的软件包库安装特定的软件 用处:该命令用于从特定的软件包库安装特定的软件(本例中我们将使用命令从软件包库 epel 中安装 phpmyadmin 软件包) 命令:# dnf –enablerepo...但在我看来,正因如此,所以 DNF 包管理器不会太受那些经验老道的 Linux 系统管理者的欢迎。举例如下: 在 DNF 中没有 –skip-broken 命令,并且没有替代命令供选择。

4K30

基于Python的车牌检测和识别系统

5.通过PyQt5把整个算法封装成GUI程序,并打包发布安装软件。...这里展示一些识别结果和测试视频: 基于谷歌街景多位数字识别技术:TensorFlow的车牌号识别系统 机器学习算法AI大数据技术 搜索公众号添加: datanlp 长按图片,识别二维码 ---- 阅读过本文的人还看了以下文章...《美团机器学习实践》_美团算法团队.pdf 《深度学习入门:基于Python的理论与实现》高清中文PDF+源码 特征提取与图像处理(第二版).pdf python就业班学习视频,从入门到实战项目...2019最新《PyTorch自然语言处理》英、中文版PDF+源码 《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码 《深度学习之pytorch》pdf+附书源码...《神经网络与深度学习》最新2018版中英PDF+源码 将机器学习模型部署为REST API FashionAI服装属性标签图像识别Top1-5方案分享 重要开源!

2.8K30

软件测试中常用的linux命令_软件测试linux

linux常用shell命令=命令+选项+参数 find 查找文件/目录 cd (change directory)切换目录 cd #root根目录 cd / #...索引节点号,可以理解为文件的存储地址) ls -l (-long) #较长格式列出 ls -lh (–human-readable)与-l #人性化阅读输出...apt-get install 软件/包 #安装包 apt-get update 软件/包 #更新软件 apt-get remove 软件...aaaaa”,追加到名为tet文档的最后 echo dddd > tet 用字符串“dddd”替换原来tet中所有的文档 ls >> tet 将ls指令显示的内容追加到文档tet中 ps -ef 查看linux...ps -ef | grep www* 查看所有带www的进程 kill -9 进程号 可以关掉对应的进程 kill -15 进程号 等该进程运行完就关闭该进程 apt-get install 软件包名

15.2K20

阅读大型开源软件的四个技巧

如 Android APK 的构建,Android 资源如何优化,从中理清代码阅读的思路。 源码学习。 借助测试调试。 fork 主流程。 它们并不是互相独立的,往往是结合一起使用的。...在这种模式之下,我推荐:通过购买、阅读书籍的方式来学习。如果能买到书便是一件幸运的事,因为它已经经过了系统性的加工。唯一的问题可能是上面的代码有些老旧。...寻找阅读的模式。 尝试去构建应用。它不一定可行,但是如果可以的话,会节省你大量的时间。 源码学习是一个非常重的学习模式。...我一直觉得对于学习来说,阅读书籍是最理想的方式。因为寻找资料需要成本,而多数的书都会起到一个索引的目的。 寻找相似的轮子。一个有意思的技术,必然有很多公司、很多人都研究过。...: 阅读二手资料,根据二手资料理解主脉络 编写主流程调用链,理解架构设计理想 借助开源软件的测试调试,理解参数及流程 …… 你呢,你有什么好用的模式?

53820

如何有效阅读和理解软件设计文档

阅读和理解软件设计文档是软件开发的重要技能。对于使用 UML 建模的设计文档,理解起来可能会有些困难,特别是对于初次接触的人来说。...在本文中,我们将探讨如何有效地阅读和理解这样的设计文档,包括概要设计和详细设计。 1. 了解设计文档的结构 设计文档通常包括若干部分,如需求分析、概要设计、详细设计、测试计划等。...从全局视角开始 阅读设计文档时,首先应该从全局视角开始。先看概要设计,了解系统的主要组件和它们之间的关系。这可以帮助你建立一个对系统的整体理解。...针对性地阅读 你不需要一开始就完全理解设计文档的所有内容。相反,你应该根据你的需要有选择地阅读。例如,如果你负责实现某个特定的功能,那么你应该重点阅读描述这个功能的部分。...等你对这个部分有了充分的理解后,再去阅读其他部分。 结论 阅读和理解软件设计文档需要时间和实践。你需要熟悉 UML 语言,理解设计文档的结构,从全局视角开始,然后深入到详细设计,最后有针对性地阅读

15920

如何以“正确的姿势”阅读开源软件代码

阅读过程 在我阅读的前端库、Python后台库的过程中,我们都是以造轮子为目的展开的。所以在最开始的时候,我需要一个可以工作,并且拥有我想要的功能的版本。 ?...版本号管理 我最早阅读的开始软件Linux,而下面则是Linux的Release过程: ?...表格源自一本书叫《Linux内核0.11(0.95)完全注释》,简单地再介绍一下: 版本0.00是一个hello,world程序 版本0.01包含了可以工作的代码 版本0.11是基本可以正常的版本 这里就要扯到...因此,我们可以得到几个简单的结论: 我们需要阅读最早的有核心代码的版本 我们需要阅读1.0版本的Release 往后每一次大的Release我们都需要了解一下 示例 以Flask为例: 一、先Clone...五、接着,再回过头去阅读 0.1版本 。。。 最新的0.10.1版本

784100
领券