自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(309)
  • 收藏
  • 关注

原创 如何估算线程池个数

关键词 CPU_WAIT_IO(等待IOCPU时间比率); cpu运行时间,cpu等待时间; 公式:最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目;在同一个进程里面,启动两个线程池,一个执行调用A服务,另外一个执行调用B服务,都是网络调用; 假设机器是10核数,A线程池最大为10,B也是最大为10;调用A服务阻塞,那么调用B服务是不是也会受到...

2018-09-05 20:04:43 911

原创 不用c和c++,那么要不要去阅读这两种语言优秀的的源码呢?

不用c和c++,那么要不要去阅读这两种语言优秀的的源码呢? 由于这两种非常底层,对于了解一些底层的原理非常有帮助; 而且,高级语言比如,Java都是增加了更多的抽象层,而底层差不多都是一样的, 因此,当我们使用Java的时候,可能不知道底层是怎么运行的,如果能经常阅读一些优秀的底层语言比如c的优秀代码,对于我们使用Java也是非常有帮助的; 就像我们读一些名著并不是为了成为一个牛逼的作家一...

2018-09-07 12:24:23 389

原创 修改一处代码,都要通篇进行review

在一个方法中,增加一行代码,觉得没问题吗?原则:修改一处代码,都要通篇进行review; 重点看下修改的代码对原有代码的影响是什么?新增的代码是干啥的?对流程有什么影响; 对逻辑有什么影响?例子:在一个执行过滤功能的方法中,新增一个过滤代码。 可能造成的影响以及review的重点是:该行代码放的位置对吗?是放在哪个过滤前,还是哪个过滤后,还是放到哪些过滤之间?...

2018-03-07 18:45:45 1913

原创 jquery能做什么

jquery选择器 jquery事件 jquery效果(比如隐藏,显示等等) jquery文档操作,属性操作,css操作 jquery遍历 jquery ajax jqueryDOM元素参考:http://www.w3school.com.cn/jquery/index.asp...

2018-03-07 13:43:36 714

原创 如何高效review代码

如何高效review代码:对改动的地方多问一个为什么?多问业务是什么?多问为什么这么做?多问,多思考还有其他的实现方法吗?总之,让你的注意力集中并在思考。...

2018-03-01 14:42:11 851

原创 从问题出发

有时,对于所开发的东西不清楚,或者杂乱无章, 我们可以去做,然后测试,定位问题,诊断问题,解决问题。 这个过程中,我们会慢慢成长。对所做的事情会越来越清晰。 这就是从问题出发。 并不是所有的事情都是完全规划好了,搞清楚了才能进行。换种思路,也许就海阔天空。...

2018-02-28 13:09:36 602

原创 表达能力

在平时的工作或者生活中,你会在意或者注意你的表达方式吗?你觉得你的话别人能很好的理解吗?你能准确表达自己的意思吗? 特别当你遇到问题时,向别人寻求帮助时,你连自己的困难都讲不清楚,别人怎么帮你,特别是做为一个开发者,必须要会表达,善于表达。很多人都沉浸在自嗨中,因此很多人的表达对于受众来讲,都是会碰到疑惑,更加疑惑,甚至抵触的情况。要知道,人都是力争想要明白的,你给他表达你的意思,反而让其糊...

2018-02-27 20:56:29 1152

原创 抽象(归纳)能力的重要性

在一个项目中,很多功能是相似的,那么如何把相似的功能抽象出来,并通过一定的技术手段来实现,那么久可以减少代码量并增强代码可维护性。 注意:不能过度抽象,不能滥用抽象。比如切面思想就是一个把相似功能进行抽象而得出的精华思想; 我们要做的就是分清楚哪些可以归到一个切面里面。...

2018-02-26 17:48:27 1639

原创 ERP管理系统(后台系统)中javaweb-分页组件

后端采用的技术: SpringMVC PageHelper 核心点: ThreadLocal、拦截器前端采用的技术: http://www.jeasyui.com/documentation/datagrid.php

2018-02-26 17:20:53 2295

原创 软件开发技巧和陋习

