程序员访谈

I read an old post, circa 2010, on the MailChimp blog a little while ago, about their experience using PHP.

不久前,我在MailChimp博客上读了一篇老文章 (大约2010年),内容涉及他们使用PHP的经验。

It struck a chord with me, because the sentiments they shared I’ve felt myself, and heard echoed many times over the years. What are these sentiments, you may ask?

这让我很感动,因为多年来他们分享的情感让我感觉到自己,并听到了很多回声。 您可能会问这些情绪是什么?

They’re the ones which infer that PHP, despite all its successes, really isn’t a true programming language. They’re the ones which intimate that, no matter how good you are, no matter what you’ve achieved, if you’re a PHP programmer, well, you’re really not a true developer, yet.

尽管PHP取得了许多成功,但它们还是可以推断出它并不是真正的编程语言。 他们是那些其贴心的是,再好你,不管你已经取得的成就,如果你是一个PHP程序员,好了,你真的不是一个真正的开发商,

They’re the ones which suggest, or is that presuppose, that you should really become one of the cool kids developing in Ruby, Python, or Go; basically anything other than PHP. After all, what can you really do with PHP, right?

他们是暗示或以为前提的人,您真的应该成为使用RubyPythonGo开发的好孩子之一 ; 基本上除了PHP以外的任何东西。 毕竟,您实际上可以使用PHP做什么,对吗?

Despite its successes, or people’s successes with it (a la Facebook, MailChimp, Hailo, Google, and others), it’s inferred we should use languages which had their foundations as pure languages; not ones which came to be a language, as PHP evolved into over time.

尽管它取得了成功或人们的成功(例如FacebookMailChimpHailoGoogle等),但我们推断我们应该使用以其基础为纯语言的语言。 随着PHP的发展,这种语言逐渐成为一种语言。

Here’s a few excerpts from the MailChimp post, which highlight people’s reactions to them using PHP as the basis of their platform:

这是MailChimp帖子的一些摘录,其中突出了人们使用PHP作为平台基础对他们的React:

Despite its popularity, PHP is considered by the programming elite, almost without exception, as one of the worst languages currently in use today

尽管流行,但编程精英几乎无一例外地将PHP视为目前使用的最差的语言之一。

The term “good PHP programmer” is considered an oxymoron

术语“优秀PHP程序员”被认为是矛盾的

You can imagine the horror and surprise we see when we try to tell a good developer that we use PHP to solve cool and interesting problems

您可以想象,当我们试图告诉一个好的开发人员我们使用PHP解决很酷而有趣的问题时,我们会看到恐怖和惊奇

I’ve both heard these sentiments expressed and, at times, felt a sense of insecurity because of them. So the post really struck a chord with me. I’ve done so much with what was once quite a humble set of scripts which helped out with Rasmus’ early development tasks.

我俩都听说过这些情绪,有时因为这些情绪而感到不安全。 所以这个帖子真的让我很感动。 我曾经用过非常简陋的一组脚本完成了很多工作,这些脚本有助于Rasmus的早期开发任务。

And so too did MailChimp.

MailChimp也是如此。

From the same article, here are some of their successes:

在同一篇文章中,这是他们的一些成功之处:

We use this architecture to process well over thirty million emails sent by tens of thousands of users every day, generating tens of millions of bounces, opens, clicks, and unsubscribes that all need to be handled in near-real time. We further process millions of API requests and millions of subscribes and confirmations every day.

我们使用这种架构来处理每天由成千上万的用户发送的超过三千万封电子邮件产生数千万个退回,打开,点击和退订的消息 ,所有这些都需要近乎实时地处理。 我们每天会进一步处理数百万个API请求以及数百万个订阅和确认。

All told, we handle well over 500 million dynamic page views a month. Our backend systems run millions of jobs every day, calculating statistics, querying geographic data, and scanning everything for bad behavior and abuse.

总而言之,我们每月处理的动态页面浏览量超过5亿次 。 我们的后端系统每天运行数百万个工作,计算统计数据,查询地理数据,并扫描一切以查找不良行为和滥用行为。

This is just going to get bigger and bigger as we grow by 500% or more every year

