因为工作日常各种爬虫、数据分析、机器学习的缘故,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 未来可期~
时间来到0202年,如果评选开发人员最喜爱的前端技术,那么Flutter绝对榜上有名… 虽然我们一直在吐槽坑多不稳定啥的,但是架不住大家对Google家技术的热情,flutter现在的生态很不错了,中文社区、教程、交流群遍地都是,可能搞得单纯学原生App开发(Android / iOS)的人越来越少了……
今年的Flutter应用主要放在了毕设那个聚合阅读&搜索App的开发上了,综合运用了很多我之前积累的东西,除此外就是做了个Flutter爬虫框架放在github开源了(地址下面有),emmm还有把19年做的极简诗词例行更新了几个小版本……
Flutter爬虫框架:https://github.com/Deali-Axy/flutter_spider_fx
做那个爬虫框架虽然最终的效果不是很完美,不过还是收获了不少,主要就是深入了一下DartVM的EventLoop和Isolate,当时(20年初)Dart的Isolate还是有不少缺陷的,导致这个爬虫框架实际上没法实现真正的多线程爬虫… 也不知道现在dart团队改进了没……
因为我以前是从Android原生开发接触Flutter,所以很多Android有的东西我就会想flutter上找替代品,比如EventBus、ORM、OKHttp这类,现在是Flutter的ORM好像还没找到比较成熟好用的,其他的还OK,简单点的可以直接用原生的来调用。坑人的地方就是Flutter框架更新太快,经常会有Break Changes,很多第三方库往往跟不上Flutter的更新速度,所以……谨慎升级吧(能用就凑合一下)。
Flutter方面的文章整理:
把爬虫放到手机上跑!Flutter爬虫框架初探~:https://zhuanlan.zhihu.com/p/108028434
Flutter跨平台App开发中设置Android和iOS的启动页:https://zhuanlan.zhihu.com/p/262251346
极简诗词开发背后:Flutter移动应用快速构建实践——状态管理、国际化、数据持久化、性能优化(一):https://zhuanlan.zhihu.com/p/100235769
Flutter移动应用快速构建实践——状态管理、国际化、数据持久化、性能优化(二):https://zhuanlan.zhihu.com/p/100763432
前端前端这块虽然是经常写的(代码量还不少),但还不是很熟练,可能是我没有系统的学前端,经常被js坑到,还好有大师带飞~
今年接触了不少新的前端的东西,一开始想搞个简单的后台管理,发现了上古的LayUI,用起来甚至还挺简单顺手的,不过在知乎看到很多专业的前端对其有抨击,基本都是说模块化的问题,不过我觉得这个LayUI确实和它官网说的一样,是对后端开发很友好的一个框架,不需要很多的前端知识,cv操作就完事了~