netflix 工作原理_Netflix如何在屏幕后面工作?

netflix 工作原理

Netflix has reported to have over 182 million subscribers worldwide in the first quarter of 2020 (Of course, these numbers don’t include freeloaders like me, who’s family or friends have been generous enough to share their account and password). It shouldn’t be surprising that 16 million of these subscribers have joined in the first three months of this year as compared to 5 million new subscribers per quarter earlier.

据Netflix报道,到2020年第一季度,全球订户超过1.82亿(当然,这些数字不包括像我这样的免费载客,他们的家人或朋友足够慷慨地分享他们的帐户和密码)。 不足为奇的是,今年前三个月有1600万订户加入,而之前每个季度有500万新订户。

The current crisis has impacted many aspects of the entertainment industry, including some of Netflix’s, like its production house. However, Netflix has largely benefited as it doesn’t stream sports events, doesn’t have advertisement on the platform, doesn’t need movie theaters. Well, mostly.

当前的危机已影响到娱乐业的许多方面,包括Netflix的某些方面,例如其制作公司。 但是,Netflix受益匪浅,因为它不播放体育赛事,在平台上没有广告,不需要电影院。 好吧,主要是。

To prepare for job interviews, I recently started teaching myself about system design and architecture. While doing so I got a chance to learn the fascinating design model of Netflix. Its architecture is so intriguing that I believe it would fascinate the people outside the tech community as well. This article attempts at describing some of Netflix’s most riveting pieces of working in layman terms. I think even fairly experienced techies might get something out of it, especially if cloud architecture and system design is your discipline.

为了准备工作面试,我最近开始自学系统设计和体系结构。 在这样做的同时,我有机会学习了Netflix的迷人设计模型。 它的架构非常吸引人,我相信它也会吸引技术界以外的人们。 本文试图以非专业人士的方式描述Netflix最吸引人的作品。 我认为,即使是经验丰富的技术人员也可以从中受益匪浅,尤其是如果云架构和系统设计是您的专业。

I have consolidated this article from various sources and tried my best to collect the updated and correct information. As quoted by Todd Hoff , “Facts on the ground change over time and depend on who is telling the story and what audience they’re addressing ”. So, if you find any mistakes or inaccuracies, kindly bring them to my notice.

我已经从各种来源整理了这篇文章,并尽力收集了更新的正确信息。 正如托德·霍夫(Todd Hoff)所引用的那样,“事实随着时间的流逝而变化,取决于谁在讲故事以及他们要针对的受众是谁”。 因此,如果您发现任何错误或不正确之处,请及时通知我。

Before getting into the nuts and bolts of the architecture, let’s look at some of the most interesting user experience enhancements which Netflix has integrated into its system.

在深入了解该体系结构之前,让我们看一下Netflix已集成到其系统中的一些最有趣的用户体验增强功能。

推荐系统 (The Recommendation System)

Netflix Recommendation Algorithm has been quite popular with the people studying data analytics. Netflix has a humongous collection of user data and is still collecting more with every new user and user activity.

Netflix推荐算法在研究数据分析的人们中非常受欢迎。 Netflix拥有庞大的用户数据收集,并且在每个新用户和用户活动中仍在收集更多数据。

Image for post
blog.re-work.co)blog.re-work.co )

It accounts numerous metrics from this dataset to build the algorithm, some of which are:

