大家好,这里是链客区块链技术问答社区,上班的第一天,祝大家开工大家!今天讲一讲哪些开发语言的也行有助于开发系统。
首先我认为,大型系统指的是,团队里面的人你认识和沟通不超过5%、没有文档就无法理解大多数人当初写那几行代码的意图、代码具有或者接近8位数行、而且需要长期维护、具有完善的自动化测试,所以制度本身和(面试、考核或certification等的)高门槛才是保证项目本身可以健康的生存下去的最重要的因素的系统也不要以为这种代码不多,windows、ffice,maya,、ca软件、战斗机控制程序、还有出了bug就可以吧杨利伟杀死的这些要命的程序—这些通常都复杂。
OP(Optimism)短时上涨触及3美元,24小时涨幅18%:金色财经报道,OKX行情数据显示,OP(Optimism)短时上涨触及 3 美元,现报价 2.95 美元,24 小时涨幅 18%。
此前报道,Coinbase 的以太坊 L2 网络Base的开发将基于 OP Stack 构建,并与 Optimism 合作。[2023/2/23 12:25:45]
完成这种系统,需要这个团队在根需求无关的、跟开发有关的几乎所有方面都实行独裁统斫以这种系统需要语言提供什么样的功能呢?我们知道,因为这几千万行都是同一个软件的代码,所以里面必然具有无数的互相依赖的模块,一万多人开发十几年下来,什么是什么都基本上理不清楚了。所以这个时候你做一个修改,最重要的是要保证不要把别人的代码搞烂。就算你跑完了所有自动化测试,如果存在一些东西是自动化测试所无法覆盖的,那你觉得你可以靠人肉排除来保证所有已知的、修过的bug不再出现吗?
数据:BTC平均休眠期达5年低点:7月17日消息,据Glassnode数据显示,当前BTC平均休眠期(7日均值)为2.036,达5年低点。[2022/7/17 2:19:07]
这当然是不可能的,尽管不能100%解决问题,但是一个强大的静态分析软件是可以帮我们解决5%的问题(就是那些不能被自动化测试所覆盖的问题里面的95%)。于是这就要求这个语言必须要有一个强大的静态分析软件,或者potentially你可以写一个强大的静态分析软件。写一个静态分析软件面临的最大的困难有两个,一个是nameresolving,另一个是referenceresolving。nameresolving的意思就是,你得到了这个名字,你知不知道他究竟代表的是你源码里面的哪一个函数或者变量。referenceresolving的意思就是,你得到了两个指针,你知不知道运行到某一行确定的代码的时候,这两个指针是否指向同一个对象?
MicroStrategy以1000万美元购入480枚BTC,总持有量达129699枚:金色财经报道,MicroStrategy以约1,000万美元购买了480枚比特币,平均价格为每枚BTC约20,817美元。截至22年6月28日MicroStrategy持有约129,699个比特币,价格约为39.8亿美元,平均价格为每个比特币约30,664美元。[2022/6/29 1:39:50]
于是为了让静态分析软件更容易的做出来,我们需要语言本身可以让我们很轻松的分析出这两个resolving的内容。很难分析nameresolving的般是动态类型语言,譬如python、Javascript、ruby这些。很难分析referenceresolving的般是带指针和引用的静态类型语言语言,譬如Java、C#
我们知道,两个都容易的一般指的是那些在语法上要求你明确副作用的语言,譬如Haskell如果世界上大部分人都是从isp/scheme/ocaml/haskel开始学习的话,其实学习Haskel并没有那么难一旦你习惯了C语言那一套你就晚了)。只要你招得到足够多的人,并且让那些人满足你制作出来的规章制度的话,Haskell是可以用来做大型系统的。只不过这个事情在现实里面般比较难满足,那nameresolving和referenceresolving取舍哪个好?
因为解决referenceresolving是在nameresolving解决了的基础上才可以解决的,所以你只能保留nameresolving。如果一个语言没有nameresolving的困难,那你的静态分析软件的难度瞬间就下降了许多。根据上面的描述,这方面的代表自然是静态类型语言。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。