一个有意思的现象,向来偏爱生食海产的岛国人,对生吃牡蛎这件事,却显得非常保守和谨慎,远不如欧美人那样豪放不羁。甚至,生吃牡蛎这事儿本身,也是在明治时代以后,受西方饮食文化的影响,才逐渐被人们接受的。

即便是在热衷生吃牡蛎的法国,坊间也有“在没有字母R的月份里,不生吃牡蛎”的说法,也就是五月至八月间(Mai、Juin、Juillet、Aout),比较谨慎的生吃牡蛎,大抵是因为气温较高,生食的风险会更大。人们主要担心的,其实是生牡蛎所携带的致病微生物,包括大名鼎鼎的诺如病毒和弧菌等。

牡蛎作为固着型滤食性贝类,品质受生长环境影响很大。通常的比喻就是“牡蛎就像一块海绵,会不断吸收水体的气息”,因此口感也是周边海水的缩影,所以不是所有牡蛎都适合生吃。日本这个生吃牡蛎的保守派,会定期公布“适合生食的指定海域”,市场上销售的牡蛎也会注明“生食用”或“加热食”的字样。相比生食,他们似乎更喜欢熟食牡蛎,常见比如炸牡蛎、牡蛎土手鍋、醋渍牡蛎、牡蛎炊饭等等。

其实不仅是牡蛎,其它海产也类似,凡生食皆存在风险,彻底烹熟才能安全无忧。至于要不要生食,那纯粹是个人喜好和利弊取舍。

图源:123RF.com正版图库

发现一个特别好玩的事 每次等公交 老袁一看到有人赶不上车 或者有老人动作慢公交司机又准备走的那种情况

他特别热衷于吼两嗓子:诶诶~还有人没上。哈哈哈哈哈哈哈哈哈每次都吓我一跳

这嗓门 不愧是jun人哈哈哈[赞](有几次我还以为是我们没上车 结果线路都跟我们没关 记下了他的又一个加分闪光点)

【软件的一致性】

软件本身固有复杂性、一致性、易改变性、不可见性等特点。

本文作者: 常柱
(有改动)

一致性是降低系统复杂性和使其行为更加明显的强大工具。如果一个系统是一致的,这意味着相似的事情以相似的方式完成,而不同的事情以不同的方式完成。 一致性创造了认知杠杆:一旦你学会了在一个地方如何做某件事,你就可以利用这些知识立即理解其他使用相同方法的地方。如果系统没有以一致的方式实现,开发人员必须分别了解每种情况。这需要更多的时间。
一致性可以减少错误。 如果一个系统是不一致的,两种情况可能看起来是相同的,但实际上它们是不同的。开发人员可能会看到一个看起来很熟悉的模式,并根据之前遇到的模式做出错误的假设。另一方面,如果系统是一致的,基于熟悉的情况做出的假设将是安全的。一致性使开发人员工作更快,错误更少。

更大范围的一致性是构件重用技术。

一致性的例子:

一致性可以应用于系统的多个级别。这里有几个例子:命名: 一致的方式使用名称的好处,如微软推荐的匈牙利命名法。
编码风格: 现在开发组织通常有样式指南,它将程序结构限制在编译器强制执行的规则之外。现代风格指南解决了一系列问题,比如缩进、大括号放置、声明顺序、命名、注释和对被认为是危险的语言特性的限制。样式指南使代码更容易阅读,并可以减少某些类型的错误。
接口: 具有多个实现的接口是一致性的另一个例子。一旦您理解了接口的一个实现,任何其他实现都会变得更容易理解,因为您已经知道它必须提供的特性。
设计模式: 设计模式是某些常见问题的普遍接受的解决方案,例如用户界面设计的模型-视图-控制器方法。如果您可以使用现有的设计模式来解决这个问题,那么实现将会进行得更快,更有可能工作,而且您的代码对读者来说也更容易理解。
不变量: 不变量是变量或结构的一个总是为真的属性。例如,存储文本行的数据结构可能强制一个不变式,即每行以换行字符结束。不变量减少了必须在代码中考虑的特殊情况的数量,使对代码的行为进行推理变得更容易。
数据表达、数据库: 采用前后一致的或标准数据格式。

确保一致性:

