《Growing Object-Oriented Software Guided by Tests》是一本经典的软件开发书籍,专注于对象导向设计与测试驱动开发(Test-Driven Development, TDD)。这本书由Steve Freeman和Nat Pryce共同撰写,旨在帮助开发者通过测试来指导面向对象软件的构建过程,从而实现更高质量、更具可维护性的代码。 在面向对象编程(Object-Oriented Programming, OOP)领域,本书提供了一系列的原则和最佳实践。它强调了如何利用TDD来驱动设计,而不是先设计后编码。TDD是一种开发方法,提倡先编写测试用例,然后编写刚好足够通过该测试的最小代码量,以此迭代地推进软件开发。 书中的关键知识点包括: 1. **测试驱动开发**:讲解了TDD的基本原则,如“红-绿-重构”循环,即先写失败的测试,再编写使测试通过的代码,最后重构代码以保持简洁。 2. **单元测试**:阐述了编写有效单元测试的重要性,以及如何编写能够覆盖核心业务逻辑的测试用例。 3. **模拟对象(Mocks)与桩对象(Stubs)**:介绍了如何使用这些工具来隔离被测试代码,确保测试的独立性和准确性。 4. **设计模式**:讨论了面向对象设计中的常用模式,如工厂模式、观察者模式等,以及如何在TDD环境中应用它们。 5. **重构**:强调了重构作为持续改进代码结构的关键步骤,讲解了各种常见的重构技术。 6. **对象组合**:探讨了如何通过组合对象而非继承来实现松耦合的设计,提高代码的灵活性和可维护性。 7. **领域驱动设计(Domain-Driven Design, DDD)**:虽然不是主要焦点,但书中也涉及了如何将业务领域的知识融入到代码设计中。 8. **持续集成**:提倡集成测试和持续集成的概念,以确保代码质量在开发过程中得到持续监控。 9. **代码质量与可读性**:强调了编写清晰、可读性强的代码对于团队协作和长期项目维护的重要性。 提供的格式有PDF和EPUB,适应不同的阅读设备,如电脑、平板或电子阅读器。PDF适合在大屏幕设备上阅读,保留了原始布局;EPUB则更适合电子阅读器,具有自动排版和调整字体大小的功能。 《Growing Object-Oriented Software Guided by Tests》是面向对象开发人员的一份宝贵资源,无论你是初学者还是经验丰富的开发者,都能从中学习到如何通过测试驱动来提升软件设计的质量和效率。
2026-04-18 15:38:00 18.05MB design epub pdf
1
深流引导的视频修复 | | | 安装与要求 该代码已在pytorch = 0.4.0和python3.6上进行了测试。 请参阅requirements.txt以获取详细信息。 或者,您可以使用提供的运行它。 安装python软件包 pip install -r requirements.txt 安装flownet2模块 bash install_scripts.sh 配件 此仓库中包含三个组件: 视频修复工具:DFVI 提取流程:FlowNet2(由修改) 图像修复(从重新实现) 用法 要使用我们的视频修复工具删除对象,建议将帧放置在xxx/video_name/frames ,并将每个帧的遮罩放置在xxx/video_name/masks 。 并且请从下载演示和模型权重的资源。 包含帧和蒙版的示例演示已放入演示中,运行以下命令将获得结果: python tools/v
2024-03-16 12:27:39 47.03MB Python
1
fir带通滤波器matlab代码使用G_best引导的布谷鸟搜索算法高效设计FIR滤波器 这项工作是我的本科论文的一部分。 抽象的: 此存储库提供了使用G最佳引导的杜鹃搜索(GCS)算法的有限冲激响应(FIR)滤波器的有效设计。 为了减少传统的Cuckoo搜索算法(CSA)中的参数依赖性以及在滤波器设计问题中更好地搜索最佳系数,在所建议的GCS中对CSA方法进行了一些修改,这导致与Cuckoo搜索算法的收敛速度显着提高。最佳解决方案。 在这里,已经使用GCS , CSA和人工蜂群(ABC)算法为Type1和Type 2 FIR设计了低通和带通滤波器。 结果: 从GCS,CSA和ABC的图形和统计观察()中可以看出, GCS在收敛速度,执行时间和过滤器响应方面均超过了竞争对手。 此外,使用建议的GCS开发的滤波器获得的阻带衰减(As)和通带纹波(Rp)远远优于使用CSA,ABC或Parks and McClellan(PM)方法设计的滤波器。 一项平均研究表明,对于较低阶的LPF(类型1和类型2的阶次均小于40),GCS显示As升高9.23% ,Rp降低26.05% 。 对于更高阶的LP
2023-03-13 20:37:17 1.6MB 系统开源
1
引导扩散 这是的代码库。 该存储库基于 ,并针对分类器调节和架构改进进行了修改。 下载预训练模型 我们已经发布了论文中主要模型的检查点。 在使用这些型号之前,请查看相应的以了解这些型号的预期用途和限制。 以下是每个模型检查点的下载链接: 64x64 分类器: 64x64 扩散: 128x128 分类器: 128x128 扩散: 256x256 分类器: 256x256 扩散: 256x256 扩散(非类条件): 512x512 分类器: 512x512 扩散: 64x64 -> 256x256 上采样器: 128x128 -> 512x512 上采样器: LSUN 卧室: lsun_bedroom.pt LSUN猫: lsun_cat.pt LSUN 马: lsun_horse.pt LSUN 马(无辍学): lsun_horse_nodropout.pt
2023-03-05 10:26:29 54KB Python
1
自导网络快速图像去噪 SGN的PyTorch实现以及给定噪声范围的估计PSNR 训练 我在Python 3.6和PyTorch 1.0环境上训练了此SGN。 培训策略与论文相同。 您可以使用以下脚本对自己的数据进行训练(请注意,您需要修改数据集路径): cd SGN python train.py or sh zyz.sh 测验 我使用ILSVRC2012验证集对4个NVIDIA TITAN Xp GPU进行了培训,并在1个TITAN Xp GPU上进行了测试。 详细信息显示在代码train.py 。 该演示来自SGN的ILSVRC2012验证集(mu = 0,sigma = 30,batchsize = 32、1000000次迭代)。 左:干净的图像(从COCO2014验证集中选择,COCO_val2014_000000264615.jpg) 中:加性高斯噪声+清晰图像 右
2022-12-15 22:52:09 2.47MB Python
1
提出了一种简单而有效的自我引导学习方法,即挖掘丢失的关键信息。具体来说,通过对标注的支持图像进行初始预测,将覆盖和未覆盖的前景区域分别用掩码GAP编码为主支持向量和辅助支持向量。通过主支持向量和辅助支持向量的融合,对查询图像获得了较好的分割性能。在我们的1 shot 分割自我引导模块的启发下,我们提出了一个多次分割的交叉引导模块,其中最终混合使用来自多个带注释的样本的预测,高质量的支持向量贡献更多,反之亦然。该模块改进了推理阶段的最终预测,无需再训练。大量实验表明,我们的方法在pascal -5i和coco -20i数据集上都实现了新的最先进的性能。
2022-09-23 21:05:29 3.72MB 小样本分割 文献阅读分享 深度学习
1
具有自适应时间特征分辨率的3D CNN CVPR 2021论文的源代码: 。 即将推出! 敬请关注! @inproceedings{sgs2021, Author = {Mohsen Fayyaz, Emad Bahrami, Ali Diba, Mehdi Noroozi, Ehsan Adeli, Luc Van Gool, Juergen Gall}, Title = {{3D CNNs with Adaptive Temporal Feature Resolutions}}, Booktitle = {{The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) }}, Year = {2021} }
1
可以直接运行的梯度域引导图滤波Gradient Domain Guided Image Filtering MATLAB源码
2022-09-14 16:15:40 1.09MB MATLAB 计算机视觉
1
kaiming He 的guided image filtering 对应的opencv代码。在jj574435561的基本做了重整理,简化了用法。
2022-06-09 01:01:12 5KB guided filter opencv
1
Region Proposal by Guided Anchoring论文介绍 PPT,介绍论文中Anchor的生成机制
2022-05-31 09:25:25 2.48MB 目标检测
1