个人觉得多交些朋友,人情世故做到位,很多时候比证明自己有用的多,特别是找工作。
中二一些地来说,很多动漫里“证明自己”的终究会失败,“超越自己”的才会成功。
看路径很显然是自动扫描漏洞的机器人,这种都是用云厂商的 IP 段,按照常见的漏洞库无差别扫的,扫到漏洞就会有黑产来拿肉鸡或者勒索。
封 IP 没用的,因为都是用代理池,成千上万个 IP ,而且可以做到喷洒攻击,每个 IP 频率跟正常用户差别不大,但顶不住 IP 量大。
要想简单粗暴就上 WAF 或人机验证,有些产品是有代理池 IP 库的,可以识别来的 IP 是不是机器人的代理,然后自动限制。
上面的楼非常符合预期地对 Go 产生了争议。
我个人的理解是这样的:Go 是一款专门 Hack 企业生产过程中的各种问题的一款“产品”,特点就是灵活性低,由此带来的优点就是一种需求只有一种解决方案,千人一面,避免团队个别人整“花活儿”,由于很多需求都有“标准方案”,程序质量也不会因为个人水平差异差太多,以个人的束缚来换取团队的高效生产。这一段的描述可能稍有夸张,不过是为了说明我所理解的 Go 的设计方向。
所以很多人指出的 Go 的缺点,多是自己被束缚而产生的不快,但站在企业产而的角度上来说,这些都是值得的牺牲。
1. “解决问题的敏捷性与后期的可维护性和扩展性”:这个主要是架构设计、代码制度的问题,跟语言本身的关系不大;正所谓水平烂的程序员用什么高大上的语言写出来的代码都一样烂。
2. “在性能层面要求不会特别的高,考虑的不只是语言本身的特性,还包括语言本身的生态”:5 年内流行起来的语言基本还需要开发者自己造不少轮子,持续火的时间越长生态越好,火超 10 年的技术栈甚至有完备的中文文献和社区。比如 Java 、Python 、JavaScript 。
3. “当然也需要考虑招人或者新人上手成本”:越贴近人类思维,抽象程度就越高,暴露底层细节就越少;语言灵活性越低,需求的可选实现方案就越少,花在方案选择上的时间越少,对开发者要求就越低。当然不同语言在不同特性上的简单和复杂程度是有差异的,造就了不同语言的适用场景的不同;其实大多语言本身学起来都很简单,难的是框架、库、思想。
团队协作,以及规模化、流水线化生产,我个人推荐 Go 和 TypeScript ,因为灵活性低且性能足够,能避免不少问题,不过 Go 的生态还是免不了自造轮子。
个人兴趣向开发就什么顺手、喜欢什么就用什么,有的人就是喜欢使用一些高大上的语言来雕琢,以让自己获得工匠式的满足。大多情况下语言不是瓶颈。
P.S. 刚学了 Rust ,个人感受是很多特性是十分先进和巧妙的,对于本身进行系统开发工作(也就是绕不开 C\C++等较低抽象的语言)的团队来说,Rust 在提升产能和产品质量方面是有显著成效的。
P.P.S 任何达到一定规模的项目都难以使用一种技术栈做到面面俱到,在多种语言的方案中进行选择也是可以考虑的。
遇到喜欢的人自然而然就想谈恋爱;
谈了恋爱觉得合适就自然而然想结婚;
结婚了算算结余还 ok 的话就自然而然想要孩子。
没有啥应该不应该的,顺其自然就好。
题主描述的是生存玩法,生存模式进阶可以做刷各种物资的装置,尽可能改进设计提高生产效率。
除了生存玩法还有创造模式的一些分支玩法:
建筑、景观、雕塑、像素画;
红石电路;
音乐盒。
装 Mod 可以有更多玩法,不过我玩得比较少。
Node 是如何应对高并发场景的?答:异步非阻塞。
JavaScript 的生态根基简单来讲就是语言+API 。
JavaScript 是一门脚本语言,一门语言要想有实际用途就得有能力调用各个系统,那么就需要各个系统面向 JavaScript 提供 API ,比如你计算了 1+2 ,能得出结果 3 ,但你要想看到这个结果就得让操作系统帮你显示出来,于是操作系统(中间省略很多环节)给 JS 提供了个 console API ,你可以使用 console.log 来(中间省略很多环节)调用操作系统把 3 显示出来。
所以 Node 不等于 JS ,JS 语言的执行能力只是 Node 的一项子功能而已。
原生 JavaScript 语言是单线程执行的,但 Node 不是单线程的,Node 为 JS 语言提供了一些 API ,其中大部分都是 IO 相关的 API ,比如网络访问、文件系统访问等。
Node 有一个假设,就是很多应用场景下 IO 操作的工作量要远远大于计算操作。比如大多 Web 应用服务都是响应网络请求( IO 操作),经过简单的逻辑计算,然后进行数据库请求( IO 操作),那么假设只要 CPU 不闲着,IO 负载很可能会比 CPU 负载先用满。
Node 如何做到让 CPU 不闲着?答:计算单线程执行,IO 多线程执行(异步),但计算可以不等着 IO 完成(异步非阻塞)。
不调用任何 API ,纯进行 JS 计算,比如算斐波那契数列,1+2=3,2+3=5……这个只能单线程执行,算 2+3=5 的时候必须等着 1+2 出结果,只不过此时 CPU 并没有闲着而已。
如果在计算出每一个数字的时候,把数字写到硬盘上,这个写硬盘的操作就是 IO 操作;
假设没有异步非阻塞机制,应该是这样的:计算 1+2 ,得出 3 ,执行将 3 写入硬盘,等待写入完成,写入完成后计算 2+3……CPU 在等待的时候是闲着的,时间基本浪费在等待将 3 写入硬盘。
现在 Node 给你了一个能力,就是你可以在向硬盘写入 3 的时候选择不等着它完成,直接继续算 2+3 ,这就相当于有 1 个线程在不停算斐波那契数列,额外还有多个线程帮你把每个结果存硬盘。
回到题主的场景描述,Node 接收到一个请求之后,如果进行简单逻辑计算后就直接操作数据库( IO 操作)或应答( IO 操作)的话,可以选择不等着 IO 操作完成,继续处理下一个请求,等某个 IO 操作完成了就会回来调用后续的 JS 程序。
但如果执行的是异常复杂的计算,比如视频转码,如果是在处理请求的线程里做的话,一定会抢占预期用于处理请求的 CPU 时间,导致请求“卡住”。不过你猜怎么着,Node 其实是提供了多线程 API ( Worker threads )和多进程 API ( Child process ),你完全可以像其他语言那样使用多线程和多进程来进行优化。除此之外 Node 还提供了面向 C/C++的 N-API 以及面向很多语言的 WebAssembly ,在需要极端计算性能的场景下不至于完全放弃 JS 技术栈。
Hackathon?
给个题目,定个时间范围,自行组队报名,然后做出产品,再公开介绍产品特点和制作过程,最终投票评奖。
玩游戏的时候定个预期能在一两个小时内达成的目标,达到目标还有时间玩就算赚到,这样你每次都能获得激励,到时间可以停下了。
不玩游戏的话就用核显,玩游戏的话看预算。
750ti 带不动主流游戏,轻游戏中基本核显也能带的动,所以这个卡可能会比较鸡肋。
建议参考 Steam 的用户硬件统计情况,看大多玩家用什么卡,游戏厂商也会根据类似的市场调研来决定硬件适配,结合你的预算看能不能搞到一块尽可能用得上的卡。
可以用好一点的风冷或者 240 一体水冷,有些名气的品牌就行(比如利民、酷冷至尊、九州风神);电源取决于你用啥显卡,显卡型号定下之后去网上搜这个型号的显卡通常搭配多少瓦的电源,确定效率和功率,然后去找一些主流品牌。
大多情况下,“日后升级”都是个伪需求,攒机的时候想着日后升级一些硬件,后面就有可能买新不买旧直接全换新了(特别是一些新品有一些新特性),除非你有明确的 2 年内升级计划。
跟工资卡在同一个银行办的,办业务在一个银行就搞定了,不需要跑多个银行。
在北京,对中国银行的服务态度印象不大好,现在基本都是用招行,只有出国前换外汇才会看看是不是中行实惠一点点。
中行只是名字跟央行有点像而已(缺了“人民”二字),跟其他银行没啥太大区别,比如建行其实全称是“中国建设银行”,都是“中国”字辈的。
只要是 Type-C ,不管能不能充电,肯定都是可以插进去的,不能插进去就是质量问题。
不同品牌的设备快充协议可能有不兼容的情况,存在非苹果的线插苹果的设备充电速度降低的问题,买之前得看商家是否明确了兼容你的设备。
基站用的是华为的设备的话,手机应该也就华为的信号质量最好了,毕竟定向优化。
备用机不一定非要买新品,只要不玩游戏的话,近几年硬件性能过剩,甚至有体验倒退的情况,挑个广受好评的型号就行。
害人之心不可有,防人之心不可无,借钱也得知道借出的钱要用来做啥,不然你借出的钱用于违法用途就很麻烦了。这个酒驾罚金的理由破绽太多,他不真心对你,你何苦要真心对他,讲人情也不是任何事情 100%都讲人情的。
拓扑是啥样的,描述看不大明白。
假设是从计算机 X 连到计算机 Y ,操作计算机 Y 上的 A 目录和 B 目录里的文件,如何才能让文件数据不经过计算机 X ,是这个意思吗?
这样的话,你从 X 上 SSH 到 Y ,然后在 Y 的环境下用 cp 命令就不会走 X 了,就像你在 Y 计算机直接使用 cp 命令一样。
黄金和黄金饰品是两码事,黄金是原材料,黄金饰品是工艺品,投资的话还是不要考虑工艺品吧,价格没法单纯根据重量量化。
个人觉得三部曲是个完整的系列,第四部跟前三部没啥关系,像是同人外传吧。