低代码的再次火爆引发了众多业内人士的讨论:
- private int[] _values = Enumerable.Range(0, 100_000).ToArray();
-
- [Benchmark]
- public int Find() => Find(_values, 99_999);
-
- private static int Find<T>(T[] array, T item)
- {
- for (int i = 0; i < array.Length; i++)
- if (EqualityComparer<T>.Default.Equals(array[i], item))
- return i;
-
- return -1;
- }

两种观点都非常极端,但低代码的出现并非空穴来风。
上世纪八十年代,美国就有一些公司和实验室开始了可视化编程的研究,做出了4GL“第四代编程语言”,到后来衍生成VPL“Visual Programming Language可视化编程语言”
2014年,“低代码(Low-Code)”的概念被Forrester Research研究机构正式提出,关于“低代码”的定义是:利用很少或几乎不需要写代码就可以快速开发应用,并可以快速配置和部署的一种技术和工具
2017年,Gartner创建了一个新门类,提出了aPaaS(应用程序平台即服务)的概念,随着这一概念的出现与推广,低代码开发平台(LCDP,Low-Code Development Platform)在全球市场上更为活跃
低代码在不断优化企业信息化领域的开发模式和发展格局上,具有三大块的优势:
简单易用:低代码的使用门槛很低,使用者无需代码基础,即可像搭建积木一样,快速搭建出符合需求的个性化管理应用。
降低成本:(1)时间成本:使用低代码平台搭建应用,传统开发模式往往一个月才能完成的搭建,低代码平台可能几个小时就搞定了,大大节约了企业应用开发的时间成本(2)人力成本:企业内普通的业务员,通过简单学习就可以操作应用,降低对专业研发人员的需要,从而降低了人力成本(3)金钱成本:企业需求发生变化时,通过低代码平台配置,可以很快根据需求进行应用修改,与传统开发模式相比极大降低了二次开发的风险与成本。
提高效率:(1)交付效率:由于低代码平台应用搭建速度快,且代码越少就意味着bug越少,使用低代码平台避免了编写代码时的bug问题,提高应用交付效率;(2)协作效率:业务人员通过简单的学习就可以知道平台可以搭建哪些应用,避免在为研发人员提供设计方案时出现“不可理喻”的方案,提高部门间的沟通协作效率
- [Benchmark]
- public int GetLength()
- {
- ITuple t = (5, 6, 7);
- Ignore(t);
- return t.Length;
- }
-
- [MethodImpl(MethodImplOptions.NoInlining)]
- private static void Ignore(object o) { }
低代码必将成为未来系统开发的一大趋势。
- if (format.IsDefault)
- return TryFormatInt64Default(value, destination, out bytesWritten);
-
- switch (format.Symbol)
- {
- case 'G':
- case 'g':
- if (format.HasPrecision)
- throw new NotSupportedException(SR.Argument_GWithPrecisionNotSupported);
- return TryFormatInt64D(value, format.Precision, destination, out bytesWritten);
-
- case 'd':
- case 'D':
- return TryFormatInt64D(value, format.Precision, destination, out bytesWritten);
-
- case 'n':
- case 'N':
- return TryFormatInt64N(value, format.Precision, destination, out bytesWritten);
-
- case 'x':
- return TryFormatUInt64X((ulong)value & mask, format.Precision, true, destination, out bytesWritten);
-
- case 'X':
- return TryFormatUInt64X((ulong)value & mask, format.Precision, false, destination, out bytesWritten);
-
- default:
- return FormattingHelpers.TryFormatThrowFormatException(out bytesWritten);
- }