个人2020回顾——技术篇

看着笔记里写了一半的「2019年总结」,总以为莫名喜感,而后我又想说时间过得真快了,又到了每一年写总结复盘的时候,2020年是我长这么大以来经历过最魔幻的一年,疫情、金融危机、世界格局“百年未有之大变”……巨大信息量的冲击下人很难有独立思考的空间和意识,还好本文只是对2020年技术方面的总结,否则不知道要写到何时才写完。php

首先看一下我主要使用的两个代码托管平台上的代码提交概览,分别是Github和Gitee。前端

GitHub

Gitee

第一季度的代码提交集中在Github上,在这以前我只是把Gitee做为一个国内的备份,随着美国的制裁不断收紧,Github又几回宣布封杀某几个国家以后,我就以为国外的东西始终仍是不那么靠谱,转而把代码提交到Gitee,并把GitHub做为备份,并且后来在公司也开始使用Gitee的企业版,因此后半年在Gitee的提交特别多~vue

我看了一下,今年主要涉及的技术(语言)按代码量排序:Python -> C# -> Flutter(Dart) -> 前端(JS) -> Kotlin -> Go -> Java -> PHPjava

下面挑几个说说相关的应用和心得吧~python

Python

Python排在第一位毫无悬念的,我一直的主力语言都是Python,今年用到的主要领域是Web后端、机器学习(深度学习)、数据分析处理、爬虫、桌面程序等,都是工做生产上赚钱的东西,用Python又快又稳,好比Web开发,用上Django半天能够完成静态类型语言至少一天的工做,事半功倍,人生苦短,我用python这句话真不是说说而已~linux

Python Web

Python的Web后端方面主要是用Django框架,在以前简单使用的基础上深刻了一些,读了一部分的框架代码(大呼牛逼),而后今年也用上了作RESTFul Api标配的DRF框架,一样啃了一部分框架代码(PS:drf不少功能不看代码根本不知道咋用,文档有待提升)android

由于在工做中作后端服务主要用Django的缘故,今年对这个框架的学习和研究比较多,还本身作了一个快速开发模板,功能包括:Docker部署,缓存,自动业务代码生成器,接口限流,DjangoAdmin验证码,登陆次数尝试,屏蔽了RestFramework默认的API主页等,代码也开放出来了~git

部分关于Django的折腾研究记录我发了专栏,这里整理一部分出来:github

篇幅关系只整理关于Django这一部分,看更多文章能够在我公众号或者知乎上搜一下……(偷懒)web

除了Django以外,我还试用了今年很火的异步开发框架 FastApi,一个要和Go语言比速度的框架,并且还把静态类型(100%类型注解覆盖)做为卖点,emm用起来感受就像Flask同样简单方便,不过和Flask同样,这个框架自己提供的功能很少,拿来开发的话须要搭配一大堆第三方库使用,能够用Flask的生态,前景应该蛮好的~ 不过仍是Django全家桶用着舒服hhh

机器(深度)学习

今年在机器学习这一块也作了一些小东西,年初继续作个人NLP,包括情感分析、对话预测这类…没啥特别好说的,值得一提的是我入坑了BERT,果真是挺强的,作了一个中文文本分类项目(主要是新闻文章的分类),效果蛮好的,一样是开源代码自取

除了完善以前开坑的NLP以外,今年还入坑了推荐系统,搭配上爬虫、元搜索引擎、上面提到的文本分类,作了一个相似今日头条那样的聚合阅读 & 推荐的App,帮我拿了毕设全级第一和优秀毕业生,发现四年大学也不算白读了~

(此处插播这个App的视频)

后面在工做中又作了一些计算机视觉的东西,调研了人脸检测识别这块的几个技术栈,由于咱们的服务要分两个部分部署,一个部署在GPU服务器上,一个要部署在NVIDIA的那个嵌入式设备(Jetson),服务器性可以随便用,主要看准确度,嵌入式设备只能用轻量的算法,不追求准确了,但求性能不要崩~

而后就MTCNN、FaceNet、ResNet还有OpenCV的几个机器学习的检测器都用上了,搭配着使用,还有同事用YOLO作另外的目标检测部分,我就打打酱油~

剩下的数据分析、爬虫、桌面(PyQt),大部分都跟工做有关,也比较容易没啥值得记录的,我当时没写博客,(或许接下来有时间再来水一水)

C#

开始说C#篇啦,这是优雅的好语言,netcore平台今年的发展也很迅猛,年末已经推出了正式版的 net5平台打算一统天下了,不过好像今年一年的时间生态也不见有什么大的进步,因此在生态没有大发展以前我暂时不会把netcore这一套拿来当主力。不过会持续关注学习~

