从元宵节煮汤圆看架构的识别与设计
所谓架构,就是解决「人所遇到的问题」(简称问题)的办法。采用什么办法解决问题,和客观的条件有关,也和当事人有关。因此,办法会有很多种,背后所体现的理念会有不同,折射出的是不同的价值观。
什么是「好」架构
「好」架构,应当是对架构使用人「简单」并且「通用性强」,可以解决「很多」人的类似问题。
「好」架构,应当因地制宜,不要求额外的增加使用人的负担(比如额外采购设备,学习新的知识),增加使用人的使用成本。
老一辈交代的煮汤圆方法(传统架构)
正好今天是正月十五,汤圆节,所以我们就从煮汤圆中来看看我上面的几个论述。这里所描述的煮汤圆的方法,可能只是传统煮汤圆的方法之一,大致过程描述如下:
取一锅干净的冷水
把冷水煮开
把适量的汤圆放入锅中
等水再次烧开
加入冷水,以保持汤圆不被煮破
重复第4/5步若干次
汤圆变熟,捞出享用
一定还有更多方法,因为煮汤圆的过程,和锅有关,和水有关,和火力有关,和被煮的汤圆数量和大小有关,不可避免的煮汤圆的人有关,等等等等。
煮汤圆的传统架构好不好
好。理由是:
对于汤圆怎么被熟的质变过程不需要了解(不需要了解物理原理)
可视化的温度,水煮沸了,就说明温度到达100摄氏度(一个标准的大气压条件下)
对于煮汤圆的设备不需要额外添置(常见的水、锅、煤气灶就可以)
整体过程容易理解,实际操作性强(烧开加水的重复过程,三岁小孩也许都会)
煮汤圆的目标(好吃有卖相)
一、直接目标是煮熟(基本前提)
问题是,熟是一个定性非定量的修饰词。熟,需要能够被量化,量化之后才能被管理。
于是熟的量化标准之一常常会被提及:汤圆至少要浮于水面之上。可问题又来了,浮在水面之上的汤圆不一定能保证在咬开之后,里面的馅料也是熟的。于是前辈们,还会告诉我们,等待汤圆略微发胖,这是提高汤圆馅料变熟的有效量化标准之一。因为胖,是肉眼可见,是可被量化管理的对象。
二、间接目标是不煮破不煮糊(还得有卖相)
由于汤圆的外部材料主要是糯米,糯米遇到水之后,尤其是沸水,会发生结构分解(是不是分子,因为作者不是食品和高分子学专家,不能细讲,也不能乱讲),其最终结果就是煮糊了,也就是糯米和水完全融合了在一起,汤圆已经没有了型。
因为怕煮烂,所以老一辈会特别强调,加入反复加入冷水,让水保持在似开非开的状态。
这种方法,一方面是保持煮汤圆所需要的温度,一方面是降低沸水所造成的汤圆不必要的翻动,避免加速汤圆煮烂。
根据现象看本质,架构识别
把煮熟汤圆「好吃」的关键要素
一、热能
热能,是使汤圆从生到熟发生变化的核心、必要条件。没有变熟所需要的热能,并保持在合理的温度,汤圆静静的放在那里,永远不会变熟(但可能会变质)。
二、时间
时间,是控制汤圆发生质变的必要条件。时间需要和温度配合,才能达到让汤圆变熟的目的。
三、潜意识的基本假设
不管多少类型的汤圆,大小基本固定,一般条件下,手工汤圆的大小,要比速冻机械制作的汤圆大一圈。
四、被忽视的核心要素
汤圆在被煮前的基本物理条件,是直接从冷冻室内取出,还是常温。
需要注意的是,沸水和汤圆糯米外皮的物理接触,是热能的第一道传导方式。汤圆的糯米外皮和馅料,是第二道传导方式。
糯米外皮与馅料的热传导方式相比把水煮沸是缓慢的,换句话说,糯米皮和馅料,是热的不良导体,导热性能比水差。
同时,冰冻的馅料变熟所需要的热能要比常温馅料的多,但热传导的效率基本不变。
在冰冻的状态下进行直接加热,势必造成加热的时间变长,这样一来,汤圆的糯米更容易发生煮烂,如果还采用翻滚的沸水煮,很难避免汤圆煮烂、馅刚熟的情况发生。
所以,在煮汤圆之前,最好把冰冻的汤圆从冰箱取出,在室温下放置一段时间。
到底要如何煮汤圆过程(重新架构煮汤圆)
一、煮汤圆的基本概念
汤圆本身、一次煮汤圆的总体数量、锅的容量、热源功率、热源功率的可条件范围。
二、煮汤圆的领域分解
原材料供应商(汤圆)
煮汤圆平台-热能供应商(天然气灶、煤气灶、电磁炉、电陶炉、煤球炉、煤油炉、烧柴火的灶等等)
需要注意的是:这些热提供商的性能指标并不相同。比如,热功率(单位时间所提供的热能)提供热能可调节的范围。
作者直观感受是:现代化的天然气灶、煤气灶、电磁炉,热功率可调节范围要大于煤球炉和烧柴火的灶。
煮汤圆平台-恒温水容器供应商(水和锅)
高中物理,告诉我们,水的比热容是很高的。所谓比热容,说的通俗一点,就是温度升高一度,所需要的(热)能量。
所以,一个大锅里盛满的沸水,要比一个小锅盛满的沸水,所储藏的(热)能量多。
煮汤圆平台-熟汤圆交付集成商(煮汤圆的人)
煮汤圆的人,首先要评估要煮的汤圆有多少,热能的获得方式是什么、可调节性有多强,锅有多大、里面可以放多少水。
三、煮汤圆的基本流程
用锅把水烧开
下生汤圆,以最快的速度把水加热并接近沸点(接近水的沸点)
在一段时间,保持一定的水温(接近沸点,避免沸水翻滚以保持汤圆卖相),直至变熟(汤圆上浮和变胖)
又快又好把汤圆煮熟(最佳实践)
一、找尽可能大的锅
大锅,意味着可以放更多的水。在把一批汤圆放入到沸水中之后,由于汤圆和水会直接发生热交换,导致水温降低,水的温度直接从沸点下降。
举个极端的例子,在正在煮沸的一锅沸水中加入一滴常温的水,那么整个锅里的水,还将是煮沸的状态。原因是:
一滴常温水,变成沸水的所需要的热量,热能提供商(比如煤气灶)可以快速提供。
沸水的流动性,使得沸水和常温水的物理接触面增多,热交换速度变快。
这个极端的例子告诉我们,由于一滴水加热至沸点的能量,远小于蒸锅沸水的能量,所以蒸锅水在此过程中,水温基本不变。
回到煮汤圆的场景,大锅意味着加入常温的汤圆水温下降会变少。
持续的高水温,有利于提高热传导的进行(势能差越大,能量交换越快),有利于缩短煮熟汤圆的时间,保持汤圆的卖相。
二、把热源的功率发挥到最大
快速提供热能,使放入生冷汤圆的之后水温迅速提高,需要两方面的配合:
把热源开到最大(例如,把煤气灶开大火)
增加火和锅的接触面积(选择平底锅和煤气灶,并把锅底放在煤气灶的火焰温度最高的外焰位置)
三、保持准沸水的水温
保持略接近于沸水的水温,获得最高效率的热传递同时,避免水的翻动导致汤圆解体。
煮汤圆的锅,自身是具备一定散热功能的(在没有热源加热的情况下,水会停止沸腾和逐渐冷却至常温)
在热源最小输出热能的情况下,需要加入冷水,才能保持水温在沸点以下,避免不必要的水沸腾动能释放,引起汤圆破相。
非常规的花式(架构演变)煮汤圆秘籍
一、在家煮汤圆不反复加水
前文所提到的,保持水温似开非开,是达成快速、不破相煮汤圆的必要条件。
在当煮汤圆的装备得到技术革新之后,我们可以做到把热源功率变小,平衡锅自身散热和热源供给的平衡。
同时,可以把锅容器,替换为玻璃材质,例如采用全玻璃锅,采用热功率无级可变的燃气和电气炉具。
这样整个煮汤圆过程全程关上盖子,水蒸气蒸发所带走的热能,也能看到水是否被煮开。
在实际操作过程中,只要保持水微微有些被煮沸,不对汤圆产生结构性破坏力。温度的用肉眼量化,结合控制火力大小的闭环控制。
这样做的好处是,增加了煮汤圆的机械化可能,减少了过程中,对于加水这一环节的依赖,减少了对水的需求,增加了能源利用率。
二、饭店煮汤圆「生熟混煮」
当然,控制水温的另外一个方法是,把加水,替换为加「生」汤圆。
这种方法,对于执行人的个人素质和能力要求更高,需要相当的实际操作经验。
其实,笔者相信,摄氏99度煮出来的汤圆,也是「熟」的。可以看出,一样的标准流程,对于不同行业,优化方式不一样。
智能煮汤圆产品设计
这里要表达的是,技术其实是可以给业务带来革新。
煮了一辈子汤圆的人(业务方),可能一辈子都不会提出「智能」煮汤圆的技术需求。
1、设计理念: 煮汤圆应该是不需要操心的,我只要「好吃」和「卖相好」的汤圆。
食客(吃汤圆的人)只要买来汤圆,把汤圆投进煮汤圆机里,在汤圆被煮好的情况下会自动提示食客来享用,甚至自动放到碗里。
2、突破技术限制
技术限制: 识别汤圆馅变熟
目前被传承的量化方法是「上浮」和「变胖」
目前需要最佳实践帮助和知道的是:上浮之后再煮多久
技术突破:数字化汤圆馅变熟的技术指标
定位汤圆(因为水和汤圆的混合物,密度不一样)
判断汤圆馅料的温度(在前一步的基础上,采用热感应?超声波频谱?的方式(请原谅作者对于这一领域缺乏了解))
恒温控制,保持水温接近于沸点但未到达沸点,避免由水的沸腾导致破相(笔者相信「99度」也能煮「熟」汤圆,当然这是在一个标准大气压的条件下)
降低数字化成本,以控制产品的整体成品,使其变为消费品而不是概念产品或者奢侈品。
3、口碑营销
消费者惊奇的发现,「智能煮汤圆机」其实还能煮馄饨、煮饺子...
从元宵节煮汤圆看架构的识别与设计相关推荐
- 架构漫谈(三):如何做好架构之识别问题
2019独角兽企业重金招聘Python工程师标准>>> 架构漫谈(三):如何做好架构之识别问题 作者: 王概凯 来源: InfoQ 发布时间: 2016-04-17 10:47 ...
- 从 Servlet 入手带你看架构和框架设计的套路
以下代码相信大家都很熟悉,大学时学 Java Web 都写过这样的代码. 从第一次接触 Servlet 到之后的很长一段时间内,我都没理解 Servlet 是个什么玩意? 为什么要有 Servlet ...
- 一文看懂人脸识别(4个特点+4个实现步骤+5个难点+算法发展轨迹)
2020-03-09 20:01:00 人脸识别是身份识别的一种方式,目的就是要判断图片和视频中人脸的身份时什么. 本文将详细介绍人脸识别的4个特点.4个步骤.5个难点及算法的发展轨迹. 什么是人脸识 ...
- [批量重命名工具] 批量图片识别文字来命名文件名,很多网友想看批量图片识别成文字,用图片上的文字来修改文件名,今天它来了
很多网友想看批量图片识别成文字,用图片上的文字来修改文件名,今天他来了 因为不解决就得手动挨个挨个输入然后把文件命名好 今天又一个文件需求是这样的 图上有姓名文字,要识别出来改成每一张图跟这个一样,有 ...
- 如何使用ABP框架(2)三层架构与领域驱动设计的对比
本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...
- c/s三层结构信息系统的三个层次_如何使用ABP框架(2)三层架构与领域驱动设计的对比...
本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...
- IT架构师介绍-软件架构设计学习第一天(非原创)
文章大纲 一.架构师定义 二.架构师分类与具备能力 三.研发人员发展的技术路线 四.架构师知识体系 五.参考文章 一.架构师定义 什么是架构师,这个聊架构话题时永恒的问题.每个公司对架构师的定位也 ...
- 【微服务架构】在微服务架构中最小化设计时间耦合
理查森:我是克里斯·理查森.欢迎来到我关于在微服务架构中最小化设计时耦合的演讲.在这次演讲中,我将回答三个问题.什么是设计时耦合?这会造成什么问题?我们如何设计松散耦合的服务?这些年来我做了一些事情. ...
- 领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)
目录 领域驱动实践总结一:基本理论总结与分析 一.领域驱动设计两大设计:战略设计和战术设计 (一)战略设计 1.出发角度与目标 2.实现方式:事件风暴与模型确立(用例分析.场景分析和用户旅程分析) 3 ...
最新文章
- 机器学习和深度学习视频资料精选(附学习资料)
- 论文笔记(3)-Extracting and Composing Robust Features with Denoising Autoencoders
- 【转】jmeter响应结果乱码问题
- ERROR 1093 解决方法
- JAVA多线程和并发
- RAID简介与示例演示
- 硅谷再不是程序员们的梦想天堂了
- Java编程:马踏棋盘算法(骑士周游问题)
- 企业系统软件你知道哪些?
- Johnson算法寻找图中的所有简单环路
- mfc服务器发送信息失败10057,基于MFC的局域网聊天工具.doc
- footer的设置绝不只是设置footer:使html高、宽自适应和footer始终在网页最末尾
- 商城系统必备营销工具(五)——积分商城
- 好像记得有个人喜欢我
- 学机器人编程和学钢琴哪个好
- 长在火山熔岩石板地上的大米
- 【JAVA语言基础】
- 《HTTP》hfs快速搭建HTTP文件服务器
- 计算机文档库怎么进,Windows电脑注册表怎么进?
- HTML5自定义属性对象Dataset简介(data-xxx)
热门文章
- pythonget返回值_python 函数返回值
- 还原mysql数据库出错_mysql数据库的还原及常见问题解决
- Python基础学习笔记——时间单位换算
- 在 1G 内存的计算机中能否 malloc(1.2G)
- 一款全能的文件恢复软件EasyRecovery,可恢复500种以上被删除文件
- linux mysql开远程访问,Linux mysql开启远程访问
- 全网惟一面向软件测试人员的Python基础教程-在Python中如何优雅的切西瓜呢?
- 手机端背景图片撑满整个屏幕
- 安装VMware Workstation虚拟机中文版
- 微信能取代对讲机吗?区别在哪?