老是抱怨责怪他人

Stop me if you’ve heard this one before.

如果您之前听过我的话,请阻止我。

“Responsive design is bad for performance.”

“响应式设计不利于性能。”

“User agent detection is bad. Don’t segment the web.”

“用户代理检测很差。 不要分割网络。”

“Hybrid apps don’t work as well as native apps.”

“混合应用程序不如本机应用程序运行良好。”

“CSS preprocessors shouldn’t be used because they create bloated CSS.”

“不应该使用CSS预处理程序,因为它们会创建过大CSS。”

If you create for the web you’ve no doubt heard at least a couple of these statements. They’re flung around with alarming frequency.

如果您是为网络创建的,那么无疑您至少会听到其中的一些声明。 他们以惊人的频率跳来跳去。

There is a fundamental problem with this line of thinking: it places the blame on the technique instead of the way the technique was implemented. Generalizing in this way discredits the validity of an approach based on poor execution, and that’s a very harmful way of thinking.

这种思路存在一个根本问题:它将责任归咎于技术,而不是技术的实施方式。 以这种方式进行泛化会基于执行不力而使方法的有效性受到质疑,这是一种非常有害的思维方式。

With any of the examples above, the technology itself wasn’t the problem. CSS preprocessors, PhoneGap, user agent detection, responsive design—these are tools. They are neither inherently bad or good. Their quality depends on the way you wield them.

在上述任何示例中,技术本身都不是问题。 CSS预处理器,PhoneGap,用户代理检测,响应式设计-这些都是工具。 它们既不是天生的坏也不是好。 它们的质量取决于您使用它们的方式。

I’m not a carpenter. If you asked me to build a table you would end up with a lopsided, three-legged abomination. That’s not because of the hammer, or the saw, or the drill—that’s because I suck at using them. Give the same equipment to a carpenter and you get something beautiful.

我不是木匠。 如果您要我建造桌子,您将得到歪斜的三足可憎之处。 这不是因为锤子,锯子或钻头,而是因为我很喜欢使用它们。 给木匠同样的设备,你会得到美丽的东西。

It’s no different with our own tools.

我们自己的工具没什么不同。

When someone builds a 4MB responsive site, blame the implementation. There is no reason why a responsive design can’t perform well. If you take the time to carefully build from a base experience up, only loading assets as needed and using patterns like the anchor include pattern to keep things light along the way, a responsive site can look beautiful and load quickly.

当有人构建一个4MB响应站点时,应将其归咎于实施。 没有理由为什么响应式设计不能表现良好。 如果您花时间仔细地从基础体验中进行构建,仅根据需要加载资产,并使用锚点(anchor)包含模式来使整个过程变得轻松,则响应式站点可以看起来很漂亮并可以快速加载。

When someone builds a site and uses server-side detection to exclude some browsers or devices from the experience, blame the implementation. There’s nothing evil about user agent detection. You don’t have to use it to segment experiences. In fact, it’s quite handy as a compliment to feature detection. Consider that some devices can make phone calls, and that those devices don’t all agree on the same protocol. Start with a smart default. Use server-side detection to try to determine which protocol should be used. If a value is reported use that. You’re enhancing the experience where you can and offering something usable where you can’t. There’s nothing wrong with that.

当有人建立站点并使用服务器端检测将某些浏览器或设备从体验中排除时,应归咎于实现。 用户代理检测没有什么坏处。 您无需使用它来细分体验。 实际上,它是对特征检测的一种补充。 考虑到某些设备可以拨打电话,而这些设备并非都同意同一协议。 从智能默认值开始。 使用服务器端检测来尝试确定应使用哪种协议。 如果报告了一个值,则使用该值。 您正在改善可以使用的体验,并在无法使用的地方提供可用的东西。 没有错。

The same goes for using hybrid applications, CSS preprocessors, text editors or any number of tools. They’re only as good as the person using them. If you get to know them, identify their strengths and weaknesses and use them when appropriate, they can be really powerful and helpful additions to your toolbox.

使用混合应用程序,CSS预处理器,文本编辑器或任何数量的工具也是如此。 它们仅与使用它们的人一样好。 如果您了解它们,确定它们的优点和缺点,并在适当的时候使用它们,它们对于您的工具箱可能是非常有用且有用的补充。

It’s all too easy to cling to the one or two tools we’re most comfortable with and discount the rest. Luca Passani hammered (no pun intended) this home in a recent post. He was discussing the oft-mentioned responsive web design (RWD) vs server-side detection debate and came to a very sound conclusion:

坚持使用我们最熟悉的一两个工具,然后打折其余的工具,实在太容易了。 卢卡·帕萨尼(Luca Passani)在最近的一篇文章中对这所房屋进行了锤打(无双关)。 他正在讨论经常提到的响应式Web设计(RWD)与服务器端检测的辩论,并得出了一个非常合理的结论:

In this context, isn’t the discussion between RWD and {device-detection} a direct corollary of the old “when all you have is a hammer, every problem looks like a nail”? and of course, doesn’t this apply also the other way around, with backend developers favoring a solution to device fragmentation that leverages the tools they know best?

在这种情况下,RWD和{device-detection}之间的讨论不是旧的“当您拥有的只是锤子,每个问题都像钉子”的直接推论吗? 当然,这是否也不会反过来适用?后端开发人员偏爱利用他们最了解的工具的设备碎片化解决方案?

