2017又结束啦感觉过的挺迷茫的还是总结一下吧

学习想法

在二月份出来实习的时候进了个小公司,公司虽小但是技术栈还是挺先进的,学到了很多新知识,也让我一些学习有了想法上的改变。像之前做项目的时候,我们仅仅是专注于一端,只关注一端,你给我接口,我拿到数据展示便可。之前我也没关注过后端,在公司实习之前才知道RESTful API这种API 设计模式

不仅如此,当你发现了一个新的领域(虽然很小),你就会发现其他东西,我学习了RESTful API设计,然后其实还有更先进更复杂的graphQL,了解后才发现这东西并不适合小项目,学习成本高,需要前后端配合度高。还了解到了网络通信也不只有API调用这么简单,还有RPC这些,还有待深入了解。

关于数据格式,之前以为只有JSON,XML,因为只用过这些,后来因为项目中有用到 Protocol Buffer,才发现还有这么多数据传输格式。刚开始知道有protobuf这种东西的时候,我就想那这种数据格式数据量那么小,为什么还有那么多项目用JSON,后来发现还是各有其优劣性,protobuf是二进制流传输,数据量很小,但是可读性差,适合做IM的数据格式。

实习的时候接触了很多新知识,让我意识到懂的还是太少,需要不断的学习还能了解更多更全面的知识,而我对自己的定位也是从一个iOS开发工程师变为一个工程师,一个项目前后端要用到什么技术都要知道怎么用,而会用就要去了解这种技术的思想,甚至底层实现。

关于编程语言

Go语言

因为之前不想总局限于前端,觉得需要学一门后端语言,那时候简单学过可以开发服务端的有c++,java,python,后来对比了很多语言,最后还是选择了Go语言。其实已经学过很多东西了,所以过了一遍官方教程还有社区的一些教程就快速上手了,两个星期。再花时间了解一些web框架,orm框架,基本就能开始开发服务端了。学了Go语言感觉还是挺好的,性能好并且语法也比c++简单很多,当然Go的错误处理还是挺蛋疼的,但是瑕不掩瑜,这确实是能让我喜欢的一门语言。

Shell Script

严格来说都不知道这算不算一门变成语言。学这个是因为当初在想我竟然还不会一门脚本语言,我需要写一些脚本。然后就系统的学了一遍,其实有些语法挺恶心的
但是用写一些小脚本来实现自己想要的一些功能还是挺有意思的,写了自己的App自动化打包,导出,上传,最后通知的脚本,到现在也还在用

Python

写一些本地工具脚本可以用用shell脚本,但是想写一些爬虫的话,shell脚本感觉挺无奈的,解析json什么的都非常麻烦,所以在大三大概学过一遍python之后到现在都没碰过,最近又开始系统的学了一遍,准备写一些爬虫,workflow什么的

学了那么多语言之后,感觉编程语言再也不是编程的障碍了,不同的只是语法和一些设计思想,最重要的还是设计模式跟编程思想

项目

公司项目就不说了

毕业设计

刚开始想的时候到底要做什么,后来想就做一个及时通讯App吧,服务端和iOS端。服务端当时就是学了Golang,iOS端还是用OC吧,然后纠结了一些技术选型的问题,即时通信那要用什么通讯协议呢,接触过的有XMPP,当时这个直接用起来肯定太简单了,什么都搭好了。还有WebSocket,后来想,用这个还不如自己从底层Socket开始搭,数据格式就用了谷歌的Protocol Buffer
然后开始我是纠结用TCP还是UDP的时候,那时候有很多想法,为了追求完美,最后传输的时候用UDP,用TCP来辅助,当时跟一个大佬说了这个想法还给鄙视了🤣,说为什么不直接用TCP。我觉得我的尝试还是没错的
其实这个项目只做了十几二十天,最后完成度不高,最后答辩的时候用了真机和模拟器来演示聊天,结果因为还没做通知给老师喷说不是真正的即时聊天
总之这个项目让我学到了很多东西,前端后台的

https://github.com/AscenZ/Hey

Swift项目

虽然学过好几次Swift,用Swift写过一些Demo,但是还没用Swift写过项目,在八九月的时候接了朋友的一个小项目,那时候就想用Swift写吧,总体来说,用Swift写项目代码很简洁,API意思都没太大变化,都是简洁版,但是编译器支持还是太烂了,RxSwift用的还是不够RAC好,这个是重点,还是要花更多的时间去学RxSwift

2018学习目标

现在主要大方向还是iOS正向/逆向开发,觉得有趣不想放弃的有Golang后台开发,Python脚本开发,这些都是主要的学习方向,总体方向是不局限于iOS,而是要把自己当成一个工程师,向全栈发展

逆向

买了《iOS应用逆向工程》目前只看了一部分,先看完这本书,再实践实践,学习过程中也更帮助我了解了iOS系统的底层

React Native

虽然现在苹果并不鼓励非Native开发,感觉无论怎么样还是要学学的,学学设计思想,还有学学JavaScript🤣

设计模式

现在做了个非常庞大的项目,感觉用到了很多设计模式,可能会用,但是还是不能系统的概括出来,还是要系统的学习一下设计模式

如果还有感兴趣的技术也会毫无犹豫的去学,总之不能放弃学习

2017看的书

实习的时候每天要坐两个钟地铁,我就想在地铁上做点什么好呢,后来想,还是听听书吧,刚开始找了几本热门的书听,后来觉得听的不过瘾,就看了很多书,觉得很有意思,果然即使工作了还是不能放弃阅读

2017读完的书:
《解忧杂货铺》
《岛上书店》
《时光倒流的女孩》
《被掩埋的巨人》
《十一字杀人》
《仁医》
《时生》
《孤儿列车》
《倒悬的地平线》

读完的书

2018也要读更多的书

跑步

2016年开始跑步,2017年才跑了350KM,感觉还是有些懒散,2018继续加油,给自己立个目标,不低于500KM吧!!

总结

2017虽然过的挺迷茫的,当时还是挺有意思的一年吧,踏入了社会,见识到了更多,学到了更多,也意识到自己的一些不足。希望2018能学到更多东西,更多技术吧!