本文是我在日常读代码中积累的一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀的项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。...描述设计原理,通过画图帮助分析设计意图 在介绍原理和实现的时候,相比于贴代码,更好的方式是通过画图来表达。代码的确能体现全部的设计细节,但代码更重要的任务是作为知识和硬件指令之间的桥梁。...当我们能用图表和文字来表达出软件的完整设计后,我们对代码的理解已经比较透彻,甚至,让我们自己来照着写一个新的也不是不可能了。 这个时候,就应该进一步的思考,如果是我自己来解决问题,我会怎么做?...我在读 Go 语言内存管理代码的时候,一开始搞懂了 tcmalloc 的原理和实现,但对其所谓线程缓存、无锁分配等等卖点理解不深刻。...结语 本文是我日常读代码的一点经验,总结下来,就是要 仔细地选择学习的项目; 先通过文档了解全景,再逐步深入代码; 找对抽象和边界,能帮助我们建立思考模型; 写篇文章讲述代码的设计,是深入理解代码的好办法
若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。...写在开头 在今年初,我就打算迁移我的博客了,主要原因是ueditor编辑器不支持go代码的高亮,所以打算换,但是由于本人比较懒,同时事情又多,就耽搁了下来 此次迁移,跨度半年,实际消耗了3,4天左右,使用到了...} log.Printf("文章%s同步完成\n", v.Title) } log.Println("文章同步完成") } 同步文章内容样式 由于之前使用的是.../ueditor2markdown/ 通过分析,找到了ueditor2markdown.js的相关代码: 修改包的document的,改为jsdom 库实现,该代码已经开源:https://github.com...= nil { log.Fatal(err) } } } 整理博客配置项,优化博客的路由兼容 这个比较简单,不做额外说明 引入highlight 高亮代码
利用cocos creator 3d做了个3d版的羊了个羊,文末“阅读原文”可体验。
如何准备数据、拿到正确格式的数据并导入后续的代码进行分析,是学习和应用过程中的第一个拦路虎。 为什么教程会习惯使用内置数据?...简单省事、便携可重复;这是内置数据的优势之一; 内置数据模式清晰,通常可以获得较好的结果;这是内置数据的优势之二; 别人用这个,我也用这个,这是一个偷懒的做法。 每个人常识不同。...我不太赞成教程里面用使用内置数据,原因是: 对不会读入数据的人不友好; 不利于探索这篇教程用于实际数据时可能会遇到的问题。示例数据无脑运行,自己的数据无显著差异。...如果要使用内置数据,也需要额外提供一些信息: 详细描述内置数据的格式和生物含义,及与真实数据的对应,可以参考画一个带统计检验的PCoA分析结果 提供真实数据的格式示例和读入真实数据的代码,弥补这个“鸿沟...这里涉及到另外一个经常会被问起的问题: 我这一步操作需要提供原始数据,还是标准化之后的数据? 绝大多数情况下,我们需要提供的都是标准化之后的在不同样品之间可比的数据。
我的代码日程 强烈推介IDEA2020.2破解激活,IntelliJ IDEA...打印100~200 之间的素数 2. 输出乘法口诀表 3....判断1000年---2000年之间的闰年 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 。。。
一份整洁的代码对于一个系统是多么重要。如果代码写的乱七八糟,最后的结果就是无法对这些代码进行有效的管控。很有可能会毁掉这个系统。 什么才是整洁的代码?...再来看下面代码: int a=l; if(O==D) a=O1; else l=o1; 上面这串代码整的傻傻分不清O和0,l和1。简直亮瞎我的眼。...我认为这样命名比较合适: listByEntity(),这样命名我很快就能知道:1.这个方法是返回list;2.这个方法是一个条件查询;3.入参是一个实体。 别害怕长名称。...不过我会配上一套单元测试,覆盖每行丑陋的代码。 然后我打磨这些代码,分解函数、修改名称、消除重复。我缩短和重新安置方法有时我还拆散类。同时保持测试通过。...最后,遵循本章列出的规则,我组装好这些函数我并不从一开始就按照规则写函数。我想没人做得到 ❞ 就像写作文一样,好的代码也不是一次性写出来的,需要反复琢磨。
背景 为了提高开发的软件产品安全性,大部分选择的方案防护方案是,通过用成熟的加固软件进行对自己研发的软件做防护,从而达到对软件搭建一个安全防护墙。...加固软件主要做的两件事,对软件中关键代码的保护以及提高对软件逆向反编译的门槛。 那么软件安全性防护墙的第一道门那就是反调试。反调试技术又细分为静态反调试和动态反调试。...NtQueryInformationProcess 检测 这个是微软未公开的函数,下面是这个函数的参数信息,可以利用这个函数的第三个参数值,也就是利用PROCESSINFOCLASS值,进行判断是否处于调试状态...CloseHandle 检测 利用异常捕获机制,给CloseHandle函数一个无效的句柄作为输入参数,在程序在没有被调试时,将会返回一个错误代码;而程序被调试器调试时,将会触发一个EXCEPTION_INVALID_HANDLE...父进程反调试检测 在window系统中explorer是程序管理器或者文件管理器,一般双击运行的进程,它的父进程就都是explorer程序,如果是被调试进程启动的话那么父进程是调速器进程。
配置项目创建目录 然后我参考了这篇教程使用 Http Servlet 创建 Web 应用 那先打开“build.gradle.kts”文件 ?...", kotlin_version)) compile("javax","javaee-api","8.0") } 再添加war插件,在apply代码块下修改,结果如下 apply {...依赖代码块中都修改如下 repositories { jcenter() mavenCentral() } 之后点击refresh gradle进行依赖的导入...依赖的导入 创建HomeController类 ?...编辑Tomcat 点击OK,然后运行你的Tomcat项目即可看到HelloWorld的页面
(value in obj) { keys.push(value) } // good let keys = Object.keys(obj) // ['a', 'b'] 巧用解构简化代码...let person = { name: 'LiMing', age: 18 } // bad function sayHi (obj) { console.log('大家好,我叫...' + person.name = ',我今年' + person.age + '了') } // good function sayHi (person) { console.log(`大家好...,我叫${person.name},我今年${person.age}了`) } // best function sayHi ({name, age}) { console.log(`大家好,...我叫${name},我今年${age}了`) } 19.函数使用箭头函数 let arr [18, 19, 20, 21, 22] // bad function findStudentByAge
相信当时好多小伙伴和我的心情是一样的——懵逼。但 PingCAP 这个公司却更加吸引我了。...我记得其中一个主题是由 PingCAP 另一位创始人兼 CEO 刘奇带来的《深度探索分布式系统测试》,奇叔的分享给我留下了深刻的印象。...我第一次知道测试还可以这样搞,各种故障注入手段层出不穷,目的就是为了去虐我们的系统。现在想想,当初奇叔分享的不正是混沌工程的思想,同样没有想到的是这个主题会成为我后面一段时间内持续耕耘的事情。...[up-8f2a240d4f21af8a6299c99b65adf233954.png] 正式开始实习后,我的第一个任务是对 TiDB 进行性能压测。...看到自己写的代码逐渐被优化掉,刚开始还真是有点不舍。 开源之路 经过三个多月的密集开发,期间将很多混沌测试成功迁移到 Chaos Mesh 后,我们决定在年底把这个工具开源出去。
背景 年底了,换了项目组,新的项目组使用react,从vue到react,我只花了一天的时间,看了官方简单的文章之后,就觉得这玩意很简单啊,比起vue的那么api来说,这根本没有学习成本好吧,十分迅速的就进入了...react的项目开发,并且洋洋得意,根据我多年的经验来看,这波肯定会得到领导的赏识 很快,我就做完了我的需求,把代码提交上去,组长可能确实比较闲,还review了我的代码,并且指出了一系列的问题,并告诉我说学习...react最难的部分,并不是知道怎么使用它,而是要知道怎么能够编写良好,干净的react代码 主要给我提了六点错误,我相信在座的各位,可能需要对号入座 在不需要使用state的时候使用state 涉及到项目中的代码逻辑...count的值是固定的,也就是我们常说的setState是异步的原因(当你更改状态的时候,它不会立刻更新,而是等到下一次render才会更新),并且react会将state进行批处理,但是如果是函数的形式...onChange={(e) => setName(e.target.value)} /> {userName} ); } 咋一看好像没什么问题
我是你们热爱的Java,2019年过去了,按照惯例,我要做一下年终总结,说说这一年来发生在我身上的大事。 首先我高兴地向大家宣布,我继续在语言排行榜霸占第一的位置 !...你说别的排行榜上Python是第一?抱歉,我只看Tiobe排行榜,别拿别的榜来烦我,我不看我不看。 第二件事,2019年我又发布了两个版本, JDK12 和 JDK 13。...第三件事, 美国高等法院终于同意在2020年审理Oracle和Google的世纪诉讼了,我的API应不应该收到保护?你是支持Google还是Oracle,还是支持我呢? ?...第五,Java EE正式宣告死亡,注意我说的是仅仅是名字,因为被Oracle抛弃以后,Java EE投入到Eclipse的怀抱,摇身一变,成为了Jakarta EE。 ?...我对这个掌管着Java特性开发的组织是又爱又恨,一方面,所有的Java特性必须通过JSR的方式提交到JCP,讨论,投票以后才能成为真正的规范。
大家好,我是 Rocky0429,一个在划水界鼎鼎有名的蒟蒻... 最近雨下的有点多,导致我划水量有点大,被水淹的有点不知所措,患上了传说中的拖延症性关节炎... ?...我这人没别的爱好,就是喜欢自虐... 为了改头换面重新做人,在某个夜深风高的夜晚,我扛着我的小锄头,挖出了我压箱底的宝贝,轻轻掸去了一层浮灰... ?...果然酒精才是第一生产力,古人诚不我欺... ? “如果你停止输入时间超过 5s,所有进度都会丢失”,看到这个简介,是不是有点懵,你以为是哄你玩儿的么?too young too naive! ?...同学,体会到什么是绝望了么... 建议女孩子,当男朋友惹你生气时,先让他在这上面写一篇万字检讨书,写不完不许睡觉的那种... ? 顺便来看看其他用过这个项目自虐的老哥们怎么说的吧... ?...至于其它的内容功能啥的,有兴趣的可以自己尝试一下,就比如那个 Hardcorn mode 模式是什么样儿的呢?为什么这么刚... 想知道么?诶,就不告诉你,自己试去... ?
这点我以前确实没想过 刚看到这个观点的时候,我是很不以为然的,谁让它标题不吸引人>>>《构建测试体系》 就这标题,谁不知道要测试啊。还好我没有“以貌取文”,我认真的看了下去。...为什么调试会花掉大把时间,因为工程大啊,你说它突然来个段错误,你知道是哪里段错误?段错误会死机,那不死机的呢?...每个类都配备测试代码,烦不烦啊你? 烦。但是项目run的时候爆了烦不烦?那会儿可就不是一个人烦了,那是一个团队一起烦。...就比方说上次我们服务器客户端对接测试一个项目,中间数据传输出问题了,好了,现在是谁的问题都不知道。。。 然后测试端也只能跟后边等着了。...行吧,我写,那怎么写啊? 怎么写那是个人自己的事情。但是,我想说的是,测试代码,最好写在功能类之前,这样可以预先界定功能类的具体功能,也可以把思路清晰一下。 至于测试代码要测试哪些东西?
GWAS数据里面收集这这些年来, 所有已经发表的GWAS研究的结果,最重要的结果,就是哪些位点与哪些性状是有联系的,而且联系的概率是多少。...不知道为什么,annovar下载的是UCSC的gwas总结信息,比snpEFF下载的NCBI要多很多。...0.58 2E-6 1.47 [NR] Affymetrix [700022] N 还好我英文不错,上面写的是这个突变有利于限制艾滋病的发展!某种意义上的超人!...排在第一的赫然是,思覺失調症(Schizophrenia),精神疾病的一種。其特徵為患者出現異常的社會行為!(我表示一脸懵逼!)...大部分是在plos ONE杂志上面发表的,那个神刊!!! ? 文:Jimmy 图文编辑:吃瓜群众
这符合我对于 Robot 的哲学理解,即执行任务是第一要务。 从人机交互的角度看Conversational Robot ?...例如不同识别到的文本和对应的可信度 例如用户说(注意是语音):“我要去上海” 结果可能是 [ { "sentence": "我要去上海", "score": 0.4...也有一些文献称之为Semantic Decoding,因为它的结果也被称为Semantic Frame, 也就是把用户输入的句子(utterance)转换为了一种Semantic Frame,即抽象出了用户所期望行为的语义...语音合成 TTS 这部分是指从文字到语音合成的部分,并不在我所定义的Conversational Robot的范畴内。...系统:我喜欢 * 啊,你喜欢吗? 系统:我喜欢 * 啊,你还喜欢什么别的吗? 用户:你吃过 * 吗? 系统:我是机器人,不吃 * 系统:* 好吃吗?你告诉我呗 用户:你觉得 * 怎么样?
iTesting,爱测试,爱分享 最近遇见一个好玩的bug, 现象是页面刷新白屏,RootCause是Header里放的cookie太多了, 大小超出了4kb的限制....能答出URL重写的已经不错了。对于高级的测试,再继续深入,session保存在服务器内存中,随着用户的增多,服务器撑不住了怎么办?假设我使用了集群服务怎么办?...能回答到这里的已经可以了。接着再顺便问一句,token里能不能保存敏感信息啊?为什么?(Base64是加密吗? ),什么是JWTtoken啊?...一个问题考察多个层面并且都有联系,平常没点积累是不行的,我的文章要常常看啊。...sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。
人在职场(江湖)混,除了一身能力之外,还需要考虑一些软技能加持的。上次分享敏捷领导力对个人的影响时,有人私聊了我一个问题,就是如何混职场?...本文就分享一下笔者在职场上对不同角色的应对原则,当然并不绝对,但大体上是这样的,仅供参考。 01 先说几个大的原则。...他的利益诉求是什么?你提的需求对他的影响会有哪些,如何减少对他的影响来解决你的问题。自己先想清楚了,再去提,不论是对话过程,还是结果,都会让你有意外收获。...人脉是什么:人脉是相互利益交换的过程,是相互帮忙的过程,而不是单方面的索取。如果不能相互对等交换利益或者资源,人脉就很难长期维持。认识不算人脉。 02 上级是资源,是资源,就要做好管理。...对齐上级目标:上级的目标就是你的OKR,这个是必须要对齐的。如果你忙了半天,做出的成绩不是上级的目标,那其实是没有意义的。
我从实习工作到今天,对前端从业四年半,也做过java研发,设计,产品的兼职。从事过中小公司的前端技术总监,希望本文给的一些建议能给你一些职业发展的启示。...行内的张鑫旭基于css2能研究十年,其中很多css的解决方案或者原理是很多人的知识漏洞。...打包,打包工具gulp,webpack,parcel也是很多人只知道皮毛就生成熟悉,这里我只说先看下自己除了简单的配置外,能针对webpack做出哪些优化配置,是否已经是最优的了,还是只是官网api复制粘贴下来打包好就算结束了...深入编程模式,框架原理,代码优化 后端方向,主要是以nodejs为核心的后端框架express,koa等。...职业发展 关注前端行业趋势 技术趋势,主流使用的框架,打包工具,优化方案,解耦方式等 公司用人趋势,岗位jd核心技术点的要求指数,要求深度,能解决什么问题。
这里我们换个思路,直接到ip地址不加端口号,然后开启apache服务,然后将下面的代码保存为index.php放在根目录下(/var/www/html/) 这样在DNS欺骗后会跳到指定ip,然后在通过php重定向到我们的payload。 还有一种方法是在下边启动浏览器自动攻击插件时,将端口号直接改成80端口。...DNS欺骗(忘了截图 图是后补的 所以参数有点不一样) ?...我们的DNS欺骗只对同一网关下的主机有效,但是我们共计用的URL只要能访问到我们的地址就可以。...下图可以看到有两台win10主机为arp+dns欺骗过来的,而安卓两台win7是我将这个URL发给了我的朋友,当然他也是在内网中的。
领取专属 10元无门槛券
手把手带您无忧上云