Closed monkindey closed 6 years ago
2017.7.29 ~ 2017.7.30 周末两天
完成阅读《深入浅出Node.js》第一章到第六章
完成度为90%吧, 很多东西感觉很多都捋得有点顺了。 感觉这种issue的计划还是比较适合自己的, 这个尝试还是不错的, 下次有计划再继续努力。 总有一股劲是在后面推动我的, 去完成计划, 有目的性的计划加上有deadline做起来确实很有 成就感和充实。
这一章讲的东西还是比较虚, 偏于一些介绍. 主要理解下Node.js的特点和使用场景
特点
const fs = require('fs');
fs.readFile('path', (err, file) => {
console.log(file);
})
事件机制与callback
单线程
跨平台
[x] 第二章 Node模块实现
基于CommonJS的规范, 但不是完全
核心模块与文件(用户自定义)模块
引入模块
[x] 第三章 异步I/O
比如你去订餐的时候, 订完之后还要在那里等你的饭菜就是阻塞I/O. 但是如果用了elm等点餐平台的话, 订完之后自己该干嘛就干嘛, 等店铺搞定了再电话你就行了, 这个就是非阻塞I/O。
Node.js组成异步I/O基本四要素
事件循环
观察者
请求对象
I/O线程池
[ ] 第四章 异步编程
异常处理
函数嵌套过深
阻塞代码
事件
Promise
async/await
[ ] 第五章 内存控制
对内存进行分类, 有新生代跟老生代, 对于不同代的内存有不同的策略。
类别 | 空间 | 算法 |
---|---|---|
新生代 | 小 | Scavenge |
老生代 | 大 | Mark-Sweep & Mark-Compact |
存在的意义就是用来操作二进制文件. 少了对字符编码的概念的话, 其实是很难理解的呢。
今天早上
了解sql的连接查询
INNER JOIN
找到两个表的共同点
LEFT JOIN
左表 👈 返回所有的行, 即使不满足右表
RIGHT JOIN
与LEFT JOIN相反
看到一个总结, 个人觉得总结得很好就是
左连接 where只影响右表,右连接where只影响左表。
今天下午
玩耍 Redis
还找不到它们的应用场景, 所以学得比较虚, 没有太多的充实
这周末
完成余下《深入浅出Node.js》内容, 并且总结
这一章在websocket有点卡带, 有时候反应不过来。还是对这个socket比较抽象的东西不太了解
一个web应用要具备
路由
模版
数据层
[x] 第九章 玩转进程
进程是服务端一个很基础的概念, 现在的CPU都是多核的, node又是单线程的, 想要榨干资源的话。想要开启多线程架构, master-worker. 这里就会涉及到进程间通信(IPC), 文件描述符概念。要让node做到集群, 要具备几个功能:
自动重启(worker挂了可以重新新建)
负载均衡(master分配worker算法)
状态共享(redis, 文件, 硬盘等第三方存储)
[x] 第十章 测试
[x] 第十一章 产品化
用了差不多10天的业余时间看完了<深入浅出Node.js>, 确实涨了很多知识, 虽然还是很多内容自己还研究不太透, 不过大概对后端有一个框架的了解, 后面就找找东西实践实践。之前总是说服不了自己去看完一本书, 没有一个聚焦的内容, 总是在网络上看那些零零碎碎的东西, 也就是说没有系统化吸收内容。这个行为应该会在这一次看完一本书而改变。每天的信息量都这么多, 你如何去转换, 你如何去分类, 你如何去吸收, 这个也是一个学问。人是单线程的动物, 处理不了同步的事情, 人的生命本来就是有限, 没法去了解很多内容。不过不管人与物, 能在我的时间线上遇见你都是一种缘分。还有人生需要目标, 要知道你还有什么事情需要做的, 然后时刻提醒着你自己。之前很多东西总是坚持不下来就是这个原因, 没有目标, 然后看到这个好就去看这个, 那个好就去看那个。要知道框架什么东西都是浮云, 只有历尽N年的规范才是王道。多读读HTTP规范会有更好的视野。说到这里, 突然有点想吐槽一下教育, 感觉扯得有点远了, 教育其实最重要是教会每个人儿保持你的好奇心, 为什么这个可以这样子呢? 那个又能那样子呢? 这个好奇心有了, 你后面自我驱动就更棒了。你会不会有时候想着为什么我们手机可以拍视频, 为什么又能听歌, 为什么又能看视频呢? 人生一定有很多好玩你又不知道的东西, 嗯, 去慢慢探索吧。共勉吧, 我离那个境界还是很远。记住, 存在即合理。
今天晚上
了解HTTPS逻辑
类别 | 特性 | 优点 | 缺点 |
---|---|---|---|
非对称加密 | 加解密钥匙🔑不一样 | 效率较低 | 不需要, 私钥保留在服务端解开客户端公钥加密内容 |
对称加密 | 加解密钥匙🔑一样 | 效率较高 | 每一个连接就要维护一个密钥, 成本高 |
第三方权威CA
HTTPS成功很重要的一件事就是让客户端参与进来验证
😞
到8月底
这个可能是一个大功能点, 不知道能不能完成哈, 也不知道完成得怎么样呢
mongo
暂时不弄了, 先弄基础再说吧。
下周
自己的英语不行再加上预期不准确, 对自己太乐观了。导致现在才看到第二章完, 但是期间确实有做其他事情, 比如写文章, 研究babel原理等等的。所以并没有看完全部, 不过按理说下周应该可以全部看完。
还是没有看好, 确实后面的内容太多了, 导致看完了就忘记前面了。
最近重点放在CSS身上了
Download the React DevTools for a better development experience: https://fb.me/react-devtools
提示加粗了;
如果你的组件没有首字母大写的话, 会有warning
提示
The tag
is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter
Returning arrays from render
function HelloFiber() {
return [
<span key="hello">Hello</span>,
' ',
<span key="fiber" style={{ color: 'red' }}>
Fiber
</span>
];
}
export default class Fiber extends Component {
render() {
return (
<div>
<HelloFiber />
</div>
);
}
}
哎呀, 被别人催稿, 但是确实自己不是太懂C++/编译器呀, 好吧, 还是尽力看看吧。
V8 is Google's open source high-performance JavaScript engine, written in C++ and used in Google Chrome, the open source browser from Google. It implements ECMAScript as specified in ECMA-262, and runs on Windows XP or later, Mac OS X 10.5+, and Linux systems that use IA-32, ARM or MIPS processors. V8 can run standalone, or can be embedded into any C++ application.
一个多平台支持的, 支持ECMA-262
标准的JavaScript运行时
最后催稿后写成了这篇 JS递增序列的深入分析,算是一个沉淀吧
这种玩法感觉有点还不太适合,后面再想想其它玩法,咩有其它玩法再reopen
计划开搞
之前总是迷迷茫茫地, 需要一个明确的目标。
希望这一次不要停止 🙌
give me five and cheers 🍻
战果
You-Dont-Know-JS