效率

阿里集团搜索和推荐关于效率&稳定性的思考和实践

百般思念 提交于 2020-03-24 12:28:42
3 月,跳不动了?>>> 背景 效率和稳定性是我们从工程层面来衡量系统对业务支持能力的两个关键指标。从流程管控上来看,业务效率的提升一定程度上会影响到稳定性,而对稳定性要求过高又会带来对业务效率的影响。从业务的角度来看,成熟的业务会更偏向于稳定性,而新业务更偏向于效率。效率和稳定性兼顾,也就变成了一个巨大的挑战。 我们理解的效率 通常我们提到“效率”更多的是关注开发效率或迭代效率,我们这里称之为“业务效率”。大家通常容易忽视“资源效率”,在阿里集团搜索和推荐现有业务规模下,忽视资源效率的将付出很大的成本。 效率 = 业务效率 + 资源效率 影响业务效率的因素主要有: 开发复杂度 业务迭代流程 业务维护成本 稳定性要求 开发复杂度取决于其生态能为业务的开发提供什么支持,包括语言层面和业务领域所在的第三方生态、集团层面的二方生态、以及业务所在平台。迭代流程一方面可以保证业务功能的正确性,同时也可以提升线上系统的稳定性,但是复杂的流程会很大程度上影响到业务的效率。如何降低业务开发复杂度,为业务开发提供更强大的生态支持?如何简化迭代流程且不影响稳定性?如何降低业务的维护成本,提升其稳定性? 我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。 影响资源效率的因素主要有: 稳定性要求

“敏捷开发”及工作效率相关问题

不羁岁月 提交于 2020-03-22 08:44:08
摘要: 文章背景,来自于群内周五晚上的一次头脑风暴式的思维碰撞交流活动。 感谢[ 成都-无痕 ]提供话题,同时欢迎大家提供话题。 “敏捷开发”或工作效率方面话题。 什么是敏捷开发? 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。 在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。 换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 http://baike.baidu.com/view/309926.htm http://www.zhihu.com/question/19645396 你如何理解敏捷开发? 敏捷开发其实讲述的是:如何让自己以及团队成为资本家最高效的机器人。 1. 公司有没有采用敏捷开发? 有采用敏捷开发,或者概念没有提出来,其实干活当中,任务的分发, 或版本的不断叠加,就是这样的过程按序的过程。 2. 敏捷开发有那些明显的优势或劣势? 明显的优势是产品的叠加按序进行,有利于构建大型的产品或系统。 劣势是对项目监督者或架构师整体项目把控的能力要求较高, 而且在全球或天朝互联网市场竞争日益白热化的前提下,更改的按序的开发,成为一个奢侈品。 很多公司都在不断的试错中摸索着前行,就看谁在碰壁之后转头的速度快而已。 3.

Java代码编写规范(转载)

一曲冷凌霜 提交于 2020-03-21 09:34:04
编码规范 1 前言 为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程。系统继承的其它资源中的源程序也应按此规范作相应修改。 2 适用范围 本文档将作为java编程人员软件开发的编程格式规范。在项目Java部分的编码、测试及维护过程中,要求严格遵守。 3 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。 3.1 Package 的命名 Package 的名字应该都是由一个小写单词组成。示例:unipost.trans 3.2 Class 的命名 Class 的名字每个单词必须由大写字母开头而其他字母都小写的单词组成。示例:FileMng 3.3 Class 成员的命名 变量、方法、属性:大小写混排的单词组成,首字母小写 示例: functionName、countNum、size 3.4 Static Final 变量的命名 Static Final常量:大写单词组成,单词之间使用“_”连接 示例: MAX_INDEX 3.5 前后台变量名称 前台变量 fg_变量名 后台变量 bg_变量名 3.6 参数的命名 参数的名字必须和变量的命名规范一致。 3.7 数组的命名 数组应该总是用下面的方式来命名: 3.8 方法的参数

成吨提高开发效率:Intellij Shortcuts精简子集与思维模式