凑合 在日常开发中,使用或者测试中出现问题,一般都喜欢打补丁,补丁这个概念被用错了。补丁不是凑合。补丁不是简单粗暴,毫无业务逻辑性的凑合。 如果为了修复一个问题,而让你的代码变得不能体现或者表达它的业务含义或者污染了现有的代码逻辑,那么这个修复就埋下了一个日后潜在的更大的问题。 为了清晰性,为了功能的单一性,为了以后的可维护性,代码不能凑合。 陋习举例:比如业务调整,需要调用端新传入一个参...

2018-02-26 10:21:54 321

原创 读《实现领域驱动设计》个人心得

贫血领域对象:方法不单一,方法的名字不能传达方法的含义,并且方法体的实现也不具有单一性,也不能体现方法的功能。说白了,方法不能体现业务。好的代码就是能表达业务的代码。 贫血领域对象会随着时间推移,会让人搞不清楚它最初的含义和功能是什么,即让人搞不清楚它要实现什么样的业务场景或者用例流。领域驱动设计的领域对象应该有它应该具有的行为,千万不能因为降低代码量或者为了凑合而把复用特性用烂、用错。该是...

2018-02-24 18:06:41 1608

原创 核心的东西你自己需要搞明白

如果你做一个行业,核心的知识你必须需要搞明白。 核心的搞明白了,你就称职,不然,你做再久,还是原地踏步,无实质上的进步。比如,你如果搞金融的,那么钱就需要搞明白。每种贷款怎么算的,每个贷款方式是什么样子的公式。比如,你要是搞电商的,那么就需要搞懂供应链,搞懂渠道。往往,会存在不去面对难的东西,而是避难就易。...

2018-02-22 11:15:40 337

原创 金融贷款

首付 贷款 月供(等额本息(公式)、等额本金(公式)) 等额本息适用于收入低无存款,每月还款额一样。而等额本金适合收入高,有存款,总共还的利息少。尾款 其他费用...

2018-02-22 11:10:06 433

原创 比较:是为了更好的理解它的特性

我们学习一个东西时,如果能够找到和它对标的一个东西来对比着理解和学习, 那么,很有助于你的记忆和理解。对比是常用的一种深化记忆和理解的工具。比如,如果你之前通过并了解MySQL, 那么当你学习hbase的,你可以试着这样学习: hbase和mysql有什么不同,既然有mysql,为什么还会出现hbase hbase比mysql的优势体现是什么?...

2018-02-09 16:15:52 312

原创 如何保持强目标性的问题

作为一个技术宅, 都往往会不经意推崇一个技术(工具),而对工具所能解决的问题,对其所能使用的场景不清楚。 这就是为了学而学。学一个东西前,调研它,首先搞清楚它能做什么,它是否能为你所用。 不要被“别人说牛逼”蒙蔽双眼和思考。做任何事,都要不要忘了目标,忘了你的初衷。要在做事时,时刻反省,发现自己目的模糊就要立刻认识并强化。...

2018-02-09 10:32:33 344

原创 怎么能够认清一个开源组件的功能

怎么才能够认清一个开源组件的功能? 如果你能够说出或者描述出它的一个用途,或者使用场景,那么说明你对它的认识就比较深刻和准确? 比如,你知道storm是干什么用的吗?你的什么业务能够使用它呢?哪怕牵强点的使用也算。...

2018-02-09 08:40:51 560

原创 怎么算入行

入行难,难在入行就代表你熟悉这个领域,对这个领域的一切别人看不出什么的地方,你能够看出规律和特性。比如,你如果熟悉分期购车的业务,那么你知道分期购的分期方案一般都是多少首付和比例吗? 比如,你如果房地产业务,那么你知道什么样的房子可以买?...

2018-02-08 11:27:55 343

原创 潜意识

一万张从1到一万的卡片,打散后,从中找出数字是10的卡片,你会怎么找?同样一万张从1到一万的卡片,找出指定的1000张,你会怎么找?第一种情况,一般情况下,都会随机找(存在侥幸心理) 第二种情况下,人们会强烈的意识到要排好序,然后找比较划算(心中强烈需要规律和规则)。第二种情况就引出了排序,还有就是数据量更多情况下如何更好实现排序?人都喜欢有规则的东西,有了规律就容易处理。计算机...

