多元微積分
哈密頓算子,nabla算子、場(chǎng)論
梯度、散度、旋度與數(shù)量場(chǎng),向量場(chǎng)之間的轉(zhuǎn)換。
https://www.bilibili.com/video/BV19s41157Z4/?spm_id_from=333.880.my_history.page.click
https://www.bilibili.com/video/BV1a541127cX/?spm_id_from=333.880.my_history.page.click
transformer:從數(shù)學(xué)角度解釋為什么用縮放點(diǎn)積會(huì)有更穩(wěn)的梯度
https://zhuanlan.zhihu.com/p/371143022
雅可比矩陣
https://baike.baidu.com/item/%E9%9B%85%E5%8F%AF%E6%AF%94%E7%9F%A9%E9%98%B5/10753754?fr=ge_ala
計(jì)算機(jī)與科學(xué)
進(jìn)程和線程的關(guān)系及區(qū)別,進(jìn)程間如何通訊,線程間如何通訊
設(shè)計(jì)模式
依賴倒置(DIP)、控制反轉(zhuǎn)(IOC)和依賴注入(DI)
https://blog.csdn.net/leila_W/article/details/90105192
簡(jiǎn)單工廠、工廠模式、抽象工廠、工廠方法
簡(jiǎn)單工廠:?jiǎn)我还S決定初始化哪一個(gè)具體類(lèi),抽象產(chǎn)品接口,具體產(chǎn)品
抽象工廠:有抽象工廠、具體工廠、抽象產(chǎn)品接口、具體產(chǎn)品接口
Flutter
abstract class Widget的主要方法 80行代碼
子類(lèi):StatelessWidget、StatefulWidget、ProxyWidget、RenderObjectWidget
1.createElement():工廠方法創(chuàng)建抽象Element
2.canUpdate(Widget oldWidget,Widget newWidget):判斷Widget 能否用來(lái)更新Element,Widget是Element的配置
3.key()
abstract class Element 大概有1500行代碼
子類(lèi):ComponentElement、RenderObjectElement
孫類(lèi):StatelessElement、StatefulElement、ProxyElement、LeafRenderObjectElement、SingleChildRenderObjectElement、MultiChildRenderObjectElement
1.widget作為Element的配置
2.reassemble:hot reload時(shí)重新構(gòu)建時(shí)調(diào)用
3.markNeedsBuild: 將Widget標(biāo)記dirty下一幀刷新
4.Widget get widget => _widget!;Element和Widget是一對(duì)一的關(guān)系
StreamBuilder與Setstate
abstract class RenderObject 大概2200行代碼
http://www.itdecent.cn/p/62508ad21be5
Notification和NotificaionListener的使用,原理【沿著Widget樹(shù)向上冒泡】。
使用場(chǎng)景:自定義Notification和監(jiān)聽(tīng)ListView的滾動(dòng)
AbsorbPointer不會(huì)阻止點(diǎn)擊事件向上冒泡,IgnorePointer會(huì)阻止點(diǎn)擊事件向上冒泡
Listener可以監(jiān)聽(tīng)原始點(diǎn)擊事件
Flutter為什么能跨平臺(tái)【OpenGL和C++】
Widget、Element、RenderObject的生命周期
1.Widget CreateElement
2.mount creatRenderObject
3.canUpdate 決定著Element的復(fù)用
4.Element調(diào)用deactiveChild
5.inactive->unmount
6.需要重新插入 通過(guò)GlobalKey