一致性很难保持,特别是当许多人长时间从事一个项目时。一组人可能不知道另一组人建立的惯例。新来者不知道这些规则,所以他们无意中违反了这些约定,并创建了与现有约定冲突的新约定。以下是一些建立和保持一致性的建议:
文档: 创建一个文档,列出最重要的总体约定,比如编码风格指南。将文档放置在开发人员可能看到的位置,例如项目 Wiki 上的显眼位置。鼓励新加入团队的人阅读文档,并鼓励现有的人每隔一段时间就阅读一次。各种组织的一些风格指南已经在网上发布;考虑从其中之一开始。
对于更本地化的约定(如不变量),请在代码中找到适当的位置来记录它们。如果你不把这些惯例写下来,其他人就不太可能遵循它们。
强制规约: 即使有很好的文档,开发人员也很难记住所有的约定。执行约定的最佳方法是编写一个检查违规的工具,并确保代码不能提交到存储库,除非它通过了检查器。自动检查器对于低级语法约定特别有效。
我最近的一个项目有行终止字符的问题。一些开发人员在 Unix 上工作,行被换行终止;其他的工作在 Windows 上,行通常由一个 carriage-return 后跟一个换行来结束。如果一个系统上的开发人员对先前在另一个系统上编辑过的文件进行了小的编辑,那么编辑器有时会将所有行终止符替换为适合该系统的行终止符。这给人的感觉是文件的每一行都被修改了,这使得跟踪有意义的更改变得很困难。我们建立了一个约定,即文件应该只包含换行,但是很难确保每个开发人员使用的每个工具都遵循这个约定。每当一个新的开发人员加入这个项目,我们就会经历一连串的线路终止问题,而那个开发人员就会适应这个约定。
我们最终通过编写一个简短的脚本解决了这个问题,这个脚本在将更改提交到源代码存储库之前自动执行。该脚本检查所有已修改的文件,如果其中任何一个包含回车,则将中止提交。该脚本还可以手动运行,以修复损坏的文件,方法是用换行替换载波返回/换行序列。
这立即消除了问题,并帮助培训了新的开发人员。
代码审查为执行约定和对新开发人员进行约定教育提供了另一个机会。 代码评审人员越是吹毛求疵,团队中的每个人就会越快地了解约定,代码就会越干净。
入乡随俗: 最重要的是惯例,每个开发人员都应该遵循这句古老的格言“入乡随俗”。在处理新文件时,请查看现有代码的结构。是否所有的公共变量和方法都在私有变量和方法之前声明?这些方法是按字母顺序排列的吗?变量在 firstServerName 中使用“camel case”还是在 first_server_name 中使用“snake case”?当你看到任何看起来可能是约定的东西时,跟着它走。在做设计决策时,问问自己是否在项目的其他地方也做了类似的决策;如果是,找到一个现有的示例,并在新代码中使用相同的方法。
不要改变现有的惯例 抵制“改进”现有公约的冲动。有一个“更好的主意”并不足以成为产生矛盾的借口。你的新想法可能确实更好,但是一致性对不一致性的价值几乎总是大于一种方法对另一种方法的价值。在引入不一致的行为之前,问自己两个问题。首先,您是否有重要的新信息来证明您的方法是正确的,而这在旧的约定建立时是没有的?第二,新方法是否更好,值得花时间更新所有旧的用法?如果您的组织认为这两个问题的答案都是“是”,那么就继续进行升级;当你完成的时候,应该没有任何旧的惯例的迹象。但是,您仍然面临其他开发人员不知道新约定的风险,因此他们可能在将来重新引入旧的方法。总的来说,重新考虑已建立的约定很少能很好地利用开发人员的时间。

别做过了头:

一致性不仅意味着相似的事情应该以相似的方式去做,还意味着不同的事情应该以不同的方式去做。如果您过于热衷于一致性,并试图强制将不同的东西放在相同的方法中,例如对真正不同的东西使用相同的变量名,或者对不适合该模式的任务使用现有的设计模式,那么您将创建复杂性和混乱。只有当开发人员确信“如果它看起来像 x,那么它实际上就是 x”时,一致性才会带来好处。

结论:

一致性是投资心态的另一个例子。确保一致性需要一些额外的工作:决定约定的工作、创建自动检查器的工作、寻找类似的情况以在新代码中模拟的工作,以及在代码评审中培训团队的工作。 这种投资的回报是您的代码将更加明显。开发人员将能够更快、更准确地理解代码的行为,这将使他们工作得更快,bug 更少。

原文链接
https://t.cn/A6wjnc7i

