js 写后台, 是不是有点先天残缺?

2022-07-28 11:21:39 +08:00
 bthulu

最近在做一个面向企业内部生产运输的系统, 生产排程及排车排程算法异常复杂, js 原生容器字典非常简陋, 也缺乏对容器字典进行各种排序过滤反查的手段.
像 java 原生就支持多种集合字典, 不行还有 guava 来凑.
C#的 Linq 就更不用说了.
这几天 js 写的越多就越怀疑人生, 数据处理稍微复杂一点的啥都要自己写工具函数来干, 是不是我水平太菜了, 实际 js 是有简单现成的进行复杂的数据处理的办法的?

9405 次点击
所在节点    JavaScript
79 条回复
bxb100
2022-07-29 00:59:43 +08:00
歪个楼,请问生产排程及排车排程算法有啥资料可以看吗,一直挺好奇这个实现的
bthulu
2022-07-29 08:05:03 +08:00
@bxb100 工业的都偏保守, 没有开源的, 都是各家厂商自己在摸索
einq7
2022-07-29 09:24:22 +08:00
@byzf #37 发帖还是得标题党一下😂,不然都没什么人回复
Felldeadbird
2022-07-29 10:49:41 +08:00
JS 没有太多标准库啊。很多东西你不是搞前端的,用后端思想去写就会觉得特别难受。很多后端有的 JS 自身没有。而且 JS 还要考虑国产壳牌浏览器的兼容。。。过于新的语法,你还要引入兼容库。

nodejs 不太清楚,毕竟我没深入写过。
seenthewind
2022-07-29 11:10:31 +08:00
我只能说,你差不多快看到本质了。

如果学编程的人够早,就知道以前的语言是什么样,javascrip 刚出来的时候是什么样。

用 C++的人喜欢说一句话,一个东西一旦好用,那么很容易被滥用,很多语言的维护团队都在极力发扬好用的一面,克服滥用的一面。

JS 派系除外。

我不止一次被 js 开源项目那恐怖的依赖关系恶心到,如果你有幸遇到报错,可以看看究竟抛出了多少东西(我基本上像是看到了一个宇宙级 Exception )。

至于后面的各种封装、库、什么社区、什么前人的轮子,我的理解是,当你造汽车时有一百个轮子可以选,就基本相当于没得选,而且选个轮子耗时,自己写一个轮子也耗时。

于是他们决定用轮子自动造轮子,真的是牛逼至极。
zw1one
2022-07-29 15:54:47 +08:00
node.js ?
humbass
2022-07-29 18:42:06 +08:00
@bthulu 2015 年就已经实现很多常用的操作

针对 Array 的操作 filter\map\every\some , 以及 set 、weakset 、map 、weakmap 相关,都相当好用

在 es6 标准出来之前,相当多应用使用 underscorejs 来执行上诉功能
zzhzero
2022-07-30 00:57:50 +08:00
@Mexion 说得好 你有本事别用 k8s
Mexion
2022-07-30 03:33:04 +08:00
@zzhzero gop 经典的胡言乱语,k8s 再 nb 又能证明什么,能证明 go 不简陋吗?何况 k8s 是 google 选择用 go 写而不是只有 go 能写。其次我还真没用 k8s 。
zzhzero
2022-07-30 15:52:18 +08:00
@Mexion 我等着你用 js 实现 k8s
Mexion
2022-07-30 21:57:00 +08:00
@zzhzero 搞得好像 k8s 是你实现的一样:-D
Mexion
2022-07-30 22:00:13 +08:00
@zzhzero go 烂就算了,还有像你这样的追随者嘴硬一点缺点都说不得;胡言乱语我说东你说西😅
zzhzero
2022-08-02 23:24:27 +08:00
@Mexion 现在还没上 k8s 只能用 low 来形容了,视角有限我理解。
Mexion
2022-08-02 23:45:32 +08:00
@zzhzero 你真是纯纯的🤡,不用 k8s 就是 low 就是视角有限,我目前专注于前端,k8s 又不属于我的领域上不上关我鸟事,这种自我感觉优越的逆天言论也只有 go 孝子这种群体能够这么大言不惭地说出来
fanyer
2022-08-08 02:09:39 +08:00
@qrobot 你怕是不知道 7 年前 npm 怎么设计的,锁版本有 p 用,当时库里就是即时删的,没经历过那个环境就别 bb
qrobot
2022-08-08 10:48:49 +08:00
@fanyer #75

你说的 7 年前也就是

npm 3.8.5 是七年前最后一个发布的版本, 因为之后的 3.8.6 是 6 年前发布的, 如果你没说谎, npm 的版本就是 3.8.5


来让我们看看日志啊


你也可以自己打开看


npm-shrinkwrap(1) -- Lock down dependency versions

怕你英语不好, 我帮你翻译下

npm-shrinkwrap(1) -- 锁定依赖版本


- https://github.com/npm/npm/blob/v3.8.5/doc/cli/npm-shrinkwrap.md


人不行,就怪环境不行? 就算没有 lock , 操作 `node_modules` 写个 lock 难道很难? 而且 npm 本身就提供了 npm-shrinkwrap 给你锁版本。

至于你说的第二个问题, 库是即时删除的。verdaccio 7 年前就提供 1.4.0 版本的 npm 私服。

- https://github.com/verdaccio/verdaccio/tree/v1.4.0


我没有 bb, 七年前就方案了。 请问你怎么会觉得没有用? 还是说你连这个都不知道? 人不行,就怪路不平? 水平差就怪 npm 不好用, 设计的有问题? facebook 觉得 npm 设计不符合他们的想法, 所以做了 yarn, pnpm 觉得 npm 太占磁盘了,所以重写了, 而你做了什么? 除了抱怨以外,哪怕是给别人提一个 issuse 的事情你做了吗?


你不会,就多问问别人,向别人虚心请教
zzhzero
2022-08-19 22:23:04 +08:00
@Mexion 有这么多时间喷人不如去调查一下大公司标准的前端业务上线流程,真的是什么都不知道 bb 个没完了,没长脑子就别说话。
Mexion
2022-08-20 02:35:13 +08:00
@zzhzero 那你在干嘛,不是你逼逼我我能鸟你?
还来说教我,有这时间不如自己买个六个核桃补补脑
Mexion
2022-08-20 02:36:16 +08:00
@zzhzero ban 了,小丑一个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/869194

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX