2021-11-08 16:30:00 ~ 2021-11-09 16:30:00
设计目标,作为设计的可预期结果,决定着具体的设计策略和方案。日常设计中,新手设计师常常会犯套用产品目标作为设计目标,或是把具体行动当做设计目标的问题。如何才能避免这种错误呢?一起来学习一下正确推导设计目标的步骤和方法吧~
这篇文章我们主要就来聊聊『订单结算页』的设计与实现。
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列 ?第5篇「订阅通知」(5/10)
众所周知,想要DAU稳步上升,端外引流是一个必不可少的手段,常见的引流方式有:广告投放、分享回流、流量互换等,而他们也有着一个共同的技术问题,就是唤端,本文着重分享一下唤端的相关知识以及闲鱼在唤端体系内的一些方案。
在客服工单系统中,为了方便客服人员处理用户进线反馈问题,需要将工单的日志、工单的基础信息、订单信息、商品信息、客户基本信息、订单的类型、订单的物流信息等重要的数据都要加载出来放在工单详情中供客服人员查阅以便快速处理用户的问题。
如果我们客服工单系统中的工单详情数据采用单线程的方式加载数据,那么我们客服在使用的时候会出来短暂的页面加载转圈的过程,这样一方面客服人员使用的体验度下降,另一方面也会影响其工作效率,为此我们客服工单系统采用多线程的方式加载工单详情数据。
Over the past few years, Etsy’s Web Platform team has spent a lot of time bringing our frontend code up to date. It was only a year and a half ago that we modernized our Javascript build system in order to enable advanced features, things like arrow functions and classes, that have been added to the language since 2015. And while this upgrade meant that we had futureproofed our codebase and could write more idiomatic and scalable Javascript, we knew that we still had room for improvement.
Etsy has been around for over sixteen years. Naturally, our codebase has become quite large; our monorepo has over seventeen thousand JavaScript files in it, spanning many iterations of the site. It can be hard for a developer working in our codebase to know what parts are still considered best practice, and which parts follow legacy patterns or are considered technical debt. The JavaScript language itself complicates this sort of problem even further — in spite of the new syntax features added to the language over the past few years, JavaScript is very flexible and comes with few enforceable limitations on how it is used. This makes it notoriously challenging to write JavaScript without first researching the implementation details of any dependencies you use. While documentation can help alleviate this problem somewhat, it can only do so much to prevent a JavaScript library from being used improperly, which can ultimately lead to unreliable code.
All of these problems (and many more!) were ones that we felt TypeScript might be able to solve for us. TypeScript bills itself as a “superset of Javascript.” In other words, TypeScript is everything in Javascript with the optional addition of types. Types, in programming, are basically ways to declare expectations about the data that moves through code: what kinds of input can be used by a function, what sorts of values a variable can hold. (If you’re not familiar with the concept of types, TypeScript’s handbook has a fantastic introduction.) TypeScript is designed to be easily adopted incrementally in existing Javascript projects, particularly in large codebases where shifting to a new language can be an impossibility. It is exceptionally good at inferring types from the code you’ve already written, and it has a type syntax nuanced enough to properly describe all of the quirks that are common in Javascript. Plus, it’s developed by Microsoft, it’s already in use at companies like Slack and AirBnB, and is by far the most used and loved flavor of Javascript according to last year’s “State of JS” survey. If we were going to use types to bring some amount of order to our codebase, TypeScript seemed like a really solid bet.
This is why, hot on the heels of a migration to ES6, we started investigating a path to adopting TypeScript. This post is all about how we designed our approach, some of the fun technical challenges that resulted, and what it took to educate an Etsy-sized company in a new programming language.
在android系统中,进程之间是相互隔离的,两个进程之间是没办法直接跨进程访问其他进程的空间信息的。那么在android平台中要对某个app进程进行内存操作,并获取目标进程的地址空间内信息或者修改目标进程的地址空间内的私有信息,就需要涉及到注入技术。
通过注入技术可以将指定so模块或代码注入到目标进程中,只要注入成功后,就可以进行访问和篡改目标进程空间内的信息,包括数据和代码。
Android的注入技术的应用场景主要是进行一些非法的操作和实现如游戏辅助功能软件、恶意功能软件。
下面主要进行对zygote注入、ptrace注入、修改so文件注入,这三种注入方式进行详细解析。
本文将从其作用、设计思路、记录内容、组织结构,以及各种功能实现等方面,整体介绍InnoDB中的Undo Log。
本文主要分享 GPU 方案在传统 RTC 场景的探索与落地,涉及内容包括 GPU 方案介绍以及 RTC 场景的结合使用。
很简单的思路,好像也是va核心io的思路。。。
正则表达式在我们日常的软件开发过程中被广泛使用,例如编写 Nginx 配置文件、在 Linux 与 macOS 下查找文件,然而不同软件不同操作系统对于正则的应用有着不一样的行为...
本文主要介绍依托流程管控、白盒、数据、策略、标注中台的紧密结合,通过配置化业务接入、标准化提测准入流程、统一化数据检索、规范化质量度风险预估和标注反馈机制,帮助业务低成本接入,实现质量度模型的快速落地。
电话销售与贷后联络是公司业务比较重要的一环,传统方式采用专线座机来实现、会遇到流量瓶颈、资源费用高等问题。经过调研与实践,公司内部自研一套语音呼叫系统,那么大家是否好奇语音系统是如何实现的呢?
随着互联网的兴起,VoIP(网络电话)也随之发展起来,VoIP是通过互联网来传输语音和视频,比如微信的语音和视频通话就是通过VoIP来实现。
RxJS 是一个使用可观察序列编写异步和基于事件的程序的库,本篇文章结合实际例子向你介绍RXJS的一些前置知识与基础概念,带你领略RXJS的魅力~
我们开发的离线和实时任务,都需要集群提供计算资源来保障作业运行,如何充分协调作业资源,发挥集群最大计算能力正是资源调度框架要解决的问题。本篇将重点介绍资源调度框架YARN及其在OPPO的实践。
在很多应用场景中,我们需要使用事件通知,让业务系统逻辑解耦。第三方的的消息通知框架有很多,我们的事件框架和第三方的事件框架有哪些特点,接下来我们就来讲解JavaSDK是如何封装消息事件以及实现原理。
有客户反映有 3 套 MGR 环境全备失败,MySQL 版本为 8.0.18 ,xtrabackup 版本为 8.0.9 。
A collection of writing tips I've learned over the years to help you get the most out of the next thing you write…whatever that may be.
关注公众号
接收推送