夏令营回顾_2015年PHP夏令营回顾

夏令营回顾

You’re standing on a long pier, the last ten meters of which curiously belong to international waters despite being well inside the current country’s territory. As you climb the meter-high rock wall that forms a small barrier towards the west, you’re able to witness the sun dipping into the sea, far in the distance. Soft waves caress the rocky surface below your feet, bobbing the sea urchins and fish to and fro. There are other people there, each immersed in their own thoughts.

您正站在一个长长的码头上,尽管它在当前国家的领土内,但最后十米奇怪地属于国际水域。 当您攀登向西形成一道小屏障的米高的岩壁时,您可以目睹太阳在远处浸入大海。 柔和的波浪抚摸着脚下的岩石表面,来回摆动海胆和鱼。 还有其他人,每个人都沉浸在自己的思想中。

Rovinj sunset

No, that’s not a Dungeons and Dragons session starting. It’s the end of a great conference of workshops in Rovinj, Croatia, in the same spirit as last year’s.

不,那不是龙与地下城会议的开始。 以与去年相同的精神,在克罗地亚罗维尼举行的大型研讨会的结尾。

2015年PHP夏令营 (PHP Summer Camp 2015)

PHP Summer Camp is a dual event comprising of two PHP tracks and one eZ Publish track, the workshops of which are collectively called EZ Summer Camp. This year’s event took place slightly earlier than last year’s – from August 26th to 29th.

PHP夏令营是一个双重活动,包括两个PHP轨道和一个eZ Publish轨道,其研讨会统称为EZ Summer Camp 。 今年的活动比去年的活动早一点-从8月26日至29日。

I attended in an entirely unofficial capacity this year. With zero responsibility on site, it was quite a different experience. This year’s key takeaways from the conference itself are:

我今年以完全非官方的身份参加了会议。 零责任现场,这是完全不同的体验。 今年会议本身的主要收获是:

  • Doctrine is less complicated than it seems, just awkwardly documented

    学说没有看起来那么复杂,只是尴尬地记录在案
  • Blackfire is less complicated than it seems, just awkwardly documented

    Blackfire并不像看起来那样复杂,只是尴尬地记录在案
  • More people need to read Ross Tuck’s guide to conference speaking

    更多人需要阅读Ross Tuck的会议演讲指南

  • Puli is either the next game changer or the next big flop

    埔里要么是下一个游戏规则改变者,要么是下一个大失败者
  • If you’re only attending conferences you get invited to (and your schedule is not packed with those invites), you’re not a good member of the community

    如果您只是参加会议而被邀请(并且您的日程安排不包含这些邀请),那么您不是社区中的好成员
  • Tech people can and do have fun and interesting conversations in bars without getting drunk and awkward, contrary to popular belief.

    普遍看法相反,技术人员可以并且确实可以在酒吧里进行有趣有趣的对话,而不会醉酒和尴尬。

工作坊评论 (Workshop Reviews)

PHP Summer Camp is not the typical conference where you sit and listen to someone regurgitate stuff they’ve written 3 years prior and never changed. This isn’t about “Getting to know Composer” or “Never trusting user input” – this is an event of exclusively hands-on stuff, little to no narrative, and constant direct interaction with the speaker. As such, there are very few workshops per day, but all are long and highly technical (shortest is 1.5 hours). I had the chance to attend five:

PHP夏令营不是召开会议的典型会议,您可以坐下来听别人反省他们3年前写的东西,从未改变过。 这与“了解作曲家”或“从不信任用户输入”无关,这是完全动手,几乎没有叙述或与说话者不断直接互动的事件。 因此, 每天只有很少的讲习班 ,但是所有的讲习班都很长且技术含量很高(最短为1.5个小时)。 我有机会参加了五个:

原则:开始使用映射,查询和关系 (Doctrine: Get to work with mapping, queries and relationships)

People in the Doctrine workshop