它考虑了来自该数据集的大量指标以构建算法,其中一些指标是:

  • Your viewing history and ratings are the ones you must have guessed already. Netflix can make great suggestions based on the type of movies you watch and how you rate the movies you have watched. You must have noticed Netflix doesn’t use IMDb ratings (or any other world average rating) to suggest you any movies. Instead it believes that each user is different and would not necessarily agree with the world’s average opinion about the show. Hence it focuses on an individual’s watch history with other factors and finds a pattern about each user’s choice.

    您的观看历史和收视率是您必须已经猜到的。 Netflix可以根据您观看的电影类型以及您对已观看电影的评分方式提出出色的建议。 您一定已经注意到Netflix没有使用IMDb分级(或任何其他世界平均分级)来向您推荐任何电影。 相反,它认为每个用户都是不同的,不一定会同意世界各地对该节目的平均看法。 因此,它着重于个人的观看历史以及其他因素,并找到有关每个用户选择的模式。

  • Other viewers with similar tastes and choices. This algorithm is known as Collaborative Filtering (CF). It is based on the idea that if two clients have similar rating history they will behave similarly in the future. For example, if one of the two similar users rates a movie with a great score, it is more likely that the other user would like it as well and hence Netflix will recommend it to the other.

    其他具有相似品味和选择的观众。 该算法被称为协作过滤(CF) 。 基于这样的想法,即如果两个客户具有相似的评级历史,则他们将来的行为将相似。 例如,如果两个相似的用户之一为电影评分很高,那么另一个用户也很可能会喜欢它,因此Netflix会推荐给另一个人。

  • Titles, genres, actors, release year etc. This configures the Content Based Filtering (CB) algorithm. This algorithm recommends movies based on the kind you have liked before. The main difference from CF is that CB offers recommendations based not only on similarity by rating but is more about the information from the products. For example, recommending movies by the same actor you liked before. These factors with user profiling help in learning user preferences.

    标题,体裁,演员,发行年份等。这将配置基于内容的过滤(CB)算法。 此算法根据您之前喜欢的电影类型推荐电影。 与CF的主要区别在于,CB不仅基于评级的相似性提供建议,而且还提供有关产品信息的更多信息。 例如,由您之前喜欢的同一位演员推荐电影。 用户配置文件中的这些因素有助于学习用户的偏好。

  • User profiling includes information like the time of the day when you watch, the device you watch it on, the duration you watch for etc. For example, if you show a pattern of not sitting at lengths, Netflix will try to find short movies or shows with small episode run-times for you.

    用户配置文件包括诸如观看时间,观看设备,观看持续时间等信息。例如,如果显示出坐着不动的样子,Netflix将尝试查找短片或会以较小的剧集运行时间显示给您。

个性化艺术品 (Personalized Artworks)

Data analytics doesn’t just stop at the recommendation system. Netflix is highly data-driven and uses its analytics to appeal you to watch more. If you have ever logged in through different accounts, you may have noticed that Netflix doesn’t use the same header images for a show, for all the users.

数据分析不仅止于推荐系统。 Netflix是高度数据驱动的,并利用其分析吸引您观看更多内容。 如果您曾经通过不同的帐户登录过,您可能会注意到,对于所有用户,Netflix的节目都不使用相同的标题图像。

Image for post
highscalability.squarespace.com)highscalability.squarespace.com )

For example, here are different header images for Stranger Things. Each of us would see a different artwork decided by Netflix. Netflix considers various factors to choose the image that would best entice you to watch the show. It will also account for something basic like the number of clicks a certain image receives. The image with most clicks or popularity, then makes as one of the factors in the algorithm.

例如,这是陌生人事物的不同标题图像。 我们每个人都会看到Netflix决定的不同作品。 Netflix考虑各种因素来选择最能吸引您观看节目的图像。 它还将说明一些基本信息,例如某张图片获得的点击次数。 点击次数或人气最高的图像成为算法中的因素之一。

Image for post
highscalability.squarespace.com)highscalability.squarespace.com )

Have a look at another example for the artwork of the movie, Good Will Hunting. Based on your preferences and viewing history, if Netflix predicts that you like comedies it will show you the image of Robin Williams for this movie. If you like romantic movies, Netflix will show you the image of Matt Damon and Minnie Driver, to tell you it has elements of romance as well.

看电影的另一个例子,Good Will Hunting。 根据您的喜好和观看历史记录,如果Netflix预测您喜欢喜剧,它将为您显示这部电影的Robin Williams形象。 如果您喜欢浪漫电影,则Netflix会向您显示Matt Damon和Minnie Driver的图像,以告诉您它也具有浪漫元素。

As you can see how important it is to select the right header image, as it sends a strong personal message of what the movie is about and would allure the user to watch it.

正如您所看到的,选择正确的标题图像非常重要,因为它会发送强烈的关于电影内容的个人信息,并会诱使用户观看电影。

Netflix高级架构 (Netflix High-Level Architecture)

The architecture can be divided into 3 major components:

该体系结构可分为3个主要组件:

  1. Client

    客户
  2. Back-end

    后端
  3. Content Delivery Network (CDN) / Open Connect (OC)

    内容交付网络(CDN)/开放连接(OC)

Client: Client is any Netflix application on the end user’s device. It could be a web browser on your laptop, an app on your phone, smart TV or gaming console. It is the interface which helps you browse and watch your favorite shows on Netflix.

