principle

黑客不可不知的定律和法则

南笙酒味 提交于 2020-01-04 03:17:19
hacker-laws 的的中文翻译。 对开发人员有用的定律,理论,原则和模式。(Laws, Theories, Principles and Patterns that developers will find useful.) 为了方便阅读,维基百科增加了中文链接! 英文链接表示 hacker-laws 项目尚未完成。 github 地址 介绍 定律 阿姆达尔定律 (Amdahl's Law) 布鲁克斯法则 (Brooks's Law) 康威定律 (Conway's Law) 侯世达定律 (Hofstadter's Law) 技术成熟度曲线 (The Hype Cycle & Amara's Law) 隐式接口定律 (Hyrum's Law) 摩尔定律 (Moore's Law) 帕金森定理 (Parkinson's Law) 普特定律 (Putt's Law) 复杂性守恒定律 (The Law of Conservation of Complexity) 漏洞抽象定律 (The Law of Leaky Abstractions) 帕金森琐碎定理 (The Law of Triviality) Unix 哲学 (The Unix Philosophy) Spotify 模型 (The Spotify Model) 沃德勒定律 (Wadler's Law) 原则 鲁棒性原则

JAVA基础(四)--一些基本原则

℡╲_俬逩灬. 提交于 2019-12-27 21:33:58
s( Single-Resposibility Principle ): 单一职责原则 o( Open-Closed principle ): 开放封闭原则 l( Liskov-Substituion Principle ): 里氏原则 i( Interface-Segregation Principle ): 接口隔离原则 d( Dependecy-Inversion Principle ): 依赖倒置原则 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。 Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。

Dependency Inversion Principle (SOLID) vs Encapsulation (Pillars of OOP)

匿名 (未验证) 提交于 2019-12-03 02:44:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I was recently having a debate about the Dependency Inversion Principle , Inversion of Control and Dependency Injection . In relation to this topic we were debating whether these principles violate one of the pillars of OOP, namely Encapsulation . My understanding of these things is: The Dependency Inversion Principle implies that objects should depend upon abstractions, not concretions - this is the fundamental principle upon which the Inversion of Control pattern and Dependency Injection are implemented. Inversion of Control is a pattern

TDD FIRST principle

