代码可读性规范
一、可读性的重要性编程有很大一部分时间是在阅读代码,不仅要阅读自己的代码,而且要阅读别人的代码。因此,可读性良好的代码能够大大提高编程效率。
可读性良好的代码往往会让代码架构更好,因为程序员更愿意去修改这部分代码,而且也更容易修改。
只有在核心领域为了效率才可以放弃可读性,否则可读性是第一位。
二、用名字表达代码含义一些比较有表达力的单词:
单词
可替代单词
send
deliver、dispatch、announce、distribute、route
find
search、extract、locate、recover
start
launch、create、begin、open
make
create、set up、build、generate、compose、add、new
使用 i、j、k 作为循环迭代器的名字过于简单,user_i、member_i 这种名字会更有表达力。因为循环层次越多,代码越难理解,有表达力的迭代器名字可读性会更高。
为名字添加形容词等信息能让名字更具有表达力,但是名字也会变长。名字长短的准则是:作用域越大,名字越长。因此只有在 ...
IP反查域名(一)
域名系统简介域名系统的英文名称是Domain Name System,缩写是DNS,他是互联网的一项服务,是一种将域名和IP地址相互关联的数据库。让用户方便、快捷使用互联网。
为啥要引入?
现实生活中,由于ip数量巨大,记忆困难,输入也极不方便,直接使用ip地址直接访问某一个主机会特别麻烦
主机ip地址经常更换,更换后需要更新原ip地址库
为解决以上不方便,特地引入域名这一概念,域名既是给ip地址起别名,用户只需要记录域名,让专门的服务去寻找ip地址
域名解析将域名解析成IP地址的过程即为域名解析,这一工作由DNS服务器完成
通过向dns服务器发送query请求即可查询到想要查询的域名的ip地址
IP反查域名顾名思义 在知道ip地址的情况下,需要查询ip上绑定的域名信息。
同一个ip可以在不同时间绑定多个域名,但是同一时间只能绑定一个域名
因此搜集到的域名是具有时效的
查询方式特有网站查询:ip历史解析记录,由ip138.com维护的历史ip解析记录查询
https://site.ip138.com/(推荐)
https://www.webscan.cc/ ...
Common Platform Enumeration(CPE)
简介
CPE全称是Common Platform Enumeration,意思是通用平台枚举项。它是NMAP对识别出来的软件、操作系统和硬件的一种命名方式。
格式
cpe:/::::::
part表示目标类a:应用程序h:硬件平台o:操作系统
vendor表示向量类型;
product表示产品名称
version表示版本号;
update表示更新包;
edition表示版本;
language表示语言项。
例子CPE:/o:microsoft:windows_xp:::x86:,CPE:/o:microsoft:windows_vista:::x86:
part : o 操作系统
vendor:microsoft
product :windows_xp
version:
update:
edition:x86
language:
Hello 2021!
置顶很庆幸你能看到这篇博客
作为2020的幸存者,为逝者默哀
2020?感觉超级快有木有
回顾疫情爆发时间已经是前年的九月份
已经过去了一年多
都说2020是多灾多难的一年
疫情 火灾 洪水 还有科比
都再我们身边发生
真是 太难了
1-3月份疫情肆虐 武汉封城
今年不回家了
不给国家添乱
一个人留在南京
也不算一个人
还有我的明明陪我
熬过了每天的新增
熬过了周围小区偶尔爆出的病例
熬过了每天的孤独
做饭成为了最大的乐趣
厨艺倒是有了些许的进步
3-4月在家办公
事不多
得自己找事情做
打完卡继续睡?
睡醒起来迷迷糊糊回个消息
下午准点打卡下班
起锅造饭
今天的晚餐我又有新点子啦
5-6月洪水到哪里?
四川重庆? 湖南湖北? 安徽江西?
总和同事讨论这些话题
乐此不疲
这段时间普遍自己带饭
红烧排骨 辣子鸡丁
不存在的
番茄炒鸡蛋是拿手
啥都吃 啥都能活
10月国庆终于有机会回家一趟
好友 亲朋 家人
辗转 重庆 成都 然后回家
everything is on control
归程 大概受到某某人的印象
决定是时候脱单了
找一个愿意长期甚至 ...
常用工具包汇总一
常用工具
git神器 置顶
下载链接 https://git-scm.com/
typora下载链接 https://www.typora.io/
Elasticsearchelasticsearch官方下载链接 https://www.elastic.co/cn/downloads/elasticsearch
出于语言驱动原因,尽量使用低于最新版本一点的版本
jdk安装
12345678910111213141516171819#!/bin/shusr_local_dir=/usr/localjava_dir=/usr/local/java etc_profile=/etc/profileif [ ! -d $usr_local_dir ]; then mkdir $usr_local_dirfiif [ ! -d $java_dir ]; then mkdir $java_dirfiif [ ! -d $etc_profile ]; then mkdir $etc_profilefiecho "---------安装java环境---------"ta ...
常用工具包汇总二
一. 开发工具1)sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句: show create table xxx. 将输出的语句,直接粘贴进去就行。http://stming.cn/tool/sql2go.html
2)toml2go用于将编码后的 toml 文本转换问 golang 的 struct.https://xuri.me/toml-to-go/
3)curl2go用来将 curl 命令转化为具体的 golang 代码.https://mholt.github.io/curl-to-go/
4)json2go用于将 json 文本转换为 struct.https://mholt.github.io/json-to-go/
5)mysql 转 ES 工具http://www.ischoolbar.com/EsParser/
6)golang模拟模板的工具,在支持泛型之前,可以考虑使用。https://github.com/cheekybits/genny
7)查看某一个库的依赖情况,类似于 go list 功 ...
43. 字符串相乘
leetcode题库 43. 字符串相乘
原题信息
原题链接:
https://leetcode-cn.com/problems/multiply-strings/
难度等级
中等
原题描述
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
实现
构思
代码实现123456789101112131415161718192021222324252627282930313233343536func multiply(num1 string, num2 string) string { if num1 == "0" || num2 == "0" { return "0" } var result [110 + 110]int length := (len(num1) - 1) + (len(num2) - 1) + 1 for i1 := len(num1) - 1; i1 >= 0; i1-- & ...
leetcode题库 66. 加一
leetcode题库 66. 加一
原题信息
原题链接:
https://leetcode-cn.com/problems/search-insert-position/
难度等级
中等
原题描述
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
提示:1 <= digits.length <= 1000 <= digits[i] <= 9
实现
构思
代码实现12345678910111213141516171819202122func plusOne(digits []int) []int { digits[len(digits)-1] = digits[len(digits)-1] + 1 max := len(digits) - 1 for { if digits[max] == 10 { if max == 0 { digits[max] ...
leetcode题库 35. 搜索插入位置
leetcode题库 35. 搜索插入位置
原题信息
原题链接:
https://leetcode-cn.com/problems/search-insert-position/
难度等级
简单
原题描述
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
实现
构思
代码实现123456789func searchInsert(nums []int, target int) int { var i, n int for i, n = range nums { if target <= n { return i } } return i + 1}
代码链接
https://github.com/lennon-liu/leetcode/tree/main/lennon35
测试结果
优化与总结
来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob ...
28. 实现 strStr()
leetcode题库 28. 实现 strStr()
原题信息
原题链接:
https://leetcode-cn.com/problems/implement-strstr/
难度等级
简单
原题描述
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:输入: haystack = “hello”, needle = “ll”输出: 2
######示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1
说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。
构思
字符串整行匹配
实现
代码实现123456789101112func strStr(haystack str ...