Jiajun的技术笔记
搜索
EN
归档
分享
随想
友链
工具
面试题库
幻灯片
关于
分享
这里是我平时看到的值得分享的东西,这些都是我读过以后认为质量很不错,对成长有帮助的资料,希望他们也能给你带来成长 :-)
点击此处RSS订阅分享 :-)
#509 ->
总结了一些PG使用经验
#508 ->
这篇文章介绍了数据库索引中B树和B+树的原理,并且配了交互式的案例,简单易懂
#507 ->
简明扼要的介绍了HTML的所有元素
#506 ->
innodb-dedicated-server,打开这个选项之后,MySQL会自动根据服务器配置分配好innodb_buffer_pool_size,innodb_redo_log_capacity,innodb_flush_method。可以应对绝大部分的性能问题。
#505 ->
MySQL 里时常出现的filesort是什么?一句话:底层就是quicksort,名字没取好。默认是使用内存做缓存,如果内存放不下了,就会使用临时文件存储。
#504 ->
MySQL 官方性能优化文档,大概是程序员必读的文档之一了
#503 ->
A Guide to the Go Garbage Collector,Go官方发布的一篇介绍GC的文章,值得一看
#502 ->
分布式环境下的分页算法
#501 ->
97 Things Every Programmer Should Know,列了97个给程序员的建议。其中有一些还是很不错的,例如,要去重复造轮子,这样你才知道这个轮子是怎么实现的。要认真对待测试代码,写代码的时候,就要想好这份代码随时可能会公开(所以才不会随便乱写)。
#500 ->
google wire,Golang编译期依赖注入。再也不用手动注入了
#499 ->
protobuf 官方指南,另,风格指南:https://developers.google.com/protocol-buffers/docs/style
#498 ->
这篇文章介绍了常见的三种git分支模型:git flow, github flow, gitlab flow。介绍了常见场景以及优缺点,大部分公司的后端应该都是采用 gitlab flow
#497 ->
本文解释了不推荐把JWT用作session的原因,主要就在于不够安全,无法撤销,当然也提出了解救方案
#496 ->
将PG作为MQ使用
#495 ->
Go embed,官方的静态资源打包支持,一句注释就可以使用,很是方便
#494 ->
使用PostgreSQL做 pub/sub 系统
#493 ->
Golang 使用 ent 时,如何生成 FOR UPDATE 语句
#492 ->
Time of check to time of use 攻击,挺有意思
#491 ->
免费的天气预报API
#490 ->
豆瓣开源的库,可以给C库打patch,这样就可以和gevent一起工作
#489 ->
jq是一个强大的命令行处理JSON的工具,这里是一篇jq的教程
#488 ->
AWS的服务太多了,各种名词,这篇文章用通俗易懂的话解释了AWS提供的各种服务
#487 ->
这篇文章详细的介绍了 Python 的模块导入系统
#486 ->
这个网站上列出了很多常用商业软件的开源替代品
#485 ->
邮箱和日历使用的最佳实践
#484 ->
这篇文章讲解了SQLite是如何进行数据保存的,包括保存,回滚等。
#483 ->
这篇文章介绍了KVM上的各种显示协议,比如qxl, virtio-vga等等
#482 ->
逃逸分析在维基百科上的词条,可以了解一下
#481 ->
Facebook出品的Go ORM,基于go generate,生成出支持静态类型的操作语句
#480 ->
远程工作的最佳实践(其实是一堆建议)
#479 ->
高性能Go语言指南
#478 ->
zap是如何达到如此高的性能的?
#477 ->
这篇文章介绍了很多console.log的用法,前端同学可以一看
#476 ->
A half-hour to learn Rust,看了一下,还是阔以的,适合快速了解
#475 ->
Tmux cheatsheet,Tmux快捷键列表
#474 ->
《如何打造千万级Feed流系统》这篇文章写的还不错,不过一定要注意了,架构不是通用的,不同的场景、需求、用户量,他们的要求是不一样的,不能生搬硬套。不过思想还是可以学习学习,共性可以提取提取。
#473 ->
每天用apt-get,有没有想过apt-get是咋工作的?答案在这里
#472 ->
StackOverflow出的REST api最佳实践
#471 ->
这个网站收集了很多免费给开发者使用的资源
#470 ->
这篇文章作者分享了一下他在upwork上从零做起来的经验,包括如何写简介,如何谈客户等
#469 ->
Python也将会有模式匹配,这是PEP提案
#468 ->
Linux HiDPI的一些设置,包括一些软件比如i3等的配置,可以借鉴一下
#467 ->
一位博主分享他的常用的技术软件,比如Docker, Traefik, Django, Sentry,可以参考一下
#466 ->
时间轮算法实现延时任务。除此之外,也可以用堆
#465 ->
Linux下给图片加水印的教程,用的是ImageMagick
#464 ->
Android学习路线,2020版
#463 ->
ffmpeg教程,结合youtube-dl,那简直绝了
#462 ->
一系列关于数据库索引的文章
#461 ->
Wikipedia上关于缓存策略的页面,缓存策略也太多了点。。。
#460 ->
Kotlin coroutine最佳实践
#459 ->
Kotlin for Python developers,写给有Python经验的人的Kotlin教程
#458 ->
gRPC官方对错误处理的描述比较少,原来可以用 status 和 codes来返回错误,详见链接
#457 ->
这个网站有各种各样工具、开发语言等等的cheatsheet
#456 ->
这个好玩,在FreeBSD上跑jail,里面运行的是Linux
#455 ->
Redis配置maxmemory和maxmemory-policy两个选项,就可以当做一个LRU cache来使用
#454 ->
Redis官方文档:为啥用pipelining会更快
#453 ->
Github上有一个项目叫做Build Your Own X,里面收集了很多如何实现一个xxx的文章,可以去看看
#452 ->
《Patterns of Distributed Systems》,跟DDIA的内容有点像
#451 ->
这篇文章介绍了MySQL InnoDB几种类型的锁
#450 ->
TCMalloc的设计文档,可以借鉴一下设计高性能内存分配器的思路和经验
#449 ->
envoy出品的grpc数据校验插件,不过还没有正式发布
#448 ->
这位博主写了很多和KVM虚拟机相关的文章,有兴趣的话可以去翻翻
#447 ->
gRPC最佳实践,分享了一些定义proto文件的最佳实践
#446 ->
UUID做索引,因为UUID的随机性,可能导致在磁盘上分散。因此有人搞了一种GUID,前面一部分是有序增长的,后面一部分是随机的,这样可以把无序的转换成基本有序的,提升了性能
#445 ->
这个年头,很多人都是工作和生活很难分开来。比如你在家休息,结果同事找你。作者列举了他的几个方法,来避免这种事情,分清生活和工作。
#444 ->
这个网站列举了所有的HTTP状态码及其用法
#443 ->
使用Go的plugin模式,构建模块化的Go程序。Go有一个buildmode叫做plugin,可以编译出.so,这样可以动态加载。
#442 ->
MIT 6.824分布式系统2020版。这门课程现在有视频,讲义,论文和lab,资料比以前丰富很多
#441 ->
这篇文章挺有意思。我们每个人都有不想做的事情,比如我不喜欢刷题,因为觉得很无聊。但是,怎么去做这种事情呢?作者说,不要去想做这个事情的意义,去做就是了,just do it, become a mindless robot and don't think twice.
#440 ->
这篇文章说,为啥Go的错误设计很棒。主要理由是:显式优于隐式。和异常相比,的确是这样,跳过一个错误不处理,结果debug半天才发现原来是这里出了问题。博主说的还挺有道理的
#439 ->
维基百科上关于epoll的ET和LT触发模式区别的描述,简单两句话就说清楚了
#438 ->
这本小册子简要的介绍了程序员如何优雅的挣零花钱,基本上把能想到的路子都给总结了
#437 ->
用Rust从零写一个文件系统
#436 ->
Python 导入机制的坑,Python的import很是复杂呀
#435 ->
What I Wish I Knew When Learning Haskell,一份Haskell的学习指南
#434 ->
对CPython源码的剖析,另外有一本书叫做《Python源码剖析》,不过针对的版本是2.7的
#433 ->
这篇文章介绍了Python中,string是如何实现以减少内存占用的
#432 ->
这个RFC简单介绍了TCP/IP的知识,包括:TCP/IP, ARP, 路由, UDP, 常见的TCP/UDP应用等
#431 ->
Python Debugging终极教程,作者展示了常用的debug工具方式和技巧,不过其实其它语言也是类似的
#430 ->
这篇文章总结了关于缓存的知识,包括:使用缓存的好处,常见的用缓存的地方,四种缓存策略的优劣分析,缓存架构方案等
#429 ->
Teach Yourself Programming in Ten Years。现在流行快餐式文化,快餐式教育,什么都求快,可是实际上,没有人能在段时间内成为一个厉害的Programmer。一般来说,成为业内专家,都需要差不多10年。这10年里,基本上就是不断的去解决比自己当前的能力强一点的问题,然后不断重复这个锻炼的过程
#428 ->
这篇文章介绍了四种缓存策略,以及他们的优缺点
#427 ->
proxmox wiki里的HOWTO页面,上面有很多关于虚拟机、lvm、容器等的资料
#426 ->
这篇文章介绍了libvirt的网络模型,带图示的
#425 ->
为啥MySQL要一个主键?
#424 ->
rsync在ArchWiki的页面,介绍了如何用rsync备份整个Linux系统
#423 ->
《我所不知道的知识》作者说,即使是一个经验丰富的程序员,也仍然会有很多不知道的东西,作者自己就列举了一下他所不知道的。通常大家会觉得有经验的程序员无所不知,但那是错觉。这同时也引入了一个职业思考题:我们是否真正需要知道那么多不需要知道的东西呢?其实我认为深度比广度更重要,什么都知道一点,什么都只知道一点,就有点虚。
#422 ->
Quora的MySQL Sharding方案
#421 ->
作者吐槽了现在软件行业的招聘,绝大部分考察重点都在算法,是一个一维的,真的要做一个好软件出来,只会写代码是行不通的,还需要很多其他技能
#420 ->
选择你的技术栈:如果还是早期创业的话,用你最熟悉的;选经过了市场考验的成熟技术;保守点但是别太保守
#418 ->
Arch Wiki上关于KVM虚拟机穿透技术的文档,可以把显卡等设备穿透到虚拟机里,这样虚拟机可以获得极佳的图形性能,我把USB接口穿透到虚拟机里的macOS了,这样就可以在虚拟机里的macOS编译应用了,很是方便(更多的案例其实是把显卡穿透到虚拟机里打游戏),虚拟机的好处有很多,比如快照、不用重启切换系统等,可以折腾折腾
#417 ->
小米一个技术团队的博客,还有挺多优秀文章的
#416 ->
《最好的CS专业书》其中包含了很多大名鼎鼎的书比如算法导论,APUE,FreeBSD设计与实现等,操作系统我还推荐一本:莱昂氏UNIX源码分析
#415 ->
The Go Programming Language Specification,这是Go语言的,作用同上
#414 ->
The Python Language Reference,Python语言的说明书,基本上读完以后,每一行Python代码背后会发生什么,心里都有个底
#413 ->
给年轻人的一些职业建议:不要把自己定位为程序员。为什么呢?我们要把眼界提的更高,公司为什么会高价雇佣你写代码呢?因为你能创造效益;去公司不要去边缘化的部门;你的技能不应该受某种技术栈的限制;在公司,通常不用谈友情;面试是个谈判活儿。作者还谈了期权、选择创业公司还是大公司、学会沟通等,这篇文章很长,但是值得读完。
#412 ->
这篇文章解释了为啥在Docker容器里,如果监听localhost,外界无法访问,清晰易懂
#411 ->
Python magic method大全,列举了所有可以magic method和他们的语义
#410 ->
有啥知识是CS专业的学生应该知道的?作者列了很多,包括要为简历做点投入,UNIX,系统运维,编程语言,安全,算法数据结构,网络,架构,OS,加密,测试,用户体验,虚拟化等等还有好多
#409 ->
理解Linux里,系统负载的含义(不仅仅是CPU,IO也会反映在里面)
#408 ->
这篇文章对比了常见的几种Git工作流:中心化的,Github风格的,Gitlab风格的,基于分支的;可以研究一下,因为很多公司定git开发流程的时候,就会用到这个
#407 ->
这个词条解释了为啥C语言用 '\0' 来作为字符串结束符:节省内存。以及对这个设计的形容:the most expensive one-byte mistake
#406 ->
一个介绍如何高效使用Linux命令的PPT,很多技巧,可以提升效率
#405 ->
KVM安装Windows的时候,启用Hyper-V Enlightenments特性,配合virtio,可以得到一个比较好的性能,配合spice,可以得到比较好的图形体验
#404 ->
LinkedIn 的code review经验:每个提交都应该写明这个pr的目的;给出正面评价;给出明确释义的comment;好的主意要点赞;不过分关注不必要的细节
#403 ->
MIT出品的开发工具的讲解课程,包括shell, vim, git, debug, 安全等内容
#402 ->
这个网站把常见算法和数据结构的操作过程做成了动画,非常有助于理解算法和数据结构
#401 ->
段永平的博客,他是OV+步步高的大老板。也是很出名的价值投资者,他的博客我刚读了一遍,很多都是价值投资相关的,当然啦,就少不了巴菲特的言论,可以挑着读一读
#400 ->
Nginx官方的几个优化建议
#399 ->
这里有一个checklist,可以用来大概预测看个人项目是否能成功,有没有搞头
#398 ->
Go的把XML转换成Go的结果体的工具,这里有JSON版本的:https://mholt.github.io/json-to-go/ 比自己写方便很多
#397 ->
这个作者把他的Chrome插件卖了之后,发现买者的商业模式:买下流行的插件,然后给现有的插件用户插广告,思路很清奇
#396 ->
Ranger,终端版本的文件管理器,我用了,感觉挺好用的
#395 ->
微软的RESTful API风格指南,值得学习一下
#394 ->
作者说要做一个有产品思维的软件工程师,这样的工程师更关心产品,商业和用户,能更容易想到边界条件,对问题的本质更有兴趣。对此我是很赞同的,工程师仅仅会技术是不行的,最好能至少结合技术+销售两个技能点,这样对于长远发展来说比较好,既会生产,又懂得如何把所做的东西让别人知道
#393 ->
一个简单的垃圾回收器,用来了解垃圾回收的原理还是可以的
#392 ->
Go ASM 教程 by example,通过几个简单的例子来了解Go的ASM,当然了,了解完以后,也大概率还是写不出稍复杂的汇编函数
#391 ->
Go汇编的官方文档,花时间仔细看完以后,能对Go ASM有一点了解,不过我个人觉得Go ASM有点abstraction leaky
#389 ->
Google的代码review实践指南
#388 ->
从Linux内核和ffmpeg中学到的好的设计,主要讲的是面向接口编程带来的灵活性
#387 ->
如何构建好的软件?刚开始的时候不要想的太复杂了;管理好复杂度;自动化等等(还有好多在文中)
#386 ->
用了typescript之后是否有必要写单元测试?答案是有必要,我也这么觉得。编译器能帮忙检测出类型错误、常见的用法错误等,但是却检测不出逻辑错误。当仓库里的代码越来越多时,只能依靠单元测试来自动进行测试,如果靠人的话,改动一多,牵扯的范围就太大了
#385 ->
选择FreeBSD而不是GNU/Linux的原因。当然,最终选择什么系统,是个人的事,不过可以通过这篇文章看看FreeBSD和GNU/Linux的异同
#384 ->
用Go写一个简单的关系型数据库
#383 ->
给软件工程师的五点建议:尝试去理解和学习现有项目的架构;学习所使用技术栈的底层原理;持续改进项目;理解有些流程是必要的;多写文档
#382 ->
Google SRE电子书,可以免费看
#381 ->
SEO是怎么毁掉互联网的?作者提出一个观点,SEO是一种零和游戏,你的排名上去了就意味着我的下来了,但是其总共价值并没有增加。理想的好的方式应该是大家产出高质量内容,而高质量内容随着时间推进,自然就会成为排名靠前的结果
#380 ->
MongoEngine,MongoDB的Python ORM
#379 ->
MySQL官方文档里的数据库优化相关章节,看完感觉根本不用买书,有这个就够了
#378 ->
Redis官方出的一篇文章,7个Redis最差实践
#377 ->
Redis最佳实践
#376 ->
通过这个工具可以自动把Go的MAXPROCS设置成容器设置的的上限
#375 ->
如何通过私钥导出公钥?这里是步骤
#374 ->
SQL中的NULL,详细的介绍了NULL的含义和用法
#373 ->
MySQL Internal Manual,介绍了MySQL实现相关的一些细节
#372 ->
HireInTech有三个系列教程,都是面向面试者的,分别是系统设计、策略和软技能、算法设计
#371 ->
Nginx官方的《管理员手册》,常见的操作和功能都描述了,比如HTTP负载、TCP负载、静态文件服务等等
#370 ->
如何在vps上启用两步验证;题外话,两步验证一定要保存好recovery code,要不然弄丢了就很尴尬
#369 ->
Golang slide的常见操作以及tricks,基本覆盖了对slice所需要的操作
#368 ->
Python中如何分析内存使用情况?这篇教程列出了常见的几个工具包
#367 ->
Android官方文档,最近看了一下原生Android开发,官方文档是最好的了,虽然有些地方我觉得还不够连贯(比如创建顶栏菜单时,需要实现一个方法但是却没有写明),但是基本上看完就对Android的基本概念有了解了
#366 ->
uber做的一个goroutine泄漏的检测器
#365 ->
Golang官方博客:slice的使用及其实现
#364 ->
Material Design官网,每个组件都有使用建议,比如do和don't,可有用来查阅
#363 ->
PingCAP 维护的一份数据库相关知识的清单
#362 ->
HTTP/1.1协议的RFC文档,相当长,但是仍然建议阅读一遍,可以加深对HTTP/1.1的理解
#361 ->
这是一个git系列教程,但是方式与众不同:通过探索.git目录下的内容来学习理解git
#360 ->
23个ElasticSearch搜索的例子,如果不常用ES的话,可以作为速查表来用
#359 ->
亚马逊的分布式系统相关挑战,在分布式的情况下,原本在单机情况下一个函数调用可能只有一种失败的case,在分布式下却可能在7种失败的case。因此最大的复杂度来源于错误处理
#358 ->
这篇文章介绍了openjdk的几种GC回收算法
#357 ->
小米DBA团队出的一个SQL优化改写工具,试了一下还不错,给一条SQL进去,它就会输出打分、优化建议等
#356 ->
小米出品的SQL优化改写工具中的SQL优化经验总结,很多条MySQL的坑
#355 ->
Go1.14里对defer进行了性能优化,这里是提案。原理是,编译器用一个int8的每个bit记录该defer是否该执行,然后把defer生成的代码插到函数的最后面,判断每个bit是否为1,如果是就执行对应的defer。这样能提升性能的原因是少调用了函数,因此减少了性能损耗。
#354 ->
这篇文章简单的介绍了11种开源数据库数据库的特点,可以用作对各个数据库的特性简要说明
#353 ->
我们能从新手身上学到一些什么?这篇文章说了一些新手常见的坑,以及如何避免
#352 ->
阅读代码能让你成为更好的程序员,这篇文章作者说明了:1.为啥要读源码?2.该读啥样的源码?3.该怎样读源码?4.读不懂咋办?5.作者从读源码学到了什么
#351 ->
Debian系的unattended upgrades,可以借助它来自动升级所安装的包,当然,这可能更适用于家庭服务器或者个人电脑
#350 ->
你是不是经常觉得无聊,然后拿着手机刷各种,越刷越多,然后觉得更无聊,然后继续着这个循环。作者的感受就是,把自己从不断的消费内容切换成生产内容,和前面的循环一样,你越是去产出,就会发现有越多可以探索和产出
#349 ->
这里有常用的正则表达式,还能搜索
#348 ->
Go语言的monkey patch,写单测的时候可以用。看了一下实现,是直接更改代码在内存中的位置,从而达到monkey patch的。
#347 ->
The Design and Implementation of FreeBSD, 2rd. FreeBSD设计与实现,最近在看这本书,是一本很好的介绍操作系统的书
#346 ->
DigitalOcean的教程页面,质量都挺高的
#345 ->
给Linux用户的FreeBSD介绍。讲了一下这两个系统的区别包括协议,发布上的区别等等
#344 ->
如何成为软件架构师?这个repo的文档说明了架构师是啥,职责是啥,以及一份roadmap,还有一些推荐书籍
#343 ->
Go语言的waitgroup挺好用的,那Python中做并发控制咋办呢?使用concurrent.futures.Executor。一行代码就可以实现并发控制:with ThreadPoolExecutor(max_workers=2) as executor: blablabla
#342 ->
MongoDB官网关于索引的文档,详细的介绍了MongoDB中的索引类型
#341 ->
如何成功?这一篇总结了很多道理,比如学会坚持做一件事情,要知道什么对自己的成功是有必要的,要做可轻易扩展的事情等等
#340 ->
作者的SaaS创业失败后的感悟:保持最小所需技术栈,如无必要则不引入;不要把时间浪费在升级上;用你最熟悉的技术;尽快出MVP
#339 ->
roadmap.sh,这里有很多技能树,比如后端要懂哪些,前端要懂哪些等等,想要对技能查漏补缺的时候就可以看看这个
#338 ->
Flutter UI布局介绍页,这个页面有所有自带布局的简介,点进去就是详情
#337 ->
这篇文章介绍了一下iOS订阅的流程(IAP)
#336 ->
199x年的ppt:为什么线程是个坏主意?因为共享内存太容易滋生bug,所以能避免,就避免。现在的线程使用方案都会尽力避免共享内存,而是去使用Thread local的方式。
#335 ->
Debian官方文档,列出了Debian&Ubuntu中Nginx多个包(nginx-light, nginx-full, nginx-extra)的区别
#334 ->
StackOverflow上的一个问题:你最推荐的编程相关的书籍有哪些?虽然问题已经被关闭了,但是上面的书单还是值得一看
#333 ->
web.dev,上面有很多提高网站加载速度的建议
#332 ->
异步执行Google广告的脚本,这样就不会阻塞页面了
#331 ->
SICP in Python
#330 ->
这里有一份对HTTP/3的简单介绍
#329 ->
OpenResty作者写的《动态追踪技术漫谈》
#328 ->
SQLAlchemy关于事务相关的文档。介绍了SQLAlchemy中怎么用事务、savepoint、two-phase commit, autocommit等等。其中SQLAlchemy的autocommit有个坑,会导致没法用第三方读写分离软件,详情可以翻一下我的博客
#327 ->
Google Page speed Insights,给你的网站跑个分,然后根据上面的建议优化,大多数建议都挺实用的
#326 ->
国内推行的敏捷开发的环节中,有一个叫“站会”。大家一起站着,然后每个人汇报自己的进度。我非常同意作者的观点:站会不过是浪费时间而已。为啥?大家就是更新一个进度而已,每次只能一个人说,大家都得听着,所以没法并发,如果控制的不好,还容易发散话题。不如改成自己去拖看板,有异议在群里直接说就好。这样团队所有人可以并发操作。
#325 ->
中保研碰撞测试汇总,买车可以参考一下
#324 ->
如果你想改善关系,可以尝试非暴力沟通:1,描述事实,而不是描述你作出的判断,或者说出来的是夸大性的描述;2,说出你的感受,而不是你自己的期望或者瞎想的东西;3,观察自己内心的欲望;4,请求,而不是命令
#323 ->
如果你用Python,处理文件路径的时候可以选择使用 pathlib.Path,比如两个目录拼接,直接写 a/b 即可
#322 ->
这里有一堆的免费Icon
#321 ->
Go编译出来的二进制为啥这么大?因为有个feature是把程序和代码位置关联起来,这一块占了很大的空间
#320 ->
腾讯的00后研究报告
#319 ->
作者说出了他的想法,为啥要在大城市里工作。其实是有道理的,大城市里有热钱、新生事物都从这里开始。如雷军所说,要顺势而为,大城市其实就是这种“势”。"Living in the big city, and being where everything is happening, will help your career the most."
#318 ->
Quora上的一个问题,怎么在一个月内变成更好的自己。答案还是可以参考一下,但是要说明的是,回答的人是一个老人家。老人家的人生阅历和我们不一样,也许有些事情对他来说很淡然很容易,对我们未必。但是这些建议,如果你认同的话,每做到一个,就可以获得一份的快乐。
#317 ->
来自Google的最佳实践:如何最code review
#316 ->
Rust和C的对比,结果表明,性能上就差一点点
#315 ->
不要把DNS的TTL设置的太低了,因为DNS不常改动,设置过低的TTL严重影响性能(不要小看网络不好的地方的DNS查找延迟)
#314 ->
Redis 6有一个新特性是客户端缓存。这里是对此的介绍,包括实现机制
#313 ->
Debian的官方文档,Debian很稳定,但不代表你玩不坏,这里是一些建议,遵循他们基本上就不会坏
#312 ->
我们可以从新手身上学到一些编程的习惯:用简单易懂的方式编程,而不是用不那么容易懂的trick
#311 ->
通过这个项目(remarkjs)可以使用Markdown来写ppt
#310 ->
写给Linux用户的BSD教程。这里没有一些类似什么“为什么选择BSD才是正确的”之类的道理,而是作者写明了两者的区别供你判断
#309 ->
Python打包教程,教你如何把Python项目打包上传到pypi
#308 ->
用一行Nginx配置来实现显示公网API的接口
#307 ->
一个经典的问题,为啥Python这么慢?作者分析了慢在哪里,然后给出了常见的方案。题外话,Python慢,那好在哪里呢?当然是开发快速。那性能差的话,是否应该选择呢?相信我,80%的公司的量级还到不了这个瓶颈
#306 ->
MySQL Online DDL的文档。有了这个,就不用担心锁表的问题了(当然,为了安全,最好还是在人少的时候操作)
#305 ->
curl参考手册,常见的用法都列出来了
#304 ->
Ubuntu出品的一份用tar来备份系统的教程,其中提到一个参数,--one-file-system,这样就可以自动排除例如 /run,/proc等虚拟文件系统,而不用手动一个一个指定。Linux备份还是很方便的,相当于直接复制粘贴一个系统之后重建一下引导就ok了
#303 ->
如何判断一个技术的趋势?作者分享了一个技巧,用StackOverflow提供的Data Explore和Google 的BigQuery,写SQL来看关键字的走势
#302 ->
作者分享了一下工作一年之后,从坐在旁边的高级工程师那里学来的东西,比如怎么命名,要写测试等等
#301 ->
请修复你的decorator。我们常见的写法会导致补全参数时全都变成 (*args, **kwargs),作者提出一个方案来解决这个问题
#300 ->
一篇对Dart VM机制进行剖析的文章,目前只写了一部分,不过还是值得看看
#299 ->
StackExchange上的一个问题:4-5年的时候会是程序员职业生涯最心累的时候吗(职业倦怠在3-5年的时候应该是相当容易出现的,因为常见的简单的东西都已经轻车熟路,这个时候很容易陷入一种高不成低不就的状态,再加上日常工作更多的都是一些重复的工作,例如CRUD)?
#298 ->
Google Tech Dev Guide,上面有很多教程
#297 ->
如何提高工作效率?作者给出了他的经验总结:1,不要做任务表,挑最重要或者最感兴趣的事情来;2,每天都划分固定的时间来检查邮件(主动轮询),其他时候就把客户端关掉;3,切断干扰源,例如把手机平板等关掉;4,注意配合身体的规律,比如你得吃个早餐,上午才有足够的精力;5,找你喜欢做的事情作为工作等。
#296 ->
作者从业十余年,给了我们一些建议:1,去快速增长的公司,缓慢增长的公司玩的是零和游戏,你起来了别人就下去了,反之亦然;2,年轻时多提升自己的能力而不是忙着赚钱;3,去一个你能学到东西的公司;4,不要因为你的朋友或者家人觉得公司好就去,而是你自己觉得;5,持续学习;6,注意提取规律,总结经验和技巧。等等,还有很多。
#295 ->
这篇文章介绍了Go语言调度器的原理
#294 ->
Linux系统调用图,以分层的形式展示了各个函数之间的关系
#293 ->
《莱昂氏UNIX源代码分析》最近粗看了一下UNIX v6的实现。K&R的代码真的是艺术,简洁精炼(当然同时也就意味着没有那么容易看懂)
#292 ->
若干篇无锁数据结构的论文汇总
#291 ->
降噪耳机的原理:检测到噪音,芯片产生振幅相反的声音,把外界的声波抵消。有点以毒攻毒的意思
#290 ->
对负载均衡有兴趣的朋友可以好好的读一下这篇论文(中文的),里面介绍了服务端负载均衡常见的形式,例如硬件实现、软件实现,还有负载均衡算法等
#289 ->
之前使用了dnscrypt,发现浏览器速度大减,为啥呢?因为现在CDN都是使用智能DNS来加速,即不同区域解析到该区域最近的服务器,而dnscrypt获取的可能是离你比较远的地址
#288 ->
这篇文章介绍了容器化落地的时候的一些理想与现实的冲突,开发者不习惯容器的使用方式,而理论上推荐瘦容器的使用方式
#287 ->
前些天收到反馈说微信公众号排版不好看,因为我之前都是直接复制粘贴过去的。今天找到一个好用的markdown转微信公众号排版工具
#286 ->
这篇论文表示:很多错误,只需要通过简单的测试就可以避免。例如加一个单测(实际上我看过的很多项目都没有单元测试,大致都是由于懒和时间的原因)。
#285 ->
htop详解
#284 ->
一些Go语言开发相关的资源
#283 ->
《30岁,我遇见了自己》我觉得这篇文章写的挺好的,每个人都有自己在这个世界上的目标。想清楚,就去实现。当然了,大佬是在彻底解决温饱问题之后,才去做的。
#282 ->
一致性哈希。常见的哈希算法如果更改了slot的大小,几乎所有映射都会失效,一致性哈希解决了这种问题
#281 ->
tmux教程
#280 ->
《UNIX编程艺术》第一次读这本书是在大学,如今写了几年代码之后再来重读一边感觉真是通透。
#279 ->
.bashrc的rc到底是啥?原来是run commands的缩写
#278 ->
GitHub为啥不用外键:数据准确性需要由数据库保证;容易成为性能瓶颈;不方便做online DDL
#277 ->
《100个不上班的人》系列,作者在豆瓣更新,定期采访各行各业优秀或特殊的不上班人士,希望为那些渴望或勇于跳出朝九晚五的企业雇佣制,去从事内心真正想做之事的年轻人,带去更多鼓励与参考
#276 ->
从培训班出来之后花了三个月找工作,这里是作者的经验
#275 ->
为什么30岁不会是第二个20岁?人生没有重来
#274 ->
papers we love,很多计算机科学的论文
#273 ->
《给开发新手的建议》,这个网站上有很多给新手的意见和建议
#272 ->
软件架构指南
#271 ->
DNS加密详解
#269 ->
作者一年不使用社交软件,发现感觉良好,我们能多久不用呢?
#268 ->
Ubuntu出品的教程网站,全都是手把手(step by step)教程
#267 ->
Raymond大神的文章:如何成为一名黑客(注意,是黑客不是骇客)
#266 ->
Internet简史
#265 ->
如何用wget把整个站copy下来
#264 ->
Linux网络管理员指南,书有点老,但并不过时,因为今天你用的还是TCP/IP。介绍了TCP,UDP,网卡,防火墙等知识
#263 ->
为什么学得多不一定是好事?1. 知道不等于学会了,真的学会了应该是你可以简单的教会别人;2. 强迫学习不好,想想我们从小到大的填鸭式学习;3. 有时候我们需要不学,学该学的;4. 要学会把事情交给别人做,你要做对你来说最重要的那部分
#262 ->
SQLite官方的文档:啥时候该用SQLite?其实对于中小型网站来说,都够了。什么样的算是中小型呢?每天100k点击以内的。但是实际上SQLite可以处理比这大10倍的场景
#261 ->
其实你(个人开发者)并不需要那么多基础设施例如k8s集群,CI/CD等等。推一下代码,镜像自动构建完成,听起来很酷对不对?但实际上你还要维护这么多套基础设施,有这个时间,早就写了很多代码了。比如我的博客就是一个ansible playbook,写完了,跑一下,就OK了
#260 ->
UDP打洞技术
#259 ->
Uber家的Go语言规范
#258 ->
bash补全是咋工作的
#257 ->
PromQL(Prometheus的查询语言)教程,这个比官方的简单多了
#256 ->
对于MySQL explain输出的解释,这个值得一看,尤其是当你要优化数据库的时候
#255 ->
《少有人走的路》:国庆节把第一本重读了一遍,推荐给大家。这本书的主题是爱,如何爱自己和别人
#254 ->
如何成功的单干(自由职业)?作者给出了一些建议例如收费要比工作更高一些,要有合同,要有律师等等
#253 ->
把你的Linux系统变成一个路由器,需要一个Linux系统+两块网卡
#252 ->
作者自己的产品所使用的那些“无聊”的技术。技术选型的时候不必追求新,而要追求稳+合适
#251 ->
详细的介绍了Linux的虚拟网络,包括bridge, bonded interface, vlan, vxlan, veth等等
#250 ->
zerotier,非常好用的内网穿透方案,可以把多个内网机器组一个局域网,然后使用一个有公网IP的机器或者vps做中转节点(moon)进行加速,这样就把多个内网机器+一个公网机器组成了一个本地局域网
#249 ->
那些量变引起质变的事情:例如AI和算法,非洲正在成为新的世界工厂,气候变化等等。这些事情都是一开始慢慢变化累积,然后到了一定程度就突然在全世界都蔓延开来
#248 ->
来自瑞·达利欧的《经济机器是怎样运行的》,值得一看
#247 ->
为啥创业者应该先做web端?1.快速部署;2. 容易获客;3. 设备通用;4. 桌面用户更舍得花钱。那什么情况应该做app呢?你的项目是地理位置强相关的,需要用到很多原生组件的或者是操作很频繁的
#246 ->
xid,全局唯一ID生成器,但是比UUID短。UUID序列化成字符串是36字符,而xid只有20字符
#245 ->
工程师容易犯的三个销售方面的错误:1. 还没了解市场就开是构建软件;2. 没有倾听客户需求而是侃侃而谈;3. 把兴趣当作了需求。不过我认为对于软件这类产品来说,没有产品,用户就不知道你说的是什么,所以应当构建一个简单但是可以让用户理解的东西,可以是MVP,PPT等等。
#244 ->
有漏洞的抽象导致我们编程要处理更多的细节问题,例如断网了TCP就不能保证送达,网络不好NFS就没法像本地文件系统一样使用
#243 ->
focus on your own shit,专注于你自己相关的事情,不要轻易被外界扰乱心智
#242 ->
作者三年创建一个年入$1M+的SaaS公司,有这么几点经验分享:1. 产品有真正的亮点(便宜和折扣不算);2. 自己得经常使用自己的产品;3. 不要风投;4. 只接受付费用户;5. 收年费比短期的更好;找到自己的增长点
#241 ->
我们要怎么抵抗手机的诱惑呢?我在地铁上看到几乎男女老少都是低头捧着一个手机在看,这明显是不好的,至少对于颈椎来说是不好的。如何摆脱手机的束缚?关掉通知,晚上静音,充电的地方远离床头,注意自己的心理状态(是不是看到红色数字就想点,诸如此类)等等
#240 ->
想做个App?可以先做个web版的,为什么呢?web版非常适合做MVP,一次性适配所有端
#239 ->
独立开发者该怎么做技术选型?不要一开始就考虑多牛的机器,一开始没有多少用户,一开始就把架构想的那么复杂,你确定一年之后用户会到那个数量级吗?单进程+SQLite就够了,所以,Go+SQLite是不错的选择
#238 ->
怎么变成高效程序员?作者每周都进行这几项训练:读一篇论文,学一个新工具,读书,写代码时录屏然后看回放
#237 ->
为什么像Google这样的大公司不使用敏捷?敏捷原本是为外包而生的概念,因为外包改需求频繁,所以需要小步快走。而对于Google这样的大公司来说,做一个产品,一个sprint并不能做出什么来,反而会因为各种会议极大的降低效率(别提Google了,就是创业公司,开各种敏捷会也很浪费时间啊)。
#236 ->
tinygo是一个为小内存,小硬盘设备开发的go编译器,支持很多嵌入式平台和WebAssembly
#235 ->
创业自检列表
#234 ->
学的太多未必是好事,关键是要真正的学会。疯狂的看书并不好。学一个东西的顺序是 记住,理解,应用,分析,探索底层实质,创造
#233 ->
Intel x86-64 汇编简介
#232 ->
快的软件就是好的软件
#231 ->
高分享率内容的心理学知识,人们为什么愿意在社交媒体上分享内容?他们喜欢分享什么样的内容?高分享率的内容有什么普遍的特征?
#230 ->
网页访问速度优化指南(解释了为啥要优化网页访问速度,如何优化网页访问速度等)
#229 ->
Linux(nasm)下汇编的一个简单教程
#228 ->
美国政府给出的一个表格,里面是一些常用的短语,用简单易懂的短语来替换那些晦涩的短语
#227 ->
如何做到一周读一本书?1.看作者;2. 读标题和目录;3. 读简介;4. 读内容;5. 再读一遍目录
#226 ->
你需要热爱你所做的事情吗?答案是不
#225 ->
程序员如何提升效率?
#224 ->
StackOverflow是怎么做部署的
#223 ->
OS开发wiki,上面有很多和开发操作系统有关的资料
#222 ->
每个程序员都应该早点知道的事情,例如不要用行数来衡量代码,不要陷入语言之争,如何做code review等等
#221 ->
给技术型创业人的营销方面的建议
#220 ->
维基百科的“防御性编程”的词条,大家可以了解一下
#219 ->
工作时,思考也是极为重要的
#218 ->
30岁时写给20岁自己的建议
#217 ->
17年web开发者的一些经验总结(最佳实践或者说建议)
#216 ->
维基百科关于线程的页面。上面介绍了线程,进程,线程调度模型等知识
#215 ->
Git工作流,Github工作流和Gitlab工作流。比较了一下,还是Github的更加简单
#214 ->
StackOverflow如何赚钱?主要是广告和招聘
#213 ->
(来自巴菲特和查理芒格)如何变得更聪明?多读书,早点睡,多和聪明人交流
#212 ->
Google Analytics开源版,现在一个商业模式是代码开源,通过开源赚人气之后,卖SaaS/服务赚钱
#211 ->
Joel的博客:如何找到优秀的工程师?这是《Joel谈软件》中的一篇,可以看看这本书
#210 ->
为什么应该学C?1. 即使是现在,C语言仍然很流行;2. 几乎所有现代语言中都有C的影子;3. 用C能训练你像电脑一样思考;4. 很多软件都是C写的
#209 ->
软件开发精进之路(说到底,还是算法,OS等编程基础知识最为重要,最为核心)
#208 ->
使用SSH的22个例子和技巧
#207 ->
浏览器厂商是怎么赚钱的?
#206 ->
微服务和单体应用的对比
#205 ->
如何成为获客专家
#204 ->
Python编程之美的英文版是开源的,详情在链接中
#203 ->
Python项目建议的文件结构
#202 ->
StackOverflow系统如何升级的记录
#201 ->
time-of-check to time-of-use (TOCTOU, TOCTTOU or TOC/TOU)问题: 先检查,再使用这种方式会导致一个时序问题,例如:1. 用户检查是否有编辑文件的权限,返回ok;2. 攻击者将文件链接至 `/etc/passwd`;3. 用户读取文件内容并且写至它处。这种攻击就叫TOCTOU攻击。
#200 ->
GCC默认从哪里搜索头文件?
#199 ->
由于 go.sum 是 go.mod 推导出来的文件,那么是否应该提交 go.sum 到版本控制系统里呢?答案是是,详细见链接
#198 ->
一个好用的在线微信公众号格式化编辑器
#197 ->
不使用Cookie如何追踪用户?使用etag。为了更好的性能,通常我们会缓存图片。通过etag来确定图片是否未改变。因此可以通过etag来追踪用户
#196 ->
YC的在线创业课程
#195 ->
介绍了跨域的知识:Simple requests和Preflighted requests
#194 ->
关于Cookie的知识,读这一篇就够了。文章来自MDN,介绍了:Cookie如何创建、类型、安全策略、作用域、前缀、预防跨站攻击、追踪等
#193 ->
给技术创业者的建议:重视营销
#192 ->
一步一步教你SEO:long-tail关键字(即寻找细分市场);页面标签要用对;长篇好文;页面结构;robots.txt;把网站链接发到大站
#191 ->
可是使用headless chrome/firefox 来做一些事情,例如截屏、导出pdf
#190 ->
该选什么方向进行创业?1.未来很有发展;2. 很多聪明人都不看好;3. 你在这个方向上很擅长。这三个兼备的,就是一个好方向
#189 ->
30年开发老司机的经验之谈,值得一看
#188 ->
Golang中,使用UDP来实现一个echo server(主要通过这个例子了解Golang中如何使用UDP)
#187 ->
SQLite并没有大家想象的那么弱鸡,SQLite非常适用于读多写少的情况;非常容易备份;大多数语言都内置了驱动
#186 ->
为什么2019年的水果这么贵?
#185 ->
六个错误的SEO示例
#184 ->
JetBrains 2019开发者报告
#183 ->
nomadlist,这个上面有各种远程工作的简况
#182 ->
在Go语言中如何使用pprof发现内存泄漏
#181 ->
这是一系列被k8s坑了的故事
#180 ->
通过这个Golang的库,可以实现在一个TCP连接上多路复用。有点HTTP/2的味道
#179 ->
微服务的陷阱。现在业界又开始吐槽微服务的缺点了,看样子又要开始向中型服务走了
#178 ->
正好最近我在尝试不用微信。“IM结合了视频/语音通信和邮件的缺点,却没有采集到它们的优点”
#177 ->
这位老兄用js写了一个最小的机器码解释器
#176 ->
KCP协议,把TCP转换成UDP从而达到加速的效果。缺点是流量耗费多一些
#175 ->
开源项目招聘的工作列表
#174 ->
一些编程技巧,挺有用的
#173 ->
Linux下处理并发的方式的系列文章,包括阻塞,fork,pre-fork,threaded,pre-threaded,poll-based,epoll-based
#172 ->
在线的crontab生成器(这样就不用自己记住crontab哪个字段什么意思了)
#171 ->
一键清除阿里云云盾
#170 ->
容器的CPU隔离方案
#169 ->
命令行版Google,一可以用于本机无法访问而远端可以访问时;二可以用于不想被Google追踪时
#168 ->
火狐内置的密码套件不够安全,看来还是要用个专业搞这些事情的第三方软件
#167 ->
打破棱镜,这是棱镜门事件之后建立的一个网站。上面列出了哪些推荐的不收集隐私的软件
#166 ->
原本我有一个想法,自己写一个搜索引擎,背后实际上使用Google,这样既可以避免Google收集隐私,又可以得到Google精准的搜索。原来已经有公司这么做了,就是这个
#165 ->
一个密码强度检测库,几乎支持所有主流语言
#164 ->
一套可以商用的图标
#163 ->
一种全新的钓鱼思路,现在的手机浏览器浏览网页时都会把顶栏隐藏,那么我们就伪造一个顶栏,伪装成其他网站,只要效果逼真,用户很容易就被骗了
#162 ->
256行c代码实现一个小型x86 assembler
#161 ->
Google HTML/CSS 编码风格指南
#160 ->
StackOverflow的架构图(2016年)
#159 ->
UNIX的论文
#158 ->
这篇文章比较仔细的介绍了 UNIX 环境下的 fork 调用
#157 ->
这篇文章总结了一下个人项目应该如何推广。不会推广这应该是程序员的一大弱点
#156 ->
为啥要写测试?嗯,道理大家都懂,但是。。。
#155 ->
推荐一个App,Google Prime,上面有很多教程,例如内容运营,网站管理,创业等等
#154 ->
Google官方的SEO新手指南
#153 ->
最近整理了一份《Golang简明教程》
#152 ->
这篇文章说的很有道理。程序员都有很多自己做的却没有发布的项目,为什么呢?我们花了这么多时间去做,最后却没有推向市场,然后又继续这个循环。这个问题值得思考
#151 ->
推荐一个工具:SimilarWeb,用来看网站流量有多少。我经常用它来对比对比自己的网站和其他网站的流量
#150 ->
k8s中, NodePort, LoadBalancer和Ingress三种服务暴露方式的区别
#149 ->
使用buildroot来构建自己的嵌入式Linux(minikube就是用它做的)
#148 ->
pg官方的don’t do this手册,上面写了一些常见的错误
#147 ->
学习一下WSGI的后继者:ASGI
#146 ->
《启示录:打造用户喜爱的产品》这本书描述了一些产品经理需要知道的知识,算是开开眼界用
#145 ->
睡得好比什么变成方法论都好。本人深有体会,睡得好,大脑清醒,写代码行云流水一气呵成;睡得不好,好不容易写出来,还一堆的bug,无论是静态强类型语言还是TDD都救不了。写好你的代码,从睡好开始 🙂
#85 ->
这个回答详细的说明了Go中pointer receiver和value receiver的区别,以及使用场景
#86 ->
David M. Beazley大神的generator教程,可以帮助理解Python中的generator
#87 ->
web性能调优,主要是集中在前端的技能栈上,例如JS,CSS,图片,字体,CDN等等
#88 ->
schema-on-read 和 schema-on-write,典型的例子是MongoDB和MySQL,MongoDB是文档型数据库,没有固定的表的schema,而MySQL是关系型数据库,插入数据之前需要先定义表的schema。类似的例子是什么呢?解释型语言和编译语言
#89 ->
shared-nothing架构。水平扩展的利器
#90 ->
一致性哈希,分布式环境以及负载均衡常用的一个算法
#91 ->
Golang的一些实践经验吧,只能算是
#92 ->
监听端口的时候,把port设置为0的作用是:随便给我找一个可用的端口
#93 ->
所以,我们到底要用getter/setter呢还是直接访问属性呢?
#94 ->
raft的资料都在这里了,论文和USENIX的视频强烈建议看一下
#95 ->
Golang标准库提供了三种容器:堆,双链表,环
#96 ->
Go内存泄漏的常见几种原因
#97 ->
Golang在struct里嵌入interface是什么意思?
#98 ->
讲解指针的不错的文章。讲的是C的指针,但其实理解了的话,对其他语言的指针,引用等等的理解也是有帮助的
#99 ->
大家好,我是JiajunHuang,建立了一个群聊用于大家互相沟通交流,欢迎大家加入
#100 ->
最近在读《非暴力沟通》这本书,对我来说有点用。总的来说:只表述观察而不表达评论;把负面(情绪)表达转换为正面表达
#101 ->
程序员如何创造睡后收入。这是我最近在思考的问题,编程本身其实还是劳动收入,只不过相对其他行业可能工资高一点,但本质还是不工作就没有收入。所以,要想办法创造一些睡后收入
#102 ->
Docker的组成
#103 ->
上周末读完了《邓小平时代》这本书,看到了很多历史。伟人就是伟人,当然,从书中也看到了真实的人。相比原版有一些阉割,但是尺度已经很大了,值得一读。
#104 ->
Linux上各个层面查看统计数据,性能指标的图
#105 ->
教你写一个简单的VM
#106 ->
我们都应该培养自己的核心竞争力,让自己不可替代
#107 ->
非常详细的介绍了Docker的网络
#108 ->
介绍Docker的一篇文章,可以用来入门
#109 ->
Linux3.4 以后,使用 prctl 设置PR_SET_CHILD_SUBREAPER之后,父进程可以等待子进程的子进程,也就是说,可以实现子进程 re-parenting,而不是直接由init收养
#110 ->
git中,使用二分查找来找到引入bug的提交(git bisect)
#111 ->
用CanIUse来查询各种浏览器是否支持某个特性
#112 ->
同步,异步,阻塞,非阻塞的区别。这是一道很典型的面试题
#113 ->
详细的介绍了Docker的网络(当然,也包括一部分Docker Swarm的)
#114 ->
作者11岁开始写博客,这是十年经验总结
#115 ->
介绍了Linux的network namespace,还有veth
#116 ->
介绍了Linux的6种namespace
#117 ->
避免使用类似utils,base,common的包名(🙄utils我可没少写)
#118 ->
最近在看TLPI,我认为可以比肩APUE
#119 ->
让Go更快的几个原因。文章有点老,有些失效的,但还是值得一看
#120 ->
设计“忘记密码”这个功能的几个要点
#121 ->
《System Performance》这本书系统地介绍了Linux & Solaris 上的性能调优,可以当作一本性能调优指南,也可以当作一本操作系统指南
#122 ->
从SEO的角度来说,子目录比子域名更好
#123 ->
写给小白的扩展性教程:水平扩,垂直扩,加缓存,读写分离等等等等
#124 ->
data race detector 底层原理,此外,也可以见:https://people.cs.umass.edu/~emery/classes/cmpsci691w-spring2006/scribe/lecture8-scribe.pdf
#125 ->
如何编写可维护的Go代码
#126 ->
现在又开始高喊支持单体应用了。其实微服务确实也带来了很多弊端,个人认为应该是粗粒度服务是一个比较好的取舍。例如原来一个单体服务可能会拆分成150个微服务,那么,按功能划分拆分成10个粗粒度服务会是比较好的一个选择。
#127 ->
检测HTTPS拦截
#128 ->
生动的比喻,解释了什么叫“供给侧改革”
#129 ->
如何使用go mod
#130 ->
通过对比浏览器&中间人发送的SSL Client Hello信息来鉴别HTTPS是否被劫持
#131 ->
了解一下QR code(常用的二维码之一)
#132 ->
Golang中如何优雅的关闭channel
#133 ->
常见网站优化技术
#134 ->
“有哪些书非常有利于年轻人未来发展?” 书荒的时候,去扒一扒
#135 ->
“关于创业,关于如何做好产品的一些优秀文章个人收集”,虽然文章都比较老了,但是还是值得看看
#136 ->
脑科学研究表明,练习和休息相结合的学习效率更高
#137 ->
这个东西可能5年前会比较简单。我自己也无数次跟自己说过这句话。但是可能五年后自己还是会这样跟自己说。最好的时机可能在以前,但也许就在当下。生活和工作都是如此,想要做什么别嫌晚,去做就好了。
#138 ->
整个USB网卡,结合它就可以收发短信了。配合来电转移好像也并不需要双卡双待的手机
#139 ->
苹果公司的启示:硬件为软件服务,软件为用户体验服务,用户体验为情感服务,产品为真正的需求服务。产品是靠设计的,有价值的产品才能存活下来,可以依靠高保真原型来快速试错,应当小步快跑,快速迭代。这是一本关于打造产品的书籍,推荐阅读。《启示录:打造用户喜爱的产品》
#140 ->
全球区域化部署架构
#141 ->
《参与感》这本书写的是小米创业路上总结的一些经验。雷军有句话叫风口上,猪也能飞起来。风,就是“顺势而为”,粉丝就是其中的一种“势”
#142 ->
rsync的算法。为了只同步不同的部分,我们就要先把文件分块,然后计算各个块的checksum,对checksum进行对比。如果发现不同,还要偏移一个字节进行checksum检验。基本上,就是一个用CPU事件+内存空间(hash表)来换取网络传输大小的方案
#143 ->
使用git+token的模式时,记住密码的方式
#144 ->
Linus谈“好的代码品味"
#1 ->
介绍了常见的缓存更新策略
#2 ->
记录了Go语言一些常见的坑,我就踩过几个了😅
#3 ->
这篇文章对我最开始学习Go语言时,理解goroutine有很大帮助
#4 ->
介绍了Go的调度器
#5 ->
介绍了Go的调度器另一部分:负责网络I/O的poller
#6 ->
Go的设计文档,包括历史设计
#7 ->
好好的读一读评论,基本对CGo怎么工作的就了解了
#8 ->
Python大神,每年都会有很精彩的分享,强烈建议关注
#9 ->
教你怎么提高Go程序测试覆盖率
#10 ->
学Haskell必读
#11 ->
看完之后你就对并发编程能有更透彻的理解了,当然,建议配合APUE一起看
#12 ->
介绍Redis提供的数据结构。初学者必读
#13 ->
介绍了Kubernetes的网络
#14 ->
介绍了Go的GC设计,以及如何调优以及如何避免踩坑
#15 ->
让你更加了解C,计算机原理和内存操作
#16 ->
这其实是设计师用的网站。不过,每天去逛一逛,真的可以培养自己的艺术细菌
#17 ->
看到这些增长的案例,其实挺有意思的,当故事书看吧,增长黑客需要结合很多知识,同时也要有机遇
#18 ->
可以把它设置成一个crontab,配合Let'sEncrypt就可以免费续签泛域名证书了:)
#19 ->
很老的一篇文章,主要是讲Python的新式类和老式类。现在新学Python的同学大概都是学Python3了吧。但是阅读一下这一篇文章,还是可以了解到一些新东西的,例如MRO。
#20 ->
用Python来解题。我初学Python的时候,mentor推荐给我的,当然我没有做。事实上我一直对做题没什么兴趣。送给爱刷题的同学们吧:)
#21 ->
详细的介绍了一下Python的magicmethods。即__method__这样的方法。可以当作一个汇总表来查,其实官方文档也有。
#22 ->
SICPPython版
#23 ->
很多很棒的文章,包括知名软件例如Nginx的架构,包括500linesorless系列。
#24 ->
介绍了在2018年Docker相关的概念,什么Container,Moby,Swarm,Linuxkit,containerd,Kubernetes
#25 ->
独立开发者都在做什么?可以看看,然后吸取一些idea
#26 ->
玩MySQL必看
#27 ->
用来测试页面加载速度,会给出很多建议,好用!此外,Chrome的DeveloperTools里也有一个工具,用来测试,同样推荐
#28 ->
人性的哪些弱点可以用于营销方面?开开眼界,看看套路
#29 ->
怎么去分析Redis中的内容呢?bgsave+redis-rdb-tool+sqlite
#30 ->
这是我的源代码
#31 ->
原来的googlewebmasterstools,用来查看自己的网站有哪些搜索热词,方便做SEO
#32 ->
Google趋势,可以用来做一些SEO测试
#33 ->
Mozilla开发者社区,上面的文档质量都挺高,主要是前端相关,CSS,JS等
#34 ->
Bootstrap Cheat Sheet,上面列举了所有的 CSS class,终于可以速查了
#35 ->
精益创业。看完这本书,其实总结就4个字:快速试错。分开来可以概括为:1,快速建立MVP,可以先yy有用户,快速建立一个简单的demo进行验证;2,A/B Test进行测试,这样可以快速知道feature是否真正需要;3,尊重数据和事实,而非臆想
#36 ->
Computer NetworksA Systems Approach,计算机网络:系统方法,很经典的一本网络相关的书籍,大学时看过。现在原书开源了,推荐
#37 ->
Designing Data-Intensive Applications。2017年读的这本书,这本书涵盖了当前设计一个数据密集型应用所需要的所有知识。 后端内容服务器应当是无状态,可扩展的。数据存储所涉及到的备份和分块。分布式系统所面临的问题。
#38 ->
这篇文章与陈皓的《缓存更新的套路》差不多。介绍了集中常见的缓存方式。可以是 读取-未命中-计算-缓存结果 的方式,但是这样会产生问题,给缓存结果加上超时即可。也可以是应用直接读写缓存,由后端程序将缓存与数据存储同步。
#39 ->
8篇文章介绍了容器的各个组成及其概念
#40 ->
介绍了一下基本的web开发架构,绝大多数web架构都是这一套,或者是其子集。对初级开发来说还是很有用的。
#41 ->
用split_clients来让Nginx做A-B Testing
#42 ->
CDN工作原理系列教程
#43 ->
为什么不应该和很多人讨论你的目标?和越多人讨论,你就越不会去做了🤣
#44 ->
快速睡觉。最近有点失眠,脑子里总在想一些东西,也许我也可以试试这个。
#45 ->
《原则》这本书是公司发下来要我看的。我是很讨厌别人强迫我做一件事情的。但,我不讨厌读书。翻开之后,我就把它读完了。总的来说,本书说的就一件事情,怎么进化。自身进化,公司进化。书里列了很多原则,但是最重要的不是这些,而是我们能明白哪些是我们真正需要的。
#46 ->
介绍了常见的软件架构模式,其实这些“模式”在日常开发中都有用到,但是一直都没有去归纳一下。这篇文章就做了这件事情
#47 ->
介绍了Chrome的架构,这个系列有四篇。这是第一篇。看完之后就知道为什么Chrome这么吃内存了。
#48 ->
StackOverflow 开发者调查报告2018。可以当故事看看,不过不太能体现中国的情况,因为从第一张图可以看出,主要还是美国和欧洲的参与人数多,中国的太少了。(也许中国开发者都去看各种C2C产品了吧
#49 ->
什么是systems programming?各个年代的解释
#50 ->
Python的语法糖甜又甜
#51 ->
Python Essential Reference,David M. Beazley 的书。前几天搞了一本来看看,温故而知新。基本上是Python官网文档浓缩版。
#52 ->
how to think clearly
#53 ->
怎么去做code review(道理我都懂但就是做不到系列。。。
#54 ->
要做pain-point driven SEO,而不是volume-driven SEO。前者基于用户需要,后者基于关键字点击量。前者看转化率,后者看点击率。
#55 ->
【题外话】吊塔是怎么升高的?看到窗外的吊塔,忍不住搜了一下
#56 ->
从构建reddit广告服务里学到的。描述了一些经验,以及架构
#57 ->
Go里如何安全的使用cookie,其实很多语言都适用。现在的很多全家桶框架帮我们做好了所有的事情,其实反而让很多人没有去了解底层。
#58 ->
如何写文档?用户眼球追踪表明,阅读文档时,视线呈F状。我们可以根据试验结果来对文档的排版做一些改变。
#59 ->
这是用户眼球追踪的研究的出处。
#60 ->
怎么去编写错误信息?三个要点:humble(谦虚),human(易读),helpful(有用)
#61 ->
介绍了protobuf的编码解码规则。可以学习一下怎么压缩传送消息的大小。用CPU时间换I/O。
#62 ->
介绍了一些工具,用来调试和测试HTTP/2协议
#63 ->
HTTP/2 简介。就不用看辣么长的RFC了
#64 ->
vim + LSP补全Go,试过了,目前这两个都有bug。
#65 ->
介绍Chrome的第三篇文章,主要讲了html等是如何渲染的
#66 ->
介绍Chrome的第四篇文章,主要讲了事件监听
#67 ->
丰田五问法,用来追根寻底,找到真正的原因
#68 ->
讲了一些常见的互联网产品的“套路”,其实和《增长黑客》内容相似。看完之后记得经常审视周边的所有产品和套路 🙂
#69 ->
一个Go程序是怎么被编译成可执行文件的
#70 ->
Let’s Encrypt 是怎么签发证书的
#71 ->
常见的关系型数据库都是基于行(row-oriented DBMS)的,所以可以看看基于列的数据库(column-oriented DBMS)
#72 ->
FaaS试用体验。看起来都很不错啊,不过国内好像并不流行
#73 ->
看完以后终于可以理解一点点错综复杂的国际关系了
#74 ->
介绍了Go的调度器,这是第一篇,主要讲的是操作系统的线程调度,缓存正确性等一些前提知识
#75 ->
介绍Go调度器的第二篇。还是老一套:GMP和net pooler
#76 ->
少用全局变量,尽量显式声明依赖,少用init
#77 ->
介绍了NUMA架构。Non Uniform Memory Access Architecture,CPU的“水平扩展"
#78 ->
Redis 5的新数据结构:stream。以后可以轻松的做一个群聊了,也可以做一个可靠的消息队列。不过有点复杂。
#79 ->
Go语言中实现无缝升级(graceful upgrade)
#80 ->
Uber开源的基于sync/atomic的包装函数库。好用!
#81 ->
Go语言中没有可选参数,也没有默认参数,那怎么设计配置参数会好一些呢?这是一个不错的实践
#82 ->
读完这本书之后,对于理解整个流程中的细节,如何估算响应时间,预判瓶颈所在都有一定的帮助
#83 ->
队头阻塞(head-of-line blocking)问题,了解一下
#84 ->
这篇文档介绍了gRPC是怎么在HTTP/2之上表示的,建议读这篇文档的时候,也用wireshark抓包对比看看。
邮件 订阅
RSS 订阅
Web开发简介系列
数据结构的实际使用
Golang 简明教程
Python 教程