V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  msg7086  ›  全部回复第 713 页 / 共 1018 页
回复总数  20358
1 ... 709  710  711  712  713  714  715  716  717  718 ... 1018  
2015-12-30 02:44:05 +08:00
回复了 jasonding 创建的主题 问与答 突发奇想,如果我留个 MD5 的邮箱会不会有人跑去给解密了
MD5 不安全。我比较喜欢用奇偶校验。

我的邮箱奇偶校验码是 1 ,欢迎给我发邮件。
2015-12-30 01:38:10 +08:00
回复了 yech1990 创建的主题 问与答 git clone 过来的软件怎么管理?
两种做法
1. 尽可能利用插件或者外围配置来改变行为,不要对源码做改动。
2. Fork 完了以后找一台机器专门负责 Rebase ,然后全部从你自己的 Repo 里克隆就行了。
2015-12-30 01:30:26 +08:00
回复了 lakechan96 创建的主题 分享创造 老司机发车协议 Old Driver Protocol
意味不明……除了多出一段没什么用的头部以外和直接发链接有啥区别……
2015-12-30 01:28:27 +08:00
回复了 astrorobbie 创建的主题 VPS 初次建站,求推荐靠谱的 VPS
搬瓦工就是 VPS 。

用 VPS 的话,首先你必须要有能力配置好 VPS ,否则被人破解了拿来犯罪,倒楣的是你哦。
不需要。不需要。

备案是 (国内网站, 国内服务商) 组合 的备案。更换 IP 和使用国外服务器都不算在内。
2015-12-30 01:22:50 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
@shyling 你这个例子是比较典型的适合 try/catch 的做法。
楼主举的例子其实也是比较典型的 try/catch 。

比如有这样一个函数

checkUserCredential(user) {
rec = db.findUser(user.name)
return this.checkPassword(rec, user.password)
}

这里 user.name / user.password 适合用 if 判断; rec 两者都可以; db 连接情况适合用异常处理。
因此:

checkUserCredential(user) {
showError if (!user.name || !user.password)
try {rec = db.findUser(user.name)} catch databaseError {log('database connection error')}
showError if (!rec)
return this.checkPassword(rec, user.password)
}

以上代码都是伪代码,不代表任意的实际环境,不代表 JavaScript 情况。
2015-12-30 01:11:14 +08:00
回复了 zhangneww 创建的主题 VPS 被天朝世纪坑了的过来握个爪
/t/245409 /t/241676 /t/241705 /t/243713

补上相关帖子链接。

@d7101120120 主要问题不是年付,而是这家人家没体现出技术水平。
做 VPS 这行对技术要求相当高的,不是随便学了点东西就能做的。
如果没有口碑,又不是人尽皆知的技术高超的菊苣,那还是别做小白鼠比较好。
2015-12-30 00:01:37 +08:00
回复了 bitbegin 创建的主题 NGINX 老罗提到的 openresty 是干啥的?就是 nginx 打个包?
OpenResty 是一个 Nginx 的发行版,在 Nginx 上加入了很多 DLC ,用起来牛逼多了,相当于直接用脚本语言在 Nginx 里开发程序。
小型的 lua 程序在 Nginx 里甚至可以达到 5000qps 以上,效率非常惊人。
2015-12-29 23:51:35 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
#130 @mzer0 顺便一提,这里是论坛,人人都有发言的自由,只要内容不是粗话脏话不是反动反 D ,都可以说。
不知者无谓,说出来以后大家讨论才能互相学习到知识。
不说出来永远也不知道自己是对是错。

不要因为自己懂得多,就认为有不让人说话的资本。
你不是 Tu 共。
2015-12-29 23:48:32 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
#127 @mzer0 我的回复里没有提到 A 或者 B 的水平如何。
A 君知不知道分支预测理论我完全不得知。
同样 B 君我也不知道他是否就是「真的懂」而不是「凭直觉」或者「 I'm lovin' it 」。
所以不妄加评论。

一开始我就说了,具体怎么用要看上下文场景,抛开场景空谈程序没有太大的意义。
话要说完整才行,说话只说一半只会误导迷茫的新人后来者。
更何况上面的效率是在说 JS 而不是在说 C++。
具体的 JS 执行情况更还要依赖各大浏览器的脚本引擎才行。
说不定前后两个版本的引擎之间的性能都是不一样的。

