不知道多少想进入互联网行业的创业者曾问我,我想做一个项目,我该用什么技术?
存在即合理,你所选择的所有技术本质上都可以完成任务,只是成本问题。
首先考虑的成本是学习成本,如果你说用这种技术很轻易可以实现功能,但是学习使用这种技术就需要几个月,等你团队成员学习完成,项目早就过了最佳时期。所以你明白外面为什么一堆企业在用PHP了,因为上手实在是快得没有朋友。
接着需要考虑的成本,就是找人的成本。试想想,你决定用C++来写一个后台管理系统,你确定能很低成本找到会这技能的同学吗?但是假如你采用了php这开发方案,外头随便一抓都是php,找人根本不愁(注意:我并没有对php有偏见)。
核心技术研发风险也是一个需要考虑的问题,假如你是要制作一只爬虫,我相信你在搜索引擎找到的大部分资料都是关于python的,如果你用其它语言来写爬虫也无可厚非,反正都是可以写出来,还是那句话,成本问题。
请用你的技术leader最熟悉的技术,要知道项目排期,核心系统研发都是依靠你的技术leader一行一行代码堆起来的。技术leader很辛苦的,就不要强迫他去话费额外的时间耗费在不在行的其它技术上了。
用成熟的技术而不用最新的技术,这句话是针对小型团队而言的。成熟的技术,你遇到的问题别人早就遇到了,答案还发布出来了。新技术,社区资料不多,出了问题找不到答案,你就蒙头查源代码去吧。所以新技术先让大企业去踩踩坑,用顺了,我们就拿过来用。
有没有好奇互联网那些所谓主流技术是如何产生的呢?其实各种技术都是圈地为王。因为互联网行业众多创业公司的CTO都是从大公司出来的,而他们在创业公司选择的技术往往是在老东家那里学来的。然后就这样子一个带一个的,某种技术就流行开来了。就像我习惯使用python + flask开发后端,虽然偶然使用一下golang。受我影响,身边的朋友越来越多的使用了python和flask作为项目的技术选择。
慎用高大上的技术,老老实实用一下普通的技术吧。就像docker和微服务现在挺热门的,但是使用前请考虑一下自己的技术团队能否扛住这种技术栈,不然一旦投产后问题无法解决,后果很严重。其实Linux + nginx + php/python + mysql足以应付大部分场景,没必要用多么新的技术。
从零开始开发还是二次开发?二次开发优势在于,系统可用,自己仅仅需要开发一些定制功能即可,需要的时间比较短。当然缺点很明显,在已有基础上改动,就需要看懂原有系统,后期维护工作也明显增大。从零开始,就需要考虑系统从0到1这个阶段是非常耗时的,但是后期维护相对而言轻松一些。
是否真的需要投入技术来开发?这世界上有一种东西叫做开源,开发系统之前请考虑一下有没有现成的东西可以满足业务需求。看看多少企业用wordpress制作公司官网,多少企业使用discuz作为公司产品论坛,多少电商企业直接用ZenCart呢。
技术选型,三言两语无法言尽,从业务出发才是根本的解决方法。
由于这只是一篇短短的小文章,没法详细说明什么时候该上消息中间件,什么时候又该异步回调处理。也没办法详细说你该用什么语言什么框架。如果你想了解更多也可以私信我或者留言评论,我会具体回答。
网友评论