今天 因为iOS 开发的内部版本号耿耿于怀好久,释然后让我有了一个新想法:从前,能让我兴奋的点是解决一个有一个拗脑筋的问题,见大部分博客便知,都是技术方面的积累。

那么从今天起我决定让自己有个新起点,我要为成为一名出色的架构师而努力奋斗了。

 
起因: 发布了新的测试包,为 iOS 2.0.0(2.0.0.2) ,项目管理人员,不懂括号是什么意思。
 
对话场景:
我:是内部版本号。
他:能不能写成整数?
我:安卓是有的 (想起安卓是build 一个整数 只升不降)
他:iOS能也是整数吗
我:不理解 你这么干的意义 版本号 包括一个或多个时期分隔的整数。内部版本号build也一样,虽然简单来说 每次要比上一次大,但是 用以记录开发版本的版本号和发布版本号同样重要,版本号的管理是一件非常谨慎的事情
他:是的,我只是想了解编号规则,外部/内部要尽量分开,尽量不能混淆
比如一个是2.0.0 另一个是412
。。。。。
中断过程,我在我的几个技术群里发起讨论,全部回答不过于:“当然可以写成整数,不过我不这么写。”的结论 他来到我工位面前继续讨论
他:改成整数有什么问题吗(应该是不满意 我上面的回答)
这么改,内部版本号和外部版本号就分开了并且不混淆,结构非常清晰,并且 你会知道你这个版本打了多少个包
我:()内部版本号可以跟踪每一个发出的版本,发出的错误 ,定位错误信息具体发生的位置
() 正式版本有利用外部版本号区分版本 做强制升级的作用,版本号分割的每一级别每一时期都有区分。当然内部版本号也可以发挥这个作用
(3) 参考了同行业人员,虽然可以,但并没有人这么写或者说这么写的人不是大多数
他:这个理由不好 (应该是整数也可以blabla的意思)
我:如果你觉整数版本号能够知道打多少包,有这个需求的话,分段式版本号是可以实现的,不觉得哪里还有不妥 。。。
剩下的过程,他一直强调我在紧张,我平常处理矛盾方式是,认怂和妥协来避免冲突。毕竟冲突时刻,不是用脑子用的是情绪。我不是紧张,而是一直动脑想表达分段内部版本号是谨慎,广泛,友好的。 

但是他的话术起左右了,说紧张我的音量就提高放大的告诉他,我怕他。。。(现在觉得我不该那么说,不够理智,这是话术的作用,被对方一直揣测情绪变化,反而真的有情绪变化。根本原因 就是我不够强大,心理和技术表达 两个方面,唯一值得表扬的是技术立场的坚持)
上午,在争论后,和一堆琐事中结束,但是我的思考没停止。
 
“这不是理由,我想听理由。。。”  如果是CTO,对技术人员来说很有指导意义,但是目前能对iOS产品端负责的人是我,有且只有我能负责iOS技术担当和架构担当, 我应该有充分的站得住的立场。
 
我想了好久,其实这还可以从好多角度去考虑这个问题。
 
重点来了:
()内部版本号到底该对谁友好?    
内部版本号 应该是对开发人员有好的重要参数,记录了每一个新产生的版本包括的内容产生情况和即每个build都记录你的 ipa 包和套装的联系。 (整数并没有体现对开发人员更友好) ()上面有提到 使用整数作为内部版本号,是小众使用,如果出问题,是小众问题,偏问题,解决效率大打折扣,存在一定时间内无解可能 。 而分段式版本号是最普遍业内人士开发者遵循并使用的。即使出了问题,也是大众问题,也会是容易迎刃而解的问题。 (相比而言,我们不是一个技术创公司,比不上苹果,微软 我们拿什么胆量来 才承担使用类似偏技术,小众使用的方法规则带来的后果) () 知道产品迭代包的个数 ,或者怎么能清晰表达产品迭代 这个是什么问题?
这应该是一个需求 不应该是技术选择 。
技术选择应该是架构师考虑的事,而不是项目管理替技术人员做选择的事。架构师只需要规约成一个功能方案。达到需求目的 (此时方案已经和谐成了内部版本号最后一位做累加,直观表示内部版本开发阶段打包次数)
当然还有别的解决方案,比如做登记表,统计每一次打包 迭代内容,甚至把每一次打包都存到公司云管理上。甚至每打一个包都要打tag,方便用来复现和深度追踪问题
并且打多少包还和测试程序,测试节奏有关系。
参考安卓,连续四天天打出的包都叫 1.1. (Build )这样怎么追踪问题呢?? 是哪个具体子版本出了问题?目测只知道是第28个包,但是不出来是哪个内部版本,或者团队合作打出的分支功能测试包之类的。(分段版本号的意义在此凸显)
随着公司不断引进新的牛逼的技术人才,突然一眼看到我们的内部版本号不是分段的,是个整数。会不会对我们整个技术团队的信赖感甚至公司的认同感都会大打折扣?
总结:
    当有人 给你提问题的时候,你要动脑认真思考一下他问你的问题的本质。
    他问的到底是个什么问题? 这时候 不需要激情反对,也不需要完全妥协。
    
    如果是功能性方面有需求,那么我们就应该用技术去翻译 解决。
 
    如果是技术上的问题,尤其是牵涉到技术使用了,那么提出的人是谁?
    如果是CTO,你的技术主管,这个技术指导意义非常大,并且CTO能够对技术使用负责。
    如果是公司其他职位的人,向技术人员提出的问题只能是功能性质的问题,不能是技术问题,因为他们不会对技术负责。其次,有且只有你自己能对自己的使用技术负责。
    说道这,真的觉得豁然开朗。
    不是有冲突就不好,真的能让自己成长。
 
