自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从问题出发

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

2018-02-28 13:09:36 621

原创 表达能力

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

2018-02-27 20:56:29 1171

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

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

2018-02-26 17:48:27 1686

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

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

2018-02-26 17:20:53 2328

原创 软件开发技巧和陋习

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

2018-02-26 10:21:54 339

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

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

2018-02-24 18:06:41 1624

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

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

2018-02-22 11:15:40 359

原创 金融贷款

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

2018-02-22 11:10:06 463

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

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

2018-02-09 16:15:52 331

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

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

2018-02-09 10:32:33 362

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

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

2018-02-09 08:40:51 586

原创 怎么算入行

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

2018-02-08 11:27:55 358

原创 潜意识

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

2018-02-08 10:35:26 533

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

桶 趟 哨兵 回文

2018-02-07 17:33:10 567

原创 如何对待沟通和谈话

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

2018-02-07 16:38:36 430

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

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

2018-02-07 14:19:09 321

原创 什么算懂

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

2018-02-07 09:46:35 234

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

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

2018-02-06 19:27:07 3522

原创 异步的运用

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

2018-02-06 14:12:44 271

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

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

2018-02-06 09:27:03 279

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

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

2018-02-05 15:26:46 295

原创 排查问题-复盘

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

2018-02-02 22:29:26 399

原创 负载转移---调度

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

2018-02-02 19:41:13 599

原创 测试

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

2018-02-02 15:02:19 551 1

原创 业务代码VS框架代码

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

2018-02-02 10:47:38 835

原创 五脏俱全VS特性强大

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

2018-02-02 09:38:49 195

原创 资源调度

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

2018-02-02 09:32:49 871

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

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

2018-02-01 18:56:31 1690

空空如也

空空如也

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

TA关注的人

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