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

作为一名合格开发者,必须了解编程原则有哪些?

为什么 一个模块更改通常会导致其他模块更改,产生涟漪效益。 由于模块间依赖性增加,模块装配可能需要更多工作和/或时间。 特定模块可能难以重用和/或测试,因为必须包含相关模块。...为什么 这通常会导致更紧密耦合。 可能会暴露过多实现细节。 怎么做 对象方法只能调用以下方法: 对象自身方法方法参数中方法方法中创建任何对象方法。...为什么 控制反转用于提高程序模块性,使其具有可扩展性。 将任务执行与实现分离。 将模块集中在其设计任务上。 使模块不受关于其他系统如何执行其任务假设约束,而是依赖于约定。...隐藏实现细节 软件模块通过提供接口来隐藏信息(即实现细节),而不泄露任何不必要信息。 为什么 当实现更改时,客户端使用接口不必更改。 怎么做 最小化和成员可访问性。 不要公开成员数据。...避免将私有实现细节放入接口中。 减少耦合以隐藏更多实现细节。 科里定律 科里定律关于为任何特定代码选择一个明确定义目标:仅做一件事。

54800

程序员能力提升:你应该知道那些编程原则!!

我觉得这份列表已经足够了,但这并不完全符合我个人想法。此外,我还需要更多论证、细节以及其他资料链接。 KISS 大多数系统如果保持简单而不是复杂,效果最好。...例如,应用程序业务逻辑一个关注点而用户界面另一个关注点。更改用户界面不应要求更改业务逻辑,反之亦然。 引用Edsger W....为什么 一个模块更改通常会导致其他模块更改,产生涟漪效益。 由于模块间依赖性增加,模块装配可能需要更多工作和/或时间。 特定模块可能难以重用和/或测试,因为必须包含相关模块。...为什么 这通常会导致更紧密耦合。 可能会暴露过多实现细节。 怎么做 对象方法只能调用以下方法: 对象自身方法方法参数中方法方法中创建任何对象方法。...为什么 当实现更改时,客户端使用接口不必更改。 怎么做 最小化和成员可访问性。 不要公开成员数据。 避免将私有实现细节放入接口中。 减少耦合以隐藏更多实现细节

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

超级干货:你应该知道那些编程原则!!

我觉得这份列表已经足够了,但这并不完全符合我个人想法。此外,我还需要更多论证、细节以及其他资料链接。 KISS 大多数系统如果保持简单而不是复杂,效果最好。...例如,应用程序业务逻辑一个关注点而用户界面另一个关注点。更改用户界面不应要求更改业务逻辑,反之亦然。 引用Edsger W....为什么 一个模块更改通常会导致其他模块更改,产生涟漪效益。 由于模块间依赖性增加,模块装配可能需要更多工作和/或时间。 特定模块可能难以重用和/或测试,因为必须包含相关模块。...为什么 这通常会导致更紧密耦合。 可能会暴露过多实现细节。 怎么做 对象方法只能调用以下方法: 对象自身方法方法参数中方法方法中创建任何对象方法。...为什么 当实现更改时,客户端使用接口不必更改。 怎么做 最小化和成员可访问性。 不要公开成员数据。 避免将私有实现细节放入接口中。 减少耦合以隐藏更多实现细节

19810

CVPR 2020 | 几篇GAN语义生成论文

本文解决语义场景生成任务。在全局图像级别生成方法中,一个挑战生成小物体和细致局部纹理。...为此这项工作考虑在局部上下文中学习场景生成,并相应地设计一个以语义图为指导、局部特定生成网络,该网络分别构建和学习专注于生成不同场景子生成器,并能提供更多场景细节。...为了学习更多针对局部生成、有辨识力特定表征,还提出了一种新颖分类模块。为了结合全局图像级别和局部特定生成优势,设计了一个联合生成网络,其中集成了注意力融合模块和双判别器结构。...多数情况下,图像生成和处理一直对原始像素进行操作任务;但学习丰富图像和对象表示形式方面的显著进步,为诸如文本到图像或布局到图像生成等主要由语义驱动任务打开了道路。...更多分享: 《基于深度学习表面缺陷检测方法综述》 《零样本图像分类综述: 十年进展》 《基于深度神经网络少样本学习综述》 附下载 | 《可解释机器学习》中文版 附下载 |《TensorFlow

98520

一文get到SOLID原则重点

如果程序中一处改动就会产生连锁反应,导致一系列相关模块改动,那么设计就具有僵化性臭味。OCP建议我们应该对系统进行重构,这样以后对系统再进行那样改动时,就不会导致更多修改。...如果不更改一个模块,又怎么能够去更改功能呢?答案就是抽象。 策略模式(STARTEGY)和模板方法(TEMPLATE METHOD)模式满足OCP最常用方法。...执行完毕后,该方法后置条件为真。派生行为方式和输出不能违反基已经确立任务限制,基用户不应该被派生输出扰乱。 OCPOOD(面向对象设计)中很多说法核心。...倒置含义 为什么使用"倒置”,倒置较于传统软件开发,比如结构化分析和设计,总是倾向于创建一些高层模块依赖于低层模块、策略依赖于细节软件结构。...面象对象程序设计倒置了依赖关系,使得细节和策略依赖于抽象,并且常常是客户拥有服务接口。依赖关系倒置正是好面向对象设计标志所在。实现许多面向对象技术所宣称好处基本低层机制。

