第一篇:废话

       再次打开自己的博客,发现上一次跟新已经是2014年的事。感慨时光飞逝,自己的年龄越来越大。当然伴随着时间的流逝,自己的经验也越来越多。

       回顾这些年,我决定将自己摸过的石头,踩过的坑,走过的路总结成文字。将点点滴滴分享给大家。为感兴趣的朋友分享点有限的经验。也为自己之前的时光做一个总结。

       年轻时的回忆

      回忆起过去,不得不感慨那是一段值得怀念的时光。

       94年的时候接触到今生第一个编程语言“LOGO语言”,这是一个“小海龟”通过命令行画图的简单程序,当时父亲和我一起在学习机上学习这个语言。但是这个简单的程序引起了我对编程的兴趣,对我的现在算是有着重大的影响。

       96年我接触到了第一个DOS系统,那会还是因为报了学校的兴趣班。还记得当时主要学习DOS系统的命令,DOS版的WPS,当然闲暇时候还有DOS版本的超级玛丽可以消遣一下。偶尔可以在教师机上领略一下图形界面“windows 95”。但是那是真正的让我接触到了到了计算机这种神奇的东西,对我又是一次深远的影响哈哈。。。。。。

       99年之后的几年,我基本每周都会有2小时在网吧度过。也是这些年我慢慢接触到了网络。“windows”系统接触到了98,2000,windows me系列。当然还有当时风靡的“红警95,98,2000”,“半条命”,“传奇”,“奇迹”等。(每周父亲会给我10块大洋,让我去网吧上网,这在当时绝对算的上是个好爸爸^v^。想想现在,似乎我也应该为我的娃做点什么^v^)渐渐的我开始懵懂,似乎我喜欢和电脑打交道。

       01年中美黑客大战,由于对计算机的关注,这个事件虽然没对我产生什么影响,但却让我记忆犹新。

       03年,这对我是一个历史的开始。我遇到了一个对了之后的选择产生了重大影响的人。高中转学后,本来想参加硬件机器人灭火比赛,但由于转学之前没有硬件编程基础,所以带队老师没要我哭。当时正好我们开设了BV6的课程。一怒之下,怒写200行代码,实现了记事本+调色板功能。恰巧被我的代课老师发现,后来在这位老师的鼓励下,我开始自学VB6。这位老师在我课余任何时间对我开放机房,上机成了我课余的一切。我就这样在接下来的1年多里,写出了2000+行代码,完成了关于高中解析几何(点,线,面,圆,椭圆,三角函数等方程与坐标系图像关系)的软件。PS:没想到,这些解析几何的基础,对我之后的工作还产生的重大影响(后边文章中慢慢聊)。这个软件还参加了全省青年创新科技比赛获得了二等奖,当时那个年代能写几行代码自然获奖不是问题了。之后自然我顺利的进入大学报考了自己喜欢的专业“计算机科学与技术”。这是我第一次自己的选择。

       在大学时候,我是一个同学眼中的坏学生,4年加起来的课程可能只上了不到2年。当然逃课的时间中我基本是在带队参加各种比赛。同时我也是老师眼中的好学生。因为这些比赛都是以学校的名义。多次获奖也是顺理成章的事。当然考试也是一路绿灯,有幸成为年级主任带的唯一的一个毕业论文,并获得了全省“优秀毕业论文”。由于参赛错过了个大牛企业的校招。我只能一份简历投往上海一份简历投往杭州,如果再错过,我估计得回家转行了。当然之前的经历让我作为应届生顺利找到工作还是不成问题。最终有幸来到杭州。但是这之前的一切光环,也只是对我之前的总结,对我后来的职业旅程并没太大卵用。一切都需要在自己每天不停的努力中度过。后来没想到,努力成了自己的口头禅,不要停成了自己的逼自己的动力,人是要逼的,不逼不知道能做到什么程度,能走多远。

       CA行业的历程

       刚毕业,我在支付宝从事“软硬证书”的维护,“软证书”是指浏览器上使用的数字签名证书,基本是解决浏览器端,一些重要操作的数字签名相关问题。“硬证书”是指类似支付盾这种由硬件载体的私钥保护设备。外观类似“U盘”。这种方案当时几乎是数字签名业务的标准产品。个银行支付机构,都采用“XXX盾”这样的字样。

       “软证书”通过根CA签发,然后下载到本地,通过浏览器插件导入到本地私钥库。签名的时候同样通过js调用浏览器插件读出软证书,然后进行签名并反馈到页面,再提交到服务端进行验签操作。

       证书主要分为“证书链”,“CRL吊销名单”、“私钥”、“公钥”,证书链保证了证书的签发链,每级CA的有效性在证书链中得以体现。"CRL吊销名单"其实是个“黑名单列表”,由各级CA维护各自吊销的证书列表。校验客户端,通过证书链信息下载各个节点的CRL文件进行校验,当然CA公司基本都实现了在线校验接口。使用“私钥”签名,产生公钥,将公钥传输到服务端进行验签。

       “硬证书”与“软证书”类似,只是将私钥保存在了硬件容器中。签名过程类似,只是需要通过容器驱动,对私钥进行读写。

        国际常用加密算法:“DSA”和"RSA"。由于国家需要对数字签名合法性加以监管,所以由国密局规定了“国产加密算法:SM2”。当然,算法实现不同但同属于“大圆弧算法”,是“大圆弧”上的其中一条曲线,换汤不要药。工信部拥有顶级根名为"ROOT根"。国内30多家CA公司的根证书均由“ROOT根”签发。然后再向下级CA签发。最终签发出用户证书。

        2011年底,CSDN暴库,引发了个行业对密码保护的重视。关于数字证书在应用层解决跨域证书互信问题。我曾写过一篇文章,该方案已经被北京天威诚信在项目中实际应用。有兴趣可以查看http://luckymjl2.iteye.com/blog/1335929

       在支付宝办公的日子里,我基本是从事着类似技术支持的角色。但又不同于常见的技术支持。我需要从支付宝的客满中心调取关于所有证书使用中遇到的问题的电话录音。从客户模糊的问题描述中发现证书的使用问题。有时候会直接联系遇到问题的客户,通过远程造作帮客户解决问题。有些是关于后台签发问题,这种问题基本是自己改代码改策略,自己上线(现在想想相当的不规范)。有些可能会牵扯到控件问题,需要联系相关部门的同事对控件进行优化。有时候会协调2个部门或公司完成一件工作任务。说实话,这对于当时刚毕业的毛头小子来说着实有些棘手,尤其是需要和别人沟通的时候。但对我之后的工作却起到了重要启蒙,至少让我对非代码类的工作不那么排斥。同时也是种锻炼。开始我跟着市场总监,学到了很多非技术类的东西,对我受用终身:跟对人,做对事;先做人,再做事。后来我跟着技术总监学习,学到了很多非编程类的技术,对方案的设计,问题的定位等方法有了深刻的感受。这些我会在今后的博客中尽量分享。在后来的一段时间里,我终于又重新走回了程序开发的轨道,对程序的设计打下了一定的基础。

        海事行业历程

        13年底我来到了一家海事公司,从这家公司开始,我开始从事架构师的工作。对架构师慢慢有了新的认识。说来也很有意思,业内有句话:不懂业务的架构师就是耍流氓。可是我却偏偏很少接触具体业务。我记得唯一接触的业务就是刚到这家公司,从事了3个多月的业务开发。之后基本是在为开发人员服务。

        架构师的存在,在我看来是为了解决这几类问题:1、解决一般程序猿难以解决的问题。2、开发各种工具,提高业务线上程序猿的开发效率。3、编程规范,规范系统维护的延续性。4、新技术的评估与引入5、技术分享,通过培训提高程序猿的开发效率。

        在这里的经历不是太久,虽然也做了一些架构方面的工作,但应为种种原因也没有什么突出贡献。

        物联网行业历程

        15年经朋友介绍,我来到一家创业公司,也就是我现在的公司。在这里,我从事后端技术负责。除日常管理外,主要是负责架构及带领团队对业务进行开发。接下来的文章,我会重点阐述在这家公司遇到各种有趣的问题,及架构方面的演化及设计思想。

         这家公司,是一个智能穿戴设备(智能手表、手环、定位器等)的物联网接入平台。从该平台衍生出很多行业项目,如全国最大的智慧养老平台、智慧养老院管理系统、旅游、社会公益帮扶项目,阿尔兹海默症找寻项目等。

         设备请求数据并发每秒6000pps。数据每天产生约40G。

         最后的废话

        再接下来的文章中,我会介绍再工作遇到的问题及解决方案。由于目前还处于技术保密期,我会重点阐述思路。可能不会堆大量的代码,敬请谅解。可能文章中会有错误,欢迎朋友提出、留言、共同讨论。

         最后再说说这些年来的一点点感悟:

         1、程序员要凌驾于程序之上。如果胆怯担心搞不定,那最好就不要搞,因为很容易就搞不定。

         2、网上可以照搬的叫运用,网上没有的才叫技术。读懂源码不如读懂思想。

         3、不要让自己停下来。学习永远不要停。

         4、扛住压力。人不逼自己,永远不知道自己能走多远。

         ps:第一篇说了这么多废话,后边尽量来点干货。维护博客还是一件很费时的事情。我尽量一周跟新一篇。

猜你喜欢

转载自luckymjl2.iteye.com/blog/2399010