免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: reiase
打印 上一主题 下一主题

现在觉得算法代码很难写 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-04-18 00:15 |只看该作者
OwnWaterloo 发表于 2012-04-18 00:09
回复 16# 家住马戏团

>> 况且你静态写错了。

只是感觉很少有人用模板给函数传参数,除了处理编译期数据考虑效率
所以没仔细看想当然认为你写的也是类,
template是类成员才需要,被你绕晕了,看清了你写的是函数,思维却还停留在类上

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
22 [报告]
发表于 2012-04-18 00:25 |只看该作者
回复 21# 家住马戏团

>> 只是感觉很少有人用模板给函数传参数,除了处理编译期数据考虑效率

lz对效率的需求从一开始就可以将虚函数排除了。

既要能够

  1. if (...) {
  2.       block B
  3.       call C
  4. } else {
  5.       block D
  6.       call E
  7. }
复制代码
又要避免if产生的效率损失, 还要避免源代码的重复, 那只好用相同的源代码产生多份机器代码了。


>> 所以没仔细看想当然认为你写的也是类,
>> template是类成员才需要,被你绕晕了,看清了你写的是函数,思维却还停留在类上

我的目的就是想强调产生多份机器代码并静态分派不需要类。
动态分派是不用类就不能完成,但静态分派不是。
所以只有当需求需要用类时,才应该用类,而不是一味模仿动态分派的做法。

而我理解的lz的需求就不需要这个额外的类来帮助完成分派。

论坛徽章:
0
23 [报告]
发表于 2012-04-18 00:26 |只看该作者
回复 15# OwnWaterloo

关于你说的重复代码
blockA可以提取出公共函数
你应该能看出来
我代码直接敲在留言板的。而且是第一时间
如果你纠结我那些代码的写法,好吧 你赢了
我只想留言告诉楼主动态多态和静态多态
重在思想,没有往严密的地方设计

还有 你明白这只是个简单的例子
静态多态在这个例子里是不如你直接传个模板参数
但是如果你明白我意思不在处理这简单的代码,那么就请停止讨论。
你别再回复我的留言,我也不会回复你。

你的方式很好,但我不想学习可以么?

   

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
24 [报告]
发表于 2012-04-18 00:36 |只看该作者
回复 20# 家住马戏团

>>  说说如何不是装饰模式

我不喜欢研究模式,也不喜欢教他人模式。
但如果你觉得这是,我建议你再重新学一次。


>> 谈效率,你比我少一次虚函数的访问,多一次正常函数调用,既是有效率差异也只是个指针解引用的问题吧

我说"效率达不到要求",是指虚函数从一开始就没戏,提了也白提。


>> 况且我写我的,你有方法就写你的。
>> 我看到就回复,第一个反应就是这个模式,让我按其他的写,我还可以再用多种模式构造这个模型。我喜欢谈设计模式怎么了?

我就喜欢批评设计模式又怎么了?
我就看不起那些张口闭口就"你这不符合XX模式,我那才是",而不注重设计模式需要达到的目的,只管它是不是某个模式的人又怎么了?
我更看不起那些张口闭口谈模式,而一谈一个错的人又怎么了?



>> 为什么每个人留言你都要瞎咋呼几句?

是谁在瞎咋呼?我们要不要各自去拍照取证?


>> 至于静态,我喜欢谈静态多态怎么了?
>> 你有不同的理解说你的就是了。我喜欢写奇怪的代码。
>> 我在公司里所有消息内容编解码都是用静态多态写的,为什么不能谈静态多态?

我就看不惯在没有需要写class的地方写class,又怎样了?

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
25 [报告]
发表于 2012-04-18 00:41 |只看该作者
回复 23# 家住马戏团

>> 但是如果你明白我意思不在处理这简单的代码,那么就请停止讨论。

如果你明白我的意思是:你臆想的那些扩展性很有可能根本就不存在,你这是过早设计,那我们可以停止讨论了。
如果你不明白,该说的我在15楼也说完了。


>> 你的方式很好,但我不想学习可以么?

你愿不愿学我不关心,但我关心lz以及更多观众是否会被你误导,误以为静多态也必须与class有关,可以么?

论坛徽章:
0
26 [报告]
发表于 2012-04-18 00:51 |只看该作者
OwnWaterloo 发表于 2012-04-18 00:41
回复 23# 家住马戏团

>> 但是如果你明白我意思不在处理这简单的代码,那么就请停止讨论。

看来你不理解,那我们继续
题外话:女人,你攻击性很强

我们的理念完全不同,
我所有的东西都会写在类里,
可能是学元编程时留下的后遗症,我甚至不用namespace,全用struct代替,你说不规范?
我也可以看不起动不动就拿规范压人的人
我在公司写了5年了,组里人都学会我这种写法,

还有,你不会什么东西的时候 千万别说不喜欢和别人谈什么,如果你认为不是,建议你重学一遍这种话。

如果效率谈到你这种程度的话,函数调用还有开销呢,那么公共代码是不是不要提取到公共函数里?

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
27 [报告]
发表于 2012-04-18 01:07 |只看该作者
回复 26# 家住马戏团

>> 题外话:女人,你攻击性很强

依据是头像?你的推理(包括前面的)能靠谱点么?


>> 我们的理念完全不同,
>> 我所有的东西都会写在类里,

我就是反感这种不问理由,只因习惯的做法。


>> 可能是学元编程时留下的后遗症

元编程与class没有直接关系。元函数只是mpl领域以及那本书里的定义。

如果元编程可以作为全使用class的理由,我觉得函数式编程作为尽量少用class的理由更靠谱。


>> 我甚至不用namespace,全用struct代替,你说不规范?

规范与否我才不关心。
对那些以为struct可以代替namespace的人,我只问一个问题:namespace 可以 using, struct 可以吗?


>> 我也可以看不起动不动就拿规范压人的人

我不知道你是不是喜欢那规范压人的人,反正我不是。
我知道你相比动脑更喜欢追寻习惯的人,我依然不是。


>> 我在公司写了5年了,组里人都学会我这种写法,

你这想说明什么?于是你的做法就肯定是好的么?


>> 还有,你不会什么东西的时候 千万别说不喜欢和别人谈什么,如果你认为不是,建议你重学一遍这种话。

我有说过我不会吗?
还有,1) 如果你喜欢设计模式,请认真学 2) 设计模式只是手段而不是目的。


>> 如果效率谈到你这种程度的话,函数调用还有开销呢,那么公共代码是不是不要提取到公共函数里?

源代码的唯一性又不等同于机器代码的唯一性。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
28 [报告]
发表于 2012-04-18 01:13 |只看该作者
凑个热闹,也许是我现在的代码不够复杂。不过我很久很久没有这种体验了。如果一开始完全都设计好,那么还真没出现过这种函数该合并不该合并的问题。我现在构筑项目都是自底向下,每需要一个功能都去思考它能不能由更基础的功能集合组成。如果能,我就会继续递归地去实现这些基础功能集合,最后从下到上实现完,最后就只剩下组合问题了。所以很少会遇到这种重构无力反复重构的现象。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
29 [报告]
发表于 2012-04-18 01:27 |只看该作者
回复 28# starwing83

有个错字:
- 自底向下
+ 自底向上


我也是你这么想的。但就怕不符合楼主题意

论坛徽章:
0
30 [报告]
发表于 2012-04-18 01:57 |只看该作者
回复 28# starwing83


自底向下

??sw想说自顶向下?不然都底了怎么又在向下。你的设计方式我也用,感觉整体还是不错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP