首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mdluo  ›  全部回复第 1 页 / 共 10 页
回复总数  197
1  2  3  4  5  6  7  8  9  10  
31 天前
回复了 bayker 创建的主题 前端开发 前后端分离, JWT 还是 Oauth2?
很明显这种没有第三方参与的场景是不适合用 OAuth 的,参考我上面 #6 的回复的链接

JWT 的过期和刷新也很好做,参考业界主流做法,AWS、Azure 和 Auth0 都是用 JWT 为载体,ID Token + Access Token + Refresh Token 的模式:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-token-and-claims

https://auth0.com/docs/tokens
31 天前
回复了 bayker 创建的主题 前端开发 前后端分离, JWT 还是 Oauth2?
你可能并不需要 OAuth2: https://git.io/vxGxy
@janxin #7
@Mcatt #8
@raphaelsoul #9

请不要站在上帝视角让用户去锁版本,因为用户没法预料哪个包会出问题。而且锁版本是 package-lock.json 或者 yarn.lock 的事情,自己手动去 package.json 里锁版本只能当成紧急措施,因为既锁不住深层依赖,也不方便后序升级更新。第三方依赖包小版本升级造成严重问题的情况相比修复潜在问题的情况还是少很多的。

request 这次的主要问题因为这个 PR ( https://github.com/request/request/pull/2880 )明明没有通过 CI 但还是被作者给无脑 merge 了。应该吸取的经验教训是单元测试一定要写,CI 一定要用而且结果也很重要。不管是开源项目还是商业项目,尤其是有很多人参与的项目。另外如果写的一个库的用户很多,也要注意在 node.js v6 版本的兼容性,因为很多云平台还是在这个版本。
作者及时发布了更新 v2.85.0 把 hawk 升级的 PR 给 revert 了,惨案暂告段落

总结经验教训: https://git.io/vxv2g
39 天前
回复了 HuahuaChen 创建的主题 程序员 小程序算不算 web 开发
严格说不算。小程序没有提供大部分的 Web API,包括 DOM、多媒体、以及符合 HTML5 标准的设备访问 API 等。所以直接表现就是大部分的 Web 框架都不能直接用在小程序上
44.1 KHz 的采样率对应的最高声音频率是 22 KHz,人声的主要频率在 4 KHz 以下。音频的有损压缩无非就是把人耳不敏感的信号丢掉,主要就是丢高频。所以即使是简单粗暴的丢掉一半,把 22K 直接砍到 11K,对人声的影响也是可以忽略不计的。具体是怎么用的看看频谱图就知道了。

纯人声用 64kbps 没什么问题,更低都有可能。但是音乐用这么低的比特率,那基本上就是为了省流量已经完全不顾音质了。
43 天前
回复了 bobuick 创建的主题 程序员 跳槽 coder 们,现在外面行情很好?
@onion83 CloudFlare 搞了几个 52X 的私有状态码要不要也背下来 :doge
炫酷的公司文化和技术栈!
44 天前
回复了 bobuick 创建的主题 程序员 跳槽 coder 们,现在外面行情很好?
@daniellu #24 HTTP 协议的问题和业务完全无关??? 缓存控制、状态码、RESTful 或者路由设计、编码和内容解析、内容压缩、WebSocket、状态管理、认证和授权、HTTPS、HTTP2、跨域和 CORS、CSP、负载均衡 等哪个不是涉及具体业务而又跟 HTTP 协议密切相关的
精通 Javascript ???
倒想看看精通到什么程度🤔
@mdluo #4 Typo: YDNJS 系列 -> YDKJS 系列

@mikan #5 面试题在 GitHub、掘金或者就在 V 站搜索就能搜到很多了,另外有一个不错的动手实践系列: https://nodeschool.io/
47 天前
回复了 rootliang 创建的主题 问与答 想问大家一种数据库储存的方式
如果数据库提供了复合键作为主键的功能,自己把两个城市的 ID 存成复合主键就好了。

如果没有复合主键的功能,那么考虑两个城市为一个 Pair,用个 Unsigned Int 32 作为主键,高 16 位是第一个城市的 ID,低 16 位是第二个城市的 ID,总共可以覆盖 2^16 = 65536 个城市了,其他字段存“平均时效”和其他信息。

主键可以利用数据库的索引,直接按两个城市查询的时候速度最快,也能在单表内对“平均时效”这种信息做排序和查询等操作。
三条线同时进行:

做项目:主要是踩一些坑,以及多用 devtool 调试工具,很多第三方库的函数可以跟进去看一下怎么实现的。在 JS 代码调试的时候关注一下右边的 Call Stack 和 Scope ;在看 HTML 调试的时候多看看各个元素有哪些属性、有哪些 Event Listener ;看 CSS 的时候看看各个属性是如何继承、覆盖和计算的,属性的不同的值会对页面造成什么影响,等等。这其中发现有问题就去查文档和规范。

看好书:比如高程、YDNJS 系列、CSS 权威指南、CSS 揭秘等。但是不要仅仅看过就完事,而是带着自己的思路去重新过一遍所有的知识点,想一想如果自己要写这么一本书应该怎么写。

看面试题 + 查文档和规范:针对面试题的问题,或者看书遇到的问题,去查 MDN 以及 HTML/CSS/DOM/ECMAScript 等规范原文,甚至有些情况还要看浏览器和 JS 引擎的 C++ 源代码,搞懂这些问题背后的原理。
“因为 original 已经被 resolve,所以它的状态被 new Promise 继承” 这句话并不正确,很简单的验证:

https://ws2.sinaimg.cn/large/82d0750dgy1fp0kc7iwsej20kw0l20w2.jpg

所以可以看到在 Promise 的构造函数的参数即 executor 函数,在执行的时候去 resolve 另外一个 Promise,即使这个 Promise 的状态是 "resolved",也不会在构造函数返回的时候就立即把 promise 对象的状态置为 "resolved",确实是 "pending"。

但是如果 resolve(original) 和 original.then((value) => resolve(value)) 是等同的话,结果应该是 4 3 2 1 才对)。因为这个 resolve(value) 虽然不是在第一个 event loop 里同步执行的,但是是最早加入 microtask queue 的。说明 V8 在针对 executor 的 resolve 函数的调用时机的处理并不是同步的,其他有些 Promise 的实现(比如 bluebird )是同步的,结果也确实是 4 3 2 1。