試著忘記壹切 提交于 2020-03-20 20:04:16
3 月,跳不动了?>>> 在线精简cheatsheet备查表: intellij.linesh.tw Github项目: intellij-mac-frequent-keymap Intellij的快捷键多而繁杂,从 官方推荐的keymap ,到网络上很多的个人总结,资料可谓浩如烟海。相反, 如何从众多的快捷键中快速找到使用频率最高、对工作效率提升最多的快捷键 ,则成为一个难题。这个cheatsheet速查表,正是为了解决Intellij快捷键学习过程可能遇到的这个问题。 这一年里我拉拉杂杂地阅读了许多Intellij快捷键与使用理念的资料,不管是官方的keymap还是个人的博客,结合平时的工作和个人项目经验,我尝试整理并总结其中最精华的部分,同时通过这个子集来总结、思考与提高效率相关的思维模式和理念。分享出来,希望能顺便给学海中的同学提供有益的帮助。 目标读者和人群 想要快速上手Intellij快捷键的同学。多而没有重点的其他资料不用看了,优先学习最精华最常用的快捷键,才是节省时间,提高效率之道 想要不断对比、精简你的快捷键集合的同学。毕竟快键辣么多,记得最有用的就好 备查 。这个是最主要的目的,存个书签或者记个网址,需要的时候只要有网络,随时跨平台可查 尝试提高思维层级,从理念和思维模式的视角来看待编程和工具的同学 理念与思维模式 IDE与电脑作为工具

就简单聊聊沟通效率问题

余生长醉 提交于 2020-03-06 12:22:24
阅读目录 沟通效率是什么 为什么每个组织都在强调沟通效率 如何提高沟通效率 结语 一、沟通效率是什么   沟通效率是指依据利益点,选择适当的时间、方式、手段, 快捷、准确、及时 传递信息产生的实效性和节奏感。有效度是指沟通 对信息接受者影响的效果与程度 。                                                                   ————摘自《百度百科》 二、为什么每个组织都在强调沟通效率   只要有大于1个人的地方就有沟通,所以说只要是一个组织,不管是家庭还是企业都存在着沟通问题。然而企业又是个创造利益的团体,所以其对效率的追求是无止境的,因为效率高低直接影响了企业运转的成本。   沟通就是一个进行信息对称化的过程,板板手指可以算出来,比如:2个人只需要进行1次,3个人是3次,4个人是6次,以此类推,如下图1。                         【图1】   大家可以发现,人越多沟通成本越大,这也侧面反映了,在某些行业里赶工作进度的时候,并不是加人就能解决的,甚至可能会出现反效果。所以这里沟通的效率就很重要了,如果沟通效率低,那么可能团队到3、4个人就已经内耗很严重了。如果沟通效率比较好,团队可以顺利达到传说中的“2个披萨团队”。   另外相信大家也看到过很多的大公司病,都知道大公司病有负面作用

算法分析:如何分析一个算法的效率好坏?

时光毁灭记忆、已成空白 提交于 2020-03-06 00:30:28
/*--> */ /*--> */ 什么是算法分析 当我们说算法分析的时候我们在说什么?(狭义的技术层面的定义): 算法分析指的是: 对算法在运行时间和存储空间这两种资源的利用效率进行研究。 即时间效率和空间效率。 时间效率指算法运行有多快; 空间效率指算法运行时需要多少额外的存储空间。 (时间效率也叫时间复杂度;空间效率也叫空间复杂度。) 在计算机时代早期,时间和空间这两种资源都是及其昂贵的。但经过半个多世纪的发展,计算机的速度和存储容量都已经提升了好几个数量级。 现在空间效率已经不是我们关注的重点了 ,但时间效率的重要性并没有减弱到这种可以忽略的程度。 所以,当我们分析一个算法的的时候,我们 只关注它的时间效率 。 算法分析通用思路: 当我们遇到一个算法时,我们可以用这样一个通用的思路去分析它: 1. 输入规模 首先第一步考虑这个算法的输入规模是什么?即输入参数,再换句话说也就是待解决的问题有多大? 从这里入手是因为一个显而易见的规律就是, 不管使用什么算法,输入规模越大,运行效率肯定会更长。 输入规模的确定要根据具体要解决的实际问题的细节来决定,相同的问题不同的细节,输入规模是不一样的。比如:一个拼写检查的算法, 如果算法关注的是单独的字符检查,那么字符的数量就是输入规模的大小; 如果算法关注的是词组搭配的检查,那么这个输入规模就要比单独的字符检查的输入规模要小

Photoshop 使用优化

