V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sillydaddy  ›  全部回复第 1 页 / 共 94 页
回复总数  1870
1  2  3  4  5  6  7  8  9  10 ... 94  
6 小时 43 分钟前
回复了 young1 创建的主题 程序员 设计模式
如果你仔细观察那么多设计模式,会发现它们基本上都是在讲一件事:接口的抽象、分层、去耦合, 就像 #26 楼 @NoOneNoBody 说的。把这点仔细研究研究,就豁然开朗了。

举几个例子,

「观察者模式」: 某个对象变动了,通知其他对象(或者说其他对象观察某个对象的变动)。 这种“一变动就通知”的机制,主要用于底层对象向上层对象发送通知,对于这些通知,无论上层对象是处理还是不处理,无论上层具体怎样处理,都跟底层对象没有关系了。所以观察者模式,其实是将底层对象的向上通知这种(接口)行为统一抽象出来了,而且去掉了底层与上层的耦合。
「访问者模式」:将被访问的数据结构的遍历抽象出来了,上层要访问某个比较固定的数据结构的时候,不用每个访问者把遍历这个数据结构的代码都重复写一遍,只需要写出来对该数据结构如何具体操作,遍历这个数据结构的过程已经被“访问者模式”抽象和剥离出来了。像 C++ stl 的迭代器也可以算是非常典型的访问者模式,只需要 iterator++就可以,不用关心底层是 vector 还是 list 。
「工厂模式」:这个就更直接了,传给工厂一个不同的参数,生成一个与之对应的实例,并且这些实例都实现了一个相同的接口。具体生产哪个类的实例不需要关心,唯一需要关心的就是,传入一个不同的参数,得到同一个接口的不同实现,经过这种抽象后,工厂模式对外呈现出一种极为简洁的形式:不同参数->接口的不同实现。


所以学习的时候,只要仔细留心接口是怎样抽象的,接口抽象出来后,达到了什么目的和效果,就可以了,不用特意记各种设计模式,死记也记不住。
@meeop 前面提到的周转资金,可以从另一个角度考虑:
如果一个商家,每天卖出 100 件商品,商品总成本 10000 元,第 2 天可以收到付款。这个商家的库存里面,总是保留用于第 2 天卖的,与第一天卖的 100 件一模一样的商品。也就是说这个卖家只需要投入 20000 元,就可以维持它的生意不断,它库存与销售比是 2:1 。
如果使用押金模式,那么它需要 10000*10+10000=110000 元才能维持,也就是资金利用率只有原来的 1/5 左右。
如果扩大商家的库存销售比,比如扩大到 10:1 ,资金利用率也只有 1/2 。
所以这种高押金模式,对于商家/工厂来说,资金利用率是很低的。如果它的资金中有 50%是贷款,贷款利率是 4%,原本它的 6%的利润率就足够,如果它的资金利用率只有一半,那么它的利润率就要提升一大截才行。
@meeop 我想到了一个可能的问题。
如果双方的目的是交易,那么感觉这个方案非常合适。
但是,如果其中有一方的目的不是交易,而是借助这个机制进行攻击呢?
下面介绍这种通过耗尽对方资金进行的攻击方法,我把它叫做“榨汁攻击”:
如果有一方是专门通过出售商品获利的,那么它所拥有的资金一般总是充分利用的,甚至有些资金还是通过借贷获得的。也就是说,它的资金几乎全部用于商品的周转。这时,如果有大体量资金的对手针对它发起大量交易并拖延交易的达成,那么只需要十分之一的交易量就能耗尽它的资金。一方资金耗尽的话,就完全失去了继续盈利的能力,也就丧失了谈判的筹码。
对于闲鱼二手交易,如果某个专职卖家中的买方中有二十分之一的人采用榨汁攻击,那么会导致占用该卖家的 50%的周转资金。而这些资金很可能只占用买家的很小一部分。这种明显的优势可能会促使买家结盟,构成所谓的 DDOS 攻击。
这么好的方案我咋没想到呢!等待高手来破解。
@cnkuner 的挑战和 OP 的回复都很犀利,看着过瘾。
4 天前
回复了 woxiqingxian 创建的主题 美酒与美食 以前的东西真的更好吃么?
感觉这像是一个无法证明答案的问题。
4 天前
回复了 victimsss 创建的主题 程序员 越来越讨厌 nodejs 的版本管理机制
#10 楼说的很清楚。主版本号升级,通常意味着不兼容。这个平时一定要注意。
不过锁死了主版本,可能会锁死一大批依赖它的库的版本,也挺麻烦。
附言里的“这么多人乱喷”,“世界太缺乏诚信的人”,这两句是什么因果关系?
5 天前
回复了 lurui45 创建的主题 生活 家庭买车出资争议
@lurui45 #203
你这样说反而更证实了为啥老丈人要把钱要回去。

