ARTS 打卡第一周(200511-200517)
Algorithm
Review
1、Implementing a Key-Value Store – Part 1: What are key-value stores, and why implement one
点评:
作者介绍了 kv 存储及为什么要实现,kv 是一种简易的数据库,用于存储数据。比如现在的 redis,是一种可支持快速读/存的数据库。可以有多种数据结构实现 KV 存储系统,比如哈希表和平衡树。
要实现 kv 存储系统的原因是为了提升后端程序员的技术栈,而且阅读书籍和 wiki 太无聊且缺少实践。
作者为了回顾以下后端相关知识点:
C++
面向对象编程
数据结构和算法
内存管理
多线程、多进程和并发
网络编程(server/client)
磁盘管理的 I/O 问题以及文件系统使用
文章的结构很清晰,先介绍了存储系统,以及作为后端通过实践去实现一个,而且重点并不是造轮子,只是在参考已有 KV 存储系统的实现,取其精华,去其糟粕,实现一个更好的 KV 存储系统,同时也提升自己技能树。
这样的学习习惯可以借鉴,带着目的去学习和练习,目标清晰,也不会被其他东西打断。自己的学习也可以参考列一下自己要学习的知识点,不能总是东拼西凑的,知识点需要能串起来。
2、如何阅读论文(https://www.cc.gatech.edu/~akmassey/posts/2012-02-15-advice-on-reading-academic-papers.html)
总结记录:
首先读简要和结论:
找到作者想表达的内容和研究的课题
快速过一遍论文,得出:
目的、结构和研究方向
不用每一个字都读了,如果遇到不懂的,可以暂时先跳过,继续往下读,后面的内容可能会解释前面的内容
Tip
参数校验,定义通用参数,把方法写在类里边,在请求到来时或者在拦截器调用类的校验方法。
模型是人们对一类事物的概括与抽象,可以帮助我们更好地理解事物的本质,更方便地解决问题。比如,数学公式是我们对物理与数学规律的抽象,地图和沙盘是我们对地理空间的抽象,软件架构图是软件工程师对软件系统的抽象。
通过抽象,我们更容易把握事物的内在规律,而不是被纷繁复杂的事物表象所迷惑,更进一步深刻地认识这个世界。通过抽象,伽利略发现力是改变物体运动的原因,而不是使物体运动的原因,为全人类打开了现代科学的大门。
关于认为做“最新东西”写的乱点没问题,反正最后会重构的问题;这个理论对么?当然对,但是有一个前提,就是做的东西简单, 更确切的讲, 好测, 能很容易验证基本逻辑或者系统的 normal path; 对于不好测,且出一个 bug 就影响重大, 可能会导致黄掉整个项目,那么程序复杂度就不能过于给系统添麻烦,程序复杂度和业务复杂度不成基本线性关系,说明这个程序员写程序没有 scalability,做点简单东西还行,做复杂东西就原地爆炸;程序员产出的 code 能不能在复杂度这个维度上 scale,是我想指出的东西。(阿莱克西斯-知乎)
Share
https://www.hoohack.me/2020/05/16/summary-of-new-project
挑战看起来不容易,做起来好难,坚持下去更难,把挑战暴露出来,希望能接受大家的监督,完成这个挑战。
这是第一次挑战的记录,排版有点乱,还在学习怎么做好排版,之后会继续改良。如果有错误的地方,欢迎指正。
原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
如果本文对你有帮助,请点个赞吧,谢谢
参考链接:
左耳听风 ARTS:https://time.geekbang.org/column/article/85839
编程到底难在哪里?:https://www.zhihu.com/question/22508677/answer/276595266
Advice on Reading Academic Papers:https://www.cc.gatech.edu/~akmassey/posts/2012-02-15-advice-on-reading-academic-papers.html
Implementing a Key-Value Store:http://codecapsule.com/2012/11/07/implementing-a-key-value-store-part-1-what-are-key-value-stores-and-why-implement-one/
版权声明: 本文为 InfoQ 作者【老胡爱分享】的原创文章。
原文链接:【http://xie.infoq.cn/article/7397b22d6172229620f326bb7】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论