本文主要是介绍2021 conf 笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实在睡不着,记录点东西吧。
拿到题之后基本懵逼。4道题业务限定,我们完全没接触过这方面业务,没什么思路,大家也觉得没啥优势,放弃掉了。剩下两道题,yarp网关和用ML.NET实现图片聚类。
说实话不管是加分项Blazor,Dapr,还是yarp,api网关,我之前没玩过也没摸过 都是概念上有了解,大概知道有啥功能,甚至使用经验都寥寥无几。我的小伙伴们情况基本和我一样,除了其中有个大佬摸过ocelot。
最近写过前端项目的人大概都在一年前了。 我更是三年没系统性的碰过前端。
当然这些赛前我们互相都不太了解对方情况,知道这些的时候,都是后话了。
匆匆组了队,定了yarp网关,我大概临时恶补了四五个小时api网关。这时已经是参赛前半夜三点了。
在公布赛题之前,其实有发布过一次题目。内容是使用balzor和Dapr框架有加分。题目自拟。所以我一直在做Dapr的工作。部署AKS和Dapr,给大家写开发文档,工具脚本。
但是这下全废了。网关基本用不上dapr。
比赛当天到现场,已经是九点半。遇到了个老乡大佬,多聊了几句。正式组队之后,我们根据api网关功能点讨论了一下。有同学发现了开源项目,功能完善,于是想借鉴一下(我们给作者发了个邮件,但是后来忘了看回复)。先定了一下迁移计划,前端同学要用blazor重做vue的部分,后端同学研究一下efcore从sqlserver迁移到maria。我和另外一个同学则负责提供一些基础环境,devops和机器。
建pipeline的时候,发现freetrial的azure账号没有pipeline的权限,需要自己建池子。之前我完全没有azure cloud使用经验,全凭摸。说实话免费账号分机器十分恶心。各种区域限制。一个区域4个vcpu。日本西部我在之前分给了k8s。虽然不用dapr了 但是我想deploy啊。留下了(最后也没用上)。 日本东部根本建不了机器。最后只能美西,搞了一个2c8g的机器。说实话延迟很高。
aks也怪我自己吧,k8s没玩明白。我不知道aks nodeport根本用不了。loadbalancer我又不熟,再加上helm部署的mysql直接爆炸起不来,搞了半天我也不知道到底是lb的问题还是镜像问题,直接放弃。最后献祭了我自己家集群的一台vm装mariadb。才勉强给没给小伙伴们拖后腿。
然后又研究装vsts-agent去给pipeline提供机器。 权限问题,config不能用root权限运行。又新建账户,重新拉vsts-agent。 这都是顶着美西那恶心的网络环境搞得。
机器搞好已经两点左右了。中间还开了个会,看了看efcore的问题,对了对进度。前端小伙伴在研究blazor,后端小伙伴在研究yarp,同时认领了两个功能,日志和幂等。
之后负责devops的同学去做了几次手动部署,等代码提了几次之后布了devops。我去和前端小伙伴做blazor。
前端小伙伴在我之前做了一些东西,选了bootstrap,做了基础项目。但是git仓库提交的时候有点惨,非源码文件全提上去了。我们又做了一些努力,花了不少时间给这些文件剔除出来。
说实话我接触balzor和bootstrap只能用两个字来形容:全麻
看了官方文档,看了看blazor bootstrap,等后端swagger上线,model复制到前端,复制yarp自带的几个enum(编译不到webassembly),test call通第一个列表页面,已经是半夜了。
晚上后端小伙伴们又讨论了一些其他功能,一些网关功能和架构上的问题。最后又加了jwt鉴权。
说实话我觉得不加比较好,因为我们还没没单元测试,还没集成测试,代码还乱糟糟,结构还不清楚。甚至一开始想加的docker构建和部署我也都放弃了,没加。我比较想给大家一个比较好的软件流程上的体验,但是大家似乎更想做功能。我觉得似乎说服别人按我的想法做有些太自私了,大家都应该做自己喜欢的东西。我也就没再给大家泼冷水。大家到一点多都困了,实在熬不动,只能睡觉。
结果就是,前端没做完,后端几乎直到最后一刻还在编码部署。前端问题我承认,我放弃的太早了,如果写到最后一刻,是有可能能完成的。但是那样我就没有时间去看后端,搭一下测试环境,帮大家确定演示流程。
我知道从头到尾我都没起什么太大作用,只是像个打酱油的来回乱窜,前端也没搞完。从开源项目上做扩展似乎也是我的主意,从开头就带歪了目标。我有错,很大错。错的离谱吧。
其实很早我就知道自己没什么大局意识。我只适合你叫我做啥,我就做啥。给够时间就行。
只能说是赶鸭子上架吧,经验很宝贵,吸取教训,下次做得更快,更好,更强。
====================================================================================================================
最后给大家看下cicd吧 另外的同学搞得
=====================================================================================================================
agents 第一台是我家集群的vm,第二台美西 美西同时也是cd目标
最后贴个简历吧,也算是介绍一下自己
职业技能
- 熟悉c#语言特性,熟悉dotnetCore和dotnetFX,熟练使用VS及其调试工具,性能分析工具,能对性能问题进行分析。熟悉socket编程,熟悉多线程编程模式,能解决较复杂的多线程问题。对于CLR也有了解。对nuget包管理工具(包括打包)有一定了解,对msbuild及其工具链有一定了解(VS项目构建过程)。
- 对于基本算法和数据结构有一定了解。但不是强项。数学基础(高数,线性代数,概率论)不是很好。
- 对机器学习和深度学习有一些了解,对其基本实现原理有一些了解。
- 熟悉web项目,熟悉web调试工具(Fidller,chrome控制台等)。可以进行基本的前端开发。对vue,angular,react等有基本了解。
- 曾经使用最多的数据库是mssql,对mysql及其存储引擎ISAM和innodb有粗浅的理解。对事物,隔离级别,行表锁有一些了解。对分布式事务,一致性 (两步提交,MVCC等)有一些了解。
- 了解一些爬虫技术,使用过selenium和appium自动化测试框架。
- 对计算机组成和原理有一些了解。
- 对各种网络协议有一定了解。
- 熟悉常用的linux操作,对linux操作系统有了解。
- 熟练使用git。能阅读英文文档,能读写简单的英文邮件。听说较差。
- 熟悉计算机硬件,对大型系统和集群有一定了解。
- 对大数据处理有一定了解。
- 熟练使用winform,对windows窗体通讯机制和控件渲染等有一定了解。对windows操作系统底层原理有一定了解。很久以前做过少量wpf项目。
- 对c#,c++的编译流程有一定了解,对二进制文件有一定了解。
业余项目
基于gitlab的CI/CD系统
本来一开始是使用jekins构建的,后来发现gitlab有成套的解决方案,并且集成度更高,所以就选择使用gitlab提供的CI/CD解决方案。gitlab集成了构建CI/CD系统的成套解决方案,从源码管理到task runner,pipeline。我使用的是docker runner进行构建和测试,Deploy使用ssh runner直接运行脚本部署到目标机器。本来也搭建了k8s管理docker contianer,但是由于硬件资源限制没有继续深入研究。
Homelab项目
目前由一个3个节点的小型网络组成,主网络带宽40Gb和10Gb混用,试验网络100Gb,存储容量总量200TB左右。目前在其上部署了两个虚拟化系统和一个存储系统,主要用来承载上面介绍的gitlab和docker,docker仓库,一些个人爬虫项目产生的数据和P2P共享存储。
ESP8266 VFD和风扇控制系统
esp8266是一款wifi soc,核心使用Tensilica LX3,拥有64KB指令内存和96KB数据内存,512KB SPI FLASH。
利用40KB内存实现https over httpproxy, deflate解压,httpserver和VFD的屏幕驱动。https,defalte和httpserver基于开源项目。httpproxy部分是自行改写的。VFD驱动是原创。风扇控制系统主要应用于homelab项目监控温度并修改风扇转速,达到噪音控制和温度控制目的。
这篇关于2021 conf 笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!