首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

过度工程

过度工程,最初我知道这个词是在 Rod Johnson 的《J2EE Development without EJB》,随着阅历地增长,渐渐发现书中熟悉的场景也在身边再现了。...我可以在板书上用 Java 和 C++写出 GoF 23 种设计模式的每个例子,也学习过 J2EE Core Pattern,可即便这样,又能代表什么?...我的设计能力比起某些牛人来说还是差之许多,我依然在实际的软件开发的某些情况下,避免使用它们。...是否有过度的架构和过多的框架代码? 架构的价值在于为常见的问题找到好的解决方案,而不是一心想要解决更复杂也更罕见的问题。...这里遇到一个矛盾,产品的发展过程,系统架构确实是在不断调整的,这些事情现在就是由开发人员完成的。问题是这过程,到底应该分析到怎样的粒度? 问题不是分解得越细致、考虑得越多越好。

23710
您找到你想要的搜索结果了吗?
是的
没有找到

AI:被过度夸大

前Flipkart首席产品官(CPO)普尼特•索尼(Punit Soni)曾发推文道:“搞AI/ML的公司90%从事的业务与AI/ML根本不沾边。”...但索尼承认,他去年自行创办的医疗初创公司Robin.Ai在业务运营并没有使用大量的人工智能。 他继续说:“上面那番话同样适用于Robin.Ai。...印度IT巨头印孚瑟斯(Infosys)的创始人纳拉亚纳•穆尔蒂(Narayana Murthy)昨天表示,AI的影响常常被过度夸大了。 他在一次会议上说:“自动化和人工智能只是一种手段。...机器学习已在某些面向用户的产品取得了一些非常好的效果:谷歌照片(Google Photos)将照片井然有序地分成日落照片和宠物照片,这很难不让人敬畏。 但是这可能就是问题所在。

68080

过度设计的问题

这是学习笔记的第 2069 篇文章 前几天碰到了一个严重的硬件问题导致服务受到影响,我在总结思考的时候,脑袋里冒出了一个观点:过度设计。...因为技术上可行,但是在实际操作过程我们没法打包票,而且一旦出现问题,这么大的集群是完全没法做备份的。...我想了下我们工作存在很多的过度设计问题,如果细数一下这个过程,可以从功能,性能,可用性这个阶段来说,而归根结底是基于成本,即最小的成本获得最高的收益,这个收益绝非是简单的性能。...早期的业务为了满足功能而做一些妥协或者是定制化的设计实现,主要是面向业务视角,而满足了业务需求之后,发现很多潜在的问题暴露出来,于是会集中精力去灭火,是典型的先污染后治理的思路,而性能设计的过程成本意识会更多向资源成本方面倾斜...常见的过度设计有 1.集群规模过大,但是使用率不高 2.单机多实例设计过度,导致业务难以恢复 3.数据分片过度 ?

43230

AutoML 是否被过度炒作?

) 我在多个机器学习竞赛为了融合主要的模型使用了AutoML,并且我参与了两个AutoML的竞赛。...我认为AutoML作为使建模过程自动化的一种想法非常出色,但是该领域被过度炒作(overhyped)。...数据驱动管道的每个决定都是一个参数(译者:闹不懂作者的意思,有点玄学)。AutoML的基本想法是找到这样的参数,这些参数可以在合理的时间内给出良好的分数。...2 AutoML 的动机 AutoML将填补数据科学市场供需之间的缺口 如今,越来越多的公司要么开始收集数据,要么想变现已收集数据的潜力:他们希望从中获得价值(译者:作者应该表达的是商业价值)。...但是,如果数据科学团队的建模部分不是最关键的任务,则你的公司流程显然存在问题。

64130

聊一聊过度设计!

