装个 PHP 7.0.5 跑网站,登录后台的时候,却提示:setcookie() expects parameter 3 to be integer
搜索了,在 setcookie($name, $value, $expire, $path, $domain, $secure, $httponly) 的把 $expire (int) 了下,就没报错了。
具体原因不知,环境是 win2008x64,IIS。>_>
装个 PHP 7.0.5 跑网站,登录后台的时候,却提示:setcookie() expects parameter 3 to be integer
搜索了,在 setcookie($name, $value, $expire, $path, $domain, $secure, $httponly) 的把 $expire (int) 了下,就没报错了。
具体原因不知,环境是 win2008x64,IIS。>_>
这篇文章主要揭秘Stack Overflow截止到2016年的技术架构。
首先给出一个直观的数据,让大家有个初步的印象。
相比于2013年11月,Stack Overflow在2016年02月统计数据有较大变化,下面给出2016年02月09号一天的数据,如下:
你很难想象到.NET技术架构能够在每天6100万请求的情况下减少757小时的处理时间(相比于2013年)。这些改善既得益于2015年早期的硬件设备升级,也跟软件的性能优化有极大的关系。
那么最近两年在硬件上有什么变化呢?以下为截止到目前为止的硬件列表:
为了支撑Stack Overflow运行,那需要做点什么呢?其实跟2013年相比并没有什么显著变化,只是做了前面提到的硬件升级和程序的性能优化。
现有系统一般都不会完全隔离开来,Stack Overflow也不列外。一图胜千言,下面给出Stack Overflow的整体架构效果图。本篇文章仅给出硬件整理的逻辑架构的亮点,具体的硬件细节部分将在下一篇文章详细介绍。
图1是机架A(在2015年2月升级的)的实物图片展示。
图1
现在来给出主要系统的逻辑架构图,如图2。
图2
基本规则
首先给出全局的通用规则:
网络服务
首先,用户去Stack Overflow网站浏览就要通过Internet。为了让用户浏览网站的速度更快Stack Overflow采用CloudFlare的CDN加速。这里使用CloudFlare服务是因为它们的CDN服务器遍布全球。
紧接着,用户的HTTP流量通过四大ISP提供商(Level 3,Zayo,Cogent和Lighttower),经过四台路由器。Stack Overflow通过标准的边界网关协议(BGP)来均衡所有的流量以便用户更有效率的打开网站。Stack Overflow的工程师Nick Craver建议在两个异地数据中心采用一个10 Gbps MPLS,这样在出现突发情况下可以快速的恢复和复制数据。
负载均衡(HAProxy)
负载均衡使用的HAProxy 1.5.15和CentOS 7,并在HAProxy加入安全传输层协议(TLS/SSL)。后续会升级HAProxy到1.6版本来支持HTTP/2。
负载均衡器配备2对10Gbps网络。Stack Overflow通过加内存来有效的解决安全套接层(SSL)问题。缓存安全传输层协议(TLS)会话到内存加以重复使用,这样可以减少对于同一台客户端连接的重复计算,到达提升会话的速度和成本。况且RAM相当便宜,实现了双赢的效果。
负载均衡器的设置是相当的简单。它们监听各路IPs,并进行路由分发。Stack Overflow还做了负载均衡限流和监控HAProxy的日志做到及时报警。
Web层架构(IIS 8.5,ASP.Net MVC 5.2.3,和.Net 4.6.1)
Stack Overflow经过负载均衡层导入流量到9台Web服务器(“primary”服务器),另外两台做网站元数据等环境管理。除meta.stackoverflow.com和meta.stackexchange.com外,Stack Overflow、Careers和Stack Exchange网站业务都在“primary”服务器运行。
在监控平台Opserver上可以看到,Stack Overflow在Web层的分布,见图3
图3
更直观的看下对应的web服务器的图形展示,见图4
图4
服务层(IIS,ASP.Net MVC 5.2.3, Net 4.6.1和HTTP.SYS)
在整体逻辑架构图上可以清晰的看到,紧挨着Web层的是服务层(部署在Window服务器Windows 2012R2上)。其有两个重要的功能:tag应用服务器(基于http.sys)和API(基于IIS)。为了提升这两个服务做了非常多的冗余,但不超过9倍的冗余。举个列子,从数据库加载所有的网页和对应的tags变化(每n分钟(当前设置为2分钟))是非常耗时的。这里只需要加载三次即可保证安全。Stack Overflow也同时在硬件层做了相关的优化。Tag应用服务是一个比较复杂的topic,这里简单说下,当你访问/questions/tagged/java就使用tag应用服务。还有所有/search和导航也都是用的这些数据服务。
缓存&发布/订阅(Redis)
Stack Overflow在缓存层用Redis,Redis服务器256GB内存,采用master/slave结构部署,尽管每个月16000万的ops,每个实例的CPU使用率也在2%之下。
图5
Redis所在服务器有L1/L2高速缓存,Web服务的HTTP缓存设置在一级缓存L1中,Redis缓存在二级缓存L2。当用户访问在一级缓存L1中未命中后会去二级缓存中的Redis取值,这些值以Protobuf格式存储,并以protobuf-dot-net解析。Redis客户使用的StackExchange.Redis(Stack Overflow内部实现并开源了)。如果web服务在L1和L2两级缓存都未命中,则会直接去原始数据源获取(比如,数据库查询,API回调等),然后并把获取到的结果缓存到本地和Redis中,这时其它服务未命中L1高速缓存便会去二级缓存L2/Redis中获取,节省了调用数据库查询或者API回调的访问时间。
大部分运行的问答网站都有自己的L1/L2高速缓存,通过L1缓存Key前缀、L2/Redis缓存数据库ID。
尽管Redis主要是用来缓存,但也起到一个消费和订阅的功能,Redis可以推送一个消息,然后其他订阅者来订阅消息(包括下游的Redis从库在订阅消息)。
Websockets (NetGain)
Websockets实时的推送消息(比如,顶栏的通知,投票,新的答案和评论)给用户。
Sockets服务器运行在web层,NetGain是Stack Overflow实现的一个轻量级高性能实时的开源消息中间件。高峰期可达到50万并发的websocket连接。
下图展示的是一周websocket并发情况:
图6
Search (Elasticsearch)
Stack Overflow的工程师Nick Craver表示搜索层并没有激动人心的部分。在web层采用Elasticsearch 1.4,并内部实现了高性能的StackExchange.Elastic客户端,此部分代码未开源。Stack Overflow使用Elastic来查询相关的问答。
每个数据中心都有一个Elasticsearch集群,包含三个节点,每个都建有自己的索引。三个Elasticsearch集群全部使用SSD存储,192GB内存和双10Gbps网卡。
Stack Overflow使用Elasticsearch代替先前的SQL全排索引,主要因素是:Elasticsearch的扩展性和低成本。
数据库(SQL Server)
SQL Server是Stack Overflow唯一的源数据库,所有Elastic和Redis的数据都来自SQL Server。使用微软的SQL Server监控组件AlwaysOn Availability Groups部署了两个SQL Server集群。每个集群有一个主库,一个数据备份在纽约,另一个数据备份在Colorrado数据中心。所有备份是异步复制。
第一个集群硬件配置:Dell R720xd服务器,384G内存,4TB SSD存储,双12核CPU;第二个集群硬件配置:Dell R730xd服务器,768G内存,4TB SSD存储,双8核CPU。
所有数据库过去24小时CPU监控图如图7所示,大部分情况CPU使用率较低,偶尔做下缓存任务时会高些。图中NY-SQL02和04是主库,01和03是备份库。
图7
纵观全文,Stack Overflow整体架构并没有采用那些非常高端的技术,却造就了一个IT界最受欢迎的问答网站之,这是非常不错的。其中每项使用到的技术都进行了深入的研究并开源分享给社区,国内的公司可以从中获得一些启发。
【来源】:infoQ: http://www.infoq.com/cn/news/2016/03/Stack-Overflow-architecture-insi
SoapUI是一个开源的,跨平台的测试工具。它可以自动操作功能、回归、合规以及SOAP和REST web服务的负载测试。它配备了一个易于使用的图形界面,并支持行业领先的技术和标准,以模拟和鼓励web服务的行为。
主要特征
TestingWhiz是一种无编码测试自动化工具,自带API / web服务测试能力。它可以让你执行功能、回归、合规,以及基于HTTP和FTP通过WSDL接口的REST和SOAP web服务的负载测试和模拟。它也允许我们进行拒绝服务和渗透检查,以确保web服务的整体健康。此外,它还可以让你执行从端到端的测试,从Web UI,业务逻辑,到数据库和ETL,而无需编码。
SOAPSonar为HTML、XML、SOAP、REST和JSON提供了全面的web服务测试。它通过对OASIS和W3C标准的开箱即用提供了功能、性能、合规性、互操作性和安全测试。
SOAtest是利用Parasoft测试验证API和API驱动应用程序的一个企业级工具。它对功能单元,集成,安全性,仿真,模拟,合规以及技术,如REST、JSON、MQ、JMS、TIBCO、HTTP和XML的负载测试提供了强健的支持。
TestMaker是一个开源工具,通过PushToTest来测试和监测web,web服务和SOA应用程序的性能。它运行在Jython(用Java编写的Python)上。TestMaker可以重用Selenium测试,SoapUI测试,Sahi公司测试或任何用Groovy,Java,Python,PHP,Ruby和Perl写的测试到功能,负载和性能测试中。
Postman是另一个API / web服务测试工具,它自带功能强大的HTTP客户端支持。它有一个易于使用的请求构建器,允许你编写测试用例和管理响应数据和响应时间,以便于API测试用例的高效测试和管理。
vRest是一个专门用于测试,模拟,以及REST API和Web服务验证的工具。它还支持与第三方API或HTTP服务交互的web,移动和桌面应用程序的测试。
HttpMaster是另一个用于REST web服务测试的专用工具。它可以帮助测试人员测试REST API的行为,并验证以如XML、JSON和HTML格式输出的数据。凭借其通用的HTTP工具,HttpMaster也可以帮助开发人员模拟客户活动和API应用程序的响应行为。
Runscope是一个简单的工具,用来测试和监控API的性能。它可以帮助你验证是web服务还是API返回了正确的数据,同时当API出问题时给出提示。Runscope还支持API和移动app的后端服务测试。
Rapise是一个健壮的自动化工具,有着强大和可扩展的功能。它基于一个开放和灵活的用于REST / SOAP网络服务的快速功能测试的体系结构。 Rapise还提供对web应用程序的支持,web应用程序用用Java,.NET,AJAX,Silverlight和Flash内置。
WebInject是一款用于自动化功能,验收和回归web和web服务测试的免费工具。它是一个命令行工具,基于Perl,简化了测试的执行,因为它不需要在命令提示符上花时间。此外,它没有类似用户接口的IDE,这意味着,测试是在WebInject UI之外写入的。它可以在有Perl解释器的平台上运行。
最后,Storm是另一个CodePlex的开源工具,用来测试用Java或.NET编写的web服务。目前,它仅支持SOAP web服务。
以上来源码农网,并稍加处理。
摘自:https://mdluo.github.io/blog/about-front-end-interview/
继上一篇 关于程序员求职简历 之后如果顺利的话就应该是面试了,在此也整理一下最近在网上收集的前端面试相关资料,包括预备知识、书籍、面试考点、面经等。前端方面资料其实太多太多,就光从知乎、前端乱炖、w3cplus 等网站就能找到很多,所以针对细节不发散,仅挑一些内容丰富的合集,更多的资料可以从其中找到。
参考我整理的列表(部分维护了网站、技术型前端团队): 国内知名前端团队
前端技能汇总 Frontend Knowledge Structure (源码)(朴灵,阿里巴巴)
大前端的瑞士军刀,只记录有用的(源码)(聂微东,百度)
前端收集(罗磊,腾讯阅文)
2015-2016前端知识体系图谱(w3ctech)
QQ联盟群交流(492107297)群规(有大量的教程、资料、面试题)(豪情)
前端开发者手册(Pomy,美团)
有哪些关于前端开发技术(HTML、CSS 和 JavaScript 等)的值得推荐的书籍?(李路,Knewone)
前端路上的旅行(大漠,淘宝)
Developer进阶书单(phodal,ThoughtWorks)
年后跳槽如何准备?(豪情)
学习前端的这一年(Helkyle @ w3ctrian)
写给前端面试者(大漠,淘宝)
谈谈面试与面试题、谈谈面试与面试题 II (winter,淘宝)
互联网公司技术岗实习/求职经验(实习内推+简历+面试+offer篇)(张秋怡,阿里巴巴)
史上最全 前端开发面试问题及答案整理(trigkit4,口袋购物)
最全前端开发面试问题及答案整理(AutumnsWind)
前端开发面试题(马云云,ZTE)
收集的前端面试题和答案(邱德清,阿里妈妈)
web前端面试相关的知识点(王文杰,乐视云)
2016十家公司前端面试小记(沧海)
一道常被人轻视的前端JS面试题(沧海)
Web前端开发测试题(大漠,淘宝)
常见前端面试题及答案(默语,腾讯)
前端工作面试问题(一)(Ruipeng Zhang,哈工大)
面试经验分享之数据结构、算法题(Song Chengru,清华)
名企笔试(伯乐在线)
如何面试一名前端开发工程师?(芋头,大搜车)
国内大型互联网公司(如BAT)对于web前端开发方向校招都考些什么?——知乎
谈谈前端『新』技术(尤雨溪,Meteor)
为什么整个互联网行业都缺前端工程师?(100offer)
近几年前端技术盘点以及 2016 年技术发展方向(小胡子哥,淘宝)
如何跟上前端开发的最新前沿(GitHub)
年末了,回看总结下。
2014年于我是一个比较糟糕的一年,“悠闲”了一阵,所以未做个人总结。
生活上,这年改变不少。最大的改变是结婚了,非常感谢她,生活得很开心,一辈子。
工作上,这年很忙,却感觉没什么收获,或许主要时间花在产品上,技术没啥关注,现在产品也没啥表现。现在做开店平台有得玩吗?(如果有好产品,想多一个销售渠道,咱们可以聊聊)。工作也依旧迷茫,经常浮躁。
学习上,这年没看几本书,倒是买了千把元书。初步学习了 iOS,Android 开发,但又凉了一阵。
总体,2015是满意的,因为有她,2016年下来更多的责任,专注:
虽然计划总是赶不上改变,督导下自己也好。
喜欢这句:小时候,幸福是一件东西,拥有就幸福;长大后,幸福是一个目标,达到就幸福;成熟后,发现幸福原来是一种心态,领悟就幸福。
最后,祝福大家新的一年身体健康,顺心顺意!
8款非常有用的网站速度测试工具,更加全面的了解网站性能:
又到年末,依旧感叹时间的飞逝。隔了大半年,才这里写上一篇文章,而且是年度总结,感觉更是无从下笔。
如果按客观格式写点个人总结:
1)这一年做了什么事情?
2)上一年的总结的计划的事情进展的如何?
3)具体分析完成的事情或目标情况,如完成的百分比,有哪些偏差,有哪些好坏等等?
4)明年的计划和展望是什么?
可是,还是觉得难以表达,难以总结。
这一年,过得还是很「混沌」和「迷茫」,创业团队快两年了,还是处于探索期,在尝试不同的方向,团队成员有疲惫,失去信心的状态。我很是自责,在产品规划、设计和运营这方面经验很不够(我是一个技术能力马马虎虎的coder)。但非常感谢团队的信任!
上一年(2012年的个人总结)计划中,无一实现。但是这年感觉过的很忙很忙,停下来静思,却一点也不充实,无积累。
总之,能力(先产品设计,部门协调,市场营销等能力,这些能力也说得很泛)还很浅很浅,学习再学习,专注再专注。
2014年,2013过去,1314,瞄~
2014年,电子商务又会有一个怎样的发展?阿里双11一天的350亿销售额更说明电商在咄咄逼传统行业。
2014年,移动互联网会进阶到怎样的时代,2013年可以说是移动互联网的创业大潮的青春时代,看过《浪潮之巅》,大家应该就站在移动互联网浪潮之颠吧。所以,骚年们,咱生得逢时啊,但是怎么抓住呢?那个愁啊!
所以,2014年,我的关键字有大家说得老烂的字词 「电子商务」、「移动互联网开发技术」,还有一个非常关键的「爱情->婚姻」。(大伙祝福我吧)
最后,虽然很啰嗦,很负面的呱啦了一段,但马年伊始,祝福大伙想啥「马上」有啥!哈哈…
以下内容摘自「知乎」网站。
———————————-
回答1:JimSoup,用户体验/品牌设计师
不用把交互和视觉的职责目的分得太开,他们只是使用的工具不同而已。
交互设计师需要用非常清晰和流畅的操作和逻辑框架来提高用户体验,这些交互流程更多是隐藏在操作过程中,有各种逻辑关系的层次。而视觉设计师使用让我们眼睛直接感受到的视觉效果来传达一个产品的意图,更加浮在表层上。
可能这些说法并不是非常具象。我一直以来比较赞同的是建筑设计行业的一套说法——建筑设计(界面设计)、交互设计师(结构师)、视觉设计师(建筑/外观设计师)。
首先接到建筑需求后,经理(产品)会评估整个建造过程并统筹安排,他应该是最了解整个工程项目的进度和细节的,最具有大局观的人。
在建筑设计的过程中,结构师(交互设计师)会设计整座建筑的结构——楼层得有多少层,占地面积多少,每层多少户,什么结构更加稳妥,楼梯和各种管道如何铺设。居客很难看到结构师做了什么,但他们的确很重要。
而建筑/外观设计师(视觉设计师)则会设计整座建筑的外观,甚至细节到每户中房间和大厅的布局和装修。这些都是为了让居住这里的人住得更舒服。你并没办法说哪个更重要,只能说缺谁都不行。
如果说一个产品就好像一个人一样,那么交互为其骨骼,视觉则是其肌肤。开发为其肌肉和器官,产品为其大脑,而运营为其血液。
所以,设计师的同行,不要只是认为交互只是把操作流程做得流畅,视觉也肯定不是为了把界面做得更漂亮。这些都不是目的。
相比开发来说,设计能为产品解决的问题的确不多。但是,设计可以做到——让用户享受问题。
———————————-
回答2:张书泓,腾讯交互设计师
“界面”是机器中的一部分——通过这个部分,用户可以了解机器的状态、对机器进行控制、并获取反馈。“界面”不仅包括图形界面,也包括实体界面。
“视觉”是一种人的感官类型——通过这一个感官,用户可以了解信息,感知物体,被激发情绪。“视觉”不仅包括美观,更包括引导。
“交互”是一种行为类别——在这种行为类别中,用户会发出自己的行为请求,接受者随之给予用户反馈和后续行为的引导。
本质上来讲这三者没有比较的意义,因为它们是不同视角下的概念。
如果非要画个范围,大致会是这样:
它们有大量不重叠部分。界面设计还包括很多技术层面的东西,视觉设计包括大量感官传达的东西,交互设计也有一些其他的纯行为流程类的东西。
—————- 以上只是广义上的看法 ———————
现实工作中一般不会牵涉这么广的看法,互联网业界对着三者的理解是窄化了的概念。
如果你到互联网公司求职,职能上可能会这样划分:
千万注意,这只是职能上这么划分。部分职能所做的事也并不是和广义上一致的。
例如一般不存在界面设计这个层面的职位。例如界面布局也可能划到交互设计范畴。
例如界面的跳转引导也可能归到视觉设计。
总之,这只是职能上这么划分。
如果你希望成为一个合格的设计师,对设计的理解和能力的千万别受这个边界限制。
一个合格的设计师“最起码”应该这样理解:
要做出好东西,理念和能力都应尽量融通,走得远一点,了解得广一点更好。
———————————-
回答3:林朝辉,产品设计师在创业路上,伪哲学家、伪管理…
用岗位职责来回答你比较容易理解:
1、界面设计和视觉设计都是美术类的岗位,但工作分工不同:
界面设计:UI(User-Interface Design),用户界面设计,例如软件、网站、APP等;
视觉设计:Visual Design,更多偏向品牌、形象设计,例如广告、海报、周边等;
2、交互设计(Interaction Design)则是对人机交互界面、反馈、流程的设计,与界面设计配合;
3、如果以一个手机APP项目为例,
交互设计让产品更好用,界面设计让产品更好看,视觉设计让产品更好卖(用户更想用或买)。
执行力,激情,有动摇。
但行好事,莫问前程。河狭水急,人急计生。