不羁岁月 提交于 2020-02-29 07:51:05
一、 文件大小: ps文件大小:200 —300 MB/个; 二、 ps优化: 1、 Photoshop 安装32位(64位占用资源多); 2、 内存使用情况 : Photoshop是64位的本机应用程序,因此你为它提供多大的内存,它都可以使用的完。在处理较大尺寸的图像时,更多的内存将会更有利。默认情况下,Photoshop将会分配70%的内存让其使用,但是你可以通过菜单 编辑 > 首选项 > 性能 来改变这个数值。数值改变之后,重启Photoshop才会生效。这可能是提升Photoshop性能最有效的方式。 3、 使用暂存盘 : 当你的内存完全使用时,电脑的硬盘将会承载剩余的工作量。默认情况下,你的暂存盘为系统(启动)分区,通常系统分区已经负载了你的安装应用程序和操作系统。建议你增加所有空闲的硬盘作为暂存盘,在菜单 编辑 > 首选项 > 性能 下可打开暂存盘选项窗口,并且点击右方的上下箭头根据硬盘的使用情况进行优先级排序。 你可以在Photoshop的性能设置窗口分配并且进行优先排序。 4、 效率指示器 :( 重构同学可以忽略) 如果你在文档窗口的下方状态栏选择了效率,你可以看到Photoshop的效率级别。如果显示100%,意味着效率最高。你可以通过减少图层和智能对象的数量来提升效率,不过由于未保留可编辑的源图层,这样可能会破坏你的工作流程。 5、 高速缓存与历史记录 :

.NET 求和的效率

女生的网名这么多〃 提交于 2020-02-29 07:14:59
昨日,写了篇文章 《.NET 4:并行求和不爽》 ,得到大家的热心回复,受大家启发,逐步发现了并行求和效率不要的两个原因: 我用的是伪四核 CPU; .NET 求和(非并行)效率问题。 今天,就看下 .NET 求和的效率问题。这里不是要和 c、c++等其它语言进行对比,而是对 .NET 中各种求和方式的相对比较。 .NET 中求和有多种方式,可以用 Linq 中的 Sum 扩展方法,也可使用 foreach、for 等。 准备测试数据 先准备用来测试求和的数组: 1 2 3 4 var random = new Random(); var data = Enumerable.Range(1, 67108864) .Select(i => (long)random.Next(int.MaxValue)) .ToArray(); 一个很大的长整型数组,装满了随机数,生成大约用 5 秒。 数组求和 我想到的求和方法有下面 5 种,使用 Stopwatch 计时: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Stopwatch watch = new Stopwatch(); //Enumerable.Sum watch.Start(); var

java中使用多线程不能明显提高程序效率的一些原因.

北城以北 提交于 2020-02-29 06:06:28
java中使用多线程不能明显提高程序效率的一些原因. 使用多个线程来处理多任务的时候,效率肯定是有提高的.但是必须要慎用,否则容易出现问题. 1. 多线程主要是为了充分利用多核cpu,大内存这些资源. 如果你的硬件跟不上,只有一个cpu,那么多线程从并发变成了串行了,另外再加上线程上下文切换的时候,那你就得不偿失了. 2. 原子问题 如果多线程是同步操作一个原子数据,(多个线程同步去处理一个加锁的对象),那效率肯定不会提升,就好像1个人去做1件事和多个人排队去做一件事效率是一样的; 3. 线程的个数对于一个应用程序来讲的话,往往会有一个临界值。 临界资源的访问问题,程序中临界区的指令一般来说越少越好,最好不要在临界区中做一些重量级的事情,例如说数据库,写文件,读文件! 4. 对硬盘的读写有特殊的地方。 对磁盘进行多线程处理的时候,效率会急速下降!! 因为不同文件的读写,会造成磁头的频繁转换,磁头的频繁转换要比读取磁盘的时间更长。 所以这种情况下,最好有个线程去读取文件,其他的线程去处理文件数据中的业务逻辑处理. 5. 操作系统的IO通道数量的影响 采用普通的File文件API来读写多文件.使用多线程的话很大程度上也不会提高效率. 因为文件,网络等流的读写都需要操作IO通道,而操作系统的IO通道数量是固定的。 我们假设你的电脑只有一个IO通道,如果你打开一个文件流并进行读写