今年的第八篇,这是一篇邀稿,由文旅行业从业者“心晴”撰写。
注:本文是“心晴”从游客角度出发撰写的体验和问题分析文章,并不代表“土猛的员外”和相关公司的观点。
1一X游:表示一机游、一码游、一键游...
首先,笔者想先以旅游从业者且是旅游信息化从业者的角度,简单讲一下“一X游”的基本情况。2017年是一个分界线,虽然从2014年开始,国内旅游信息化建设大体上也是分为服务、管理和营销三个方向,但服务侧都相对分散,没有形成一个体系,更多侧侧重点在于门票电商。而2017年“一部手机游云南”开始,国内开启了“一X游”模式,从全域的视角整合目的地的文旅资源,包括门票、酒店、民宿、特产等,...
这是一篇翻译稿(使用ChatGPT翻译)
英文原文:What Is ChatGPT Doing … and Why Does It Work?
文章非常长2.8万字,文末有该文章的电子书下载,可导入微信读书进行听书
一个词一个词的输出ChatGPT能够自动生成类似于人类书写的文本,这是非常了不起和出乎意料的。但它是如何做到的?为什么会有效果呢?我的目的在于大致概述ChatGPT内部发生了什么,然后探讨它为什么能够很好地生成我们认为有意义的文本。我应该在开始时说一下,我将专注于正在进行的大局,并且虽然我会提及一些工程细节,但我不会深入研究它们。(而且我所说的要点同样适用于其他当前“大型...
axum是一个专注于极简高效和模块化的web应用程序框架。
高级特性
使用无宏API将请求路由到处理程序。
使用提取器声明性地解析请求。
简单和可预测的错误处理模型。
用最少的样板文件生成响应。
充分利用中间件、服务和实用程序的tower和tower-http生态系统。
最后一点是“axum”区别于其他框架的地方。axum没有自己的中间件系统,而是使用tower::Service。这意味着“axum”可以免费获得超时、跟踪、压缩、授权等。它还允许您与使用‘ hyper ‘或‘ tonic ‘编写的应用程序共享中间件。
兼容性axum是为配合tokio和hyper设计的,运行时层和传输层...
本文为翻译文章,原文为:https://marabos.nl/atomics/preface.html仅供学习使用
前言Rust在让系统编程更加可用的方面发挥了重要作用,然而,诸如原子性和内存排序之类的底层并发专题仍然经常被认为是一些神秘的内容,最好留给一小群专家来研究。
在过去几年研究Rust的实时控制系统和Rust标准库的过程中,我发现网上关于原子性(Atomics)和相关主题的可用信息只覆盖了我们真正想了解的内容的很小部分。许多资源完全集中在C和C++上,这使得它很难与Rust的(内存和线程)安全和类型系统的概念形成联系。涵盖了抽象理论细节的资源,如C++的内存模型,通常只是模...
在前几天公司的年度启动会上,周老师(副总裁)展示的PPT上有一页让我印象深刻,他展示了公司目前现有的8大主力产品在项目中的复用率,力石小知是唯一一款复用率100%的产品。当然,我知道这个100%是在一定时间段内来说的,如果时间拉长到三年半的区间,小知不可能做到100%的复用率,况且加上小知的知识运营、数据运营等工作,100%也就仅限于软件产品层面了。
虽然作为当事人,我会感觉到其中的筚路蓝缕,且SaaS道路一直未真正打开。不过这些都没关系,小知作为一个团队的努力成果,依然有很多值得和大家分享的地方,特别是在产品的0到1过程中的点点滴滴。
在开始分享前,先对复用率给出我的观点:产品复用率这...
最近只要你接触互联网,一定被ChatGPT疯狂刷屏了。确实ChatGPT作为AI领域的应用服务,据说出发布到1亿使用者只用了60天,而且还在以指数级的速度增长用户,给全世界在AI方向上带来了全新的想象空间。因为我一直在主导公司的AI产品“力石小知”,所以最近也被多位客户和同事问到ChatGPT的事情,那今天就来聊聊我自己的理解,ChatGPT可能给文旅行业带来什么影响。
下面我会从以下几项内容来讲述:
ChatGPT是什么;
缩小到文旅行业,ChatGPT有无法解决的问题;
ChatGPT会给文旅行业带来哪些改变,包括游客习惯、从业者思维和产品形态等;
聊聊给行业的启示。
一、Cha...
本文是根据《Effective Java 3rd》英文版翻译的,仅供自己学习用!
31. 使用限定通配符来增加API的灵活性如条目 28所述,参数化类型是不变的。换句话说,对于任何两个不同类型的Type1和Type,List <Type1>既不是List <Type2>子类型也不是其父类型。尽管List <String>不是List <Object>的子类型是违反直觉的,但它确实是有道理的。 可以将任何对象放入List <Object>中,但是只能将字符串放入List <String>中。 由于List <...
本文是根据《Effective Java 3rd》英文版翻译的,仅供自己学习用!
26. 不要使用原始类型首先,有几个术语。一个类或接口,它的声明有一个或多个类型参数( type parameters ),被称之为泛型类或泛型接口[JLS,8.1.2,9.1.2]。 例如,List接口具有单个类型参数E,表示其元素类型。 接口的全名是List<E>(读作“E”的列表),但是人们经常称它为List。 泛型类和接口统称为泛型类型(generic types)。
每个泛型定义了一组参数化类型(parameterized types),它们由类或接口名称组成,后跟一个与泛型类型的...
本文是根据《Effective Java 3rd》英文版翻译的,仅供自己学习用!
21. 为后代设计接口在Java 8之前,不可能在不破坏现有实现的情况下为接口添加方法。 如果向接口添加了一个新方法,现有的实现通常会缺少该方法,从而导致编译时错误。 在Java 8中,添加了默认方法( default method)构造[JLS 9.4],目的是允许将方法添加到现有的接口。 但是增加新的方法到现有的接口是充满风险的。
默认方法的声明包含一个默认实现,该方法允许实现接口的类直接使用,而不必实现默认方法。 虽然在Java中添加默认方法可以将方法添加到现有接口,但不能保证这些方法可以在所有已...
本文是根据《Effective Java 3rd》英文版翻译的,仅供自己学习用!
16. 在公共类中使用访问方法而不是公共属性有时候,你可能会试图写一些退化的类(degenerate classes),除了集中实例属性之外别无用处:
12345// Degenerate classes like this should not be public!class Point { public double x; public double y;}
由于这些类的数据属性可以直接被访问,因此这些类不提供封装的好处(条目 15)。 如果不更改API,则无法更改...