V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  libook  ›  全部回复第 190 页 / 共 251 页
回复总数  5019
1 ... 186  187  188  189  190  191  192  193  194  195 ... 251  
2020-09-03 10:55:28 +08:00
回复了 Awes0me 创建的主题 问与答 把牛奶当水喝会有什么健康问题吗?
我试过,结果就是越喝越渴。

另外乳蛋白可能会让你长痘。
2020-09-02 14:00:53 +08:00
回复了 coderdusk 创建的主题 Node.js 请问 nodejs 有什么保姆级的框架吗
1. 想用新技术(2009 年以后的技术)就要学好英文,并适应搜索和阅读英文文档,Node.js 技术栈的官方文档写得特别好,我的一个 Python 栈转 Node.js 的实习生光看官方文档只用了半个月就能很熟练写 Node.js 的服务了。如果不想逼着自己看英文,就回去学 Java\PHP\.Net ,这些在国内积累了大量的用户,相应的也有大量中文文档可以看。
2. 开发 Web 服务的话 Express 就很好用,很多必备的模块都集成好了,如果用不了那么多模块或大多模块需要定制就用 Koa 。想要什么功能的中间件和模块自己去 Google 、Github 、npm 上搜,也可以来这里问。其实自己造也很快。
3. 实在想找一些现成的脚手架,可以自己搜一搜,比如 MEAN https://github.com/linnovate/mean
这两个问题如果从字面上理解的话,其前提都是假命题。

Node.js 在哪些方面对于哪些关系型数据库支持不好?数据库驱动其实只需要实现 Socket 通信、实现特有通信协议、发送指令( SQL 字符串)、反序列化返回结果就可以了,Node.js 一开始就支持 Socket 通信(net 模块),通信协议是纯逻辑的只要是图灵完备语言都能实现,字符串任何编程语言都支持,反序列化完全就是按照本身语言特性来设计的。现在主流数据库 Node.js 都有对应的驱动包,有的甚至是数据库官方提供的。

如何定义“CPU 密集型”?如果指的是多线程多进程的话,那 Node 完全没问题;但如果单纯看执行效率的话,没啥语言能比得过汇编、C 、C++、Rust 等编译型系统开发语言吧( Java 的性能也并不比 Node 好多少( https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html),跟系统开发语言来比仍然有很大距离)。而且因为 Node.js 内的 V8 是支持 WebAssembly 的,以及 Node 自己支持 N-API,核心对计算性能要求较高的模块(一般要求高性能的部分都是很少的一部分)可以用 C/C++、Rust 来实现,然后由 Node.js 调用,早年做区块链的很多公司就是这么搞的。

如果捋一遍目前最新版的 Node 的文档,可以发现现在 Node 能干以前干不了的很多事了。

我觉得前端干后端的活的问题从来不是工具、语言、引擎、框架的问题,而是后端架构思想、中间件、DevOps 、SRE 方面知识不足的问题,现在没有任何一个成规模的系统是只用一门语言就可以做得很好的,多种语言、多种中间件、多种架构思想各自发挥各自的优势才能让整体系统处于最佳状态(同时降成本降到最低)。

想说明老板,可以让老板提出几个指标(比如硬件资源、并发量、相应速度、开发周期等指标),然后你再去调研 Node.js 现阶段是否能让你们实现这些指标,能的话就直接用 Node.js 试试,用数据来说话。
或者让老板把担忧说明白一些,然后你可以做一些 Demo 来证明他可以不用担忧。
语法错得有点多,比如 func2 是不是缺括号,以及 4 个 func 是不是函数声明语法(要么用 function 指令,要么用箭头函数)?还有有的函数带 async 、有的不带 async (像 func4 内有 await 是不是外部得有个 async 环境),你写的 func3 内部的 catch 是直接挂在 async function 声明上的,不是挂在 async function 执行结果返回的 promise 上的(两者类型不一样,通常 catch 都会挂在 promise 对象上)。


按照我的理解硬猜吧,首先先把你的代码调整到正确的语法(回复不支持格式化,你自己贴到文本编辑器里手动格式化一下):
wrong = "";

function func0(){
wrong();
}

async function func1() {
wrong(); // will throw type error
}

// 任何时候调用这个函数,都相当于直接创建了一个新 Promise 并立即处于 pending 状态,但第一次 await 之前不会真正执行
function func2(){
return new Promise((resolve,reject)=>{
wrong(); // will throw type error
});
}

let p = null;
function func3() {
p = func0();
//p = func1();
//p = func2();

// learn from the stackoverflow
(async () => {
console.log('第一次 await,Promise 开始执行');
await p;
})().catch(console.log('await 执行产生了 Error'));
}

