后端开发人员面试问题

后端开发人员面试问题

https://github.com/arialdomartini/Back-End-Developer-Interview-Questions

  1. 通用问题
  2. 开放式问题
  3. 设计模式相关问题
  4. 代码设计相关问题
  5. 语言相关问题
  6. Web相关问题
  7. 数据库相关问题
  8. 非关系型数据库相关问题
  9. 代码版本管理相关问题
  10. 并发问题
  11. 分布式系统相关问题
  12. 软件生命周期和团队管理相关问题
  13. 逻辑和算法相关问题
  14. 软件架构相关问题
  15. 面向服务架构(SOA)和微服务(Microservice)相关问题
  16. 安全相关问题
  17. 比尔盖茨式问题
  18. 代码示例问题

通用问题:

  1. 语言设计中空引用(null reference)的存在有什么问题?假设你想要将空引用的概念从你的首选语言中移除,可能导致什么结果?
  2. 为什么函数式编程重要?什么时候适用函数式语言?
  3. 设计(design)、架构(architecture)、功能(functionality)和美学(aesthetic)之间有什么区别?讨论一下。
  4. 微软、谷歌、欧朋(opera)和火狐这类公司是如何从他们的浏览器中获利的?
  5. 为什么打开TCP套接字有很大的开销?
  6. 封装的重要性体现在哪儿?
  7. 什么是实时系统?它与普通系统有什么区别?
  8. 实时语言(real-time language)和堆内存分配(heap memory allocation)之间的关系是什么?
  9. 不变性(Immutability)是指: (变量的)值只能在创建的时候被设置一次,之后就不能被改变。为什么不变性对写更加安全的代码有帮助?
  10. 可变值(mutable values)和不可变值(immutable values)有哪些优缺点?
  11. 什么是O/R阻抗失衡(Object-Relational impedence mismatch)?
  12. 如果你需要使用缓存,你使用哪些原则来确定缓存的大小?
  13. TCP和HTTP有什么区别?
  14. 在客户端渲染(client-side rendering)和服务端渲染(server-side rendering)之间,你是如何权衡的?
  15. 如何在一个不可靠的协议之上构建一个可靠的通信协议?
阅读更多
Wolfram 高等数学输入方法大全
在纯命令行环境下批量下载OneDrive/SharePoint分享链接中的文件

在纯命令行环境下批量下载OneDrive/SharePoint分享链接中的文件

前一段时间我发了一篇文章,是关于Linux命令行下载OneDrive分享链接中的文件的,这篇文章其实解决了一些痛点,在没有图形化界面的Linux上终于可以无痛下载OneDrive分享的文件而不是只能在有图形化界面的系统上用浏览器下载。但是虽然解决了一些痛点,但是还没彻底解决,还有一些痛点如下

  • 只能使用curl下载(虽然可以用其他工具下载,但是还得一条一条复制,麻烦)
  • 需要自己打文件名
  • 不能多线程下载
  • 仍然需要一个图形化界面同时可以调试的终端

但是这些痛点还不算痛了,总有办法解决,这里就给出了一个解决方案, https://github.com/gaowanliang/OneDriveShareLinkPushAria2 ,新轮子实现了使用python环境,自动解析下载链接并推送到Aria2下载,使用方法如下:

程序一共有两个函数,getFilesdownloadFiles,由于程序是两个小时摸鱼摸出来的,所以写的很糙,不过能用就好。需要翻到程序最后

阅读更多
LightUploader,一个轻量化的网盘上传工具,支持OneDrive国际/个人/家庭版、世纪互联、Google Drive

LightUploader,一个轻量化的网盘上传工具,支持OneDrive国际/个人/家庭版、世纪互联、Google Drive

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
更新
【2021.04.29】
目前支持世纪互联、Google Drive,预计后期会添加对Mega,Telegram等平台的支持

【2021.04.02】
目前同时支持国际版、个人版(家庭版)。

【2021.04.01】
修复授权失败、上传文件大小为0等问题。
现已支持arm、x86、x64平台的系统。

【2021.03.27】
新增多线程上传、MacOS客户端。
修复了一个致命bug,建议之前装过的更新下程序。

功能

支持上传文件和文件夹到指定目录,并保持上传前的目录结构。
支持命令参数使用,方便外部程序调用。
支持自定义上传分块大小。
支持多线程上传(多文件同时上传)。
支持根据文件大小动态调整重试次数,对抗不好的网络环境。
可以使用Telegram Bot实时监控上传进度
Github地址:https://github.com/gaowanliang/LightUploader

萌咖大佬写了一个 非常好的版本 ,可惜并没有开源,而且已经好久都没有更新了。这个项目作为从 DownloadBot 中独立出来的一个简易上传工具,旨在用更轻量化的方式让在各种平台都能快速的向各个网络硬盘上传数据。

