Wednesday, September 29, 2021

V2EX - 技术

V2EX - 技术


Greasy Fork 上的脚本 V2EX base64 decode 被举报下架了,原因是:代码经过最小化处理

Posted: 29 Sep 2021 04:02 AM PDT

Greasy Fork 上的代码还不能最小化了?

分享最近阅读的书藉清单(二)

Posted: 29 Sep 2021 04:01 AM PDT

Table of Contents

  1. 分享最近阅读的书藉清单(二)
    1. Calculus Made Easy
    2. How to Design Programs
    3. Teach Yourself Computer Science
    4. Cambridge English
    5. 史记的读法-司马迀的历史世界
    6. Calculus[Gilbert Strang]
    7. The Science of Functional Programming: A Tutorial, with Examples in Scala
    8. Introduction to Linear Algebra
    9. 吕氏春秋
    10. How to Speak
  2. 写在后面

分享最近阅读的书藉清单(二)

吾生也有涯,而知也无涯。以有涯随无涯,殆已!已而为知者,殆而已矣!为善无近名,为恶无近刑,缘督以为经,可以保身,可以全生,可以养亲,可以尽年。

--庄子

这些都是在行业中,历史中或学科中的经典好书或者好内容,我想把这些优秀的东西分享出来,并赋上自己的一些主观想法, 能让更多人知道并从中受益。这里只是做一个引荐,精彩需要你自己亲自拜读从中感受。

Calculus Made Easy<sup>1</sup>

微积分通俗入门

那些认为数学难的人一定没有经历过社会,因为相对于数学的严谨逻辑,似乎这个社会更加复杂。

--有人说

  • 我的结论

    因为数学的严谨性,可靠性,近现代科学似乎都是建立在其之上; 1 + 1 就是等于 2 不会等于 3,也不会等于 1; 1 + 1>2 那是社会学,1+1=1 那是人类学; 当你理解了这些之后,你就明白了上面那句引用的意思了。不管是数学公式的推导,还是数学的计算过程,都是逻辑推理出来的不是凭空生成的, 都是有据可寻的。这也就奠定了数学作为科学王冠的地位。而这《本微积分简单入门》用最简单的词汇和最通俗易懂的方法解释微积分。如果你只是小商小 贩,数学的基础运算加减乘除就能满足你了,如果你是工程人员,你可能要学习三角函数线代,如果你是经济相关的,你就需要概率论与数理统计,如果 你是科研,你就要更深的微积分,混沌学。当然这本书只是入门,微积分各个方面他都介绍到了,虽然你可能用不到,很难应用到实践中,但是如果你有 志于更大的理想,数学,微积公都将是你坚不可摧的地基。如果没有,他也可以帮助我们认识这个世界。如果你志力于学习微积分,下面介绍的 Gilbert Strang 的微积分是一本不错的全面学习微积分的好书。

How to Design Programs<sup>2</sup>

如何设计程序

人人都能设计程序; 每个人都可以体验到创意设计带来的满足感。

--摘要

  • 我的结论

    现在我们的每个角落都充斥着程序,各个行业都需要一些编程的技能。而这本书让你系统的了解程序设计,如果你是从业人员,他让你系统的认识程序设计, 少走一些弯路。他认为系统的程序设计就指向两个方面:设计配方和迭代细化。然后在这个基础上细化出 5 个步聚,遇到问题都可以按照这 5 个步聚去走,有些 问题可能会出现在一个步聚上或几个步聚上,他也给你了解决方法。或许你刚入这个行业,很多方面不懂,这本书给你一个全局的概念,然后各个细化的内容 你都可以进行简单的衍生,至少不会像无头苍蝇到处碰壁。

Teach Yourself Computer Science<sup>3</sup>

自学计算机科学

维护你代码的人就像一个知道你住哪里的暴力精神病患者

--有人说

  • 我的结论

    如果你想自学计算机科学,这个是不可多得的好资源。他或许给你的不是最好的方案,但对于没有老师的人他是一个好的路线。也不是绝对的,你可以根据 自己的情况进行增减。现在网络信息如此丰富,以至于你都可以不用去上学了,有人说上学是为了学习社交,可是网络也让社交更简单了,更容易找到志同道 合的伙伴了。如果现代教育系统无法教授更好的知识,那我们又何必浪费时间进入呢。