I had never had the need to use Doctrine in a project. I was raised on SQL, and any problem that needed a solution was easily SQL-able. When something needed optimizing, I gladly dove straight in and played with indexes, explains, and merging of statements into optimized chains of chaos. As such, with its apparently high learning curve, its tendency to use annotations to make logical decisions, and the prevalence of magic, I actively avoided it.

我从不需要在项目中使用Doctrine。 我从小就对SQL感兴趣,需要解决方案的任何问题都可以轻松实现SQL 。 当需要优化某些东西时,我很乐意直接涉足并处理索引,解释,并将语句合并为优化的混乱链。 因此,由于其学习曲线明显较高,倾向于使用批注来做出逻辑决定以及倾向于使用魔术 ,因此我积极地避免使用它。

This workshop, by Sasa Stamenkovic of KNP University, offered a fantastic opportunity to get a birds-eye hands-on look at the thing without wasting days on reading documentation. The workshop itself was indeed very basic, and a lot of the time was consumed by the “curse of the first” in which the first workshop is always the one to have the most initial setup problems, but I do feel like I’ve come away with some useful knowledge and a better perspective of where Doctrine can actually be useful. I still doubt I’ll ever need it, but it’s good to be somewhat familiar with it now.

由KNP大学的Sasa Stamenkovic主持的研讨会提供了一个绝妙的机会,使您可以亲眼目睹事物,而不会浪费大量时间阅读文档。 讲习班本身的确是非常基础的,“第一手的诅咒”浪费了很多时间,其中,第一个讲习班总是最容易出现初始设置问题,但是我确实觉得自己来了掌握了一些有用的知识,并更好地了解了教义在哪些方面真正有用。 我仍然怀疑我是否会需要它,但是现在有点熟悉是一件好事。

Sasa was much better and more confident than last year, but still needs work if he aims to surpass his mentor – Ryan Weaver.

Sasa比去年好很多,也更有信心,但如果他想超越自己的导师Ryan Weaver,仍然需要工作。

旧式现代化 (Modernizing the Legacy)

Marek Matulka from SensioLabs UK held this short form workshop on modernizing legacy code.

来自SensioLabs UK的Marek Matulka举行了关于现代化遗留代码的简短研讨会。

Although most of the content was very familiar to me due to Paul Jones’ book, I believe Marek pointed out some important ideas – particularly the fact that one should modernize concept by concept, rather than file by file, something a group of us had been discussing not an hour earlier.

尽管由于Paul Jones的书 ,大多数内容对我来说都很熟悉,但我相信Marek指出了一些重要的想法,尤其是一个事实,就是应该逐个概念地对概念进行现代化,而不是逐个文件地进行归档,这是我们中的一部分人所做的。不在一个小时前讨论。

There were no technical hiccups, but due to the speaker’s accent and volume (he had developed con-flu and lost his voice) and the brevity of the workshop, it felt a bit scarce and at times hard to follow. I would sooner recommend people read Paul’s book and get this content (and more) from there.

没有技术上的障碍,但是由于演讲者的口音和音量(他发展了共鸣感,失去了声音)和讲习班的简短,所以感觉有点稀缺,有时很难遵循。 我会尽快建议人们阅读Paul的书,并从那里获得这些内容(以及更多)。

前端作为后端中间件的设计或任何优秀PHP开发人员都应该知道的一些JS概念 (Frontend as design to backend middleware or some JS concepts that any good PHP dev should know)

With a mouthful of a title, this workshop over-promised and under-delivered. Damir spent the first ten to fifteen minutes reading directly from the slides and looking at the big screen instead of the audience, which made it seem like someone else had written the content. After a hiring pitch (which traditionally comes after the talk) he dove into the code.

这个工作坊口口相传,承诺过多,交付不足。 达米尔(Damir)花了前十到十五分钟的时间,直接从幻灯片中读取内容,而不是观看观众,而是看着大屏幕,这似乎是其他人在编写内容。 在招聘后(通常是演讲之后),他开始研究代码。