参考:
1. https://developer.apple.com/library/content/technotes/tn2420/_index.html#//apple_ref/doc/uid/DTS40016603-CH1-VERSION_NUMBER_AND_BUILD_NUMBER_CHECKLIST
    

iOS 当公司有人向你提问,你该如何应对?的更多相关文章

  1. 苹果iOS苹果公司的手机用户都有权索赔

    大家知道.手机中的操作系统(基础软件)存储在手机固(firm,ware)之中,一般而言,手机用户自己是不能修改的. 苹果iOS手机的系统后门(服务程序)也存储在手机固件之中.手机用户自己是无法删除的. ...

  2. ios外包公司——技术分享:手机应用开发步骤

    1. 确定你的创意 您的创意是否有人做过,如果有类似的app,那就要多多考虑,争取超越并且有一些独特的优化设计在其中 2. 定位应用 通过苹果的人机界面指南(Human Interface Guide ...

  3. ios外派公司—提供ios程序员外派ios应用外包业务(北京动点 可签合同)

    北京动点飞扬长年提供ios工程师外派业务. 我公司程序员平均技术情况如下: 1.二年以上iPhone/ipad开发经验: 2.熟练使用Xcode.Objective C编码技能: 3.熟悉iOS开发框 ...

  4. iOS 开发 -----公司测试打包上传流程

    打包iOS应用程序 如果想要将做的iOS应用程序安装到自己的iOS设备上测试.或者安装到别人的iOS设备上,或者想发布到App Store中,先要给应用签名.签名就要有证书,这就需要申请证书的过程了. ...

  5. ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现

    前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的.尤其是当有一点小改动需要重新出包时,那简直是个折磨的人的工作.通过一番研究后,遂决定写一系列脚本, ...

  6. ios外包公司——技术分享:IOS开发教程

        iOS入门培训,适合已经有C/C++/Java/C#基础的人学习.   本大仙主讲,总共4讲(第4讲尚在制作中),这仅仅是iOS开发的入门而已.学完本教程,应该已经足够你自学并开发app了. ...

  7. iOS 开发 公司开发者账号,在多台Mac上合作开发,共用一个账号和证书--图文详解

    参考 导出证书申请的MAC里的Xcode的开发者账号 .developerprofile 导出的开发者账号文件.developerprofile 导出PKCS12既是.p12文件 所拷贝的资料, .d ...

  8. iPhone 6/plus iOS Safari fieldset border 边框消失

    问题:iPhone6 plus 手机浏览网页,fieldset border 边框消失. 示例代码: <div> <fieldset style="border: 1px ...

  9. IOS计划 分析

    1.基本介绍 IOS苹果公司iPhone.iPod touch和iPad操作系统和其他设备的发展. 2.知识点 1.IOS系统 iPhone OS(现在所谓的iOS)这是iPhone, iPod to ...

随机推荐

  1. error: unkown OS type hvm 解决方法 kvm libvirtd 重新加载已有虚拟机信息

    想验证下最新版本的qemu的一些功能,于是将其从qemu-0.12升级到了qemu-1.4,编译安装一切都很顺利,但是当创建virtual machine时,报错如下: [root@compute-- ...

  2. UVa 12563 劲歌金曲 刘汝佳第二版例题9-5;

    Problem J Jin Ge Jin Qu [h]ao (If you smiled when you see the title, this problem is for you ^_^) Fo ...

  3. 简单介绍一下vue2.0

    Vue Vue是用于构建用户界面的渐进框架.作者尤雨熙特别强调它与其他的框架不同,Vue是渐进式的框架,可以逐步采用,不必一下就通过框架去重构项目. 另外Vue的核心库只专注于视图层,这样就更容易与其 ...

  4. python django -2 ORM模型

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...

  5. Unity如何判断网络连接类型

    今天遇到了一个问题,如何判断手机游戏当前的网络连接类型,是wifi还是234G? 起初准备在Android中写好插件供Unity调用,后来在网上浏览众神的帖子时,在csdn上看到了使用NetworkR ...

  6. matlab中双站异面直线法定位目标

    calc.m %% 参数信息初始化 [x1,y1,z1]=deal(); [x2,y2,z2]=deal(,,); m1=/; n1=/; p1=^(/)/; m2=; n2=-^(/)/; p2=^ ...

  7. ubuntu在vmware下使用问题

    问题1: 在vmware虚拟机下安装的ubuntu系统,为了在windows和ubuntu之间拷贝数据方便,所以在vmware上安装了vmware tools.在安装了vmware tool之后会在u ...

  8. ios 2017启动页(Launch Screen Images)、图标(App Icon)尺寸大小

    ios 2017启动页(Launch Screen Images).图标(App Icon)尺寸大小   iPhone Portrait iOS 8,9-Retina HD 5.5 (1242×220 ...

  9. 如何解决mac下MAMP不能重启apache server的问题

    第一步:检查问题  在终端输入:sudo /Applications/MAMP/Library/bin/apachectl start  终端会提示你那个目录下的那个文件出现了什么问题 第二步:逐一排 ...

  10. Android开发者必知的5个开源库

    摘要:过去的时间里,Android开发逐步走向成熟.而无论出现多少Android相关的开发工具,我们每天使用的大量开源库却始终是不可或缺的.这里,向大家介绍的是,这个任劳任怨的大家庭中,最受开发者喜爱 ...