V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  powerman  ›  全部回复第 9 页 / 共 18 页
回复总数  344
1  2  3  4  5  6  7  8  9  10 ... 18  
2021-11-23 09:11:31 +08:00
回复了 psklf 创建的主题 MacBook Pro MacBookPro 2017 年款主板坏掉,苹果质量不行
@telaviv 商业公司如此,你可以不用它的产品,用钱包投票即可
2021-11-17 09:51:20 +08:00
回复了 x97bgt 创建的主题 程序员 开闭原则(open/closed principle)到底是啥意思?
@fkdog 复读机? 也不算吧,光是理解问题域,发现问题域中 难以变化的部分 将其剥离出来形成一种机制 与易变化的部分隔离 就要对领域知识有充足的了解,而并非对代码技术有多么深层次的理解。
2021-11-16 18:05:15 +08:00
回复了 x97bgt 创建的主题 程序员 开闭原则(open/closed principle)到底是啥意思?
理解软件工程以及代码架构,关键是你要理解一点,

那就是不管 SOLID 原则以及设计模式的运用都是在做同一件事情,将易变的部分与不易变的部分隔离开来,更抽象的说法就是提供一套机制将策略与机制分离开来。

一般来说机制是难以变化的,而策略经常变化,一个软件,框架可以看成一种机制,因为写业务大多只是使用框架提供的功能,而并非去对框架进行修改,也就是说框架是不易变的,而业务逻辑是易变的,在这里框架是一种机制,业务代码是一种策略,例如 mybaits 框架,你编写 SQL xml 这就是一种策略,而 mybatis 框架本身就是一套机制。

做到这一点首先要对目标域的问题进行分解,发现难以变化的部分以及容易变化的部分,
例如 Spring 框架,通过 XML 加载 bean 定义的 或者 通过类扫描 加载 Bean 定义 又或者你要自定义一种其它的方式来加载 bean 定义,总儿言之加载 Bean 定义的方式是多种变化的,但是对 bean 本身来说,bean 需要解决的领域问题是确定的,是不会变化的,所以抽象出来一个 BeanDefination 用于初始化 Bean ,这样 BeanDefination 作为一种初始化 bean 数据结构的机制是不易变的,而具体加载生成 BeanDefination 的策略是易变的。

类似的设计思想还有很多,例如 BeanFactoryPostProcessor BeanPostProcessor 也是这样一种思想,框架本身提供了一种回调的机制,至于你如何客制化 BeanDefination 或者 客制化 Bean 的 instance 则是一种具体的策略。

像 sort 方法 排序算法本身是一种机制,至于如何比对两个对象的大小则是一种具体的策略。

总而言之,在代码层面上,你要时刻去思考,你的代码如果要复用,那么被复用的代码应该提供一种什么样的机制,让具体的策略去使用去组合起来方便,而不至于需要修改你原本的,至于具体的设计模式 反倒并没有那么重要,
2021-11-11 14:30:38 +08:00
回复了 villivateur 创建的主题 信息安全 有什么办法只允许我开发的 APP 访问我的 WEB 服务吗?
没有这个必要,微信搞得这么复杂,不还是有人去研究破解微信的协议,想啥呢,老哥,只要有利益驱动,自然有人去研究你的协议,技术手段只是防止对方低成本破解罢了。
加我,我的微信号最屌 iwannafuckwechat
2021-11-08 10:15:48 +08:00
回复了 NotreDame 创建的主题 问与答 绿灯车不让人,行人抢行红灯,为啥?
@Cu635 提前打 没卵用,你一打,人家就加速 本来都慢悠悠的,你一打转向灯 他就急了 要加速
2021-11-07 08:19:59 +08:00
回复了 NotreDame 创建的主题 问与答 绿灯车不让人,行人抢行红灯,为啥?
这算啥?你要是开车就知道了,你打转向灯,人家就加速,我特么在上海外环高速上,每次一打转向灯 向右靠,人家就加速,在中国转向灯都已经戏称为 侧后方加速灯,后面我干脆提前打着转向灯,让加速器车赶紧加速过去,然后我再慢悠悠往右边靠出快速路。
1  2  3  4  5  6  7  8  9  10 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   918 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 19:46 · PVG 03:46 · LAX 12:46 · JFK 15:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.