这里只详细说下Linux的用法,Windows后面大概说下。

Windows、MacOS系统下载地址→传送门,直接将程序下载到本地后,按照下面方法进行授权、初始化,然后就可以使用命令上传了。

阅读更多
遇到恶意敲诈,该怎么办?

遇到恶意敲诈,该怎么办?

  1. 只收到律师函,一律不回复,不沟通,装死。
  2. 只收到起诉书,没见到开庭通知,一律不回复,不沟通。
  3. 收到开庭通知就积极应诉,有一半概率对方会庭前主动撤诉。
  4. 对方没有撤诉,就准时去开庭,有一定的概率对方没有出庭,这种属于原告自动撤诉。
  5. 万一判个几百元,要么别理,要么继续上诉,事情会不了了之。
  6. 如果判决金额过大,哈哈,这是不可能的。

法庭上的说辞给大家整理好了。

  1. 原告的证据中自称为图片/文章的著作权利人,其作为法人不是图片的拍摄者,其未提供与原创者之间的许可转让协议等证据,其虽提交了作品登记证书,但该证据只能起到初步证明的作用。

  2. 被告无侵权的主观故意,被告在使用涉案作品时,涉案作品未标注版权信息,相关途径并未注明不得转载。

  3. 被告文章为科普教育,并非用于商业用途,合理使用不构成侵权。

  4. 涉案文章已及时删除,未造成严重后果;

  5. 原告主张的经济损失及合理支出无事实和法律依据,没有证据证明其经济损失及侵权获利。

  6. 原告不能证明其是著作权人及虚构高额的维权费用和经济损失,存在明显的恶意诉讼行为。通过公开信息可以了解,原告在全国范围内针对涉嫌侵权的小微公司或自然人提起著作权侵权诉讼,原告的诉讼请求金额居高,原告的此种维权行为值得引起法院的注意。原告涉嫌恶意诉讼,并且浪费国家大量的司法资源,国家法律对滥用诉讼保护著作权的霸主行为应当谨慎对待。

  7. 原告自身在版权保护上未尽到审慎合理注意义务,其并未采取任何版权保护措施,涉案图片/文章可以在网站上被任何人随意下载,使涉案作品处于随时有被侵权的可能,原告在全国范围内提起侵犯著作权的诉讼,企图通过法律途径获得“天价赔偿”,因此原告自己对版权的保护存在严重的过错,原告具有不正当的目的。

ZeroTier-One在Linux搭建moon完整过程
OneDrive 上传工具 OneDriveUploader

OneDrive 上传工具 OneDriveUploader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
更新

【2021.04.02】
目前同时支持国际版、个人版(家庭版)。

【2021.04.01】
修复授权失败、上传文件大小为0等问题。
现已支持arm、x86、x64平台的系统。

【2021.03.27】
新增多线程上传、MacOS客户端。
修复了一个致命bug,建议之前装过的更新下程序。

功能

支持上传文件和文件夹到指定目录,并保持上传前的目录结构。
支持命令参数使用,方便外部程序调用。
支持自定义上传分块大小。
支持多线程上传(多文件同时上传)。
支持根据文件大小动态调整重试次数,对抗不好的网络环境。
可以使用Telegram Bot实时监控上传进度
Github地址:https://github.com/gaowanliang/OneDriveUploader

萌咖大佬写了一个 非常好的版本 ,可惜并没有开源,而且已经好久都没有更新了。这个项目作为从 DownloadBot 中独立出来的一个简易上传工具,使得上传到OneDrive更加方便。

这里只详细说下Linux的用法,Windows后面大概说下。

Windows、MacOS系统下载地址→传送门,直接将程序下载到本地后,按照下面方法进行授权、初始化,然后就可以使用命令上传了。

阅读更多
Python 命令行输出二维码

Python 命令行输出二维码

为了方便信息处理,有的时候需要在ssh 终端等纯命令行的情况下输出一个二维码的图片,虽然Linux可以使用qrencode模块,但是这个东西始终不适合软件集成,所以我通过多方查找和修改,做出了下面的代码,非常简单,可以直接集成到python中使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def textQR(text):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=1,
border=1
)
qr.add_data(text)
qr.make(fit=True)
img = qr.make_image()
img2 = np.array(img.convert('L'))
d = {255: '@@', 0: ' '}
rows, cols = img2.shape
for i in range(rows):
for j in range(cols):
print(d[img2[i, j]], end='')
print('')
return ''

下面可以看到展示效果

阅读更多
使用wget和caddy等简单快速的转移服务器之间的文件