async function func4() {
p = func0();
//p = func1();
//p = func2();

try {
console.log('在 try 里执行 await');
const res = await p;
} catch (error) {
console.error('try 捕捉到了 Error');
}
}

你自己分别执行 func3 和 func4,以及分别换 p=func1()和 p=func2(),看看 console 里输出的信息的顺序,可以看到,func3 和 func4 里的 catch 都是能顺利触发的,也就表明错误不是在赋值了 p 的时候就发生的;为了进一步证明这个,我在上面代码里加了一个非异步执行的 func0,你试一试在 func3 和 func4 里给 p 赋值 func0,你会发现 catch 里的信息没有输出,也就是 Error 不是在 await 执行的时候发生的,而是在赋值 p 的时候就发生了。

func1 和 func2 对于外界调用他们的函数来说两者几乎是等价的,都是返回一个 promise,区别就是在这两个函数内部你希望是以 promise (比如内部调用某些 API 是基于 callback 实现异步执行的)语法还是以 async/await 语法来写。

另外并不建议 func3 和 func4 中给 p 赋值的写法,因为当你不确定给 p 赋的值是什么类型的时候,如果遇到 func0 的情况就会直接在这里报错,你若希望在下面执行 p 的时候捕捉错误,可以在给 p 赋值函数(去掉括号)而不是函数的调用,如 p=func0;然后在下面执行的时候加上括号 await p();,这样不管你给 p 赋值的是同步还是异步函数,错误都会统一在下面执行的时候捕捉到。

归根结底还是建议楼主去仔细学习一下 Promise 的原理和执行过程,网上有不少优秀的教程,把 Promise 吃透之后,JS 的异步开发就游刃有余了。

另外建议楼主多阅读优秀的 JavaScript 项目代码。
2020-09-02 10:28:57 +08:00
回复了 chauncychan 创建的主题 Raspberry Pi 树莓派脱离配件,能干点啥?
一般都是推荐有想法做什么再入手,又不是饥饿营销晚一天就买不到。

没有想法就入基本上都会吃灰。

我用过 3B,试过 HTPC 、NAS 、软路由、开发机都不好用,最终只发现三种好用的场景:
1. GPIO 开发,就是一般说的需要配件的场景,比如接各种传感器、显示屏、电机;
2. 玩复古游戏,比如红白机;
3. Pi-Hole,用 DNS 来过滤一部分广告。

不过 4B 硬件水平上比 3B 有不小的提升,但还需要测试才知道是不是足够被用在更多领域,比如试试装 kodi 接电视放个 1080P 视频看看卡不卡( 3B 播 720P 都会卡),以及挂载硬盘之后看看网络传输文件速度有多少。
2020-08-28 14:01:19 +08:00
回复了 secsilm 创建的主题 问与答 戒指购买建议
买啥没法给建议,这东西是因人而异,真的是喜欢买啥就买啥,但就是注意别买到掺假货。

有人喜欢纯金,有人喜欢铂金,有人喜欢钻石,有人喜欢宝石,有人喜欢玉。有人看重贵金属的价值,有人看重设计,有人看重意义。

另外婚戒和钻戒好像不一样,这玩意是西方传来的,了解的人可以科普一下。
2020-08-27 15:25:52 +08:00
回复了 huahuaer 创建的主题 MacBook Pro 大家伙的 MBP 有另外配键盘+鼠标(或者触控板)吗?
蝴蝶键盘受害者,自己配了 Ultimate Hacking Keyboard 凯华茶轴,放在笔记本两侧,能缓解手腕、手臂疼痛;另外还有一个 MX Ergo 轨迹球,可以缓解手腕疼痛。
2020-08-27 11:39:02 +08:00
回复了 zhoumouren 创建的主题 程序员 一个这样的情节, B 如何证明自己的清白
@zhoumouren 我们之前也是这么想的,但是 2019 年网络安全法开始实施以及等保 2.0 同步生效之后,各机关会强制监督实施,多数互联网企业都能被评为三级,所以会被强制要求达到三级安全标准;北京这边各部委已经轮番查了好几遍了,不符合要求的话会责令限期整改,未在规定期限内完成整改的会有行政处罚。
如果你们还没遇到相关要求的话,可能只是还没执行到你们而已。
2020-08-27 11:31:52 +08:00
回复了 zhoumouren 创建的主题 程序员 一个这样的情节, B 如何证明自己的清白
所以有没有修改了日志的日志?
假设 A 删除了修改日志的日志,那么也应该有删除了日志的日志。

如果有相关日志,就说明日志被人动过,则不能被当做有效证据。

另外系统里很多地方都会记录日志,所以可以尝试找找别的线索,比如 Shell 的 history 、防火墙日志等等。

