一个好的技术团队应该怎么选择开发语言

简介: 在过去的三年时间了,作为曾经的研发部经理,我和我的技术总监始终在为一件事而努力着,那就是选择一门合适我们团队的技术语言。 我们研发团队一共有9个人,分为三个小组:移动手机组、后端接口组、web前端组,如果按照大公司的做法,我们完全不必为每组应该选择什么技术语言而担心,我们可以在每组中选择一个组长,由他全权负责即可,公司层面只要最终的结果即可,可事情并没有那么简单。

在过去的三年时间了,作为曾经的研发部经理,我和我的技术总监始终在为一件事而努力着,那就是选择一门合适我们团队的技术语言。

我们研发团队一共有9个人,分为三个小组:移动手机组、后端接口组、web前端组,如果按照大公司的做法,我们完全不必为每组应该选择什么技术语言而担心,我们可以在每组中选择一个组长,由他全权负责即可,公司层面只要最终的结果即可,可事情并没有那么简单。

现实总是残酷的,其中的原因有这么几个:第一:岗位经费不高,想要低成本找一个技术合格的人非常难;第二:知名度有限,一般的技术人才都有更好选择的条件,好的人才当然更倾向于知名度高和前景好的公司,而对于没有知名度且前景一般的公司来说,想要吸引他们加入也是一件极其不易的事;第三:公司的地理位置,即不属于技术人员聚集的地区,有在离市中心比较远的郊区,想要让他们来面试都是一件极其不易的事情。所以凡事还得亲力亲为,加上公司刚开始发展所有的一切都是空白的,选择一门合适的语言就迫在眉睫了。

在这三年的时间里,我们每个组都经历了很多语言和框架的更换,也一直在找寻适合我们的框架,现在回想起来好的语言框架要符合这几个要素:

1、技术语言发展成熟;

2、技术语言统一;

3、技术门槛低;

4、使用人数多;

5、技术匹配目前业务需求;

技术发展成熟:代表了出现问题之后的技术解决方案很多,那么团队处理问题的速度就会很快,相应的成本也就最低,这个是选择语言与框架非常重要的一个指标。

技术语言统一:有这么几个好处,第一:团队之间交流和互动会更紧密,产生问题的处理成本就会很低,同时能够增加成员之间交流的话题,增加彼此的友谊;第二:出现特殊情况,能够很好的使用现有人员替补代替;第三:利于管理,比如接口开发如果使用nodejs,其本质还是js,前端开发使用vuejs,也有很多js的语法,这样对于同时管理两个组的领导技能要求就会降低很多,只需要有很好的js功底即可,而如果接口开发使用的golang、c#、java,那么你就得即会这些后端语言,又要会js才能搞定问题。

技术门槛低:别觉得技术门槛低是什么坏事,技术门槛低并不代表对技术人员的要求低,而是如果是其他语言的人想要中途转学,会容易很多,还有就是技术门槛低,相应的从业人员就会多很多,这样招聘的压力就会小很多,相应的劳务报酬也相对会低一些。

使用人数多:这个比较好理解,让你在紧急的时候能够很轻易的招聘到你需要的人,而不是凑合的用,或者重新培养相应的人才,这样会耽误你开发的进度。

技术匹配目前业务需求:我们在技术开发的时候容易陷入一个误区,就是开发过于庞杂复杂的系统,我们都听过一句话,罗马城不是一天建成的,一口气吃不成一个大胖子等等诸如此类的话,多的数不胜数,而然我们还是容易陷入思维的误区。我们之前花了很长的一段时间按照阿里的框架设计了一个很复杂的系统,把一个交易系统分为4、5个中间系统,前后端分离还不够,中间加了分部署的中间任务调度系统,把所有的系统平行分割注册,以提供给不同的子系统进行调用,为此我们花费了很多的经历,并且不得不为一些新的问题付出很多的努力,比如分部署机器的服务自动注册,怎么维系不同的机器健康心跳检测,怎么分发任务等等,花费具体时间和经历的结果是,前后端开发调试极其困难,调试很繁琐和复杂,要使用排除法,分开测试每个系统之后才能确认问题所在,最主要的是我们把系统花费很大经历初见雏形之后,发现根本用不上,以后的三五年都用不上这么庞大和笨重的系统,而我们却为此花费了太多的经历,这些是很不可取的,我们应该把技术资源用在更多可以创建价值的事情上,完美主义并不适合所有公司,小公司的模式更适合从下往上的快速试错和快速迭代的形式。

掌握了以上“心法”,相信会让你的团队事半功倍。而我总结一下,我们总结一下我们技术衍生的具体方案吧。

我们首先把我们可以用到的主流技术穷举一下:

前端组:vuejs、ag、react

后端组:java、c#、nodejs、go、php

移动开发(混合开发):react native、dcloud、xamarin、apicloud、deviceone、weex

