1

【每日一荐月刊】2020-12

 3 years ago
source link: https://segmentfault.com/a/1190000038855080
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

每天给你推荐一个新奇,好玩,高品质的开源库,好文,观点或言论等。

项目主页维护当前月份的内容,想看往期内容,可以翻到下方历史汇总部分,然后选择自己感兴趣的月份点进去即可。

在线阅读:https://leetcode-solution-lee...

电子书文件太大, 大家可到我的公众号《脑洞前端》回复“每日一荐”获取。

新鲜出炉 (2020-12)

2020-12-31[好文]

啊哈!今天是我的生日 🎂

管道和重定向是 shell 中两个非常重要的概念,搞不懂它那么就无法精通 shell,很多高阶操作都依赖于 ta。

这篇文章讲解地非常细致,且例子很丰富,排版也很棒,让你有学习的欲望。

https://ryanstutorials.net/li...

2020-12-30[教程]

《The Missing Semester of Your CS Education》,中文是《计算机教育中缺失的一课》。其实之前就已经听说过了,也看了看。内容比较少,但是却都很实用。刚看到了中文翻译,就立马推荐给大家了。

翻译的质量不高,我读了几章,发现了很多错别字,并提交了 pr。

其中部分章节讲的非常精简,但是讲解角度很奇妙,比市面上大多数的文章要好,比如 版本控制(Git)") 这一节。

2020-12-28[好文]

到年底了,很多平台都开始了一年一度的年度总结。Github 在这一年都做了什么大事呢?这篇文章告诉你~

https://www.toutiao.com/i6909...

2020-12-25[好文]

圣诞节快乐 🎄

bash 大家可能在工作中都用过。不过很多人写的 bash 都比较粗糙,没有错误处理,打印不友好,没有帮助文档等等。

这其中的主要原因在于 bash 比较难,还有一个原因是 bash 不是我们工作的主要内容。但其实用好 bash 能很大提高工作的质量和效率,并且 bash 中的很多知识(比如管道)也可以迁移到其他地方。

而这篇稳重不是教你 bash 的,而是告诉你一个合格的 bash 脚本应该有什么,并直接给出了模板,大家之后直接“套”即可。

文章地址:https://betterdev.blog/minima...

另外我将其中的模板提取到了 gist,大家可以直接访问 https://gist.github.com/azl39...

2020-12-23[仓库]

fuse.js 是一个前端模糊搜索的库,帮助你在不依赖后端的情况下实现模糊搜索。

https://github.com/krisk/fuse

2020-12-22[工具]

可视化递归过程的网站。

https://recursion.now.sh/

2020-12-18[工具]

pycallgraph 是一个可以可视化代码执行过程的 Python 工具,底层基于大名鼎鼎的图形库 graphviz 实现。

使用效果:

一个更复杂的例子:

http://pycallgraph.slowchop.c...

2020-12-17[工具]

大家可能用过 top 和 iotop 查看机器的负载情况。而 htop 是一个功能更强大的替代工具,UI 更美观,且支持功能更多,用户自定义的选项有很多。

mac 用户可直接使用 brew 安装:

brew install htop

使用效果:

地址:https://htop.dev/

2020-12-16[工具]

你可能对自己写的代码进行过基准测试,那你对命令行程序进行过基准测试么?hyperfine 就是一个对命令行进行基准测试的工具。

使用方式非常简单, 最简单的用法是直接 hyperfine + command 即可 比如:

hyperfine 'sleep 0.3'

ta 还支持很多选项,可以说是一个合格的基准测试工具了。

地址:https://github.com/sharkdp/hy...

2020-12-15[杂谈]

Python 是一门动态语言,但是它却同 Java,C++等一样是强类型的,这体现在其不会发生隐式类型转换。而弱类型语言,比如 JS 和 PHP 则会发生隐式类型转换。

Python 可以选择性地给变量加类型签名。在 Python 3.x 之前,只能使用注释的方式增加类型注解:

def is_palindrome(s):
    # type: (str) -> bool
    return s == s[::-1]

在 Python 3.x 中,我们可以使用如下的方式添加类型定义:

from typing import Iterator

