公司:汽车之家
汽车之家是中华人民共和国一家汽车资讯网站,由李想创办于2005年。用户可以在该网站查询与选车、购车、换车等有关的内容。2013年12月11日,汽车之家在纽约证券交易所上市。2016年6月25日,中国平安成为汽车之家最大股东。2021年,由于受到易车、懂车帝挤压,汽车之家业务大幅缩水。
“之家云”-云存储接入实战
之家云-云存储采用开源的分布式存储,目前承载之家的计算服务,视频,ARVR,前端JS、CSS等在线数据存储服务。并且针对前端需求提供了合并加载功能。本文通过车商城系统的迁移实例来介绍该存储系统的概念、结构、遇到的问题以及解决方案。
强化学习在之家图像理解中的应用
本文首先介绍了强化学习的基本概念,并着重梳理了一类模型无关的强化学习,即策略梯度算法。随后本文对其中的两种算法,进行了重点地分析和比较。最后,本文展示了基本策略梯度在之家业务中的一些应用,并讨论了该方法这些场景下的鲁棒性。
海外项目的 SSR 开发实践
本文主要分享Next.js在海外项目开发实践中的一些技术细节。Next.js是一个非常棒的轻量级的react同构框架,框架自身集成 webpack 、babel 、express等,使用它可以快速的开发出基于服务端渲染的react应用。
React Native瀑布流列表性能优化与实践
汽车之家主app前端开发广泛使用React Native技术,因为其具有跨平台可以动态更新功能。目前有类似自驾游业务线利用React Native技术在汽车之家app上实现无限瀑布流列表的功能。优化前自驾游瀑布流列表在安卓低端机上滑动多页后会出现明显卡顿现象,快速滑动屏幕整体会出现白页的情况。
广告内容自动化投放的技术思考和方案
汽车之家作为汽车行业垂直类重要资讯平台,积累了大量用户,日均流量大;充分利用之家的流量,打造一款以汽车关注效能提升为目的,以内容+人群包智能匹配为核心的优质产品,更好的为买车、看车、用车的用户服务,这是智能关注平台系统这款产品的初衷和背景。
告别盲测---新车电商精准测试落地实战
想知道如何让测试更加精准?更加有效?如何做到以一当十?如何让自动化测试在测试工作中发挥更大的作用?本文给你答案!
Unity3D 引擎的性能优化实践
Unity 优化涵盖范围大,涉及知识面广,随着功能不断增长,需要优化的内容也在增多。在VI销冠神器的几次迭代中发现项目的各项性能指标都存在偏差,所以开始着手进行项目的优化工作。
本篇文章以浅显易懂的角度介绍一下 Unity 优化和VI销冠神器的优化经验。
Project Reactor 响应式编程的探索与实践
在前后端分离和服务化的环境下,通常需要一个API网关统一对接C端、B端和运营等前端项目。这个API网关的主要作用有两个:
一是为所有前端项目提供统一的入口,然后按照规则转发到后端服务上,之所以多一层转发,是因为服务化后的项目与前端是多对多的关系,一个前端项目可能会访问多个后端的项目,一个后端项目也可能对多个前端项目提供服务。
二是对所有的前端项目进行统一鉴权,鉴权后将用户ID写入请求头并转发给后端项目,所有的后端项目都是无会话状态的,只需要根据ID对外提供接口。
Spring Cloud Gateway 和 Netflix Zuul 都是这样一个API网关项目,能够按照业务规则实现请求的转发功能,也可以将统一鉴权很好的集成进去。最开始使用的 Zuul,和其他业务项目一样基于 Web Servlet 技术栈。随着 Spring 不断的升级,后来的项目也就从 Zuul 改成了 Spring Cloud Gateway。由于 Spring Cloud Gateway 构建在 Web Reactive技术栈之上,因此相关的业务就开始使用 WebFlux、WebClient 和 Reactor。
经销商技术部GraphQL实践
随着业务的增长,页面涉及的业务线越来越多, 为了实现一个需求, 往往需要调用多个 RESTful 接口组合数据, 然后绑定到 UI 组件上,呈现给 C 端用户。这样会有几个缺点,最明显的是客户端会发送多次网络请求,浪费tcp的开销。
其次,多个接口的请求,数据返回顺序并不固定,很容易导致bug,另外根据不同的场景,也不是每个接口返回的所有字段都会用上, 浪费了网络流量,还容易泄露敏感字段。前端技术人员也频频吐槽为什么这些接口的活要前端干。
为了解决这些问题, 我们小组引入了 GraphQL 作为 BFF 层, 利用 GraphQL 支持以图的形式构建数据,可实现在单个请求中获取多个资源,以及提供强大的查询语法能力,减少网络请求次数、裁剪冗余数据,缩短需求交付周期,提升应用响应性能。在应用的过程中,我们积累了一些经验,借此机会分享给大家。
用户运营 H5 可视化埋点平台落地
汽车之家 H5 页面传统的埋点方式,是由产品申请埋点,技术人员在代码中根据要求添加埋点上报事件。埋点代码和业务代码耦合在一起,造成了对业务代码的侵入,也不利于埋点的查找和维护。
搭建本平台的目的就是为了让埋点和业务代码分离,同时使用可视化的方式,使非技术人员可以独立完成埋点区域、规则、参数的编辑,并生成包含本页面或项目所有埋点事件的 SDK,页面开发者直接引用生成好的线上 JS SDK 地址即可,不用关心具体埋点细节。
基于Gradle插件+Transform+ASM技术实现的全埋点插件功能
本文详细介绍了如何利用Gradle插件,Transform API和ASM在Android端实现全埋点相关过程以及原理,希望通过本篇文章能使大家对全埋点插件有一个较为全面的了解。
DDD在经销商的应用
需求越复杂,使用DDD的收益越高。当产品只提出一个逻辑修改,而开发评估需要几十人日的时候,可能就该考虑是否应该用DDD来降低重复度,提高可维护性和效率了。
Flutter沉浸式复杂吸顶交互页面结构设计与实践
笔者部门内部一款C端app 新能源车系页展示车系的所有相关信息,包括车系图,车系信息,车型,口碑,车主实拍,相关推荐车系,广告等众多模块信息,展示信息模块多,模块信息需要可动态配置,可扩展性强,交互复杂,是一个重要的车系详情展示页面。为了节省开发时间,整个页面采用跨端技术Flutter开发,是使用Flutter开发复杂页面的一次有益验证和实践。
细粒度分类算法在汽车之家车系识别业务中的应用
本文主要介绍深度学习图像分类的经典网络及发展历程,就细粒度图像分类中的注意力机制进行了综述,给出了之家团队参加CVPR2022细粒度分类竞赛所使用的模型、参赛经验,介绍了该模型在汽车之家车系识别业务中的应用。
二手车技术团队研发效能实践
二手车技术团队为了可持续、高效的产出有效价值,通过标准化对接流程、标准化需求拆解、数据化研发资源、研发技能打通/业务打通等策略,可更加合理化分配任务、调配资源、快速响应,有效提升了团队产出效率。
openLooKeng跨源异构在之家的升级与实践
openLooKeng是一款开源的高性能数据虚拟化引擎, 具备跨数据源分析能力。 openLooKeng在之家覆盖了同业务线的或不用业务线的不同数据源的分析业务场景,提高了之家用户数据分析效率。