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

什么叫代码的可读性?为什么说Kotlin的可读性比Java好?

其实,如果一段代码需要你多读个两三遍才能很好的理解,这本身不就说明,这段代码的可读性不高?...另外,这篇文章还暗含了这样一个观点,那就是,代码的可读性,仅仅是指,看到一段代码,能不能理解这段代码的含义。这是一个很多人都会错误的观点。 但是,在真正工作中,代码的可读性,恐怕不至这一个方面。...要理解这段代码并不难(其实后面你会看到,要确保正确理解这么代码也没那么简单),但是速度并不快,你必须从头到尾看完这8行代码,就算你说最后两行可以一扫而过,那也必须看完前面6行,你才能知道“哦,原来这段代码做的事情是...确保正确理解一段代码的难易程序 这是很多人会忽略的事情。能否理解一段代码,跟确保正确的理解这段代码,其实中间还是有一些差别的。很多代码看起来很简单,但是要确保自己正确的理解,其实还是非常费劲的。...在Google声明Kotlin成为安卓开发的官方支持语言那一天,建了一个微信群。目前偶尔还是有人在群里面问,Kotlin值得学习?有风险?看到现在还在问这样的问题,是觉得有点遗憾的。

1.1K70

为什么说Kotlin的可读性比Java好?

其实,如果一段代码需要你多读个两三遍才能很好的理解,这本身不就说明,这段代码的可读性不高?...另外,这篇文章还暗含了这样一个观点,那就是,代码的可读性,仅仅是指,看到一段代码,能不能理解这段代码的含义。这是一个很多人都会错误的观点。 但是,在真正工作中,代码的可读性,恐怕不至这一个方面。...下面,依次解释一下这三点,以及为什么说,Kotlin 的可读性会对 Java 高。 1....要理解这段代码并不难(其实后面你会看到,要确保正确理解这么代码也没那么简单),但是速度并不快,你必须从头到尾看完这 8 行代码,就算你说最后两行可以一扫而过,那也必须看完前面 6 行,你才能知道“哦,原来这段代码做的事情是...在 Google 声明 Kotlin 成为安卓开发的官方支持语言那一天,建了一个微信群。目前偶尔还是有人在群里面问,Kotlin 值得学习?有风险?看到现在还在问这样的问题,是觉得有点遗憾的。

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

提问也是一门学问

混迹于各大技术群,下面的这些场景,你肯定经常遇到。 小明:哪位大哥帮忙看下这个问题?为什么数据还是不能插入? 小明:[一张图] 小白:有大佬在么?关于xx有人会么?...小明:[一张图] 或者 [一小段代码] 小明:这个为啥报错啊? …… 面对这些提问,热心回答者最初更多的是各种猜测:“你说的xx是这个xx意思?”、“能不能说下你是如何使用的?”...这段代码运行不了,谁能帮我看看啊! 明智的提问: 各位,下面这段代码是这样写的,理论上运行的结果应该是xx,可是现在却运行不了。...通过Debug调试也没有发现啥异常,有人帮我看看或者给个思路么? 2.2 清楚表达你的问题 清楚、良好地表达你的问题非常重要。花点额外的精力斟酌一下提问字句,确保别人能够看得懂。...2.4 关于代码的提问 别要求他人直接帮你写代码。 张贴几百行的代码,然后说一声“它不能运行”,这只能让人反感,没人愿意理会你。

58920

用ChatGPT不光能提高开发和学习效率,还能帮你应付老婆?

所有这些AIGC工具都是基于ChatGPT这样的大模型实现的,至于什么是大模型,这是一个业务研发整天写代码的人能说的清楚的?...让ChatGPT给你解释代码 很多人用ChatGPT是描述个功能,让它给你输出实现功能的代码使用ChatGPT一般是给它对代码让它帮我先解释一遍。...所以我就把别人提供的签名示例代码给了GPT,让它帮我解释一下 GPT也准确解释出来了这段代码生成签名的规则 紧接着就让它把这个签名规则用Java代码再实现一遍 在本地跑了两个语言的代码发现同样参数生成的签名完全一致...也是看别人项目的代码,然后哪里不动了让GPT给我解释一下,其实使用方法跟上一条没啥区别 你看GPT还是挺礼貌的,没给人家代码,人家还跟我道歉,要是这么问某个同桌,不得上来先喷一顿.........不过Hive,Doris这不是数仓和BI他们用的东西一个CRUD Boy 肯定是不懂的,但又不能不回答,就把这个问题提给了GPT。

18120

