点赞关注,不再迷路,你的支持对我意义重大!
🔥 Hi,我是丑丑。本文 「技术周报」—— 遥遥微光,星辰大海 已收录,这里有 Android 进阶成长路线笔记 & 博客,欢迎跟着彭丑丑一起成长。(联系方式在 GitHub)
- 本周时间:1615737600 ~ 1616342399
- 2021 年进度:21%
内容输出汇总
- 《数据结构 | 栈都知道,单调栈有了解吗?》
- 《数据结构 | 队列都知道,单调队列有了解吗?》
- [《Android | 应用安装流程》] (Editting...)
- [《Android | Window 机制》] (Editting...)
扩展阅读
《怎样的监控,才真正说明系统有问题?》 —— 58 沈剑 著
单维度易漏报,多维度立体化监控才是监控平台的根本。在设计上,看重通用、非侵入。
《设计师如何从 0 到 1 做出一个好产品》 —— Luckgg 著
《如何写出高质量的技术文章?》 —— 张建飞(阿里)著
为什么要写技术文章?
“费曼学习法”:写文章是逼迫自己深入理解问题的过程(定义问题、整理思路、清晰表达),是构建知识体系的最佳方法。
什么是好的技术文章?
1、指标因素:浏览量、点赞数、评论数、收藏数
2、有价值的内容
3、结构清晰、逻辑严密,具备一定的可读性和可理解性如何写好技术文章?
1、内容有用、大家好奇的点、自己的技术见解和思考、敢说真话
2、结构清晰:《金字塔原理》:结论先行、以上统下、归类分组、逻辑递进。对于一篇文章来说,金字塔的顶点是中心论点(通常是文章标题),围绕中心论点用多个观点去支撑中心论点。如果表达的内容很多,观点还可以进一步细分,形成金字塔结构。
使用 3W2H 模型来帮助构建文章结构:
- What:什么是抽象;
- Why:抽象为什么重要;
- How:如何进行抽象;
- Where:抽象可以用在什么地方;
- How much:抽象到什么程度。
3、刻意练习
4、迭代优化
NDK
1、学习内容
- C++ 语言复习(10 %)
算法 & 数据结构
1、LeetCode 打卡
- 周一打卡:54. 螺旋矩阵 I 【题解】
- 周二打卡:59. 螺旋矩阵 II 【题解】
- 周三打卡:115. 不同的子序列
- 周四打卡:92. 反转链表 II 【题解】
- 周五打卡:1603. 设计停车系统
- 周六打卡:150. 逆波兰表达式求值 【题解】
- 周日打卡:73. 矩阵置零 【题解】
2、输出文章
数据结构 & 算法 | 提示 & 思路 |
---|---|
《数据结构 | 栈都知道,单调栈有了解吗?》 | 利用单调的特性,以空间换时间优化时间复杂度 |
《数据结构 | 队列都知道,单调队列有了解吗?》 | 利用单调的特性,以空间换时间优化时间复杂度 |
逻辑题
渡河问题
一场大火席卷了草原,三只狮子和三只牛羚正在逃命,为了逃离大火,它们必须渡过一条潜伏着鳄鱼的小河。幸运的是,附近恰好有一个小木筏,一次可供 最多两只动物渡河。需要注意,牛羚是狮子的捕猎目标,一旦河的任何一边狮子的数量多于牛羚,即使只是很短的时间,狮子也会因本能而攻击牛羚。那么,怎样才能保证牛羚不会被攻击的前提下,六只动物都能安全渡河?
选择-回溯 思想:列举所有时刻的每种选择,以及它们所导致的后果。如果该选择无效,回溯到之前的状态选择另一个选择。
总共需要 11 步。
工程
一个辅助规范 commit log 的 IDEA 插件, 提交的格式为:
<type>(<scope>) : <subject>
<body>
<footer>
[Skip CI]
- <type> 提交类型
type | 描述 |
---|---|
feat | 功能(feature) |
fix | bug 修复 |
docs | 文档或注释的变更 |
style | 代码格式调d整,如 format |
refector | 代码重构,如使用设计模式进行重构 |
perf | 性能提升 |
test | 增加了单元测试或自动化脚本 |
build | 影响构建的变更 |
ci | 持续继承的变更 |
chore | 其他影响小的改动 |
revert | 回滚 |
-
<scope> 影响范围:表示变更影响的层面,一般是面向业务的,比如分为 user、order 等模块;
-
<subject> 主题: 对于变更的概括;
-
<body> 正文: 详细的变更说明;
-
<footer>: 额外的 hook 逻辑,比如 jira 工单关闭;
-
[Skip CI]: 设置 CI 工具忽略本次提交。
极光分享 JShare —— 极光
SDK 源码阅读思考:
1、ShareParams:使用Map<String,Object>存储参数值,而不是定义变量。缺点是取值/赋值麻烦,优点是全局只需要这个类来传递分享参数。如果使用定义变量的方式,扩展分享渠道时需要定义子类,这意味着分享功能模块需要使用泛型,源码阅读难度加大,但泛型取得的收益低。
2、PlatformConfig:第三方SDK的配置类,输出数据结构为 Map<String,Map<String>>
3、PlatformManager:分享平台全局管理类(不对外公开),收集 PlatformName-PlatformImpl 类名映射关系,使用反射创建分享平台实现。
4、ShareListener:分享回调,回调参数包含分享平台和参数
5、疑惑:集成 JShare 可以不用在集成平台 SDK,技术原理是怎么做到的?
技术分享
【无】
阅读摘抄
《幕后产品:打造突破式产品思维》 (第 2 章 · 第 4 节)—— 王诗沐 著
现在中国年轻人的内心深处越来越孤独(这是长期竞争压力大的产物)。人们的物质生活水平在不断提高,但距离生活富足还有很长的路要走;朋友圈中大家都信仰财务自由,但大部人没有明确的目标并为之奋斗;每一年似乎自己的生活与之前的并没有什么两样,大家都不满足,却又不知道这种不满足从何而来。一切似乎都处于焦虑的状态。焦虑和孤独感正式如今快节奏生活下年轻人的写照(尤其是在中国的一二线城市),现实生活中不如人意,让用户越发地渴望获得情感共鸣。
文字和音乐恰好就是连接共鸣与记忆碎片的好方式,两者都能使人展开想象,而网易云音乐的评论区正是让用户产生共鸣的地方。一首打动人心的歌曲聚集起来产生共鸣的人,其中腹有诗书的佼佼者写下的评论更让广泛的用户群产生了更强烈的情感共鸣。评论带来的价值超出了文字本身,真正发挥了慰藉人心的力量。
一篇好文章,由文字本身和读者透过文字的想象共同组成;一个好的产品,由产品本身和用户使用产品过程中所获得的的感受共同组成。
永远相信美好的事情即将发生!
网友评论