随着我们每年以500%或更多的速度增长,这只会越来越大

But despite this, PHP usually has a bit of a hard time, reputation-wise. At the PHP UK Conference in London on the weekend, Glen Campbell, one of the keynote speakers, expanded on this, referencing a number of links during his talk. Here’s a few excerpts from some of them:

但是尽管如此,PHP在声誉方面通常还是有些困难。 在上周末在伦敦举行PHP UK会议上,主题演讲者之一Glen Campbell对此进行了扩展,在他的演讲中引用了许多链接。 以下是其中一些摘录:

One of the harshest, PHP: a fractal of bad design, writes:

最苛刻的PHP之一:不良设计的一部分 ,写道:

PHP is the lone exception. Virtually every feature in PHP is broken somehow. The language, the framework, the ecosystem, are all just bad. And I can’t even point out any single damning thing, because the damage is so systemic. Every time I try to compile a list of PHP gripes, I get stuck in this depth-first search discovering more and more appalling trivia. (Hence, fractal.)

PHP是唯一的例外。 实际上,PHP中的每个功能都以某种方式被破坏。 语言,框架和生态系统都不好。 而且我什至无法指出任何该死的东西,因为损害是如此系统化。 每次尝试编译PHP技巧列表时,我都会陷入这种深度优先的搜索中,发现越来越多的令人震惊的琐事。 (因此,是分形的。)

PHP is an embarrassment, a blight upon my craft. It’s so broken, but so lauded by every empowered amateur who’s yet to learn anything else, as to be maddening. It has paltry few redeeming qualities and I would prefer to forget it exists at all.

PHP是一种尴尬,对我的技能造成了困扰。 它是如此的残破,但却为每一个有能力的业余爱好者所称赞,他们还没有学到其他东西,甚至为之疯狂。 它几乎没有什么赎回品质,我更想忘记它的存在。

Jeff Atwood, from Coding Horror, has this to say:

来自Coding Horror的 Jeff Atwood这样说:

What we ought to be talking about is not how terrible PHP is – although its continued terribleness is a particularly damning indictment – but how we programmers can culturally displace a deeply flawed tool with a better one. How do we encourage new programmers to avoid picking up the double clawed hammer in favor of, well, a regular hammer?

我们不应该谈论的不是PHP多么糟糕-尽管其持续的糟糕性是一个特别令人发指的指控-而是我们的程序员如何在文化上用一个更好的工具替换一个严重缺陷的工具。 我们如何鼓励新的程序员避免拿起双爪锤,而选择普通的锤子?

He also tweeted that:

他还发推文说:

PHP is the Nickelback of programming languages.

PHP是编程语言的“黑背”。

There’s a few subtle presuppositions in that assertion, but we’ll leave that for another time.

该断言中有一些微妙的预设,但我们将其保留一段时间。

Or how about this quote from Fredrik Holmstrm:

或Fredrik Holmstrm的这段话怎么样 :

Every solution I’ve ever seen or developed in PHP feels clunky and bulky, there is no elegance or grace. Working with PHP is a bit like throwing a 10 pound concrete cube from a ten story building: You’ll get where you’re going fast, but it’s not very elegant. … I love PHP, and it’s the right tool for some jobs. It’s just an ugly, cumbersome tool that makes me cry and have nightmares. It’s the new VB6 in a C dress.

我见过的任何用PHP开发的解决方案都感觉笨拙而笨拙,没有优雅或优雅。 使用PHP有点像是从一个十层楼高的建筑中扔出一个10磅重的混凝土立方体:您将获得快速发展的目标,但是它并不十分优雅。 …我喜欢PHP,它是某些工作的正确工具。 这只是一个丑陋,繁琐的工具,使我哭泣并做恶梦。 这是穿着C裙的新款VB6。

这些断言正确吗? (Are These Assertions Correct?)

I won’t say that PHP applications are always shining examples of software engineering excellence. But the old adage of a poor worker blames his tools can also be attributed here.

我不会说PHP应用程序始终是软件工程卓越的光辉典范。 但可怜的工人的古老格言也归咎于他的工具