开学第一课:拜托,一定不要这样问Python问题

2.文本词频统计有几种代码写法? ? 3. ? 4.为啥的Socket程序客户端连接不上服务端呢? 5.请问你会用Python做网站?/请问群里有懂Python做网站的? 6. ?...7.代码可以运行,但是结果不对,如下,该怎么办? ? 8. ? 9. ? 10.群里有人吗,谁能告诉这个怎么办? ?...(发一段代码截图,且需要放大很多倍才能勉强看清)大家帮忙看看这段代码哪里有问题啊? 18. ? 19.有个特别特别简单的问题,但在网上就是查不到解决办法,你告诉该怎么办?...23.自己的老师说的程序中至少有3处错误,又不告诉哪里有错误,找不出来,你帮我找出来改一下? 24.老师,如果要在窗口上显示图片,应该怎么做?需要注意什么?...举手之劳很少有人会拒绝,但是如果需要花费大量时间来猜你到底问的是什么,需要为了解决这个问题专门搭建环境安装扩展库,需要照着你的代码截图自己敲一遍,需要花大量时间来设计测试数据并且根据你提供的几行代码片段甚至压缩到不能再少的几行出错提示来推测代码是什么样子以及为什么出错和怎么修改

54610

被玩坏的chatGPT之初体验三:VS Code上的chatGPT插件

关于代码的部分都是我们只需要通过鼠标划选对应的代码,然后选择对应的功能即可:图片图片这两个早期插件,需要自己提供session-token, 也就是说如果你自己没有Open AI的帐号不能够使用chatGPT...图片国内插件在基本功能上和国外插件大同小异:用法可以打开命令面板(ctrl+shift+p 或者 command+shift+p),输入 "ChatGPT" 来查看插件目前支持的命令ChatGPT:能解释一下这部分代码的含义...:选中一块代码 或者 将整个文件作为输入,然后向 ChatGPT 询问这段代码的含义。ChatGPT:可以重构这部分代码,然后说一下与重构前的区别?...:选中一块代码 或者 将整个文件作为输入,然后让 ChatGPT 找出这段代码的问题。ChatGPT:请输入问题:直接向 ChatGPT 提问ChatGPT:然后呢?...但最遗憾的是,他们都没有办法做到交互模式,在自由询问时,无法上下文衔接:图片比如,提了个问题:帮我写一个ansible的程序,可以远程执行脚本,给出的程序中有all,想知道这个all是设么意思。

19.9K121

依赖注入不是Java的专利,Golang也有

为了说明依赖注入有多好用,先用Java代码解释一下。 先来看一下没有依赖注入的Java世界是怎样的 Golang的很多用户都不是来自Java,依赖注入他们可能听过,可是从来没有玩过。...为了说明依赖注入有多好用,先用Java代码解释一下。 先来看一下没有依赖注入的Java世界是怎样的 在main方法里面,我们new出来很多对象,然后用他们构造了一颗依赖树。...好处不用多说,一目了然,就是帮我们节省代码,省去了很多系统初始化时构建一系列对象的细节。...然后我们把这段代码改造成facebookgo依赖注入版本的 这个跟Java版本也很类似,只是Module的定义直接放在了main方法里,也就是上面代码中的Provide方法调用,@Singleton不需要了...不过没关系,相比而言这些缺失的功能不是必须的,帮我们省掉很多代码它已经做得很好了,这就足够了。

74910

IT大咖撩段子

相信大家也会遇到,希望引起您的共鸣。 朋友用office时候,排版排不来就"XX ,你有时间?...记得你是学计算机的吧,能不能帮我把这个word 排版改一下" 然后就成了自己慢慢百度学习office ,有人问office 就说你把文件发过来,给你改好后给你。 有人安装应用,配不好环境时候。"...XX ,你是学计算机的吧,这个应用怎么安装后不能用啊"。然后,还是默默百度教程,整理后发过去,或者直接teamview 。 有人电脑坏了,就"XX ,你是学计算机的?...电脑这是怎么回事啊,你帮我看看"。然后又恶补了修理知识。或许这也是为自己MacBook 被拆的一个个零件埋下伏笔吧。...当然这些很常见,还有一些回家后,有人喊着修电视,修手机,理由都是因为学计算机的。嗯,快可以开个修理店了。 可是,不是学软件的不应该敲代码是要面对一系列英阿中文啊! 唉,403教做人。

92660

JavaScript 工厂函数 vs 构造函数

