Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何让别人看不懂你的代码

如何让别人看不懂你的代码

作者头像
邹志全
发布于 2019-07-31 03:24:48
发布于 2019-07-31 03:24:48
2K00
代码可运行
举报
文章被收录于专栏:EffectiveCodingEffectiveCoding
运行总次数:0
代码可运行

先道歉,最近忙着发paper(也可能是季后赛的事儿),又一不小心拖更一个月,实在抱歉。 良好的代码风格,是一个合格程序员最起码的素质。 我们经常听说,如何让自己代码更加清晰易懂,如何写出干净漂亮的代码。 合格的变量命名规范,简明的注释,整齐的缩进等等一堆描述,但是这种东西看起来实在是尴尬,枯燥不容易接受。那么换个角度,如何让别人看不懂你的代码,如何让你的代码只有你能维护,可能更容易理解吧~

命名

获取用户上次登陆使用的设备,这个简单的名字 getUserLastTimeLoginDeviceUsed,先试试看打一句英文,这个不是最好的方式,把时态去掉效果更佳,再试着加点别的词儿 能看懂? 试试中英混合,getUserShangCiLoginSheBei,有没有感觉开始吃力了,别急,这样有点耐心还是能看出来的。 可以从英文下手,变点花样,单词首字母大写,然后随机选择某单词选取随意一个音节大写,然后再随机选择一个单词首字母不大写。 getUserTimeLoginDeViceused,到这一步,应该不太容易看懂啦 英文能做到的,中文也行吧,要不不用普通话,试试看方言? getUserShangCiLoginseBei,别人看代码的时候应该也开始看不懂啦 别人嫌名字太长的缘故,非让改。 改就改 getULTLDU,来吧哥们儿,这个够短吧~ 还是长? getA、getU、getD、b 这些呢,成了不~ 驼峰式不让用?用下划线? 试试看’’,’’这两个来区分变量~ 嫌没有自己的代码风格 可以试试看,在所有的变量前面统一加上niCaiA 另外,全局变量和局部变量,有机会重名的绝对要重名。一撸袖子就是干,尽量别使用局部变量,如果是个Java程序员,可以试试看用静态替换下,Cpp程序员可以狠狠心,创造2w个全局变量,如果起名24个字母不够用,试试英文词典,别管词义,能用就行。

注释

注释里可能需要一点社会工程学知识 有如下选择,别人看不懂代码的可能性依次增加 1、不加注释 2、加上注释,注释内容放一串所需解释代码的伪代码,再或者写一篇800字儿散文 3、写注释的时候记住,只描述操作细节,绝对不能描述功能 4、悄悄将两个注释换换位置~ 5、更新代码的时候,一定要记住别更新注释 6、写注释的时候,悄悄的撒个谎~ 再或者可以这么玩

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(int i=0;i<a.size(),i++){/*
     If(temp!=0){               *有本事
          a.add(tempA);      * 猜啊
     }else{                         * 敢不敢别高亮显示
          a.add(tempA+1);  *
     }                                 */
     tempA++;
}

函数

大约遵循以下几项原则 1、要不写一个一行代码的函数,要不就把它写到500行以上。 2、尽可能返回一个毫无描述的数组 3、删除代码中所有的断言,让debug过程尽可能指数形式的延长。 4、如果语言支持,尽情的使用’/’吧,把所有的变量全部错开行 5、支持某个功能,又默默支持若干诸如修改删除链表元素功能还未标注的函数什么的最棒了 6、函数的嵌套深度,如查一下所允许的栈深度,然后适当的缩小下就好了 7、别做任何检查和校验

缩进

统一左对齐,肯能是个不错的方法 或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(int i=0;i<a.size(),i++){
     If(temp!=0){               
     a.add(tempA);     
     }else{                         
a.add(tempA+1); 
     }                                 
     tempA++;
}

这样也不错~

语言

如果代码写的好,啥语言都会,甚至纸带带孔都会。那么发挥的空间非常大了 能打孔解决的,绝对别上汇编。语言选择相关,均遵循这个原则。 当熟悉一个语言之后,然后又恰好看了看设计模式,可发挥的余地就更加丰富了。 实践出真知,懂没懂的先用上再说,慢慢的代码就开始变的丰富起来啦~