客户端:客户端是最终用户设备上的任何Netflix应用程序。 它可能是笔记本电脑上的网络浏览器,手机上的应用程序,智能电视或游戏机。 它是帮助您浏览和观看Netflix上喜欢的节目的界面。

Back-end: This is the section where everything happens before you hit play, on-boarding new content, processing videos, distributing them on servers located in different parts of the world and managing the network traffic.

后端:这是在您播放游戏,加载新内​​容,处理视频,将它们分发到位于世界各地的服务器上以及管理网络流量之前发生的所有事情的部分。

Almost all of these processes take place on Amazon Web Services (AWS). Netflix moved to AWS in a quest for a reliable infrastructure. AWS offers highly reliable databases, storage and redundant datacenters. This move to cloud services (AWS) came from the 3 days of downtime Netflix faced, in August 2008 due to corruption in their datacenters. Those datacenters were big, unreliable monliths and with the given growth at Netflix it needed much reliable and scalable microservices architecture . AWS along with addressing all these issues surprisingly turned out to be cheaper as well. As cloud came with elasticity, Netflix was required to pay only as per their use. While the datacenters Netflix had built were to be managed all the time and added costs even when most of them were not in use. And currently, Netflix runs on several thousands of AWS EC2 instances.

几乎所有这些过程都在Amazon Web Services(AWS)上进行。 Netflix转向AWS以寻求可靠的基础架构。 AWS提供了高度可靠的数据库,存储和冗余数据中心。 迁移到云服务(AWS)的原因是,由于数据中心损坏,Netflix在2008年8月面临三天的停机时间。 这些数据中心是巨大的,不可靠的整体,并且随着Netflix的发展,它需要非常可靠且可扩展的微服务架构。 令人惊讶的是,AWS以及解决所有这些问题的成本也降低了。 由于云具有弹性,因此Netflix只需要按照使用情况付费。 尽管Netflix建造的数据中心将始终受到管理,并且即使其中的大多数未使用,也会增加成本。 目前,Netflix可在数千个AWS EC2实例上运行。

CDN / OC: OC is Netflix’s own custom global CDN. To understand what OC is, let’s first take a quick look at CDNs.

CDN / OC: OC是Netflix自己的自定义全局CDN。 要了解什么是OC,首先让我们快速看一下CDN。

内容分发网络/内容分发网络(CDN) (Content Delivery Network / Content Distribution Network (CDN))

CDN as defined by Wikipedia is a geographical distribution of proxy servers and data centers. The goal of CDN is to make the website faster. To be specific, it provides quick access to the internet content like videos, images, HTML pages etc. to help it load on the website faster.

维基百科定义的CDN是代理服务器和数据中心的地理分布。 CDN的目标是使网站更快。 具体而言,它提供对视频,图像,HTML页面等互联网内容的快速访问,以帮助其更快地加载到网站上。

Before studying how it accomplishes the speed, let’s look at the challenge addressed by CDN. Imagine a situation where there are users around the world but a single server in NYC. If a user in Sydney makes a request to access a website hosted in NYC, it would be a 10,000 miles hike upwards to the server and 10,000 miles back to Sydney with the response and this round trip would take around 200 ms, while for a user making the same request from Dallas, it would be about 40 ms. As can be seen, the further one is from the server, the longer it will take for the content to load, in turn slowing down the website.

在研究它如何实现速度之前,让我们看一下CDN所解决的挑战。 想象一下这样一种情况:在世界各地有用户,但在纽约只有一台服务器。 如果悉尼的用户请求访问位于纽约市的网站,则响应将向上爬升10,000英里,服务器将返回10,000英里,返回悉尼将返回10,000英里,而这种往返行程将花费大约200毫秒,而对于用户从达拉斯发出相同的请求大约需要40毫秒。 可以看出,离服务器越远,内容加载所需的时间就越长,从而降低了网站的速度。

This is where CDN comes into play, it places server endpoints across the globe thus enabling users to retrieve content from their closest geographical location, drastically reducing the amount of time. Hence resulting in high availability and performance by distributing services spatially to end users.

这就是CDN发挥作用的地方,它在全球范围内放置了服务器端点,从而使用户能够从其最近的地理位置检索内容,从而大大减少了时间。 因此,通过在空间上将服务分配给最终用户,可以实现高可用性和高性能。

To summarize this with other benefits provided by CDN, it provides:

总结一下CDN提供的其他好处,它提供:

  1. High Availability and Performance (Speed).

    高可用性和性能(速度)。
  2. Reduction in load on servers, as requests are now distributed.

    减少服务器负载,因为现在分发了请求。
  3. Increase in security through obscurity, as CDN adds an extra layer in between.

    由于CDN在两者之间添加了额外的层,因此通过模糊性提高了安全性。

You must have guessed it by now, Netflix uses CDN to distribute its video content to serve its customers across the globe. We’ll see later, how OC is different from CDN and why Netflix needed it. Let’s talk about the first step in the Netflix’s model before getting into any other details which is, uploading a new movie on Netflix.

您现在一定已经猜到了,Netflix使用CDN分发其视频内容来为全球客户提供服务。 稍后我们将了解OC与CDN有何不同以及Netflix为什么需要它。 让我们先谈谈Netflix模型的第一步,然后再探讨其他细节,即在Netflix上载新电影。

登上新内容 (On boarding new Content)

Netflix receives new videos from the production houses and studios. These are high quality videos, which need to be processed before serving them to the viewers.

Netflix从制片厂和制片厂接收新视频。 这些是高质量的视频,在将它们提供给观众之前需要对其进行处理。

Netflix currently supports about 2200 devices including Android, iPhone, Apple TV, Kindle Fire, Playstation etc. and each of them requires a different video and audio format. With the help of hundreds of thousands of AWS servers Netflix converts the original video into a large number of different formats and resolutions to support different screen sizes and devices. This process is known as Transcoding. Netflix breaks the video into a number of chunks and AWS servers work in parallel to convert these chunks into different formats like mp4, 3gp etc. across different resolutions like 4k, 1080p and more. All these processed video copies are then stored on Amazon S3.

Netflix当前支持大约2200台设备,包括Android,iPhone,Apple TV,Kindle Fire,Playstation等,它们中的每一种都需要不同的视频和音频格式。 Netflix在成千上万的AWS服务器的帮助下,将原始视频转换为多种不同的格式和分辨率,以支持不同的屏幕尺寸和设备。 此过程称为代码转换 。 Netflix将视频分为多个块,AWS服务器并行工作,以将这些块转换为4k,1080p等不同分辨率的不同格式(例如mp4、3gp等)。 然后,所有这些已处理的视频副本都存储在Amazon S3中。

When a user requests to watch a video, Netflix analyzes the network quality and stability of the internet connection the user is on and then based on the device type and screen size provides with the right video format to stream. Have you ever noticed when watching a video it initially looks pixelated and snaps back to HD after a while? Netflix clients constantly keep a check on the health of the network and switch between formats when needed.

当用户请求观看视频时,Netflix会分析用户所在的网络质量和互联网连接的稳定性,然后根据设备类型和屏幕尺寸提供正确的视频格式进行流式传输。 您是否曾经在观看视频时注意到它最初看起来像是像素化并在一段时间后恢复为高清状态? Netflix客户端会不断检查网络的运行状况,并在需要时在格式之间进行切换。

系统架构与设计 (System Architecture and Design)

  • Netflix is built on an architectural style that structures the application as a collection of services. This is known as microservices architecture. Microservices architecture’s core principle lies in decoupling all the services, which means that all services are designed to be independent of each other, for example, the video storage service would be decoupled from the service responsible for transcoding videos.

    Netflix建立在一种架构风格上,该架构将应用程序构造为服务的集合。 这称为微服务架构。 微服务体系结构的核心原理在于将所有服务分离,这意味着所有服务都设计为彼此独立,例如,视频存储服务将与负责视频转码的服务分离。