V8 的处理好像可以等同于下图,看了下这样的话不管是结果还是执行过程中的 Promise 状态都是一致的

https://ws2.sinaimg.cn/large/82d0750dgy1fp0kvyo4vdj218c0ja41s.jpg

总的来说就是,executor 的 resolve 很有可能在 V8 的 Promise 实现里被特殊处理了,resolve(original) 的执行过程都不是在同步代码里,而是加入了 microtask queue。在 microtask queue 里执行的时候又因为是去 resolve 另一个 Promise,相当于 resolve 这个 Promise 的 then 结果,所以又被加入了 microtask queue 的最后面。而最终轮到 resolve(value) 执行的时候,前面已经被一个 Promise.resolve().then() 的回调、以及这个回调带来的另外一个回调给 “插队” 了,所以 resolve(value) 的执行被排在了最后。

没具体去看 V8 的代码,仅仅从表现上分析的。不过这一点确实是规范里也没有提到的东西,跟实现有关。
54 天前
回复了 life1st 创建的主题 求职 [北京] 应届求职 web 前端
@z308114274 #13 感谢丰富黑名单
54 天前
回复了 life1st 创建的主题 求职 [北京] 应届求职 web 前端
@Railgun4 #10 面试的时候面试官问起这些问题你说他是在装逼?楼主自己简历里写的“两年前端开发经验”问这些基础问题叫装逼?
55 天前
回复了 imlink 创建的主题 问与答 一道编程题,可能是我想复杂了
@mdluo #17 上面这个代码处理边界条件有些问题,仅提供个思路,有时间你可以自己修复

p 表示当前在处理第几条边
nav 表示当前边( p%4 )的两个相邻元素之间的索引位置差值
count 用来记录当前边( p%2 )的剩余元素个数
55 天前
回复了 imlink 创建的主题 问与答 一道编程题,可能是我想复杂了
一个循环就能搞定,帮你用 JavaScript 写了个 11 行的函数:

https://ws2.sinaimg.cn/large/82d0750dgy1forsfwbek6j21kw0geq6f.jpg

下面是在线版地址:

https://repl.it/@mdluo/clockwise-array
划重点:广州、天使轮、工资 6k、每周工作 6 天

后端技术栈:不明(有点像 PHP ?)

前端技术栈:bootstrap + jQuery
1  2  3  4  5  6  7  8  9  10  
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1447 人在线   最高记录 3541   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 38ms · UTC 16:39 · PVG 00:39 · LAX 09:39 · JFK 12:39
♥ Do have faith in what you're doing.
沪ICP备16043287号-1