因为相对于毫无设计的代码,过度设计的代码有比较高的理解成本。说这么多,到底什么是过度设计? 什么是过度设计?   ...回到我们原始的需求上来看,如果我们只是需要实现两个整数的加减乘除,这明显过度设计了。 过度设计的坏处   个人总结过度设计有两大坏处,首先就是前期的设计和开发的成本问题。...过度设计的方案,首先设计的过程就需要投入额外的时间成本,其次越复杂的方案实现成本也就越高、耗时越长,如果是在快速迭代的业务,这些可能都会决定到业务的生死。...过度设计也会出现类似的现象,就是缺少通用性,在面对稍有差异的需求上时可能就需要伤筋动骨级别的改造了。 如何避免过度设计   既然过度设计有着成本高和欠灵活的问题,那如何避免过度设计呢!...充分理解问题本身   在设计的过程,要确保充分理解了真正的问题是什么,明确真正的需求是什么,这样才可以避免做出错误的设计。

64810

过度设计是罪恶的!

如果你ES也不用了,把数据存储在Hbase呢?” 这也是操蛋的DDD所追求和说明的,把一个简单的数据库操作给拆的七零八落。 如果把这种设计哲学推广开来的话,你会发现几乎每个地方都有问题。...但这不代表你可以过度设计。因为用来屏蔽实现的这部分实现,本身就是风险的存在。 耦合有错么? 只要需求落在代码上,就一定会产生耦合,想要去除所有的耦合,那是根本不可能的。...在开发,你为什么不想着为开发语言的耦合创造一个第三方语言呢?这个成本是大的,而且是非常没有必要的,如果真的有这种需求,你可以把它放在重构上。 同样的话,我也可以送给纠结底层数据库存储的同学。...End 一刀切,在公司技术部门懒政的环境,普遍存在。 在制定规范和标准的时候,大家都习惯兼容并包,照顾所有的业务线,做上一份。但在实践,这种标准的问题通常问题多多,为业务方造成许多的困扰。

26140

逃离过度努力陷阱

在最近湛卢新书《轻松主义》过程,感触颇多。这不在阅读第二部分(轻松行动)的导读内容时候又GET了一个新的知识点:约束自己的努力程度。...努力付出的边际效应 我们的目标是,在完成重要事项时投入更少,而不是更多,通过约束我们的努力程度而不是通过过度努力来达到目的,这就是轻松行动的意义。...总体讲我认为这本书比较适合处于过度努力区间的人,如果你的的确确付出了很多努力,而没有获得更多回报甚至回报更少了,那么我建议你重新考虑一下自己努力的方向和努力方式。...一般来讲,陷入过度努力陷阱自然也是经历过轻松行动的过程,就是尝过甜头了,但是形成了路径依赖。由于没有及时调整努力策略,就陷入了过度努力的陷阱。

40620

HTML拖放介绍

1.在jQuery UI里面会经常使用Draggable和Droppable,实现Web开发拖放效果,当然这不是原生条的拖放,所以在处理复杂的拖放上还是需要自己动手写很多代码,最近开发中就遇到这个问题...Web拖放发展历史 第一阶段: 因为HTML和DOM可以处理底层的鼠标事件,所以早起的开发人员可以借助Javascript和CSS,DOM事件基础,可以近似实现一个简单的拖放功能。...mouseup 释放鼠标按键,可能会触发放置操作 基于鼠标起始位置,是否放置在此位置 弊端: 1.需要考虑边界,而已需要提示哪里位置可以放置元素 2.不能将自己的页面的元素与其他页面,或者窗口、浏览器其他内容合并或者交互...第三阶段: HTML5发布之后,技术越来越成熟。而已标准中提供了拖放的API,所以越来越多的公司关注HTML5拖放操作。看一个Skydrive上传文件的示例和Dropbox上传文件的示例。...因为没有具体查看代码,不知道这2家公司是否也是使用了HTML5的Drag API,同时没有去测试对较老的浏览器的支持,所以不知道他们是使用的哪种技术。

3K100

html 摸鱼(1)

学爬虫还得了解一下HTML网页啊 ? HTML 介绍: 首先你得知道HTML是什么,其实很简单,我们日常搜索浏览的每一个网页就是html文件.其实也没大家想的这么复杂,HTML入门超级简单的。... HTML 标签 HTML 标记标签通常被称为 HTML 标签 (HTML tag)。...HTML 标签是由尖括号包围的关键词,比如 HTML 标签通常是成对出现的,比如 和 标签对的第一个标签是开始标签,第二个标签是结束标签 开始和结束标签也被称为开放标签和闭合标签...HTML 文档 = 网页 HTML 文档描述网页 HTML 文档包含 HTML 标签和纯文本 HTML 文档也被称为网页 Web 浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。... HTML 链接 HTML 链接是通过 标签进行定义的。