Image for post
Monolithic Vs Microservices Architecture
整体式与微服务架构
  • This architecture is highly designed around business logic and allows flexibility in addressing individual needs of services. If you learn that the system is facing a bottleneck in storing videos, you can efficiently plan to scale up or optimize the storage logic without changing the resources configuration for other services. As opposed to this, in a Monolithic architecture, where all the components are interconnected, you would need to scale the whole system just to address the need of one service. This would significantly hike up the cost and hit the growth cap soon.

    该体系结构围绕业务逻辑进行了高度设计,并允许灵活地满足服务的个性化需求。 如果您了解系统在存储视频方面面临瓶颈,则可以有效地计划扩展或优化存储逻辑,而无需更改其他服务的资源配置。 与此相反,在所有组件都互连的整体式体系结构中,您将需要扩展整个系统,以解决一项服务的需求。 这将大大增加成本并很快达到增长上限。
  • Netflix, built on the microservices architecture and the distributed system of AWS, achieves reliable and scalable computing and storage with the help of AWS EC2 and S3. Cassandra and DynamoDb are the distributed databases used to store data like user profiles, billing information and other information like the movies that you have watched, which is then used in building the recommendations algorithm.

    Netflix建立在微服务架构和AWS的分布式系统之上,借助AWS EC2和S3实现了可靠且可扩展的计算和存储。 Cassandra和DynamoDb是分布式数据库,用于存储诸如用户个人资料,账单信息以及其他信息(如您所观看的电影)之类的数据,然后用于构建推荐算法。

需要自定义CDN,开放连接 (Need for Custom CDN, Open Connect)

Now you know that the idea of CDN is to put servers as close to the users as possible and optimize the network for speed and reliability. Why do you think Netlfix needed to build it’s own CDN?

现在您知道CDN的想法是使服务器尽可能靠近用户,并优化网络的速度和可靠性。 您为什么认为Netlfix需要构建自己的CDN?

Netflix started off by using third-party CDNs which was the right option at that time. By not building it’s own CDN Netflix focused on other aspects of the system like developing algorithms for recommendation system, streaming high-quality videos and enhancing user experience.

Netflix开始使用第三方CDN,这在当时是正确的选择。 通过不构建自己的CDN,Netflix专注于系统的其他方面,例如为推荐系统开发算法,流式传输高质量视频和增强用户体验。

Third party CDNs provided support to all types of content but Netflix was primarily concerned by just one, videos. Netflix at its scale, soon realized that by having a custom CDN with exclusive support for just large video streaming, it could create a high-performance network, notably enriching the user experience. And in 2011, Netflix created the same, Open Connect. The advantages offered by Open Connect were:

第三方CDN为所有类型的内容提供了支持,但Netflix主要只关注一种视频。 Netflix很快就意识到,通过拥有一个仅支持大型视频流的定制CDN,它可以创建一个高性能网络,从而显着丰富用户体验。 并在2011年,Netflix创建了相同的Open Connect。 Open Connect提供的优势是:

  1. Less Expensive- Compared to third-party, in house CDN was a cheaper option for Netflix.

    更便宜 -相比于第三方,在内部CDN是Netflix的一个便宜的选择。

  2. Better Quality- Netflix now had end to end control from transcoding to client application, thus achieving better quality.

    更高的质量 -Netflix现在具有从转码到客户端应用程序的端到端控制,从而实现了更高的质量。

  3. More Scalable- With more control over the network, Netflix was closer to its goal of reaching everywhere in the world.

    更具可扩展性 -通过对网络的更多控制,Netflix更加接近其遍及全球的目标。

开放式连接设备 (Open Connect Appliances)

OCA is a fast server assembled from lots of hard disks and flash drives for storing videos. Hardware wise, there is nothing special about OCA, they’re based on commodity PC components and assembled in custom cases by various suppliers. You could buy the same computers if you want to.

OCA是由许多硬盘和闪存驱动器组装而成的快速服务器,用于存储视频。 在硬件方面,OCA没什么特别的,它们基于商用PC组件,并由各种供应商定制组装。 如果需要,您可以购买相同的计算机。

Image for post
Open Connect Appliance
开放式连接设备

Netflix places these boxes with the datacenters of Internet Service Providers (ISPs) all over the world. ISPs are your internet provider. It’s who you get your internet service from, like Verizon, Hathway, Airtel etc.

Netflix将这些盒子放置在世界各地的Internet服务提供商(ISP)的数据中心中。 ISP是您的互联网提供商。 是谁可以从Verizon,Hathway,Airtel等获得互联网服务的人。

ISPs are located all around the world close to their customers, which was the exact strategy Netflix was building its solution around. By using ISP datacenters to place OCAs with relevant videos, Netflix gets all the benefits of a datacenter but doesn’t need to manage it.

互联网服务提供商(ISP)遍布全球,与客户接近,这正是Netflix围绕其构建解决方案的确切策略。 通过使用ISP数据中心将OCA与相关视频放置在一起,Netflix获得了数据中心的所有优势,但无需对其进行管理。