原本老丈人自己出钱买车自己开,心安理得,谁的人情也不欠。置换后,自己本来出的钱变成了不清不楚的 0.4 辆车,而自己要开的还不是这 0.4 辆车,而是在别人看来是配置拉满的豪车,反而倒欠了别人人情。

索性把这不清不楚的 0.4 辆车的钱要回来,欠就欠个整人情。
5 天前
回复了 lurui45 创建的主题 生活 家庭买车出资争议
用数学来解答这个问题非常简单,
置换前:老丈人出资为 1 ,实际使用为 1 。
置换后:老丈人出资为 0.4 ,实际使用为 1 。

置换前,无论车给谁用,老丈人出资大于使用,有底气;
置换后,老丈人只占了不到 0.5 辆车的出资,开着 1 的车,出资小于使用,怎么都别扭,而且经过楼主一折腾,莫名其妙少了 0.5 的出资,心理也不会平衡。
世界上没有 0.5 的车。
@Baoni 你 @错人了
目前的 ai ,其神经网络的连接方式只不过被探索了很少的一部分,跟人脑进化的时间不能相提并论。而且目前神经网络的学习机制也仅仅是反向传播,跟人脑的也不一定相同。那么 ai 还没有到人脑的水平,不是很正常吗?
ai 达到人脑的思考水平,可能就在于一念之间,可能是一种连接方式的改变,可能是一种学习方式的创新。可能每个人都有机会创造这个历史。
@vishun #62
说的很对。很多人都强调,现在的 AI 是基于统计的,基于概率的,肯定不是真正的智能。可是,如果看底层,它和人脑不都是神经网络吗。如果说 ai 是概率统计,那人脑就不是了?
如果承认 ai 的本质只不过是一种统计,那么请问,以前的统计方法为什么远远没有达到神经网络的统计效果呢?神经网络模拟人脑,并取得了其他方法触不可及的效果,就说明它是真正智能的可能性非常大,这不是什么巧合,这恰恰是概率论里面的贝叶斯定理。
很多人嘲笑 ai 没有达到人的水平,讽刺它只不过是一个统计机器,却没有看到它的巨大进展,嘲笑 ai 的人也太急于被另外的物种取代了吧。
@czfy #41 你想歪了。最近 1 年间站长给好几个人添加了移动主题的权限,包括我。
@realpg 别跟我扯哪些有的没的。我就问你敢不敢赌。
你那 500 万条数据需要针对成本价排序的话,你把相应的需求发给我,我这就赔你 2 万。不同类型的器械有什么必要针对成本价排序,你会把苹果和梨子的价格排序吗?所以说识破你的鬼话不需要什么专业知识,有常识就足够了。
@realpg
你问我凭什么有勇气开除你,不凭别的,凭常识就够了。
我一个月工资不高,也就 2 万,没你牛逼。你说我没经验,确实我连一个 saas 系统也没开发过。你开发的不是多吗,这么着,你从你做的那么多项目里面,找出来一个需要**按成本价**排序 100 万条数据的,我当场赔你 2 万。你要是找不出来,倒赔给我 2 万!
真是吹牛逼不上税,还 100 万。
@realpg 需求不是你说了算,需求在 OP 那儿。你怎么知道商户有 100 万数据?你怎么知道全部 select 出来性能不够?你怎么知道没有加总的需求?就你这种不看需求就开发的,第一个开的就是你。
@realpg 你要是我下属,我一定立马开除了你。没有任何根据的在那儿臆测。
@realpg 如果仅仅是需要排序或者索引,那你说的方法当然可行。
加总求和的操作,你怎么知道没有呢?求出某个商品在一段时间内的进货总价,不就是数量乘以价格,再加总吗?
当然你可以说这个计算可以解密后放在前端进行,如果是这样,那前面几楼的方案也可以啊,计算都放前端,数据库只是起一个储存数据的作用。
问题的根本就是,你不知道他有哪些计算的需求,你说的缩放,也仅仅能够起到排序这一个作用。
@realpg #17
那如果是带系数求和( ax+by+cz ),这个缩放的方法就不行了,缩放必须是线性的才能满足求和之后可以反算回来,那也就失去了加密的意义了。
@dapang1221 #10
同态加密可以做筛选啊,不一定非得用数据库自带的 select 语句完成吧。可以把所有数据 select 下来,然后后端去筛选。
全同态是可以做到所有的运算的。

OP 的需求还是不太清晰,对于加密后的进货价,还要不要进行运算?如果要运算,需要哪些运算?
如果仅仅是纯列表显示,那么前面几楼的方案最简单;
如果仅需要对进货价格进行带系数的加法运算(例如求总进价),那么半同态加密( PHE )就可以做到,速度也能满足;
如果需要对进货价格进行大小的比较,或者其他逻辑运算,可能要用到全同态加密( FHE ),速度会比正常运算慢百万倍,而且内存占用也超大。( 参考 /t/700927
1  2  3  4  5  6  7  8  9  10 ... 94  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1636 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 16:53 · PVG 00:53 · LAX 08:53 · JFK 11:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.