今天发生了一件事情,就是苹果在iOS中使用了JSPatch以及LuaPatch这些热更新技术的应用开发者,收到的苹果的警告邮件,要求在下一个版本提交的时候移除这些模块。首先吐槽一波,这件事情在网上就炸锅了一样,各种各样的吐槽,React Native在Github上的一个issues变成了灌水和吐槽的集中营,我怀疑开发者看到这么多垃圾邮件绝对都要疯了。

对于这件事情就先不进行吐槽了,我想来谈谈我对技术选择的一些看法。虽然我工作经验不多,但是也可以在我目前的见解下谈一谈我对技术选择的看法,可能以后我再从新看这篇文章的时候我会认为现在想想法是垃圾呢。

在网络上总有人在讨论哪个语言是宇宙第一的语言,哪个语言最有前途,或者哪个IDE是世界第一,如果只是自黑和开玩笑倒是可以说说玩玩。如果不是,那在我看来,没有不好的编程语言,只有不好的程序员。在开发软件的时候,不能总想着新技术和前沿的理论就拿来进行使用,还是得进行一定量的选择的,因为新和技术牛,不一定适合现在所开发软件的场景。

根据项目需求选择技术。对于程序员来说,当然都是希望在项目中使用使用自己拿手的技术,这样的开发成本和精力的投入都是比较低的,但是如果不为根据项目本身的特点和要求来选择一个合适的技术,其实等于在给自己挖个坑,日后后悔都来不及。在选择技术的时候,最基础的当然是语言的问题,这就要进行讨论了,选择自己团体大部分或者有利于项目发展的语言都是好的,因为技术是辅助产品成功的一个因素,虽然有的时候这个是至关重要的因素。其次就是对于框架的选择,是完全的使用新的框架进行开发,还是基于已经有的开源框架进行二次开发定制都是必须要进行考量的。

还有就是不能盲目使用新技术新理念。我以前也是喜欢追新的技术,喜欢学习和使用新的技术,但是发现自己的编程能力和水平没有多大的提高,反而是每种都会一点,但是能都没有对一门技术进行深入的研究。后来我回归到了,关注新技术的发展和趋势,然后努力的学习基础方面的知识,找准适合自己一门技术就深入进行研究。如果发现一门技术自己感觉不错,风评也很好才会去尝试。不是大公司出的东西都是好的,可能那些东西只是适合他们自己的业务并且有可能是自己内部被淘汰的东西。所以,合适合理的选择技术,对自己和团队都是一件非常好的事情。

最后,还是提一句,基础知识是十分重要的,许多人都说,工作中都在用各种框框,基础没什么用。我就想问一问,如果知识想成为一个好的API工程师是够了,因为这也是挺难的。如果想更进一步,或者想成为一个能写框架的人,那么基础方面的知识是十分重要的,而不是知识嘴上说说的那种重要而已。