前端框架,从使用人数和学习门槛的角度来分析,最理想的框架vuejs、react次之,非要排出一个的话应该是ag;

从技术统一的角度来看,那么nodejs是我们最好的选择,go次之,java、c#的学习门槛算是在这几个里面比较高的,如果不是要求千万级的负载,那么nodejs完全可以胜任;

移动开发,如果从性能和技术统一的程度,以为前端我们使用vuejs或react那么最理想的就是react native(以下简称rn),rn的性能是无可非议的,它有一个好爸爸facebook使用了虚拟dom重构了它的执行基础,性能是仅此于原生的,同时有主要用的了js的技术,这样就能和接口和前端都统一了,并且rn的技术解决方案非常成熟,各种组件都能很轻易的找到,技术解决成本也更低,使用起来更得心应手。

所以综合以上所述,最理想的框架:

前端:react、vuejs

后端:nodejs、go

移动开发:react native

 

以上框架都是经过3年的尝试,总结得出了符合中小公司整体框架的最优方案,鄙人拙见,愿抛砖引玉,大家一起讨论。

 

img_fa0be433d68c8212b2b0b3b1a564ccb1.png
如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏 微信打赏
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
关注公众号: img_9bde0f31ac4a0eca10b1bd7414b78faf.png


作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
5天前
|
Kubernetes Cloud Native 容器
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
56 1
|
5天前
|
开发框架 前端开发 JavaScript
开发公司和个人开发者有什么优势?软件开发如何选择?
开发公司和个人开发者有什么优势?软件开发如何选择?
16 1
|
5天前
|
运维 监控 Serverless
【专栏】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器(Serverless)
【4月更文挑战第28天】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器。它基于事件驱动,自动扩展资源并按需计费。优势包括缩短开发周期、优化资源利用、降低成本、提高可用性及简化维护。然而,冷启动延迟、调试困难、性能监控、安全性和学习曲线等挑战仍需解决。随着技术进步,无服务器架构将在科技发展中发挥更大作用。
业界新标杆!阿里开源自研高并发编程核心笔记(2023最新版)
提到并发编程很多人就会头疼了;首先就是一些基础概念:并发,并行,同步,异步,临界区,阻塞,非阻塞还有各种锁全都砸你脸上,随之而来的就是要保证程序运行时关键数据在多线程中的可见性、核心业务的原子性、多线程通信的有序性。虽然很多人工作可能接触不到这些的东西,但是面试就是得问。假如你跟一个有过高并发编程经验的人一起面试同一个岗位,你就是背了些面试题,而人家是确确实实有真东西的,那后续的录用结果想必就不用我多说了吧~
|
12月前
《阿里云产品手册2022-2023 版》——企业级分布式应用服务
《阿里云产品手册2022-2023 版》——企业级分布式应用服务
404 0
|
运维 监控 数据可视化
细数Serverless的“配套服务”
Serverless开发者工具通通常情况下包括命令行工具,编辑器插件以及其他工具。 命令行工具一般情况下有厂商一方工具,和开源建设的三方工具两种,例如AWS Lambda的SAM CLI,阿里云函数计算的Funcruft等就是典型的一方工具。这类工具的特点是和厂商、产品的匹配成都会非常高,一些特性能力的支持会比较迅速,缺点是有的时候比较保守;
164 0
|
监控 开发者
基于阿里云开发心得
我相信在未来阿里云服务器一定会发展的越来越好,因为不论是像我们这种科研设计项目过程中需要用到的服务器阿里云可以提供,而大中小企业级的服务器集群部署阿里云也都可以提供完善的方案!
|
消息中间件 Java 中间件
飞天计划极大帮助我学习分布式开发
飞天计划极大帮助我学习分布式开发!给我提供了良好的运行环境
|
存储 人工智能 运维
我心中的云时代原生开发环境
试想,如果未来的应用开发,开发者通过函数计算、弹性容器服务等能力去承载自己的业务逻辑,存储、数据库、消息等中间件能力通过 Backend as a Service 的方式去获取,即未来使用云计算的开发者能够无需关心云计算的基础底层概念,直接聚焦自己的业务开发,以近乎无感的方式获得云计算的帮助。基于这样的趋势的预判,本文作者开始在云原生的路径上探索,并致力于为云时代的原住民开发者提供一个理想的一站式的开发工作环境:云原生 Serverless 开发者工作平台。
641 0
我心中的云时代原生开发环境
|
JavaScript 前端开发 安全
最强开源低代码平台 - Appsmith 功能介绍与使用体验
Appsmith 成立于 2019 年,是一款开源低代码框架。这两年发展迅猛,是现在 GitHub 上最火的低代码开发平台(18k star)。
2466 0
最强开源低代码平台 - Appsmith 功能介绍与使用体验