2018-02-08 10:35:26 515

原创 数据结构和算法中的核心概念

桶 趟 哨兵 回文

2018-02-07 17:33:10 539

原创 如何对待沟通和谈话

有问题了,就需要沟通 有歧义了,就需要沟通 有想法了,就需要沟通但是,怎么对待沟通呢,是不是认为自己是对的,别人就一定要听取? 沟通,就是把自己的掌握的认知信息有条理并且有“感情”地让对方听到。 沟通是事情达成共识的一种方式,但是记住,它不是一种让你宣泄清晰,甚至攻击别人的方式。 沟通的前提是尊重对方。沟通有时需要我们也要有耐心。 尊重对方,尊重沟通

2018-02-07 16:38:36 413

原创 如何找出什么是要点,什么是核心

如何从一大波信息中,摘出来哪些是要点,哪些是核心? 那么基础的,被其他信息依赖的并且是其他信息产生或者存在不可获取的就是核心的。比如,做一个分期购车的网站,你认为车的那个信息是核心的,那就是车价。其实,在一个领域,都有很多领域模型的,模型中有些属性是核心属性,这些核心的就需要认真对待,给予更高的重视度。

2018-02-07 14:19:09 302

原创 什么算懂

不要以为你明白,你就懂了, 你把脉络搞懂了,但是细节呢,比如实现细节呢?如果你总是认为你搞懂了业务,但是么有搞懂或者研究过实现的细节,并明白实现细节,你就不能算懂。一般情况下,业务都是很普通的,但是其实现细节或者运营细节都是差异性所在,有时,实现细节的差异性是非常大的。

2018-02-07 09:46:35 222

原创 如何全面了解一个系统

如果一个系统包括了前台(面向C端用户),一个后台(面向B端用户),而且也有一些平台化的运营使用模块(比如ERP,CRM等),还有一些后台调度系统(JOB等)。那么这么全面的系统怎么能够了解全面呢? 那就是去做与这些系统相关的需求,或者修改这些项目相关的bug,或者是跟(一步一步调试地跟踪)这些项目相关的代码。 总之,要亲身经历,然后多问,多做,多使用(操作这些系统)。时间到了,你就懂了。

2018-02-06 19:27:07 3466

原创 异步的运用

调用http接口执行任务,但是http接口内部的逻辑执行到完全结束需要很长时间,此时,链接会超时并结束。也许你的目的仅仅是触发http,让http底层的服务端代码执行起来。 那么你可以运用异步的思路,让http的响应“快速返回”,并且让http的服务端代码通过一个新的线程来继续完成真是逻辑的执行。然后再搭配任务的监控(比如心跳,返回执行进度报文)等,或者让调用者注册一个回调。

2018-02-06 14:12:44 248

原创 一切的猜测不够,还需要要验证

任何的猜测都是不够的,还需要要验证. 不要习惯用猜测代替事实。 不要习惯用猜测作为事实。

2018-02-06 09:27:03 261

原创 运用面向对象特性的目的

运用面向对象的目的之一是可以让实现和扩展按照我们定义(一次)的规范来开展。 比如接口的定义,比如父类的存在。 比如模型的定义,比如业务的填充; 另外,接口(或者模型)的定义和基于它的实现(或者补充业务逻辑)的往往不是一拨人。举个例子,storm设计了一套模型,你按照这个模型进行开发补充你的业务代码,就可以实现你想通过storm实现的功能。这里面就有storm的模型规范在规范你。...

2018-02-05 15:26:46 270

原创 排查问题-复盘

在排查过程(线上排查心里素质会下降)中可能使用了错误的方法或者使用了错误的判断或者看错了等等 当我们陷入绝境,我们要休息下,然后中断一会。休息完毕后,我们再仔细复盘下刚才的做法是否是对的,或者重新使用新的方法来试验。

2018-02-02 22:29:26 375

原创 负载转移---调度

一个JOB在一台机器上执行很多的操作,使用的本机的资源,那么如何把具体的动作转移到其他机器呢?JOB执行——>JOB触发执行(http方式等); 如此一来,JOB就是一个调度了,而真正执行的触发通过消息或者http就转移到了其他机器上;