“具体询问 IP 的时候,A 搞了一个钓鱼网页,发给 B 看看其里面的内容,但是只要 B 一访问,就获取了 B 的 IP”那么 B 的电脑里就会有访问这个网页的历史,如果网页是部署在 A 电脑上的话就很明了了,最糟糕的情况就是部署在境外的 VPS 上。可能报警硬钢到底能有更多资源提供更多线索。

安全方面来说,这个日志管理机制是不合规的;登录系统应当有全程操作的记录(甚至录像);相关日志和记录不可篡改、不可人为删除、记录和审计日志的进程不可被干扰或终止,日志和记录保留 180 天以上。账号一人一号,且管理员三权分立,并定期审计。
没有代码,没法提供方案。

数据量不大到至于爆掉引擎内存空间的话,可以准备两个线程(比如 Web Workers )、一个队列,一个线程持续准备数据并将待发送的数据插入到队列中,另一个线程不断从队列中读取数据发送。如果你用内存存储队列且怕内存爆掉,可以在准备数据的过程里每次循环都检查一下队列大小,如果超出阈值就暂停一段时间。

Promise 是在一个线程内控制异步 IO 的,Promise.all 不知道你想怎么用,如果单纯吧准备和发送数据的过程扔到里面估计是所有要处理的数据同时准备和发送了,你要是对数据没有先后顺序要求的话也不是不行。Promise 提升效率的关键在于异步 API 异步执行,同步 API 用了 Promise 也不会异步执行,这时候就得考虑多线程了。
2020-08-26 13:46:51 +08:00
回复了 libook 创建的主题 分享创造 在 WSL 中运行 GUI(如 IDEA)
@mingl0280 我以前一直在这个方案上用 XMing,是没问题的,所以估计可能不是 XMing 完全用不了,具体得看看其他配置或环境是否有问题。我换 Cygwin 纯粹是因为 XMing 新版都需要捐助才能下载,从理论上来说,就是需要一个在 Windows 上跑的的 XServer,你只要找到一个可用的软件,成功在 Windows 上运行兼容 WSL 内的 XClient 的 XServer 就行。
2020-08-26 13:43:06 +08:00
回复了 KaynW 创建的主题 Windows 0202 年了, 现在在 Windows 下快乐编程的姿势是什么❓
https://www.v2ex.com/t/693745
我是用 WSL+Windows XServer 来解决的,目前做 Web 全栈开发,体验不错。
2020-08-26 13:38:13 +08:00
回复了 Legman 创建的主题 生活 大家会给孩子打流感疫苗吗?
除了国家强制规定的以外,打疫苗就是买保险,你有投入(金钱上或身体上的)也有回报(风险以及连带风险的降低),如果你能接受投入并觉得回报较高,那就打,否则就不打。

当然也要做好功课,学习生物学、医学的基础知识,让自己有能力分辨事实和失实,不被舆论所耽误。
2020-08-26 13:30:03 +08:00
回复了 Donald5VE 创建的主题 生活 真的要结婚?生孩子?
遇到喜欢的人自然而然就想恋爱;
有恋人之后可能自然而然就想结婚;
结婚后可能自然而然就想要孩子。

顺其自然就好,有了目标就要有计划,有了计划后就付出努力。
当前的处境是当前的,你有改变它的勇气就有改变它的希望;要是止步于丧,那就只能这样了。

另外说一个题外话,我是做教育行业的,遇到的很多家长都以为只要舍得花钱把孩子送进好的学校或好的培训机构就能解决孩子的教育问题了,但是实际上父母对孩子的教育在影响孩子的因素中的比重比他们以为的高得多。国内教育方面的阶级隔离还没西方那么严重(私立学校培养出来的学生就基本都吊打社区学校培养出来的学生);而且学习成绩本来就不错的学生私立学校有奖学金制度。只能说,现在担忧这个“8 万”的问题,还为时过早(没准你自己以后能发展得很好,或者以后孩子教育底子打得好不用关心这“8 万”的问题),关键的就是接下来每一步怎么走。
2020-08-25 10:28:56 +08:00
回复了 libook 创建的主题 反馈 正常回复 IP 被封了,求解封
辛苦站长回复一下,谢谢!
2020-08-24 18:52:48 +08:00
回复了 libook 创建的主题 反馈 正常回复 IP 被封了,求解封
现在变成偶尔 403 了
2020-08-24 17:39:57 +08:00
回复了 libook 创建的主题 反馈 正常回复 IP 被封了,求解封
目前看来应该是已经解封了,感谢站长。

不知道之前未提交成功的回复是否能恢复,如果重新提交一个内容类似的回复不知道是否还会被封 IP 。
1 ... 186  187  188  189  190  191  192  193  194  195 ... 251  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1099 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 71ms · UTC 18:26 · PVG 02:26 · LAX 11:26 · JFK 14:26
Developed with CodeLauncher
♥ Do have faith in what you're doing.