匿名 (未验证) 提交于 2019-12-03 02:06:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am not understanding how the TDD FIRST principle isn't being adhered to in the following code. These are my notes about the FIRST principle: Fast : run (subset of) tests quickly (since you'll be running them all the time) Independent : no tests depend on others, so can run any subset in any order Repeatable : run N times, get same result (to help isolate bugs and enable automation) Self-checking : test can automatically detect if passed (no human checking of output) Timely : written about the same time as code under test (with TDD, written

ASP.NET ZERO 学习 ―― (1) 介绍

匿名 (未验证) 提交于 2019-12-03 00:39:02
本系列教程转载alistair_chow的博客,主要是记录个人学习过的信息,方便学习,如果有问题,请私信,我会及时删除 5 in 1 ASP.NET CORE 1.x & ANGULAR 2.x 为基础的解决方案 ASP.NET CORE 1.x & jQuery 为基础的解决方案 ASP.NET MVC 5.x, Web API 和 AngularJs 1.x 为基础的单页面解决方案 ASP.NET MVC 5.x 和 jQuery 为基础的解决方案 ASP.NET MVC 基础应用 多租户支持 认证和授权 UI多语言支持 设置管理 SOLID 架构 ASP.NET MVC ASP.NET Web API EntityFramework Code-First and Migrations ASP.NET Boilerplate AutoMapper metronic主题样式 自动化测试 面向切面编程 更多 What is ABP ABP 是 ASP.NET Boilerplate 模板项目的简称,它的目的是建立一个通用的WEB应用程序和项目模板。 官网地址: http://www.aspnetboilerplate.com/ 官网教程: http://www.aspnetboilerplate.com/Pages/Documents/Introduction

编程原则浅析

匿名 (未验证) 提交于 2019-12-03 00:32:02
作者: pengdai 出处: https://www.cnblogs.com/pengdai 一、开发原则 S:单一职责SRP O:开放封闭原则OCP L:里氏替换原则LSP I:接口隔离法则 D:依赖倒置原则DIP 合成/聚合复用原则 迪米特法则 在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐述意义。 面向对象的基本原则(solid)是五个,但是在经常被提到的除了这五个之外还有迪米特法则和合成复用原则等,所以在常见的文章中有表示写六大或七大原则的; 除此之外我还将给出一些其它相关书籍和互联网上出现的原则; Single-Responsibility Principle,一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则的引申,将职责定义为引起变化的原因,以提高内聚性减少引起变化的原因。 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。(Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.),即又定义有且仅有一个原因使类变更

Template Method Principle

匿名 (未验证) 提交于 2019-12-03 00:29:01
Template Method Principle 在父类中实现业务逻辑,子类中实现具体动作。 在父类中实现了 templateMethod ,实现打印逻辑,在子类中,实现具体动作,如 open , print , close 等。 开闭原则 在扩展新的 ConcreteClass 时,不需要修改原 AbstractClass 类。 其他场景 分页操作,实现分页控件,在父类中实现具体的分页逻辑,子类中需要实现需要分页的数据查询。 文章来源: Template Method Principle

什么是整洁的架构

老子叫甜甜 提交于 2019-12-02 05:22:06
看完了clean code -- 代码整洁之道,那么接下来就应该读读其姊妹篇:clean architecture -- 架构整洁之道。不过对我而言,代码是实实在在的,看得见,摸得着;而架构虽然散发着光芒,但好像有点虚,似乎认知、思考还比较少。本文主要记录 《clean architecture》 的主要内容以及自己的一点思考。 本文地址: https://www.cnblogs.com/xybaby/p/11729354.html 架构的存在意义 clean architecture的作者是一位从事软件行业几十年的架构大师,参与开发了各种不同类型的软件,在职业生涯中发现了一个规律:那就是,尽管几十年来硬件、编程语言、编程范式发生了翻天覆地的变化,但架构规则并没有发生变化。 The architecture rules are the same! 我想读过clean code之后,应该都达成了以下共识 getting it work is easy getting it right is hard right make software easy to maintain、change 上升到架构层面来说,问题同样存在,而且更加明显,因为架构的影响面远大于代码。作者举了一个例子,展示了随着代码量增加、团队人员增加、release版本增加,导致的新增代码代价的激增以及 程序员

什么是整洁的架构

我的未来我决定 提交于 2019-12-02 04:47:33
看完了clean code -- 代码整洁之道,那么接下来就应该读读其姊妹篇:clean architecture -- 架构整洁之道。不过对我而言,代码是实实在在的,看得见,摸得着;而架构虽然散发着光芒,但好像有点虚,似乎认知、思考还比较少。本文主要记录 《clean architecture》 的主要内容以及自己的一点思考。 本文地址: https://www.cnblogs.com/xybaby/p/11729354.html 架构的存在意义 clean architecture的作者是一位从事软件行业几十年的架构大师,参与开发了各种不同类型的软件,在职业生涯中发现了一个规律:那就是,尽管几十年来硬件、编程语言、编程范式发生了翻天覆地的变化,但架构规则并没有发生变化。 The architecture rules are the same! 我想读过clean code之后,应该都达成了以下共识 getting it work is easy getting it right is hard right make software easy to maintain、change 上升到架构层面来说,问题同样存在,而且更加明显,因为架构的影响面远大于代码。作者举了一个例子,展示了随着代码量增加、团队人员增加、release版本增加,导致的新增代码代价的激增以及程序员生产力的下降

From Apprentice To Artisan 翻译 16

落爺英雄遲暮 提交于 2019-12-01 12:45:02
上一篇 Single Responsibility Principle 单一职责原则 Introduction 介绍 The "SOLID" design principles, articulated by Robert "Uncle Bob" Martin, are five principles that provide a good foundation for sound application design. The five principles are: 罗伯特“鲍勃叔叔”马丁阐述了名为“坚实”的一些设计原则(译者注:看下面五个原则的首字母正是 SOLID)。这些都是制作完善的程序设计的优秀基础,一共有五个原则: The Single Responsibility Principle 单一职责原则 The Open Closed Principle 开放封闭原则 The Liskov Substitution Principle 里氏替换原则 The Interface Segregation Principle 接口隔离原则 The Dependency Inversion Principle 依赖反转原则 Let's explore each of these principles in more depth, and look at some code