29420

hadoop3.0可用【 GA】版发布与alpha1版比较有哪些不同

这个一个alpha 版,通过开发者和使用者帮助测试和搜集反馈。API稳定性和质量还不能保证。 概述 提倡阅读全部发布说明,这里对更改内容做一个概述。...2.支持hdfs erasure encoding 与副本相比纠删码一种更节省空间数据持久化存储方法。...当部署这个新特性时用户应该考虑纠删码网络和CPU开销。 更多细节参考 HDFS Erasure Coding (http://hadoop.apache.org/docs/r3 ......7、更改多个服务默认端口。 此前,多个Hadoop服务默认端口在Linux临时端口范围(32768-61000)。这意味着在启动时,服务有时会失败,绑定到端口,由于与另一个应用程序冲突。...HADOOP-10950(https://issues.apache.org/jira/browse/HADOOP-10950) 介绍了配置守护进程heap大小配置方法 值得注意基于主机内存调整成为可能

74750

对抗复杂度圣杯战争:软件架构究竟该如何设计?

但是,如果每个开发人员对每种更改都采用这种方法,那么复杂性就会迅速累积。一旦积累了复杂性,就很难消除它,因为修复单个依赖项或模糊性本身不会产生很大变化。...一致性会产生认知影响力:一旦你了解了某个地方工作方式,就可以使用该知识立即了解其他使用相同方法地方。如果系统实施方式不一致,则开发人员必须分别了解每种情况。这将花费更多时间。...SOLID 单一职责原则 Single Responsibility 一个代码组件(例如或函数)应该只执行单一预设任务。...注意,不等于每个模块都应该只做一件事,这只是一个面向底层实现细节设计原则,并不是 SRP 全部。准确描述任何一个软件模块都应该只对某一行为者负责,把变更原因不同函数放入不同中。...数据库细节 从架构角度来看,数据库一个非实体——它是一个细节,没有上升到一个架构元素层级。它与软件系统架构之间关系更像是门把手与你家建筑架构关系。 WEB 细节 GUI 一个细节

52163

我从高级开发者身上学到19条编码原则

含义,第一次用到某个功能时,你写一个特定解决方法;第二次又用到时候,你拷贝上一次代码;第三次出现时候,你要着手「抽象化」,写出通用解决方法。...了解全局很重要 了解全局有助处理较小细节。一旦了解了全局,你就不会花很长时间在小细节上。 5. 程序中命名 在编程中进行命名最困难事情之一,包括为一个、一个方法命名,甚至为变量命名。...提高预估时间 你会看到,高级开发人员总是给任务预留更多时间,因为他们知道完成任务所需时间总是高于预期,而且在评估阶段增加一个缓冲时间可以真正帮助你把事情做好。 这确实有助于解决技术负债问题。...最好代码评审过程: 对于一个风险较小任务,1 名开发人员评审就可以; 中型 / 大型更改或者有风险更改,应由 3 名开发人员进行评审,其中须有一位高级开发人员; 风险极高更改或者正在开发应用程序新部分...保持代码简洁 保持代码简洁最好做法。即使这意味着要编写更多行代码。下面相对较弱开发人员编写单行代码: return dir.Keys.Any(k => k >= limit) ?

30220

Apache Hadoop 3.0.0-alpha1版发布做了哪些改进

这个一个alpha 版,通过开发者和使用者帮助测试和搜集反馈。API稳定性和质量还不能保证。 概述 提倡阅读全部发布说明,这里对更改内容做一个概述。...2.支持hdfs erasure encoding 与副本相比纠删码一种更节省空间数据持久化存储方法。...当部署这个新特性时用户应该考虑纠删码网络和CPU开销。 更多细节参考 HDFS Erasure Coding (http://hadoop.apache.org/docs/r3 ......也可看 Unix Shell API文档,它描述了许多新功能,特别是与可扩展性有关功能。 5、MR任务级本地优化 MR任务级本地优化。...7、更改多个服务默认端口。 此前,多个Hadoop服务默认端口在Linux临时端口范围(32768-61000)。这意味着在启动时,服务有时会失败,绑定到端口,由于与另一个应用程序冲突。

93480

分类器可视化解释StylEx:谷歌、MIT等找到了影响图像分类关键属性

本文中,来自谷歌、 希伯来大学、 MIT 等机构研究者提出了一种新分类器可视化解释方法——StylEx,该方法能以不同方式修改图像属性来更改其分类器输出。...神经网络可以非常出色地执行各种任务,但它们如何做出决定呢?例如,在图像分类任务中,模型如何确定一张图像属于这一而不是属于另一,这通常是一个谜题。...另一方法通过在一和另一之间平滑转换图像来提供解释(例如 GANalyze)。然而,这些方法倾向于一次性改变所有属性(例如颜色、形状),因此,很难隔离单个属性带来影响。...然而,仅仅只有图像视觉相似性不够,因为它可能不一定捕获对特定分类器(例如医学病理学)重要细微视觉细节。...对于分类严重依赖精细细节任务,将 classifier loss 添加到 StyleGAN 训练中至关重要。

19530
领券