遗留的无用代码

遗留代码可是前辈们的沉淀,一旦发现,即使无用,马上自己想一个用处给它注释上。 可能IDE有检测功能,别慌,可以试着调用它,这样能唤醒一大片无用代码~ 最后,记住,把Author 默默删掉,循序渐进修改代码,等它们慢慢分布到整个业务系统的各个模块,别急着上来就让别人看不懂,要不很容易被重构掉的,当然啦有一个志趣相同的小伙伴就更好了,可以拉他入伙,互相学习~ 即使这样小心了,代码还是很容易被别人发现的。需要保持学习,可以试试多去看看那些未曾验证的博客,多去看看那些技术简介,冗长的技术概念。这样才更有实力也有可能去反驳那些质疑的人~

反面描述问题,希望能有所帮助~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
看不懂的 build.gradle 代码
Android Studio 这么强大的工具,就算我们不懂 gradle, groovy, 也照样能借助AS对 Android 项目进行编译、调试、运行、打包等操作。build.gradle 这个文件接触这么久了,基本的项目配置也基本很熟悉了,毕竟每次自动创建的 build.gradle 里的代码就那么几项配置,看一下那些英文单词也基本猜到是什么配置。
请叫我大苏
2018/05/17
1.6K0
如何写出让人看不懂的MATLAB代码?
咱也不藏着掖着,其实大家用minify作为关键词检索,不仅能检索出大神的这款工具,还可以检索到降低python、JavaScript、R等编程语言代码可读性的其他实用性代码。
巴山学长
2023/03/15
7300
如何写出让人看不懂的MATLAB代码?
看不懂英文?直接微信扫一扫就可以了
前两天,微信iOS最新版6.6.7上线了,pick了一大波新功能,不知你体验了没? 今天,就介绍一个厉害的。 先看这个—— 知道这是什么吗?没错,一张(看不懂的)菜单。 但如果你打开微信扫一扫,你会发
腾讯大讲堂
2018/05/29
2.4K0
难怪我看不懂!call_stub竟然这么玄乎!
哈喽,我是子牙。十余年技术生涯,一路披荆斩棘从技术小白到技术总监到JVM专家到创业。技术栈如汇编、C语言、C++、Windows内核、Linux内核。特别喜欢研究虚拟机底层实现,对JVM有深入研究。分享的文章偏硬核,很硬的那种。
子牙老师
2022/05/06
4810
难怪我看不懂!call_stub竟然这么玄乎!
神级程序员教你如何写代码——十年编程内功心法
写代码就是学一门语言然后开始撸代码吗?看完了我一系列文章的同学或者本身已经就是老鸟的同学显然不会这么认为。编程是一项非常严谨的工作!虽然我们自嘲为码农,但是这工作毕竟不是真正的搬砖,我们是软件工程师。编程需要关注的问题太多,不仅仅有语言,还有算法、数据结构、编程技巧、编码风格、设计、架构、工程化、开发工具、团队协作等方方面面,涉及到很多层面的问题。本文将分享一下根据我这几年来的编程经验总结出的一些关于如何写代码的个人见解。 由于“跟我混”的一些小伙伴编程功底相对来说比较薄弱,所以在此总结一篇“编程内功心法”
企鹅号小编
2018/01/15
4.2K0
神级程序员教你如何写代码——十年编程内功心法
【干货】如何写代码 -编程内功心法
写代码就是学一门语言然后开始撸代码吗?看完了我的《GoF设计模式》系列文章的同学或者本身已经就是老鸟的同学显然不会这么认为。 编程是一项非常严谨的工作!虽然我们自嘲为码农,但是这工作毕竟不是真正的搬砖,我们是软件工程师。 编程需要关注的问题太多,不仅仅有语言,还有算法、数据结构、编程技巧、编码风格、设计、架构、工程化、开发工具、团队协作等方方面面,涉及到很多层面的问题。 本文将分享一下根据我这几年来的编程经验总结出的一些关于如何写代码的个人见解。 由于“跟我混”的一些小伙伴编程功底相对来说比较薄弱,所以在此
WZEARW
2018/04/10
8830
金山银山,扛不住代码“屎山”……
在知乎里,有一个充满味道而且很有意思的提问,引发了无数专业人士的吐槽: 问题中提到了“祖传代码”,顾名思义就是前辈留下来的代码。 随着系统的不断更新迭代,代码逐渐耦合笨重,阅读和修改的体验越来越糟糕,久而久之,这堆代码嗅起来,就逐渐充满了不可名状的味道,因此也被程序员们起了一个亲切的名字,名为“屎山”。 几乎所有程序员,都遇到过奇形怪状的祖传代码,而且在更新迭代的过程中苦不堪言。小E的学弟就有过亲身经历: 有时候前辈也看不懂前辈的代码,只能惺惺相惜,一起膜拜大佬: i = j + curR
腾讯NEXT学位
2020/04/09
3.2K0
看了这么多代码,谈一谈代码风格!
最近看了很多录友在leetcode-master上提交的代码,发现很多录友的代码其实并不规范,这一点平时在交流群和知识星球里也能看出来。
代码随想录
2021/06/17
1.8K0
Java基础-HelloWorld入门程序
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/11/27
5170
如何加强自己对Java的编码规范
Java,无疑是现在计算机专业最容易找到工作的语言,使用的人也非常多,各大语言排行榜前三一般都会有Java。
小Bob来啦
2021/07/29
5880
为什么编程都建议不要用拼音命名?
编程切记的一点是,要遵守约定俗成的代码规范。因为每一项技能,都有专业的标准,是千挑万选提炼出来的规则。
派大星的数据屋
2022/12/20
7270
为什么编程都建议不要用拼音命名?
ChatGPT发明「史莱姆语」,词汇语法规则全都有,还配了「史翻英」Python代码
还不仅仅是对英文词汇搞些简单替换,什么从句、语法格之类的语法规则,也都弄得明明白白。
量子位
2022/12/08
7010
ChatGPT发明「史莱姆语」,词汇语法规则全都有,还配了「史翻英」Python代码
Golang——为了防止程序员打架操碎了心
有同学在后台问我,为什么说Golang更适合分布式系统的开发?它和Java相比有什么优势吗?
TechFlow-承志
2020/04/21
5560
Java_环境搭建、变量的使用
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是 Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性(“一次编写,处处运行”)。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
咕咕星
2020/08/19
4290
Java_环境搭建、变量的使用
怎样的变量命名,才显得有文化?
相信不少程序员都为变量命名这个问题伤透了脑筋。变量名太短了别人看不懂,太长了又显得啰嗦,不长不短又考验词汇量,一不留神就跟已有变量名重复。取得一手好名字确实是一个挑战,也是一门艺术。今天我们就来聊聊,到底要怎样命名,才能显示出水平?
刘小夕
2020/11/26
1K0
怎样的变量命名,才显得有文化?
几天不写React,已经看不懂语法了
真是几天不写React,语法都看不懂了。本文就来聊聊这几个use关键词各自的意义。
公众号@魔术师卡颂
2023/08/30
3220
几天不写React,已经看不懂语法了
【今日必看】简历怎么编写的 7 个良心建议
主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。
伤心的辣条
2022/12/14
2330
【今日必看】简历怎么编写的 7 个良心建议
英语对于程序员重要吗?
做项目已经连续两周了,项目不大,但感触颇深,第一次写非技术文,希望能够给初学者一点参考,开头先说一下个人的看法,英语并不是必须学的,但如果想要深入学习各种语言或者技术,英语是非常重要的。很多初学者老是纠结于此问题,正好项目完工,写下感悟,希望对后来者有帮助。
wresource
2023/01/31
3600
专治看不懂makefile的人
makefile文件是用来帮助编译和管理C++项目代码的,需要配合make命令使用。makefile里也可以执行shell操作,具备一部分.sh脚本的功能。
震八方紫面昆仑侠
2020/11/05
1.9K0
关于烂代码的那些事( 上 )
最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周。为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事。 这里是上篇,谈一谈烂代码产生的原因和现象。
傻狗裆
2023/11/10
2770
关于烂代码的那些事( 上 )
推荐阅读
相关推荐
看不懂的 build.gradle 代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档