jjzjj

solid-principles

全部标签

Solidity 开发环境搭建

 目录如何在以太坊上编写智能合约设置开发环境编写合约部署如何在以太坊上编写智能合约Solidity是用于开发以太坊智能合约的最受欢迎的语言之一,因此,作为一个想要成为区块链开发人员的人,需要学习如何使用Solidity开发智能合约。设置开发环境我们将使用的IDE是Remix,在浏览器输入RemixURL。完成后,你应该会看到一个类似以下的界面:在左侧,我选择了两个主要组件。第一个图标是文件浏览器,在这里可以查看你所有的Solidity文件,第二个图标是插件管理器,从中可以添加新插件。我们将需要添加两个插件,因此请单击插件管理器图标,然后输入“Soliditycompiler(编译器)”。然后通

php - 如何在完整的 OO 应用程序中处理依赖注入(inject)

我在类设计上遇到了难题。我尽力遵守SOLID原则,但我不知道如何处理依赖注入(inject)。这是我的困境:我读到在类中实例化对象以避免引入依赖性是一种不好的做法。那么在一个完整的对象应用程序中,我们的依赖应该在哪里创建呢?在一个只负责依赖实例化的特殊对象中?如果是,这个对象的名称是什么以及如何定义它?就是我们所说的“控制者”吗?这个“Controller”,对它进行单元测试的正确方法是什么?我们应该对其进行单元测试吗?在完整的POO应用程序中,如何避免在类之间传递我们的对象(通常是相同的)?例如,一个DB对象,Log,...这样,我们冒着拥有带有许多参数的构造函数的风险,不是吗?为了

php - 我们可以在 Laravel Controller 中有两个或更多类吗

考虑到接口(interface)隔离原则,这是面向对象编程中最“被谈论”的原则之一-SOLID原则,我想知道是否有可能在一个LaravelController中有两个不同的类?例如: 最佳答案 从技术上讲,您可以在同一个文件中包含多个类。对于Laravel(或任何框架),如果您想使用它的自动加载器,则不是真的,因为classname=filename是惯例。此外,Controller负责处理请求。您可以在Controller函数中加载尽可能多的不同类的实例。但是在Controller文件中定义其他类根本不是您应该做的。

solidity 合约入金出金(eth)

合约入金(eth)    合约入金有四个方式:        合约函数入金,只需合约函数用publicpayable修饰即可        回调函数入金(无参数函数也叫callback函数)用publicpayable修饰即可如            function()publicpayable{}        外部账户直接给已存在的合约地址转入eth        外部地址部署智能合约时转入eth                合约出金(eth)    合约要出金给他人账户,必须在合约内执行调用,调用方式有三种        receiveAddress.transfer(uint256

php - 具有返回类型和 SOLID 的接口(interface)

自PHP7发布以来,我一直在重温SOLID原则。特别是Liskovsubstitutionprinciple的想法简而言之,它指出类的任何扩展都应该能够在可以使用其父类的任何地方使用。此原则的一部分是针对接口(interface)进行编码,因此您的方法定义了要遵守的契约。但是,在PHP5及以下版本中,返回类型不存在。因此,尽管您必须将相同的参数类型传递给使用接口(interface)的方法,但您可以返回任何您喜欢的旧类型。对于大型项目,这使得遵守这一原则比使用其他语言要困难得多。我还没有安装PHP7来测试它,我也没有在PHP手册或任何博客网站上看到任何宣传新功能的文档。PHP7中的接口

solidity中转账接收者与发起者的问题

转账接收者、发起者问题问题描述基础知识1、address(this)2、msg.sender2.2账户地址分析问题解决1、我的问题2、到底谁是转账的发送者呢?总结问题描述准备写个转账的代码时,发现solidity语言中转账的函数有三个,分别是send、transfer、call。用法也很简单: 目标接收者地址.transfer(金额); 目标接收者地址.send(金额); 目标接收者地址.call.value(金额)();但使用过程中,总是转账失败,返回revert错误,显示没有钱发送。此时我就很想知道到底是谁再给目标地址转账了。可以很明显的看出,代码很明显指出接收者是谁,但是发送

Solidity - 安全 - 重入攻击(Reentrancy)

TheDAO事件首先简要说明下一个很有名的重入攻击事件,再模拟重入攻击。TheDAO是分布式自治组织,2016年5月正式发布,该项目使用了由德国以太坊创业公司Slock.it编写的开源代码。2016年6月17上午,被攻击的消息开始在社交网站上出现,到6月18日黑客将超过360万个以太币转移到一个childDAO项目中,childDAO项目和TheDAO有着一样的结构,当时以太币的价格从20美元降到了13美元。当时,一个所谓的”递归调用“攻击(现在称为重入攻击)名词随之出现,这种攻击可以被用来消耗一些智能合约账户。这次的黑客攻击最终导致了以太坊硬分叉,分为ETH和ETC,分叉前的为ETC(以太坊

php - 架构设计帮助 - OOP Solid Principle

我正在尝试制作开源缓存库。库的目的是提供将变量(可以是对象,可以是数组,可以是任何东西)存储到文件然后在调用时检索它的方法。(通常那些变量值是海量数据库查询和计算的结果)。该项目的基本目标是实践称为Solid的面向对象设计原则。如果有人能指出我在哪里违反了坚实的原则以及如何解决它我完全理解stackoverflow不是一个代码编写服务,但是嘿,我正在将这个库开源,所以它会让我们的社区受益。这是我的文件结构。我是UML新手,所以如果发现任何错误请忽略这是类的实现。缓存namespacelibrary\pingle\cache;uselibrary\pingle\cache\config\

php - SOLID 原则中的 SRP 会导致 Lasagna Code 吗?

根据SOLID原则,尤其是SRP,我们有很多类..我的意思是,这就像你想建立一个数据库类然后,你有处理数据库(选择、插入、更新、删除等)的DatabaseHandler类,DatabaseAdapter类是一个扩展的PDO类(可以在构造时设置首选默认模式,一个新的prepare方法,直接准备语句,将其与参数绑定(bind),并执行它,QueryBuilder类是SelectStatementBuilder类、InsertStatementBuilder类、DeleteStatementBuilder类、UpdateStatementBuilder类(用于构建SQLStatement)的

java - 什么是一类一责原则?

我想了解一个类(class),一个职责原则。我找到了一些关于它的文章,但没有例子。如果你能给我一个违反原则的类的例子,那将对我有所帮助。我很熟悉一个方法应该只做一件事的想法,例如get和set方法。它不能与一个类,一个职责相同,因为set和get方法都在一个类中实现。那么这是否意味着该类违反了规则,因为该类既有设置也有获取的责任?什么是一类一责原则? 最佳答案 我不是这个设计模式的100%专家,但我是这样想的-如果我创建一个对象,它恰好负责一件事。如果它需要做其他事情,但又与另一个对象相关,根据情况,我会使用继承或接口(interf