首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这个人不懂什么CPU,于是代码模拟出了一个

最近,来自 BBC 一名资深软件工程师 Daniel Harper 使用 Go 语言成功模拟出了一个 CPU 所有功能,并把自己经历写成了博客,引起了人们热议。...不知道 L1/L2 缓存(cache)和 pipelining 是什么,也完全不确定自己是否理解 Meltdown 和 Spectre 漏洞论文,所以想要更深入地了解这些东西。...一些人告诉,他们正在优化代码以更好地利用 CPU 缓存,而我却不知道如何验证真假,只能选择相信他们。真的不确定 x86 指令是什么。...开发之旅 开发过程实际上只是阅读文本、查找图表、然后尝试使用通用编程语言代码(而不是使用为集成电路开发而设计代码)来翻译。 之所以用 Go 语言来写,是因为对 Go 了解一点。...无论如何,最终编写出了四个程序,其中多数程序使用一些共享代码来绘制字体、获取键盘输入等。虽然与操作系统还有一定距离,但它确实让意识到一个简单操作系统也可能提供一些服务。

89820
您找到你想要的搜索结果了吗?
是的
没有找到

组长指出了使用react常犯错误

背景 年底了,换了项目组,新项目组使用react,从vue到react,只花了一天时间,看了官方简单文章之后,就觉得这玩意很简单啊,比起vue那么api来说,这根本没有学习成本好吧,十分迅速就进入了...react项目开发,并且洋洋得意,根据我多年经验来看,这波肯定会得到领导赏识 很快,就做完了需求,把代码提交上去,组长可能确实比较闲,还review了代码,并且指出了一系列问题,并告诉说学习...react最难部分,并不是知道怎么使用它,而是要知道怎么能够编写良好,干净react代码 主要给我提了六点错误,相信在座各位,可能需要对号入座 在不需要使用state时候使用state 涉及到项目中代码逻辑...,我们将一些内容通过demo形式展示出来 提交表单在很多场景下都需要用到,对于一些表单提交,大多数人代码实现可能是以下方式 export default function App() { const...onChange={(e) => setName(e.target.value)} /> {userName} ); } 咋一看好像没什么问题

86930

谁在调试代码

背景 为了提高开发软件产品安全性,大部分选择方案防护方案是,通过用成熟加固软件进行对自己研发软件做防护,从而达到对软件搭建一个安全防护墙。...加固软件主要做两件事,对软件中关键代码保护以及提高对软件逆向反编译门槛。 那么软件安全性防护墙第一道门那就是反调试。反调试技术又细分为静态反调试和动态反调试。...对于X86系统,Vista以上版本HeapFlags位于0x40偏移, 低于Vista版本位于0x0C 对于X64系统,Vista以上版本HeapFlags位于0x70偏移,低于Vista版本位于...CloseHandle 检测 利用异常捕获机制,给CloseHandle函数一个无效句柄作为输入参数,在程序在没有被调试时,将会返回一个错误代码;而程序被调试器调试时,将会触发一个EXCEPTION_INVALID_HANDLE...反调试和反反调试方案都是相对,并不是绝对安全。反调试强度更高方案在于驱动层去检测实现。

62131

为了治好拖延症,出了这个自虐项目,把卧槽卧槽

大家好,是 Rocky0429,一个在划水界鼎鼎有名蒟蒻... 最近雨下有点多,导致划水量有点大,被水淹有点不知所措,患上了传说中拖延症性关节炎... ?...这直接导致最近经常能在后台看到诸如“辣鸡,取关了”、“狗营销号”等溢美之言,不绝于耳... 搞有点羞涩,毕竟这人最受不了别人夸... ? 所 以 决 定 要 做 回 普 通 人! ?...这人没别的爱好,就是喜欢自虐... 为了改头换面重新做人,在某个夜深风高夜晚,扛着小锄头,挖出了压箱底宝贝,轻轻掸去了一层浮灰... ?...想象一下,本就拖拖拉拉自己,好不容易忍着写了几百字,突然想玩会手机犒劳一下自己,手机刚拿出来,写东西没了,你是什么感觉?想了一下,如果有钱的话,直接就把手机砸了... ?...顺便立个 flag,以后要是再拖延就抽死自己,这篇文章写了十几次才写完,换谁也扛不住啊,手指头都要断了... 看在手指头份上,怎么也得给个在看安慰一下不是...

