Robert Martin的这句话非常合适: “唯一能有效测量代码质量的方式是每分钟说多少个What-the-Fk ”** 让我深入解释一下: 做代码回顾的时候,我的脑海会涌现出三种不同的情绪: ·...“名称说明什么” Kendrick Lamar很好的解释道: ”如果我要讲一个真实的故事,我会从我的命名开始“ 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...每个阅读你代码的人都会因此而很感谢你。 牢记变量、函数或者类的名称应该要回答这三个大问题:存在的理由?做了什么?和如何使用?...主程思考函数就像在讲故事一样,而非如何去写代码。...再看看代码,如果他们看到乱七八糟的代码,没有清晰的开头和结束,那么毫无疑问会会玷污我们的荣誉。 如果你觉得让代码工作是专业开发者的头等事情,那你离真相将更远。
Robert Martin的这句话非常合适: 唯一能有效测量代码质量的方式是每分钟说多少个What-the-Fk 让我深入解释一下: 做代码回顾的时候,我的脑海会涌现出三种不同的情绪: What-the-Fk...名称说明什么 Kendrick Lamar很好的解释道: 如果我要讲一个真实的故事,我会从我的命名开始 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...每个阅读你代码的人都会因此而很感谢你。 牢记变量、函数或者类的名称应该要回答这三个大问题:存在的理由?做了什么?和如何使用?...主程思考函数就像在讲故事一样,而非如何去写代码。...最后 正如Harold Abelson总结道: 程序员必须为了让人能阅读代码而书写代码,而机器执行只是顺便的。
另一方面,我希望我的代码能够在第一次就尽可能完美,不是我喜欢浪费时间,而是因为足够节约,我知道这将在之后给我省下更多时间。 如何完成“简洁代码”设计 那么,该怎样创造“简洁代码”呢?...我尽我最大的努力按我直觉的时间完成那个项目,但经常发生的是,客户改变需求,或者可能我最初的设计不可行,所以我需要那额外的五天。...系统设计 好了,所以现在我们有了我们的远景、共同语言和时间表,我们可以开始计划我们的代码了。我做这事的方法是在白板上画方框,表示我们的系统,以及我们系统的不同组件如何在一起工作。...等级扁平的公司更容易促成这种讨论。总是要尽早让客户参与讨论。有时,意见不同的原因可能是客户不晓得他们的选择会导致性能不佳、维护困难或成本高昂。所以,问他们:“我们现在真的需要这个功能吗?...开发人员之间的任何误解都会导致错误。可以肯定的是,此类错误不会引起你的代码无法工作,但是当另一个开发人员试图以你计划以外的方式使用你的方法时,会导致进一步的错误。 我通常拿写代码和写书进行比较。
阅读字数:2804 | 8分钟阅读 Robert Martin的这句话非常合适: “唯一能有效测量代码质量的方式是每分钟说多少个What-the-Fk ”** 让我深入解释一下: 做代码回顾的时候,我的脑海会涌现出三种不同的情绪...“名称说明什么” Kendrick Lamar很好的解释道: “如果我要讲一个真实的故事,我会从我的命名开始” 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...每个阅读你代码的人都会因此而很感谢你。 牢记变量、函数或者类的名称应该要回答这三个大问题:存在的理由?做了什么?和如何使用?...主程思考函数就像在讲故事一样,而非如何去写代码。...再看看代码,如果他们看到乱七八糟的代码,没有清晰的开头和结束,那么毫无疑问会会玷污我们的荣誉。 如果你觉得让代码工作是专业开发者的头等事情,那你离真相将更远。
[1490166684563_8339_1490166684846.png] 我擦,流量几乎掉底了,从一天前开始的,至今仍未恢复,这个服务是挂掉了吗?...这其实是近几个月在微信上异常活跃的CCSER儿童失踪预警平台的后台服务器的流量监控图 [1490166957611_8786_1490166958033.png] CCSER的发起人张永将,和我们一样有一个做中国的互联网安珀警戒...这其实是很常见的一类问题:用户需要的是一个墙上的洞,而他以为自己需要的是一把冲击钻。在这个案例中,CCSER需要的是更多的分发数据的能力,而他以为自己需要的是更多的分发数据的服务器。...] 随后短时间内该片地区的大量的用户会点击这个消息,给服务器带来很大的流量冲击。...还好在云时代,我们不需要去买自己的“冲击钻”,分发能力早就通过COS、优图、CDN这样的产品向公众提供服务了,所以问题变的很简单了:如何启用CDN来提供透明的动静态数据的加速服务。
/* 2008 4 25 更新 */ 我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。 第三部分:返回结构 数组,这个是专门针对网页来设计的。...如果传入数字的话,则直接使用数字作为记录数。 /// 标题的字符数,一个汉字按照两个字符计算。...如果传入数字的话,则直接使用数字作为记录数。 /// 标题的字符数,一个汉字按照两个字符计算。...如果传入数字的话,则直接使用数字作为记录数。 /// 标题的字符数,一个汉字按照两个字符计算。...如果传入数字的话,则直接使用数字作为记录数。 /// 标题的字符数,一个汉字按照两个字符计算。
上篇文章介绍了我博客的一个架构,这里具体说下我是如何快速的通过git和fabric来持续部署我的博客的。...先来说一个场景,我前几天上线了一个 OSQA _ 系统,为了方便以后来的网友在博客留言里提问时看到我有这样的一个系统,所以我决定在留言框上方加一句话,也就是现在在留言上方看到的那个文案...简单的背后一定是有复杂的支撑,不过我这小小的博客不用很复杂。下面开始阐述下背后的原理 搭建git服务器 不要被题目吓到,只是一个简单的git仓库,基于本地协议(文件系统)。...到此你的git服务器就搭建好了,你本地可以直接push代码到服务器上。 用fabric快速部署 所谓部署,其实就是把你最新的代码放到运行的环境中去,然后重启服务。...上篇文章有提到,我用supervisor来管理我的Django进程,所以我需要做的就是在部署代码的地方pull一下最新的代码然后重启supervisor,不需要考虑virtuanlenv的事情。
它会使你的代码更加冗长。明智的做法是仅用此替换简单的表达式以提高可读性并减少代码行数。 2、从数组中删除重复项 在 JavaScript 中,Set 是一个集合,它允许你仅存储唯一值。...让我解释一下它是如何工作的: 1)、new Set(numbers)从数字列表中创建一个集合。创建集合会自动删除所有重复值。 2)、展开运算符...将任何可迭代对象转换为数组。...,如果没有定义左侧返回右侧。..."Nothing found") 4、防止崩溃的可选链 如果访问未定义的属性,则会产生错误。这就是可选链的用武之地。 在未定义属性时使用可选链运算符,undefined将返回而不是错误。...这可以防止你的代码崩溃。
然而,何为数字化,如何落地数字化创新,以及怎样才能有效地进行数字化创新管理?问题种种,却没有一个明确的答案,当然也不可能会有一个标准的答案囊括所有。...图3:数字化时代的创新管理框架 What - 寻找创新的土壤:如何有效的实施创新管理?...《以愿景与目标驱动,让创新无处不在》正是以一种全新的方式诠释了如何以“接球”方式让愿景落地,并通过「精益价值树」这样一种遵循了「使命原则」的工具,来帮组企业的领导者与团队不断的层层传递愿景、目标,并尽快通过...图6:超越预算,让钱敏捷起来 What - 钱花在刀刃上:如何决策投资组合与优先级? 新的机会是不断浮现出来的,任何解决方案都有失败的可能。过度的投资本身就是创新的敌人。...为了让你更好的学习并理解它的精髓,我们将在4月底发布《规模化创新管理》专刊。
直接上代码: @Test public void testUnicode() { String a = "Hello"; // \u000d a="world"; System.out.println...是的,没看错,那二行看似“注释掉的代码”,被执行了!...原因:java编译器会处理unicode字符,\u000d以及\u000a 正好对应“\r”回车、“\n”换行,经过编译器处理后,等效于下面的代码: @Test public void testUnicode
事情是这样的,那天,我在知乎上看到一个提问: 我本来还以为又到了各路大佬们展示“黑科技”代码的时候了,开始认真的从我的大脑中检索起来。...天才般的宏定义 看到第一个我就没忍住,真是天才一般的宏定义: 说实话,新手学习的时候还真容易被这些困扰,明明我照着书本一个一个敲下来的代码,咋就跑不起来呢?...大家觉得如何破解这个? 抄作业 学C++那会儿,上机练习的时候,旁边的同学抄了下我的代码,然后为了避免雷同,稍微改了改,却死活编译不通过,让我帮他看看。 会C++同学,帮忙看看问题出在哪儿。...密码校验 接下来看看这段代码,如何校验用户输入的密码正不正确: 逆向分析的同学要是遇到这个程序,估计反编译的时候可能会怀疑人生···不知道是IDA错了,还是自己看眼花了。...>清空缓存 你见过哪些让你虎躯一震的代码,评论区说说看呢?
有用户需要获取EasyNVR平台录像视频指定时间段的录像文件,但是目前平台生成的切片默认是3s一个ts文件,目前第一个ts文件和最后一个ts文件不是完整的ts文件,会导致用户调用录像的时候会出现多1s或者少...1s的录像文件。...1)首先,需要先调整EasyNVR的ts切片生成的时长(默认为3s,我们可更改为1s): 2)更改完成后,在设备端(摄像机/录像机)更改推送的I帧间隔时间为1s: 3)在保存完摄像机的参数后,因为上述步骤修改了...EasyNVR的配置文件参数,所以需要重启EasyNVR服务让参数生效,然后查看下效果: 在m3u8文件中查看到,已经是1s一个ts文件,所以在后续调用之后就会得到一个准确的录像文件。...EasyNVR目前在线下场景中也有较为广泛的应用,如智慧工厂、智慧园区、智慧码头、智慧港口、智慧农场等等。感兴趣的用户可以前往演示平台进行体验或部署测试。
原文:http://www.fly63.com/article/detial/851 前两天在网上看到了一道很有趣的题目,题目大意为:js[1] 环境下,如何让 a == 1 && a == 2 &&...这道题目乍看之下似乎不太可能,因为在正常情况下,一个变量的值如果没有手动修改,在一个表达式中是不会变化的。当时我也冥思苦想很久,甚至一度怀疑这道题目的答案就是 不能。...让这个表达式成为 true 的关键就在于这里的宽松相等,js[3] 在处理宽松相等时会对一些变量进行隐式转换。在这种隐式转换的作用下,真的可以让一个变量在一个表达式中变成不同的值。.../images/truth-table.png 在上面的表格中,ToNumber(A) 尝试在比较前将参数 A 转换为数字,这与 +A(单目运算符+)的效果相同。...所以上面的答案就是新建了一个对象 a ,并有 toString 方法,当 JS 引擎每次读取 a 的值的时候,发现需要进行宽松判断一个对象和一个数字之间的结果,对于对象就会执行这里的 toString
我们经常听说,如何让自己代码更加清晰易懂,如何写出干净漂亮的代码。 合格的变量命名规范,简明的注释,整齐的缩进等等一堆描述,但是这种东西看起来实在是尴尬,枯燥不容易接受。...那么换个角度,如何让别人看不懂你的代码,如何让你的代码只有你能维护,可能更容易理解吧~ 命名 获取用户上次登陆使用的设备,这个简单的名字 getUserLastTimeLoginDeviceUsed,...注释 注释里可能需要一点社会工程学知识 有如下选择,别人看不懂代码的可能性依次增加 1、不加注释 2、加上注释,注释内容放一串所需解释代码的伪代码,再或者写一篇800字儿散文 3、写注释的时候记住...2、尽可能返回一个毫无描述的数组 3、删除代码中所有的断言,让debug过程尽可能指数形式的延长。...实践出真知,懂没懂的先用上再说,慢慢的代码就开始变的丰富起来啦~ 遗留的无用代码 遗留代码可是前辈们的沉淀,一旦发现,即使无用,马上自己想一个用处给它注释上。
,如果我不去查一个那个函数的变量说明就不能够很快地意会到这些常量分别有什么用。...使用ES6简化代码 ES6已经发展很多年了,兼容性也已经很好了。恰当地使用,可以让代码更加地简洁优雅。...以上列了我自己在实际写代码过程中遇到的一些问题和一些个人认为比较重要的方面,其它的还有变量命名、缩进、注释等,这里就不提及了。...写代码的风格也体现了编程的素养,有些人的代码看起来非常地干净利落,而有些人的代码看起来让人比较痛苦。这种编程素质的提升需要有意识地去做一些改进,有些人虽然代码写得很烂,但是他自己并不觉得有什么问题。...这就需要多去学下别人的代码,甚至学一下其它语言的书写,两者一比较就能发现差异,或者看下这方面的书,像什么代码大全之类的。
可能很多同学还不知道怎么用 VSCode 调试网页,这篇文章我就来介绍下。...我们分别看下 React 和 Vue 的: 用 VSCode 调试 React 代码 我用 create-react-app 创建了一个 demo 项目,有这样一个组件: 跑起来开发服务器: 浏览器显示的界面是这样的...: 如何用 VSCode 调试它呢?...总结 作为前端工程师,调试 Vue、React 代码是每天都要做的事情,不同的调试方式体验和效率都是不一样的。所以我想把我常用的 VSCode 调试网页的方式介绍给大家。...用 VSCode 来调试 React/Vue 代码,不管是调试业务代码,还是想看会源码都是很方便的。大家不妨试一下,会让调试这件事情变得很愉悦的。
题意 给定一个只包含0和1的数字矩阵,要求在这个矩阵当中找到一个由1组成的最大面积的矩形,返回这个面积。...计算机程序不像人眼,可以直接获取到图形相关的信息,计算机不行,只能获得单个位置的信息。所以我们让程序直接判断矩形是不现实的,但我们可以通过特征点来锁定矩形,这个也是业内常用的套路。...在这题当中我们可以对01的数字矩阵也做这么一个类似的变形,将从底部开始连续延伸的1的数量看成是竖直摆放的矩形的高度,这样我们这题就可以使用上一题的思路进行求解了。...但是这样找到的面积最大值是4,并不是答案的6,原因是因为我们寻找的底层不对,并不一定以最后一行作为底面得到的面积最大。...所以我们需要遍历作为底层的行,然后用这种方法寻找最大面积,全局当中找到的最大面积就是答案。
这家数字银行拥有 4810 万用户——这一数字超过了美国银行的用户总数,直到 2022 年初美国银行价值超过了 3.1 万亿美元。这使得 Nubank 成为世界上用户数量最大的新银行之一。...但这并不是这家总部位于巴西的数字银行所追求的全部。据路透社报道,它也是拉丁美洲市值最大的新银行,于 2021 年 12 月在纽约证券交易所上市。...回到南美后,他在巴西发现了银行的寡头垄断——五家大银行控制了五分之四的市场。这种情况导致许多普通消费者和大量没有银行账户的人的费用非常高。...他的使命变成了通过创建一个几乎没有费用和易于访问的银行功能的数字银行来帮助缓解这种差异。为此,Vélez 从巴西最大的银行 Itaú Unibanco 挖来了 Cristina Junqueira。...然而,Nubank 的创始人对其未来仍有计划,其中一个可能会让一些人感到惊讶。 这家数字银行正在考虑开设实体零售店。
最近我给大家准备了一个关注领红包福利,欢迎大家加入我的技术交流群,一起抱团学习。一人走得更快,但是一群人才能走得更远。 2、为什么Redis单线程模型效率也能那么高?...4、Redis的数据结构是如何组织的? 为了实现从键到值的快速访问,Redis 使用了一个全局哈希表来保存所有键值对。 哈希表的最大好处很明显,可以用 O(1) 的时间复杂度来快速查找到键值对。...Redis客户端执行一条命令需要4个步骤: 发送命令 命令排队 命令执行 返回结果。...这样的话,就避免了一次性、集中式地完成rehash动作导致的长时间阻塞,影响用户体验。而在此期间,客户端访问数据时,会同时在两个hash表中查找数据,不会存在因迁移而导致数据不一致问题。...BigKey是指在Redis中,某个key对应的value所占用的内存空间非常大。 如果value是字符串类型,最大可以达到512MB的存储空间。
领取专属 10元无门槛券
手把手带您无忧上云