由于 Javascript 本身不是严格的面向对象的语言(不包含类),实际上来说,Javascript 并没有严格的“工厂函数”,但是在 Javascript中,我们利用函数模拟类。...属性值是一个普通的对象 所有的函数,都有一个prototype属性,属性值也是一个普通的对象 所有的引用类型(数组、对象、函数),__proto__属性值指向它的构造函数的prototype属性值 通过代码解释一下...,表示在 new 关键字,JS 背后帮我们做的事情。...如果你不能正确理解它,那么在运行 JavaScript 应用程序时会产生令人讨厌的后果。 在像 Java这 样的语言中,严格限制了如何使用 new 关键字。...但是在 javascript 中,并不是那么严格,如果你不能正确理解它们可能会导致很多问题。

1K20

函数式编程,真香

函数式编程有用? 什么是函数式编程? 函数式编程的优点。 面向对象编程(OOP)通过封装变化使得代码更易理解。 函数式编程(FP)通过最小化变化使得代码更易理解。...面向对象设计帮我们在一定程度上解决这个问题,但是还不够。...可测性--给这些函数添加单元测试是否让纠结? 易推理性--写的代码是否非结构化严重并难以推理?...这么跟你说,一旦你学会了函数式编程,这些问题迎刃而解,本来函数式编程就是这个思想,一旦你掌握了函数式,然后你再学习响应式编程那就比较容易懂了,这是亲身体会的。...const printMessage = compose(addToDom('msg', h1, echo)) printMessage('Hello World') 解释一下这段代码,其中的 h1

78620

真正的杀死C++的不是 Rust

还是老老实实完成任务,改 bug 吧。不能的工作效率很高,只能说很勉强,不至于被解雇。但后来的老板问我:“你想把部分汇编代码改成 GLSG ?”...你没有发现陷阱?在没有上下文的情况下,这些问题都没有确定的答案。...可能还会有人说:“Python不是一种编译语言”,这个说法也不严谨。Python 编译器有很多,其中一个最被看好的编译器也算是Python脚本。解释一下。...在一切正常运行后,Bremen 的一名兼职学生打电话给我问道:“听说你很擅长使用多种技术,帮我在 GPU 上运行一个算法?”“当然可以!”...WebAssembly代码根本不依赖于硬件架构。它提供的机器是抽象的、虚拟的、通用的,随你怎么称呼它。如果你阅读这段文字,说明你的物理机器上已经有一个运行WebAssembly的硬件架构了。

9710

代码洁癖系列(二):命名的艺术

或者说看完有人明白这段代码要做什么先来说一下的问题: getThem是get什么?...list里存的是什么 keys指的是什么,为什么遍历它 常量”1“的意义是什么 这几个问题可能只有写这段代码的人才能解释(没错,就是写的)。...所以我来给大家解释一下,不过不想一一回答上面的问题,代码重写一遍,看看还会不会有这样的问题。...当然更好的方法是定义一个名为Address的类,把这些变量放到类中,事实上我们也都是这样做的。 当然,有时候也不能添加一些无意义的语境。...结语 命名并不能算是什么技术,而是一种写代码的习惯,但这种习惯有可能会决定你作为一名程序员给人的第一印象。所以,养成一个好的命名习惯,也是对自己形象的维护。

44220

从源码角度剖析Android系统EGL及GL线程

这段代码的作用是初始化屏幕。 (3)选择config ?...这段代码的作用是选择EGL配置, 即可以自己先设定好一个你希望的EGL配置,比如说RGB三种颜色各占几位,你可以随便配,而EGL可能不能满足你所有的要求,于是它会返回一些与你的要求最接近的配置供你选择。...这段代码的作用就是用从上一步EGL返回的配置列表中选择一种配置,用来创建EGL Context。 (5)获取Surface ?...这段代码的作用是将渲染环境设置到当前线程,相当于让当前线程拥有了Open GL的绘图能力,为什么做了这步操作,线程就拥有了Open GL的绘图能力?后面会讲解。 接下来就是绘图逻辑了: ?...有人想问了,我们平时用GLSurfaceView时,当GLSurfaceView销毁时,我们如果没有delete掉分配的texture,这些texture也会没自己释放,这是怎么回事?

6.7K122

突破:社区AI助手上线,自此无惧伸手党!