Experiment with techniques before you condemn them. Find out for yourself if the tool is really where the blame should be placed.

在谴责技术之前,先尝试一下技术。 自己找出工具是否真的应归咎于此。

Building great experiences on the web isn’t getting any easier. We need all the tools we can get. Don’t discredit them simply because someone uses them poorly.

在网络上积累出色的经验并没有变得越来越容易。 我们需要我们可以获得的所有工具。 不要仅仅因为有人使用不当而抹黑他们。

翻译自: https://timkadlec.com/2012/10/blame-the-implementation-not-the-technique/

老是抱怨责怪他人

老是抱怨责怪他人_责怪实施,而不是技术相关推荐

  1. App自动化测试实施中的技术挑战

    一次编写多处运行的动态化容器技术给研发效率带来了极大的提升,但对于依旧需要多端验证的测试流程来说,在效率层面却面临着极大的挑战.本文围绕动态化容器中的动态布局技术,阐述了如何通过可测性改造来帮助达成提 ...

  2. 刘彦伟_京东实时数据平台技术实践

    2019独角兽企业重金招聘Python工程师标准>>> 刘彦伟_京东实时数据平台技术实践 随着大数据在业务中不断深入的应用以及业务的高速增长,传统""T+1&qu ...

  3. 实施日志流处理分析_通过实施了解流

    实施日志流处理分析 Since functional programming has been taking the main stage in programming history (again, ...

  4. 汉语句子的意群和重音_五重音而不是字节-数据存储和检索方法

    汉语句子的意群和重音 我们将讨论一种存储和处理信息的方法,并分享有关在此新范例中创建开发平台的一些想法. 做什么的? 要更快地开发并缩短迭代时间:勾画您的项目,确保它符合您的想法,对其进行优化,然后继 ...

  5. 灾难恢复级别_如何实施云计算灾难恢复

    随着组织更多地使用云存储,他们正在利用额外的云计算服务来帮助降低成本,并提高运营效率.云计算灾难恢复是一种日益流行的云计算服务类型.术语"云计算灾难恢复"通常与灾难恢复即服务(DR ...

  6. 列表流和feed流_通过流而不是列表

    列表流和feed流 开幕式免责声明:这并不总是一个好主意. 我将介绍这个想法,以及为什么它是一个好主意的一些原因,但随后我将讨论一些不太理想的实例. 懒惰 如您所知,我在Python中的学习几乎和在J ...

  7. 李宏毅 课程打包_按功能而不是按层打包课程

    李宏毅 课程打包 大多数企业Java应用程序在设计上都有一些相似之处. 这些应用程序的打包通常由它们使用的框架(如Spring,EJB或Hibernate等)驱动.或者,您可以按功能对打包进行分组. ...

  8. kafka python框架_为什么选择R而不是Python做ETL

    导读: 1. 打破R慢的印象,ETL效率显著优于Python,堪比spark,clickhouse 2. 对比python中的datatable.pandas.dask.cuDF.modin,R中da ...

  9. horizon流程图_项目实施流程和规范模板(测试方向)

    转自:http://blog.51cto.com/xqtesting/2052312 1. 简介 1.1 编写背景 随着公司业务的快速发展,技术部面临的基础技术研发.客户系统建设.新产品研发.老旧系统 ...

最新文章

  1. iOS下JS与OC互相调用(七)--Cordova 基础
  2. php控制器无限极分类,thinkphp无限极分类实现方法
  3. 杭州「增长黑客」集结令!曲卉老师想约你来网易聊一聊
  4. 解决vue router使用 history 模式刷新后404问题
  5. git idea 图形化_Git大全,你所需要的Git资料都在这里
  6. 毕设论文指导--yolov5汽车识别
  7. java实现ssh_使用纯Java实现一个WebSSH项目
  8. 部署程序出现Failed to instantiate com.octo.captcha.service.image.DefaultManageableImageCaptchaService...
  9. 中国关系型社会的环境如何生存发展------总结程序员如何做人做事
  10. uart硬件一些小知识
  11. 企业战略规划书籍推荐
  12. 基于华为高端NAS存储双活的POC测试
  13. 每日英语:China Destroys Six Tons of Confiscated Ivory
  14. Unity接口的使用
  15. b站pink老师JavaScript的PC端网页特效 案例代码——仿京东放大镜效果
  16. 红外遥控器-IR-linux驱动(基于百问网IMX6ULL_Pro平台)
  17. 深度学习知识库精华+图谱一览
  18. 用XMind做读书笔记的方法
  19. Java书签 #用Java生成指定位数不重复随机数
  20. 小程序社交类目需要上传《非经营性互联网信息服务备案核准》,什么是《非经营性互联网信息服务备案核准》?

热门文章

  1. 计算机图形学【清华大学出版社】
  2. Nginx 性能压测和分析优化
  3. httprequestv2.0
  4. HE3050E原厂SOT23-5封装锂电池保护IC
  5. Redis 的 GEO 特性将在 Redis 3.2 版本释出
  6. 松木ME50P06 P沟道 60V (D-S) MOSFET(替代)长电CJU50P06方案
  7. a标签在企业微信 或者 微信中,推送过来的超链接失效
  8. 【AIGC】1、爆火的 AIGC 到底是什么 | 全面介绍
  9. 每日辣评:瑞幸卖茶理由是什么?小米股价到底没有?
  10. PEGASIS: Power-Efficient Gathering in Sensor Information Systems