API爱好者收集的一些有用的API

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

显示器坏了

家里的一台老的显示器坏了,型号是Acer AL1916w ,版本是s。具体问题就是开机没反应。网上搜了一下,类似问题很常见,就是电源部分故障,通常是电容击穿了。

比如这个修理视频

ebay上也有成套的维修组件可供购买,但是不太值得。估计这显示器就值10欧元。所以计划自己买几个电容,尝试维修一下。修不好也不心疼。

ebay组件1

ebay组件2

明显有个电容鼓包了

而且更换电容的时候最好是几个一起更换。现在就是找出这些电容,购买配件,然后替换。拭目以待。

继续学习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 %}

最终效果

借了两只公猫

家里就不太平了。第一天两只公猫不知如何使用厕所,在客厅沙发,卧室地毯,厕所的猫马桶前留下五处猫屎和猫尿。我打扫了一个早上。

家里两只女猫对来访者特别反感。小黑一只在骂。姐姐就到处躲藏。两只公猫也知道自己是新来的,躲在床底下整个白天都不出来。

第二天还算太平。清晨公猫们找到了厕所进入的方法。但是还是不思饮食。还试图翻窗逃跑。女猫们则退守到阳台,死活不进屋。

看看第三天晚上会发生什么。

感染第8天

觉得自己应该转阴了。按流程明天才能去做快捡。自己今天在家先做一个。

结果是阳。不过花做了是阴,去快测点又做了一次,还是阴。拿到证明后就去音乐会了。