一个计算机技术爱好者与学习者

0%

为什么需要代码风格指南?

本文中大部分内容来自ChatGPT。

代码风格指南是一种旨在促进代码可读性、可维护性和可重用性的约定。虽然它们并不强制执行特定的编码标准,但它们建议一些最佳实践和常规约定,以帮助开发者编写更具一致性、可读性和可维护性的代码。

以下是一些代码风格指南的重要原因:

  • 可读性:代码风格指南可以帮助开发者编写更加可读的代码。这有助于降低代码维护成本,因为代码更容易理解和修改。

  • 一致性:代码风格指南可以确保代码在整个项目中保持一致的外观和感觉。这有助于提高代码可维护性和可重用性,因为开发者可以更轻松地了解代码如何工作。

  • 错误:代码风格指南可以减少编码错误的可能性。例如,强制实施缩进约定可以防止不正确的缩进导致的语法错误。

  • 沟通:代码风格指南可以提高代码的可交流性,因为开发者可以轻松地了解代码中使用的惯用语和惯例。

  • 最佳实践:代码风格指南可以提供最佳实践和规则,以确保开发人员遵循最佳实践和规则,以提高代码质量和可重用性。

在现代软件开发中,代码风格指南已成为一种非常重要的约定,以帮助团队开发一致、可读性强且易于维护的代码。

本文中,我们来学习一下Google Python代码风格指南。

参考文档:

阅读全文 »

ID3Tags是啥?

ID3Tags,简称 ID3 ,表示MP3文件曲目标签。
ID3位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息,ID3信息分为两个版本,v1和v2版。
其中v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息。v2版一般位于mp3的开头,可以存储歌词,该专辑的图片等大容量的信息。

ID3全称是啥?没有找到,懂得的小伙伴感谢留言告知。

阅读全文 »

问题

《Hexo更换主题为Next》一文中,关闭了文章的更新时间。因为next主题默认是使用markdown文件的修改时间作为更新时间,这个时间是不符合预期的。比如我换了电脑,clone下来markdown文件,写完后发布,那么所有文章的更新时间都会变成当前时间,这个就不符合预期,就不对。

但是,文章更新时间确实是有意义的,读者能够通过更新时间推断出一篇文章的有效性。比如很多工具和技术昨天可以用,文章写的没毛病,但是也许今天就不能用了。

本文就来研究一下,怎样让next主题显示符合预期的、准确的更新时间。

阅读全文 »

前言

《Hexo配置Travis CI自动发布》一文中,我们学习了使用travis-ci构建发布hexo项目的方法。

因为项目的特殊性,所以发布时只是把代码push到了git仓库,并没有把代码发布到我们自己的服务。本文,我们就来学习一下怎样通过travis-ci,把项目发布到我们自己的服务器。

需求:
已知hexo项目部署在github,百度抓取不到github的内容,因此我们想要在自己的服务器也部署一份代码,国内的流量打到自己的服务器。实现国内流量 -> 阿里云服务器,国外流量 -> github pages。
配置 hexo-deploy ,在发布时会同时发布静态页面到 voidking.github.iovoidking
阿里云服务器上有项目 /opt/nginx/work/voidking ,项目仓库为 voidking
现在想要实现的是,当使用 hexo-deploy 之后,阿里云服务器上的代码能够自动更新。

阅读全文 »

前言

使用user_tool.py还是user_utils.py?使用name还是username?使用user_add还是add_user?使用get_user_by_name还是get_users_by_name?等等等等,在编程活动中,我们经常会产生各种关于命名的纠结。
给文件、函数、变量命名是一件很难的事,但是也是有方法的。本文中,我们就来学习一下文件、变量和函数命名的方法。

参考文档:

命名方法

要领:一看就懂,保持一致。

文件

由于Windows, OSX下文件名不区分大小写(linux是区分的),所以命名建议还是以全部小写为主。
连字符可以使用中划线、下划线或者省略,关键是要统一。

目录建议连字符使用中划线,比如: my-project-name。
有复数的情况使用复数命名法,比如: scripts, styles, images和data-modules。
文件建议连字符使用下划线,比如:user_test.py。

变量

变量命名常用的有两种方式:
下划线命名法,比如: my_variable
驼峰式命名法,比如: myVariale

python语言建议使用下划线命名法。

函数

函数命名常用的有两种方式:
下划线命名法,比如: get_user_by_name
驼峰式命名法,比如: getUserByName

python语言建议使用下划线命名法。不同于变量命名的是,函数名称要使用动词开头,并且尽可能准确。

常用动词表

动词选取要精准。通常来说,动词决定了一个函数要采取什么”动作”。动词取的好,一个函数名字已经成功了80%。

常用动词表:

类别单词
添加/插入/创建/初始化/加载add、append、insert、create、initialize、load
删除/销毁delete、remove、destroy、drop
打开/开始/启动open、start
关闭/停止close、stop
获取/读取/查找/查询get、fetch、acquire、read、search、find、query
设置/重置/放入/写入/释放/刷新set、reset、put、write、release、refresh
发送/推送send、push
接收/拉取receive、pull
提交/撤销/取消submit、cancel
收集/采集/选取/选择collect、pick、select
提取/解析sub、extract、parse
编码/解码encode、decode
填充/打包/压缩fill、pack、compress
清空/拆包/解压flush、clear、unpack、decompress
增加/减少increase、decrease、reduce
分隔/拼接split、join、concat
过滤/校验/检测filter、valid、check

常用领域词

名词使用领域词汇。举个例子:集合的容量通常用capacity、集合实际元素个数用size、字符串长度用length,这种就遵循大家的使用习惯,不要用size去形如字符串的长度。

再比如,假如使用到建造者模式,那么通常会用build作为函数名字,这个时候就不要另辟蹊径,用create来作为函数名字,使用大家约定俗成的命名习惯更容易让你的代码被别人读懂。

常用名词表:

类别单词
容量/大小/长度capacity、size、length
实例/上下文instance、context
配置config、settings
头部/前面/前一个/第一个header、front、previous、first
尾部/后面/后一个/最后一个tail、back、next、last
区间/区域/某一部分/范围/规模range、interval、region、area、section、scope、scale
缓存/缓冲/会话cache、buffer、session
本地/局部/全局local、global
成员/元素member、element
菜单/列表menu、list
源/目标source、destination、target

常用缩写表

1、本缩写表是《编码命名规范》的附录。

2、本缩写表中列出的都是通用性缩写,不提供标准缩写,如:Win9x、COM 等。

3、使用本缩写表里的缩写时,请对其进行必要的注释说明。

4、除少数情况以外,大部分缩写与大小写无关。

阅读全文 »