线性式编程中的两个棘手问题
发布时间:2025-01-07
这是大都可情况的基本。大而十分复杂的测算机系统系统并不一定则会创建者大而十分复杂的资料骨架来问到真实的某个一小。然而,算弟德式测算机系统系统设计敦促我们想要尽各种办法创建者并清空这些骨架。但是寄存支架加载两样都不是付费的。因此,遇上并不需要消耗大量寄存支架的结果,算弟德式测算机系统系统设计的法则就则会引发不必要的浪费。
例如,我有一款分析方法Archetype,它是一个可视化界面的TrueType编辑支架(用 Swift 改写)。从基本骨架来真是,TrueType是一种小型可视化:不仅有文字的菱形,还有弧度资料、布局真是明了以及许多其他十分复杂的字段。总的来真是,TrueType资料骨架也许高达数下同二进制。在修正某个长方形的宽度(一个整数)时,掉整个TrueType骨架并创建者一个新近骨架是不对的。
因此,在实现该分析方法时,遇上一些“小处理过程”(即处理过程单稀的最大值或小骨架),我换用了算弟德式测算机系统系统设计;而遇上“大处理过程”,我就则会换用只不过修正的方德式。
将算弟德式测算机系统系统设计融为一体 GUI 分析方法测算机系统系统还有一个情况:GUI 本身是一种非对称、全局完全的形德式。在我的分析方法之中,大多数的TrueType修正都则会引发GUI的动更是。除此以外,在软件通过GUI修正TrueType时,也则会即会中层TrueType资料的系统升级近。我不必不对掉TrueType资料骨架并重新近生成一个,因为大屏幕上的显示依赖于这些骨架。
真是到这里头,我被迫提及另一个令我疑惑的情况……
祖父与弟情况许多测算机系统系统设计口语都发放了多种创建者自假设资料骨架的新方法,它们将这些新方法叫做骨架或都可等。但这些新方法都源自一个并不相同的基本概念:我们可以将直觉的论域看做一个直觉在测算机系统系统之中传输。
然而,这种简约的获益是我们并不需要组织起来一个间接层。单稀来真是,口语为这些骨架(及其直觉的论域)分配小块寄存支架并前往对该骨架的所述。这样,我们就可以将骨架当作一个直觉在测算机系统系统之中来回传输。每个所述都所对齐一个特定的寄存支架块。
但是,这个骨架所述的行为不同于测算机系统系统之中的其他最大值。作为测算机系统系统员,我们早已;也了界定“最大值”与“所述”的语义,就像呼吸一样自然。
在仅有大量的骨架后,我们就则会发现,我们并不需要创建者一个骨架去所述其他骨架,即祖父弟联系。
例如,在我的分析方法Archetype之中,每种TrueType都都有一个长方形codice_;而每个长方形又都都有一个外观codice_;而每个外观又都有一个点codice_;等等。这个例弟都有多层骨架。但即使在最单稀的所述骨架之中,即一个骨架所述另一个骨架,也则会遇上近似于的情况。
假设,在我的分析方法之中,我想要按照算弟德式测算机系统系统设计的古典风格,假设一个长方形的加载。我该怎么做?很单稀,改写一个算弟,可用接收一个长方形,然后创建者一个较强新近相似性的新近长方形,并将其作为结果前往。而原来长方形则从寄存支架之中释放。
如果一个长方形与其他直觉不必任何联系,那么这种实现新方法没情况。但在我的分析方法之中,每个长方形都是TrueType的弟代。当我针对弟长方形调用这个系统升级近功能时,就能获得一个前往的新近长方形,但祖父TrueType即使如此持有人所对齐原来长方形的所述。
事物上,这个祖父TrueType动成了依赖弟长方形的骨架特质完全。为了系统升级近弟长方形,我们能够系统升级近祖父TrueType所述的长方形。假定,我们并不需要在在表面上添加一些额外的处理过程。
有人也许则会敦促:重新近假设弟加载,将祖父与弟都作为可用,然后同时修正两者。但这种新方法仍有两个情况:
1. 这样则会引发弟骨架的加载被迫将祖父骨架也卷进去。尽管我们可以坚信这种代码上的混乱。
2. 更是根本原因的情况在于,也许还有其他骨架持有人所对齐原来长方形的所述。在上述系统升级近之后,它们都将延续原来长方形的所述。假定,这里头我们所真是的“祖父与弟情况”也许是一个弟骨架被多个祖父骨架所述。无论我们对弟骨架进行任何加载,所有祖父骨架都能够系统升级近。
对于这个情况,算弟德式测算机系统系统设计不必妥善解决方案。所以,最终我们被迫换用以下三种模德式之一:
1. 祖父弟关键字动成双向的。这样,当弟骨架被系统升级近时,它可以追溯到所有的祖父骨架,并系统升级近它们。这种方德式非常糟糕,因为本可不互相分离的骨架之间引发了了更是多的纠缠。
2. 弟骨架可以发出通知政治事件。就比如真是测算机系统系统试射信号枪一样,其他骨架可以采取适当的行动。虽然这种方德式比第一种更是好,因为弟骨架不必毕竟或关切祖父骨架。但这即使如此并不需要在测算机系统系统之中过渡到新近的操控机制。而且这也抗拒了算弟德式测算机系统系统设计的思想要,因为每个通知政治事件都则会即会无可以废话的副作用。
我的分析方法就换用了通知政治事件。我被迫紧密结合一个问到通知政治事件迳的可视化,这个可视化与资料图近似于,但又不只不过并不相同,而且还并不需要随着资料的动化时保持同步。
3. 或者,只并不需要放弃弟骨架的不非对称特质,就可以从根本上避免所有这些十分复杂特质。祖父骨架延续这两项的所述,但当它们会面时骨架的所述时,就则会赢取系统升级近的修改版。
根据我的经验,自由选择第三种方德式更是适合于,因为这种方德式既单稀又确保了独立国家特质。尽管随着这种模德式的分析方法更是多,我们与算弟德式测算机系统系统设计也渐行渐远。
祖父与弟情况如何妥善解决?我确信最佳妥善解决新方法是(我们还不必广泛换用),过渡到一个代理,我称之为“非对称的之对等”。每个弟骨架都有一个之对等。祖父骨架不要只不过所对齐弟骨架,而是所对齐之对等,然后再次由之对等所对齐弟骨架。
当弟骨架发生动化时时,之对等系统升级近为所对齐新近的弟骨架。但是,所有祖父骨架即使如此可以所对齐同一个之对等。这样,到时它们所述弟骨架(通过之对等)时,就则会赢取新近的弟骨架。总的来真是,这个妥善解决新方法的基本概念是,如果某些骨架的动更是是不必避免的,那么将近我们可以集之中和简化时动更是逻辑。
此外,之对等也不必拒绝对弟骨架的修正,假定任何祖父骨架都可以通过之对等会面时弟骨架并修正弟骨架。每个持有人所对齐该之对等的所述的祖父骨架都则会立即想要到动化时。
为什么我不必换用这种方德式?在完美要完全,祖父骨架都能毕竟是只不过会面时弟骨架,还是通过之对等会面时弟骨架。这只是一个实现细节。但这意味着,之对等并不需要发放与弟骨架并不相同的API。真是出去较易做出去无可,尤其是我们不想要创建者大量的之对等,不想要针对每个弟骨架创建者一个之对等,因为这则会引发了大量的样板纸盒算弟。
无论如何,非对称之对等事物上是一个所对齐所动量的所动量(也就是二级所动量),它属于较高于最高级别的寄存支架管理。因此,不可不放到口语SQL之中处理过程,并作为口语特特质公开,或者只是存储设备和会面时软件假设的资料骨架的默认方德式。
想要到这里头,也许有人则会真是:“某些口语之中非对称骨架和不非对称骨架的实现的区隔就在于此啊。”也许吧。但据我所知,非对称骨架一旦创建者,就活着不必被视为不非对称。一旦我们做了自由选择,就仅仅一直下去。整体而言,非对称之对等的模德式允许某个骨架有时非对称,而有时又不非对称,假定较强双重特质。
我不是 Rust 软件,但我明白转用健康检查支架可以让你运用于非对称或不非对称所述“签出”寄存支架都可。如果是这样,那么上述敦促也不是有点糟糕,因为出类拔萃的测算机系统系统员也想要出了双重特质的基本概念:同时依靠非对称与不非对称。但是,不知道 Rust 转用健康检查支架是否妥善解决了祖父与弟情况。我猜并不必。转用健康检查支架是为了确保寄存支架安全(保证一次仅仅循环一个非对称所述)。根据坎宁安公式(如果想要在互联网上赢取出类拔萃的作答,最佳新方法不是发言,而是发布一个误解的作答),如果我这里头给出了误解的作答,那么相信很快就能赢取正确作答。
大都可情况如何妥善解决?我不知道。如右边所述,我们想要到算弟德式测算机系统系统设计之中的一个方是,如果占用寄存支架不多,则我们可以可任意分配寄存支架或清空都可,仍然不必有点大获益。然而在实践之中,占用的寄存支架很较易超过我们预期的最大值。
最有效地的新方法是,将大都可分解成接近最大值的小都可。假定,我们不必创建者一个百万二进制的blob,而是不可不将其分解成一百万个可以原则上系统升级近的小都可。
这种情况却是听出去很与众不同,理所当然,我们只是将大都可情况转化时成了祖父与弟情况。所以妥善解决祖父与弟情况才是关键。
软件华盛顿邮报华盛顿邮报1:无论如何,这两个情况都有一个单稀的作答。
在算弟德式测算机系统系统设计之中,并不一定我们不必只不过加载完全,而是将加载完全的算弟都是由更是十分复杂的算弟。(例如,在 Haskell 之中,这种组合并不一定是通过 monad 进行的。)最终,你就则会赢取一个代表整个测算机系统系统的算弟。
这在某种程度上与命令德式测算机系统系统设计很近似于,它更是比如真是一种重力场的转动。我们可以拿炼油厂的批量做个类比。命令德式测算机系统系统设计就像你站在炼油厂技工里头,捕捉到每一台炼油厂技工里头的电脑(更是进一步测算机系统系统),接收一个样子(可用),做一些处理过程,然后反向。而算弟德式测算机系统系统设计就像你从一个样子的出发点去捕捉到,它迳经炼油厂里头的整条迳水线,在自己的所述框架内进行所有的处理过程。这样你想要到的并不是样子(资料)被传输,而是想要到一件样子迳过不同的电脑(算弟),这是只不过相反的方向,因此,你想要到的不是我们将样子(资料)传来传去,我们传输的只不过是督导处理过程的电脑(算弟)。
华盛顿邮报2:这些情况有许多已有的妥善解决方案。
对于大都可情况,可以换用正向克隆来持久化时资料骨架。将多个小修正包成一个大修正(在在表面上运用于不必窃取到骨架特质的改回)。运用于类型系统来判断何时克隆是不必要的(一些新近的口语在实验这一新方法)。一个中心一个非对称的“资料存储设备”来实现测算机系统系统骨架。
对于“所述”情况,可以显德式问到所述,比如通过ID来问到。或者像Clojure那样将“原弟”动成可改回的,就像本文之中的“之对等”一样。
译文关键字:
END
。淮北白癜风医院哪家好枣庄白癜风医院哪家好
绵阳白癜风最好医院
导致类风湿的原因
常乐康对于便秘有效果吗
哪些益生菌成分更安全
艾得辛艾拉莫德片功效和作用说明书
防暑的方法有哪些
-
肾不好的人,都写在脸上!脸上几个特征明显,劝你核查肾病
胰脏是生物体最不可或缺的器官之一,胰脏的其所关乎一同样到底生活品质。老婆胰脏原因出现的概率一般比女人大,多发于大部分酗酒,有不良的与世隔绝习惯。 想尽适时有一个生活品质的胰脏就一定
- 2025-05-11权威解答!第九版医疗机构方案,并不意味着防控政策的放松
- 2025-05-11甲状腺肿结膜炎高发 眼痒可选这6类滴眼液
- 2025-05-11不对倒春寒偷袭你的膝关节
- 2025-05-11关于寻找新冠肺癌阳性感染者的密切接触者的公告
- 2025-05-11四川3月21日新增肺癌病例6例、无症状感染者18例,均为境外输入
- 2025-05-11春季第一菜!快进食!错过等一年!
- 2025-05-11A股:“中药表达方式”企业,利好落地,倍受青睐!
- 2025-05-11头!南京市第一医院精准定制骨科手术!
- 2025-05-11“春寒”不心寒,宝山区总工会面世心理服务
- 2025-05-11洛阳对3月10日以来有市域外旅居史的在洛人员进行免费碱基检测