But if you remember all the processed movies are stored in Amazon S3. How does Netflix get it to OCAs? It is achieved by the process called Proactive Caching. Netflix is known to have highly accurate predictive system. It already knows what the viewers in different locations would like to watch next and when they would like to watch it as well. The predicted videos are copied to OCAs at respective locations and by having movies readily available to stream even before viewer has asked for it, Netflix ensures a great viewing experience.

但是,如果您还记得所有处理过的电影,它们都存储在Amazon S3中。 Netflix如何将其用于OCA? 它是通过称为“ 主动缓存”的过程来实现的。 众所周知,Netflix具有高度准确的预测系统。 它已经知道不同位置的观众接下来想看什么,以及他们什么时候也想看。 Netflix将预测的视频复制到各个位置的OCA,并且即使在观众要求之前也可以随时播放电影,从而确保了出色的观看体验。

Image for post
OCAs at ISP Datacenter
ISP数据中心的OCA

放在一起: (Putting All The Pieces Together :)

  • The original high quality copy of the movie received from production houses is first uploaded to AWS S3.

    从制作室收到的电影的原始高质量副本首先被上传到AWS S3。
  • It is then broken down into chunks to transcode. After all the processing, multiple copies of the movie in are stored in S3, in different formats and resolutions to support across various devices and networks.

    然后将其分解为大块进行转码。 完成所有处理后,将电影的多个副本以不同的格式和分辨率存储在S3中,以支持各种设备和网络。
  • Next, the locations where people would prefer to watch this movie are predicted. These copies are then duplicated on OCAs closest to the predicted locations in advance, ready to serve the viewers when requested.

    接下来,预测人们希望看这部电影的位置。 然后,这些副本会预先复制到最接近预测位置的OCA上,随时可以根据要求提供给观众。
  • When you request to play the movie, the app on your device fetches URLs for up to 10 different OCAs. The quality of network for these OCAs is then tested by the clients and the fastest and most reliable connection is selected.

    当您请求播放电影时,设备上的应用会获取最多10个不同OCA的URL。 然后,由客户端测试这些OCA的网络质量,并选择最快和最可靠的连接。
  • Client constantly keeps on checking the connection and switches to the most stable and high-quality connection possible whenever needed, trying all the while to deliver a smooth viewing experience.

    客户会不断检查连接,并在需要时切换到最稳定和高质量的连接,并一直尝试提供流畅的观看体验。

Pretty amazing, isn’t it?

太神奇了,不是吗?

Image for post
  • https://www.statista.com/statistics/250934/quarterly-number-of-netflix-streaming-subscribers-worldwide/

    https://www.statista.com/statistics/250934/quarterly-number-of-netflix-streaming-subscribers-worldwide/

  • https://www.nytimes.com/2020/04/21/business/media/netflix-q1-2020-earnings-nflx.html

    https://www.nytimes.com/2020/04/21/business/media/netflix-q1-2020-earnings-nflx.html

  • https://youtu.be/Bsq5cKkS33I

    https://youtu.be/Bsq5cKkS33I

  • https://youtu.be/x9Hrn0oNmJM

    https://youtu.be/x9Hrn0oNmJM

  • http://highscalability.squarespace.com/blog/2017/12/11/netflix-what-happens-when-you-press-play.html

    http://highscalability.squarespace.com/blog/2017/12/11/netflix-what-happens-when-you-press-play.html

  • https://medium.com/@narengowda/netflix-system-design-dbec30fede8d

    https://medium.com/@narengowda/netflix-system-design-dbec30fede8d

  • https://medium.com/refraction-tech-everything/how-netflix-works-the-hugely-simplified-complex-stuff-that-happens-every-time-you-hit-play-3a40c9be254b

    https://medium.com/refraction-tech-everything/how-netflix-works-the-hugely-simplified-complex-stuff-that-happens-every-time-you-hit-play-3a40c9be254b

翻译自: https://uxdesign.cc/netflix-system-design-ef5802426ad4

netflix 工作原理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B/S开发中浏览器的工具利器

B/S系统的前端浏览器性能和标准兼容方面是开发中的一个重要问题,把IE中使用的各种工具整理一下,对于开发中标准、规范检查等起到一个作用 主要是三个主流的浏览器和相关的插件 FireFox Firefox-latest.exe firebug-1.7.3-fx.xpi yslow-3.0.3-fx.xpi 安装…

你需要的git命令大全来了

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。虽然你可能用图形化工具…

