话题公司 › 搜狐

公司:搜狐

搜狐,是一家互联网中文门户网站。1995年,搜狐创始人张朝阳利用风险投资创建了爱特信信息技术有限公司,1998年正式推出搜狐网。2000年,搜狐在美国纳斯达克证券市场上市。

搜狐开发的产品有搜狗拼音输入法、搜狗五笔输入法、搜狗音乐盒、搜狗浏览器、搜狐视频、独立的搜索引擎搜狗和网游门户畅游。

搜狐是2008年北京奥林匹克运动会唯一的互联网赞助商,也是奥林匹克运动会历史上第一个互联网内容的赞助商。

尽管搜狐在首页标题声称自己是中国最大的门户网站,但其Alexa排名却低于同类门户网站腾讯网和新浪。在2018年其在Alexa的中国排名于第5位,在门户网站中仅次于腾讯。现时为中国五大视频网(优酷、爱奇艺、腾讯视频、芒果TV)之一。

探秘HashMap的实现原理

HashMap 在键值对存储与查询的功能中一直都是以高效著称,但在某些使用错误的场景下可能会导致性能严重下降。

SPI原理以及SPI在Android中的实战

SPI(Service Provider Interface),是JDK提供的一套用来被第三方实现或者扩展的API,它是一种JVM层面的服务注册发现机制, 可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用。SPI机制主要思想是将装配的控制权移到程序之外,在组件化 设计中这个机制尤其重要,其核心思想就是解耦。

响应式异步非阻塞编程在服务端的应用

对于服务端的开发者而言,我们总有一个共同的目标,那就是如何用更少的资源获得足够的性能来支持我们的服务!,我们不是在性能优化中,就是在性能优化的路上。作为Javaer我们,服务性能优化的武器库中,异步和并发是永远不会过时的两个。

然而理想很美好,现实很骨感:

  • 异步编程的思维方式同大脑的命令式思维是背道而驰的。在Java的世界中,直到目前Jdk17,也没有async/await来帮我们解决回调地狱的问题,强行大量异步,将深陷回调地狱而不能解脱...
  • 并发调用方面,大量编排异步线程任务,不仅会造成资源的快速消耗,也会导致业务流程的实现难以理解,正所谓:写这段代码时能理解它的只有我和God,一个月后能理解它的就只有God了...。

在服务端引入响应式编程,是解决如上问题的一个好的思路。

下面,我以搜狐视频服务端PUGC团队在PUGC视频对象创建接口的重构工作的实践为背景,介绍响应式(基于RxJava)异步非阻塞编程在服务端的应用在服务端的应用。

通过抓包深入分析HTTPS

HTTP协议和安全协议同属于应用层(OSI模型的最高层),具体来讲,安全协议工作在HTTP之下,传输层之上:安全协议向运行HTTP的进程提供一个类似于TCP的套接字,供进程向其中注入报文,安全协议将报文加密并注入运输层套接字;或是从运输层获取加密报文,解密后交给对应的进程。严格地讲,HTTPS并不是一个单独的协议,而是对工作在一加密连接(TLS或SSL)上的常规HTTP协议的称呼。

你真的懂iOS的异常捕获吗?

在开发的日常中,经常会遇到一些极其偶现的Bug,有些Bug很难以复现,所以一般的解决方案是接入PLCrashReporter这些第三方的崩溃统计工具,从保存的崩溃文件中读取相应的崩溃信息。那么这些崩溃统计工具又是基于什么原理运作的呢?

Android网络请求优化及离线上传封装

在android开发中,无论是去解决网络请求中遇到的问题,还是优化网络请求的效率,都离不开最根本的网络传输协议(http和tcp等),所以本文的第一部分是对网络协议相关的基础知识进行讲解。掌握了必备的基础知识之后,接下来的第二部分,会对android中使用最广泛的网络请求框架okhttp进行分析,这款框架不仅对基础的网络请求逻辑进行了封装,还尽善尽美的替我们做好了几乎每一件可以去优化的事情,如果能很好的理解并使用它,我相信大部分网络请求相关的问题都可以很好的得到解决。本文的最后部分,想说一说我是如何使用kotlin反射对离线数据上传进行封装的。

