Links

最新

每天给你推荐一个新奇,好玩,高品质的开源库,好文,观点或言论等。
项目主页维护当前月份的内容,想看往期内容,可以翻到下方历史汇总部分,然后选择自己感兴趣的月份点进去即可。
在线阅读:https://leetcode-solution-leetcode-pp.gitbook.io/mz-ri-yi-jm/
电子书文件太大, 大家可到我的公众号《脑洞前端》回复“每日一荐”获取。

📰
RSS

大家可以用 Github 提供的 RSS 来订阅我的仓库更新。

图片加载不出来如何解决?

📆
《91 天学算法》限时活动

很多教育机构宣传的 7 天,一个月搞定算法面试的,我大概都了解了下,不怎么靠谱。学习算法这东西,还是要靠积累,没有量变是不可能有质变的。还有的人选择看书,这是一个不错的选择。但是很多人选了过时的或者质量差的书,又或者不会去写书中给的练习题,导致效果很差。
基于这几个原因,我组织了一个 91 天刷题活动,通过一个相对比较长的时间(91 天)给出最新的学习路径,并强制大家打卡这种高强度练习来让大家在 91 天后遇见更好的自己。详细活动介绍可以点下方链接查看。另外往期的讲义也在下面了,大家可以看看合不合你的口味。
最后送给大家一句话: 坚持下去,会有突然间成长的一天

1V1 辅导

如果大家觉得上面的集体活动效率比较低,我目前也接受 1v1 算法辅导,价格根据你的算法基础以及想要学习的内容而定感兴趣的可以加我微信,备注“算法辅导”,微信号 DevelopeEngineer。

新鲜出炉 (2022-11)

2022-11-29[算法]

输入一个 DOM, 返回这个 DOM 的选择器(selector)。
Given a DOM, can you return its selector?
function t(dom: HTMLElement): string {}
我们可以从当前 DOM 借助 parentNode 属性往上找到根节点, 路上的节点通过选择器进行定位,最后拼接即可。代码参考:
function t(dom: HTMLElement): string {
if (dom.tagName.toLowerCase() == "html") return "HTML";
let str = dom.tagName;
str += dom.id != "" ? "#" + dom.id : "";
if (dom.className) {
str += dom.className
.split(/\s/)
.map((c) => `.${c}`)
.join("");
}
return t(dom.parentNode) + " > " + str;
}
其实我们还可以做的更好一点,那就是遇到 ID 选择器直接 break。
function t(dom: HTMLElement): string {
if (dom.tagName.toLowerCase() == "html") return "HTML";
let str = dom.tagName;
str += dom.id != "" ? "#" + dom.id : "";
if (dom.id) return str;
if (dom.className) {
str += dom.className
.split(/\s/)
.map((c) => `.${c}`)
.join("");
}
return t(dom.parentNode) + " > " + str;
}

2022-11-24[网站]

如果你发现一个网站无法打开,你可能会想知道是你打不开了还是所有都打不开了。
这个时候一个检查网站目前是否可用的工具就很重要了。这里介绍一个我使用过的网站。
via: https://downforeveryoneorjustme.com/

2022-11-17[好文]

论算法的重要性。 原帖标题《十年程序员难倒了一个算法上面,真的老了》
via: https://www.v2ex.com/t/895464#reply135
简单说一下这道题。 如果第一个数组只有一项,那么就是一个典型的背包问题。 不过,背包问题求的是组合数或者极值,而这道题是求匹配方案, 因此我们不得不采用回溯的方法。
另外,第一个数组不止一项,怎么办呢?其实我们还是用回溯的思路,新建一个数组来标记一下第二个数组中每一项的选择情况即可。

2022-11-16[好文]

github 代码搜索确实不好用,以至于我一般都是直接将 .com 改为 .dev 然后在一个在线版的 VSCODE 中搜索。
而现在搜索功能以及代码阅读等都进行了增强,比如可以通过正则来搜代码。
via: https://github.blog/2022-11-15-a-better-way-to-search-navigate-and-understand-code-on-github/

2022-11-15[技巧]

有时候我们使用的 Mac 应用突然间挂了,你又想知道为什么挂了。可以将 mac 应用使用终端(terminal) 打开,这样应用如果有打印日志的话,你就可以看到。
那么如何将 mac 应用使用终端打开呢?大家可以在应用文件夹中找到你想打开的应用,然后右键显示包内容(show package contents),里面找到一个 Contents/MacOS/ 下 找到一个可执行文件,将其拖到终端即可。
比如 /Applications/Karabiner-EventViewer.app/Contents/MacOS/Karabiner-EventViewer
你也可以直接将上面的路径粘贴到终端执行。

2022-11-14[工具]

electron-log 是 electron 上一个日志管理工具,可以输入日志到终端,文件,也可以重写后上报到后端。其还支持很多功能, 比如 Catch Error, 从而上用户手动上报错误等。
via: https://github.com/megahertz/electron-log

2022-11-13[网站]

一个开发人员参考手册,内容一般,但是界面还是蛮漂亮的,期待后续的完善吧。
  • 英文版: https://github.com/Fechin/reference
  • 中文版:https://github.com/jaywcjlove/reference

2022-11-11[工具]

AutoCut: 通过字幕来剪切视频
这意味着你只需要文本编辑器就可以剪辑视频。
via: https://github.com/mli/autocut

20220-11-04[网站]

fly.io 是一个类似 heroku, vercel 的免费代码托管平台,相当于得到了一个免费的云服务器。
via: https://fly.io/docs/

历史汇总

关注我

我重新整理了下自己的公众号,并且我还给它换了一个名字脑洞前端,它是一个帮助你打开大前端新世界大门的钥匙 🔑,在这里你可以听到新奇的观点,看到一些技术尝新,还会收到系统性总结和思考。
在这里我会尽量通过图的形式来阐述一些概念和逻辑,帮助大家快速理解,图解是我的目标。
之后我的文章会同步到微信公众号 脑洞前端 ,你可以关注获取最新的文章,并和我进行交流。
另外你可以回复大前端进大前端微信交流群, 回复 leetcode 拉你进 leetcode 微信群,如果想加入 qq 群,请回复 qq。
大家也可以加我微信好友进行交流!

贡献

  • 如果有想法和创意,请提 issue 或者进群提
  • 如果想贡献代码,请提 PR
  • 如果需要修改项目中图片,这里 存放了项目中绘制图的源代码, 大家可以用 draw.io 打开进行编辑。

License