netcore这块主要就都是Web开发的东西了,年初原本打算用ASPNetCore来作毕设的后端框架,后面由于时间关系仍是换了Django,不过我却是认真作了一个练习项目放在Github,代码在下面。

当时接触ASPNetCore不久,不少东西都不熟悉,不过中间件、依赖注入这些跟Spring那套差很少(你问我为啥跟Django不同?动态语言能够不须要依赖注入,懂的都懂),后面我继续学习和用了这方面的技术作了一些东西,主要是熟悉了MVC的那套,虽然如今MVC没啥用了,不过架不住一我的开发快啊,ASPNetCore的MVC多好用也说不上,不过功能挺丰富的,总体性能也还能够(虽然我仍是以为Django的MVC顺手)

而后跟着杨旭大佬学了一些ORM、RPC、WebAssembly这类的,最重要是还比较系统的复习了一下C#基础,感受受益不浅,惋惜没那么多时间去刷完全部课程,但愿接下来的2021年把杨旭大佬的课都赚下来~

后面又接触了一下下Abp vNext框架,而且学了一些关于gRPC、微服务网关、认证中心、监控系统的东西,算是对整个netcore体系有所了解了,后面我也在生产环境用了一些netcore,好比公司的新版数据中台和一个小程序的后端+PC端,感受还不错啦,就是我还不是特别熟练,开发效率上不如Django……

同样的,学习和使用过程当中我写了一些文章,这里也列一些:

由于工做平常各类爬虫、数据分析、机器学习的缘故,C#我也拿来作爬虫和数据处理了,效率还蛮高的,Python写爬虫虽然是最快最方便的,可是架不住部署麻烦啊,C#就不同了,写完直接全平台可部署,我用WinForm作个界面也行,Windows系统啥也不用安装直接打开就能用,Linux或者Mac也有相应的UI框架,经过 .Net Standard标准,底层能够共用一套代码,很舒服。

不过dotnet项目有一个很麻烦的地方就是只能有一个main入口,虽说起来是理所固然的事情,可是这对爬虫来讲根本不方便,常常要写一个单独执行的东西来验证的时候,每每就得在 solution 里面新建一个project来测试,依赖什么的都要从新导入,比较麻烦…… 虽然也有其余代替方法好比单元测试、LinqPad、dotnet script等,不过总归不像Python、Java、kotlin、dart这类同样方便~(话说go也是这样)

PS:今年爬虫这块,selenium用得不少,C#+selenium搭配IE driver,上古老系统全都被安排得服服帖帖的~

.NetCore 将来可期~

Flutter

时间来到0202年,若是评选开发人员最喜好的前端技术,那么Flutter绝对榜上有名… 虽然咱们一直在吐槽坑多不稳定啥的,可是架不住你们对Google家技术的热情,flutter如今的生态很不错了,中文社区、教程、交流群遍地都是,可能搞得单纯学原生App开发(Android / iOS)的人愈来愈少了……

今年的Flutter应用主要放在了毕设那个聚合阅读&搜索App的开发上了,综合运用了不少我以前积累的东西,除此外就是作了个Flutter爬虫框架放在github开源了(地址下面有),emmm还有把19年作的极简诗词例行更新了几个小版本……

作那个爬虫框架虽然最终的效果不是很完美,不过仍是收获了很多,主要就是深刻了一下DartVM的EventLoop和Isolate,当时(20年初)Dart的Isolate仍是有很多缺陷的,致使这个爬虫框架实际上无法实现真正的多线程爬虫… 也不知道如今dart团队改进了没……

由于我之前是从Android原生开发接触Flutter,因此不少Android有的东西我就会想flutter上找替代品,好比EventBus、ORM、OKHttp这类,如今是Flutter的ORM好像还没找到比较成熟好用的,其余的还OK,简单点的能够直接用原生的来调用。坑人的地方就是Flutter框架更新太快,常常会有Break Changes,不少第三方库每每跟不上Flutter的更新速度,因此……谨慎升级吧(能用就凑合一下)。

Flutter方面的文章整理:

前端

前端这块虽然是常常写的(代码量还很多),但还不是很熟练,多是我没有系统的学前端,常常被js坑到,还好有大师带飞~

今年接触了很多新的前端的东西,一开始想搞个简单的后台管理,发现了上古的LayUI,用起来甚至还挺简单顺手的,不过在知乎看到不少专业的前端对其有抨击,基本都是说模块化的问题,不过我以为这个LayUI确实和它官网说的同样,是对后端开发很友好的一个框架,不须要不少的前端知识,cv操做就完事了~