#128 @qnnnnez 抱歉 JS 我不太熟。
这里可以邀请一发 @otakustay 菊苣,他可能会知道详细内幕。
2015-12-29 23:31:21 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
@mzer0 你说的这个有些道理。
不过这里的优化我觉得不应该是人来做,也不应该是 CPU 来做,而应该是编译器负责。
很多现代化的编译器都有 Profiling ,通过输入一个比较真实的数据集来模拟真实的运行情况,在其中分析分支的命中率,微调汇编代码。
比如你说的 if then 分支预测命中问题,如果编译器发现 then 的一侧比 else 一侧遇到的概率少,那么编译器就可以手调汇编代码,交换两段代码的位置,提高运行效率。
另外微调效率的时候还要考虑很多别的因素,比如 SIMD 时候的 prefetch 间隔等等,这些都是要专业的人员通过仔细的 CPU pipeline profiling 才能优化到极限。

只用上面两个例子其实很难说明有数量级级别的差异的。
就算是 C++桌面程序,一个登录过程是花费 10ms 还是 20ms 其实真的没区别。
2015-12-29 23:23:38 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
@minggeJS 笑了,我又没说你在误导,我说楼上有很多帖子在误导。
当然你自己喜欢跳进坑来我也拦不住。

上面我的帖子里既没有谈效率也没有谈代码量,你连我说的是哪个点都不知道就跳出来说我口气大。
我上面说的几点是写代码时通行的原则,并不局限于 JS ,也适合其他语言和环境。
已知错误用判断,未知错误用异常,最后代码会非常好维护,也便于写测试。
对于企业来说,效率算个鸟?代码量算个鸟?
写出不好维护的代码,后期维护的投入就是几十万几百万的成本。
相比起多部署几十台服务器或者多招几个人来写你说的「又长又花时间的代码」来说,维护的成本高得多。

不信?
我们公司现在就有六七万行基于异常处理的代码。
随便不小心点错的东西就是异常异常异常。
点个功能哪里出了问题就是异常异常异常。
Debug ?几百个一锅端风格的异常处理代码你慢慢搜去吧。
我们核算过,这点代码全部整理完至少需要 200 万到 300 万美金的成本。

还有测试驱动开发呢,考虑到测试的代码量最少也要和程序代码量相当来看,估计你会觉得写测试是多么的「又长又花时间」吧。
可惜对于企业来说这是最省钱的方案,一套系统只要多花几十万美金的钱投在人工上就可以省下几百万美金。

(我不知道你有多少编程经验,所以我不妄加评论你的水平。
如果你觉得自己很厉害,看不上别人,这是你的自由。

你开心就好。)
2015-12-29 16:34:44 +08:00
回复了 mzer0 创建的主题 问与答 如果一个域名绑定多个 ip, 浏览器如何选择访问哪个 ip?
dns ,然后看自己的实现。随机或者轮询都可以。
2015-12-29 16:33:49 +08:00
回复了 zqjilove 创建的主题 问与答 linux 服务器故障,如果将下架的硬盘数据拷贝出来。
随便找个机器启动 linux 有多难?
别想着用 windows 了,否则数据崩了别来哭。
2015-12-29 16:32:11 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
@yhylord 基本是通用的准则。
python 有点不同,因为他家提倡单种方法论,所以就变成只用异常了…
2015-12-29 07:43:41 +08:00
回复了 minggeJS 创建的主题 JavaScript 反对 try{}catch (e){}的进来, B 君已经是全群公敌!
回到主题吧。简单说几句,以避免很多帖子误导了新人。

对于用异常还是逻辑控制,一般的准则是不要用异常去代替逻辑。
像 OP 这种情况,单独拿出两个函数来,却不说清楚调用上下文的情况下,是没法说明哪种写法更好的。

* 假如这个函数的输入来自一个不确定的源(比如用户输入),那么过滤非法输入属于正常需求,因此属于逻辑代码,应当主动检验数据(即使用 if() )。

* 假如这个函数的输入来自一个可信源(比如可信的数据库、本地配置文件、第三方可信 API 等),那么函数期望输入总是正确的,因而不正确的输入就属于异常现象,这种情况下应当用异常捕获机制(即使用第二种方法, try catch 并打 log )。

至于效率,在一个不需要考虑效率的地方并没有什么意义。
如果需要非常高的计算效率(比如支持特别古老的电脑),那就老老实实在服务器端渲染,别用重 js 了。
2015-12-28 23:17:32 +08:00
回复了 nyfwan123 创建的主题 程序员 开个新坑, PhpStorm 汉化包计划
#52 @yangff 但是听着特别带感啊!
1 ... 709  710  711  712  713  714  715  716  717  718 ... 1018  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5300 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 156ms · UTC 01:21 · PVG 09:21 · LAX 18:21 · JFK 21:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.