草庐IT

单一职责原则

全部标签

CAP原则之ZK和Eureka注册中心

分布式CAP原则与BASE理论CAPCAP是Consistency、Availablity、Partition-tolerance的缩写,由计算机科学家埃里克·布鲁尔在2000年提出的,所以又称布鲁尔定理(Brewer’stheorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点 Consistency(一致性):如果对任意一个节点的数据就行修改成功后,所有其他节点都能读取到最新的值,那么这个系统就被认为具有严格的一致性。 Availability(可用性):每次请求都能获取到非错的响应,即单节点宕机可从其他节点获取到响应,但是不能保障获取到的数据为最新的数据,即和一致性互斥 

【Deep Dive: AI Webinar】将SAFE-D原则应用于开源人工智能中

【深入探讨人工智能】网络研讨系列总共有17个视频。我们按照视频内容,大致上分成了3个大类:1.人工智能的开放、风险与挑战(4篇)2.人工智能的治理(总共12篇),其中分成了几个子类:a.人工智能的治理框架(3篇)b.人工智能的数据治理(4篇)c.人工智能的许可证(4篇)d.人工智能的法案(1篇)3.炉边对谈-谁在构建开源人工智能? 今天发布的是第二个类别 “人工智能的治理” 里 “人工智能的治理框架” 的第二个视频:将SAFE-D原则应用于开源人工智能中。我们期盼如此分类,对读者的易读性有帮助,也欢迎读者们的反馈和指正。          ---开源社.国际接轨组---StefanoMaffu

软件开发、设计、架构的五大原则

唯一不变的就是变化本身。我们经常讲的系统、子系统、模块、组件、类、函数就是从逻辑上将软件一步步分解为更细微的部分,即逻辑单元,分而治之,复杂问题拆解为若干简单问题,逐个解决。逻辑单元内部、外部的交互会产生依赖,从而产生了内聚、耦合概念。内聚主要描述逻辑单元内部,耦合主要描述逻辑单元之间的关系。我们经常讲的高内聚,低耦合,如何做到,做到的标准是什么?这就是开发、设计、架构的五大原则所体现出的价值,最终达到高内聚,低耦合的软件目标。耦合逻辑单元之间存在依赖,导致改动可能会互相影响,关系越紧密,耦合越强,逻辑单元独立性越差。比如模块A直接操作了模块B中数据,则视为强耦合,若A只是通过数据与模块B交互

c++ - 堆栈分配的 RAII 对象与 DI 原则

在C++中,我经常使用RAII风格的对象来使代码更可靠,并将它们分配到堆栈上以提高代码的性能(并避免bad_alloc)。但是在堆栈上创建具体类的对象违反了依赖倒置(DI)原则并阻止模拟此对象。考虑以下代码:structIInputStream{virtualvectorread(size_tn)=0;};classConnection:publicIInputStream{public:Connection(stringaddress);virtualvectorread(size_tn)override;};structIBar{virtualvoidprocess(IInputS

软件测试基本原则

基本原则既然软件测试的目的是寻找软件的错误和缺陷,从而来评估和提高软件质量,那么软件进行测试时必须要遵一定的原则:1.一切测试要追溯到用户的需求正如我们所知,软件测试的目标就是验证产品的一致性和确认产品是否满足客户的需求,所以测试人员要始终站在用户的角度去看问题、去判断软件缺陷的影响,系统中最严重的错误是那些导致程序无法满足用户需求的缺陷。2.应该把“尽早测试和不断测试”作为测试人员的座右铭我们应该在需求模型完成后立马就开始制定测试的计划,详细的测试用例定义也可以在需求的模型确定后立即开始进行.因此测试应该在代码没有产生前就要进行计划和设计.3.pareto原则(二八原则):80%的错误,发生

c++ - 具有专门用于 C++ 的单一方法的模板类

我只有一个hpp文件用于C++的学校作业(我不允许添加cpp文件,声明和实现都应该写在文件中)。我在里面写了这段代码:templateclassMatrix{voidfoo(){//dosomethingforaTvariable.}};我想再添加一个foo方法,但是这个foo()将专门用于.我在一些地方读到我需要声明一个新的特化类(class)才能工作。但我想要的是专门的foo将位于原始foo的正下方,所以它看起来像这样:templateclassMatrix{voidfoo(Tx){//dosomethingforaTvariable.}templatevoidfoo(intx){

c++ - 类实例和指针背后的 Delphi 设计原则是什么?

我有C++背景,对类、指针和内存地址相当了解。但是,对于Delphi,我发现自己很困惑。我知道,当您在函数/过程的var部分中声明特定类型类的变量时,您真正声明的是指向该类的指针。例如,下面的Delphi和C++大致相同,都在堆上分配MyObject类所需的内存量。//DelphiprocedureBlah.Something();varo:MyObject;begino:=MyObject.Create;o.Free;end;//C++voidBlah::Something(){MyObject*o=newMyObject();deleteo;}在C++中,使用指针(和引用)允许在类

Apache孵化器领路人与导师的职责

对于捐赠到ASF孵化器的项目来说,ASF孵化器项目管理委员会(IPMC)的成员会扮演两个角色,一个孵化器领路人(Champion),另外一个是孵化器导师(Mentor)。本文源自ALCBeijing9月份的ASF孵化讨论,TedLiu发起的ASF项目孵化101倡议飞书文档。笔者针对对FAQ中有关领路人和导师的职责进行进行了撰写并在大家的反馈基础上进一步进行完善,希望能对ASF孵化器的导师有所帮助。孵化器领路人(Champion)的职责领路人(Champion)需要扮演好项目与基金会的沟通桥梁作用。领路人要熟知ASF的捐赠流程,以及ASF项目成熟度评估模型,领路人需要帮助项目进行一些基本的自我评

c++ - 很难理解 char (*p)[sizeof(c)]; 的优先级原则;

我正在学习指针并挑战自己,我尝试取消引用指向字符数组的指针。最终这成功了:char(*p)[sizeof(c)];其中c是一个数组c[]="something"我很难理解(*p)[sizeof(c)];与*p[sizeof(c)];的区别。p>根据我目前所知道的(这并不多!)计算机在(*p)[sizeof(c)];的情况下是这样说的:“p指向c!哦,顺便说一句,p是一个数组,无论sizeof(c)最终是什么”。但这对我来说似乎很奇怪,所以我想我对添加括号时所构造的内容感到困惑。谁能解释一下?上下文中的完整代码:#includeusingnamespacestd;intmain(inta

c++ - 默认构造函数省略/赋值省略原则上是否可行?

.甚至是C++11标准允许的?如果是这样,是否有实际执行此操作的编译器?这是我的意思的一个例子:template//Tisabuiltintypeclassdata{public:constexprdata()noexcept:x_{0,0,0,0}{}constexprdata(constT&a,constT&b,constT&c,constT&d)noexcept:x_{a,b,c,d}{}data(constdata&)noexcept=default;data&operator=(constdata&)noexcept=default;constexprconstT&opera