I’ve built applications which manage political fundraising events, simplify LDAP interfacing, customise e-commerce shops and more.

我已经构建了用于管理政治筹款活动简化LDAP接口自定义电子商务商店等的应用程序。

I’ve seen others build affiliate networks, create large CMS’ and finance packages. I’ve seen all manner of companies offer PHP bindings, such as Stripe, FreeAgent, Twilio and more.

我见过其他人建立会员网络创建大型CMS融资方案 。 我已经看到各种各样的公司提供PHP绑定,例如Stripe , FreeAgent , Twilio等。

So it got me thinking. Am I the only one who feels that, despite PHP’s shortcomings, it’s still infinitely more than capable?

所以这让我开始思考。 我是唯一一个感觉到尽管PHP有缺点,但它仍然比功能强大得多的人吗?

Do others have similar sentiments, and like Glenn suggested in his talk, that we needn’t worry about the negativity and just get on with doing great things with PHP? I know there are!

是否其他人也有类似的观点,并且像Glenn 在他的演讲中所建议的那样 ,我们不必担心否定性,而只是继续用PHP做伟大的事情? 我知道有!

实际开发人员的反馈 (Feedback From Actual Developers)

So I decided to get out there and interview a number of people, people with solid, practical, experience, developing applications of varying sizes with PHP and get their input.

因此,我决定走出去,采访一些人,他们有扎实,实际的经验,并使用PHP开发各种大小的应用程序,并征求他们的意见。

These are developers from a diverse range of companies and backgrounds; including freelance developers, expert development teams, such as Roave, through to large companies, such as MailChimp themselves.

他们是来自不同公司和背景的开发人员; 包括自由开发人员专家开发团队 (例如Roave )到大型公司(例如MailChimp)本身。

Here on SitePoint over the coming weeks, I’ll be sharing these interviews with you. I’m confident they will show you that despite the validity of some of the criticisms circulating about, it’s largely inconsequential.

在接下来的几周中,我将在SitePoint上与您分享这些采访。 我相信他们会向您展示,尽管一些批评的有效性,但这在很大程度上是无关紧要的。

I’m confident you’ll find that if you’re a professional, you can make serious, enterprise, applications with PHP, should you choose to do so. What follows is the first interview, with Bobby Deveaux from Twist Digital.

我相信您会发现,如果您是专业人士,则可以选择使用PHP创建严肃的企业级应用程序。 接下来是第一次采访,来自Twist Digital的 Bobby Deveaux。



是什么导致您选择PHP? (What Lead You To PHP?)

Back in the Year 2000, I was playing a game online called Planetarion. It was a MMORPG – I loved it! I was only 15 at the time and had limited knowledge, so I tried to download the game using wget. Silly me.

早在2000年,我就在网上玩一款名为Planetarion的游戏。 这是一个MMORPG-我喜欢它! 当时我只有15岁,知识有限,因此我尝试使用wget下载游戏。 傻我