Cambridge English<sup>4</sup>

剑桥英语

现代文明知识体系的媒介是英语

--共识

  • 我的结论

    这是剑桥系列英语,包括语法,词汇,专业词汇,读音系列,每个系列有初级,中级,高级三个级别,他很有实践性,可以用 碎片化的时间学习,他又非常接地气,每个知识点是经常要用到的,每个知识点清晰明了,给你最直接的英语学习。

史记的读法-司马迀的历史世界<sup>5</sup>

天道无亲,常与善人

--或曰

  • 我的结论

    从字里行间你能读出什么?尤其是这本集百家之所长的史记。史记中的每篇文章,每个句子,每个字的使用都是有其用意的,而汉语也经过了几千年的变化,其中的词汇 现在你很难知道在当时是什么意思。例如史记上关于楚汉之争有两篇本纪,分别是项羽本纪和高组本纪,高组就是刘邦,那为什么他不直接写刘邦本纪,其中应是有褒贬的, 而项羽直呼其名应是有贬义的。此书建议要读懂史记你要谦虚面对他,不断追问为什么,为什么这里如此写,为什么如此编排,为什么如此难懂,为什么如此简练..。

Calculus[Gilbert Strang]<sup>6</sup>

微积分

数学是人类智慧王冠上最灿烂的明珠。

--考特

  • 我的结论

    一本全面学习微积分的好书。

The Science of Functional Programming: A Tutorial, with Examples in Scala<sup>7</sup>

函数式编程-用 scala 语言讲解

我想知道有多少伟大的小说家从来没有读过别人的作品,有多少伟大的画家从来没有研究过别人的笔触,有多少熟练的外科医生从来没有从同事的肩膀上学过……然而,这就是我们期望程序员做的事情。

--戴夫·托马斯

  • 我的结论

    面向对象编程(OOP)似乎更适用于 UI 方面,函数编程(FP)适用于大型软件,因为你的代码都是一个个函数,而函数又是数学,所以几乎没有 BUG 的生存空间。 要深入了解 FP 编程还是要一定的学习成本的,里面也有一些复杂的技术。这本书直接以大量的练习方式学习 FP,他要求要有一定的数学代数知识和努力。

Introduction to Linear Algebra<sup>8</sup>

线性代数

纯数学是"p 蕴涵 q"形式的所有命题的类,其中 p 和 q 是包含一个或多个变量的命题,两个命题中相同,并且 p 和 q 都不包含除逻辑常数之外的任何常数。和逻辑 常量是所有可以用以下术语定义的概念:蕴涵,一个术语与它所属的类的关系,这样的概念,关系的概念,以及可能涉及一般概念的其他概念 上述形式的命题的概念。除此之外,数学还使用一个不是它所考虑的命题的组成部分的概念,即真概念。

--伯特兰·罗素

  • 我的结论

    这是 MIT 基础线性代数公开课,还有配套的教材<sup>9</sup>; 线性代数是关于线性方程,空间向量的一个数学分支,例如 x + y = z 等是一个线性方程; 这门公开课可以说是目前为止线上最好的线性代数公开课之一,不管你是学生,老师,上班族还是无业人士,你都可以学习这门课程,让自己的学识 上升一个层次。线性代数也是高级别工作,研究,科研的敲门砖,想做高级工作就要学好线代,要不然你只能在浅滩上拍水,无法深入大海中 遨游。

吕氏春秋<sup>10</sup>

故周公旦曰:"不如吾者,吾不与处,累我者也;与我齐者,吾不与处,无益我者也。惟贤者必与贤於己者处。贤者之可得与处也,礼之也。…"

–吕氏春秋.观世览

  • 我的结论

    一字千金的典故出自这本书。中国自古贬低商人,士农工商,商人排最后,有商人重利轻别离; 而大商人往往都要依附于权力,吕不韦将经商与权力都做到的极致; 经商投资了秦国,权力位至相国,更是编撰了吕氏春秋成一家之言。中国过去五千年富贾巨商千万,而吕不韦因为这本书被流传至今,就像孔子说的: 后世知丘者以春秋,而罪丘者亦以春秋。

