💁‍♂️ 我的故事

你好,我是否子戈,真名唐霜,欢迎来到我的博客!1990年,我出生在四川泸州,年幼时随父母往宁波生活,而后又在南昌、深圳生活甚久。也许你和我一样,有着多面的人生,有些肤浅不值一提,有些深沉不便与说,能讲的都是一些普通人的故事。

👨‍🎓 学生

我从初中开始接触编程,大概2005年那会儿,课上老师让我们用FrontPage这款软件制作网页。家庭经济条件并不好,直到2008年去读大学的时候,我才坑蒙拐骗了老爸一台明基笔记本电脑,从此,开始折腾一些新玩意。

一个文科生,大学期间我自学了web开发的全套技能,并在2010年的时候用wordpress搭了自己的博客,直到现在还在偶尔写一些博客内容。大学圈子小,没有其他优秀学霸的开挂履历,只有自己小打小闹的在威客网站上接仿站的单子,几百几百的凑足自己的生活费,有的时候,月入几千块,已经知足的飞上天。

2012年成功保研,我记得导师跟我说过,研究生和本科生的区别,不在于掌握多少知识,而是多掌握了研究的方法。这对我受益终身。我发现自己在之后的人生中,总能摸到一些套路,研究方法对我来说是一笔重要的财富。

2013年,我和几个朋友创业搞移动商城,一开始其实就是在微信公众号H5卖水果,我用PHP完完整整的写完了一套微商城系统,我们甚至可以让用户在微信里面用支付宝付款。当时,我还设想了一种让配送员抢单送货的场景。虽然后来创业失败,团队解散,但在那段时间我每天充满激情,同时也逐渐认识到自己的不足与长短,是一段宝贵的经历。

👨‍💻 工作

2015年毕业后,我对自己的职业定位比较模糊,或者说在学校期间就是如此(在校期间就应该规划自己的职业发展),没有名校加持,没有大厂实习光环,普普通通还性格乖张的一枚小年轻,就这样一头扎进社会大泳池。第一份工作是深圳一家不知名小型孵化器的开发,服务端客户端一人包那种。到2016年,一次机会我进入了世界知名基金评级机构Morningstar,工作内容是前端开发。

2016年我决定将人生的所有注意力都投到前端开发这个领域,在这家跨国企业,我有大把的时间研究前端技术,我研究了它的构建工具quikr同时自我驱动学习以及熟练的研究方法,对前端工程化摸了个底朝天。2017年我在研究基础上开发了前端工程化工具componer,集工程、构建、测试、预览于一体。

2018年,在朋友的推荐下,进入了腾讯CDC。能进到腾讯这样的顶级公司工作,我内心极其兴奋。虽然CDC所运营的业务,都不是那种动不动几亿用户量的爆款级产品,但是能在一家顶级公司和顶级开发者一起工作,本来就是一件很让人兴奋的事。

🐒 开发者

分清楚平台光环还是个人能力,对于当下的程序员们非常重要。腾讯等大厂履历属于平台光环,而如何打造个人能力,建立自己的技术护城河呢?

我专注在业务系统开发上已经持续4年,对需要维护长达3年以上对系统的重构、技术更迭、架构演进、开发流程优化、质量提升有一定的体会,并逐渐总结了一套属于自己在业务系统领域的技术体系。

框架方面,熟悉react应用开发,发布过基于react的跨平台框架Nautil;熟悉vue,出过完整的vue教程;熟悉angularjs,3年来天天打交道,并完美融合angularjs中运行react组件;熟悉jquery,发布过基于jquery的现代响应式框架jQvm

工程化方面,熟悉webpack配置及大概的运行原理,写过babel插件,对ast有所了解,开发过将(中文)字符串模板解析为ast生成表单的功能;对前端构建、调试预览、测试有一定的研究,发布过前端工程化工具componer;对ci的使用有一定经验,大部分项目都集成了ci自动化构建、测试、检查、发布。

前端数据层方面,对业务系统开发的数据层有所思考,撰写过知乎专栏《前端数据治理》;发布了模式库tyshemo以辅助前端业务系统完成模型构建;持续研究了2年web表单,总结了一套“三角金字塔”表单开发方法论;断断续续研究前端数据源管理方案,发布过databaxealgeb两个方案。

前端监控方面,对前端监控sdk的设计有深刻体会,深入研究过用户行为录制与回放,完全自研了腾讯内源项目ShadowLog,并有一项关于网页文档变化回放的专利。

低代码方面,对实现拖拽式动态表单生成有丰富的经验,完全自研了腾讯内源项目Formast,独创的基于实时计算的表单字段联动方案业界领先。

微前端方面,深入研究过微前端框架实现方式,并发布了精巧的微前端框架MFY(麦饭),首创子应用还能嵌套子应用的微前端应用树数据结构。

原生应用方面,基于react native开发过RSSee,一个手机端rss互动阅读器;基于electron开发过photo copy,一款基于openvc用于对图片加盲水印以实现版权保护的桌面软件。

除了前端本身技术技能尽可能普遍覆盖之外,对应用部署和服务使用也是手到擒来,比如docker, mysql, redis, es, kafka用起来也是很溜,对indexedDB以及leveldb这种小众的存储介质深入研究过(还出过indexedDB教程)。最近还在阅读rust,以希望将来能够开发必要的webassembly功能。这些宝贵的开发经验,对我来说,既是我区别于其他开发者的独特之处,也是我为社区做出的一点点小贡献。

📘 本博客内容

我会在博客中主要分享和讨论技术,特别是web前端技术。我的博客分为了几个栏目,它们分别是:

  • 码:编程相关的系统性文章
  • 物:一些作品,主要是指能够制作出封面的产品(可卖的,商品)
  • 声:播客节目,演讲录音等(发声者必须为本人)
  • 记:个人生活记录、感悟、读后感等
  • 册:成章节的电子书,教程
  • 杂:不成体系的文章,链接,短评等

我博客的更新频率并不固定,往往是在工作中有一些新的发现,会总结后写下来。如果你对博客内容感兴趣,可以通过rss订阅我的博客。也可以在我博客留言,一起探讨。

🤝 社交账号

你可以通过 @否子戈 这个昵称在各种中文社交网络中搜索我,如果是在英文社交网络中,请使用 @frustigor,这两个昵称仅仅是中英文区别,它们具有相似的发音。

🙏 鸣谢

感谢一路予以支持的朋友,曾经提携过的师长和领导,特别感谢我老婆和家人,感谢我可爱的女儿。