今天的电子设备的开发者, 站在一个新时代的门槛上.
今天的典型电子产品的开发者, 几乎或多或少都需要参与产品进入"云时代"的设计中, 或者说 IoT 的物联世界构建中.
这种 IoT 世界的 incoming 时代, 不仅在产品/应用带来革命, 同时在研发环节, 也显著影响了研发/测试/部署的环境, 模式, 步骤.
这种研发影响或变革, 甚至不单单是电子设计, 也渗透到了软件开发, 我们今天如此依赖各种开源资源/模块/代码, 放在5年前都是无法想象的事情.
我们主要以 Node.js 在 IoT 平台服务软件项目中的例子, 来说明过去5年里, 这种开发模式的剧烈变化:
(1) 共性:
引用(略有修改): “今天的物联网(产品)的开发, 和传统嵌入式开发已经存在足够的区别, 暂且称为`新型物联网开发`, 归纳几个主要特点: a. 由`支持网络`-> `基于网络`; b. 硬件高度整合. c. 硬件模块/功能扩展越来越容易.
d. 设备终端完全互联. e. 通常有开源社区 NPM,
github, wiki 等支持.”
(2) 共享: 在 Node.js 的项目中, 特别是 NPM Module 的使用, 使得开发能够在开源的数十万计的各种 NPM module 中挑选, 并整合到项目中使用(开发者也可以向 www.npmjs.com 贡献 NPM 模块);
过去20年, 传统的开发方式为闭环的开发
team, 开发效率与成功率, 依赖于开发者的个人能力与其过往工作经验积累;
而 Node.js 的 NPM module 开源世界, 使得今天的 IoT-物联/服务平台开发通过依赖外部模块, 这极大提高开发效率, 并使得开发团队的小型化, 以及松散合作成为可能. 这与上述 “通常有开源社区 NPM, github, wiki 等支持“的特点归纳吻合.
甚至, 基于 github, wiki, npm 的开发模式, 也深刻影响到了传统语言的开发模式. 即便是不太那么"时髦"的 C++, 也有了在 vcpkg 的开源模块(static/dynamic lib/dll) 的支持, 在 windows 平台的开源项目数量或者已经超过了 1,000. 而这种拥抱开源的势头源于世界上最大的代码闭环公司 M$, 则更让人引起深思.
(3)部署:
Node.js 的 NPM 使用依赖方式, 也使得项目部署/迁移变得非常容易.
大型项目可能有多达成千上万的外部依赖文件的引用(举例: 或许过去某个项目中, 进行rebuild 将全编译多达2,000 多pcs文件, 这带来 source 管理的复杂性), 而使用 NPM 模式, 我们仅仅需要移植必要的项目部署/源代码, 而在新环境中再次下载各种 NPM 即可.
(4)开源数据库: 随着 2019年 8 月末, MongoDB 4.2 正式上线(MongoDB 部分改变了开源协议, 因为某些第三方对开源的滥用). 完全解决了 shared set 的 transition 的 atomic 行为. 这从根本上改变了, NoSQL 比较 SQL Server/MySQL 等 SQL 数据库的最弱的一个环节. 我们几乎已经可以看到了它深远的影响. 它很可能导致 5年后的信息专业的童鞋, 不再学习关系型数据库原理这门课程, 而首修 NoSQL 教程.
以上, 我们总结了过去 5年间, 在软件开发业界发生巨大改变, 这种研发生态的变化, 也将某种程度带来电子研发的革命.
今天最大的"闭环"开发模式, 事实上仅保留在电子开发业界. 根据过去 5年, 软件开发模式的改变历史经验, 我们可推测:
-- IoT, 开源, 共享 package, 必将极大冲击和影响电子开发环境. 致力于电子开发的云服务, 云共享, 云模块的某些便利或许即将出现.
用户3895374 2019-9-5 08:04
curton 2019-9-3 21:09
allen_zhan_752827529 2019-9-2 15:05
今天的嵌入式开发不仅仅受限于硬件, 固件. 同样也必须研习软件.
这个行业势头完全被 IoT incoming 的市场应用结合所决定.
未来电子嵌入式工程师必须具有开发构建 IoT 云平台的能力.
所谓软件, 硬件, 嵌入式工程师的区分将变得模糊.
一般的讨论认为, 成为行业专家需要 1万工作时, 约等于正常强度的 10 年行业工作累积.
<剪贴>
There’s a common belief that you need to work at least 10 thousands hours before you can become expert in an area.
<剪贴>
今天我个人提出一个新观点, 由于今天市场决定了云数据服务, 为今天行业的核心. 掌握嵌入式与软件web开发的综合性人才的专业经验应该是: 1*2 万小时. 行业正常开发积累时间为 20年.
nufuvcgx 2019-9-2 14:10