How to Speak<sup>11</sup>

说话的艺术

在接下来的 60 分钟中,您将接触到很多想法,其中一些您将融入到自己的生活中,它们将确保您有最大的机会让您的听众重视和接受您的想法。

–帕特里克·温斯顿

  • 我的结论

    这是 MIT 一节非常著名的公开课,如何在约会,演说,饭局,聚会中给人留下深刻印象? 首先一开始你就要做一个保证,保证自己接下来的说话能带来有意义的内容, 例如这次谈话我将让你认识到说话顺序的重要性,一次好的说话能让你与重不同,说话的顺序也很重要,你不能以开玩笑开场,因为刚开始是大家注意力最集中的时候, 你不能错过这么好的时机,讲一些跟内容没有关系的东西,当然你可以以一个笑话结束,暗示大家快结束了可以放松了;重要的内容要在说话中重复三次左右, 因为这样才能让人记住重要的内容。演说的最后也不要说什么谢谢之类的感谢话,以一个深意的话做结尾给人留下意犹未尽和遐想。例如美国总统就职演说中, 不是以谢谢结束,他们不会说 Thank You, 而是 God bless you, and God bless America.

写在后面

  1. 分享最近阅读的书藉清单(一)
  2. 本文地址
  3. 如果你想访问更多我的文章欢迎访问我的github 仓库
  4. 捐助我的游戏,支持我的创作(定期上新)
  5. 转载请注明出处

Footnotes

<sup>1</sup> https://calculusmadeeasy.org/

<sup>2</sup> https://htdp.org/

<sup>3</sup> https://teachyourselfcs.com/

<sup>4</sup> https://book.douban.com/subject/1232201/

<sup>5</sup> https://book.douban.com/subject/34781358/

<sup>6</sup> https://book.douban.com/subject/30459914/

<sup>7</sup> https://github.com/winitzki/sofp

<sup>8</sup> https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/

<sup>9</sup> https://book.douban.com/subject/3582335/

<sup>10</sup> https://book.douban.com/subject/2053608/

<sup>11</sup> https://ocw.mit.edu/resources/res-tll-005-how-to-speak-january-iap-2018/how-to-speak/index.htm

Android 有好用的设置 http proxy 的软件吗

Posted: 29 Sep 2021 03:56 AM PDT

wifi 设置代理可以在系统直接设置,蜂窝网络不行,目前用的是在 play 下的 postern,他是设置微屁恩的形式,让流量走代理,但是有时候不灵,不好用,看似走了代理实际没走,因为服务器在公网,设置了账号密码,所以软件要支持 http proxy 账号密码,ios 很舒服,小火箭什么的都支持,andriod 有好的推荐嘛

fcitx 选词框跑偏也太厉害了吧

Posted: 29 Sep 2021 03:50 AM PDT

如图所示,默认就偏移的厉害,稍微移动一下窗口,就跑到屏幕外面去了。

全屏 Terminal 中,一直输入一直回车,慢慢就跑到屏幕外面去了。

Windows 下面,默认是跟踪输入法光标下面,这才是正常的吧。

试过修改 fcitx-classic-ui.config 配置文件里面 MainWindowOffsetX 和 MainWindowOffsetX,不行 重装 fcitx,不行 重装显示驱动,换了 Ubuntu 自带的开源 Nouveau 和 NVIDIA 的私有驱动,也不行

到底是什么原因呢?屏幕是 4k 分辨率的原因??

现在公司内的平台越来越多了,有推荐的好用的统一鉴权管理平台吗?

Posted: 29 Sep 2021 03:38 AM PDT

有什么推荐的吗?

最好是免费的,开源的更好。

简单看了有 OpenLDAP, 但是发现有点简陋啊。

线上 Java 项目的连接数过多排查方案

Posted: 29 Sep 2021 03:35 AM PDT

目前线上有个 Java 项目,服务器刚刚启动连接数正常,一两天之后,连接数达到几万。 使用 ps -eLf | wc -l 查看的 有没有好的办法可以排查这个问题呢,是个老项目。感觉是资源没有释放,但是没有好的排查方案,感谢各位大佬。

