跨平台开发,要保证同样的输入就能得到一致的输出。所以在使用Opengl API的时候,就要注意它是不是能保证各个平台的一致性。最近解决了一个Bug, 在windows 系统环境下显示正常,但是到了web环境就出问题了,开始还以为是某些编译参数或者基本逻辑的问题,完全没想到是有同事吴用某些API的问题。后面才知道是用了 glGetActiveUniform 这个API来实现一个Material的功能。但是这个API并不保证返回的结果平台一致性(这个函数返回的数据顺序在两个环境下不一致),就导致了在web环境下uniform的数据输入错误,显示结果就错了。
得到的经验是: 自己的系统要优先依赖自己的系统设计来保证逻辑的正确性(完备性),而不是去盲目相信一些系统或者第三方的API功能
这里说到了非常重要但是很多开发人员和公司容易忽略的系统设计(架构)工作,一个系统的设计架构是及其重要的。好的方案可以长远的建设性的规避问题。那么问题来了,如何才能有好的架构? 拿来主义是不可能有好的架构的,就算拿来的是一个好的架构要驾驭它你自身要具备足够的实力。如何具备实力,没有别的途径了,只有脚踏实地的不停的在这方面磨炼: 不停的进行实践研习优化自己的设计架构。