uitest_您在Swift中的第一个UITest

uitest测试中 (TESTING) 什么是自动UITest? (What Is Automated UITest?) When we speak about testing, we usually think about unit testing. However, there is another kind of test that is extremely powerful and useful in the app world: UITests.当谈到…

UltraGrid中实现下拉Grid(UltraDropDown)

昨天提到了如何在Grid的Cell中下拉列表框,今天将演示如何在Grid的Cell中实现下拉Grid,这也是UltraGrid提供的一个很好的特性。 1. 拖放一个Grid到Form中,添加一些Band Column,然后设置Team栏位为DropDown或DropDownLis…

Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!

1. 前言大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。本文仓库 https:…

人脸识别及对比_没有“色彩对比可及性的神话”

人脸识别及对比重点 (Top highlight)When you need to work on interfaces, color contrast is a real thing you have to take into account to make it accessible. You have the right to be afraid of losing part of the aesthetics of your beautifully well-designed in…

Entity Framework4.0 (一)概述(EF4 的Database First方法)

Entity Framework4.0(以后简称:EF4),是Microsoft的一款ORM(Object-Relation-Mapping)框架。同其它ORM(如,NHibernate,Hibernate)一样,一是为了使开发人员以操作对象的方式去操作关系…

mysql 相关子查询使用【主表得数据需要扩展(统计数据依赖与其他表,但是与主表有关联)】...

2019独角兽企业重金招聘Python工程师标准>>> SELECT t.building,t.unit,t.room,t.ashcan ,(SELECT COUNT(a.resident_id) from t_address_book a where a.village_id t.village_id AND a.building t.building and a.room t.unit and a.house t.room and…

竟然被尤雨溪点赞了:我给Vue生态贡献代码的这一年

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。这篇文章在知乎被尤雨溪…

60款很酷的 jQuery 幻灯片演示和下载

jQuery 是一个非常优秀的 JavaScript 框架,使用简单灵活,同时还有许多成熟的插件可供选择,它可以帮助你在项目中加入漂亮的效果,其中之一就是幻灯片,一种在有限的网页空间内展示系列项目时非常好的方法。今天这篇文章要…

流体式布局与响应式布局_将固定像素设计转换为流体比例布局

流体式布局与响应式布局Responsive web design has been a prime necessity for every enterprise ever since Google announced that responsive, mobile-friendly websites will see a hike in their search engine rank in 2015.自Google宣布响应式,移动友好型网…

怎样开发一个 Node.js 命令行工具包

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。源码共读活动很多都是读…

印刷报价系统源码_皇家印刷术-设计系统案例研究

印刷报价系统源码重点 (Top highlight)Typography. It’s complicated. With Product Design, it’s on every screen. Decisions for a type scale affect literally every aspect of a product. When you’re working with an existing product, defining typography can fee…

React Hooks 完全使用指南

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。React HooksHook 是什么…

重新设计Videoland的登录页面— UX案例研究

In late October of 2019 me and our CRO lead Lucas, set up a project at Videoland to redesign our main landing page for prospect customers (if they already have a subscription, they will go to the actual streaming product).在2019年10月下旬,我和我…

全新的 Vue3 状态管理工具:Pinia

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。Vue3 发布已经有一段时间…

都快 2022 年了,这些 Github 使用技巧你都会了吗?

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。最近经常有小伙伴问我如…

Repeater\DataList\GridView实现分页,数据编辑与删除

一、实现效果 1、GridView 2、DataList 3、Repeater 二、代码 1、可以去Csdn资源下载,包含了Norwind中文示例数据库噢!(放心下,不要资源分) 下载地址:数据控件示例源码Norwind中文数据库 2、我的开发环境&a…

网站快速成型_我的老板对快速成型有什么期望?

网站快速成型Some of the top excuses I have gotten from clients when inviting them into a prototyping session are: “I am not a designer!” “I can’t draw!” “I have no creative background!”在邀请客户参加原型制作会议时,我从客户那里得到的一些主…

EXT.NET复杂布局(四)——系统首页设计(上)

很久没有发帖了,很是惭愧,因此给各位使用EXT.NET的朋友献上一份礼物。 本篇主要讲述页面设计与效果,下篇将讲述编码并提供源码下载。 系统首页设计往往是个难点,因为往往要考虑以下因素: 重要通知系统功能菜单快捷操作…