V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cloudzhou  ›  全部回复第 34 页 / 共 47 页
回复总数  927
1 ... 30  31  32  33  34  35  36  37  38  39 ... 47  
2014-05-09 15:38:34 +08:00
回复了 jybox 创建的主题 程序员 我是一个人么,还有人觉得 RESTful 是糟糕的设计么。
一一回应:
1 get, post, put, delete 方法的细化,可以很容易在上层做权限拦截,从读取,新建,修改,删除层次上就做到了,当然这个是对方法的使用比较严格。
对于一般的资源,比如 /v1/user/1/ (几个方法表示获取,创建,修改,删除),如果用你现在的方法,那要怎么表示,无论如何都会很冗余。
rest 是为了描述通用资源的管理,如果你抽象得好,绝大多数请求都是可以归类出来的。其他的你可以自行实现,比如你说的「传统」的 API 设计...
2 从 URL 和 Header 里分离参数是有特别意义的,比如 https://developer.github.com/v3/#authentication,用户认证的 Token 必须放到 Header,如果你放在 URL 里,这是一种不安全的方法。总之,敏感信息是不能带在 URL 上面的,类似 Token,sessionid,Header 是最好的选择。
3 Status Code的细分,你看看下面的描述,你觉得这些没有用的?
200: 正常,可能附带数据
201: 需要创建的对象已经存在
400: 请求参数或者格式不对
403: 没有相关的权限
404: 资源没有找到
500: 内部数据出现错误

总结:
大部分的麻烦,要考虑是不是代码写得不对,因为 rest 的这种规范,代码其实更好写的,以 java 为例子,非常好做继承和复用,统一的错误和异常处理,比如一旦 403 转到权限不足提示页面。
2014-04-24 18:31:22 +08:00
回复了 gaicitadie 创建的主题 程序员 当前用户信息该不该缓存?
这个地方要看你对缓存怎么定义,对于使用数据库 select * from xx where id = yy 的情况,其实走的大部分也是数据库的缓存,要理解缓存的重要意义,在于访问时间数量级别的差异:比如寄存器,内存,硬盘,网络访问时间...你可以看到访问时间是数量级别的差距,这就是推崇缓存的意义。

缓存遇到的问题是:
1 粒度
粒度太小,增加了维护上的难度,粒度太大,更新频繁,内存占用大
2 副本
缓存是数据库的一个副本,只要存在副本,就存在不一致性的问题,举个例子,有人手工用 sql 语句更新某个值,而缓存是没办法通知到的。副本状态维护在计算机的各种设计上都是很大的问题,从设计上要减少副本。
3 更新机制
和 2 是相关的,没有一种很好的更新机制能非常好的把更新推送到 cache,代码会比较 dirty。

但是依然推崇缓存:
1 例子:mysql 的协议就比 memcached 复杂很多,相对来说在协议上就体现出延时。
2 大幅的减少 db 的压力,以我经验看,大部分程序员很容易把压力扔向 db,然后由数据库管理员负责,这是不对的。

缓存使用原则:
1 不要手工去维护缓存,特别是业务代码里,这是灾难。
2 orm 里面去维护缓存,做各种更新触发操作,对数据的操作只能通过统一 orm。
2014-04-07 16:46:50 +08:00
回复了 83f420984 创建的主题 Linux 求个高人制作个脚本批量更新服务器文件...
这个倒是蛮容易的,使用 ssh 公钥密钥,无密码认证,然后脚本读写,so easy
2014-03-17 17:17:11 +08:00
回复了 lfzyx 创建的主题 Linux linux 服务器有必要开启 iptables 防火墙么
必须开启,因为很多服务会开放端口,但是这个端口对外界是没有意思的,举个例子,如果你启用了 mysql,通过 3306 端口的,请问你要开放 3306 端口出去吗?
2014-02-11 09:35:56 +08:00
回复了 cbsw 创建的主题 程序员 V2EX 是不是应该考虑加个回到顶部功能
不需要,Home键不能用吗?
这个是扫描,没有太好的方法,我的一般策略就是使用 2222 来替代标准 22 端口
2014-01-14 11:18:36 +08:00
回复了 ququzone 创建的主题 SSL SSL证书购买
@chenniaoc 单线程不会成为瓶颈的,这个和网络复用有关,nginx也是单进程模式,当然你可以开启多个。
这个问题应该不难,redis生成临时计数器,按照一定时间回写到数据库。
2014-01-02 11:39:42 +08:00
回复了 HunterPan 创建的主题 程序员 批处理问题:如何检测tomcat端口是否正常?
更好的方式从应用服务入手,比如在 tomcat 里面开放一个简单的请求,然后外部检测程序去访问这个链接,如果 200 就说明访问成功
2014-01-02 11:36:18 +08:00
回复了 zhonghua 创建的主题 git 为毛我本地git repo的.git目录占的空间那么大
git gc 看一下先
2013-12-18 17:41:24 +08:00
回复了 xipan 创建的主题 酷工作 写给那些站在十字路口的技术同学们
影响 -> 印象
2013-12-18 17:40:38 +08:00
回复了 xipan 创建的主题 酷工作 写给那些站在十字路口的技术同学们
百姓网影响很好,是从看王建硕的blog开始的,但是上面几个同学提出了很好的问题,还有在技术方向上看起来倾向php比较多
2013-12-16 11:28:07 +08:00
回复了 ipudge 创建的主题 问与答 心伤透了是什么感觉?
楼主这种脾气真是我最害怕的,因为家庭(父母之间)之前存在问题,所以对争吵的环境非常敏感,更别说甩东西了。
还有,你到现在都在关注面子问题,”以后我就跟她成仇人了“,这个必须分!
2013-12-12 22:14:12 +08:00
回复了 xujialiang 创建的主题 问与答 有木有内推?求内推了~
阿里巴巴的呢?
2013-12-10 13:32:06 +08:00
回复了 Livid 创建的主题 git SourceTree 现在在征求翻译者帮助
@ultragtx 能不能叫“尚未暂存”
1 ... 30  31  32  33  34  35  36  37  38  39 ... 47  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4069 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 55ms · UTC 10:13 · PVG 18:13 · LAX 03:13 · JFK 06:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.