ipstack zenserp zenscrape ipapi weatherstack vatlayer marketstack aviationstack scrapestack userstack screenshotlayer pdflayer positionstack serpstack coinlayer mediastack countrylayer languagelayer Bin Checker Resume Parser Sentiment Analysis API Keyword Extraction API Bad Words API Text to Emotion API Vault API Smart Crop Google Search API Lecto API Language Translation API Paraphraser API Spellchecker API 404 Watch API Whois API
作者归档:chenhongyi
k6 压力测试工具
显示器坏了
学习买房
yi camer 12CN
度假前夕突然无法连接了。重新启动后,出现了原厂的中文提示连接的声音。原本安装的yi hack是无须扫描二维码链接的。重新从github上下载了新的固件home后,问题解决。
继续学习DDD
记录:DDD不是架构而是一种思想,一种观察事物的角度。而六边形架构则是实现的一种架构。 过去程序员从数据结构,存储出发解决问题。而DDD提倡从业务角度去考虑问题。
架构
DDD风格的架构
https://www.cnblogs.com/davenkin/p/road-to-ddd.html
理解 Domain Model
理解 实体 Entity
https://cloud.tencent.com/developer/article/1790795
理解 仓库 Repository
https://cloud.tencent.com/developer/article/1803939
理解 值对象 Value Object
https://cloud.tencent.com/developer/article/1790794
理解 聚合 Aggregate
理解 六边形架构 Hexagonal Architecture
六边形架构是DDD是常用的一种架构信息,与其对标的是传统的分层模型和加入依赖反转的分层模型。
第一次看到这个模型可能有点懵,六边形架构其实和以前的洋葱模型类似,要从信息的流动的角度来看。当信息流从六边形外部流入,经过边界,达到内部“领域模型”,经过处理,可能需要从六边形的另外一边存取数据(数据库,外部资源),流入或者流出。
和以前的分层模型相比(比如MVC),它强调的是系统“内外”之分,而不是内部的分层。当信息跨越边界(Port)的时候,需要又Adpater来适配。参考阅读1。
比如信息从外部进入六边形的时候,把信息转成内部里理解的Request对象。
当信息流出六边形的时候,要转成外部颗理解的Response对象。
工厂
Application Service
Application Service 里的体现是实际业务中的每个用例额,场景,use case。在usease
参考
shopify的模板语言liquid
shopify使用了 liquid 作为自己模板语言。在我看来liquid是smarty的后继者。
Shopify的文档 (链接) (github)常用的对象(object) (cheat sheet)
github (链接)
作品1 按照meta信息排序.
基本思路就是在循环显示之前,先循环一遍,把信息取出来后,单独保存到一个新的数组内。然后对这个数组进行排序。
{% assign newArray = false %}
{% for line_item in line_items %}
{% assign newOrder = line_item.product.metafields.regalnummer.value | default:'' %}
{% assign matrix = newOrder | append:'.' | append:forloop.index0 %}
{% if newArray %}
{% assign tmpIndex = matrix | split:',' %}
{% assign newArray = newArray | concat:tmpIndex %}
{% else %}
{% assign newArray = matrix | split:',' %}
{% endif %}
{% endfor %}
{% assign newArray = newArray | sort %}
显示的时候就按照这个新的数组进行循环
{% for newArrayItem in newArray %}
{% assign i = newArrayItem | split:'.' | last | times: 1 %}
{% assign rowObj =line_items[i] %}
<tr>
<td>{{ rowObj.quantity }} x</td>
<td>({{ rowObj.variant.inventory_quantity }})</td>
<td>{{ rowObj.product.metafields.regalnummer.value }}</td>
<td>{{ rowObj.variant.barcode }}</td>
<!-- <td>{{ rowObj.product.metafields.exp.value }}</td> -->
<td>{{ rowObj.sku }}</td>
<td>{{ rowObj.vendor }}</td>
<td>{{ rowObj.title }}</td>
<td style="text-align: right;">
{{ rowObj.price | money }}</td>
<td style="text-align: right;">
{{ rowObj.price | times:rowObj.quantity | money }}</td>
<td style="text-align: right;">
{% assign a = rowObj.grams %}
{% assign b = rowObj.quantity %}
{{ a | times: b }}</td>
</tr>
{% endfor %}
最终效果

借了两只公猫
家里就不太平了。第一天两只公猫不知如何使用厕所,在客厅沙发,卧室地毯,厕所的猫马桶前留下五处猫屎和猫尿。我打扫了一个早上。
家里两只女猫对来访者特别反感。小黑一只在骂。姐姐就到处躲藏。两只公猫也知道自己是新来的,躲在床底下整个白天都不出来。
第二天还算太平。清晨公猫们找到了厕所进入的方法。但是还是不思饮食。还试图翻窗逃跑。女猫们则退守到阳台,死活不进屋。
看看第三天晚上会发生什么。
确诊第9天 我转阴了
今天是PCR第7天。中午在家没测就信心满满的去做快测了。结果很快就出来了。阴性。这样我们全家一周后陆续转阴解除隔离。
感染第8天
觉得自己应该转阴了。按流程明天才能去做快捡。自己今天在家先做一个。
结果是阳。不过花做了是阴,去快测点又做了一次,还是阴。拿到证明后就去音乐会了。