A. 为什么做AI的都选Python
主要是爬取数据,并把爬回来的数据进行分析和挖掘
B. 微软为什么敌视java
Windows是非常受人们欢迎的操作系统,它是微软立足于软件界的根本所在;Java是非常受人们欢迎的编程语言,它是SUN公司的心血之作,Java最大特点是:一次编写,可以适应于任何平台, 包括IBM的大型机,SUN公司的服务器,装有Windows的PC机,甚至还包括手机这样的终端设备。1996年,微软遇到了SUN,两者一拍即合,微软利用Java开发出IE浏览器,它们携手打败了网景的浏览器,然而,此后发生的事情打碎了SUN的美好幻想。
Java曾经是Windows的亲密战友
事情还得从80年代说起,当时借PC机东风,微软与英特尔组成的Wintel联盟所向披靡,它们踩在蓝色巨人IBM的肩上发达起来,微软生产的Windows操作系统一度控制着整个PC市场,获得巨大成功,但是它却忽略了互联网的发展,被另外一家以生产浏览器软件而闻名的网景公司(Netscape)抢占了先机,它先于微软推出浏览器软件。当时,SUN公司以生产UNIX服务器为主,这种服务器可以用于网站建设,所以它始终坚持"网络就是电脑"(The Network Is the Computer)的信条。当时,SUN公司也尝试设计一种名为Java的程序语言,一开始准备将其用在家用电器市场的,Java代码灵活小巧,可移植性强,并能够跨平台操作,不局限于某种操作系统,1995年,互联网大行其道,SUN立刻意识到这是一个机会!因为Java语言结构新颖、可实时操作、而且安全性强,适合用于编写浏览器软件。由于SUN当时对开发软件产品尚缺乏信心,所以它免费将Java放在网上,任由人们使用,没有想到此举使Java获得极大的成功和好评。SUN公司的CEO斯科特?麦克尼利从此将自己称做是"JavaMan"。
微软为了打败网景(Navigator浏览器),跟SUN达成某项交易,SUN允许微软使用Java言来开发IE浏览器,当IE成功问世时,微软将IE捆绑进操作系统中,使得很多电脑用户不得不使用IE作为缺省的浏览器软件。网景受到强烈的冲激,1996年春,网景(Navigator浏览器)拥有87%的市场占有率,1998年就降到40%,最后它也不得不免费供用户使用,终于在1998年11月,网景(Navigator浏览器)被美国在线(AOL)收购。
那么原本是亲密战友的SUN与微软是如何翻脸无情?以至Java最后也被Windows无情地抛弃呢?
Java成了Windows中不受欢迎的客人
1996年9月的某个星期日,微软资深的软件工程师艾达姆.波茨瓦斯在几经考量之后,提笔给时任微软CEO的比尔.盖茨写了一封信,波茨瓦斯当时是微软浏览器部门的主管,在信中,他非常恳切地提醒比尔.盖茨注意一个正在形成的威胁,这个威胁不是来自别人,正是其盟友SUN公司创建的一种编程语言--Java,这种语言允许编程者一次性编写程序代码、就可以在多个不同的操作系统上运行(如从IBM的大型机到Sun公司的Unix服务器,再到WindowsPC机都能运行,甚至在手机平台上也可以);而不需要针对每个计算机硬件和操作系统配置的不同而改动程序代码,并且这种语言在网络上是安全的。在信中,他写到:"必须意识到Java不仅仅是一种语言,如果它仅只是一种语言,对微软是不会造成威胁的。我们愿意并且能够容易地为它建立最佳的表现形式,事情可以圆满解决了。但是事实上,Java绝不仅仅是一种语言,它是COM的替代者。"--而COM恰恰是Windows基于的编程模型。然后,波茨瓦斯用大约1000字解释了使用Java编程是多么容易,相反,当程序需要执行许多任务时,使用C++编程语言则要用到相当多的复杂的代码,这比Java麻烦得多。波茨瓦斯也提出了一些对抗Java的方法,其中一条是悄悄地为Java提供某些扩展,使得用Java编写的程序能够在Windows中工作得更好,但是在其它平台上却不能运行。他警告说这项工作应当以诱导而不是冲突的方式来进行,最重要的是微软必须意识到Java的力量,"我们首先必须承认Java正在与COM相竞争,然后想出对策,而不只是把头埋在沙子中逃避问题。"
盖茨在收到这封信时,正是他准备"闭关清修"的前几天,原来比尔.盖茨每年都要抽出一点时间来考虑微软长期发展战略,人称"思考周计划"。盖茨显然被这封信吓坏了,他第二天就回信了:"这可把我吓坏了。我不清楚微软的操作系统要为Java的客户应用程序代码提供什么样的东西,而这些东西将足够让它来取代我们的市场地位。了解这一点非常重要,是应该最优先考虑的事情。"(没想到,这封信成为几年后司法部针对微软的反托拉斯案的呈堂证供。)
于是,Java成了Windows中不受欢迎的客人,微软开始对其进行清扫,SUN又岂是好惹的?一场针尖对麦芒的好戏就开场了。
Java与Windows的殊死斗争
作为一对死对头,微软和SUN一直官司不断。1997年,Sun公司以歧视使用Java软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法为由起诉微软,2001年1月,SUN胜诉,根据双方达成的和解协议,微软不得对Windows操作系统中包含的Java语言作任何改动,并获赔2000万美元。这是SUN首次与微软的正面交锋,谁想这为日后微软拒绝支持Java语言埋下了伏笔,因为理由很正当,既然你SUN不准我对Java进行改动,而随着操作系统的发展,不改动Java是适应不了新的形势,那只能弃用Java了。
然而,有关Java的事情还不算完,2001年年底,微软在推出新版操作系统Windows XP和新版IE时,故意不安装Java软件,2002年的3月8日,SUN公司向美国加州地区法庭提出起诉,称此举造成它直接经济损失高达10亿美元。根据反垄断法,原告可以要求被告支付实际损失三倍的赔偿,因此SUN如果打赢了这场官司,也许最多可以得到30亿美元的经济赔偿,看来SUN这回动真格的了!微软岂能甘心,干脆一不做二不休,开始了新一轮的报复,2002年6月,微软称从2004年起,微软的Windows操作系统将不再支持Java语言,并解释这样做的原因是考虑到安全问题。2002年7月,微软关闭了一个自动向Windows XP用户提供Java软件的站点,据微软称,此举是因为Sun公司声称微软没有权利通过在线方式发行Java软件,为了避免产生纠纷,只好停止此项服务。就在双方口水战日益升级之际,迎来了有关SUN诉微软案的第一次听证会。
SUN起诉微软的听证会被安排在2002年12月的第一周,当时,在巴尔的摩市下了近三年来最大的一场雪。整个城市几乎都停止运转。但是弗雷德里克?摩兹法官坚持要求开庭,并且要求几十位与案件有关的律师到场出席;据审判时一位目击者说,为了保证早上能够到庭,法官他自己在会议室中睡了一晚。
几周后,也就是2002年12月23日,摩兹法官发布了那份长达42页的判决书,他裁定微软公司必须在其Windows操作系统和IE中发布与其竞争的Java编程语言。这份裁定书可谓是司法界的一部力作,在平实的、以第一人称的叙述中,摩兹法官回顾了SUN和微软之间关于Java斗争的历史,充分展示了双方各自的论据,相当艺术地解释了为什么要求在Windows操作系统中提供对Java的支持是对相关各方最好的选择。从过去的情况来看,每当涉及复杂技术的诉讼时,法官经常在面对着术语时显得无所适从。但是,摩兹法官给人的印象却是对Java和.NET相当熟悉,而且他表现出强烈的支持SUN的立场,但是他那对微软不利的判决是有技术和商业上的事实作为基础的。
简而言之,摩兹法官的意见是:在微软的垄断下,Java拥有一个并不健全的市场,比如说,大部分PC上所安装的Java软件要么就是旧版本,要么就是仅适用于Windows的版本,这使得其它软件开发者对Java平台产生了厌恶的情绪,这些都是因为微软反竞争行为的结果,看来微软已经利用Windows的垄断地位来破坏SUN对Java的销售渠道。树立市场正义的唯一方法是纠正微软的所作所为,"阻止微软从它过去的错误中获得将来的利益!"
拉锯战仍在继续
虽然2002年12月,法官已经作出对SUN有利的判决,并且再一次召集双方律师,举行了特别听证会,2003年1月15日,摩兹法官下令微软必须在120天完成在其视窗软件中加载Java的工作。
2003年2月21日,微软正式提出反诉,称此案有违公平,微软公司在其上诉请求中声称,即使微软不在Windows系统中发布Java技术,Sun公司也不会马上就面临任何"不可挽回的伤害"。Sun公司则声称说,在Windows系统中发布Java技术是一个时间敏感性的问题,一再推迟可能会给Sun公司及其技术带来损害。美国第四巡回法院已经宣布将在今年4月3日举行初步庭审,以此看来,此案究竟如何了结,还是一个未知数。
Java作为一个跨平台水平,一经问世就受到人们的欢迎,据统计,全世界目前有200多万Java程序员。但即使Java获胜,也仍然耽误了最好的发展时机,希望微软早已经推.NET战略,并且C#语言就是专门针对Java开发出来的语言,微软的各种软件在市场上的占有率都很高,即使最终的裁决对Java有利,也不会改变微软目前雄踞软件世界的局面。
以微软、SUN的财力物力,对付诉讼的经验来看,一场拉锯战仍然是在所难免的了。
C. 怎样才能在stackexchange上面提问
这里虎嗅对Stack Exchange多介绍两句。Stack Exchange是一系列问答网站的平台,旗下的子网站总共有133个,覆盖了包括数学、园艺、物理、密码学、天文学、数据科学、摄影、经济学等不同领域的问答话题,其中最有名的就是程序员们耳熟能详的Stack Overflow。
Joel Spolsky认为,他们与Quora不一样之处在于:Quora是社交型的综合问答网站,而Stack Exchange则更注重事实型问答。在盈利模式上,Stack Exchange主要依靠招聘服务和广告,各占三分之二与三分之一。
Stack Exchange在把握社区氛围方面控制得很严格。以下这篇文章也展现了这一点:Stack Overflow是如何一路扩张成长到 Stack Exchange,而还牢牢把控把社区的凝聚力的。
今天,Stack Exchange非常高兴的向大家宣布一个好消息,我们刚刚筹资了4千万美元,而这大部分都归功于Andreessen Horowitz。
大家可能会对我们会如何使用这笔钱充满好奇。首先,当然我们需要先给我们办公司已经陈旧的Aeron座椅都镀一层金,然后我们会升级下我们已经老化的游戏厅了,同时我们也早已给我们的明星用户们送去了庆祝蛋糕。
但,这些还是先按下不表。首要的,我们还是带大家一起回顾下Stack Exchange从创建以来经历的一些事情吧。
2008年,我和Jeff Atwood当时还在为如何解答开发人员碰到的问题而白了少年头。在当时,要找到一个编程类的问题的答案是一件非常让人痛苦的事情。因为我们想要的答案往往都是藏在一座座的金钱砌成的墙后面——要付费的网站,要不就是在一堆已经休眠了有如几百年的散发出臭味的论栏里面。
所以我们当时就一心一意的带着强迫症和满腔的热情来为广大的程序员打造了现在大家看到的Stack Overflow——这个更好的问答网站。
Stack Overflow今天存在的意义和价值就是为了让程序员可以工作得更轻松点。网站中我们允许成员对答案进行投票,这样我们就可以优先给大家提供最好的得分最高的答案了。我们这里不欢迎固执己见自以为是的提问方式,因为这会很容易引发如山爆发般一发不可收拾的口水战,而这对其他想要立刻得到答案的用户是没有任何帮助的。同时我们也要小心谨慎的防止Stack Overflow上面的文字内容朝商业化的方向发展,因为商业以为太重的话会失去用户对我们的信任。
大家会觉得更不可思议的是,我们这里还不允许任何动画广告的出现,虽然在很多其他网站上这都是个标准做法。但对我们来说并非如此,我们不想将程序员专注的眼神从阅读答案中分神到你这正在大跳江南style的动画广告中来。也就是说,如果我们因为鸟叔的如耍猴般的左蹦右跳让程序员分神了的话,我们也就不能保证能给这些程序员提供100%的服务了,最多只能提供98%级别的服务……但,你要知道我们都是偏执狂,如果只能做到98%的话,我们倒不如直接将Stack Overflow关门大吉然后跑拉斯维加斯去开出租拉活儿得了。
无论如何,最终我们做到了!这完全归功于你们。你们这班多得吓死人的开发者站出来成为了知识传递的火炬手,给大家提供了众多的帮助。因为你们的贡献,Stack Overflow很快就成为全世界有关编程知识的最大、最值得信赖的社区网站。
很快,我和Jeff就发现要给程序员提供服务的话,仅仅一些跟编码相应的问答服务是远远不够的。所以我们跟着又建立了Server Fault和Super User。当发现这还是不能满足你们的需求的时候,最终Stack Exchange开始出炉,整个社区根据不同的主题来扩展出不同的网站来为大家服务。所以当你要帮助隔壁的美眉建立一个服务器,或者安装一个PC,或者数据库,或者装个Ubuntu, 或者搞搞iPhone新意思的时候,你就可以先来我们的网站上面找到那些完全可以帮助你解决问题的大神或他们提供的答案,然后再去隔壁美眉家里大展身手了。
但大家应该都很清楚程序猿这个群体是怎么回事,他们都是安分守己兢兢业业的好人啊,所以很容易一不小心就成家立室儿女成群了。那么育儿和给小孩拍照这些事情对程序猿来说往往是一窍不通的事情啊,所以我们的用户就开始为这些与编程不相关的主题创建相应的Stack Exchange网站了,如育儿主题和摄影主题。因为我们所服务的程序猿往往会想要有个地方可以知道更多有关保姆和下单买奶粉相关的知识!这些有如Stack Overflow那么优秀的可以满足程序猿学习如何育婴和给小孩拍出艺术照之类特殊要求的网站就营运而生了。
因为我们把这群程序猿服务的是如此的周到,一些聪明的非猿类群体就开始盯着我们:“打住!我需要额外的那个功能!” 而我们当然就会很耐心的告诉他们,兄弟!你要知道所有适合程序猿的东西也应该会适合其他所有人的,只要你们愿意按照程序员的思维去思考问题就万事大吉了,且你要是尝试过的话,你要知道程序员的思考方式才是世上最好的思维方式。所以,我们这里对所有想加入Stack Exchange大家庭的人都会广开方便之门。且他们创建的这些网站都是为了他们所认同的一个社群所服务的,比如“自行车维修”、以及其他你能想到的主题网站。
所以从Stack Exchange创建伊始,我们加盟进来的用户已经打造了共133个各式各样的社区了。当然Stack Overflow还是最大的老大哥。这样我想起了下面这张中世纪时代的图画。这显示了在熙熙攘攘的大城市耶路撒冷这个标杆城市周围,聚拢了一堆小一点的村落房屋。
D. 张近东:刘强东是谁
刘强东,江苏省宿迁市宿豫区人,是大型网购平台京东商城的CEO。2011年12月12日,获得第十二届中国经济年度人物。
刘强东,1974年生,江苏省宿迁市宿豫区来龙镇长安村人。于宿迁中学毕业后,考取中国人民大学,就读社会学系,1996年毕业于中国人民大学社会学系。大学期间,在完成学业的同时,酷爱计算机的他将所有课余时间用来学习编程,自称大学期间把90%的时间花在了编程上,“在第一代程序员中还算是比较出色的”。1996年进入某日企(RBLF),历任销售,物流,信息等多个职位。1998年自主创业,最早在中关村做传统的IT代理和零售,据说最初靠诚信在一个论坛打开了销路。2004年,转型做电子商务,成立京东。 转型做京东,据说是因为刘强东发现上游是神码等大的分销商,下游是零售商,代理不上不下,难以持久,于是主动选择了下沉做零售。做电子商务选择产品很重要,于是从卖IT产品转向卖小家电。当然,还有SARS的大背景推动。
E. 高德地图内部程序员们的工作氛围怎样
个人感觉,轻松,愉快,工作氛围好,同事相处融洽。一般工作时间内都能完成任务所以几乎都不需要加班,早上大家一般都10点附近来,下午一般6点20大家也就陆陆续续的开始散了。收购前,收购后,变动的是高层,我们还是该写代码写代码啊。今年进来的应届生被裁了很多,由于业务线与UC重合就是2014年7月正式入职的,2014年12月底都通通滚蛋,卡着你转正前让你滚蛋,什么补偿金都没,公司就是这样对待应届生的,要你你来,不要你滚蛋,年前整出这么一出戏,连个年终都不给,真是够了晚上加班饭补拖欠不给技术上比网络地图差着一大截了,活动也搞不好...我就不说之前某卡活动办得一塌糊涂,连个基本要点都说不出,当然拿不到咯所以应届生还是不要来咯,省的被坑,不管你干的多好,裁应届是最划算省钱的,在高德也不太能学到太多东西,学还是能学一点的,非应届可以来,下班一般比较早人才流失严重,走了很多人对了,看到二楼说裁员不是造谣的那个应届生也在被裁名单,你不出来说句话?省的你的学弟学妹干了半年被裁然后什么都没拿到。直到现在,不明真相的吃瓜群众们还是不知道谁是第一。不过对于吃瓜群众来说,谁是第一可能不重要,重要的是谁更好用。网络地图和高德地图都是国民级产品,要了解这起口水战的前因后果,还得从它们的发展历程讲起。
F. 在php程序员里用面向对象写sql语句好还面向过程好那个效率更快、速度更高
面向对象与面向过程在许多编程语言中只能使用二者之一来进行编程,但是PHP语言与其他编程语言有不同之处,那就是我们可以自由的选择或者将如果你是刚接触PHP,用PHP面向过程的风格来书写代码很可能是你唯一的选
面向对象与面向过程在许多编程语言中只能使用二者之一来进行编程,但是PHP语言与其他编程语言有不同之处,那就是我们可以自由的选择或者将 如果你是刚接触PHP,用PHP面向过程的风格来书写代码很可能是你唯一的选择。但是如果你经常上PHP论坛和新闻组的话,你应该会看到有关“对象”的文章。你也可能看到过如何书写面向对象的PHP代码的教程。或者你也可能下载过一些现成的类库,并尝试着去实例化其中的对象和使用类方法--尽管你可能没有真正理解这些类为什么可以工作,或者为什么需要使用PHP面向对象的方法来实现功能。
应该使用“面向对象”的风格还是“面向过程”的风格?双方各有支持者。像“对象是低效的”或“对象非常棒”这样的议论也时有耳闻。本文不尝试轻易判定两种方法的哪种具有绝对的优势,而是要找出每种方法的优缺点。
以下是PHP面向过程风格的代码示例:
<?php
print"Hello,world.";
?>
以下是PHP面向对象风格的代码示例:
<?php
classhelloWorld{
functionmyPrint(){
print"Hello,world.";
}
}
$myHelloWorld=newhelloWorld();
$myHelloWorld->myPrint();
?>
如果你想了解一些“面向对象”的基本知识,请使用Google搜索,网络上有非常多精彩的文章。
谁像这样写代码?
为了理解为什么这个论题成为论坛上口水战的导火线,我们看一些每个阵营的比较极端的例子。我们看看“过程狂热”和“对象狂热”。看看他们的观点听起来是不是有点熟悉。
过程狂热
过程狂热曾在上课时被计算机教师批评,因为这种方法没有使用更加抽象的实现方式。而支持PHP面向过程者的观点“它可以工作!”并不能提高其编程水平和档次。毕业后他们可能找到一个工作,写驱动程序,文件系统或其它的偏向底层的编程,他们的注意力集中于速度和代码的精炼。
“过程狂热”极端的例子是抵制对象,抵制抽象化。他们总在想着如何让程序运行起来更快,而不在乎别人是否能读懂他们的代码。他们常常把编程当成竞赛而不是团队活动。除了PHP外,他们最喜爱的编程语言是C和汇编。在PHP世界中他们可能会开发PECL模块,贡献出高效率的代码。
对象狂热
对象狂热者热衷于在任何时候使用PHP面向对象的风格来书写代码。他们没有真正考虑过用这种方式是否会影响程序的执行效率。有时候让人觉得他们更享受抽象的设计概念而不是现实的代码。他们通常很可能是项目管理者或文档书写者。
对象狂热者指出,如果没有抽象的设计方法我们仍然在使用0和1进行编程。他们喜欢用伪码来描述问题。极端的例子是对象狂热者即使知道有时候会牺牲效率仍然使用对象。除了PHP,他们最喜欢的语言是Java和Smalltalk。在PHP世界中,他们可能会开发PEAR模块,贡献文档化非常好,易于维护的代码。
不要偏激和讽刺
你知道为什么论坛上总是充斥着各种偏见吗?你的经验阅历,你对新事物的态度都可能是原因。作为程序员,我们需要时常注意这些偏见并以开放的心态去学习新事物。
你的编码倾向?
考虑一下当你书写PHP代码时有什么偏好或倾向。通常这些偏好是比较隐晦的。有时候你可能在每个项目中有着同样的偏好。我个人倾向于“优雅”,但我不想在此定义如何才是“优雅”的代码,那应当出现在另一篇文章里。但是,理论化的偏好不一定适合于实际项目—相反地,他们常常是一种偏见。
理论化的倾向
•用最少行数的代码提供一个完整的解决方案
•在问题层次上考虑问题
这听起来似乎很不错。但“代码行数最少”如何来衡量呢?要把代码注释算在内吗?我们是否要把每一行都串起来而只用分号来区分呢?大括号呢?很明显这种想法是错误的。
再解释一下什么是“问题层次”。这是否意味着在我们的方案中的每个概念都需要建立一个类?或者需要在每个独立的文件里保持问题的每个部分,并建立一个复杂的文件树来与现实中的问题相对应?就是这样的想法--为每个想法准备一个文件或类!
很明显这些概括极端化后变得可笑。但现实中存在更微妙的证明。是否常常会有程序员在团队合作时插入一行复杂的,强大的但没有注释的代码?这对于接手维护这些代码的人来说无疑是非常令人沮丧的事。相反地,是否你的官僚的自以为是的上一级程序员常常“横冲直撞”般地,建立接口和类?而那些接口和类不仅仅限制了负责实现的程序员,也限制了效率和灵活性,导致客户要求扩展程序时手足无措。这些都是以上各种倾向的微妙的证明。
实际倾向
一个项目开始的时候,首先要寻求实际的编码目的和方向。这个项目的实现目标是什么?下面是可能是答案。
•开发快,发布快
•尽可能快地运行
•易于维护,改进和扩展
•发布一个API
第一、二个方向倾向于使用过程化的风格,而最后两个倾向于使用PHP面向对象的风格。
什么时候某种方式更有效?
现在让我们试着评价每种方式在现实中的优势。
PHP面向过程案例
有关PHP的面向过程化编程优势的一个基础性的论据是:PHP是一个解释性的语言--这意味着,不像其它的语言一样,它不会被编译成一个可执行的包,而是被解释并马上执行。它是一种脚本语言并存储于文本文件中(例外的,如果使用了Zend编译工具)。
另一个反对在PHP4及更低版本中使用面向对象方式进行编码的理由是:在PHP的早期版本中对象的功能并没有经过良好设计。就像Rasmus曾说过的:“那是事后才想起要增加的功能”。这意味着在PHP4及更早的版本中,对象的效率是个问题。但PHP5出来后,这种情形会有改观。
以下两个最流行的PHP程序--OsCommerce和PhpMyAdmin.主要使用面向过程的编码方式。它们构建起来很快,运行起来也很快。两者都很自然地采用嵌入HTML的方法。
OsCommerce
OsCommerce实际上使用了很多对象,但绝大部分功能是通过“过程”来实现的。我曾经hack过OsCommerce,为其增添一些对于客户非常实用的自定义功能。这个过程是挺麻烦的,因为OsCommerce中的很多过程代码,没有使用模板化的系统,并且设计成多语言版,所以需要花一定的时间才能上手。但是它可以工作,事实上它已经很好地运行在数目众多的电子商务站点上了。OsCommerce同时提供了一个论坛和一个开发框架用来开发模块和插件。因此,现在已经有了很多其它开发者提供的实用的功能模块。
PhpMyAdmin
PhpMyAdmin直接使用的类只有一个:MimerSQLValidator类,依赖于PEAR包中的Mail_Mime,Net_DIME和SOAP。这可能是考虑到开发的方便:利用现成的可以实现目的的代码。除此之外,一切都是面向过程的,HTML和PHP代码也是混杂在一起。
PhpMyAdmin是我几乎每天都要用到的一个工具,用来对少量的数据表进行不太复杂的处理。有时我甚至鼓励我的客户将它当作后端的管理工具来使用(当然我会限制他们的权限)。PhpMyAdmin的表现非常棒,也很快。有时我想在一些项目中扩展PhpMyAdmin作为后端的管理工具,利用它的一些新功能如数据查询语句书签可以很方便地展示给我的客户和编辑。随着每个新版本的推出,PhpMyAdmin越来越实用,功能越来越强大。 软件开发网
PHP面向过程小结
以上两个使用面向过程风格的程序都有非常好的文档和代码注释。OsCommerce提供的开发框架可以增加维护性和扩展性。但是两者都没有提供API,不能扩展程序到另外的体系中。
如果你想把OsCommerce整合到一个帐单程序中,需要花费大量的时间和精力,就像扩展PhpMyAdmin成一个供客户使用的后端管理工具。不过从它们设计的目的来看,确实在各自的领域中都表现地很出色。
PHP面向对象案例
支持面向对象风格者的观点都集中于扩展性和封装。仅仅用面向对象的方式来写代码不会为你的代码产生文档,但它可以鼓励你为之添加文档。并且,为了易于扩展,你可能会写一个API。PHP5许诺让面向对象编程更加愉快。我开玩笑地将它称为PHP中的”Java2”版本,因为它整合了Java中的许多特性,像接口,面向对象模型,try-catch语句等。但即使在对面向对象支持不
力的PHP4中,仍然出现了许多出色的面向对象应用程序。
Smarty
Smarty用来构建带有复杂表单并基于模板的站点。最近,我写了一个可以完全换“皮肤”的在线考试系统—可以不用改变任何底层的代码和功能就可以将整个站点的外观界面和风格完全改变。为了让设计师可以易于设计新的界面,我设计了一个自定义的标签库作为Smarty标签库的扩展。可以像这样简单地插入:
["|"]
在一个页面的顶端有分隔开的导航。因为Smarty已经提供了非常强大的机制来表现变量中包含的数据,这是一个映射较复杂的Smarty标签到skin标签的简单过程。
由于Smarty封装成一个类,并且它的方法都有很详尽的文档,使得使用模板的过程变得令人难以置信地易于扩展。同时,通过强制性地只能显式地传递你要使用的变量给Smarty模板的方法,Smarty也为PHP的环境变量提供了一个保护层。这种方法有助于在Smarty模板设计师和程序员间建立安全、可靠的工作关系。
Fpdf
FPDF是一个非常优秀的工具。如果你被改来改去的pdflib的API所困惑,或者不愿为商业化的解决方案而交钱;或者由于共享主机的限制,无法使用扩展模块—请考虑使用这个免费的,纯PHP构建的PDF生成工具。
这个类有很好的文档,包括许多很好的例子来阐述如何在PDF中布局文本和图片。在上面提到的同一个在线学习站点我使用FPDF来动态生成PDF文件,使用truetype字体和300dpi精度的图像。在PHP中实例化FPDF类并进行PDF操作并不会花费太多额外的时间,因为PDF本身就可能需要花费几分钟来下载。事实上,动态生成并传送一个PDF所花的时间不比当使用一个慢速的网络连接来传送静态PDF文件所花的时间多。这都是相对而言的。并且,由于FPDF是基于类的,他可以被扩展。事实上,有些类方法虽然存在但还没有完全实现,仅作为一个框架,这可以为你在子类中建立你自己的内容(如自定义的头尾元素)提供向导。
PHP面向对象小结
Smarty和FPDF都提供了带有良好文档的API来扩展主类。这说明了在类的内部组织方法和数据的必要性--有时同样的功能可以用函数和全局变量来完成,但这样不易于扩展。并且,使用对象对跟踪和保持PDF或HTML文档的风格非常有帮助,你可以将同样的数据用不同的格式来发布。Smarty和FPDF都是使用对象来建立灵活实用的类库的极好的例子。
为什么两种方式都是必需的?
回到我们充满热情的程序员身上,我们开始赞美他们:
•我们欣赏Smarty和FPDF的实用性和扩展性
•我们欣赏osCommerce和phpMyAdmin的运行速度和良好表现
这种欣赏还包括对PHP的一些基础开发。PECL和PEAR都收到了很多赞扬和批评。我想这两个项目为阐明PHP面向过程和面向对象编程的区别提供了很好的例子。
PECl提供了PHP的扩展库,用C和面向过程的方式开发,注重速度和简洁精炼。通常,这些都是从已经存在的LGPL软件中移植而来,其中许多有趣的特性已经加入PHP。毕竟,PHP是用C写的。
PEAR则贡献了很多有趣的类如建立Excel表或改变DNS记录等。使用PEAR类库可以为你节约大量时间,甚至可以让你在不怎么熟悉PHP的情况进行开发—“我不理解但它能用!”。
总结
希望本文能加深你对PHP面向对象和PHP面向过程的两种编程方式的理解,并且更重要地—鼓励你在更具体的细节上进行探索。我希望你会有自己的想法,并在实际开发中检验你的项目开发倾向,总结出更多实际的案例,并不啬写些针对本文的评论。
总之,每种方式都有其优势的一面,纠缠于争论不如离开去写些实际的代码!
G. 为什么程序员那么高的工资,比销售人员的平均薪资都高
在一个公司里,不同部门和不同职位的工资有高有低,这是一种正常现象。有些公司可能是基于销售,所以一般的销售收入很高,有些公司是技术或产品驱动的公司,而研发人员工资相对较高。
一位从事销售的网友说,公司的程序员的工资一般是15K到20K,高出他们一大截,销售部门的平均工资也低于最底层的程序员。
该楼主吐槽的点在于销售部门的平均工资甚至低于一个底层程序员,这是不公平的。然而,这种吐槽很容易引起各方的口水战。以下是一些网友的回复。据估计,他们基本都是程序员。
吃瓜群众A:没有什么不公平的,每个公司的运营模式是不同的,主要是看每个公司的需求,像阿里和腾讯,比较依靠技术,所以薪水比较高。
吃瓜群众B:你心里没数吗?你告诉我销售是不是零门槛,是个人都能干?你们销售难道没有业绩比较突出的吗,业绩好的销售四五万一个月的你告诉我有没有?技术人员你到大街上随便拉一个人来都能写代码?
当然,同时也有一些吃瓜群众指出,楼主不应该妄自菲薄,很多程序员都喜欢吹牛:不要听他们吹牛,做好自己的事。虽然我也是一个程序员,但我特别讨厌那些显摆工资的那些程序员,工资再高有能高到哪去,还不是一个打工的,像没见过钱一样,一点意义也没有。
销售人员和程序员本就是不同的职业,工资水平有高有低是很正常的。虽然行业不分贵贱,但是工资还是有所差别的。
后记:对于大部分转行的人来说,找机会把自己的基础知识补齐,边工作边补基础知识,真心很重要。
“我们相信人人都可以成为一个web前端大神,现在开始,找个师兄,带你入门,学习的路上不再迷茫。这里是前端修真院,初学者转行到互联网行业的聚集地。"
H. 360腾讯口水战的全过程
第一阶段
腾讯推出QQ医生1.0 Beta版本,此后很长一段时间内只作为查杀盗号木马的小工具。随后QQ医生3.2推出,界面及功能酷似360,同时宣布赠送诺顿防病毒软件半年试用。之后QQ医生利用春节期间强行推广。 敏感的360很快意识到QQ医生的威胁,一些正在休假的员工被紧急召回以应对这起突发事件。360快速反应,加上QQ医生本身产品并不成熟就匆忙上阵,很多用户陆续卸载QQ医生,其市场份额也快速降至10%以下。360成为此次交锋的胜利者。
第二阶段
5月31日,腾讯悄然将QQ医生悄然升级至4.0版并更名为"QQ电脑管家"。新版软件将QQ医生和QQ软件管理合二为一,增加了云查杀木马、清理插件等功能,模仿涵盖了360安全卫士所有主流功能,用户体验与360极其类似,腾讯这招让360和金山措手不及。 周鸿祎在微博上扔出40多条消息,自爆360与金山的多年积怨,金山随即强烈回应。两家公司随后互诉对方,口水战诉讼战不止。就在这时,腾讯的出手让360措手不及。周鸿祎在接受专访时,建议腾讯应该加大投入解决QQ内部安全问题。
第三阶段
中秋节期间QQ软件管理"和"QQ医生"自动升级为"QQ电脑管家",模仿涵盖了云查杀木马、系统漏洞修补、安全防护,系统维护和软件管理等功能,而这也是目前360安全卫士的主流功能。而凭借着QQ庞大的用户基础,QQ电脑管家将直接威胁360在安全领域的生存地位。 9月27日,360发布直接针对QQ的"隐私保护器"工具,宣称其能实时监测曝光QQ的行为,并提示用户"某聊天软件"在未经用户许可的情况下偷窥用户个人隐私文件和数据。引起了网民对于QQ客户端的担忧和恐慌。
第四阶段
10月14日,针对360隐私保护器直接针对QQ,并在QQ用户中制造恐慌情绪,腾讯正式宣布起诉360不正当竞争,要求奇虎及其关联公司停止侵权、公开道歉并作出赔偿。法院已受理此案。 针对腾讯起诉,360随即回应三点,表示将提起反诉。在回应中,360称"各界对腾讯提出的质疑,腾讯一直回避窥探用户隐私,这时候起诉360,除了打击报复外,不排除是为了转移视线,回避外界质疑"。
第五阶段
10月27日,腾讯刊登了《反对360不正当竞争及加强行业自律的联合声明》。声明由腾讯、金山、网络、傲游、可牛等公司联合发布。要求主管机构对360不正当的商业竞争行为进行坚决制止,对360恶意对用户进行恫吓、欺骗的行为进行彻底调查。 10月29日,360公司推出一款名为"360扣扣保镖"的安全工具。360称该工具全面保护QQ用户的安全,包括阻止QQ查看用户隐私文件、防止木马盗取QQ以及给QQ加速,过滤广告等功能。这已触及了腾讯收入和媒体流量的核心。
第六阶段
11月3日傍晚6点,腾讯公开信宣称,将在装有360软件的电脑上停止运行QQ软件,倡导必须卸载360软件才可登陆QQ,这是360与腾讯一系列争执中,腾讯方面迄今为止最激烈的行动。此举引发了业界震动,业内认为,腾讯这招是逼迫用户作出二选一的选择。 晚上9点左右,360公司"扣扣保镖"软件在其官网悄然下线,360发表公开信,呼吁网民停用QQ三天。在国家相关部门的强力干预下,4日凌晨2点开始QQ与360开始恢复兼容。4日上午,360公司宣布召回"扣扣保镖",请求用户卸载。
I. 1月12日百度被黑了,有没人知道点详细的
12日早上7时许,网络出现访问中断的情况,查询域名.com的WHOIS信息后发现网络域名出现不可理解的问题。
目前Bai.com的DNS服务器被更换,同时主域名已经被解析到一个荷兰的IP,并且访问网络旗下子域名会被跳转到雅虎的错误页面,WHOIS数据也正在不断被刷新中,目前问题并未解决,网络也并没有对此发表回应。
8:20更新:有网友曾经被定向到一个黑页“Iranian Cyber Army”上,域名被盗取或劫持的可能性相当大,不过网络如此大的请求数量是任何一个黑页服务器也无法抵御的,因此只能是访问失败。
回想起twitter上次域名被转向,和这次攻击有着惊人的相似。
8:30更新:网络DNS数据已经被改回,但WHOIS数据依然没有刷新
8:36更新:被黑图像出现,果然是伊朗网军。
也有些朋友在访问时,被定向至一个“Iranian Cyber Army”的页面上,域名被盗取或劫持的可能性相当大。此次事件于上个月17号出现的Twitter被黑如出一辙。
经查询,目前Bai.com的DNS服务器已被更换,主域名已被解析为一个荷兰的IP。
截至发稿时,目前问题依旧持续,而网络方面尚并没有对此发表回应。
国际在线消息:1月12日早上,搜索引擎网站网络(www..com)被发现无法打开,网站处于无法访问状态,也没有出现任何提示消息。
据网友反应,今早8点多,www..com曾经被定向到一个“Iranian Cyber Army”
“网络已经顺利通过了网络史上最大规模的黑客攻击。”9月13日下午,网络CTO刘建国对本报记者称,这是网络高层首次回应被“黑”事件。
9月12日17∶30,有北京、重庆、广东等地的网友反映网络无法正常使用,在对网络服务器执行“Ping”命令时,均返回“请求超时”(Request timed out)的信息。
随后,这次攻击使网络搜索服务在全国各地出现了近30分钟的故障。
刘建国介绍,此次黑客攻击采用的工具被称为同步泛滥技术(syn flooding),通过大量的虚假IP地址建立不完整连接,使得服务超载,从而使网络不能提供正常的服务。
一位程序员告诉记者:“对于一个普通的服务器,只能同时并发几万个链接,但通过同步泛滥技术这种攻击工具,就可以同时并发几十万次链接,造成服务器的超载,从而导致网络服务无法正常访问。”
刘建国称:“这次黑客攻击背后肯定有商业目的,这么大规模的攻击是人为组织并精心策划的,已经涉嫌违法犯罪。”刘透露,网络已经报案,请求公安机关介入协助侦查。
事实上,最近一段时间以来,网络负面事件不断。最新的情况是,一些原广告客户因商业纠纷正准备起诉网络。
这些原网络广告客户接受本报记者采访时称,由于今年没有跟网络续签广告协议,即使翻到搜索结果的最后一页,也无法找到与他们相关的链接,“这是网络利用垄断行为欺负我们”。
但这些原广告客户的起诉却遇到障碍,众多律师事务所不愿意受理他们的案件。一位律师告诉记者:“他们(广告客户)只有情理上的优势,而没有法理上的优势。作为商业公司,网络可以选择在搜索结果呈现哪些网页,或不呈现哪些网页,网络没有义务必须呈现起诉者的网页。”
有分析人士猜测,广告客户有可能铤而走险,不得已使用这种恶性攻击手段。
颇有意思的是,就在本报截稿之前,有业内资深黑客向本报报料,称已经联系上黑网络的“黑客”。该资深黑客透露,“该‘黑客’不喜欢网络,尤其是最近裁员、与天极及搜狐的口水战等事件中,网络的处理方式让他非常不满,于是决定黑网络。”该资深黑客强调,“黑网络只是这名‘黑客’的个人行为。”
网络方面对此不予评论,只表示尚未获得“黑客”的任何消息。
J. 什么是2016年最值得学习的编程语言
对程序员而言,如今已经有了很多编程语言可供选择,编程风格也发生了很大变化。因此,很少有程序员只会一门编程语言,随着行业的不断发展,只会一门编程语言会严重限制程序员的就业前景。
此外,多学一门编程语言可以使程序员具备在不同规则和功能集之间进行转换的技能。而且,即便语言不同,逻辑也是相近的。考虑到这一点,选择合适的编程语言还是很有必要的。不同的编程语言在可用性、直观性和特定功能上还是有差异的,没有任何一种编程语言是完美的——尽管我确信会有程序员不同意这个说法。但我还是给出了如下五大不错的编程语言:
Java
因咖啡而得名是不是在暗示着java会很火热呢?好吧,开个玩笑。现在的各种编程语言排行榜上,java都是最常见和最流行的编程语言。通过“一次写入、随处可用”的标签,java以其极少的依赖关系而闻名,并且可以在任何支持java的平台上运行,而无需重新编译。在数十年的时间里,Java没有显示出任何衰减的迹象。
RedMonk的编程语言排行榜统计了GitHub和Stack Overflow上的数据,对比了各大编程语言的性能,Java排第二。TIOBE排行榜根据全球各地的程序员,培训机构和第三方供应商,还考虑了Google,Yahoo!,Amazon,YouTube,Bai等搜索引擎的数据,最终,java在受欢迎指数上排名第一。
C++
很多人初次接触C++时,大概都是一种既恨又爱的心情吧,但C++确实是绝对不能错过的,C++实际上影响了java,并仍然在今天的编程世界中起着核心作用。实际上,目前它在许多平台上都可以实现,由微软,英特尔,IBM等巨型科技机构提供。
至于排名,RedMonk编程语言排行榜上,C++排在第五位,TIOBE排行榜上,C++排在第三位。
Python
学习Python对java和c++还是有一些好处的,但要声明本文中列出的语言排名不分先后,以免引起程序员们的口水大战,毕竟,哪种语言最好用还是取决于程序员的个人喜好。
Python的重点在于它的设计理念,例如,它强调代码可读性,并开发了一种语法,旨在让程序员完成类似结果时,与java和C++相比使用较少的代码行。代码行缩减是Python一直致力于做的一件事情。
Python在RedMonk上排名第四,在TIOBE上排名第五,再次成为最流行和最常用的语言之一。
Ruby
Ruby及其框架Ruby on Rails一起构成了最有争议的选项之一。是的,关于是否该学习该编程语言的争议。搜索“Ruby on Rails死了吗”,你会发现一堆关于这种语言是否值得学习的想法。
但是两大理由使Ruby和Ruby on Rails成为程序员编码的坚实选择。首先,调查和研究的数据显示,Ruby仍然非常有用和有市场需求。其次,设计理念。虽然其他语言优先考虑终极定制和无限选项,但这些功能通常以牺牲直观性为代价,Ruby on Rails想通过简化流程来解决这个问题。
对自定义软件开发相关的程序员来说,与其他诸如PHP,Node.js和Angular之类的编程语言相比,Ruby具有一些重要的优势,值得被认真考虑。
每个Ruby程序员都知道它的一些缺点,但是任何编程语言都有优点和缺点。而且,Ruby的缺点也是有解决方法的。Ruby与其他编程语言略有不同,因此可能不会对所有程序员的胃口。但是,它仍然是2017年值得学习的编程语言之一。
SQL
在两次调查中,整体来说,SQL性能较弱。它在TIOBE中排名第18,在RedMonk中也排在第18位。
但它的优势在于预测。Stack Overflow做的一项关于开发者的调查中,总共对173个国家的56,000多名开发人员进行了调查,结果在这些程序员最常用的技术中,SQL落后于JavaScript排在了第二位。另一个调查报告也将SQL列为去年最受欢迎的语言。事实上,SQL似乎深受很多程序员的喜欢,绝对是值得新手好好研究的。