def fib(n: int) -> Iterator[int]:
    a, b = 0, 1
    while a < n:
        yield a
        a, b = b, a + b

这样你就可以对代码进行静态检查,并且其也不会对代码运行时产生影响,你如果不需要检查了,也可以选择性去除,这在重构遗留系统是一样的。如果你懂 JS 和 TS,那么一定能够感同身受。更详细的介绍大家可以参考官方文档: http://www.mypy-lang.org/

除了静态类型分析,有时候我们也需要对代码风格和语法逻辑等进行检查,这在大型项目中尤为重要,尤其是一堆不太熟悉 Python 的人,比如从 Java 转来的开发。

如果大家需要对代码风格进行校验,那么推荐使用 Pylint,默认是 PEP-8 风格。

如果大家需要对语法或者逻辑进行校验,那么推荐使用 PyFlakes,其并不会检查上面的代码风格问题。

PEP-8 是 Python 的官方编码风格指导

2020-12-14[视频教程]

网络,操作系统,数据结构与算法都是程序员的内功,学好这些内功可使你的学习效率大增,之后学习其他知识就会得心应手。相信我,各位程序员一定先打好基础,练好内功,不可着急去学语言框架这种东西。

这是一个北京大学的操作系统原理课,一共 82 集,每集大概十几分钟的样子。如果正想要学习操作系统,并且偏好视频的方式学习,那么不妨试试这个。

https://www.bilibili.com/vide...

2020-12-11[工具]

一个可以帮助你可视化递归过程的工具,我在几乎刷完了力扣所有的树题,我发现了这些东西。。。中提到过 ta。

递归计算 fib 的过程图

https://recursion.now.sh/

2020-12-10[工具]

很多人问我使用的画图工具是什么。这里就介绍一个我经常使用的一个画图工具 - excalidraw。它可以快速画出一些基本图形,并且支持手写风(目前仅支持英文手写风,中文是不行的)。

不过这对于写题解的我来说还是不够方便,于是我有了自己做一个画图工具的打算,主要功能就是根据数据结构直接生成图片,省去了手绘的过程。

地址:https://excalidraw.com/

2020-12-09[工具]

我写的一个刷题插件,帮助你高效刷题,不仅内置各种常见算法模板,时间复杂度估算表,学习路线,题解等学习资源。更重要的是,提供了一键复制所有用例禅定模式等实用功能以增强刷 leetcode 的体验。欢迎多题意见哦~

https://chrome.google.com/web...

打不开的朋友可使用离线版,离线版可关注我的公众号《力扣加加》回复插件获取。 不过还是建议有条件的使用在线版,毕竟咱的更新还是蛮快的。

2020-12-08[cheatsheet]

如果你使用 markdown 写东西,需要用到数学公式等特殊符号,那么掌握 latex 就很有必要了。

这里有一份 latex 语法手册,需要用的时候看一下,多用几次就熟练了。

https://assets.ctfassets.net/...

2020-12-07[好文]

ShellCheck 是一个帮助你检查 shell 错误的工具,本质就是一个 lint 工具,和 eslint 等工具的功能是类似的。

https://github.com/koalaman/s...

2020-12-04[好文]

NPM 7 发布了,新增重要功能 workspace,这不是一个无感升级,需要用户手动配合。这项功能可以在你的多个项目有很多公共依赖的时候发挥重大作用,使得你可以不必安装重复依赖。

详情:https://blog.bitsrc.io/npm-7-...

我重新整理了下自己的公众号,并且我还给它换了一个名字脑洞前端,它是一个帮助你打开大前端新世界大门的钥匙 🔑,在这里你可以听到新奇的观点,看到一些技术尝新,还会收到系统性总结和思考。

在这里我会尽量通过图的形式来阐述一些概念和逻辑,帮助大家快速理解,图解是我的目标。

之后我的文章会同步到微信公众号 脑洞前端 ,你可以关注获取最新的文章,并和我进行交流。

另外你可以回复大前端进大前端微信交流群, 回复 leetcode 拉你进 leetcode 微信群,如果想加入 qq 群,请回复 qq。

<img width="300" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g7he9xdtmyj30by0byaac.jpg">


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK