V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  qrobot  ›  全部回复第 4 页 / 共 28 页
回复总数  552
1  2  3  4  5  6  7  8  9  10 ... 28  
Extensibility 和 Decoupling 都把项目搞复杂化了, 大部分接口几乎永远不会变化的。 就算变化的接口几乎就是重写。 甚至还要改参数。 所以 Extensibility 和 Decoupling 的意义在于什么? 过度设计的产物。软件开发不可能通过 Extensibility 和 Decoupling 来提升所谓的可维护/可替换/提高灵活性. 实际上这些都是需要人来进行维护的。 软件设计不可能一成不变,而是在重构, 在重构. 在复用在重构。
@jarryli 所以多态能解决什么问题? 不仅仅不能解决问题,反而增加新增负担。 做 Java 第一堂课就是 Favor composition over inheritance , 还在这里整 extends 就说明 Java 没学好, 或者 阿里味太浓
// 1. 构造函数
function A() {}
function B() {}
function C() {}
function D() {}

// 2. 原型链继承
B.prototype = Object.create(A.prototype);
B.prototype.constructor = B;
C.prototype = Object.create(B.prototype);
C.prototype.constructor = C;
D.prototype = Object.create(B.prototype);
D.prototype.constructor = D;

// 3. A 的原型方法
A.prototype.show = function(obj) {
if (obj instanceof D) {
return "A and D";
} else {
return "A and A";
}
};

// 4. B 的原型方法(核心修正点)
B.prototype.show = function(obj) {
// 模拟 Java 的 A ab = new B() 这种引用类型限制
if (this._asTypeA) {
// 在 A 的视角里,只有 show(D) 和 show(A)
// 传入 b 或 c ,在 A 看来都只能匹配到 show(A)
if (obj instanceof D) {
return A.prototype.show.call(this, obj);
}
return "B and A"; // B 重写了 A 的 show(A)
}

// 模拟 B 自己的视角 (B b = new B())
// B 拥有 show(B), show(A),并继承了 A 的 show(D)
if (obj instanceof B && !(obj instanceof D)) {
// c 也是 B 的一种,所以进入这里
return "B and B";
}

if (obj instanceof A && !(obj instanceof D)) {
return "B and A";
}

// 剩下的交给父类 A 处理(比如处理 D )
return A.prototype.show.call(this, obj);
};

// --- 测试验证 ---
var a = new A();
var b = new B();
var c = new C();
var d = new D();

// 模拟 A ab = new B();
var ab = new B();
ab._asTypeA = true;

console.log("1) " + a.show(b)); // A and A
console.log("2) " + a.show(c)); // A and A
console.log("3) " + a.show(d)); // A and D
console.log("4) " + ab.show(b)); // B and A (模拟引用类型为 A)
console.log("5) " + ab.show(c)); // B and A (模拟引用类型为 A)
console.log("6) " + ab.show(d)); // A and D
console.log("7) " + b.show(b)); // B and B
console.log("8) " + b.show(c)); // B and B
console.log("9) " + b.show(d)); // A and D
console.log("10) " + ab.show(a)); // B and A

