孤帆尽远,似水流年 - 2018

      时光荏苒,白驹过隙,转眼一年过去了,2019年已经来临,在新年初始,总免不了要缅怀一下过去的一年,为新的一年做一些打算。下面的内容纯属个人的无聊发泄,看不下去的随时打住就好了………..,另外,下面的内容会涉及技术方面的词汇,如果大神吐血请不要强撑着………哈

      2017年主要涉及密码加密的相关的技术包括开发CA认证数字签名项目,下面我开始梳理一下2018今年对技术的理解,从网上开始研究比较专业的JS框架的处理机制,在这个过程中,我开始真正的体会到语言的区别。在之前,我对语言的理解是万物相通,每一门语言都是有共性的,尤其是同类型的语言,当初不同种语言的创始人在发明这门语言的时候,有时候会遇到相似的问题,然后相互借鉴,最后形成了这种共性。这个理解本身是没有问题的,但是还不够。在经历过这次事情后,我对语言形成了新的理解。语言的确是可以相互借鉴的,但是每门语言又有其各自的特点,在这样的情况下,不同语言的整体处理模式可能是不一样的。

       以这次的事情为例,我本身是从事后台研发,(本文章有tigerxu独家书写)对Java的理解程度要远超过JS,那么,在Java中,我们为了处理某部分需要存储的信息,做过组件的人,往往第一时间想到的是缓存,当我们定义一套缓存体制后,我们可以实时获取我们需要的内容,不管在任何地方,这种处理机制本身是方便的,也是没有问题的,但是在JS中,因为JS属于客户端,本身并没有通用缓存的位置,每个页面有各自的缓存体制,如果我们使用类似Java中的处理模式,最终会使整个缓存体制非常庞大,而且不易处理,随着JS组件的增多,这部分的处理会越来越麻烦,一不小心就会出现很难排查的BUG。在前两次研发中,我使用的就是这种模式。而后来,在研究过网上人们的架构后,我开始明白了。JS本身是一门脚本语言,这门语言有在页面上有一个很大的特性,那就是通过动作去驱动执行,而实际上,大部分网上成型的JS架构,都是会有顶级配置或者顶级对象的设置,所有要缓存的信息本质上都不会以直观的方式保存起来,而是将这部分内容通过对象的方式,以多级处理的模式保存到顶级对象中。这样,在我们进行事件驱动的时候,我们只需要把顶级对象传入,我们就可以把所有缓存过的信息取出,之后就可以按照我们自己的方法去进行处理。说实话,这种处理模式给了我很大的触动,因为在Java中,很少会采用这种模式进行处理(因为耦合度过高),但是在JS中,这种处理模式的确是最合理的,这本质上取决与两种语言的部分特性的不同。这里虽然我的技术没有提升,但是对于技术的感触却有了更深层次的理解。

      这一年经历了开发完成了posp系统,综合收单系统,最后一个商品流通,这个商品流通类似于淘宝,是我认为技术最为复杂的一个系统,难度很高。前端使用的技术是HTML5,在实际研发初次使用了Vue框架作为前段框架进行研发,后台使用平台开发,这个项目属于一个过渡期项目。这个项目让我认识到,小问题可以用函数(方法)解决,遇到复杂的问题还是需要用对象来处理。但是在这个项目中,有一点对我感触颇深,关于模式的处理。众所周知,MVC模式是一个被用烂的模式,Model定义实体模型,View控制视图呈现,Control控制两者间的调度,这个模式在大学的时候就被灌输过,然后在很多情况下被运用,这个模式比较基础,适用范围广,而且容易理解。在工作之后,接触了MVP模式,实际上这个模式在很久之前我就接触到了,只是初期一直没有认识到,MVP模式与MVC模式很像,只是,MVP使用Presenter处理逻辑,MVC模式与MVP模式最大的区别在于,MVC模式Model与View之间没有完全分离,在MVC模式下,页面呈现信息的时候,有时候,View会直接读取Model中的信息(例如EL表达式、Struct2框架等都是这种模式),而在MVP模式中Model与View之间是完全分离的,页面上的实现,就是所有Model与View直接的交互,都是基于通讯与报文进行处理。MVP模式下,Model与View可以独立测试,结构更加清晰,甚至可以实现不同系统间的Model与View的组装,缺点是页面前后通讯交互比MVC要频繁很多。首次接触MVVM模式,这个模式是近几年比较流行的一个前端框架模式,Model控制数据,View控制呈现,ViewModel关联两者,但是,比较特殊的是,ViewModel采用了双向绑定的模式,首先,ViewModel监听Model中数据变化,当Model数据发生变化,自动控制View发生变化,其次,ViewModel也会监听View中信息变化,当View(页面信息)发生变化时,将Model的数据同时变化,这个模式,将Model与View的绑定实现了自动化处理,让后期使用者只需要设置Model与View就可以进行使用,是一个优化使用的模式。初次了解MVVM模式,说实话,有很大的触动,如果不是由于项目时间过于紧张,实际上当时一定会抽出时间深入研究。MVVM最大的缺点是不易出错,更不易调错,由于页面中会存在大量监听器(Listener)与呈现器(Watcher),重用性高,所以不易出错,但是如果某个细节出现问题,极难调试错误位置。在项目中,我重写了新的前后交互与通讯JS,实现了MVVM的一部分功能,从Model到View的单向绑定,在实现之后,也进一步让我对这个模式有了一定感触。这部分是2018年比较重要的收获。 那就是本人对于JS的驾驭能力不足,虽然之前贯通过JS的基础,不过现在看来,JS的进一步进阶与ES6的标准是需要进行学习的。

    自己玩的就是玩爬虫技术了,也是今年我玩的最嗨的一项技术。传送门:https://www.jianshu.com/p/ccfca20c1ad2 大神可以给点建议

        

你可能感兴趣的:(孤帆尽远,似水流年 - 2018)