2017总结&2018展望
2017已逝2018已来,是时候放下包袱来好好回顾下2017做了什么,有什么收获,遗憾之处的原因是什么。2018应该怎么做才能让自己满意,才能少一些遗憾。
2017
工作
工作中所参与的项目是一个直播业务的pc客户端,用到的基础框架是:
- 绘制引擎
1. D3D
2.GDI Plus
3.GDI
D3D是一个游戏引擎,各大大型游戏都用到了d3d,支持硬件加速渲染等极大提升效率的技术。但是因为xp系统不支持d3d,所以在xp系统还是使用gdi引擎绘制。GDI+主要用来绘制透明窗口,因为webview等离屏渲染的业务需要绘制到透明窗口上(其实直接绘制到d3d上不是更好么)。
- 界面库
在引擎基础上,界面库封装了一套接口,对外提供绘制、事件通知、查询等一系列虚函数接口,业务开发主要开发控件,继承这些接口实现具体的操作,控件的配置使用xml来实现,比如字体的大小、背景图、间隔等属性。在窗口类里面的消息循环里面查询和通知各个控件。
- 业务实现
一堆控件会被配置到一个大的xml文件中,该xml文件会与一个继承自业务处理基类的义务父类相绑定,添加事件通知回调等处理机制。等到该控件需要处理事件时,会通知到该业务类实例,各个业务类之间,会通过一个业务类管理器来统一管理,可以实现业务类之间的通信。
pc端客户端未来发展方向:pc客户端的用户量是逐年萎缩的,公司一般也不会太重视这一块业务,最主要的问题是用纯c++开发业务一是效率跟web端比较低,二是灵活性较差,很多时候一个功能稍微改下需要重新发版。最近跨平台的web native框架如nw和electron很火,很好的解决了上述两个问题,而且解决了web因为获取不到电脑的原生态api导致用户体验较差的问题。这是未来趋势,一份代码,多个平台。
个人发展方向:如果坚守前端的话,精通c++的绘制引擎和web开发技术会比较吃香,退可以用c++开发web native应用的基础框架,优化性能,而且d3d可以开发游戏,大不了改行做游戏去;进可以转web端,尤其是js,在web native和小程序中举足轻重。
以上是2017年对这个工作框架的理解,遗憾是:
1. 未能把d3d等绘制引擎吃透,如果现在直接扔给我一个新的项目,问题估计不要太多,应该把代码与书籍结合起来,如果单纯的看书,效果会大打折扣;
2. 被业务给锁死,每个开发周期基本上都是在框架上堆业务代码,很少有时间去真正的改善一个绘制引擎的性能问题,光做业务对自身发展很不利,等离开这个项目组,除了一些业务开发经验,真正学到的技术真的是寥寥无几;
3. 没能实现由点打开面的突破,没有自己掌握的一个核心技术,在项目组中的位置较轻,没多少话语权;
4. 有一些代码光顾着赶速度,其实放长远一点看,其实大大的影响了开发的效率和深度,比如之前解析接口的json数据,居然是针对每一个json格式数据,都写一份解析的代码,后面用了递归遍历的方法,成功实现了一份代码解析所有格式的json数据的功能,极大的提升了开发效率,也给自己争取了更多的时间提升技术修养。
生活
在毕业一年多以后,17年学会了自驾游这一项技能,确实,租一辆车去玩会轻松许多。这一年下来,游历了乌镇、鼋头渚以及上海、南京、西安的大部分景点,故地重游会有一些不一样的收获。17年年底完成了一件大事,把婚订了,明年争取把婚结了。
可能是人越大越难交心,发现还是大学里的朋友比较多,读研究生和工作后基本上没有什么朋友,这方面确实需要改进下,多一些志同道合的朋友去分享快乐悲伤,应该是一件比较幸福的事情。
学习
买了很多专业书籍和小说,鸟哥的Linux服务器搭建、Linux内核、深度学习、四人帮设计模式、机器学习等、、、、、、,期间学习了一些设计模式也写了一段时间的博客,但是因为对自己文笔的不满意或者是博客访问量的不满意,期间终止了两三个月的时间, 后续要把写博客的习惯坚持下去,毕竟博客是写给自己看的,访问量多与少又有什么关系呢!adrew n.g.的机器学习视频看了前两部分了,光看视频其实理解得并不透彻,还是需要多coding,多学习源代码,多看一些论文。小说方面把百年孤独、白鹿原、月亮与六便士等看完了,其实看完这些小说后,尤其是百年孤独,你会发现人真是一个神奇的动物,孙辈做的事情往往是父辈爷辈们折腾过的事情,永远在那里重复,你改变不了,只能学着去接受。
2018
工作
能更专心的工作,付出全部的努力去掌握一门核心的技术,比如机器学习和人工智能技术,多去关注一些技术的发展,要尝试着不断的改变,不要让自己陷入舒适区状态。年会上cto提到过一句话是比较认同的,如果社会上发生的变革都跟你没什么关系,那么你这个业务或者是人对公司而言就可有可无了。 虽然听起来有些极端,也不无道理,学习技术真的需要极客精神,一种追求极致的心态,极致的简洁代码、优化到极致的算法、极致灵活的框架等。
生活
生活中能多一份淡然,遇事能更理智更平静。顺利完成自己的婚姻大事。多结交几个志同道合的朋友。多一些爱好。希望自己可以在六便士和月亮之间找到一个平衡点。
学习
需保持一颗向上的学习的心,多向牛人学习,找到几个开源项目,参与到其中,提交一些核心代码。在机器学习、人工智能、数据挖掘方面,要多了解最新的技术,多学习基础技术,毕竟技多不压身。
最后祝各位2018新年快乐,狗年旺旺旺!
2017总结&2018展望的更多相关文章
- 2017年终总结&展望2018年
转眼就要挥别2017年了,也看到好多人都在叹时间过得好快.对啊,在我的印象中时间过得慢的时期恐怕只有中小学期间了,转眼研究生阶段已经过了一半.如今这个阶段,很多时候忙任务和学东西好不容易觉得自己摸到点 ...
- 《2017年-2018年中国MES软件及服务市场研究报告》正式发布!
<2017年-2018年中国MES软件及服务市场研究报告>由e-works Research研究编写,报告深度分析了2017年及2018年中国MES市场发展状况,从市场规模.市场特点.需求 ...
- 关于ECMAScript 2016, 2017, 和2018中新增功能(摘抄)
ECMAScript 2016 1. Array.prototype.includes includes是数组上的简单实例方法,并有助于轻松查找某个项是否在Array中(包括NaN不像indexOf) ...
- [原创]Xilinx Vivado 2017.4/2018.3/2016.4/2015.4/ISE14.7下载及其安装
最新版本Vivado 2018.3下载地址 链接:https://pan.baidu.com/s/17aE-vICRQYN27bD2sXCLxg提取码:ilg5 由于工程需要,下载VIVADO2018 ...
- IntelliJ IDEA 2017.3/2018.1激活与汉化
本文以IntelliJ IDEA 2017.3以及2018.1为例进行讲解.(持续更新:2018年5月28日) 适用版本(其它版本未测试): IntelliJ IDEA 2017.2.6.2017.3 ...
- IntelliJ IDEA 2017.3/2018.1 激活
传统的License Server方式已经无法注册IntelliJ IDEA2017.3的版本了. http://idea.lanyus.com,这个网站有破解补丁和注册码两种方式,另外http:// ...
- 总结2018&&展望2019
2019很激动,因为我加入了博客园这个大家庭,以后的技术文章都会在博客园记录,也希望可以结识更多的有趣朋友和共同理想的友人.第一篇文章从自我规划开始.2019 您好!!! 总结2018: 距离2018 ...
- IntelliJ IDEA 2017.3/2018.1/.2 激活
传统的License Server方式已经无法注册IntelliJ IDEA2017.3的版本了. http://idea.lanyus.com,这个网站有破解补丁和注册码两种方式,另外http:// ...
- 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~
2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...
随机推荐
- php 变量原理讲解
php 变量原理讲解 一.变量概念 所谓变量,是指在程序中其值可以变化的量. 程序是管理和处理数据的.在程序运行过程中,我们需要存贮这些数据,变量和常量就是用于保存程序运行时的数据的. 变量通常由 ...
- NLP+语义分析(四)︱中文语义分析研究现状(CIPS2016、角色标注、篇章分析)
摘录自:CIPS2016 中文信息处理报告<第二章 语义分析研究进展. 现状及趋势>P14 CIPS2016> 中文信息处理报告下载链接:http://cips-upload.bj. ...
- mysql数据库相关基本术语和概念
1.DDL:Data Definition Language,即数据定义语言,定义数据库涉及的各种对象,定义数据的完整性约束.保密限制等约束. 2.DML:Data Manipulation Lang ...
- OkHttp使用教程——网络操作之OkHttp, Volley以及Gson
写这篇文章的动机 在安卓项目中有一个问题可能无法避免:网络.不管你是加载图片,请求API数据还是从因特网上获得一个字节,你都是在使用网络. 鉴于网络在安卓中的重要性与基础性,当今安卓开发者面临的问题之 ...
- zTree实现地市县三级级联报错(二)
zTree实现地市县三级级联 1.具体报错如下 2014-05-10 23:29:13 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolT ...
- Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
1.错误描述 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.tes ...
- MFC中CFileDialog用法
用CFileDialog选择了一个文件后,使用FILE::fopen打开文件错误,使用 的是相对地址,和王工调试了半天,怎么跟踪也没发现错误,原来如此......... CFileDialog文件选择 ...
- ArgumentError: Error #1063: BasicChart/dataFunc() 的参数数量不匹配。应该有 2 个,当前为 3 个。
1.错误描述 ArgumentError: Error #1063: BasicChart/dataFunc() 的参数数量不匹配.应该有 2 个,当前为 3 个. at mx.charts.char ...
- IOS开发之XCode学习008:UIViewController基础
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 红色框选部分用A代替,AppDelegate类在程序框架启动时,如果在i ...
- httpclient的理解(代码理解)
一,httpclient的理解 httpcliet就是模仿浏览器在服务器内部从一个项目调用另一个项目的技术.比如说调用接口等. HttpClient 是 Apache Jakarta Common ...