During what seemed like an hour of stumbling around, Damir compared some common language constructs of JavaScript and PHP, sometimes being genuinely surprised by the outcome, proving a lack of preparation. One potentially beneficial tidbit was making a part of jQuery in plain JS, but this was neither here nor there – nothing interesting for PHP developers, and something everyone who ever did the least bit of front end development already knew. Additionally, the somewhat negative experience was only compounded by the already traditionally awful NPM.

在大约一个小时的绊脚石期间,Damir比较了JavaScript和PHP的一些通用语言结构,有时对结果感到真正的惊讶,证明缺乏准备。 一个潜在的好处是在纯JS中成为jQuery的一部分,但这既不存在也不存在-对PHP开发人员来说没什么有趣的,而且做过最少前端开发的每个人都已经知道了。 此外,有些负面的体验只会被本来就很糟糕的 NPM所加剧。

If this conference had a JS track, I would understand this return to JS basics being hosted there. However, knowing about the various more interesting talk topics that have been submitted, I wonder what made the organizers pick this one.

如果这次会议有一个JS跟踪,我将理解回到这里主持的JS基础知识。 但是,在了解了已提交的各种更有趣的演讲主题之后,我想知道是什么促使组织者选择了这个主题。

实践中的松耦合 (Loose Coupling in Practice)

11223830_10155929753150207_1504968925642770587_o

In this interesting workshop, Jakub Zalas used a Symfony application that was tightly coupled with Doctrine to completely decouple it and extract the Doctrine implementation into something injectible and replaceable.

在这个有趣的车间, 的Jakub Zalas使用的是紧密结合学说完全解耦,并提取学说执行到的东西可注射的和可更换的symfony应用程序。

Being severely underexposed to both Symfony and Doctrine meant it was a bit difficult to follow at times, but this was alleviated by an excellent organization of the tutorial through Github step branches which allowed those of us who limped behind others to skip ahead and check the solutions.

严重暴露于Symfony和Doctrine的情况下,有时很难遵循,但是通过Github步骤分支对教程的出色组织可以缓解此问题,这使我们中那些弯腰的人可以跳过并检查解决方案。

Jakub’s delivery was excellent, and his workshop’s code will definitely find a permanent place in my arsenal of helpful shortcuts for when I encounter Symfony and Doctrine again.

雅库布(Jakub)的表现非常出色,他的工作室代码肯定会在我再次遇到Symfony和Doctrine时提供有用的快捷方式中永久存在。

使用Puli进行下一代包装开发 (Next-gen Package Development with Puli)

People in the Puli workshop

Bernhard Schussek, a veteran speaker and Symfony Forms master, presented his latest child – Puli. We’ve got an introduction into Puli coming up soon on this channel, but to cut the long story short, Puli is an “addon” for traditional packages which allows one to define common resources for use with those packages.

资深演讲者和Symfony Forms大师Bernhard Schussek展示了他的最新孩子– Puli。 我们已经在该频道上很快介绍了Puli,但是总而言之,Puli是传统软件包的“附加组件”,它允许人们定义与这些软件包一起使用的公共资源。

It’s a bit hard to explain in a few short paragraphs, so it’s best if you check out the slides. The one thing that sets Puli apart in a sea of PHP packages is that it’s one of those with the potential to make a huge paradigm shift in package development, much like Composer did years ago. If many people adopt Puli, we’ll have unparalleled compatibility between packages and frameworks and extreme reusability unlike anything we’ve seen before. Then again, it all depends on adoption and popularity – which is something I hope we at SitePoint can help with.

在几段简短的段落中很难解释,因此最好查看幻灯片 。 使Puli在众多PHP软件包中脱颖而出的一件事是,它是有潜力在软件包开发中进行巨大范式转变的一员,就像Composer几年前所做的那样。 如果许多人采用Puli,那么我们将在包和框架之间拥有无与伦比的兼容性,并拥有与以往不同的极端可重用性。 再说一次,这完全取决于采用率和普及程度,这是我希望SitePoint能够提供帮助的东西。