Jetpack Compose自定义Layout详解

最近在使用Jetpack Compose进行应用开发,不得不说相比较命令式布局方式Xml,Compose声明式UI真香。然而仅使用基础的Compose控件在面对UI大佬的设计图时,总会出现一些“小问题”,包括部分页面不能通过标准布局实现、需要特别精准的控制测量和放置的场景、需要实现布局动画等,这个时候往往需要通过自定义布局去解决这些“小问题”,来达到项目验收标准。既然是要自定义组件,那么首先了解一下Compose的布局模型吧,从布局模型中找到自定义组件的切入点。

try catch finally机制分析

finally代码块是在return后面的表达式运算后,return操作前执行的。

记一次日志引起的服务端问题排查经历

一天中午休息饭后散步时,隔壁组的王老哥提到,他们组的负责的一个Java服务最近一段时间,每天0点,经常会收到网关报警:提示接口响应慢。老板天天追问,但是服务使用的spring组件虽然支持在tomcat线程使用率超过一定数值后自动生成现场快照,但是不知道是什么原因,查看相关时间点附近生成的快照文件,里面的内容均正常,日志内容除问题时间点缺了一些之外,也没有异常现象,所以对于该问题,他是:老虎吃天,无从下爪。

iOS下锁的独白

锁是什么?用于防止多线程访问同一份资源而造成资源竞争的计算机锁(生产者消费模式是衍生品)。

探秘Weak实现原理

在项目中我们经常用到weak指针,其可以保证在指向的对象释放后,weak指针自动置为nil,以防止崩溃,因为在OC中向nil发送消息是没有任何处理的。通过__weak、property weak等形式,都可以将指针修饰为weak类型的。

weak的实现原理其实很简单,概括来说就是,在内存中有一个名为weak_table_t的哈希表,weak_table_t中存储着App所有的weak对象及指针。当有对象被weak指针修饰时,会将被修饰的对象及指针添加到weak_table_t表中。当被weak指针的作用域消失时,weak指针会被销毁,随后会 从哈希表中查找对应的weak指针,并将指针置为nil。

这⼀次彻底弄懂:React 服务端渲染

在前端项目需要首屏渲染速度优化或SEO的场景下,大家或多或少都听过到过服务端渲染( SSR ),但大多数人对服务端渲染具体实现和底层原理还是比较陌生的。本文基于公司官网开发时做了服务端渲染改造基础上,系统理解和梳理这套体系的模式和逻辑,并写了一些笔记和Demo(文后链接)便于深入理解。这次我们来以React为例,把服务端渲染彻底讲弄明白。

Swift后缀表达式(逆波兰式)转换计算

最近在开发《挑战24点》的过程中遇到了一个问题,即,如何计算常用数学表达式的结果,比如,给定字符串8 - (6 + 4 / 2 - 1) * 2,怎么计算得到结果,并且得到计算的过程。

网上查资料发现,大部分都是类似系统计算器的处理,在遇到第二个运算符时,就把前一步的操作结果计算出来。这样的处理方式并不适用 于笔者想要解决的问题。

进一步搜索后发现,前缀表达式、中缀表达式、后缀表达式的概念,给定的字符串8 - (6 + 4 / 2 - 1) * 2属于中缀表达式,而想要计算机得出结果,可以转为前缀表达式或者后缀表达式,然后再对转换后的表达式进行计算。

这里采用中缀表达式转后缀表达式,然后计算后缀表达式得出结果

探秘AutoreleasePool实现原理

在ARC下,AutoreleasePool主要应用在大量创建临时对象的场景,通过AutoreleasePool控制内存峰值,是一个很好的选择。

iOS包体积优化实践

最近领导给我分配了包体积监控指标,恰好之前我也做过相关包体积的优化,于是便综合之前的实践经验,对此我们的项目的包体积优化做一个整体的记录,希望可以帮助有需要的小伙伴。

图片中多个二维码选择的实现

买早餐的时候会遇到,支付宝和微信两个二维码一起被识别出来的情况,处理起来比较麻烦。最近有时间,就来分享记录一下图片中多个二维码选择的实现过程。

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.130.1. UTC+08:00, 2024-07-27 13:20
浙ICP备14020137号-1 $访客地图$