2018-02-02 19:41:13 566

原创 测试

不同的测试环境,侧重点是不同的。 本地进行功能测试 压测环境进行压力测试 预发环境进行功能线上模拟测试从本地测试到性能测试到预发测试到线上测试,这样的流程是必须的。 但是,在实际中,往往“为了节省时间”并“觉得改动小(而且也不进行仔细review)”就仓促直接发到线上,这样是非常不合规的,容易造成重大问题。

2018-02-02 15:02:19 529 1

原创 业务代码VS框架代码

业务代码可以无上限激发你的想象力, 而框架代码需要你自己激发自己的想象力。因此,如果你觉得业务代码简单或者枯燥,那是因为你自己没有掌握精髓或者你没有好好走心设计你的代码。

2018-02-02 10:47:38 796

原创 五脏俱全VS特性强大

有时,我们是使用一个开源组件的某个强劲特性而选择它, 有时,我们更关注它的整体面的考虑而选择它。

2018-02-02 09:38:49 185

原创 资源调度

资源调度就是从时间上把“重”任务打散,禁止占用非常高的cpu,内存等,因为系统级的进程也需要这些来做事情(比如调度)。TIPS:千万不要以为“压榨”机器就是好事,过度的话可能事与愿违,甚至更差。

2018-02-02 09:32:49 823

原创 多线程大并发下的日志问题

多线程,大并发下,尽量做到在生产执行时不打日志。 写日志(慢)会导致调度变得频繁而复杂;

2018-02-01 18:56:31 1652

原创 对立与统一

对立: 冗余会带来重复 而不冗余带来了查询时要关联以达到聚合的目的

2018-01-31 17:35:50 461

原创 从做事中随时蹦出来的能力

做事,遇到问题,遇到突然情况,遇到困难事情,怎么应对? 首先要跳出来,从事情中跳出来,控制自己的反应,最好的表现去应对。 这样的方法才洒脱,才不为被事情控制而错乱。

2018-01-31 10:25:38 198

原创 代理-抓客户端的包

同一个网段 手机配置代理 代理(一般是本机)安装代理工具,并接收代理请求

2018-01-29 15:21:17 363

原创 重复的重要性

对什么陌生,就要对什么重复(重复看,重复读,重复写,重复练)。重复可以消除陌生,重复可以让你熟练。重复可以让复杂简单!!!重复—-让不可能变成可能,让胆怯变成勇敢!!!

2018-01-29 14:47:44 861

原创 git merge 注意事项

背景在使用git作为版本控制工具时,经常遇到把另外一个分支的代码合并到当前分支的情况,那么怎么做呢?具体一般在git merge之前,需要把当前分支和要合并的那个分支代码git pull下,这样最新的代码就可以更新到本地仓库。在使用git merge合并过程中,如果遇到冲突,那么怎么解决呢? 首先,冲突分为: 一种:修改同一个文件,但是新增的是不同内容,一般都是都保留。

2018-01-25 10:23:59 2496

原创 如何全局看数据

背景在一个拥有大量数据的公司,如何通过数据来看业务,来了解业务,甚至来分析自己的代码处理逻辑呢?具体要有意识地全局来看,要了解依赖的数据的来源,分类等。也要弄清楚数据的去向等等。 孤立地看数据,只会造成思路闭塞,有些问题难以发现。开发一个子系统,那么这个系统可能会依赖一些数据,那么这些数据要知道从哪里来的。 另外,子系统会产生一些数据,要弄清楚这些数据的处理逻辑。

2018-01-24 14:28:00 346

原创 读写权衡与关系型数据库Nosql数据库

背景不同类型的数据库,如果不同的读写诉求,怎么推动和决策?具体在关系型数据库中,如果设计得当(表的粒度合理),那么修改操作只会影响很小一部分,但是,如果是复杂的读,那么就需要多个表之间进行复杂的关联等操作。在nosql中,比如ES,它天生接受你的数据扁平化,那么复杂的读在这里就不是问题,但是写,就变得影响很大。关系型数据库是分割 而Nosql是聚合一般的在线业务需求都

2018-01-23 08:25:34 258

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除