67210

写出这样干净代码,老板直夸

再来看下面代码: int a=l; if(O==D) a=O1; else l=o1; 上面这串代码傻傻分不清O和0,l和1。简直亮瞎眼。...行动起来 下面这段话摘至《Clean Code》作者: ❝写函数时,一开始都冗长而复杂。有太多缩进和嵌套循环。有过长参数列表。名称是随意取,也会有重复代码。...不过我会配上一套单元测试,覆盖每行丑陋代码。 然后打磨这些代码,分解函数、修改名称、消除重复。缩短和重新安置方法有时还拆散类。同时保持测试通过。...最后,遵循本章列出规则,组装好这些函数并不从一开始就按照规则写函数。想没人做得到 ❞ 就像写作文一样,好代码也不是一次性写出来,需要反复琢磨。...满足于仅仅让代码能工作程序员不够专业。他们会害怕没时间改进代码结构和设计,不这么认为。没什么能比糟糕代码给开发项目带来更深远和长期损害了。进度可以重订,需求可以重新定义,团队动态可以修正。

37310

OpenCV-Python刚写六行代码出了个惊天BUG

引子 最近一直在用PyQT跟python-opencv做开发,正好需要固定阈值二值化,于是就随手写下了如下代码片段: image[image > t] = maxval image[image <...t] = maxval image[image <= t] = 0 else: image[image > t] = 0 image[image <= t] = 255 感觉这代码满分...,于是调试时候,输入一张灰度图像,只要选择bin_type=0总是正确执行二值化,只要输入bin_type=1就一片白色。...测试了几张图像之后感觉有点怀疑人生了,逻辑这么好代码,居然不正确执行! 真相让崩溃 这个问题当时让好郁闷,感觉自己智商出问题了!...后来还想起了很久以前,从github上面下载有个别人项目,他代码里面也有类似的写法,记得当时调试发现这段代码不工作,因为当时项目代码很长,就保存图像发现不正确,就用opencv-python

61340