感觉引入了 chan 后, go 测序的阅读不是那么线性

Posted: 29 Sep 2021 03:35 AM PDT

这个不一定对,只是我的一个感觉。

举个例子,https://github.com/rissw/not_yet_hit_the_wall/blob/main/03-blockread-concurrent/blockread-concurrent.go 这个作者使用并行的方式去统计大文件里面的行数,速度的确很快,几乎和 wc -l 差不多。

但是理解起来真是费劲,比 00-readfile 串行读取统计难度高许多。(但是也快很多,几十倍吧)

后来我一边阅读一边画图才理顺了。感觉 go 的程序需要配个图理解一下啊。

blockread.png

(画图的时候把变量名也重构了一下更符合自己的理解,可能和源程序的命名稍有不同,大致结构是一样的)

Onedrive 的同步功能中,在本地显示云上文件,双击直接下载运行,是不是没有替代品了?

Posted: 29 Sep 2021 03:33 AM PDT

感觉非常实用,节省空间,用起来和本地文件又没区别。

#思考 创业与打工的区别

Posted: 29 Sep 2021 03:20 AM PDT

有时候我会想,打工的时候一年几十万的薪水,我为什么值这个钱。

公司招我来,是来解决问题,或多或少的说明,我解决的问题是值这个钱的,而且大概率是要比这个钱多好几倍的价格,这样公司才不会亏。那,我如果自己干活,我也很努力的解决问题,为什么就很难赚到钱呢。

对于成熟的公司而言,一般都有稳定的主营项目。有了这样一个项目,就圈定了一个范围,在这个范围内,问题被定义,被解决,项目做的越来越好,但是一般一个主营项目解决的就是一个主要的问题。可以肯定的是,这个主要问题的解决是有价值的,如果有『巨大的价值』,公司就很可能做成『巨大的公司』。所以大公司一般要解决跟每个人都有关系的『衣食住行』的问题,这些领域跟每个人都有关系,能解决一个问题就能产生巨大价值。

对于创业公司,个人开发者而言,想『做个新东西』,一种来说是要解决一个『新的问题』。这里面最难的我觉得是『发现问题』,发现人们有什么问题还没有被解决,这是一个需要很敏锐的感知才可以的事儿,努力可能可以增加发现的效率,降低发现的成本,但不一定保证成功。90%的创业者都不能说不努力,但只有少部分人能发现真正的问题。因为世界上大部分问题都已经被解决了,剩下的要么是很隐蔽的问题,要么是现阶段的技术难以解决的问题,解决起来都不容易。

这种问题可以称之为『存量需求』,在现有的社会,科技,自然条件下,普通人能够遇到的问题。大家做垂直市场,每一个细分领域也都扎了一堆人在研究,容易解决的问题也大部分都被解决了。就像人们常说的,想法不值钱,你能想到的无数人也能想到,甚至很多人默默的做了,失败了你不知道而已。最郁闷的就是一不小心解决了一个『伪需求』,白白浪费许多努力。我时常会想,如果社会科技停滞在当前这个时间点,大部分人的核心问题其实也都有解决办法,只是需要钱而已。努力多赚钱就能解决大部分的问题。

发现了这种问题之后,其实大部分问题都是有解的,你可能可以解决的很完美,99%,也可能解决了 60%,但是对于创业而言,一般解决了 60%就能够验证这个问题是不是一个真正有价值,值得被解决的问题了。剩下的过程市场会提供正向的激励反馈来推动你去解决 99%的问题,这个过程我觉得是最舒服的过程了。你会觉得东西做的越来越棒,而且有价值,市场有正向的反馈,一切都充满希望,人就不会觉得累。

BTW,PHP VS Golang 就是这样一个过程的体现。从 0 到 60%的过程,用 PHP 很合适,简单粗暴,你需要先验证一下问题是不是有价值,什么优雅什么性能都是次要的,效率第一。当问题被定义好之后,从 60%到 99%,就要考虑成本,规模,这时候 Golang 就香了。这两年 PHP 日渐式微,大概跟 Web 能解决的新问题越来越少有关系了。

除了对问题的定义不同,另一个是价值评价体系与奖励机制的不同。价值与奖励一般来说是相关的,你做的事儿越有价值,获得的奖励越多,这让人觉得很公平。