2K20

AutoML 是否被过度炒作?

我在多个机器学习竞赛为了融合主要的模型使用了AutoML,并且我参与了两个AutoML的竞赛。我认为AutoML作为使建模过程自动化的一种想法非常出色,但是该领域被过度炒作(overhyped)。...数据驱动管道的每个决定都是一个参数(译者:闹不懂作者的意思,有点玄学)。AutoML的基本想法是找到这样的参数,这些参数可以在合理的时间内给出良好的分数。...二、AutoML的动机 AutoML将填补数据科学市场供需之间的缺口 如今,越来越多的公司要么开始收集数据,要么想变现已收集数据的潜力:他们希望从中获得价值(译者:作者应该表达的是商业价值)。...但是,如果数据科学团队的建模部分不是最关键的任务,则你的公司流程显然存在问题。

54730

过度封装如何毁掉项目

过度封装如何毁掉项目 大家在平时开发过程是否见过在现有spring boot或者asp.netcore官方web开发框架基础上二次创作产生的新框架,例如C#的ABP或者java的javaboot都是基于各自官方基础框架基础上产生的...大杂烩 第一类封装目的就是为了一次性把所有用到用不到的组件都放到一个jar包或者nuget包,只要封装者能想到的一定会一股脑封装进去,他觉得这样这样会免去使用者手动安装jar包或者nuget,免去初始化代码...隐藏原生组件 还有一类封装就是在其他组件基础上再加一层壳,这层壳可能就是做两三行代码的事,但就是为了这两三行代码产生新的层级关系,导致使用者无法感知底层组件,所有的方法都被重命名,重新分配在新的类名。...过度封装 还有一类封装就是过度封装,例如为了应对各类场景,将所有场景代码都进行了封装,产生互相不兼容,为了应对这种不兼容又产生新的代码来绕过不兼容,使原本封装的组件成为了“拦路虎”。

1.1K30

APP性能测试—过度绘制

下表显示的是 Android 4.0 和 5.0 的竖条区段。 ?...iOS 过度绘制测试 在Xcode 9之前的版本可以直接使用使用Instruments CoreAnimation来测试,Color Blended Layer 用来检测哪里发生了图层混合,并用红色标记出来...如何优化过度绘制 移除布局不需要的背景 默认情况下,布局没有背景,这表示布局本身不会直接渲染任何内容。但是,当布局具有背景时,其有可能会导致过度绘制。 移除不必要的背景可以快速提高渲染性能。...要查找过度绘制的原因,请在布局检查器工具浏览层次结构。在浏览过程,请留意您可以移除的背景,因为它们对用户不可见。...在普通的过度绘制,系统会在已绘制的现有像素上绘制不透明的像素,从而将其完全遮盖,与此不同的是,透明对象需要先绘制现有的像素,以便达到正确的混合效果。

2.9K21

HTML的标记

文章目录 前言 块级元素 行内元素 行内块级元素 ---- 前言 HTML的标记 块级元素 h1-h6>>1-6级标题 p>>段落 div>>定义文档的节 ul>>定义无序列表 ol>>定义有序列表...li>>定义无序列表与有序列表的项 hr>>水平线 address>>定义文档作者或拥有者的联系信息 blockquote>>定义长的引用 pre>>定义预格式文本 form>>定义表单...>定义定义列表项目的描述 menu>>定义命令的菜单/列表 table>>定义表格 caption>>定义表格标题 tbody>>定义表格主体 thead>>定义表格头部 tfoot>>定义表格的表注内容...(脚注) tr>>定义表格的行 th>>定义表格的表头单元格 colgroup>>定义表格供格式化的列组 col>>定义表格中一个或多个列的属性值。...比如章节、页眉、页脚或文档的其他部分 article>>定义文章 aside>>定义页面内容之外的内容。【可用作文章的侧栏。】 datails>>定义元素的细节。

5.5K30
领券