帮我这段Python翻译成Go语言”,“想知道怎么导出docker镜像,压缩导出”,“帮我分析下这些日志的耗时”,“MP4格式封装opus”,“这个WebRTC的错误是怎么回事”,“Nginx...不用多举例子,想大家已经非常熟悉了,并非不能去搜索关键字,而是这些问题为何要去搜索呢?搜索后还要打开多个页面看哪个是有效答案。AI直接给出正确答案,更高效!...这完全有可能,只要它认真看我们社区的这些文档,这些文档我们都在持续更新,那么它完全可以获得比我更多的知识,给出更加完备的答案。...文档和代码一样重要,先有文档,然后是活的不断更新的文档,最后是面向AI的文档。 公司的售后工程师要大量失业了,应该不是全部失业,几个资深的售后+AI,可以顶一个很多人的售后团队。...开源社区有人反过来促进AI文档的发展,推荐大家都用用glimelab.ai,希望它不要倒闭了,不然我们又要对接其他的系统。

21921

【算法技巧】位运算装逼指南

} 有人可能会说,我们写成 n % 2 的形式,编译器也会自动帮我们优化成位运算啊,这个确实,有些编译器确实会自动帮我们优化。但是,我们自己能够采用位运算的形式写出来,当然更好了。...这样写有问题?...这里解释一下,异或运算支持运算的交换律和结合律哦。 以后你要是别人看不懂你的代码,逼格装高点,就可以在代码里面采用这样的公式来交换两个变量的值了,被打了不要找我。...下面这段代码就可以把最左边 1 中后面的 0 全部转化为 1, n |= n >> 1; n |= n >> 2; n |= n >> 4; 就是通过把 n 右移并且做或运算即可得到。...不过呢,给出的这些例子中,并不是让你们学会了这些题就 Ok,而且让你们有一个意识:很多时候,位运算是个不错的选择,至少时间效率会快很多,而且高逼格,装逼必备。

61350

【算法技巧】位运算指南

} 有人可能会说,我们写成 n % 2 的形式,编译器也会自动帮我们优化成位运算啊,这个确实,有些编译器确实会自动帮我们优化。但是,我们自己能够采用位运算的形式写出来,当然更好了。...这样写有问题?...这里解释一下,异或运算支持运算的交换律和结合律哦。 以后你要是别人看不懂你的代码,逼格装高点,就可以在代码里面采用这样的公式来交换两个变量的值了,被打了不要找我。...下面这段代码就可以把最左边 1 中后面的 0 全部转化为 1, n |= n >> 1; n |= n >> 2; n |= n >> 4; 就是通过把 n 右移并且做或运算即可得到。...不过呢,给出的这些例子中,并不是让你们学会了这些题就 Ok,而且让你们有一个意识:很多时候,位运算是个不错的选择,至少时间效率会快很多,而且高逼格,装逼必备。

56120

谈谈Java的垃圾回收机制

写在前面 今天谈谈Java的一大神器-回收机制(Carbage Collection)简称GC,面试的时候基本上面试官都好像很喜欢问这个问题,是不明白有什么好问的,我们简单的说说。...,程序发现你声明的好几个变量压根从来就没用过,这个时候这些没有被使用过的变量就叫做垃圾。...Java会自动的不定期的处理这些没用的对象代码。那么有人说了,那我知道这些代码没用,不能让Java过来帮我处理一下呢?...答案是不可以,你最多可以提醒他说:“哎,JDK,帮我处理一下这段没用的代码”,但是他是不是回应你就不一定了。 怎么提醒呢? 我们可以通过 System.gc() 提醒他处理一下。...有人说,没有回收机制不是一样没事的

28140

人人都能免费用的 AI 工具,开发效率翻倍!

不得不感叹,AI 的发展真的是太快了,很多同学可能对 AI 的印象还局限于智能问答,但其实现在 AI 已经自己干活了。 虽然 AI 现在还不能完全取代一个职业,但确实改变了很多职业的工作方式。...开发用它生成代码,设计用它生成图像,运营用它优化文案,销售用它智能回复。不仅全都要,还会用 AI 来创造艺术。 虽然 AI 已经这么强大了,但是有多少同学真正利用好它呢?...当然,你也可以选中代码片段,然后输入指令: 这样做,AI 给出的解释可能会更详细一些: 强烈建议大家用这个指令解释一下同事写的代码,如果发现 AI 都不能理解,那么你的同事之后可能会更注重代码质量。...而且咱们还可以利用 AI 来优化代码,比如选中这段代码,让 AI 帮我提升代码的健壮性: 看看 AI 给出的回复,补充了很多的校验,也帮我们学到一些好的编程习惯: 此外,AI 可以帮我们解决程序员的...你也可以只选中部分代码,然后输入 /comment 指令,让 AI 给这段代码添加注释,非常灵活。

34410
领券