发现了一个相似Bootstrap的前端样式框架叫SemanticUI的,语义化的class确实有点意思,看腻了Bootstrap的默认样式,这个SemanticUI的界面也让人眼前一亮,不过我还没深刻使用,也就大概看了一下,用习惯了Bootstrap忽然换成这种语义化的class还有点不习惯的,不过我有感受这是个不错的东西,接下来持续关注。能够把一些Bootstrap的网站用这个SemanticUI重写一下,工做量应该不是很大~

而后由于接了个项目要作小程序,时间比较紧只有三天,我就用了颇有名的uni-app肝了出来,期间遇到了很多坑,这个uniapp虽然广告说支持七八个端多多方便啥的天花乱坠,可是文档写得却不怎么样,不少东西文档内并无写明,要靠搜索他的论坛什么的,挺麻烦的,并且不一样端上也有不一样的坑,还好我只作了微信小程序,若是要作其余的不知道还会遇到什么奇奇怪怪的问题,恐怖。

后面在网上逛了下发现有个叫Taro的小程序框架也还不错,不过我还没用上,有机会能够看看。

年末在大师的安利下开始入坑React,真不错,有Flutter的基础学React简直不要太容易,响应式的界面开发真不戳,如今就差一个好用点的样式框架来搭配使用,接下来继续关注趴~

哦对了,还有vue,双向绑定很适合作管理后台这种须要大量表单的东西,不过感受相关的东西太多了,我仍是喜欢React~

PS:前端的东西实在太多了……

Kotlin

Kotlin是19年开始接触的,说是要取代Java,也不知道在Java被淘汰以前能不能实现这个目标。

Kotlin的语言设计真不戳,函数变成一等公民,我喜欢这种设计,比C#高多了~

今年用Kotlin+Springboot作了一个网站,ORM用了Ktorm,仍是有不习惯的地方,后来我写了一篇总结的推文,里面吐槽了一下,结果被ktorm的做者看到…… 后面加了微信接受大佬教育…

整理了两篇文章:

除此外就是用Kotlin来写Android,自从Android能够kotlin写以后就很舒服了,不用写繁琐的Java代码也能够开发Android真好~

Go、Java、PHP

关于语言技术栈的最后说一下这三个,Go语言以前接触过,今年继续学了一些,由于编译成原生代码以后部署很方便,因此有时拿来作一点小东西很方便,不过要拿来写业务仍是不如Java、C#、Python这些…

Java这块主要仍是写写Android,维护一下我以前上架的App,那时候Kotlin还没学,只能Java…

关于Android开发我还想写几篇文章,可是年末状态差有点懒,差很少两个月没发新文章了…… 不过关于Android开发的我已经基本写好一篇了,等完善后就发出来。

PHP原本是好久没用了,不过最近要魔改WordPress的一些插件主题,也就小用了一下下~

其余

今年利用空闲时间刷了一些算法题,以前我都是作各类落地应用,并无把注意力放在算法上,今年有空就刷了一些,感受还蛮有趣的,累了的时候能够放松。

同时今年参加了几回培训和比赛,虽然也收获了几个奖,不过就比不上在学校的时候了……

培训仍是让我接触了不少之前不了解的东西,10月份参加了网络安全的培训(虽然我学得不是很好),不过简直打开新世界的大门,加密解密、逆向、渗透,这些都是之前我很憧憬的东西,如今有半个月的系统学习确实受益不浅,不过感受此次学得还不是很充分,有大量的知识得继续补充……

12月又参加了大数据相关的培训,系统学了云计算基础、分布式存储、分布式计算、高可用架构各方面的知识,这个对实际工做的帮助更大,不过仍是得在工做中继续实践才能够造成本身的知识框架~

写在最后

2020技术词云

2020年过得太快了,过去这一年各方面离个人设想仍是有点差距,不是特别满意,感受本身愈来愈懒,效率也不高,不少计划作的事情都没有动力去完成……

不过也有改善一些的,今年没花那么多时间在技术上了,开始读书、看各类社评,中间也参加了几个考试,收获了一些不同的东西,固然遗憾也是挺多的,好比公众号运营得不是很好,今年增加量不高(自媒体之梦破灭),各类各样,最后总归是本身的缘由,只能说:接下来继续努力吧!

PS:最近好久没有更新文章了,(这篇总结花了一个多星期的时间),我已经完成了好几篇技术记录的文章,这篇总结发完以后就会陆续发布~

欢迎交流

程序设计实验室专一于互联网热门新技术探索与团队敏捷开发实践,在公众号「程序设计实验室」后台回复 linux、flutter、c#、netcore、android、kotlin、java、python 等可获取相关技术文章和资料,同时有任何问题均可以在公众号后台留言~

相关文章
相关标签/搜索