坐标深圳,传统行业老板投资做平台,不足 20 人的小公司,主要产品是移动端 APP 。 公司情况大概跟各种段子或吐槽差不多,就不细说了,略过。
后端开发语言 C#,数据库 SQL Server
移动端 iOS 和 Android
项目代码的版本控制是由 TFS 实现的。 iOS 与 Android 是使用的 Git in TFS ,后端则直接 TFS 。
公司领导对开源系技术栈有着明显的“不信任”偏向,并且后端开发人员,对非 Windows 平台的工具集也有一定的排斥,所以版本控制这块想切换到 Git 上基本没可能。
另外, TFS 触发还有 WinRM 这块,均有看过相关资料,虽然与 IDE 集成度非常高,但是使用成本对公司现状来说一方面领导层不能接受、另一方面开发人员也有排斥。
完全基于微软的工具集实现,一方面增加了项目的复杂度,另一方面微软的东西虽然功能强大,但是我不是后台开发是,这方面推行有难度。而且小公司对持续集成这块的动力本身就不足。
目前, iOS 和 Android 都已经实现了基于 Jenkins 的自动构建,自动发布到分发测试平台。(注:没有做到自动化测试。)
API 这块已经选择 FitNesse 搭建了文档与测试平台,不过由于后端开发这边积极度不高,完善度有限,还不能添加到 Jenkins 中跑自动测试,进度也在追。
后台部署这块,当前是使用 SVN 直接提交编译好的二进制文件,然后通过 SVN Hook 脚本做自动部署。( Windows 平台 , IIS )。
也有计划使用 Jenkins 的节点功能做成集中式自动部署(这块正在测试可行性,基本上已经完成了)。
PS:以上可以在我的博客中看到相关的记录。
由于,本人是所谓的"野路子",虽然通过以上工具集的官方文档将持续集成平台搭建起来使用,但是数据库这块实在是资料过少。
目前公司使用的 RDS For SQL Server ,已知的问题是无法使用 dacpac 包部署。
最开始有提议使用 VS + TFS 集成的数据库项目管理流程,被领导以及后台开发以太复杂为由否决(个人也觉得确实复杂)。
目前是使用的 Red Gate 的 SQL Compare 比较差异的方式生升级生产数据库——先生成快照作为 baseline ,然后对比快照与线上库的差异,生成脚本。
现在的问题是,由于区分开发环境、测试环境、生产环境(最近准备再加一个预生产环境),每次升级都是手工对比几次,机械化劳动而且比较容易出错。而且,如何回退的问题总是在困扰着我——单纯的备份还原解决不了数据问题;直接回退结构又有丢失数据的风险。
请问各位 dalao 有没有觉得好用的工具(不限于 SQL Server ) ?最好是开源的。(现在用的破解版,囧。)
另外数据库升级这块能否介绍一下实践经验?特别是回退这块的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.