秒了, 下一题
@shmilyyan 不是啊, 都不用干掉仓库, 咋证明仓库是你的? 咋证明是你提交? 按照这个逻辑公司提交代码诬陷你说你泄露的也要认吗? 除非你亲自承认, 否则拿你没办法。 不然为啥让你写 "道歉书", 写了道歉书就能起诉你了。 何至于发律师函给你?
任何一个社会,任何一个国家都不能有一个 “不结婚的社会”, 因为这样就没有了人口。 多玩玩策略游戏就知道了。 要发展最重要的就是人口。
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
@mogutouer #107 AI 直接写完,12000 changes 够你喝一壶了。 你还想着少吃多餐。 你以为 AI 会和你谈架构了。 没给你 push -f 就不错了。 你要是要看注释里面有 ai 注入的提示词, 够你在来喝一壶了
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
@mogutouer #108 用开源库,不看它的代码吗? 供应链投毒,就够你吃一壶了。 只能说你见识太少了。 为啥要锁版本, 为啥开源项目引入项目需要找公司进行代码审计。 要么你就是学生, 要么你就没参与过项目开发。
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
@mogutouer 说的非常到位, 当然 opus 4.5 也需要花至少一半编码的时间来 review ,其他模型至少两倍编码的时间,有这时间 review 我代码 + 单元测试 + 测试数据 全部都写完了。
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
@Leeeeex 我可能是一个老古董把, 用不来你说这种方式。我觉得信任别人生成的代码是一件非常可怕的事情, 包括自己的写的代码我都会审查和重构。 至于 AI 生成的代码, 我只能说 "仅仅只是玩具" 我至今没看到优秀的 AI 生成的代码, 大部分情况下,毫无架构/设计, 只是零碎的拼成一个庞大仿佛一脚揣上去就会倒塌的大楼。
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
@Leeeeex 你要说 github copilot pro 很垃圾, 那我就无话可说。 各个模型我都测试过, 只有 chatgpt4o 是符合我的预期的
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
@wwhontheway 用的 github copilot, 模型 chatgpt4o/gemini/claude 三个都试过了 gemini 反应慢。 chatgpt4o/claude 写写新手的 CURD 还行,其他的不敢言语。 你自己随便让它写个非标算法。AST 基本上就很伤。 帮忙写注释还行。
1 月 21 日
回复了 mk3s 创建的主题 职场话题 一醒来就吃了个大瓜
居然有人敢用 ai 写代码的人, 真的是勇敢啊, 我都不知道说什么好了。 我让 ai 写代码 10 句有 9 句是错了, 我不明白为啥能用 ai 写代码啊。 我真的很好奇。
2025 年 12 月 31 日
回复了 Daming798 创建的主题 创业组队 招募一位前端合伙人(React + Tailwind + shadcn/ui)
@Daming798 5L, 实际上就是最低成本的前期试错, 如果发现可以盈利那么完全可以直接将原有团队 T 出去, 然后重新在花钱招人就可以了。 这就是事实, 吃了很多亏了
2025 年 12 月 30 日
回复了 Daming798 创建的主题 创业组队 招募一位前端合伙人(React + Tailwind + shadcn/ui)
@Daming798 如何解决项目开发完成后,随便找个理由随时被踢出团队的风险。
2025 年 12 月 29 日
回复了 caiyuan 创建的主题 职场话题 快到 2026 年了,依然有很多程序员在抗拒拥抱 AI
假设你把代码看成一个家里。ai 生成的代码就是随便东一块西一块给你整了一个房子出来了。 自己编码相当于自己设计水电, 自己选不同的材料, 最后建了一个好房子出来了。

你的代码上有很多问题, 自己抽空学一下。 等你入门百分之百你自己都要重构这个。 你可以不会编程,但是要有编程思想啊
2025 年 12 月 29 日
回复了 caiyuan 创建的主题 职场话题 快到 2026 年了,依然有很多程序员在抗拒拥抱 AI
@chtcrack 没用的地方就删除掉啊, 而且肯定需要 id 来存储啊, 简单 uuid 复杂点就 Snowflake id 加上时间同步。 全部都加上 #[allow(unused)] 看着真闹心
2025 年 12 月 29 日
回复了 caiyuan 创建的主题 职场话题 快到 2026 年了,依然有很多程序员在抗拒拥抱 AI
@chtcrack 举个例子吧, 相当于一个完美主义者看到一个非常不完美的东西, 就会有强迫症
2025 年 12 月 29 日
回复了 caiyuan 创建的主题 职场话题 快到 2026 年了,依然有很多程序员在抗拒拥抱 AI
代码一边考虑跨平台, 一边又不考虑跨平台, 真的属于左右脑互博了
2025 年 12 月 29 日
回复了 caiyuan 创建的主题 职场话题 快到 2026 年了,依然有很多程序员在抗拒拥抱 AI
@chtcrack 第一点, 你先把你的 workflows 的文件删除, 你一个 for window 的程序, 用 ubuntu 来做 ci . 这不浪费 github action 的资源么, 其次你那个 winapi 又不用,引进去做啥?

哪个 ai 是这样教你生成唯一数的吗?

```
/// 生成唯一 ID
#[allow(unused)]
pub fn generate_unique_id() -> String {
format!(
"{}-{}",
Utc::now().timestamp_nanos_opt().unwrap_or(0),
rand::random::<u32>()
)
}

```

看你的代码我人都麻了, 哎, 真难平。
1  2  3  4  5  6  7  8  9  10 ... 28  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3040 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 13:33 · PVG 21:33 · LAX 06:33 · JFK 09:33
♥ Do have faith in what you're doing.