代码模板 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套总结使用设计模式四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 通过历史上接触过各种抽奖场景(红包雨、糖果雨、打地鼠、大转盘(九宫格)、考眼力、...------------ //代码没有`else`系列 //模板模式 //@auhtor TIGERB //------------------...//------------------------------------------------------------ //代码没有`else`系列 //模板模式 //@auhtor TIGERB...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2.

1K30

代码组件 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套总结使用设计模式四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 按照如上某东订单结算页面的示例,我们得到了如下订单结算页面模块组成图: ?...----------------------- //代码没有`else`系列 //组合模式 //@auhtor TIGERB //-------...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2....---- 代码没有else系列 更多文章 代码模板 | 代码没有else 链式调用 | 代码没有else 点击https://github.com/TIGERB/easy-tips/tree

1.1K10

他一开口,就嗅出了骗子味道!

王女士描述暑期兼职欺诈不是个例,小助手在后台还收到了类似这样粉丝留言: 田七 和同学找她刷单,说好了一单一结,结果变成了一个任务有10单,我们根本没那么多钱,她还不退钱。...月月 被网络兼职骗了,怎么办啊,一个月生活费? 接下来小助手就带大家见识一下那些专门瞄准学生党诈骗案例。...案例一:听说紧缺快递录单,就报名了 小雨(化名) 初二学生 小雨无意在QQ上看到有人招聘快递录单员,就想赚点零花钱。...小雨准备好接单了,这时任务员才说要交198元会员激活费才能做任务,小雨很是犹豫,但对方承诺做满7天后退还,又晒出了兼职人员工资结算单。 小雨很动心,就交了钱。...青少年网恋又出新招,磕泡泡了解一下 谁动了个人信息?

1.1K10

是的,开源项目被曝出了高危漏洞。。

前几天看到了一个开源项目中远程执行漏洞,开发者通过 HTTP 接口暴露了一个参数,接收参数之后,代码中将该参数拼接了一个命令,然后把这个命令使用 Python 中 Popen 执行了,然后把对应输出结果返回到了...这开发者都这么不注意吗?这谁干好事啊? 没错,那个开发者就是。。。...比如,这里定义一个方法,接收一个参数 host,然后拼接了一个 dig 命令,用于查找这个 host 解析地址,代码如下: from subprocess import Popen, PIPE def...传入了一个域名,输出了 dig 命令之后域名解析结果。...而且尤其作为开源项目的作者,也有必要好好地处理好安全性问题,不然大家用了项目,但是出现了问题,还是难辞其咎。 以后我会多加注意,谢谢大家支持。 End

72150

预防同事维护代码

导读 程序员痛恨遇到质量低劣代码,但在高压环境下,我们常为了最快解决当下需求而忽略代码规范,在无意识中堆积大量债务。我们还观察到许多开发者被迫加班罪魁祸首便是写低效代码、不重视代码优化。...接下来,将为各位列举9种个人工作中高频遇到不整洁代码行为,并提出针对性优化建议。...过长函数和方法:编写过长函数和方法,导致代码难以阅读和理解。过长行:编写超过50字符代码行,导致代码难以阅读。...4.1 缺乏复用性 代码重复是一种非常常见错误。当我们需要实现某个功能时,可能会复制粘贴之前代码来实现,这样可能会导致代码重复,增加代码维护难度。...,计算逻辑存在重复,这样代码重复会影响代码可维护性。

18820

眼中代码平台

那么,这些低代码平台是如何降低软件开发学习曲线呢?个人感受是以下几个方面。 可视化工具 首先,降低开发门槛一大利器是提供动动手拖拖拽拽就可以完成主要 UI 界面的可视化工具。...自身是 github copilot 深度用户 —— 近半年来个人项目中 70% 以上单元测试代码都是 Copilot 帮我完成, 它大大提高了开发效率,使得在不必花费太多额外时间前提下...虽然 Copilot 帮我完成代码有时还是有荒谬绝伦错误,但大部分时候,它能够很好地领会了意图。而最近一个月爆红 ChatGPT 更是把 AI 辅助开发潜力提升到了一个新高度。...对低代码开发平台浅见 出于职业习惯,对不少低代码平台都做了一些肤浅尝试。它们在各自细分领域都有不俗表现,但没有特别让眼前一亮通用开发平台。...自己做简单测算,同样功能代码,同样预算下,Rust 代码可以支撑 4-10 倍 nodejs 请求量。

1K20

那愚蠢代码之旅

将借此机会,与您分享那段令人难忘编程初体验,那段充满了繁复、愚蠢和迷茫,却也锻造了如今编程能力。让我们一同走进编程时光隧道,重温那个曾让笑与泪交加糟糕时光。...还记得那天,迫不及待地想要用编程解决一个简单问题:判断一个给定整数是否为素数。对于一个编程新手来说,这似乎是一个令人兴奋挑战,但我完美主义倾向却导致了写下了一段极度繁复而愚蠢代码。...代码开始于一个庞大 if 语句,里面包含了各种条件,以确定一个数是否为素数。试图在一个函数中完成这一任务,但不幸是,代码很快就失控了。...这个代码问题在于,试图手动检查了所有可能除数,但却忽略了素数基本定义:只有两个正除数,1 和自身。愚蠢代码反映了对问题过度复杂化,以及对基础知识不足。...这段修正后代码更加简洁和高效,而且在正确性上也毫无问题。但是,却花费了大量时间和精力在一个愚蠢而繁复代码上。 这个故事告诉我们,编程不是追求繁复和复杂性游戏,而是要注重简洁和正确性。

9210

是怎么读代码

本文是在日常读代码中积累一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。...除了看 overview,也会大致关注配置,通过必填配置可以进一步了解软件依赖和外部特性。...当我们能用图表和文字来表达出软件完整设计后,我们对代码理解已经比较透彻,甚至,让我们自己来照着写一个新也不是不可能了。 这个时候,就应该进一步思考,如果是自己来解决问题,我会怎么做?...在读 Go 语言内存管理代码时候,一开始搞懂了 tcmalloc 原理和实现,但对其所谓线程缓存、无锁分配等等卖点理解不深刻。...结语 本文是日常读代码一点经验,总结下来,就是要 仔细地选择学习项目; 先通过文档了解全景,再逐步深入代码; 找对抽象和边界,能帮助我们建立思考模型; 写篇文章讲述代码设计,是深入理解代码好办法

1.2K20
领券