对于公司而言,员工管理的核心就是评价体系,考核绩效 OKR,每个人都逃不掉。这玩意一般来说跟人的关系很大,因为评价你的一般是主管或者领导。在这样的评价体系里,想要获得更多的奖励,一般来说做对事儿不如做好人,所以说混大公司先学做人。(我没在大厂做到过高层,高层的奖励机制可能会有不同,不过对大部分人的参考意义有限。)在这样的评价体系里,我就时常会怀疑自己的价值,就像开头写到的那样,我时常想我『为什么值这么多钱』?我到底值多少钱?我的价值是什么,写了几个接口,优化了一点速度?还是跟领导的关系更好,表现的更积极主动?而且公司的评价体系,尽管所有公司都希望做到公平,但这是不可能实现的,否则为什么薪资是所有公司的核心机密呢。

创业的过程,评价体系只有唯一的一个,市场。你的一切行为都是从市场中来,最后由市场来评价你的工作成果,而市场是最公平的了。市场不会奖励盲目的加班,也不会惩罚看起来的『懒惰』。每当我坐在公司的办公室里,为了获得更好的评价而有意无意的加班来讨好上司的时候,内心深处其实都是反感的,你觉得自己『没有自由』。当然,All magic comes with a price,自由的代价就是风险。坐在公司里面,内心再煎熬,总会有保底的收入,让人安心,觉得还能忍。市场却变幻莫测,除了看不见的手,看得见的大手也时常过来搅和一下,在狂风巨浪的大海中驾一叶扁舟,一着不慎可能就真的翻船了。

但是我知道,总有人对自由和公平更敏感,更有诉求吧。就像老人与海中的老水手一样,最后虽然赢了却也还是一无所有,但『与天斗其乐无穷』,才能感受到真正的自由和价值吧。

这段 js 在 iOS 浏览器上运行不起来, 有人帮忙看看吗?

