写简单的表达式(Expression) 2. 表达式求值 3. 字符串和图像 4. 常数 0. 表达式可以相互嵌套,下面的表达式同样返回7. (+ 3 (* 2 2)) 1 加(+)减(-)乘(*)除(/)都可以进行运算,这里再引入两个运算sqr和sqrt: (sqr 2) ; 计算2的平方 ,4 (sqrt 4) ; 计算4的平方根,2 1 2 2. 1 2 3 4 5 6 7 8 3. 3 4 5 6 7 8 9 使用任何图形函数都需要在BSL文件头加入(require 2htdp/image),使用库中的相关函数。
Unix 设计哲学,主张组合设计,而不是单体设计;主张使用集体智慧,而不是某个人的特殊智慧。 对编程的启示: 启示一:保持简单清晰性,能提升代码质量 代码之间的相互影响越多,软件越复杂。 这充分说明了 Unix 哲学的组合思维:把软件设计成独立组件并能随意地组合,才能真正应对更多变化的需求。 然而,在实际工作中,你很多时候可能都只是在做“定制功能驱动”式的程序设计。 比如,用户需要一个“上传文件的红色按钮”,你就实现了一个叫“红色上传按钮功能”的组件,过几天变为需要一个“上传文件的绿色按钮”时,你再修改代码满足要求……这不是组合设计,而是直接映射设计,看似用户是需要 很多时候看上去我们是一直在设计不同的程序,实际上对于真正多变的需求,我们并没有做到组合设计,只是通过不断地修改代码来掩饰烂设计罢了。 要想做到组合设计,Unix 哲学其实给我们提供了两个解决思路。 ---- 启示三:重拾数据思维,重构优化程序设计 再高大上的架构设计,如果系统对数据的组织是混乱的,那么可以轻松预见随着系统的演进,系统必然会变得越来越臃肿和不可控。
五、本地生意:从“位置与促销”,到“行为可见性”在本地生活场景中,信任的系统化尤为直观。 七、系统化设计,正在取代个人表达这也解释了一个反直觉现象:越来越多“不擅长表达”的企业,反而获得了更稳定的增长。
目录 本节为你提供的核心技术价值 1. 2026年AI合规 landscape:从被动应对到主动设计 1.1 全球AI监管趋势 1.2 合规风险的业务影响 1.3 合规驱动的产品设计理念 2. AI产品合规框架设计 2.1 合规设计原则 2.2 合规架构层次 2.3 合规风险评估模型 3. 伦理治理体系构建 3.1 伦理委员会设立 3.2 伦理风险评估框架 3.3 伦理准则制定 4. 传统的合规模式是"先开发后合规",而2026年的最佳实践是"合规驱动设计"(Compliance by Design)。 这种理念要求在产品设计初期就将合规要求融入技术架构,实现从被动应对到主动设计的转变。 2. AI产品合规框架设计 2.1 合规设计原则 隐私保护优先:数据最小化、目的限制、安全存储 透明度与可解释性:决策过程可追溯、结果可解释 公平性与非歧视:算法偏见检测与缓解 安全性与鲁棒性:对抗攻击防护、
这里涉及到计算机网络的两种通信方式,C/S 方式和 P2P(点对点对等方式)。 P2P 点对点的核心解释就是网络上的计算节点既是服务的提供者,为其它计算节点提供服务,又是消费者,依赖于其它上游服务。 以下代码是 YII2 中链路 Id 生成示例 public static function createRequestId() { //$prefix = $module; 借助于 HTTP 等调用组件的超时参数设置 第二种方式,服务器(服务方)检测时间差,客户端(请求方)请求时间与服务器(服务方)时间的差值与超时时间做对比 “当接口查询不到数据时,接口 code 应该如何设计
题图:Photo by Myriam Jessier[1] on Unsplash[2] 痛点 总有小伙伴留言或私信问我: 王老师,我没有基础,想要入门数据科学的话,上某某辅导班(收费 XXXX 元) utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText [2] Unsplash: https://unsplash.com
使用自表一对多设计这个表格,因为如果使用多个表格的话,需要增删的情况下就需要改动表格的结构了。所以使用自表一对多的方式,自己这张表的主键对应着自己这张表的外建。 代码示例: ? 例题2: ? 表格设计: 在sqlyog里我们可以通过此工具设计表格时建立表格之间的映射关系: ? 点击进入此界面后右键选择Add Tables...或者Create Table可以添加表格和创建表格: ? 一对一: 表格一对一设计方式有两种,一种是主键对应着关系表的主键,另一种方式是主键对应着关系表设置了唯一索引的外建。 一对多: 一对多关系的表格设计也有两种方式,一种是自表的一对多,第二种是主键对应关系表的外键。 自表一对多: ? 主键对应关系表的外键一对多: ? 多对多: 多对多的表格设计方式是使用一张关系维护表来维护其他表之间的映射关系。 ?
理解编译器的特性,确保其生成的代码与设计意图完全一致,是可靠性保障的第一步。二、代码设计:不仅仅是风格问题编程规范对可靠性的影响远不止于可读性。 硬件特性适配:理解所用存储器的块擦除、写入寿命等特性,设计均衡的写入策略,避免集中在同一区域导致过早失效。五、人机交互与报警:构建安全的最后防线人是系统的一部分,可靠的设计必须考虑人为误操作。 六、从设计到验证:功能安全与软件DFMEA真正的可靠性需要贯穿开发全流程的体系保障。 功能安全设计:遵循如ISO 26262(汽车)或IEC 61508(工业)等标准,从软件架构、详细设计到代码实现,每个阶段都有明确的安全措施和可追溯性要求。 软件DFMEA:在设计阶段主动分析潜在的失效模式、原因及影响。与硬件FMEA协同,评估软件失效率特性,识别单点故障,并提前设计容错或保护机制。
该原则是作为一个指导思想来做的,其作用就是防止过度设计,但需要注意的是其是让你不做,但需要有可能要做的意识,提前留好拓展点,这样如果要做的时候,也可以快速跟上。 ** 后续会有一篇文章,来专门讲解如何在软件设计中,防止过度设计,但对对应该优化,该留好优化点如何实现。 这样的设计可能会导致以下问题, 当一个不知情的人看到这两段代码完成的任务是一样的,但采用的解决方式却是不一样的,则会想其的设计深意,以及不知道该用哪一个? true; } return validContainsA(temp); } 上述代码因为举的例子比较简单,应该能很简单的看出有一段代码被执行了两次,那么这样的设计违反了 迪米特原则 定义 迪米特原则是用来指导设计高内聚、低耦合代码的原则,因此我们先看一下什么是高内聚、低耦合。
| 导语:本文为交互系统化研究第二篇,将从动机的分类及其在界面中的应用进行分析,并介绍不同动机间的联系与转化方式 动机的分类 动机间的联系与转化 以是否受自身意识决定的程度,可将动机拆解为无动机、 使用方法及注意点: 挑战难度与玩家能力相匹配:”心流“中的必要三条件之一,是”挑战/能力比率“的设计,需游戏策划多年的实践经验才能有所建树,同样也非交互设计师的所长,在此不做详解。 *新手引导为不同能力玩家提供选择方案,增加玩家的自主性 利用好奇心理:好奇心是自主学习的强大动力,被大量应用于界面设计之中。与可预期的结果相比,玩家更喜欢处于未知状态的刺激感。 *互惠是促进社交的惯用手段之一 *关系量化的设计符合现实世界对于人际关系的认知 实际使用上,游戏系统中的动机一般是复合存在的。
图1-go项目文件.png 图 1 是《极客时间》一个微课程中的一张 Go 项目工程图,印证了我这些年开发设计中对于工程创建的一些理念想法,叙述如下。 分层设计 ? 图2-解决方案结构-01.png 分层设计是老话题了,软件设计的核心就是自上而下,分而治之。 图 2 是我之前架构的一个项目,自上而下,分别是应用层 Apps,服务层 Services,仓库 Repository,公共组件 Core。 理论如此,实践中的难度在于区分的粒度和度量标准。 数据也就是图 1 中的 DAO,图 2 中的 Repository。业务也就是 Model。DAO 与 Model 并不存在严格的对应关系。 DAO 主要与数据库存储交互,不参与业务逻辑。 我们以 YII2 工程为例,官方推荐的 Advanced 模版中有一个公共工程 common 那我们是不是应该把项目中可以共用的数据层都放到 common 里? ?
本文作为交互系统化研究的开篇,通过基础的游戏构建模块,以交互设计师的视角逐一分析,为日常界面设计工作提供一些参考。 *此阶段人群属于认知最初阶段,多以简易手势及图形化语言设计游戏操作 儿童期(7-9岁):阅读能力提升,能够解决一些简单问题,开始有一定的自我意识。 但过于强调胜负感受会造成失败玩家的流失,这点在界面设计时需谨慎对待。 *女性向游戏充斥着大量文字相关玩法,对剧情内容的设计更加考究 3.2.5 颜色分辨能力:颜色方面女性的分辨能力更佳,能够分辨出更多的色彩。 - 感谢阅读 - 参考书目: 《游戏艺术设计》第二版 《自私的基因》 《游戏设计》 《认知心理学》 《猿形毕露》
Model设计 1.在settings.py中配置: AUTH_USER_MODEL='users.UserProfile' 2.在apps/users/models.py中: from django.db '女'), (3, '不详')), default=3, verbose_name='性别', help_text='1:男,2:女,3:不详 '非农业户口')), verbose_name='户籍性质', default=2, help_text='1:农业户口,2:非农业户口 初中,3:高中,4:中专,5:大专,6:本科,7:硕士,8:博士') hunyin=models.IntegerField(choices=((1, '未婚'), (2, '已婚'), (3, '离异'),(4,'丧偶')), default=2, verbose_name='婚姻状况', help_text='1:未婚,2:已婚,3
Java 设计模式的相关原则 一、单一职责原则 单一职责原则: 应该有且仅有一个原则引起类的变更 单一职责可以简答的理解为,一个类或者对象,承担的只能应该尽可能单一。 单一职责用“职责”和“变化原因”来衡量接口或类设计得是否优良。但是“职责”的确定往往是无法度量的。 PS: 子类出现的地方,父类未必可以出现 在类中调用其他类时,务必使用父类或接口,如果不能使用,则说明类的设计已经违背了里氏替换原则(Liskov Substitution Principle,LSP 接口隔离原则需要保证的几个特性: 接口尽量要小: (在保证单一职责的情况小,尽量保证接口不过于臃肿) 接口要高内聚:(尽量减少与外界的交互,少公有,多私有) 定制服务: (为特定的服务对象提供其所需的方法) 接口设计是有限度的
组件生命周期 早期的react设计了许多的生命周期钩子。 shouldComponentUpdate(根据true or false决定是否更新)->componentWillUpdate(即将feiqis)->render->componentDidUpdate 2. 中间那一层父组件根本用不上这个prop,但是依然需要支持这个prop,扮演好搬运工的角色,只因为子组件用得上,这明显违反了低耦合的设计要求。在flux和redux中我们会探讨如何解决这样的困局。 组件设计方法论 一些指导性原则: •组件尽可能通过props通信。不用context •组件属性需要有默认值,做好类型检查 •组件属性尽可能使用简单值。避免使用对象。
1.Models设计: 1.重构用户表: 1.在users/models.py中: from django.db import models from django.contrib.auth.models 用户' verbose_name_plural = verbose_name def __str__(self): return self.username 2. django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applie 2. 1.将DjangoUeditor包放到extra_apps目录下 2.在settings.py中注册DjangoUeditor ? /', include('good.urls',namespace='goods')), path('ueditor/',include('DjangoUeditor.urls' )) ] 2.
除法(/):计算两个数值的商,且结果始终为浮点数(小数),比如 “8 / 2” 结果为 4.0,“7 / 3” 结果约为 2.333...(不会因数值整除而返回整数)。2. 取余(%):计算除法运算后的余数,比如 “7 % 3” 结果为 1(3×2=6,7-6=1),“10 % 4” 结果为 2;常用于判断数值是否为偶数(如 “x % 2 == 0”,若成立则 x 为偶数) 幂运算()**:计算一个数的 “n 次方”,比如 “2 ** 3” 表示 2 的 3 次方,结果为 8;“5 ** 2” 表示 5 的平方,结果为 25;也支持小数次幂,如 “4 ** 0.5” 表示 2. 例:“not (5> 3) or (8 < 10) and (2 == 2)”,执行顺序:① 先算比较运算:5>3(True)、8<10(True)、2==2(True);② 再算 not:not
如果数值在 253 到 2^16 -1 之间,那么第一个字节设置为 0xfd(253),然后接下来用两个字节来表示。 如果数值在 2 ^ 16 到 2 ^ 32 -1 之间,那么第一个字节设置为 0xfe,然后接下来使用 4 个字节来表示,如果数值在 2 ^ 32 到 2 ^64 -1,那么第一个字节设置为 0xff, "" i = s.read(1)[0] if i == 0xfd: return Tx.little_endian_to_int(s.read(2) 最后中本聪设计序列号的作用是实现高频交易,但这个设计存在严重漏洞,交易部分对应二进制数据如下,我用{}标记出来: 0100000001 { 813f79011acb80925dfe69b3def355fe914bd1d96a3f5f71bf8303c6a989c7d10000000 { 2a135ef0100000000 1976a914bc3b654dca7e56b04dca18f2566cdaf02e8d9ada88ac } 99c39800000000001976a9141c4bc
2.在函数名 Add 后的括号中写的 x 和 y ,称为形式参数,简称形参。(为什么叫形式参数呢? 我们在调试的可以观察到,x和y确实得到了a和b的值,但是x和y的地址和a和b的地址是不⼀样的,所以我们可以理解为形参是实参的⼀份临时拷⻉ 2.3 return 语句 在函数的设计中,函数中经常会出现 ,如果要函数实现,可以设计2个函数: • is_leap_year():根据年份确定是否是闰年 • get_days_of_month():调⽤is_leap_year确定是否是闰年后,再根据⽉计算这个 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int day = days[m]; if (is_leap_year(y) && m == 2) 第三个printf打印43,在屏幕上打印2个字符,再返回2 第⼆个printf打印2,在屏幕上打印1个字符,再放回1 第⼀个printf打印1 所以屏幕上最终打印:4321 那如果我加多一个空格呢
2. 数据类型的分类:信息的结构化表达基础类型:数字:整数(年龄、数量)与浮点数(温度、价格)的区分,反映离散与连续数据的差异。 2. 循环结构:重复任务的自动化for循环:遍历序列(列表、字符串)的每个元素,如统计单词频率或计算阶乘。while循环:基于条件持续执行,如游戏中的帧更新或数据流处理。 2. 继承与多态:代码的扩展与复用继承机制:子类继承父类属性与方法,如ElectricCar(Car)扩展电动汽车的电池容量属性。 2. 标准库的深度应用:Python的“内置宝藏”文件操作:open()函数与上下文管理器(with语句)实现安全读写,如日志文件的自动关闭。 结语:编程思维的本质是问题分解与系统设计Python的学习不仅是语法记忆,更是从“具体到抽象”的思维训练。从变量存储信息到框架构建系统,每一步都需理解其背后的设计哲学。