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的问 ...
随机推荐
- MySQL参数log_bin_trust_function_creators介绍
MySQL的有个参数log_bin_trust_function_creators,官方文档对这个参数的介绍.解释如下所示: log_bin_trust_function_creators Comma ...
- mysql常用基础操作语法(七)--统计函数和分组查询【命令行模式】
注:文中所有的...代表多个. 1.使用count统计条数:select count(字段名...) from tablename; 2.使用avg计算字段的平均值:select avg(字段名) f ...
- USB转串口驱动代码分析
1.USB插入时,创建设备 [plain] view plaincopy DriverObject->DriverExtension->AddDevice = USB2COM_PnPAdd ...
- Java Web项目中缺少Java EE 6 Libraries怎么添加
Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...
- CSS精心整理的面试题
CSS精心整理的面试题 1.设置边框的样式用border-style实现,设置边框的颜色用border-color实现 2.CSS的语法由选择器.属性.值三部分组成 3.设置一个div的最小宽度为50 ...
- Linux显示登入系统的帐号名称和总人数
Linux显示登入系统的帐号名称和总人数 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who -q youhaidong youhaidong # 用户数= ...
- eclipse:An internal error occurred during: "Build Project". GC overhead limit exceeded
在使用Eclipse的Build Project功能时,提示以下错误: An internal error occurred during: "Build Project". GC ...
- 初识SSO与JWT
以前在学校做项目的时候,登录注销,权限验证这些事情,都是交给框架来做的,每次都是把这个架子拿到项目中去,也没有真正思考过它的过程,总觉的这些都是十分简单的逻辑. 然而来公司工作之后,慢慢觉得登录和权限 ...
- WebView的使用--Hybrid App
App页面是运行在WebView中的,一个App页面对应一个WebView,本例实现两个WebView之间的跳转. 实现过程(用到了MUI框架): 1.页面标识+跳转按钮(index.html.mai ...
- View的放大->旋转->还原动画
以UIButton为例,创建一个类,继承于UIButton /*页面的创建用storyboard*/ .h文件 @interface PTSRecommendButton : UIButton - ...