Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群。
1 | version: '3.7' |
Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群。
1 | version: '3.7' |
Reflect Metadata 是 ES7 的一个提案,它主要用来在声明的时候添加和读取元数据。TypeScript 在 1.5+ 的版本已经支持它,你只需要:
npm i reflect-metadata --save
。tsconfig.json
里配置 emitDecoratorMetadata
选项。Reflect Metadata 的 API 可以用于类或者类的属性上,如:
1 | function metadata( |
最后,我们阅读源码的目的主要是学习别人的设计思想、编码技巧。
当nginx监听的端口与实际访问端口不一致时(如多层反向代理、或nat转发等),这时候通常需要关闭port_in_redirect
选项。
port_in_redirect: 默认开启状态。启用或禁用在nginx发出的绝对重定向中指定端口。
1 | server { |
想做好前端很难,做出可扩展的前端,从而让多个团队可以同时投身于一项复杂的大型产品项目就更难了。本文将介绍前端领域最近的一项变革:单体前端架构正在过渡到许多较小、较易管理的前端架构。我们还会展示这种新的体系结构怎样提升前端团队的效率和表现。除了讨论这种新趋势的好处与代价外,我们还将介绍一些可行的实现方案,并深入分析一个完整的微前端应用案例。
微服务近年来大受欢迎,许多组织转向了微服务以克服大型单体后端架构的局限。但虽然微服务在服务端很流行,很多企业在前端代码库上仍然在沿用问题多多的单体架构。
也许你想构建一个渐进式或响应式的 Web 应用,但却找不到一种将这些功能集成进现有代码中的简单途径;也许你想尝试 JavaScript 语言的新功能(或者是其他可以编译为 JS 的某种语言),但你却无法将关键的构建工具融入已有的构建流程;或者你只是想扩展开发流程,让多个团队可以同时开发一种产品,但现有单体架构中的耦合度与复杂性让团队间的合作变得磕磕绊绊。这些都是很现实的问题,都会影响你们向客户交付高质量体验的能力。
最近业界越来越关注复杂的现代化 Web 开发需要怎样的整体架构和组织结构这个问题。于是我们开始看到单体前端正在分解为更小、更简单的模块,这些模块可以各自独立开发、测试和部署,而它们组合在一起仍然对客户表现为一件单一完整的产品。我们将这种技术称为微前端,其定义为:
“微前端是一种架构风格,其中众多独立交付的前端应用组合成一个大型整体。”
在 ThoughtWorks TechRadar 2016 年第 11 期中,我们将微前端列入了“组织应评估的技术”之列;不久后我们将其提升为“可尝试”级别,最后将其列入“应采用”之列。换句话说,我们认为它是经受住了考验的方法,企业在需要时就应该采用它。详情请点击此处链接。
Pulsar在很多情况下提供了比Kafka更快的吞吐量和更低的延迟,并为开发人员提供了一组兼容的API,让他们可以很轻松地从Kafka切换到Pulsar。
Pulsar的最大优点在于它提供了比Apache Kafka更简单明了、更健壮的一系列操作功能,特别在解决可观察性、地域复制和多租户方面的问题。在运行大型Kafka集群方面感觉有困难的企业可以考虑转向使用Pulsar。
1 | version: '3.7' |
https://github.com/{owner}/{repo}/releases.atom
https://github.com/{owner}/{repo}/commits.atom
https://github.com/{user}/{repo}/tags.atom
https://github.com/{user}.atom
https://www.v2ex.com/feed/{节点名}.xml
Examples:
RSSHub是一个开源、简单易用、易于扩展的RSS生成器,可以给任何奇奇怪怪的内容生成RSS订阅源。
RSSHub是一个开源、简单易用、易于扩展的RSS生成器,可以给任何奇奇怪怪的内容生成RSS订阅源。
FreshRSS是开源免费RSS订阅工具,功能设置上类似于Google Reader
,支持快捷键操作,多用户,Ajax加载,数据导入与导出以及统计数据。
这里直接使用docker-compose
一键化部署:
1 | version: '3.7' |
Headless CMS
是一个内容管理软件,它允许作者创建和管理内容,以及提供结构化数据给开发者,让开发者能够将数据展示在网站或者应用前端的一个独立系统中。
一个传统的,完整的CMS
是同时负责后端的内容管理以及提供内容给最终用户。
但相比之下,一个headless CMS
将前端分离出来,让开发者能够用最好的技术来建立优越的用户体验。
Strapi是一款开源的、也是最受欢迎的Headless CMS
。
Strapi
这个名字取自bootstrap
的后缀strap
,然后因为它是一个提供快速生成安全可靠的api
架构,
然后再加了一个i
,合并就是strapi
,bootstrap
的有启动的意思,你可以用strapi
来快速构建你的后端,可以快速让自己的项目启动。
1 | version: '3.7' |
Django已经内置了许多lookup用来检索数据,这些lookups能满足绝大部分应用场景。 但有些时候我们需要自定义lookup用来满足特定的需求。
假设需要实现如下查询需求:
1 | select * from test_tbl reverse(content) like '54321%'; -- postgresql |
定义如下Lookup
:
1 | from django.db.models import Field |
查询:
1 | Test.objects.filter(content__reverse='12345') |