本篇原文来自《Medium》,原文作者为 Allan Reyes 一名退伍军人兼工程师。本文以第一人称编译。

我常逛像是 Exercism等网站,我在那里编写或重温一些习题来精进我的编码技巧。现在有个危险的流行正在蔓延,我注意到大家很推崇仅用短短几行的代码,认为这样很优雅、有创意,认为这超棒。

但这完全是鬼扯。Brian Kernighan 说得很对:「想帮短码除错比你重写程式还要难两倍。如果你真的觉得自己超会写短码,那麽就等到你帮短码除错的时候再来看看是不是真的那麽厉害吧。」

当你把编码的行数减少到令人费解时,这还会是个容易维护或可长久使用的代码吗?替编码抓错会变得更简单还是更有难度?更重要的是,如果原来的编码跟短码功能一样,那你是不是有点浪费时间呢?

较短的编码不见得代表是更好、更清楚的编码。当你不小心做的超过了,让编码变的难解,或用了模糊且不必要的模组,你可能会得对你的同事一边装可爱,一边说:「我浪费超多时间在完美化与複杂化这个简单模组,所以你现在才可以花超多时间来了解它。你不觉得这超棒的吗?❤揪咪,编码忍者敬上。」

这不但毫无意义而且很自私,而且完全只是种自负的表现。不必要而多馀的代码的确不好,但短码也不总是就是比较好。缩短编码与简化编码有很大的不同,因为缩短编码仅仅只是让编码变短。

我们用两种简单 Python 计算程式来找两个字串间的「汉明距离,又称信号距离(hamming distance)」。汉明距离在独立字元的计算中为不可或缺的角色。

● abcde 与 abcde 之间的汉明距离为 0

● abcde与edcba之间的汉明距离为 4

● abc 与 abcde之间的汉明距离为 2

以下是 Exercism 上被高度推崇的编码:

这是个超棒的编码 … … 如果你的目的是写出混淆代码(code obfucation)的话。

以下是网站上很不起眼的编码:

它用了超过 15 行以上的编码,以及 517 个汉明距离,但让我来解释为什麽这个比第一个范例来的好的原因:

● 伪代码与文档字符串的注解都很清楚。你可以很容易去辨读每个部分与字串的用意,所以任何语言的初级程式员都能理解。有几个「高级程式员(Pythonist)」能第一眼就理解那个比较短的编码?

● 每行都只执行 1 到 2 个方法(method)或操作(operation)。现在你在回头看看第一则裡有多少个 sum method、a != comparison、 forloop 与神奇的 map method 在同一行裡。你可以比较一下,两则之间,哪个比较容易读呢?

● 有逻辑的帮变数命名,有「i」的代表单一字元的变数。你可以试著把第一个范例丢到一个更大型的程式码中,然后试著找找看「x、y、a 或 b」。

综合以上,我们可以清楚了解到每个作者的意图:

● 写短码的人是为他 /她自己而写的。

● 第二则范例的作者是为大家而写的。

我想说的是:拜託你,别当个笨蛋。

无论是前端的 HTML/CSS 或后端的 Python 与 Ruby on Rail,都请你写一个大家都可以读得懂的程式码。

(资料与图片来源:Medium)

有趣的超短python代码_神级 Coder 绝不犯的错误:为炫耀编出超短码相关推荐

  1. 有趣的超短python代码_神级Coder绝不犯的错误:为炫耀编出超短码

    注:原文作者为 Allan Reyes 一名退伍军人兼工程师.本文以第一人称编译. 我常逛像是 Exercism 等网站,我在那里编写或重温一些习题来提升我的编码技巧.但现在有个危险的流行正在蔓延,我 ...

  2. 有趣的超短python代码_有趣的python精短程序

    python可以简单优美,也很有趣,下面是收集的例子: 1.一句话开始一个http的文件服务器: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0. ...

  3. 有趣的超短python代码_请不要为了炫耀而写出超短代码

    我常逛像 Exercism 这样的网站,在那里编写或重温一些习题来精进我的编码技巧.现在有个危险的流行正在蔓延,我注意到大家很推崇仅用短短几行的代码,认为这样很优雅.有创意,认为这超棒. 但这完全是鬼 ...

  4. java300行程序代码_神级程序员JavaScript300行代码搞定汉字转拼音

    一.汉字转拼音的现状 首先应该说,汉字转拼音是个强需求,比如联系人按拼音字母排序/筛选:比如目的地(典型如机票购买) 按拼音首字母分类等等.但是这个需求的解决方案,但好像没听过什么巧妙的实现(特别是浏 ...

  5. 14_[nvim0.5+从0单排]_神级文件模糊搜索插件telescope

    视频与目录 项目 值 教程目录 https://blog.csdn.net/lxyoucan/article/details/120641546 视频全屏 https://www.bilibili.c ...

  6. python程序员专用壁纸_神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏!...

    原标题:神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏! 现在很多人学编程都把Python作为入门语言,其实这是个很不错的选择,那么你知道新手如何学Python吗?小编给大家分 ...

  7. 一段有趣的python代码_你知道 Python 这五个有趣的彩蛋吗?

    当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西.通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生产环境中使用的风险). Python 就 ...

  8. 一行python代码画粑粑_有趣的一行Python代码

    常言道:人生苦短,我用python.简单收集了几个有趣的只有一行的Python代码. 1.画出你的爱心 print('\n'.join([''.join([('Love'[(x-y)%4]if((x* ...

  9. 知道经纬度用python画路线图_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

最新文章

  1. MAC jupyter notebook
  2. 浅谈一下这个所谓的特殊算法——动态规划?
  3. 关于SP一些响应码的API返回码及解析集合
  4. asp.net网页中导出EXCEL,WORD的环境设置验证实例
  5. 量子计算机 真假,复原乳到底有没有营养?量子计算机是否已拍死“前浪”?“科学”流言榜告诉你真假...
  6. 去除 Css 表单自动填充黄色背景
  7. php图片翻转函数,PHP图片处理之图片旋转和图片翻转实例
  8. 线性回归 最小二乘推导
  9. sql语句分组mysql_MySQL GROUP BY 语句_sql语句group by_分组
  10. 计算机分区容量计算公式,硬盘整数分区计算方法(附NTFS整数分区数值表)
  11. 怎么在服务器上显示u盘启动,电脑服务器怎么设置U盘启动
  12. 计算机光驱故障分析,光驱故障示例解决
  13. c语言指数公式_c语言指数函数(c语言如何表示指数函数)
  14. 学习记录:启动豌豆荚进入软件界面
  15. sdk manager extra下没有Google play billing
  16. 意识理论综述:众多竞争的意识理论如何相互关联?
  17. 微计算机应用是核心吗,北大核心哪个杂志好投
  18. 3d建模师就业前景?
  19. ArcGIS空间分析实验数据(汤国安版)
  20. python opencv实现图像生成bump map凹凸贴图

热门文章

  1. bulter机器人_浅谈国内外9大智能物流机器人
  2. 计算机机箱和笔记本有区别吗,电脑机箱可以随便买吗?好机箱和坏机箱有什么区别?...
  3. 阿里easyexcel导出图片 图片路径失效excel写出空白或默认图片 导出多图片解决
  4. python 将视频旋转
  5. anchor译中文,Anchor[锚]的中文翻译及英文名意思
  6. 重温blame!——用html+js写个漫画浏览器
  7. Window10系统下联想笔记本进入BIOS界面方法
  8. 指数蛙解说印度穷人是如何跪舔富人的
  9. 百度地图上根据经纬度集合绘制行车轨迹
  10. matlab拟合空间曲线。散点拟合三维曲线