
获得徽章 0
- 一个真正可用的技术设计必然要提供可落地的方案,可以是概要的,也可以是细化的。 二者只是不同阶段,概要不等于含糊,笼统。概要应该足够让全域的同学对齐认知,分清楚职责。至少要做到两点:
1. 概要的方案是准确的,能抓大放小,讲清楚模块之间的关系,宏观层面分析到位,可以基于这个概要设计进一步去细化,二者是递进而不是推翻重来的模式;
2. 概要的方案至少要明确到系统边界职责,微服务的维度,可以不涉及具体的接口,库表,缓存设计等。展开评论点赞 - 大批的 AI 落地场景,本质都是在用 LLM 来完成一些【微智能】。
很多接口,交互都需要一些结构化的输入,不麻烦,但总归得思考,分析一会儿,纯用代码逻辑实现的话又有点死板,不通用。这种其实 AI 的效果是最好的,我们的诉求很简单,能听懂人话,简单分析,快速翻译成指定格式,不要求多少深度。现在的小模型速度足够快,很容易解决。尤其是这类场合输入输出很固定,好评估效果,快速迭代。再匹配上一些工具调用,自动化流程。能解决一大堆日常问题。
小模型 + MCP + 自动化,是日常绝大多数场景的大杀器。展开赞过评论1 - vim 全局替换真正使用的是两个ex命令是 :g(global全局)和:s(switch替换)。
替换命令的语法如下:
: s/old/new/
这将把当前中模式old的第一次出现修改为new。 /(斜杆)是命令不同部分之间的分隔符(当斜杆为该行的最后一个字符时,可不写)
: s/old/ new/ g
把当前行old的每次出现改为new,而不只是该行的第一个old。:s命令允许替换串后面带有选项,上面语法中的g代表全局(g选项影响一行中的每个模式,不要把它与影响文件中所有行的:g命令混淆)
通过在 :s 命令前加上地址前缀,可以把它的范围扩展到多行。例如下面命令把50行到100行的old的每次出现都改为new:
: 50,100s/old/new/g
下面的命令把整个文件中的old的每次出现都改为new:
:1,$s/old/new/ g
我们知道%等价于1,$,所以上行命令也可以这样写:
:%s/old/new/g展开赞过评论2 - 撤销 commit 但保留代码: git reset --soft HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。展开赞过评论3 - 本地起 mysql server 后,会发现外部 host 连不了,这个时候可以考虑开放权限。但 8.0 之后无法直接通过 GRANT 创建 user,可以采用下面的命令:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
参照:stackoverflow.com
展开赞过评论3 - 娱乐的收益是确定的,马上就能满足,必然会乐意去做。学习的收益是不确定的,长期的,可能学了会忘,学了用不上,学了也很难短期转化为收益,所以会痛苦,不想做。
类比一下公司内部合作就能想通了:我们常说要追求全局最优解,但往往每个个体会偏向于对自己更优的局部解法。为什么?很简单,全局最优解,往往在局部不是最优的,你又如何让一个个局部,去舍弃它们的最优,来维护这个不确定性很高的所谓的【全局最优】呢?
现在开心,随性,一定会开心,一定会舒服,局部一定是最优的,长期来看不是最优。但长期是由无数个明天的自己,加上环境来决定的,此刻的我何必去舍弃近在眼前的放松,去追求一个远在天边的【最优】呢?展开赞过评论1 - 推荐一个 OS 经典【Operating Systems: Three Easy Pieces】,免费可下载 PDF。内容简单,但体系性非常好:
pages.cs.wisc.edu。中文版:
pages.cs.wisc.edu。
赞过评论1 - dig 和 fx 的区别,from Uber
Dig is a DI library. It has all the core logic Fx needs for actually performing DAG resolution of dependencies, type decorations and resolutions, etc.
Fx is an DI-based application framework. Fx uses Dig to perform the core DI operations, and it comes with built-in utilities (such as Lifecycle and Loggers) that are useful when you are building an app.
At Uber we use Fx to build services and libraries that powers most of our backend.展开等人赞过评论4