为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候该写2B代码,什么时候写牛B代码,求指导?

什么时候该写2B代码,什么时候写牛B代码,求指导?

慕码人8056858 2019-03-29 10:57:34
刚看了篇文章:2B程序员与牛B程序员http://cloudbbs.org/forum.php?mod=vie...。文章最后一句“所以看问题要根据实际情况来分析,别以为能写个循环就牛B了”,很想知道这个“实际情况”具体来说该怎么分析?
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

这似乎是一个关于关于效率与到底什么才是好代码的问题,我有几个看法:1)考虑码效率时,“省小钱不如省大钱”O(n)规则告诉我们,当n变的很大时,O(cn)=O(n)for(iteminitems){
do_something(item)
}这里,do_something的固定时间快点慢点无所谓,大多情况下不会有实际差别。但假如do_something的效率是跟items.size一起增长的,n只要变的很大,再快的电脑也要完蛋。2)在同样时间复杂度的情况下,程序员效率比CPU效率重要的多阅读流畅,容易维护的代码才是好代码。不要为了一些渺小的“效率提升”而把代码写成案例里面那样。别忘了,计算程序员效率的时候除了第一次写代码的时间,还要算上未来每次维护的时间。不合常理的代码每次更新,重构,找bug时都会麻烦一点,累计下来是很不划算的。3)现代compiler(编译器)比你聪明有些同学喜欢用一些语言风格上的小技巧去提高效率。在学习的时候玩弄一下不是坏事。但花费时间去做编译器该做的事情是很愚蠢的。现代编译器是超级强大的,可以在很多个不同的层次上做各种各样的优化。人手动能做的其实很少,而且经常会弄巧成拙。用2B代码来“帮助”你的编译器,就好像买辆法拉利然后站在车外帮它往前推一样
                            
查看完整回答
反对 回复 2019-03-29
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这种理念很明显是一个2B理论。在部分情况下,确实正确的代码思维,却花费更多性能的情况。但是,要明白的是:计算机是替换人类做重复的事件,如果不是10次的print,而是一万次,那么呢?我想2B程序员与牛B程序员的这个小例子,本意说的更多是编程思维上的区别。我觉得这个例子与以下例子是一样的。找到全部的li
    1
    2
    3
    4
    5
2B程序员可能用list.push($('.item1'));
list.push($('.item2'));
list.push($('.item3'));
//...........而正常的程序员则用$('ulli');
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 433 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信