“没有什么是增加一个层解决不了的,如果有,那就再抽一层”
这算是计算机界一句非常经典的话了
今天突然想到了一个比较理论的解释,代码里随着业务的膨胀,接入的业务也来越多,不同系统间的交互也越来越多。
TODO
“没有什么是增加一个层解决不了的,如果有,那就再抽一层”
这算是计算机界一句非常经典的话了
今天突然想到了一个比较理论的解释,代码里随着业务的膨胀,接入的业务也来越多,不同系统间的交互也越来越多。
TODO
计算机里有一句很著名的话,叫 “没有什么是增加一个层解决不了的,如果有,那就再抽一层”。今天想到了一个比较理论的解释,代码里随着业务的膨胀,接入的业务也来越多,不同系统间的交互也越来越多。 |
在平时工作中,我们可能需要为一些业务方法添加一些通用的功能,比如 日志打点、调用耗时、重试机制等。举个例子,我们要统计某些方法的调用耗时并上报,那么对于一个业务方法,
import time |
我们可能想到这么改造
import time |
但是这样的话,一大段业务无关的代码就混入了业务流程中,这显然很不合理,并且我们需要记录统计时间的方法也不止这一个,这个时候,我们就需要 装饰器 这个东东
hive 其实是用 sql 来开发的 mapreduce 任务,其中的一些有优化技巧和 sql 优化也有相同的地方
在经过一周的 sql boy 历练以后,写 sql 的水平也算是更上一层楼了
虽然说hive 跑的都是t-1的离线数据,不怎么需要在意运行时间,但是比较 yarn 集群资源有限,使用尽量少的资源来完成尽量多的工作也是很棒的!这里总结一下一些 hql 优化上的技巧
由于第一份工作是在字节的广告商业化部门,所以对于广告以及变现这一方向有了一些涉猎和理解
UGC:User-generated Content的缩写,用户生产内容。又作UCC。
PGC:Professionally-generated Content的缩写,专业生产内容。
OGC:Occupationally-generated Content,品牌生产内容。
以快手和抖音作对比,快手推送的短视频偏向于UGC,这样的短视频更加多元下沉,对于中尾部的创作者来说更加友好,这也是快手让人感觉接地气的原因~。
而抖音更偏向于头部达人,头部达人的作品曝光率占比非常高,他们的创作水平/专业化程度也非常高,用户看到的内容PGC占比较多,所以大部分人感觉抖音的视频质量较高,内容更酷炫。
OGC内容就有很多例子,比如虎嗅网上的专业作者,他们生产专业的内容,平台为其付费,这类内容的目的在于从你的口袋里掏出钱,当然这部分内容的质量也是最高的的。
从windows切换到deepin,并将deepin作为日常主力系统
外出工作,没有外接键盘,需要使用笔记本电脑自带的软键盘
deepin20或者说linux的失去焦点策略为单击,比如在你打字输入的时候,只要点击一下输入框外面的部分,光标就会消失,失去焦点;而windows的失焦策略为双击,需要点击两下才会失去焦点。(两者在使用输入法时实测)
由于(3)的存在,只要打字时不小心碰到触摸板一下,就会失去焦点,并且丢失还在输入的内容,非常麻烦
deepin v20中只有在设置中关闭触控板的选项,并没有快捷键
物理解决:随身自带一个外接键盘,这样就不会误触了。
编写shell,映射快捷键
创建一个内容如下的shell,命名为touchpad.sh
,内容为
|
将其移动到 /usr/bin/
目录下,运行
mv touchpad.sh /user/bin |
给这个脚本执行权限
sudo chmod 744 /usr/bin/touchpad.sh |
设置 -> 键盘与语言 -> 快捷键 -> 新建快捷键,在命令选项中选择 /usr/bin/touchpad.sh
,快捷键自己设置。
这样就可以通过自己设置的快捷键一键切换触控板使用/禁用状态了,当你需要进行文字输入时,按下快捷键,禁用触控板。结束输入的时候,再按一次快捷键,使用触控板。
lab1 已经完工,但是遵循
Collaboration Policy
…
Please do not publish your code or make it available to current or future 6.824 students. github.com repositories are public by default, so please don’t put your code there unless you make the repository private. You may find it convenient to use MIT’s GitHub, but be sure to create a private repository.
所以我的代码就不开源了,所有的笔记我会在学习完所有课程,做完四个 lab 后整理后开源。
upd: 做完第一个 mapreduce 后就没时间做其他的了…
最终分数:13622.19
仓库地址:https://github.com/ayang818/KCoder-First
upd: 2020/7 复赛结束,最终排名 28/647
复赛赛题详情及代码: https://github.com/ayang818/2020-kcode-2r
复赛的文件格式和处理读入流的方式和初赛差不多,最重要的查找计算最长链路的核心代码——https://github.com/ayang818/2020-kcode-2r/blob/master/src/main/java/com/kuaishou/kcode/KcodeAlertAnalysisImpl.java#L319 , 使用记忆化搜索完成,其余常规思路可以参照初赛(感觉自己初赛写的代码拓展性还行)
为时14天的kcode初赛算是结束了(6/17 - 7/1),由于个人的时间安排关系,我差不多是从24号开始正式开始写代码的。由于分数不算很高,排名按照封榜前大概是 (20 ~ 30) / 100,估计还有一大堆没写出来的,毕竟群里900多号人,但是前10的大佬们已经基本都是2.5w+了,但是由于爬分的过程还是非常有趣的,所以还是还是打算写一篇博客来梳理一下优化的过程。
我的爬分过程:600 -> 3600 -> 5000 -> 9400 -> 11000 -> 13600
Update your browser to view this website correctly. Update my browser now