As usual, Bernhard’s delivery was almost flawless save for a few technical hiccups at the start which prevented us from taking full advantage of the entire workshop.

像往常一样,伯恩哈德的交付几乎是完美无缺的,只是一开始就存在一些技术问题,这使我们无法充分利用整个车间。

分析PHP应用 (Profiling PHP Apps)

People in Profiling PHP Apps workshop

In this workshop by Nicolas Grekas, we looked at Blackfire and everything it can do to help one optimize a website. The biggest barrier in my usage of Blackfire so far has been actually getting it to run – once we covered that some config wizards need to be run and about half a dozen ini files need changes, we were up and running and Blackfire was drawing some crazy graphs all over a sample Symfony application.

Nicolas Grekas的这次研讨会中,我们研究了Blackfire及其为帮助优化网站所做的一切工作。 到目前为止,我使用Blackfire的最大障碍实际上是使其运行–一旦我们涵盖了一些配置向导需要运行并且大约六个ini文件需要更改,我们就启动并运行了,Blackfire变得有些疯狂整个示例Symfony应用程序中的图形。

Through Nicolas’ workshop we learned to analyze the graph, find the bottlenecks and remove repeated calculations. We’ll definitely be looking at Blackfire a lot here at SitePoint in the following couple of months.

通过Nicolas的讲习班,我们学会了分析图形,查找瓶颈并删除重复的计算。 在接下来的几个月中,我们肯定会在SitePoint上大量关注Blackfire。

One downside to this talk was that due to Nicolas’ accent, he was difficult to understand at times. We were able to follow the code, but I could notice the look of confusion (immediately followed by a “let me copy from your screen” look) on many a face during certain quickly pronounced sentences.

这次谈话的一个缺点是,由于尼古拉斯(Nicolas)的口音,他有时很难理解。 我们能够遵循该代码,但是在某些快速发音的句子中,我注意到许多面Kong上的混乱外观(立即出现“让我从屏幕上复制”)。

技术实现 (Technical Realization)

On the technical side, the organization was as excellent as last year in some areas, and less so in others.

在技​​术方面,该组织在某些领域表现出色,而在其他领域则不如去年。

Last year, the organizers provided us all with a virtual appliance – a fully configured virtual machine, which we used for all workshops. This worked well enough and everyone – from Windows to Linux users – was able to effectively use it, despite it being somewhat unorthodox (Vagrant would be preferred as a common starting point for such large teams).

去年,组织者为我们所有人提供了一个虚拟设备-完全配置的虚拟机,我们将其用于所有研讨会。 这种方法运行得很好,并且从Windows到Linux用户,每个人都可以有效地使用它,尽管它有些不合常规(对于这样的大型团队,Vagrant将是首选的通用起点)。

This year, Vagrant was used and for the most part worked like a charm. However, it seems like it wasn’t tested enough on Windows machines, leading to some difficulties with Windows users. What’s more, NFS was forced as the sharing mechanism, which was unnecessary on some machines and required the admin password, slowing the provision process. It would have been better to leave it at auto – these days, Vagrant is smart enough to pick the best one, based on OS and availability of drivers.

今年,使用了Vagrant,并且在大多数情况下都像是魅力。 但是,似乎在Windows计算机上尚未对其进行足够的测试,这给Windows用户带来了一些困难。 而且,NFS被强制用作共享机制,这在某些计算机上是不必要的,并且需要管理员密码,从而减慢了配置过程。 最好让它保持自动运行–如今,Vagrant足够聪明,可以根据操作系统和驱动程序的可用性选择最佳的驱动程序。

The provisioning process was left in-box and excluded from the bootup procedure, which was odd but worked decently well, but on almost every workshop we had to do a git pull to refresh the code, and then a composer install to install dependencies. The pulling was necessary due to some delays introduced by the speakers (I would recommend the organizers hire a “poker” next year – someone in charge of poking the speakers about the status of their talk on a daily basis, from acceptance to opening day). Expecting to have to composer install is perfectly natural, but having 200 people do it at the same time isn’t sane – not when 60 per group are pulling in the same packages. The installation shenanigans could have been avoided with a Toran Proxy which could have been hosting local copies of all the packages, thus speeding up the installation procedure to near zero.

