精华内容
下载资源
问答
  • 思考: 过去的职业生涯,我收获了什么?我的工作成果是什么?我拿什么证明?

    思考:
    在过去的职业生涯中,我收获了什么?我的工作成果是什么?我拿什么证明?

    思索再三:
    收获:
    思维上:在实战中开发和测试的工作中的实质性区别,开发要有测试的思维可以减少很多没必要产生的问题,测试要知道开发在那些地方容易出现问题,代码的改动,牵涉到的问题会要比开发更清楚。一个小问题就是一个知识点,不是没问题,而是没想到问题。再三反复想想,还有很多。

    成果:
    思维上:技术共通性,思维方式决定了成长性,当用开发和测试思维来测试,会更快的发现问题所在,视野的开拓,代码的稳固,技术的提升和共通。以及找到了一个属于自己在20岁节点,30岁节点的成就方向。不慌不忙,静候佳绩。
    技术上:测试技术的提升如用例设计,python自动化持续集成,jmeter等。前端csshtmlJavaScript、vue、react、小程序等
    方向上:牛逼的测试leader。

    证明:

    1. 分享代码并开源,给其他的人的带来帮助。
    2. 写博客,遥遥一看,近5年了,从开始即将找工作稚嫩,到逐步知道了自己的方向,过5年再看,又是别有一番滋味吧。
    展开全文
  • 其实从去年开始就一直想分享我写博客的心得,但是一直也没有找到合适的契机,刚好今年年底前达成掘金粉丝量过万的小目标,索性就借着这个机会分享一下我自己关于写博客的一些收获,同时也算顺便做一个阶段性的...

    我是 J_Knight_,熟悉我的人都应该知道我是一名刚工作满3年的非科班 iOS 开发者,而且一直坚持写技术博客快有2年半的时间了。

    其实从去年开始就一直想分享我写博客的心得,但是一直也没有找到合适的契机,刚好在今年年底前达成了掘金粉丝量过万的小目标,索性就借着这个机会分享一下我自己关于写博客的一些收获,同时也算顺便做一个阶段性的总结。

    这篇文章分为三个部分:

    1. 写技术博客的历程
    2. 写技术博客的收获
    3. 回答一些朋友(粉丝)的一些关于写博客的几个问题

    第一部分先简单介绍关于我的博客的一些数据:写博客的起始时间,使用的博客平台,博客内容等等。

    第二部分是本篇的重点,讲解的从博客中我的收获有哪些。

    第三部分罗列了几个经常从一些朋友(粉丝)中听到的关于写博客的问题以及我的回答。

    写技术博客的历程

    在第一部分首先看一下我写博客的几个阶段,然后在该部分结尾统计一下我的博客的一些数据。

    写博客的几个阶段

    我在就业之前,自学 iOS 的时候开始写博客(当时只是写一点学习笔记,质量很低),拿到第一份工作之后的半年多以后开始在简书写博客,再经过大概一年多以后因为一个“众所周知”的原因从简书转到了掘金平台,再到后面也开始维护自己的个人博客和公众号。

    从简书转战到掘金的原因可以看我简书的最后一篇博客,简书个人主页地址以及其他主页地址在本篇结尾提供。

    写博客的内容按照时间顺序大致分为六个阶段:

    • 第一阶段:学习笔记
    • 第二阶段:源码解析
    • 第三阶段:React Native
    • 第四阶段:代码规范
    • 第五阶段:数据结构和算法
    • 第六阶段:面向对象设计

    第一阶段

    第一个阶段的写作内容集中在视频教程的学习笔记以及读书笔记以及一些关于iOS开发的比较小的知识点。在这段学习过程中带给我的提升比较大的是《Effective Objective-C 2.0》和 《Objective-C 高级编程》这本书,以及一些关于程序员素质方面的书籍。有以下几篇博客:

    《Effective Objective-C 2.0》总结:

    《Objective-C 高级编程》总结:

    读书笔记:

    上面这些博客在掘金上发布的时间比在简书上面发布的时间晚,因为大概是在简书写作一年多之后才开始在掘金发布文章。

    第二阶段

    第二阶段的写作内容集中在 iOS 各大主流框架的源码解析,原因是当时想通过看源码来提升业务水平。这阶段的源码解析一共有以下几篇博客:

    后来还发布了两篇源码解析的文章,原因是当时业务上要求封装一个网络框架和缓存库,所以就找了YTKNetworkYYCache的源码来学习,博客地址:

    通过学习YTKNetwork,自己后来也封装了一个网络框架,开源在了我的GitHub仓库中:

    很惭愧由于今年事情比较多,所以这个库从去年末发布之后就一直没有更新。但是优化的思路已经有了,明年可以逐步更新和维护。

    第三阶段

    第三阶段的写作内容集中在 React Native,原因是当时公司任务上有 React Native 的开发任务,所以当时花了一些时间来学习。学习主要是通过一个慕课网上的实战项目React Native技术精讲与高质量上线APP开发来学习的,在学习过程中参考课程的讲解,我自己将APP实现了一遍,放到了我个人的GitHub仓库中:GitHubPopular-SJ(已经获得该课程的慕课网老师的同意)

    而且后面自己也封装了一个纯 React Natice 的 UI 组件,一份代码同时支持 iOS 和 安卓,现在在我的 Github 上有开源:react-naive-highly-customizable-action-sheet

    两篇博客的地址:

    第四阶段

    第四个阶段的写作内容集中在代码规范上面,原因是当时有小团队了,感觉需要有一些规范需要实践,所以就搜集了一些关于代码规范的书籍和博客,整理了一套自己的 iOS 开发代码规范。有以下两篇博客:

    第五阶段

    第五阶段的写作内容集中在数据结构和算法,原因是想提升自己的基本素质。因为毕竟是非科班,所以这方面不能落下。经过一段时间的学习和总结之后,开启了数据结构&算法 in Swift的系列:

    本来打算把这个系列坚持写下去的,但是由于面试和新工作的关系,这个系列的第二篇的后面就没有更新了。

    等现在连载的面向对象设计系列结束以后会继续更新这个系列。因为目前来看,面向对象设计方面的学习任务的优先级比较高,原因会在下面说一下。

    第六阶段

    第六阶段的写作内容集中在面向对象设计方面。因为新公司的任务有很大一部分在SDK的维护和开发上面,所以这部分我想快速学习一下,这样对后面的工作会比较有帮助。有以下几篇博客:

    这个系列的所有Demo和UML类图我也有在GitHub上维护:object-oriented-design

    博客数据

    以上就是关于我博客的一些信息,下面统计一下我在各平台博客的一些数据:

    平台 粉丝数 文章数 阅读数 喜欢数 阅读数/喜欢数
    掘金 10043 27 131393 4534 28.97
    简书 4785 58 183642 3806 48.25

    根据阅读数/喜欢数这项数据可以大致看出在掘金上的博客质量是高于简书的。主要是因为在从简书迁移到掘金的时候是挑选了在简书上质量相对高的那部分文章;而且后面在掘金写的博客也逐步更加注重了质量。

    写技术博客的收获

    关于写博客给我带来的收获,我觉得由浅入深可以分为以下几点:

    1. 粉丝和影响力
    2. 对知识的掌握
    3. 面试机会
    4. 语言的组织能力
    5. 做事力求做到最好的品质

    前三点是比较直观的,也是大多数人都比较容易看到的:

    1. 一个好的博客往往有大量的粉丝,也增加了博主的影响力。
    2. 写博客也会加深对知识的理解,因为毕竟是自己组织语言然后给其他人讲一次。
    3. 现在不少面试要求的加分项里面都有“有技术博客或GitHub“这一项。因此有博客的话可能会给面试者多带来一些面试机会。

    相对于前三点,第四第五点是相对来说比较隐性的,但对我来说却是收获最大的两点。尤其是第五点,给我带来的”收益“远大于上面四点的总和。

    关于第四点:因为我希望自己写出来的东西可以很容易被其他人理解(包括我自己),所以写出来的东西我会不断推敲和修改。就是在这样长期反复的过程中,我发现自己语言组织能力,描述事情的能力提升了很多,这些其实也是沟通能力的一部分,所以也对我平时在工作和生活中和他人的沟通有了比较大的帮助。

    对于第五点我在这里着重说一下:在写博客的过程中我养成了做事力求做到最好的品质。

    一篇博客写出来,会花费博主的一些时间;看博客的人同样也是会花费一些时间。那么既然双方都在花时间,为什么不让这些时间变得有意义呢?因为一篇博客可以写的很精彩,也可以写的很一般:写的精彩,其实是双赢;而写的一般,其实大家都没啥太好的收获。

    而且随着我的粉丝量的增多,我对自己的文章的要求就越来越高:无论是文章质量还是给读者的阅读体验上我都会花费心思去琢磨:如何可以给读者高质量的知识,如何可以让读者很容易吸收我所写的东西?因为可能后面能看到我的博客的人会越来越多,而且我身上的一些标签也不容许我对博客质量的疏忽。

    就拿我最近分享的设计原则的这篇文章来说:面向对象设计的六大设计原则(附 Demo & UML类图)

    面向对象设计的设计原则其实网上和很多书籍都有提及,如果我自己来写的话我完全可以随便摘录一些文字再自己改一改放上去就可以了。

    • 但就算是用自己的话讲的很明白,那为何不在每个设计原则里面加一个实际的Demo更直观地验证一下呢?
    • 而且就算是有了理论和Demo,那为何不在每个Demo旁边再加一个 UML 类图让人更清晰得看一下Demo中类和类之间的关系呢?
    • 最后,每个原则的使用都是有原因的,不遵循这条原则和遵循这条原则的结果可能是截然不同的,那么为何不在每个原则的讲解后面加上两套 Demo 和 UML,一个是遵循该条原则的,另一个是不遵循该条原则的,好让读者可以更好地对比一下用和不用这个原则所带来的不同影响是什么呢?

    所以,最开始我是想把这篇博客写成这样:只有6个原则的理论性知识。但是后来随着对自己的要求的不断提高,最后把博客写成了这样:6个原则的理论知识 + 12个Demo + 12个 UML 类图 + GitHub开源object-oriented-design)。

    原本这篇博客的排期只有<2个星期,但是实际上从开始学习到发布博客经过了4个星期。因为当时我还不会画 UML 类图,于是就花了一点时间学了一下。而且大多数Demo的场景是根据看过的示例举一反三出来的,也花了一点时间,因为我觉得只有自己想出来的才是自己的,自己理解好了,其他人看的也明白。

    我相信我今后的博客也会按照这个方式去写:可能有一个最初的规划,但是因为不断迫使自己做到最好,会不断地把博客写到更高的水平。

    其实我也不知道养成这个品质的原因究竟是哪一个,可以说是为了粉丝量,提高影响力,也可以说是为了分享知识,也可以说是为了想自己学好,我觉得可能每个都有吧,但是这些可以归纳总结出一个点来:那就是对我和对粉丝(读者)的负责。所以也可以说是这种对所有人的责任心养成了这个品质吧。

    那么为什么说这个品质是我最大的收获呢?因为这个品质不仅仅影响了我写博客这单单一个方面,它还在影响这我工作、生活的方方面面,包括现在,也包括未来

    举一个生活中的例子: 有我微信的朋友都应该都知道我在减肥,因为我在9月中旬的时候立了一个Flag:每瘦5斤就会发一张当时显示当时体重的照片。现在是12月初,到现在经过了2个多月,这种照片我一共有4张了(包括第一张),也就是说我已经瘦了15斤了,而且还在变瘦,昨天称了一下,体重是73公斤,比最初的体重82公斤少了9公斤,也就是18斤。所以说再过一周我应该可以再发一张照片了,纪念我瘦的第四个5斤。

    看到我发了这几张照片之后,陆续有很多朋友问我是怎么减的。我在这里简单说一下:训练以无氧训练(举铁)结合 HIIT 运动的方式,时间比例大致为5:1(我几乎从来不跑步,因为跑步的减脂能力很低效)。工作日的午餐晚餐基本都是吃沙拉,但都是高蛋白高碳水的沙拉,沙拉酱只用油醋汁,因为普通的沙拉酱热量太高了。沙拉都是用的外卖订的。从9月中旬到现在一共吃了100+顿了,偶尔周末会吃一点油腻的东西。但是每天的早餐一定是吃牛奶和全麦面包,不会吃煎饼或者肉包那些带油的东西。

    如果按照计划下个星期结束的时候我可以瘦到72公斤的话,那么从减肥开始到目前为止就是用了11个星期(不到3个月)瘦了20斤,平均每个星期瘦了将近2斤,这个成绩应该算不错了。

    因为我觉得既然是花时间做这件事情,就要做到最好:从运动的强度以及饮食的搭配都要做到最好。

    • 虽然是在运动,但是一日三餐还是老样子,没有规划,这不算做到最好;
    • 虽然吃得很少,但是运动强度也很低,每天花费大量时间去低速跑步,这也不算做到最好。

    毕竟工作比较忙,也需要时间和精力;运动也需要尽全力去做,以最短的时间达到最好的成果,早日练出更好的体质,对后面的工作也有帮助。

    其他的一些例子就不举了,总之我很高兴写博客带给我的这一个品质,这个收获也是我最想分享给大家的,而不是其他表面上的收获粉丝,影响力之类的,因为某个品质会影响做的有关的所有的事情。

    回答一些朋友(或粉丝)的一些关于写博客的几个问题

    在本篇最后,我来分享一下一些经常被朋友(或粉丝)经常问我的关于写博客的几个问题,以及我的回答是什么。

    写博客应该很花时间吧,你如何平衡工作和学习的?

    这个问题还有一个类似的问题就是“你是如何做到这么高产的?”

    其实高产倒谈不上了,我只是一直在坚持写而已,而且今年的博客数量较前两年来讲还是比较少的。

    关于这类问题我的回答有两点:

    1. 写博客确实很花时间,但也不是很花时间。
    2. 因为我的博客多数其实来源于工作内容相关的学习笔记。因此并不需要花费太多心思来去平衡工作和学习。

    关于第一点:

    • 为什么说写博客花时间呢?

    这里说的花时间,是指时间的总量:因为写一篇高质量的博客所花费的总时间确实很长:为了可以让读者有所收获,你需要从内容,措辞,配图,排版等多个方面下功夫,而这些地方都是需要花时间的。

    • 为什么又说不是很花时间呢?

    因为如果你可以善于利用碎片时间,就可以把大量的大块时间分散掉,因此实际上是节省了时间。而且我的博客基本都是来源于平时的学习,而平时的学习又是和工作相关的,所以边工作边学,其实博客也就完成三分之一了。

    下面举一个我自己的例子:

    其实我的大部分的博客的原型就是我的学习笔记。既然是学习笔记,那么就肯定不是一气呵成的,它需要不断地通过学习来积累,可能跨度上需要几个星期。比如看一本书的时候,看过的章节可以记一下笔记,但是不会每天花费大块时间来做这件事,坚持小步快跑,几个星期就可以搞定一本书(或者第三方框架的源码)的笔记。

    笔记做好了之后,就可以添加一些内容,将它转化为博客。添加的内容可能是配图,递进的语句,总结性的语句(这些也可以平时复习笔记的时候添加)。而这些操作可以不需要花费太多的精力来做,因为有关的内容已经通过笔记提炼一次了,你需要做的只是让笔记变得更加容易被其他人理解

    那么既然不需要花费太多精力来做,你就完全可以利用碎片时间来做这些:比如排队,等电梯的时间,等地铁的时间,工作日的晚上休息时间,周末看完一场电影后的休息时间等等。 我为了可以随时复习和修改笔记,将笔记放在了有道笔记和evernote里面,所以即使在外面也可以不断修改和提炼笔记和博客。而且在平时走路的时候(确保周围环境安全的前提下)也会反复推敲自己写的东西,看是否可以写得更好等等。

    我觉得善于利用碎片时间是时间管理上很重要的一环,这一点在大学时读《暗时间》的时候对我就很有启发,直到现在我对作者刘未鹏将人的大脑比作CPU的那段文字的印象仍然非常深刻。

    刘未鹏先生是一位优秀的软件工程师,这本书对我个人的影响非常大,也推荐大家来阅读。

    说了这么多,其实上面的文字可以总结为两点:

    1. 博客来源于学习,而你的学习如果来源于工作上的学习和总结的话,那么等你学完,总结完之后,博客其实也就已经完成了三分之一了。
    2. 博客并不是一气呵成的,它需要反复提炼,而且也不需要每次都花费大量的大块时间来做,毕竟对于已经上班的人来说不会有太多大块时间来学习。如果你善于利用碎片时间,就可以将时间总量打散,利用那些原本你要浪费掉的时间,从而起到节省时间的作用。

    我觉得你的学习能力很强,学得很快;你的学习方法是什么?

    这里首先需要澄清一个事实:

    说实话我觉得我的资质还是很一般的,而且学习方法也不见得很高明。之所以会给其他人诸如这个问题的这种错觉是因为我在背后其实是利用了大量的时间来学习,写博客的;也就是说在同样的时间内,我相信那些资质更好的人会比我学得更好。

    为什么说我有大量的时间来学习呢?

    因为这3年来在休息的时间基本没有去远一些的地方玩过,也没有玩儿过什么游戏(吃鸡只玩儿过3局,LOL和农药没玩儿过),社交活动也不是很多,只是和特别熟的朋友以及家人聚过。因此虽然资质不及别人,但是学习的时间我相信还是比一部分人多的。

    上面说的是时间,至于学习方法,我可以简单介绍一下,因为其实本来我也没有太高深的技巧。

    我个人使用的一个学习模型可以参考下图:

    根据上图的流程指向大家应该知道各个节点之间的关系了,下面我分别介绍一下每个节点都做什么:

    选取学习主题

    其实我个人觉得选取学习主题对于每个阶段学习的重要程度是非常大的,因为它会决定你在短期之内的学习质量以及学习成果。

    为什么这么说呢?

    • 因为如果学习主题选择得过于难,那么会很容易打击学习积极性,会很难坚持下去;
    • 而如果选择的学习主题过于简单,虽然学起来很快,但是可能实际对技术上的提升没有太大帮助(当然会有一些需要紧急学习,但是内容简单的东西,这类事情优先级比较高,即使是过于简单也可以先学会)

    因此,我认为在选取学习主题时:在优先级差不多的几个学习主题中选择的话,你需要选择一个相对于你现在的水平来说“比较难学会”的主题来学习。比较难就是说不简单但是你还是可以搞定的。这样一来,如果你完成了学习,不但可以在技术上有一小步的提升,还可以增强自信,带着这份自信进入下一轮学习。及时短时间内完不成,你也可以慢慢来,因为毕竟对你来说并不是不可能,你不会轻易放弃。

    收集多种高质量的资料

    横看成岭侧成峰, 远近高低各不同

    在学习主题定下来之后,你就需要选取相关的学习资料了。我个人的习惯是选取多种,高质量的资料。比如在学习设计模式的时候,我会找到很多讲解的比较好的博客,教程以及经典书籍同时一起看:

    因为不同的人可能对同一个事物有不同的看法,所以通过阅读,整理多个人对同一事件的描述可以让自己更深刻,更多角度地理解这个问题,然后再结合自己的理解,就会理解的很快,也比较透彻。

    高质量这一块就不用多说了,选资料的时候肯定是选那些权威,口碑佳的内容。

    做笔记

    好记性不如烂笔头

    做笔记不仅仅是为了记录知识,更重要的是知识信息的质量。因为已经记录下来了,后面可以反复查阅和琢磨,不断提高对知识的理解程度。

    关于笔记的内容:

    记笔记的时候不能一味地摘录和复制粘贴:虽然可以在开始的时候这样做,但是后面一定要加上自己的理解,而且这些自己的理解所占的比重应该在笔记里面越来越多才是,因为只有自己说的才是你自己的。

    关于做笔记的方式:

    做笔记的方式有很多种,我个人比较喜欢有云功能的笔记软件,比如有道笔记和evernote,这两个都支持多端。平时在外面也可以在手机上面修改和阅读。

    复习,总结

    温故而知新,可以为师矣

    很多时候可以通过复习来体悟出更多的内容,而且复习也可以避免忘记知识,一举两得。复习的时候无论是否有新的想法,都要尝试自己是否还可以再总结出什么新的东西来,这也可以帮助自己对知识理解的更好。

    就比如之前学设计模式的时候,当时觉得自己对适配器模式比较了解了,但是当自己假想一个场景并实现的时候就觉得自己对这些角色之间的关系理解的并不是很透彻。所以只能不断去思考,动手去画图,才真正可以将一个假象的场景准确实践出来。

    实践

    实践是检验真理的唯一标准

    “不知道自己不知道”是比较危险的一件事情,有的时候我们可能会觉得这个知识点完全理解了,但是当到实际操作中可能会出现各种各样的问题。 因此,在理论学习之后,需要去用实践来验证我们的理解是否正确。如果有这个条件最好,但是如果没有这个条件,我们就需要创建条件去做。

    反馈

    不能只是实践就结束了,实践的结果要知道是对是错。而且无论对还是错都要总结一下原因是什么,还有什么可以改进的地方,总结之后放在笔记里面,形成一个循环。

    如何写出一篇好(受欢迎)的技术文章?

    这个问题多数来自于一些准备打算写博客或者是一些已经写博客但是感觉写出来的博客受欢迎程度不如预期的朋友们。

    如果将这个问题完全展开来说,我应该可以写出非常多的内容,但是因为这一部分不是本文章要分享的重点,所以就不完全展开说了。

    如果给我反馈表示感兴趣的朋友比较多的话,我后面就会专门写一篇文章分享一下,有这个意愿的朋友可以在下方留个言。

    那么在本文中,关于这个问题我想说的是:文章的受欢迎程度很大程度上取决于你是否真的致力于把你的知识分享给别人

    有些人写博客是写给自己的,当做一种笔记来保存;有些人写博客的目的除了写给自己,还包括让别人去看自己的文章。而无论是写给自己还是写给别人,一旦你的博客放在了公开的平台上面,其实就是在分享你的博客,你的知识。

    因此,如果你写博客只是写给你自己的,你需要经常问自己:我真的理解自己写的东西么?

    如果写博客还为了分享这第二个目的,你还需要经常问自己:读者看自己写的东西,会很容易理解么,真的会有收获么?

    其实我上文中也已经说过,我把博客写好的的动力来源是对读者,对我自己负责。写出一篇对自己,对读者负责人的博客,是对双方都是有好处的。

    有了这个中心思想以后,在行动上就会不断鞭策自己写出更好的文章,自然而然你博客的质量以及受欢迎程度就会越来越高。

    除了内容的质量之外,其实博客的深度以及主题也影响着博客的受欢迎程度。“阳春白雪,下里巴人”大家应该都听过。即使是内容特别好,但是文章深度非常深,很少人能理解的话,可能受欢迎程度会很不如预期。但是这一点不与上面讨论的点冲突。

    最后还有一点就是所谓的标题党:虽然内容比较差但是标题引人入胜的文章可能阅读量会很高,但是这并不代表它真的受欢迎。我个人并不是很推崇这种方式,我还是比较喜欢和文章内容非常契合,中规中矩的文章标题的,大家观察我的博客应该可以发现我博客标题的特点,一般是没有多余的字的。

    OK,到这里我的所有心得就分享完了,希望无论您看完这篇文章之后是打算写还是不写博客都能会对您有所帮助。

    我觉得在文章结尾还是要多啰嗦两句:我这里没有说只要做技术的人就一定要有技术博客,也不是呼吁所有做技术的人都去写技术博客。

    因为每个人的自身情况不同,选择什么样的方式也是自己的自由。但是无论怎么样,我们都希望自己所在的(技术)环境能更好不是么?这也是我写这篇文章的核心目的。

    可以了解我的一些渠道

    下面是我的一些博客平台,GitHub,以及公众号的链接,想进一步了解我,或是想看我的技术博客的朋友可以从这些渠道进入。

    特别需要说的是公众号里面除了会发一些技术文章以外,还会有一些个人思考和技术&非技术的读书笔记。

    本篇已同步到我的个人博客:我从写技术博客中收获到了什么 - J_Knight_

    展开全文
  • 读源码貌似和我们遥不可及,因为日常工作中,我们基本掌握熟练的程度上,就能够满足工作需求,即便是想看源码,也会被源码复杂的逻辑拒之门外,成为我们心中挥之不去的阴影。那么我们真的有必要阅读源码吗? 我...

    一 前言

    说到源码,大家脑海里可能浮现出四个字 我太难了😂😂😂。读源码貌似和我们遥不可及,因为在日常工作中,我们基本掌握在熟练的程度上,就能够满足工作需求,即便是想看源码,也会被源码复杂的逻辑拒之门外,成为了我们心中挥之不去的阴影。那么我们真的有必要阅读源码吗? 我以一个过来人的角度看,答案是肯定的,阅读源码不只是停留在源码层面,它还会带来一些附加的价值 。

    笔者读过很多源码,比如 主流前端框架 vue2.0,vue3.0,reactnode框架 express , koa,和它们衍生生态 react-router,react-redux , dva 等等。 要说在阅读源码的过程,痛苦么?我感觉过程是痛苦的,但是读完之后,就会感觉收获颇丰,感觉付出都是值得的。接下来我们一起探讨一下,阅读源码那些事。

    二 为什么读源码?

    1 为了面试

    一场面试题的思考?

    假设这是一场面试。

    面试官:说一下vue2.0响应式原理 ?

    第一位应聘者:object.defineproperty()拦截器属性,拦截set, get

    打分:4-5分 这样的答案似乎很难说服我,只能证明面试者对这个知识点有备而来。

    第二位应聘者:在第一位基础上,说出了收集依赖的dep对象,负责渲染更新的渲染watcher,递归响应式等等,并能够介绍它们的原理和作用。

    打分:6-7分 这样的答案,已经很符合标准了,至少说了vue响应式的核心,说明应聘者至少深入了解过。

    第三位应聘者:一方面从初始化 data 开始,到解析 template 模版,进行依赖收集。另一方面能够从 data 改变,通知渲染 watcher 更新,到页面变化,把整个流程说明白。

    打分:8-10分 这样的答案,是非常完美的,能够从源码角度入手,说明应聘者很深入原理,读过源码。

    从一道面试题,就能看出一个应聘者的对于框架的认知程度。而阅读源码就是从底层开始全方面认识框架的最佳方式。而且如果把源码搞得明明白白。可以让面试官刮目相看。甚至能够‘吊打’面试官😂😂。

    2 更清晰的运用框架

    阅读源码的过程中,能够了解底层是怎么运作的。如果在工作中遇到某些问题,如果读过源码,就会找到办法,问题也就会迎刃而解。

    一个bug案例引发的思考
    之前见有同事遇到过这么一个问题。

    <el-select v-model="value" >
      <el-option  
        v-for="(item,index) in list" 
        :key="index" 
        :value="item.value"
        :label="item.label"
       />
    </el-select>
    

    可能业务场景要比这个复杂,大致是如上这么样的。出现一个问题就是,每次改变 list ,然后重新选择 option 的时候,会发现绑定的 value 数据改变了,但是视图没有发生变化

    如果没有对 vuediff 算法有一定了解,肯定会对这个现象一脸蒙蔽,明明数据已经改变了,但是视图为什么没有变呢?what?

    如果看过 diff 算法,和子节点 patch 过程的同学,就会发现,这个问题主要来源于,用 index 作为 key ,在一次更新中,虽然数据改变了,但是根据 index,复用了错误的元素节点,导致了视图和数据不对应的情况。

    对于框架或者开源库,如果我们在使用中遇到了问题,与其在 GitHubissue 等待解决,不如亲自去看看源码,也许答案就在其中。正所谓蓦然回首,那人却在灯火阑珊处。

    3 提高编程能力,拓展知识盲区

    我个人觉得,阅读源码绝对是提高变成能力,拓展知识点的捷径。为什么这么说。我们先看两短经典的代码片段:

    no 1 redux compose

    export default function compose(...funcs) {
      if (funcs.length === 0) {
        return arg => arg
      }
      if (funcs.length === 1) {
        return funcs[0]
      }
      return funcs.reduce((a, b) => (...args) => a(b(...args)))
    }
    

    这是前端领域经典的中间件案例,代码精简,却堪称神来之笔。我们可以学习源码中的,编程手法,即使写不出如上这么经典函数,也能明白什么时候使用继承,什么时候用闭包

    在阅读源码过程中,会有很多高级用法和我们很少用到 api , 我们可以有效对知识点进行扫盲。

    no2 vue3.0

    vue3.0 /reactivity/src/reactive.ts

    const rawToReactive = new WeakMap<any, any>()
    const reactiveToRaw = new WeakMap<any, any>()
    const rawToReadonly = new WeakMap<any, any>() 
    const readonlyToRaw = new WeakMap<any, any>() 
    

    vue3.0 中做保存依赖收集关系的几个 WeakMap ,引发了我对 WeakMap 以及垃圾回收机制的思考? WeakMaps 保持了对键名所引用的对象的弱引用,即垃圾回收机制不将该引用考虑在内。只要所引用的对象的其他引用都被清除,垃圾回收机制就会释放该对象所占用的内存。也就是说,一旦不再需要, WeakMap里面的键名对象和所对应的键值对会自动消失,不用手动删除引用。

    阅读源码,一方面有助于我们写出诗一样的代码,另一方面,扩充了我们的知识面。总之,真香

    4 培养设计思维和架构能力

    优秀的源码有着纵览大局,运筹帷幄的思维,和中流砥柱的架构能力,这对一个正在进阶或者正打算进阶的工程师来说,是最缺少的。

    也许你疯狂的补习这知识点,疯狂看这博客,疯狂刷着编程题,但是接手一个大的工程项目的时候,还是会手足无措,最后搞得一塌糊涂。这是为什么呢,也许就真的是缺少那么一丢丢设计思维和架构能力。

    人生的三种境界和阅读源码的三种境界是一样的。慢慢的自己编程能力会受到潜移默化的影响。

    当你刚开始看源码的时候,看自己的代码还是自己的代码。但是慢慢的,你会发现自己写的代码,受到了源码的影响,已经不像是自己最初的样子,当你日复一日的坚持,你就会明白源码真正架构设计,并能够自己设计架构,代码中有了自己的灵魂,你会发现自己的代码还是自己的代码,原因是自己进步了,能够有能力去把控全局。

    三 怎么样读源码

    上面讲述了阅读源码的好处,接下来我们讲一讲怎么有效阅读源码。

    1 化整为零

    冰冻三尺,非一日之寒,阅读源码也不是一朝一夕的事情,我们要有计划的去阅读源码。一天抽出时间看一点,然后重点记笔记,可以是 md,可以是手写的笔记,总之要把核心内容记录下来,因为一是好记性不如烂笔头,可以加深我们的印象。二是在每次阅读之前,都把上一次的笔记拿出来看看,做到完美的衔接。把整个源码分割成多个模块,一点点去消化,不要想着一口气把源码看完,这个是不现实的。

    这是笔者在做vue3.0源码阅读解析过程中记录的笔记。

    react源码阅读解析过程中,记录的笔记:

    2 三思而后行

    这个是笔者阅读源码的精髓所在。三思而后行,在阅读源码的时候先问几个为什么?带着问题去看源码会起到事半功倍的效果,为什么这么说呢?如果不带着问题阅读,就会处于一种无目标,盲目的状态,在这种状态下,尤其看无聊和繁琐的源码,就会精力不集中,长时间就会犯困,无法坚持下去。

    在阅读源码之前,首先想几个问题,带着这几个问题去源码中找答案,

    例子🌰一:

    vue3.0响应式原理之前,先提几个问题:

    • 1 vue3.0怎么构建的响应式,reactive API到底做了什么?
    • 2 effectreactive 是什么关系?effect 如何取代 watcher ?
    • 3 如何收集的依赖?
    • 4 通过 this.a 改变,是怎么做到视图对应更新的。

    例子🌰二

    在阅读 react-redux 的时候,我会先提这么几个问题:

    • 1 为什么要在 root 根组件上使用 react-reduxProvider 组件包裹?
    • 2 react-redux 是怎么和 redux 契合,做到 state 改变更新视图的呢?
    • 3 provide 用什么方式存放当前的 reduxstore, 又是怎么传递给每一个需要订阅 state 的组件的?
    • 4 connect 是怎么样连接我们的业务组件,然后更新已经订阅组件的呢?
    • 5 connect 是怎么通过第一个参数mapStateToProps,来订阅与之对应的 state 的呢?
    • 6 connect 怎么样将 props,和 redux的 state 合并的?

    带着这些问题去阅读源码,就会在源码中仔细去寻找这些问题的答案,如果找到了答案,并解释了原理,也会有不错的成就感。

    3 提炼精髓

    这一步对于阅读源码也是非常重要的,我们要学会提炼源码的精髓,以 react 为例子,react 个别函数,可能几百行,甚至上千行,但是除去服务端渲染,开发环境的警告 __dev__ ,context 上下文的处理,和一些判断等等,真正的核心逻辑代码,也许就那么几行和十几行,所以我们不需要去扣源码中的每一行代码,只需要搞清楚核心逻辑就好。

    我们拿react源码为例子:

    react/react-reconciler/ReactFiberClassComponent.js

    这个文件下,有一个 constructClassInstance 方法,用于 new 我们的组件实例。这个方法大约有 200 行左右,但是我给它进行提炼之后,代码如下

    function constructClassInstance(
      workInProgress, // 
      ctor,    // 我们的 component 
      props,  //  组件的 props 
    ){
      /* 这里实例化 我们的component */
      const instance = new ctor(props, context);
      /* 给当前 组件实例 ,挂上 updater 对象,用于组件渲染更新 */   
      adoptClassInstance(workInProgress, instance);
    }
    

    核心的代码只有这区区几行,所以在阅读源码的流程中,提炼精髓也是十分重要的。

    4 真枪实弹

    实践是检验真理的唯一标准。如果想搞清楚源码,不要单独停留在的层面,也要真正去一遍源码。 这样一来我们可以在 github ,克隆下来源码。然后在关键的上下文,可以 debugger 或者 console

    步骤如下:

    github 下载文件。

    然后进行debugger或者 console。

    接下来把源码单独抽出来,打包。

    放入我们的demo项目进行验证。

    此时我们要改变一下路径。因为原来我们的 package 是放在 node_modules 中的,现在路径改了,所以注意路径问题。

    5 因材施教

    并不是所有的框架源码都需要一个固定的模式去解析的。这一点笔者就吃了苦头。我们先来说一下背景。

    笔者在阅读 vue2.0,采用集中式阅读,就是从new Vue为入口,然后逐步向代码深层去挖掘。最后将各个模块串联起来。

    在阅读完vue2.0的核心原理后, 想要以同样的模式去阅读 react,发现此方案根本行不通,因为react 有很多模块,比如 react, react-reconciler ,react-dom,scheduler,有好几千个函数方法,看着看着就蒙蔽了,即使 debugger ,效果也是甚微,无法把各模块功能串联起来,形成体系。

    后来,开始阅读一些大佬的文章,先明白每一块干了些什么,有什么作用,然后一块块的串起来。最后再去阅读源码,发现效果甚佳。

    案例: vuereact

    vue 集中式阅读源码

    vue 源码适合集中式阅读,就是从 new vue() 开始,到初始化 data ,建立响应式 ,patch 元素节点,解析 template 模版,注入依赖,挂载真实 dom ,一气呵成,一条线串起来。

    react 发散式阅读源码

    react 需要一种发散式的阅读方法,就是你需要先明白,reconciler,scheduler,expiration time,请求关键帧等等,具体是干什么的,有什么作用,然后像搭积木一样,把它们搭起来。

    6 水滴石穿

    把值得做的事坚持下去,再把坚持做的事努力做好。 既然选择阅读源码,就要坚持下去,笔者刚开始看源码的时候也是很痛苦,曾经几度想放弃,但是后来按照上面方法,坚持下去,终于养成了好习惯,现在完全能够注意力集中的阅读源码,而且过程感觉也不像当初那么无趣。

    听说过21天效应,如果一天一天坚持下去,用不了多久就能养成一种阅读源码的好习惯,相信那个时候,我们比如尝试用一个新的 package 的时候,忍不住先去 github 上拉下源码瞧瞧。

    四 收获与总结

    关于收获

    看源码的习惯坚持了差不多二年了,收获感觉还是蛮多的,首先无论是从知识储备还是编程写法或者设计架构上,都有很大的进步,也尝试了写了自己的开源项目,并下定决心好好维护下去。

    rux 一款redux和react-redux状态管理工具

    react-keepalive-router缓存页面路由

    总结

    以上就是我在阅读源码过程中的所感所悟,路漫漫其修远兮吾将上下而求索,在阅读源码的路上,能坚持下来,将会有一片美丽的风景。

    手留余香,阅读的朋友可以给笔者点赞,关注一波 ,陆续更新前端超硬核文章。接下来将写一篇react-redux源码文章。

    微信扫码关注公众号,定期分享技术文章

    在这里插入图片描述

    展开全文
  • 程序员:写作能收获什么

    千次阅读 2020-09-14 11:45:32
    简介:很多程序员已经通过自己...很多人觉得写作是一件有难度的事情,其实写作的动机就藏日常工作中,那些酝酿中的奇思妙想,那些稍纵即逝的编程思路,那些金光闪闪的 debug 瞬间……都是写作的素材。输出是最好的

    **简介:**很多程序员已经通过自己的个人博客或者公众号来进行技术沉淀,记录自己的成长。越来越多的程序员们也开始意识到了写作的重要性。程序员为什么需要写作?写作能带来什么收获?又有哪些额外的惊喜?本文介绍三位长期坚持写作的程序员,分享他们在写作道路上的心得和收获,希望对同学们有所启发。

    image.png

    你有写作的习惯吗?很多程序员的回答是:我为什么要写作呢?很多人觉得写作是一件有难度的事情,其实写作的动机就藏在日常工作中,那些在酝酿中的奇思妙想,那些稍纵即逝的编程思路,那些金光闪闪的 debug 瞬间……都是写作的素材。

    输出是最好的输入,养成写作的习惯,对技术提升和个人成长都有很大的帮助。改变世界的程序员,同样需要写作记录世界。如果你还没有开始写作,那你可能需要重新思考“写东西”这件事的意义。

    今天,我们采访了 3 位坚持写作的程序员,看看写作给他们带来了什么。

    • 寒雁:阿里巴巴前端技术专家,连续 5 年更新博客
    • Hollis:阿里巴巴技术专家,20 万粉丝公众号号主
    • Frank: Wuhan2020 开源项目发起人,个人博主

    我为什么要开始写作?

    Hollis: 写作让我思考,与志同道合的朋友讨论技术

    2015 年毕业后,我加入了阿里巴巴从事后台开发工作,也是这一年,我写了第一篇文章,内容是我参加阿里校招之后总结的“面经”。因为在找工作之前复习的阶段,我看了很多其他人的面试总结,给了我很大的帮助。写这篇文章一方面想要对自己的校招做一个总结,另一方面也希望帮助到其他人。

    从这篇文章以后,我收到了很多评论,还有很多人私下找到我讨论技术,我发现写作给我带来了很多的乐趣。通过写作我可以进行自我思考、自我总结,也可以和志同道合的朋友们一起讨论技术,所以我开始坚持写作。

    最开始写的内容都比较简单,只是记录一些工作中遇到的问题的总结,渐渐的我开始主动去学习一些东西,然后文章内容逐渐演变成原理分析、最佳实践等。

    一开始文章只是发表在自己的博客中(hollischuang.com),后来一次偶然的机会,我发现公众号上面的读者可以有更多的互动,于是就把自己的文章同步到公众号(Hollis)中,现在公众号已经积累了将近 20 万的读者。

    去年还把自己写过的一些内容整理出来,和朋友一起出本了一本书《程序员的三门课》,在书中写了很多自己的经验和思考。

    寒雁:写作是我的工作日志,可以帮助产品带来用户

    作为程序员,我们每天都会遇到各种各样的技术问题,而我在遇到棘手一点的问题时,并不会急着去解决问题,而是会把问题记录清楚,包括代码、报错日志、截图,甚至解决问题的过程和一些参考链接。这些内容再加上一些原理层面的知识点,一篇记录问题的工作日志其实也就是一篇博客。所以,我刚开始写的博客,也就是这种类似于工作日志的内容,还是挺简单的。

    后来,研究生毕业后,我选择了和朋友一起创业。前期不太懂运营,用户增长不知道怎么做。后来发现自己写博客还是挺擅长的,能给产品带来不少用户,于是就养成了写作的习惯。

    翻译过不少博客,也原创了不少,写过一些挺受欢迎的博客,也写过一些很幼稚、类似于标题党的内容。不过整理来看,写作水平一直有在提高。来阿里之后,我写了一篇《写作的意义》,也在团队做了一次关于写作的分享《关于写作的那些事:寒雁聊聊 10 万+背后的思考》。我是真的挺喜欢写作的,也觉得写作收获蛮大的。

    Frank: 我用写作记录开发“黑科技”,分享我的想法

    时间回退到四年前,毕业后成为了一名游戏开发工程师,进入了一个全新的领域,每天都在接触新的东西,而且游戏开发中有大量互联网常规开发中难以见到的“黑科技”,令人目不暇接。从那时起,其实就一直有写作的习惯,由于很多技术细节并不适合对外,所以当时是使用很多笔记类软件进行记录的,例如印象笔记。

    后来开始在开源圈中进行一些开发工作,依然保持着印象笔记来记录自己工作内容的习惯,但由于开源的开放性,很多时候也非常希望可以把这些想法和内容分享出来,于是博客就成了一个更好的选择,也是为什么现在选用博客 (blog.frankzhao.cn) 来做写作记录的原因。

    程序员写作有什么好处?

    寒雁:写作是对自己的长期投资,也是最佳个人品牌

    写作是一件具有长期价值的事情,这一点类似于健身与读书。我想大多数人都认同,不管工作再忙,也应该坚持健身,坚持读书,因为这是对自己的长期投资,不少人也是这么做的。在我看来,写作其实也一样,只是很少有人会意识到这一点,更少人可以做到这一点。

    提升工作效率

    写作最重要的职业技能。我挺喜欢写工作日志的,从另一个角度理解,我每天的工作并不只是在写代码,而是在写工作日志,比如技术问题、技术方案、沟通备忘录、会议纪要等一切与工作相关的内容我都会记下来。在与同事沟通或者寻求帮助之前,我都会写一个完整的文档,这样沟通会高效很多。

    写作即是学习

    写作是最有效的学习方式。这里原理是费曼学习法,通过输出倒逼输入。因为我们在写作过程中会发现自己的一些知识盲点以及思维盲区,如果可以静下心研究清楚,然后用最通俗易懂的语言表达出来,这其实是很好的学习和提升自己的机会。写作其实挺锻炼思考能力的,因为表达一个观点相对简单,如何将观点论述地清晰、完整、深刻,结构化地表达出来,取决于我们是否真的想清楚了。

    创建个人品牌

    写作是最佳的个人品牌。互联网已经 30 岁了,但是它的游戏规则其实没变:通过流量变现。文章写得好,有读者就有流量,有流量就可以变现。自媒体时代很多“草根”作者崛起,也是这个道理。现在是视频时代,表达内容的媒介变了,但是本质没变,因为视频内容的含金量取决于文案。作为程序员,没有必要去靠写作赚钱,但是通过写作打造个人品牌还是挺重要的,这对于求职、招聘、同行交流以及未来创业都很有帮助。

    Frank:写作让你换一个角度发现问题的全貌

    就我本人而言,工作的前几年都以记录技术为主,但后来,尤其是近一年读博的期间,可能更多的写作发生的社科类学科上。坚持写作有诸多的好处:

    记录技术成长

    写作可以让自己更好的记录技术成长的历程,时常回顾会有更多的成长。虽然我本人现在已经不再做游戏相关的开发工作,但我很庆幸自己当初有大量的笔记可以让我回顾一些技术细节和设计理念,这些理念事实上在很多场景下都是通用的,可以很好的指导之后其他领域的开发工作。

    换一个角度发现问题的全貌

    很多时候你以为你明白了一个技术要点,但当你用文字去表达的时候你会发现有很多的盲点你可能都忽略了。例如你解决的是工作中的一个具体问题,当你解决了这个问题时,你以为你明白了。但当你用文字记录时,尤其是你把自己放在一个读者的角度去阅读时,才会发现你忽略的东西,例如具体的环境、版本,出现问题的情景、依赖等,当用文字去记录时,就会刻意补足这些内容,而这些才构成了解决这个问题的全景。而且就我个人感觉,记录过程中的成长可能要比单纯解决问题中的成长大得多。

    提升写作能力和逻辑编排能力

    写作能力绝不仅仅是一个文字工作者需要,尤其在这个愈加开放的时代,写作是通过的基础。练习写作能力,不仅可以帮助你更好的与他人沟通,而且也是一种梳理逻辑的过程。好的技术文章同样需要有优秀的逻辑编排,由浅入深,层层递进。而且相信我,这是任何工作,也包括一般的程序员工作中非常重要的一种能力。

    分享让你的文章“升值”

    如果你写的文章与他人分享,则这个文章的“价格”会比个人获得的更多,帮到其他的人的感觉会更好。在研究生之前,我曾有机会修改 JavaMail 的源码,使其支持需要基本认证的 HTTP 代理服务器进行邮件操作,而当时的 JavaMail 还仅支持 Socks 代理服务器。直到现在,我还是会偶尔收到有人邮件询问我实现细节,我能感受到我在真正的帮助他人。但可惜当时不了解开源,否则应该可以帮助到更多的人。

    Hollis:写作提升技术能力,可以帮助更多人

    技术提升

    写文章的过程中,自己会想办法保证写出来的内容都是正确的,所以就会查阅很多资料,这个过程中,自己就会学习到很多知识,可以很好的提升自己的技术能力。尤其是写系列文章的时候,可以很好的完善自己的知识体系。正所谓“教是最好的学”。

    不断纠错

    没有人写出来的东西都是完全对的,所以有的时候写完的文章会收到一些不同的观点,这时候就可以帮助自己纠错,不断的提升自己。

    帮助自己更好地记忆

    很多人都会发现有一种现象,就是一个知识自己学过之后过段时间就忘了。有了博客之后就可以解决这个问题,可以把知识以自己的理解写到博客中,一方面可以加强自己的理解与记忆,另外也方便日后回头翻看与复习。

    提升个人影响力

    因为自己写作,可以大大提升自己在行业内的影响力,因为自己写了很多文章,有很多程序员都看过我的文章,我曾经大致统计过,我的技术文章,在全网的阅读量有数千万。最近几年,经常有公司的同事过来问我:你是不是Hollis?原来你就是Hollis?我看过你的文章等等。

    帮助他人成就自己

    在自己刚刚接触 Java 不久的时候,一直想找到一份学习路径,但是一直都没有找到,于是自己就利用业务时间总结了一份 Java 工程师的学习路径——《Java工程师成神之路》。这篇文章现在上百万人读过,我也接到很多留言,都说对他们帮助很大。最近两年,经常有读者在我的公众号和博客后台留言,说自己因为看了我的文章找到了某大厂的工作等等的好消息。看到自己的一点点努力,可以帮助到很多人,开始很有成就感的。

    写作给你带来了什么额外惊喜?

    寒雁:更好的职业发展以及对世界的认知

    我之所以来阿里,也是因为我的文章,因为是主管看了我的博客,了解了我做的产品,然后邀请我来面试的。其实我自己去招人也是这样,如果你的博客写得足够好,我也会特别留意。

    写作让我的阅读能力也明显提高了,在信息爆炸的时代,如何甄别真正值得阅读的内容还挺重要的,我可以在极短时间内判断一篇文章的层次,然后决定是否认真阅读。另外,因为我自己熟悉写作的套路,因此知道哪些话是真正有价值的,哪些话只是作者的话术,哪些要点是作者漏掉了。

    Hollis:交友、招聘以及出书

    因为写作,我认识了很多志同道合的朋友,他们很多人都是做程序员的,同时也是专业书籍的作者、知名博客的博主等。还有很多读者来自于各个互联网公司,有着不同的背景,有些都是工作经验比较丰富的大牛,和他们交流的过程中,自己也能学到很多东西。

    因为我有自己有博客和公众号,又积累了很多读者,每次发布招聘信息都能收到很多简历,最近帮助团队招聘到了几个新的同事。因为我在一些招聘文章上面的昵称也是 Hollis,所以我遇到过几次,我在招聘网站上面“勾搭”候选人,都被人问:你是不是有个公众号?

    因为自己写博客有很多读者,所以经常有出版社的编辑找到我询问出版书籍的事情。之前也有朋友找到我想要一起出书的等。2019 年和朋友共同出版了一本《程序员的三门课》。在那之后,自己还出了多本免费的电子书:《Java 开发手册灵魂 13 问》、《Java 开发手册灵魂 15 问》、《Java工程师成神之路——基础篇》等。

    Frank:走上开源研究道路

    我个人可能是程序员中不太常见的比较喜欢社科类记录的同学,要说惊喜,不如说是潜移默化的改变。

    通过写作记录,逐渐加深对于社会科学的理解,对于人类写作历史的理解,是我最终走上开源研究道路很重要的原因。回头来看,每一个微小的习惯在长年累月中都会重新塑造自己,使你的人生走向一个完全不同的方向。而写作,或者说写作背后所代表的一种终身学习的态度,会给所有人都带来无限的可能。

    每一个程序员都应该尝试技术写作,一旦开始,你就会发现自己成长的速度在增快,你看待文字背后的世界会变得不同。每一个程序员也不应该仅仅局限于技术写作,对于世界、历史、人文的理解同样需要记录和分享,希望写作让你面向屏幕时,不止面向代码,更是面向星辰大海。

    原文链接:https://developer.aliyun.com/article/772232?

    狂送 4000 件限量T恤!参加体验活动:5分钟 Serverless 极速搭建博客

    推荐 PC端体验:https://developer.aliyun.com/adc/series/web/

    在这里插入图片描述

    **版权声明:**本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

    展开全文
  • 生活工作当中,我们经常会发现:为什么有的年轻人创业越做越大,有的年轻人创业却越做越小?为什么同时进入职场的年轻人,两三年后达到的高度可能相差甚远?一个优秀的年轻人,和一个普通的年轻人之间,到底有什么...
  • 谈谈目前工作收获和不足

    千次阅读 2013-03-09 17:12:11
    去年9月顺利找到一份工作,做MDS产品的服务器部分开发和维护工作。到目前为止也只是现有产品上实现功能(公司产品已经成熟,也只能现有产品完善和新加功能... 这个真心感觉自己收获蛮大移植遇到很多问题,
  • 作为一名 大、、小微企业都待过 的 Java 开发者,请允许我谈谈自己不同公司的工作日常和收获。包括一些个人积累的工作提升经验,以及一些 Java 学习的方法和资源。 先从我的第一份 Java 开发实习工作说起吧~...
  • 生活工作当中,我们经常会发现:为什么有的年轻人创业越做越大,有的年轻人创业却越做越小?为什么同时进入职场的年轻人,两三年后达到的高度可能相差甚远?一个优秀的年轻人,和一个普通的年轻人之间,到底有什么...
  • 望着车窗外飞驰而过的景色,想起这5天付出的艰辛与劳累,我得到了什么? 这5天当中,我认识了自己。 艰苦的训练,能够磨炼人的意志。对于我这样一个生活条件优越、从小没离开过父母的孩子...
  • 生活工作当中,我们经常会发现: 为什么有的年轻人创业越做越大,有的年轻人创业却越做越小? 为什么同时进入职场的年轻人,两三年后达到的高度可能相差甚远? 一个优秀的年轻人,和一个普通的年轻人之间,到底有...
  • 转眼间,我已经工作三年,但大学时光感觉还眼前浮现,工作还马马虎虎,比上不足,比下有余,没有多大成就,但也得到公司的些许肯定。研究生3年,学习JavaEE和网格计算,以为以后能JavaEE的世界里闯荡,结果...
  • 苏宁易购的收获

    千次阅读 2012-09-19 16:39:06
    考虑到自己并不想去外包公司工作,就想要推辞掉,不过对方没有放弃,细细的解说苏宁项目的技术要求什么的;此之后,我打算去尝试一下,心想,就当做增长面试经验.  他们推荐我简历,顺利的通过第一层筛选,就去苏宁...
  • 35岁前应该做好的十件事(源自网络,整理:成晓旭)35...已故零件大王布鲁丹他35岁时,已经成为零件行业的领袖,并且组建年收入达千万美元的海湾与西部工业公司。每个人年轻时都可能有过彻夜不眠、刻苦攻读,这20
  • 前段时间发放学习资料给予自学java的同学们,自学虽好,但是架不住没有老师讲解重侧点(实际上许多培训班的老师也是水分多多,甚至无实战经验),今天我就抽空把java零基础入门(六个月)的学习重点画出来,不...
  • 10.18收获记录

    2016-10-19 09:12:49
    1.今天在技术上面有...2.今天在工作上有什么收获? 工作的时候今天有充分利用时间,不去胡思乱想 和老板的沟通更加的自信,表达想法的时候就应该不怯场 3.今天在做事上有什么收获? 做事情的效率应该提高 和朋友沟通的时
  • 这是一段紧张而又充实的时光,此间收获与体会良多,现简述如下: 一、 技术层面 1、Cognos报表 初入团队,可以说对Cognos知之甚少,我的概念之她如同一张白纸,不清楚她是什么和能做什么。几个月以来,不但...
  • 随着社会的不断发展,我们生活的点点滴滴都与人工操作渐渐疏远,而更快的走向智能化,告别那复杂而繁琐的操作。同时RS485集线器复杂环境应用越来越广泛,是工业控制不可缺少组成部分,那么,什么是RS485集线...
  • 12月收获与体会

    2018-12-31 20:23:35
    遇到的问题: 本月在工作中遇到的技术问题及解决方法 收获体会: 本月在工作学习过程中,有哪些收获或者感悟体会,有哪些优秀点,继续坚持。 待改进的地方: 本月工作学习过程中,有哪些地方做的不好,以后需要改进...
  • 1月收获与体会

    2019-02-08 12:36:08
    遇到的问题: 本月在工作中遇到的技术问题及解决方法 收获体会: 本月在工作学习过程中,有哪些收获或者感悟体会,有哪些优秀点,继续坚持。 待改进的地方: 本月工作学习过程中,有哪些地方做的不好,以后需要改进...
  • 工作中的技术栈主要是 React + TypeScript,这篇文章我想总结一下如何项目中运用 React 的一些技巧去进行性能优化,或者更好的代码组织。性能优化的重要性不用多说,谷歌发布的很多调研精确的展示性能对于网站...
  • 前言我工作中的技术栈主要是 React + TypeScript,这篇文章我想总结一下如何项目中运用 React 的一些技巧去进行性能优化,或者更好的代码组织。性能优化的重要性不用多说,谷歌发布的很多调研精确的展示性能对于...
  • 工作中的一些感悟

    2019-12-21 17:05:51
    这过程技术和业务上的成长,多多少少都会有一些,但最大的收获,还是长见识。聊聊几点感受吧。 学会向上汇报 别只顾埋头做事,要做“对”的事情。 这是个人情社会,你的领导也只是普通人,他不太会有大把的...
  • 10月收获与体会

    2018-11-06 23:49:42
    自我学习: 本月在工作之余,学习了什么知识 收获体会: 本月在工作学习过程,有哪些收获或者感悟体会,有哪些优秀点,继续坚持。 待改进的地方: 本月工作学习过程,有哪些地方做的不好,以后需要改进。 自我...
  • 职场,你的领导总是会告诉你,只要努力工作,你的能力就会提升。 最终,大家的能力天差地别,我们总是会归因于智商碾压,运气好,机会多。 如果我们能够认真的分析,就会发现智商真的给他们提供多少先发优势吗...
  • 还是钟情于技术,业余时间学到的技术在工作中,用不到,慢慢的就荒废。自己也不知道学习点什么东西。各位博客园的大神前辈 有什么可以指导的不 转载于:https://www.cnblogs.com/q101301/p/4772666.html...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,115
精华内容 446
关键字:

在工作中收获了什么