namo-amitabhaya! https://t.cn/Rf37NIb


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 本漫威的粉也磕了 适合玩家类型:喜欢演绎本,对DC有情结DC必打 不足:演绎时有吸烟,有烟味,不过也就一分钟就结束了,店家立马会噴空气清新剂,实在介意烟味的小伙
  • #刘浩存[超话]# 我存付出的爱好像很少得到同等的回报。 脱轨期间我存正面临全网黑,偶有粉丝去拍摄现场给存送信和存聊天,粉丝们的爱给了浩存很多力量,浩存对线下
  • 万一的万一我岂不是要流落街头[允悲][允悲][允悲]正在纠结家乡居委会就来了电话,说听说你要回来,就要提前三天报备!自己前几天加了40米提速的票居然抢到了(想回
  •   她闭上眼,缓缓吐出一口气,“所以你其实已经有决断了是吗?  她闭上眼,缓缓吐出一口气,“所以你其实已经有决断了是吗?
  • 面相学:传统相学口诀又一波 古代识人术 1、头发多的人是劳碌名,心眼小。 2、眉毛长的人身体虚弱,多病。 3、女人额头上有斑迹者,家庭多有不幸。 4、
  • 我们总是希望,美好的一切都能永恒。永恒的爱,永恒的感情,永恒的关系,却忽略了一个很现实的问题,这世间万物唯一不变的就是变化。永恒,终究只是一种向往,不可执念,否
  • 窗外绚烂璀璨的美景,指尖稍作停留的彩蝶,虽然这个世界待你并不好,但你却愿意去爱它最后小烬说出那句——“好,我学”的时候,我真的…鼻头酸酸的好想哭…他也是第一次试
  • 过年回家日记: 跟我爸散步我起码落后900米,现状就是40多岁的健步如飞,20多岁的老态龙钟[可爱] 妈妈带我去洗了头发(她实在是看不下去了)我随口一说她就
  • 【笑傲江湖】俗语“上船容易下船难”:刘正风与曲阳,同在武林浮沉,一“正”一“曲”人物,黑白两道高手,因酷爱音律,成为知音。   两人深知“言辞易藏虚伪,琴箫必吐
  • 向之所欣,俯仰之间,已为陈迹,犹不能不以之兴怀,况修短随化,终期于尽!每览昔人兴感之由,若合一契,未尝不临文嗟悼,不能喻之于怀。
  • #敖子逸[超话]#azy #敖子逸超燃美食记# azy#敖子逸开启猎食模式# azy#敖子逸# 人生就是一只储蓄罐,你投入的每一分努力,都会在未来的某一天,打包
  • #王俊凯[超话]##王俊凯百花迎春# #王俊凯电影断桥# #王俊凯重生之门# #王俊凯2023遇兔呈祥##王俊凯伯爵品牌代言人# #从开始到未来,只为王俊凯#
  • 此外,据财联社不完全统计,龙年开年来还有ST贵人和创意信息公告公司或相关方被证监会立案调查。主营个性化定制服装的生产与销售的酷特智能晚间公告,公司接到实控人的一
  • 王度 法国驻上海总领事Joan ValadouFélicitation pour cette très belle exposition à Shanghai
  • 2. 广泛连接:用户可以关注感兴趣的人物、机构或话题,扩大社交圈,获取更多信息,促进交流。2. 广泛连接:用户可以关注感兴趣的人物、机构或话题,扩大社交圈,获取
  • 明艳女主引发修罗场,沪圈大佬放下身段追妻,啊啊这本年龄差文太甜了! 自知沉溺by二听 文案: 明艳动人女研究生&假风流真淡漠沪圈大佬 1. 第一次见到蒋承
  • 我CP真的太好嗑了,先不提再次捡到的对称梗,就135话山田捡到了贝壳,想拿给市川看发现他和萌神正在背单词没有打扰他,这一话结尾终于拿给市川看了,137话市川还在
  • 有一天,当你走过蔓草荒烟,我便在那里向你轻声呼喊,以风声,以水响我觉得做一个善良,沉着,真实的人,已经是很富有 ——《镜湖》 ​花繁柳密处,拨得开,才是手段;风
  • 犹记得我在小伙伴的安利下看完第一场桶贤的DT后给出的评价是“伟大”当时还发了票圈以示认可,因为他们给我带来的情绪价值是巨大的。感谢邵老师带病上场,最后累到口播都
  • 只有产品标签与成交人群相近,尤其猜你喜欢,就是猜这部分人群最有购物需求,这样才最有可能被系统抓取到,这也就需要卖家先做好店铺基础,强化人群标签。那么,想让宝贝被