写技术博客的初衷

关于写技术博客的初衷,我想说几句哈

在我的博客里会有一些,IT技术侧的基础知识,大都算不上很深入很底层的东西,当然了,能一篇文章说清楚的东西,大概率涉及不到太深度底层的知识。

这篇文相当于是前言,会解释以下两个问题:

  • 我为什么写这些很基础的东西,目的是什么?
  • 知识总量太大,哪些点是我会拿出来写的?

首先,我不是为了做知识笔记或者说什么梳理。所以打比方说,Android的消息机制大概是怎样的?Android的View事件分发机制是怎样的?渲染机制是怎样的?线程池的基本用法?等等等等,这些相对基础的知识,市面上的相关书籍或者网上的博客能搜到非常多,这也是一个高级开发技术成长道路上必知必会的东西,我再重新写一遍没意义,估计也没有别的博客写得好。

但是比如说子线程能不能展示toast?它和looper有啥关系,涉及到NMS里怎样的机制? Looper挂起以及唤醒涉及到的内核态的线程调度是怎样的? view的渲染具体到SurfaceFlinger服务里做了怎样的事情?再深入可以聊下Ashem匿名共享内存的东西? 这些都是可以从上面的基础知识往深度扩展来的,但是把下面这些问题弄明白的开发,数量应该是相对少一些的。

但是,有些知识点,很经典很基础,网上大部分的文章没有讲清楚(后面会举例)。

国内网站的很多博客目前存在几个问题:

  • 还没真的弄明白的情况下,就照搬照抄其他博主的文章。

    抄没有问题,但是最好在真正理解吸收以后,再抄比较好。

  • 不同博客平台用爬虫互爬数据,原样照抄连图床都不处理,配图挂了也不管。

    这导致一个问题百度出来(国内大部分工程师还是用百度,我也经常用),会有几十篇相关的文章解析,咋一看信息量很足,实则千篇一律,错别字都是一样的。

  • 没有把点子讲明白,有的甚至讲错了,也被别人抄了几十份。

    比如双缓冲和垂直同步,这么简单的概念,大部分文章却没能讲清楚。ThreadLocal也是如此。比如关于客户端缓存方案,我看很多候选人的简历上写着“三级缓存”,大家自己思考一下,网络这层能不能算作缓存,不知道哪个人说了这个“三级缓存”(估计是借鉴了操作系统 磁盘/ram/高速缓存 的三级缓存概念),后面看的人就跟着叫“三级缓存”。

    说实话,工程师面试,考察的重点之一就是解决问题的能力。肯定不会因为你说"三级"就比“二级缓存”更厉害,更加分,这是不可能的。所以在学习的时候一定要有自己的思考和思辨的过程,不要人云亦云。

  • 一些博客行文方式更像是做记录,不像在做分享。

    打个比方,代码细节,大多数情况下是为了“证伪”。很多博客,标题写着“深入解析”,然后进来一句话不说开始暴力贴代码,如果是为了做笔记,这个无可厚非,但是做笔记可以在本地文档做,发布到网上一是给搜索引擎增添负担,二是降低其他工程师的搜索效率。

    怎样才算是好的技术分析,我的理解是,要尽可能的消除平台差异性,将具体的平台细节脱敏,把原理流程抽象出来。比如你说一个Android的知识,要尽可能让没有这方面基础的新人或者甚至是iOS的开发能听得懂,能做到这一点,应该至少是及格了。

总结

所以综上所述,网上书上现成的基础知识文章我大概率不会去写了(除非真有人想看我重新写一遍)(上面文字里挖的坑,都会填上的)

然后我写这些博客的目的是,希望能用尽可能友好不炫技的方式,把一些目前其他博客都没能讲清楚的东西讲清楚。(回答了第一个问题) 而且,我会把那些虽然基础,但是很经典很重要,但是很容易理解错的知识拿出来写。(回答了第二个问题)。

最后,我一直是一个很自谦,一直抱有空杯心态的人。技术水平也极为有限,难免会说错理解错,也希望发现我行文纰漏的同行们能不吝赐教,通过私下联系或者评论的方式指出我的问题,以免我误人子弟。

你可能感兴趣的:(写技术博客的初衷)