Posted: 29 Sep 2021 03:20 AM PDT

 function formatTime(time) {         // 把传入的字符串时间或时间戳转换为人类可读的友好格式         // 支持同时传入时间字符串或时间戳         // eg:         //      formatTime('2021-09-29 04:00:00')         //      formatTime(1632879192)         //      formatTime('1632879192123') //传入的时间戳带毫秒         var timestamp = time % 1 === 0 ? parseInt(time) : new Date(time).getTime(); // 获取时间戳         var timestamp = String(timestamp).length === 10 ? timestamp : Math.round(timestamp / 1000); // 去掉毫秒         var mistiming = Math.round(new Date().getTime() / 1000) - timestamp;         var postfix = mistiming > 0 ? '前' : '后'         var arrr = ['年', '个月', '星期', '天', '小时', '分钟', '秒'];         var arrn = [31536000, 2592000, 604800, 86400, 3600, 60, 1];         mistiming = Math.abs(mistiming);         for (var i = 0; i < 7; i++) {             var inm = Math.floor(mistiming / arrn[i])             if (inm != 0) {                 return inm + arrr[i] + postfix             }         }     }   formatTime('2021-09-29 04:00:00'); formatTime(1632879192); 

win10 启动慢

Posted: 29 Sep 2021 03:07 AM PDT

从 win10 logo 之后开始黑屏,黑屏 30s 之后才显示桌面,请帮忙分析一下

录屏:BV1Pf4y1A7sz

win10 桌面卡是啥情况

Posted: 29 Sep 2021 03:06 AM PDT

这个问题是最近的一次系统更新后才出现的,内部版本号 19043.1237

看起来是与文件系统有一定关系,比如截屏放桌面需要等个 5 秒左右才有反应。

宣传一下自己封装的 NPM 库-处理 JSON 数据

Posted: 29 Sep 2021 02:58 AM PDT

开发的原因

前端处理 JSON 数据是最基本的一个需求,无论是啥框架,能够方便简洁地拿到数据,可以大幅度地方便开发

主要功能

处理一些 JSON 数据,拿不到值,取默认值,具体可以看 README.md

NPM 地址

https://www.npmjs.com/package/js-safe-json

有啥 GitHub 上自动化和配置的实践教程么?

Posted: 29 Sep 2021 02:44 AM PDT

最近在慢慢自己的开源项目加上自动化,发现了挺多好玩的东西

  • githook 有huskypre-commit-hooks,比如可以在 commit 前编译代码和自动格式化代码。
  • CHANGELOG 的自动生成工具,比如commitlint
  • EditorConfig保证每个人的文件格式统一,比如 tab/space,换行,编码等。
  • GitHub Actions 。很强大,基本的 CICD 功能都可以做到。

虽说找到了这么多好玩的东西,但是要摸索出一个最佳实践,还需要慢慢折腾一番。V 友们有这方面的经验或教程么?

公司开对公账户选哪家银行便宜且快以及改选哪些服务?

Posted: 29 Sep 2021 02:43 AM PDT

想找一个办理速度快,各种费用便宜的,并且最好审查不要那么严格(用的代理公司的地址),

我现在看了一个浦发银行的,然后提供了好多可选产品,也不知道哪些是必须的产品(手机银行还挺贵的),
不知道是不是必须要有,我也没经常转账的需求,网上银行、手机银行如果不开的话怎么给自己开工资和转账呢?
以及这个单位结算卡是不是必须的呢?没有的话会咋样。
有了解的吗

一个奇怪的 Java .lang.UnsatisfiedLinkError 异常 异常描述为找不到 libyuv.so

Posted: 29 Sep 2021 01:55 AM PDT

这是堆栈信息
java.lang.Runtime.loadLibrary0(Runtime.java:1011)
java.lang.System.loadLibrary(System.java:1657)
a.a.a.a.<clinit>(SrsEncoder.java:370)
a.a.a.b.onReceive(Unknown Source:20)
android.app.LoadedApk$ReceiverDispatcher$Args.lambda$-android_app_LoadedApk$ReceiverDispatcher$Args_53617(LoadedApk.java:1339)
android.app.-$Lambda$aS31cHIhRx41653CMnd4gZqshIQ.$m$7(Unknown Source:4)
android.app.-$Lambda$aS31cHIhRx41653CMnd4gZqshIQ.run(Unknown Source:39)
android.os.Handler.handleCallback(Handler.java:790)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:192)
android.app.ActivityThread.main(ActivityThread.java:6896)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:875)

经判断此调用栈未动态注册广播的回调,但是怎么也找不到 a.a.a.b 这个类在哪里,反编译和各种方式分析 apk 没有发现。
请大佬们救救孩子

Python 使用 typing 导致的循环引入问题

Posted: 29 Sep 2021 12:48 AM PDT

文件 a:
from b import B

class A:
def func(self, b: B):
pass


文件 b:
from a import A
class B:
def func(self, a: A)


像上面结构导致的循环引入问题, 应该怎么处理呢?

有大佬想写个开源/闭源的网页游戏吗?

Posted: 29 Sep 2021 12:22 AM PDT

突然脑子里蹦出一个念头,如果我写个开源的网页游戏,写个底子就发出来,会吸引大佬参与吗?

好奇。


过去一个月的业余时间,写完了一款手机小游戏,纯个人作品,自己做策划、做程序,朋友帮忙出了几张素材图,感觉玩起来挺蠢的……就有点郁闷。想干点啥换换思路。

微信上面有哪些关于运维云计算的公众号?

Posted: 29 Sep 2021 12:03 AM PDT

运维包含的内容太多了,导致很多东西都很分散,有没有专门写运维云计算公众号,欢迎各位推荐。

Google 搜索页排版是不是又改了?太左了吧

Posted: 28 Sep 2021 11:25 PM PDT

是不是? 这大屏看的真受不了

https://z3.ax1x.com/2021/09/28/4huQAS.jpg

这还是半屏的截图,下边全屏截图,我天 ……

https://z3.ax1x.com/2021/09/28/4hu6j1.jpg

微信的 webview 在 ios 全屏播放有点问题,求教

Posted: 28 Sep 2021 11:09 PM PDT

微信的 webview 里面我使用 ios 的 native 全屏播放事件横屏播放结束后,整个样式都变了

播放前 播放前前截图

结束播放全屏后 播放后截图

