犹豫了一下还是来回答一下这个问题,这是我面试的时候经常问的问题,因为每个框架和每个项目都是不一样的,选择框架是一件非常看经验和思考判断能力的东西。
项目大小只是决策的一个根据而已,甚至还是不怎么重要的一个根据。下面聊聊我认为选择框架时需要注意的地方
团队成员情况 & 未来团队成员情况 & 所在地职业市场情况
首先,如果团队现在和未来都只有你一个人(比如自己的toy project),那选自己最想用的就好。但只要不是这个情况,你最好先得了解市面上常见的各种框架,然后忘记自己的个人偏好。
了解你的团队成员的现在情况,考虑你的团队未来的发展速度,未来可能加入的团队成员的情况,以及你所在地职业市场情况。打比方说,Laravel或许是个不错的选择,但如果你在二三线城市,团队又必须高速发展大量招人,选择Laravel可能很快会让你陷进“composer和现代PHP技能培训班”的窘境,布教是一项伟大的事业,但不是你的职业
项目生命周期 & 未来演变方向
这就是我觉得远远比项目大小要重要的因素之一。有的项目,作为贵司的主营业务是需要长期维护,持续迭代的。而另一些项目可能作为一些边角、过渡的项目,可能做完以后不会再有什么后续的需求。最后还有一些外包/类外包的项目,交付以后就没有需求/后续需求可以当另一个项目。
再大的项目,需求再多,如果是第三种,无需考虑未来演变的,那么框架的扩展性就能够被牺牲(从而换取开发速度或其他好处),打比方说wordpress改改之类的选择就可以被考虑。再小的项目,如果是贵司的主营业务,持续迭代的,那么就算工作量再小&