I researched online how to create a PHP file (the game was written in PHP). I ended up downloading Black Nova Traders from SourceForge (http://sourceforge.net/projects/blacknova/) – I contributed and learned a lot of PHP (bad, but PHP nonetheless). It introduced me to ADODB & MySQL, and the foundations of my PHP skills. The is the primary reason I love Open Source.

我在网上研究了如何创建PHP文件(游戏是用PHP编写的)。 我最终从SourceForge( http://sourceforge.net/projects/blacknova/ )下载了Black Nova Traders。我做出了贡献,并学到了很多PHP(虽然不错,但是PHP)。 它向我介绍了ADODB和MySQL,以及我PHP技能的基础。 这是我爱开源的主要原因。

PHP困扰着您的事情是什么? (What Have Been the Things About PHP That Bit You?)

It’s difficult to say whether things that have bit me were due to PHP or not. But some things I do find really frustrating, even with the docs, is the age-old needle/haystack or haystack/needle issue.

很难说困扰我的事情是否是由于PHP而引起的。 但是,即使使用文档,我确实发现确实令人沮丧的是古老的needle/haystackhaystack/needle问题。

It’s so minor, but I can’t remember the order for every function. Maybe it’s my bad for my choice of IDE, or perhaps I should just accept it… but come-on, array_walk and array_map having a different order?!

它很小,但是我不记得每个功能的顺序。 也许这对我选择IDE不利,或者我应该接受它……但是,来吧, array_walkarray_map具有不同的顺序?

什么是亮点或兑换功能 (What Have Been The Highlights Or Redeeming Features)

Over the years I’ve seen a lot of messy code. Admittedly, maybe at the time I thought it looked nice; but the great thing about the PHP community is that there are always improvements and new ideas being thrown around and it’s great to see how things have evolved.

这些年来,我看过很多凌乱的代码。 诚然,也许当时我认为它看起来不错。 但是,PHP社区的妙处在于,总会有改进和新想法被抛出,很高兴看到事情如何发展。

什么是引人注目PHP功能? (What Are The Compelling PHP Features For You?)

It’s ease. It’s so easy to throw together some code. I know some people find this the enemy, and the source of all evil, but quick doesn’t always mean dirty.

很简单 将一些代码放在一起很容易。 我知道有人发现这是敌人,是所有邪恶的源头,但敏捷并不总是意味着肮脏。

您想看到添加到语言中的什么? (What Do You Want To See Added To The Language?)

I’m not a sucker for perfection; and I’m not particularly too fussed about anything being added. The guys that work on PHP do an amazing job, and whatever they add is greatly appreciated. I like PHP for what is is. It certainly has it’s quirks, but it’s what I’ve grown to love about it.

我不是一个完美的傻瓜。 而且我对添加的内容也不太满意。 在PHP上工作的人做得非常出色,无论添加什么,我们将不胜感激。 我喜欢PHP是什么。 它当然有它的怪癖,但这就是我逐渐喜欢上的东西。

为什么要在Ruby,Python或Go上使用PHP? (Why PHP over Ruby, Python or Go?)

I’m a Developer, not a PHP Developer – but I get paid to work on codebases which are mostly PHP, largely due to my experience. I’ve done my fair share of coding in Python and I like it. Once upon a time I used C#.NET, but that was short-lived. For personal projects though, I’ve started to use Go.

我是一名开发人员,而不是PHP开发人员-但由于我的经验,我在从事大多数PHP的代码库上的工作而获得报酬。 我已经完成了相当一部分的Python编码工作,而且我喜欢它。 曾几何时,我使用C#.NET,但这是短暂的。 但是对于个人项目,我已经开始使用Go。

您是否看到自己将来会迁移到另一种语言? (Do You See Yourself Moving To Another Language in the Future?)

Definitely, I love the speed of Go. The only problem is finding time to learn how to use it effectively, and to create apps as quickly as I can in PHP.

绝对,我喜欢Go的速度。 唯一的问题是花时间学习如何有效地使用它,并尽快在PHP中创建应用程序。

您是否有自定义框架或设置? (Do You Have a Custom Framework or Setup?)

I tend to use Silex as my base for APIs. For frontends I use either ZF2, Symfony2 of Kohana – depending on the requirements.

我倾向于使用Silex作为API的基础。 对于前端,我根据需求使用Kohana的 ZF2和Symfony2 。

您如何实施部署? (How Have You Implemented Deployment?)

We currently have a release script, which basically SSH’s to all the servers and checks out a specific tag. i.e. ‘git checkout tags/v1.2.1’. I’m only a few months into a new job and we’re making a lot of changes. We’re working towards setting up a continuous integration server, but first I need to get the team writing unit tests.

我们目前有一个发布脚本,该脚本基本上是SSH到所有服务器并签出特定标签的脚本。 即'git checkout tags / v1.2.1'。 我只有几个月才可以从事新工作,我们正在做出很多改变。 我们正在努力建立一个持续集成服务器,但是首先我需要让团队编写单元测试。

We work on specific branches for every task and always deploy to a test/staging environment for QA. Our release script notifies the team of the commits between revisions and there is a ‘confirm’ release button to ensure it’s only released if everyone is happy.

我们在每个任务的特定分支上工作,并始终部署到测试/过渡环境以进行质量检查。 我们的发布脚本将修订之间的提交通知团队,并且有一个“确认”发布按钮以确保仅当每个人都满意时才发布。

您的标准工具链中有什么? (What is in Your Standard Toolchain?)

OSX, Sublime Text 3, Sequel Pro, Dropbox, Mou & Github, and of course, Spotify. We always use CodeSniffer to ensure code is neat, plus Sami for PHP documentation.

OSXSublime Text 3Sequel ProDropboxMouGithub ,当然还有Spotify 。 我们始终使用CodeSniffer来确保代码简洁,并使用Sami来获取PHP文档。

您可以分享哪些测试技巧? (What Testing Tips Can You Share?)

Aim for 100% coverage on unit tests. You might not get there, but make sure you aim for it. Some will say that it’s meaningless, but that’s usually because they’re writing the wrong tests.

力争100%覆盖单元测试。 您可能没有到达那儿,但请确保目标明确。 有人会说这毫无意义,但这通常是因为他们编写了错误的测试。

Functional, non-coverage tests are fine when required, but if your unit tests are right then you’re probably covered. Behat BDD is worth a look if you haven’t already.. oh, and PHPSpec!

如果需要,可以进行功能性非覆盖测试,但是如果您的单元测试正确,则可能会受到覆盖。 Behat BDD值得一看,如果您还没有的话..哦,还有PHPSpec !

有没有您无法使用的工具? (Are There Tools You Use Which You Can’t Live Without?)

I’d be pretty stuck without OSX! I hop between Macs and sometimes I only have SSH. I can do everything I want with SSH and my SSH Key!

没有OSX,我会陷入困境! 我在Mac之间跳来跳去,有时我只有SSH。 我可以使用SSH和SSH密钥来完成我想做的所有事情!

您的团队如何工作? (How Does Your Team Work?)

When I started I managed to implement very mild agile implementation. We have a SCRUM board, but it’s not really SCRUM. The board has our stories/tasks but they have no effort/time estimate.

当我开始时,我设法实现了非常温和的敏捷实现。 我们有一个SCRUM板,但实际上不是SCRUM 。 董事会有我们的故事/任务,但没有工作量/时间估计。

It goes against a lot of what I believe in, however we have a project manager responsible for managing expectations and, to be fair, it’s working really well. We can release multiple times a day via git tags and we keep the business happy.

这违背了我的许多信念,但是我们有一个项目经理负责管理期望,说实话,它运作得很好。 我们可以通过git标签一天释放多个版本,使业务保持愉快。

Unfortunately due to the workload we tend to be a reactive team, rather than proactive. I’d like to implement SCRUM properly and let the project manager play the product owner role.. one day :)

不幸的是,由于工作量大,我们倾向于是一个被动的团队,而不是主动的团队。 我想适当地实施SCRUM,让项目经理扮演产品负责人的角色。

奥托罗 (Outro)

So, did Bobby’s experience strike a chord with you? Can you relate? Have his experiences given you food for thought? Share your thoughts in the comments.

那么,鲍比的经历与您共鸣吗? 你可以联系吗? 他的经历使您深思熟虑了吗? 在评论区分享你的观点。

翻译自: https://www.sitepoint.com/can-great-apps-written-php-interview-series/

程序员访谈

程序员访谈_可以用PHP编写出色的应用程序-访谈系列相关推荐

  1. 程序员交流平台_「建议收藏」10个适合程序员逛的在线社区

    这是一个开源的时代, 网络资源是学习的重要工具, 对于编程学习, 网上的社区氛围浓厚.分享全面, 非常有助于技术的提升. 今天,就和大家分享几个自己经常逛的技术类社区和论坛: 1.gitHub 网站地 ...

  2. 程序员毕业1-2年如何正确编写自己简历

    程序员毕业1-2年如何正确编写自己简历 个人简历模板 个人概况 教育背景 职业技能 职业技能 项目经验 自我评价,所有证书 简历错误分析 第一份简历分析 第二份简历分析 总结 想要获取简历模板word ...

  3. 程序员吐槽_产品经理吐槽大会,程序员勿入

    前两天网上有个程序员吐槽大会我看挺多人在转的,这么公开黑产品经理,除了娱乐效果之外,确实也反映了很多问题.作为一个前程序员,现产品经理,我觉得还是得说几句.首先以产品经理的角度自省,然后我再吐槽一下程 ...

  4. 月均数据_程序员月均薪多少,2019全国互联网行业程序员就业大数据报告

    <2019全国互联网行业程序员就业大数据报告>,该报告针对程序员画像.专业背景.职能供需分布.城市分布特征和薪资优势等方面进行分析.作者:子瑜说IT 下面,一起来看看,2019年1月-9月 ...

  5. 宜宾PHP程序员工资_别问,这几个段子只有老程序员才懂!

    这周末唐唐发现了个宝藏综艺<超能理工派>,讲的是十个程序员为了两个小姐姐斗智斗勇的故事,必须得跟你们说说. 节目一开始就有大批弹幕护体,呈现出谜一般的学术气息. 当然其内容硬核程度也对得起 ...

  6. java ee程序员招聘_程序员招聘网

    程序员笑话集 1.只有程序员才能看懂 手持两把锟斤拷,口中疾呼烫烫烫.脚踏千朵屯屯屯,笑看万物锘锘锘. 2.借钱 程序员A:哥们儿,最近手头紧,借点钱? 程序员B:成啊,要多少? A:1000行不? ...

  7. 程序员吐槽_程序员神吐槽用户

    大多数程序员都喜欢吐槽用户,快来看看有没有你 程序员甲:我们的用户可真叫人头疼,需求多的简直要命,挣他们点钱可真难. 程序员乙:就是,事多不说,有些还傻得很. 程序员丙:就是,特难搞,自己不会用非说是 ...

  8. python程序员现状_天才Python程序员身价上亿却被说挫,6个月减90斤,逆袭成文艺范男神!...

    image 你对程序猿的印象是怎么样? 你所知道的程序员,是一种自嘲为码农的猿类 学习Python中有不明白推荐加入交流群 号:864573496 群里有志同道合的小伙伴,互帮互助, 群里有不错的视频 ...

  9. PHP程序员面对的压力大不大?我来聊聊程序员转行的就业方向

    作为一名程序员,不同领域.不同公司和不同项目所面对的压力程度可能会有所不同.但是,一般来说,程序员需要长时间专注于编写代码,需要不断学习和适应新的技术和变化,还需要在项目的压力下保证工作的质量和进度. ...

最新文章

  1. 上职高学计算机专业好还是农林,职业高中电脑专业和大学电脑专业 有什么不同?...
  2. npm install 时--save-dev和--save的区别
  3. MongoDB数据库(8.Python中使用mongodb数据库以及pymongo模块用法)
  4. 敲诈勒索罪无罪裁判要旨汇总
  5. mr图像翻转的原因_MRI图像常见问题及对策
  6. 集群的可扩展性及其分布式体系结构(2)-上
  7. java p=x,javap的简单理解
  8. linux 路由跟踪命令_云计算网络知识学习-linux网络基础
  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明
  10. 系统简单的UIImagePickerController
  11. SQL Server数据库的管理
  12. echarts没有数据时显示暂无数据
  13. 数据库实验一——数据库定义与操作语言实验
  14. OMNeT++学习---TicToc(1)
  15. 微信小程序实现客服默认自动回复功能
  16. Python 计算思维训练——公式编程
  17. 优秀的linux学习网站
  18. 计算机用户界面的设计,计算机软件用户界面设计的基本原则
  19. DART booster
  20. 腾讯蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航

热门文章

  1. 冰岛的数据中心产业蓝图
  2. Win7系统DNS服务器未响应的解决办法【系统天地】
  3. 3ds max 结合透视匹配重构高变形的场景
  4. 普通的加载千篇一律,有趣的 loading 万里挑一
  5. 远景会员定制GHOST WIN7 2010珍藏版
  6. 宗镜录略讲——南怀瑾老师——系列6
  7. 如何查询相关基因及其相关的全部信息
  8. ConcurrentHashMap源码走读
  9. ORB-SLAM2从理论到代码实现(十二):Frame类
  10. CTO要越过的几道坎儿