深圳这种公司还是很多的,特别是传统行业转型的中小企业(大企业没待过,不清楚)。
以我现在的公司为例,我的岗位应该属于运维。公司技术栈是 .net 后台,原生 Android 和 iOS,然后带一些 Web 项目(
asp.net)。
后台:
数据库这块领导只信任 MSSQL,其他技术 Redis、mongodb 都保持排斥态度,包括基于 Linux 的技术也是。Redis 是在项目遇到了一个明显 mssql 无法解决的问题(读写频繁,数据不需要持久化)时,才勉为其难选择了。另外包括一些 GEO、JSONB 这些也都是只会说先想想,然后后面不了了之。
PS:这位领导以前是做 ERP 开发的,所以在技术选型方面偏向 .net。
后台开发这块,主要是提供移动端使用的 API,之前全部是按 RPC 和 SOAP 的混合风格设计的,不过为了所谓的“安全”,所有参数都放在了 header 里面,并且参数值还用了对称加密( 3DES )。
PS:API 的实现我是后面才知道的,然后顺便了解了一下 SSL。
移动端:
对 iOS 开发不太懂,不发表意见,Android 开发这块有一些了解。
今年才换成 AS 开发,然后之前有把 key 存 Manifest 里面的,所有依赖都是依赖本地二进制文件。
PS:由于领导对签名机制不了解(看情况也没打算去了解),开发签名密钥没做保护,基本上是公开的。
Web:
asp.net 模式就那样吧,具体我也不太清楚,基本上就是“前端”写好静态页交给后端。前端现代化?没有的。
自身的情况:
出于“安全”的考虑,所有调用第三方平台生产环境的 key 都是我管理的,开发只知道开发环境的 key。所以,后台发布、移动端打包的时候我得替换配置,或者修改代码里面的配置再来发布或者打包。
弄了几次之后觉得特没意思,先是写了个脚本来做,后面觉得还是没意思,找到 jenkins,看资料自己搭了一个解决问题。
后台发布也想办法解决了,开始是 svn hook,后面弄成 saltstack,不过还没把之前 svn hook 那套换掉。(原因后面讲)
数据库这块,因为领导偏好存储过程,orm 是什么?没有的事。靠工具对比线上和开发数据库差异,生成脚本执行升级。本来弄了个 jenkins 构建任务来做,领导说不安全,手动。还好这个频率相对低很多,就这样吧。
弄 redis 的时候,用了 docker 部署,顺便玩了下 openresty。不过领导对这块不感兴趣,只要结果,所以没跟他说细节——反正没问题就行了。
看法:
“小公司学的东西更多。“——这句话是狗屁。
学的东西多不多主要还是看个人,指望到一个技术相对先进还能遇到热心大牛同事教的可能性比你进大公司的几率可小多了。
至于同事怎么想,反正他们有兴趣主动学习交流我也不排斥,也不会保留什么,大家共同进步。但是别指望我会主动手把手一点点教——没有上进心的人就算你无偿耗费时间去教人家只会觉得烦,觉得你在装逼。
公司对我什么看法?
我只知道我弄出来这些 CI/CD 工具除了让领导觉得我更闲,似乎没打算给我加薪之外没什么用处。
并且由于现有的使用 svn hook 实现的自动部署暂时没什么问题,想切换成 saltstack 也没有当初那么积极——反正现在的就够用了,干嘛自己找麻烦。
没错,小公司就是这样的——反正现在的就够用了,干嘛找麻烦去尝试新技术?
未来:
个人在学习 python web 后端和前端技术( npm、webpack 这套),linux、docker 这些也还算熟悉吧,打算找个高级点的运维岗跳坑了。不过要补的东西就有点多了,数据库这块还是缺少实践。
只能说共勉。