登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

陈成
@chenchengpro
engineering @qoder_ai_ide, created umijs, dvajs, mako and neovate code.
参加 June 2008
708 フォロー中    12.9K ファン
关于 AI 编程,rahul 这条总结值得收藏。核心心智模型:把强模型看成「英语→代码的解释器」,它能把你的想法翻译成正确代码,跟问题复杂度无关。一旦如此,写代码的时间就和交付软件的时间脱钩了,真正的瓶颈变成在可控风险下评审、合并代码的速度。 由此工程重心全部要重排: diff 大小不再为可读性服务,只为评审服务。鉴权、身份、数据访问、资金流转这些高风险区只接小 diff 逐行审;前端、后端管道、无网络无 DB 的逻辑、可实测的性能代码,放心上大 diff。 对低风险代码,像对神经网络那样当黑箱:不看实现,只验经验。过去一万次输入输出对不对?能不能隔离掉它的网络和 DB 外联?它错了到底会怎样,是被黑、崩溃,还是只是不便? 逐行逻辑审查以后会越来越贵,要省给真正重要的地方,并主动建容忍经验性验证的系统:权限默认 opt-in,DB 读写、网络出口、PII 访问都得显式申请,再用 shadow mode、sandbox、feature flag 兜底。 还有个反直觉点:复杂度的成本变了。多养 50% 代码换 5% 性能可能划算,抽象选得不完美也无所谓,因为大重构不再痛苦,反倒是代码洁癖会变成巨大拖累,毕竟以后是更聪明的模型在维护你的代码。 还有一句话是:正确性 bug 比访问权限 bug 好补救得多。
もっと見る
1. as a mental model it is more correct to think of fable+ class models as english -> code interpreters - converts your idea into code into "correct" code regardless of problem complexity and output complexity (diff size). Fable 5 will be the worst of this new class of models 2. diff size/complexity is to be managed purely for review: small diffs - in high risk areas of code (auth/identity/data access/network access/money movement) large diffs for code that can be empirically verified (frontend/backend plumbing/code without network or db access/performance code that can be empirically verified) 3. time it takes to ship software is completely disconnected from time to produce the PR - how long the work takes depends fully on ability to review/merge code while managing risk at scale 4. solving the bottlenecks for above matter enormously- linters/testing/CI/shadow mode verification/empirical verification 5. agency matters enormously- what are the biggest bottlenecks to speeding up the loop and eliminating them? what are the problems that need solving and when do they need solving? what does it take to the solution to all of them today? 6. deep understanding of the full stack matters enormously- what problems are worth pursuing? is there a higher level of problem abstraction to address first? should I give it the sub-sub task, the sub task, or the task itself. what are the major risks with this PR (order of importance: security holes/correctness holes/performance holes). is there a higher speed way of producing data that allows me to merge this? should this be run in shadow or in a sandbox or a flag. understanding every line of logic may not be needed but understanding and managing risk matters enormously. 7. the cost of complexity itself is changing. it might be now worth "maintaining" 50% more code to get a 5% performance win. getting the right abstractions matter less because larger refactors are less tedious. code quality nits become huge drag. very likely, a much smarter model will be maintaining your code so worth taking on more technical debt now. taking the time to hand architect and rebuild systems comes with an enormous cost of velocity 8. if it quacks like a duck and walks like a duck, it's a duck. For low risk cases, it might be more sane to treat code chunks (services / functions) as a black box, like we do for neural networks: do full empirical verification only: has code produced correct outputs for the last 10,100,1000,10k inputs ? can we quarantine this large piece of code - no outbound access to network / database ? what happens when this code is wrong? do we get hacked/or crash(memory/cpu)/is an inconvenience? is it internal facing or external? what can we do to address these risks? 9. eventually, logical verification (line by line review) will come at an enormous cost- save it for where it matters and build systems that are tolerant to empirical verification. is there a decorator that prevents db / network access? correctness bugs are significantly easier to rectify than access bugs 10. what are the rails that allow for even faster iteration? code permissions can be opt in - db writes, db reads, network egress (to where?), PII access. how long does it take to get shadow mode data? how many PRs can be tested? What are the categories of diffs
もっと見る