libook 最近的时间轴更新
libook

libook

.... . ._.. ._.. ___
🏢  yangcong345.com / Full Stack Developer
V2EX 第 78834 号会员,加入于 2014-10-27 17:14:14 +08:00
今日活跃度排名 6432
不参与一切辩论、圣战,无意义。
如果你觉得我我说得好,点一下“感谢”我将荣幸至极;
如果你觉得我说的不好,仅一句嘲讽是没有人获益的;
什么?触碰到了你的信仰?那么请务必当我放屁~
正常回复 IP 被封了,求解封
反馈  •  libook  •  239 天前  •  最后回复来自 libook
3
在 WSL 中运行 GUI(如 IDEA)
分享创造  •  libook  •  238 天前  •  最后回复来自 libook
17
电子设备如何消毒?
硬件  •  libook  •  357 天前  •  最后回复来自 ssqtctc
9
支付授权目录设置为第三方 URL 有哪些风险
程序员  •  libook  •  2019-03-28 17:38:30 PM  •  最后回复来自 airyland
1
自己写的实时演算插件
Hexo  •  libook  •  2019-02-18 17:26:07 PM  •  最后回复来自 libook
3
[培训向]如何给学员讲明白一种算法不合适?
程序员  •  libook  •  2019-01-31 12:24:39 PM  •  最后回复来自 libook
13
[北京] 有没有想学习 Node 服务端开发的实习生?
酷工作  •  libook  •  2018-11-21 13:18:08 PM  •  最后回复来自 defunct9
1
[北京] 有想学习 Node.js 服务端开发的实习生吗?
酷工作  •  libook  •  2018-11-16 10:18:49 AM  •  最后回复来自 wangsahala
17
今天可能要发布 Node10 的 LTS?
  •  1   
    Node.js  •  libook  •  2018-10-31 08:45:44 AM  •  最后回复来自 Acexihua
    9
    V8 7.0 数组开始使用 TimSort 排序算法
    Node.js  •  libook  •  2018-10-30 12:42:04 PM  •  最后回复来自 jjx
    5
    libook 最近回复了
    1 天前
    回复了 balabalaguguji 创建的主题 编程 我来说说异步框架的最大缺点
    异步是个流程上的通用概念,不同技术栈的异步实现可能会有区别。

    个人认为,异步最大的优势是可以让机器一直干活,不会因为一个未返回的结果而干等;
    异步的缺点就是运行时机不确定,两个同时执行的异步过程中的操作不一定谁先谁后,所以如果多个异步过程对同一存储空间执行写操作的的话,每次读这个空间可能得到的值会不一样,多数需求场景下这就是个脏数据。

    所以为了避免运行时机的不确定所带来的预期之外的行为,我们有可能得把外层很多原本就可以正常工作的同步代码改写成异步代码,最坏的情况就是要把整个项目所有的代码都写成异步代码。这算是异步间接带来的成本吧,不过一些语言在这方面做了些优化尽量降低开发者的头痛程度,使得不需要增加多少开发成本就可以享受异步红利。

    一些需求场景中,工作可以拆分成几部分,而每项工作之间没有严格的依赖关系,在这些场景中用异步就是非常合适的,比如多数互联网应用。
    但每项工作之间有严格的依赖关系的话,就不能用异步了,比如算斐波那契数列,每一次计算都依赖上一次计算的结果。

    异步与多线 /进程是两个维度上的概念,同步异步是流程概念,线 /进程是操作系统资源调度上的概念(这个和多核、超线程等硬件技术也不是一个维度上的概念),比如我向操作系统申请了 2 个线 /进程,也是可以让线 /进程 1 先执行,执行完返回结果后再让线 /进程 2 执行,这个也可以称作为同步过程。当然通常我们开多个线 /进程就是为了让它们能够同时运行,以成倍地提高计算效率,所以可以说我们大多数用线 /进程的场景都是会采用异步实现的。

    没有银弹,不同技术有不同的特性,架构选型的实质就是找最适合当前需求的技术。
    1 天前
    回复了 zyb201314 创建的主题 JavaScript [新手] 不懂就问.
    恩,刚才想了想,对象是数据结构不是过程,其本身没有作用域,所以可以忽略第 2 条:
    > 2. 找到对象的作用域内的时候,就直接用这个对象;

    “在箭头函数内用 this 就和在 for 块或 if 块内用 this 是一样的”这一句应该就能解答你的疑问了。
    1 天前
    回复了 zyb201314 创建的主题 JavaScript [新手] 不懂就问.
    在很多编程语言中,“函数”更多指的是一种纯粹的代码语法结构,用于复用代码。

    在 JS 中 function 有三种功能:
    1. 函数式语法
    2. 对象构造函数
    3. 对象方法

    箭头函数仅具备上述第一条功能,更符合我们广义上对于函数的定义。

    当然也可能还有其他奇淫技巧,这里不讨论。

    在你的例子里,是希望给一个对象添加新方法,一个方法要想访问对象主体就要用 this 指令,而箭头函数不支持 this,所以箭头函数不能被用作声明方法。这时候你只能用 function 。

    你要清楚的是,你的 funciton 是在对象外部声明的,而 this 并不会因为你 user.ff= func 而“跑”到了 user 对象内部,而是依托 function 对 this 的支持,在你调用的时候,顺着 user.ff()这个调用路径向左找到了 user 对象。换言之,你完全可以同时把 func 赋值给多个对象的属性,你调用 user1.ff()的时候它就会去找 user1,当你调用 user2.ff()的时候它就会去找 user2,都能正确输出各自对象的 name 值。

    然后由于 JS 是非常灵活的一门语言,所以它并不限制你必须在对象的直接作用域内使用 this,所以你可以在箭头函数里使用 this,只不过这个 this 跟这个箭头函数没关系,就像在一个 for 块或者 if 块内使用 this 一样,它会一层一层向外层作用域找对象:
    1. 找到 function 的作用域内的时候,就按照前面说的 function 内 this 找对象的机制找此时这个 function 的调用路径左侧的对象;
    2. 找到对象的作用域内的时候,就直接用这个对象;
    3. 最终找到对象或者最终到全局对象(globalThis/window/global),然后就用全局对象。

    建议深入了解一下原型机制,特别是对象创建的原理,然后对比一下函数和箭头函数的区别。
    9 天前
    回复了 gbqqaybc 创建的主题 生活 求推荐一款烧水壶
    烧水壶不是啥高科技产品,买大品牌就可以。

    租房不方便装净水器的话可以考虑弄个碧然德的滤水壶,我在帝都用了几年再没有出现过水垢,滤芯二十多块钱一个可以用一两个月,有时候买滤芯送水壶,可以蹲一蹲促销。
    10 天前
    回复了 sidkang 创建的主题 NAS 自建 NAS 的存储方案的技术选择,求建议
    一个设备承载的功能越多,就越复杂,可选择的硬件就越少,成本也高,而且因为是小众需求还经常会找不到合适的硬件。举个例子,便携性+桌面级性能=外星人笔记本,结果最后便携性在笔记本里算差的,性能跟 PC 比起来也不是特别能打。

    对于纯存储功能来说,CPU 、内存性能需求极低,除了网络通信和阵列卡可能会需要 PCI-E 以外几乎不需要 PCI-E (尤其是普遍网卡和阵列卡都板载集成)。如果你还要糅杂虚拟机、游戏等需求,一方面配件厂商做不做就是个问题,另一方面性价比难以提升。所以是否考虑把你的需求拆分成两台机器,一台专精存储,另一台专精计算。

    我就是按照这个思路弄的。Nas 极低功耗,放电视旁边也不影响观影(包括跑了一些重存储、轻计算的 Docker 容器);另外有一台淘汰下来的 4790k (游戏性能已经吊打绝大多数至强了,还超便宜)+980ti,但玩游戏完全没问题(特别是 VR ),我日常会跑 Minecraft 和 Space Engineers 的服务器(后者对 CPU 主频要求很高),还能解码 4K HDR (这个 10 系及以上可能会更好,追求 AV1 解码可能需要 30 系)。

    根据做运维的朋友讲,一台机器里的硬盘超过 4 块可能就会受到共振效应的影响,然后企业级存储盘就是专门解决这个问题的,但相应成本也高了很多。所以还是建议 4 盘位,或至多 6 盘位,这是个临界值,小于的话可以考虑家用和工控硬件,大于的话就可能只能考虑服务器硬件了。然后真的有超大的存储空间需求考虑一下多台机器做存储集群?

    我用的是迎广的 MS04 4 盘位机箱,参照群晖家用产品用的英特尔 J4105 板载 CPU (这货带核显,支持 4K 非 HDR 硬解),内存 4G,主板要是用 PCI 转 SATA 的卡还能至少再扩展 2 个 SATA 位。10W 极低功耗,用 20cm 的风扇几乎没啥声音,希捷酷狼的 4T 盘噪音也可以忽略(至少我用的批次)。

    我调研了挺长时间阵列方案,4 盘位比较尴尬,RAID-5 (或 RAIDZ1 等)安全性争议很大,很多人说两块盘同时坏的概率还是不低的,再加上大容量硬盘恢复时间很长,期间再坏一块硬盘的情况也时有发生,所以一般推荐至少冗余 2 块硬盘,但那样就不适合 4 盘位方案了。另外尽可能让自己所有硬盘批次不相同,同批次寿命相同,我硬盘互相都是隔了差不多 1-2 年时间更换的。

    所以我自己用的四 SnapRAID+MergerFS 的方案,主要是对冗余的实时性要求不高,且需要在故障发生后能够恢复尽可能多的资料( SnapRAID 只要不是全盘完全损坏,能访问的扇区里的数据还是可以直接访问到的),只不过 SnapRAID 依赖于定期执行检查和备份指令,之前找到过一个脚本用了一段时间,但后来某个版本更新之后就不好用了,暂时也还没时间修复,隔一段时间手动备份一下。还有,有的 RAID 方案是可以通过把一个文件的数据分散到多块硬盘上来提升读写性能的,SnapRAID 本质上还是单硬盘访问,一个文件只会在一块硬盘上,所以你硬盘本身的 IO 速度是瓶颈,不过家用存冷数据应该也绰绰有余了,至少看 4K HDR 电影是完全没问题。

    我系统用的 OMV,基于 Debian,提供了 SnapRAID 和 MergerFS 的插件,安装配置有 Web 图形界面比较傻瓜,系统跑在 U 盘里,用 OMV 的插件优化写入可以延长 U 盘使用寿命(我这 2 年多了,还没啥问题),很稳,尽可能保持系统环境纯净,乱七八糟的东西扔到容器里。

    以上就是我自己攒 NAS 的一些经验,可能与你的需求有很多出入,觉得有用的话可以参考一下。
    可以看 MDN 。

    如果一些机制原理还不了解,可以去刷 MDN 的教程,比如 HTTP 基础,以及原型、和 CSS 的各种布局概念。

    如果原理机制都差不多了解了,可以去 MDN 刷 API,比如 JS 里的所有类型、对象、函数的文档,DOM 、BOM 的文档、CSS 所有属性的文档。

    进阶就是去了解一些架构思想,比如 MVVM 、前端微服务等。
    看你想做啥,开发服务的话,可能 Java 比 Go 要好找工作一些。但其实如果你 Java 掌握比较好了,再学个 Go 作为第二语言也是可以的,Go 学起来很快。服务开发更多的是架构设计和中间件,语言本身只占很小的部分。

    做系统开发的话就是 C++和 Rust 。
    12 天前
    回复了 DopaminePlz 创建的主题 Linux VNC 安全性?
    @qbqbqbqb #8 确实新的 RDP 客户端都会有一些安全措施可共选用,但并不都是强制的,TLS 需要有证书配合,如果没有证书的话客户端往往会出一个安全警告的对话框,然后依然可以接受风险继续连接。

    给各种服务都搞证书是一个比较麻烦的事情,有精力可以一个个搞,没精力的话用 VPN 或 SSH 之类的统一加密通道,然后通道内部就不用太关注通信安全了。
    每个人的三观都不大一样。

    我自己一直觉得,遇到了喜欢的人自然而然就像谈恋爱,没有必要非要把很多事情卡在年龄上,所以也不必焦虑。

    那么其实谈恋爱这个目标可以分解成几个关键结果:
    1. 认识更多的人。虽然概率低,但是基数大的话命中的数量也就提升上来了。
    2. 找到喜欢的人。
    3. 了解和培养感情。
    4. 确定恋爱关系。

    可以针对每一条来 Hack,比如第一条“认识更多的人”,你可以多参加一些社交活动,比如一些聚会、培训、公益活动,主动跟其他人聊天、交朋友,有时候结交的朋友也会给你介绍新朋友。

    而且朋友(特别是女性朋友)能帮助你改善你自己的形象,以及提升你的情商,你只需要多思考并时不时做些调整就好。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2270 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:15 · PVG 23:15 · LAX 08:15 · JFK 11:15
    ♥ Do have faith in what you're doing.