这边如果用网页全屏,但是没法横屏 安卓那边使用网页全屏,在微信的 webview 会自动横屏观看

求教,何解

数据库小白请教一个前端数据录入数据库的问题

Posted: 28 Sep 2021 10:57 PM PDT

问题本身应该非常简单和常见, 但是不知道怎么用合适的语言 /术语去描述这个问题, 所以搜索引擎里面也比较难查.

问题的场景是后台管理系统, 假设做一个商品属性的登记. 现在有一个 商品: A, 前端在登记的时候肯定是一个表单, 要求填写对应的属性, 点击"提交" 按钮🔘之后传到后端, 后端再根据预设的函数录入数据库

但是这个表单里面, 时不时就会碰到一些固定的选项做到下拉菜单里, 例如 商品类别: X, 假设目前类别有 XYZ 三种, 我的想法是后台会有一个专门的表记录这些类别, 类似这种:

商品类 id 商品类名
1 X
2 Y
3 Z

登记后的商品表应该是这样吧:

商品 id 商品名称 商品类 id 商品类名(可选)
1 A 1 X
2 B 3 Z

先说这个 商品类名 好像商品表里面可以不用录入吧, 这个可以理解.

但是, 我前端给用户看到的选项, 肯定是 商品类名 不是 商品类 id, 而后面 商品 数据表里又要求插入这个 商品类 id 的话, 一般是怎么设计的呢?

通过 类名 反查 类名 id 肯定不行吧, 这个例子类名是没有重复的, 但比如 人名 这种肯定会有重复的, 这种反查就不成立了.

应该是非常简单的问题, 望大佬们不吝赐教. 或者提供一些关键词也很感谢

多个谷歌浏览器 同时做一样的事情 有软件吗

Posted: 28 Sep 2021 10:05 PM PDT

win10 系统 有支持的窗口同步器吗

ci 框架集成 swoole 有什么好思路吗?

Posted: 28 Sep 2021 10:02 PM PDT

各位大佬,现有业务逻辑使用 ci2 写的,想集成一下 swoole 协程 使用 Swoole\Coroutine\FastCGI\Client 感觉治标不治本

请教:迁移数据库后,为什么同样的数据,不同的占用大小?

Posted: 28 Sep 2021 08:57 PM PDT

基础信息:

  1. ubuntu 20;
  2. mysql8,用的是 source 命令导入

把数据库从服务器 A 迁移到服务器 B 时,发现有一张大表跟 A 服务器占用空间不一致,

请教下这是什么原因呢?

会影响数据的一致性吗?

如图:

  1. 这是服务器 A 表的占用的空间: 4hNuB4.png
  2. 这是服务器 B 表的占用空间: 4hNKHJ.png
  3. 为了测试,我在服务器 B 新建了个数据库重新导入,发现占用最大的表又减少了 30MB: 4hNQE9.png

把自己白群晖的序列号和 mac 黑群晖会封号吗?

Posted: 28 Sep 2021 02:33 PM PDT

如题,然后白群晖不用了。

golang 实现的表达式计算,不断完善中,欢迎大家提出宝贵的建议������ https://github.com/huangxingx/goexpression

Posted: 28 Sep 2021 08:34 AM PDT

package main  import ( 	"fmt"  	"github.com/huangxingx/goexpression" )  func main() { 	expressStr := "1+2+3" 	exp := goexpression.NewExpress(expressStr) 	result := exp.Execute(nil) 	fmt.Printf("%s = %.2f", expressStr, result.(float64)) } 

如何不修改原始文件而改变库代码的行为?

Posted: 28 Sep 2021 03:32 AM PDT

比如我用的框架库里有个 expression 类,我发现这个类有个 bug,如果我直接修改这个类可以修复 bug 。
但是因为这个类并不在我的源代码管理中,而是定期从厂商那里获取新版本更新的,
所以我希望在我的代码里面加入一个补丁来修改框架库中 expression 类的行为。

有一些情况我认为可以使用猴子补丁,那就是 expression 类生成了全局对象,通过在运行期修改这个对象就可以修改系统的行为。
可是如果其他代码都是局部调用 expression 类生成临时对象的话,猴子补丁就没效果了。

求各位彦祖指点。

No comments:

Post a Comment