大家好,这里是链客区块链技术问答社区,上班的第一天,祝大家开工大家!今天讲一讲哪些开发语言的也行有助于开发系统。
首先我认为,大型系统指的是,团队里面的人你认识和沟通不超过5%、没有文档就无法理解大多数人当初写那几行代码的意图、代码具有或者接近8位数行、而且需要长期维护、具有完善的自动化测试,所以制度本身和(面试、考核或certification等的)高门槛才是保证项目本身可以健康的生存下去的最重要的因素的系统也不要以为这种代码不多,windows、ffice,maya,、ca软件、战斗机控制程序、还有出了bug就可以吧杨利伟杀死的这些要命的程序—这些通常都复杂。
Curve生态流动性平台Conic Finance正在进行全面审计:8月14日消息,据官方消息,Curve生态流动性平台Conic Finance正在由 MixBytes和ChainSecurity进行全面审计。[2023/8/15 21:22:56]
完成这种系统,需要这个团队在根需求无关的、跟开发有关的几乎所有方面都实行独裁统斫以这种系统需要语言提供什么样的功能呢?我们知道,因为这几千万行都是同一个软件的代码,所以里面必然具有无数的互相依赖的模块,一万多人开发十几年下来,什么是什么都基本上理不清楚了。所以这个时候你做一个修改,最重要的是要保证不要把别人的代码搞烂。就算你跑完了所有自动化测试,如果存在一些东西是自动化测试所无法覆盖的,那你觉得你可以靠人肉排除来保证所有已知的、修过的bug不再出现吗?
pNetwork将下线Raven、Lbry与Safemoon跨链桥:金色财经报道,多链路由协议pNetwork发推称,Raven、Lbry和Safemoon跨链桥将从即日起的两周内下线。目前,pegins已被禁用,pegout将从12月19日起禁用。
pNetwork推文提醒,每个pSFM、pRVN与pLBC代币持有者应尽快赎回原生代币,避免资产损失。[2022/12/6 21:25:39]
这当然是不可能的,尽管不能100%解决问题,但是一个强大的静态分析软件是可以帮我们解决5%的问题(就是那些不能被自动化测试所覆盖的问题里面的95%)。于是这就要求这个语言必须要有一个强大的静态分析软件,或者potentially你可以写一个强大的静态分析软件。写一个静态分析软件面临的最大的困难有两个,一个是nameresolving,另一个是referenceresolving。nameresolving的意思就是,你得到了这个名字,你知不知道他究竟代表的是你源码里面的哪一个函数或者变量。referenceresolving的意思就是,你得到了两个指针,你知不知道运行到某一行确定的代码的时候,这两个指针是否指向同一个对象?
Coin Metrics CEO:当监管更清晰时,大型银行会加入加密货币领域:金色财经报道,Coin Metrics CEO Tim Rice表示,传统金融领域中有更多风险厌恶的公司正在进入加密货币领域,他们更关心的是了解如何减轻风险。纽约的大型银行希望加入加密货币市场,但他们首先希望监管明确。Rice称:“他们的主要事情是,'我们需要监管的清晰度'。然后我们会加入,客户希望我们加入。所以我认为这只是一个让他们感到舒服的正确法规的问题。”(decrypt)[2022/10/13 14:26:07]
于是为了让静态分析软件更容易的做出来,我们需要语言本身可以让我们很轻松的分析出这两个resolving的内容。很难分析nameresolving的般是动态类型语言,譬如python、Javascript、ruby这些。很难分析referenceresolving的般是带指针和引用的静态类型语言语言,譬如Java、C#
我们知道,两个都容易的一般指的是那些在语法上要求你明确副作用的语言,譬如Haskell如果世界上大部分人都是从isp/scheme/ocaml/haskel开始学习的话,其实学习Haskel并没有那么难一旦你习惯了C语言那一套你就晚了)。只要你招得到足够多的人,并且让那些人满足你制作出来的规章制度的话,Haskell是可以用来做大型系统的。只不过这个事情在现实里面般比较难满足,那nameresolving和referenceresolving取舍哪个好?
因为解决referenceresolving是在nameresolving解决了的基础上才可以解决的,所以你只能保留nameresolving。如果一个语言没有nameresolving的困难,那你的静态分析软件的难度瞬间就下降了许多。根据上面的描述,这方面的代表自然是静态类型语言。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。