设置过程保留在开箱即用的范围内,并且不包含在启动过程中,这很奇怪,但是效果很好,但是在几乎每个研讨会上,我们都必须执行git pull来刷新代码,然后再进行composer install以安装依赖项。 由于演讲者引入​​了一些延误,因此有必要进行拉扯(我建议组织者在明年租用“扑克”,负责从演讲开始到接受演讲的每天向演讲者讲演讲的情况) 。 期望必须自己composer install是很自然的事情,但是要有200个人同时进行并不是一件理智的事情–并不是每组60个人都装在同一包装盒中。 可以使用Toran Proxy避免安装诡计,该Toran Proxy可以托管所有软件包的本地副本,从而将安装过程加快到接近零的速度。

There were some other oddities with the VM setup, but all in all it worked very well and everyone was able to follow along once the initial hiccups were ironed out.

VM设置还有其他一些奇怪之处,但总的来说,它运行得很好,一旦消除了最初的麻烦,每个人都可以跟进。

The internet connection was as stable as last year, perhaps more so considering there were only a few hiccups and the attendance was significantly greater than in 2014.

互联网连接与去年一样稳定,也许更多,因此考虑到只有几个小问题,出席人数明显高于2014年。

附加功能 (Extras)

Each day of the conference had some extras included, as well. A particularly interesting challenge was holding a part of a “triathlon” every morning for those who were interested in participating – the first morning was dedicated to swimming, the second was cycling, and the third was running. Each evening also ended in casual drinks, dinner and conversation, sometimes accompanied by a complimentary wine tasting as well.

会议的每一天都有一些额外的内容。 一个特别有趣的挑战是,每天早上对有兴趣参加的人举行“铁人三项赛”的一部分-第一个早晨专门游泳,第二个早晨骑自行车,第三个早晨跑步。 每天晚上还以休闲饮品,晚餐和谈话作为结尾,有时还提供免费的品酒会。

Wine tasting photo

The last day, post-conference, was traditionally dedicated to a boat ride. This time, we went to Porec, a medieval town on the coast, had a full tourist-like tour, and then free roamed before devouring some complimentary fish on the boat ride back. After some open-sea swimming and slo-mo dives, we headed home.

会议后的最后一天传统上是专门乘船游览的。 这次,我们去了海岸上的中世纪小镇波雷奇(Porec),进行了一次完全像游客一样的游览,然后自由漫游,然后在乘船的途中吞噬了一些免费的鱼。 经过一些海上游泳和慢动作潜水之后,我们回到了家。

If you’re interested, you can see all the photos here.

如果您有兴趣,可以在这里查看所有照片。

结论 (Conclusion)

Once again, Netgen delivered. The organization was flawless, and all the guests were made to feel very much at home. With quality workshops, excellent discussions, roundtables, hangouts and all the other extras, the conference contributed more than just hands-on coding knowledge – it contributed to the creation of new friendships, partnerships, and in-depth discussions on anything from scrum to BDD and more.

Netgen再一次交付了。 该组织无懈可击,所有客人都感到宾至如归。 借助高质量的研讨会,出色的讨论,圆桌会议,视频群聊和其他所有其他功能,会议不仅提供了动手编程知识,而且还带来了新的友谊,伙伴关系以及对从Scrum到BDD的深入讨论的贡献和更多。

Are you coming next year? You should. And if you’re a speaker – start working on those workshops so you can submit proposals on time; it’s a bit more effort to deliver them, but it’s that much more appreciated by your audience.

你明年来吗? 你应该。 而且,如果您是发言人,请开始参加这些工作坊,以便您可以按时提交提案; 交付它们需要付出更多的努力,但是您的听众更欣赏它们。

翻译自: https://www.sitepoint.com/php-summer-camp-2015-review/

夏令营回顾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值