- 博客(33)
- 收藏
- 关注
原创 十分钟掌握JVM内存分配、垃圾收集器和常用参数
Old: Eden和S区是新生代(young区)的一部分,相对地,在幸存区经历N次,屠杀后仍然存活的话,会被拷贝到old区,进入old区后,ScavengeGC将不在检查对象有效性,需要触发FullGC来回收对象(详见下图)。Java堆分为新生代(young区)、老年代(old区)和永久代(Permanent区),新生代(young区)分为伊甸(eden)区和幸存区0(S0)和幸存区1(S1)。由编译器自动分配释放,存放方法的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放内存资源。
2023-02-02 12:12:42 199
原创 程序员如只拼技术则路肯定走不远
较真态度一旦缺失就很容易导致做事情降低要求或不到位,从而助长一些工作上的不良作风,能不做的就不做,能少做就少做,能将就的就将就,总能找到各种理由推脱,所以一个人编程技能再高,但没有专业的好习惯往往给人的感觉是能做事情但总让人不放心、做事不专业,其工作的结果很不稳定而难以预测,因此这类人的整体能力还不如技能一般但有专业的工作习惯的人;,很明显让一个新人去熟悉一个全新的项目,如没什么文档可想而知,靠口口相传和阅读代码的学习熟悉的曲线是很陡的,有时遇到一些问题一时不知如何入手。什么是专业的工作习惯?
2023-02-02 12:12:32 201
原创 程序员老了怎么办?
当然在职场要把握好机会,多表现帮助和指导他人等能力,多发表意见和积极主动去沟通,成为团队中的突出贡献者,一般领导都能做到慧眼识人能给你项目管理方向发展的机会,当你成为基层的项目管理岗位时你的职场开始处于上升期,你需要更多的软实力,比如:带领团队发展的能力、推行自己喜欢的管理理念的能力、项目管理中沟通和说服别人、解决冲突的能力,较强的团队建设的能力、解决突发事件的应急能力等等。最后你就算老了,很不幸以上5种境界都没达到,也不必太忧虑和杞人忧天,无非是收入多少的问题,一般不会出现找不到工作的情况,
2023-02-02 12:12:27 888
原创 懂得运用这些管理法则就基本懂得项目管理
软件开发是知识密集型的劳动,更要发挥人的主观能动性和自我管理,所以在项目开发的过程中充分运用好“和拢”法则,了解好团队成员的能力特征,用人之所长,建立信任,懂得授权,让能干的人有前途,让有潜力的人有舞台,让有冲劲的人有机会,给大家锻炼试错成长的机会,在锻炼试错中培养人,当然这个过程中作为主管要担当好教练、保姆、秘书和师傅等角色,对结果负责,保证好结果是ok的。“木桶”法则认为由许多块木板箍成的沿口不齐的木桶,它盛水的多少,不取决于木桶上那块最长的木板,而取决于木桶上最短的那块木板。
2023-02-01 14:14:17 139
原创 骨干人员升职主管后掌握这四个方面可快速做好管理工作
大多数童鞋在升任主管前都是团队中的骨干,是个人突出贡献者,平常的工作都是领导安排好,只需要耕种好自己的一亩三分地,至于其他不用想太多,基本都是做执行的工作,所以升任主管后会有行为惯性,遇到工作问题时先进入工作内容的细节或者凡事都是亲力亲为,生怕别人做不好,很多复杂繁重的事情都是自己一撂子担下来,导致自己累死累活而团队中其他成员比较清闲,这种情况屡见不鲜,按事情的“重要程度”编排事务优先次序的准则是建立在“重要的少数与琐碎的多数”的原理的基础上。●需要优先解决,这也是没有计划的做法,无休止地一直在“瞎忙”。
2023-02-01 14:14:12 569
原创 项目开发中如何做到编写更少量的代码
相信各个公司的项目下基本都有Apache Commons下的一些jar包,但很多童鞋编码过程中习惯性自己造轮子,能用到Apache Commons下的这些工具包的童鞋可能比较少,其实用好Apache Commons下工具集和帮助集可以减少好些编码量。针对Bean的一个工具集,比较常用的功能是Bean Copy,也就是copy bean的属性。估计细心的童鞋在看项目代码的过程中你会发现某些代码完全可以直接用开源框架来减少代码量的,如一些带有until的工具类、一些常用的io操作等等。后端进行校验,常用。
2023-02-01 14:14:07 109
原创 年薪5w和50w的职场人思考力有什么区别
许多人在职场摸爬滚打很多年并不顺利,薪酬一直上不去,职场鸡汤喝了不少,也掌握了不少职场技能,工作经验也颇为丰富,但就是得不到领导的赏识,每次升职加薪都没份,其实最根本原因之一是没有强大的思考力,思考力是职场人的核心竞争力之一,它决定职场人的沟通表达是否清晰有力、决定工作做事方式是否高效富有成果和是否快速高效地学习等,因此年薪5w和50w的职场人思考力是有很大区别的,下面列举三方面说明此问题。按事情的“重要程度”编排事务优先次序的准则是建立在“重要的少数与琐碎的多数”的原理的基础上。
2023-02-01 14:14:02 90
原创 开发人员掌握这些可快速提高沟通能力
沟通方式:邮件、qq、电话、开会或面聊等,当然面对面沟通效率是最高;充分利用好非语言方面的沟通形式,如语气、语调、肢体语言、身体动作等。文/老猿,写代码写诗写职场的程序猿大叔,转载此文请联系老猿。工作中沟通无处不在,高效的沟通是高效完成工作的基础。沟通过程保持良好的EQ,真诚、平和、尊重他人!技术部门是后端支持部门,我为人人,人人为我!善于沟通、高效沟通,我们才能驰骋“江湖”!关心客户之所关心,重视客户之所重视!A.调整心态、自信、积极主动沟通。提前准备,自信、积极主动沟通!“见人说人话,见鬼说鬼话“!
2023-02-01 14:13:57 297
原创 十分钟掌握java多线程进阶
阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。5、obj.notifyAll()则能全部唤醒A1,A2,A3,但是要继续执行obj.wait()的下一条语句,必须获得obj锁,因此,A1,A2,A3只有一个有机会获得锁继续执行,例如A1,其余的需要等待A1释放obj锁之后才能继续执行。等待机制与锁机制是密切关联的。
2023-02-01 14:13:53 118
原创 10分钟快速定位互联网应用报障的方法
netstat -an | grep ESTABLISHED | wc -l:查看正在通信的连接数。2)du --max-depth=1 -h :指定路径下所有文件夹的大小(递归一层)netstat -nat|grep -i "80"|wc -l:查看80端口下所有连接数。ps -ef -www|grep java或ps -aux -www|grep java。w:被交换出去的可运行的进程数。如:ps -ef |grep java或ps -aux |grep java。
2023-02-01 14:13:39 164
原创 《人月神话》学习心得
软件工程是一个错综复杂知识密集型的工程,因此开发时间的估算没有量化的标准,项目管理者根据经验大胆去预估。-项目开发过程中总会遇到各种问题,有的时候就像站在焦油坑上,举步维艰,无法自拔;-开发人员交付的是用户满意程度,而不是实际的产品,因此我们要有高度的服务化精神;-项目开发过程中开发人员要保持高效的交流沟通,否则容易导致项目失败;-只评估编码的时间是远远不够的,是无法得出整个项目的时间精确预估;-项目管理者要制定严格的项目进度表,并动态跟踪调整;-有经验的开发人员的开发效率是没经验的10倍;
2023-02-01 14:13:16 94
原创 程序猿年薪3w到30w的必读书单
项目经验因人而异(在不同领域的程序员项目经验的差异会比较大),但书本知识是相通的,尤其是经典书籍不仅能够拓宽程序员的视野且能提高成长速度,经典书籍经得住时间的考验,可反复读,技术框架有很多,我们不要陷入追求数量的误区,要追求质量,同类型的技术框架深入学习一种即可,比如mvc框架只需深入研究spring mvc或其他任一种即可,其他都是相通的,因此学习书本知识是一场没有终点的马拉松比赛,而阅读书籍的顺序一般从入门—经典—延伸的学习过程,此书单正是按照此规律并结合程序员修炼过程而制定。
2023-02-01 14:12:23 82
原创 快速打动HR或面试官的5个方法
简历不用洋洋洒洒长篇大论,只要把重要的学习经历列出来,重点突出你的专业技能的优势点和你的学校、实习或工作经历中取得的成果,同时展示你的思考和总结,有数据说明更佳,比如取得什么要成果得到上级的表扬或拿到奖金什么的,对这些亮点的文字描述可以加粗或其他样式突出展现,方便HR或面试官在数百份简历中筛选上,他们没有那么多时间去仔细阅读简历,通常是按职位要求扫描关键词来筛选的。文/老猿,写代码写诗写职场的程序猿大叔,转载此文请联系老猿。最后祝求职路上的童鞋们如愿拿到自己心仪的offer。5.充分表现你的专业技能。
2023-02-01 14:12:21 215
原创 Java程序猿必须懂的一些异常处理指引
我们经常发现好些java程序猿在编码过程中忽略对异常的处理,或者对异常随意胡乱处理或随便抛出去不管不顾,毫无章法,为应用代码的维护和问题的处理挖了很多坑,让后来维护跟进应用的人想直接问候你妈的心都有,下面根据我的一些经验为大家聊聊作为Java程序猿必须要懂的一些异常处理的指引。注意:此异常接收处理页面不能用静态页必须是动态页,且不能丢掉或吃掉异常,一定要把异常捕获并后台输出错误日志,但页面上不能输出错误日志,且异常接收页面的响应状态码不能设置为200,要按需设置为40x或50x。
2023-01-29 10:43:42 152
原创 具备这些思维的一定是优秀的程序猿
即是仅仅用了面向对象的封装特性,把各种业务逻辑处理简单地封装成对象,然后杂乱无章地使用这些对象来实现业务,而面向对象是对业务的客观世界关系逻辑进行抽象,并利用面向对象的封装、继承和多态的特性进行对象的设计,判断是否做到面向对象主要看对象的关系结构是否使用了继承和多态进行科学合理地设计,有没“科学合理地设计”是它们的本质区别。当需求改变时,我们可对模块进行扩展,使其具有满足那些改变的新行为,也即是说我们可以改变模块的功能,对模块行为进行扩展时,不必改动模块的源代码。有无更好技术代替方案?
2023-01-29 10:40:55 80
原创 做到这5点能大大提高职场自信,成为最好的自己
凡是不够自信的人,都是思维意识出了问题,过度关注自身的感受和想法,害怕把事情搞砸了,怕被人嘲笑或不敢承担后果责任,然后一直处于思维定势中,顺从、盲目、随波逐流,甘于平庸,不敢去主动表现自己,自信的人往往将注意力放在自身以外,不自信的人才老是想着自己。所以改变思维意识,重组自己的观念、理念和思维,行动起来,你要知道你并不是你认为的那种人,而是要想着成为怎样的人,你就会变成怎样的人,你是你生命的导演,生活、工作和人生的事情都要去设想和行动。职场中,不用害怕丢面子什么的,你要把你的价值发挥出来。
2023-01-29 10:37:54 207
原创 这绝对是一份价值不菲的memcache使用总结
可以看到,如果Client和Server时间不一致,根据经验mc服务端跑着跑着其服务端时间通常会比系统时间慢 当然偶尔也会快,如使用绝对时间会有问题,如mc时间比系统时间慢时对一些过期时间有严格要求的就不会按时过期了,如果快了那缓存几乎很快都过期,之前摄影部落某台mc就是出现这种情况,在访问量大些时由于一大部分缓存集体失效导致数据库负载高。当部署应用的服务器系统时间跟mc服务端的时间有差距时,使用绝对时间就有问题了,所以建议大家设置mc缓存过期时间时都用相对时间。//返回进程启动之后的时间差。
2023-01-29 10:35:57 237
原创 职场人最基础的核心能力是什么
这种人工作过程中不沟通,不同步信息,这样的人越能干,结果可能越有预想不到的悲剧后果,因此在职场,没有沟通能力,其他能力基本归零,所以职场中不要怕沟通,沟通总比不沟通好,沟通的结果无非有两个:问题解决了或没解决,但自己解脱了。刚步入职场的新人亦或职场老司机估计都没思考过此问题,或思考过但答案各异,下面我以问答的方式直接了当地回答下这个问题。A:要,讲事实不一定说服人,但事实就不重要么?文/老猿,写代码写诗写职场的程序猿大叔,倾力原创简单实用的硬干货,转载此文请联系老猿。综上所述,职场人最基础核心能力是什么?
2023-01-29 10:33:25 105
原创 5分钟掌握如何做面试官
一般公司的高级开发以上都会要参与招聘面试,对于刚做面试官的童鞋会比较懵,不知道如何对候选人进行提问题才能找到合适的人,估计只会围绕专业技术方面不断问问题,然后得出技术行不行的单一维度的结论,显然这种方法是不科学的,今天跟大伙简要分享下如何做面试官提问题,希望对大家有帮助提升面试能力。STAR行为面试法核心原理很简单就是根据了解掌握候选人的过去的行为能力特征、规律去预测未来的行为能力发展。面试过程灵活使用准备好的计符合STAR面试法问题,相信熟练后信手提出的问题都会符合STAR面试法问题。
2023-01-29 10:31:09 315
原创 新晋主管十分钟掌握如何做好管理工作
项目计划执行过程出现问题的反馈必须基于事实,有数据支撑,不能一种猜测或者是道听途说,然后基于事实和数据进行调整方案,当然事后有效反馈的前提是一开始定下的目标合理且期望明确,这样我们才能做出正确的评估判断。工作幸福三个来源分别意愿、能力和价值,具体看下图,如何把团队成员想做的事(意愿)和能做的事(能力)及该做的事(价值)三者的重叠越多,团队成员工作越幸福越有成就感。第三个是要跟团队成员进行充分地沟通,要时刻地了解团队成员的心态的变化和需求的变化,才能够更好地把组织的目标和成员个人的目标重叠在一起;
2023-01-29 10:28:19 261
原创 【老猿说架构】系统架构设计目的是什么?
但往往新手架构师会过度设计带来巨大灾难,因为他们不管三七二十一,不理解业务和评估系统,直接就搞“高性能、高可用、高扩展”的生搬硬套的系统架构设计,恨不得把淘宝、京东,12306的架构搬过来,结果架构设计复杂无比,项目交付遥遥无期,团队天天吵等各种糟糕的现象,最后费尽九牛二虎之力将系统上线,却发现系统运行不稳定、经常出问题,出了问题难以解决,排查问题困难,加个功能要时间周期很长。架构设计和访问速度有关系,但没有直接关系,提升访问速度是系统工程,需要从系统端到端的输入输出每个节点的计算实现都要足够快才行。
2023-01-29 10:04:07 754
原创 【老猿说架构】常见的架构风格
Service Mesh架构下,服务间通信通过网格进行代理,所有架构模式下解耦和复用最彻底的,不仅强调业务逻辑的解耦和复用,更强调基础设施的解耦和复用。架构风格是一种架构设计理念或思想,跟建筑风格类似,如欧式、美式、中国式和现代等风格建筑,代表一种建筑设计理念或思想,从架构定义看很容易理解架构风格即是构件粒度+交互模式,而架构模式是架构风格的具体解决方案,每种架构风格都可以有不同的架构模式组合实现,那么老猿跟大伙聊聊如下5种常见的架构风格。1)架构简单,前期开发周期短,成本低,适用于简单而小的项目开发。
2023-01-29 10:03:33 432
原创 【老猿看数字化】提供一体化解决方案的数字化服务商企业才有未来
作为渠道数字化的服务商要研究清楚自己的上下游能整合出数字化解决方案的服务能力,同时也要研究服务客户企业的上下游如产业链、供应链等,然后找到切入口构建产品模式提供数字化软件+数字化运营一体化的解决方案。老猿看来作为数字化服务商企业只提供标品化的SAAS数字化软件服务或私有化部署的数字化软件服务的不会有未来,因为每个企业的数字化业务转型都是复杂且需长期坚持的,有大量持续的个性数字化需求,所以标品数字化软件只是解决基础问题,不能解决企业长期个性数字化需求。好,废话不说,直接进入主题。
2023-01-29 10:02:56 81
原创 【老猿说架构】系统架构师的能力模型
广度:即是技术视野,所涉及的领域包括:数据库知识,计算机系统、网络知识,应用技术框架,系统安全,设计模式,最好精通1-2门开发语言,常用架构方法论,业务领域内的技术应用和发展,文档编写能力等等,这些领域的技术要有全面的了解,能够评估各技术的优缺点,能根据业务需要和技术优缺点来做技术选型。系统架构要设计得好,必须理解业务的基础上有业务抽象建模的能力,也就是最近比较流行的领域驱动设计,只有对业务抽象足够清晰、准确才能设计分解系统的模块、组件以及他们之前如何协作运行。好,废话不说,直接进入主题。
2023-01-19 18:24:29 420
原创 【老猿说架构】系统架构设计思维
以上系统容量指标的要求越高系统实现的复杂度接越高,那么我们要根据业务当前和近期(一般1-2年)对系统容量指标的要求做出适用的系统架构设计,切忌过渡设计,比如一个文章发布系统,初期对系统容量的指标要求基本是适应多种类型文章发布和文章访问的速度,做好文章数据结构变化的数据字典支持及引入CDN、文章数据缓存实现基本就够了。任何系统动作实现都是输入、计算、存储和输出,那么系统架构设计最大的抽象就是设计好传输控制组件、业务计算组件分解与协作、数据存储的组件实现,也是对第二个视角做好全系统架构的抽象、分解和建模。
2023-01-19 18:23:32 250
原创 【老猿说架构】系统架构设计原则和步骤
架构师首先是技术管理者,技术方案选型权衡取舍做技术决策是核心的职责,那么系统架构设计首先要考虑的就是要满足当前业务出发同时能支持适应业务发展而扩展开发维护,同时也要结合团队技术积累和实力、项目时间和成本投入等全方位的综合评估取舍,而不是为技术而技术,如在系统设计过程挑战最新的技术和模仿业界领先方案,当然根据业务场景适用的主流技术栈或技术框架选型还是支持的,通常这些技术框架是随着技术发展解决某一业务场景而产生的。文/老猿,写代码写诗写职场的程序猿大叔,倾力原创简单实用的硬干货,转载此文请联系老猿。
2023-01-19 18:22:21 754
原创 【老猿说架构】高并发高可用易扩展架构设计的套路
好些童鞋会认为项目时间紧架构设计没必要,或者架构设计过程中陷入为技术而技术和为设计而设计的过度设计的误区中,总之脱离业务的架构设计都是耍流氓,当然也没有完美的架构设计,依然没有银弹。大家好,我是老猿,今天继续专题【老猿说架构】,文章仅代表作者理解或观点,如有不同理解论述欢迎拍砖交流。今天跟大伙聊下高并发高可用易扩展架构设计的一些大的套路,即是架构设计之道,具体详见下面阐述。文/老猿,写代码写诗写职场的程序猿大叔,倾力原创简单实用的硬干货,转载此文请联系老猿。最大的套路:拆、拆、拆(如典型代表微服务架构)
2023-01-19 18:20:09 194
原创 【老猿说架构】那些因素决定架构活动的成败
显而易见,没有考虑研发人员动机需求和用户人性的架构设计是没有发展空间的,架构师必须洞察研发人员的人性,在方案设计和架构活动组织中充分考虑研发人员动机需求,才能保障方案的正确性及方案的高效实施、演进。举个例子,如果一家不是技术型的科技公司,硬是用自研框架实现自己的架构,不考虑研发人员对技术成长和职业发展需要的需求,即使勉强交付项目后,研发人员也会很快离开,后续也很难找到人员接手维护开发演进,为什么呢?总之在技术层面为企业的技术体系注入外部适应性,保证架构落地的成功。好,废话不说,直接进入主题。
2023-01-19 18:18:59 109
原创 从业务侧视角如何度量研发效能
关于研发效能是否可以度量这个问题,业界有两钟对立的观点,一派是以现代管理学之父 Peter Drucker 的理论为依据,主张研发效能是能够度量的;这个有争议的点是如何拆解需求才是合理的,一般1-2人天完成的需求颗粒度拆解比较合适,这个指标更多强调单个团队的需求吞吐率变化、趋势和问题。因为需求是永远也做不完的,业务、产品和研发都要共同关注价值,不然内耗扯皮是永远也扯不完的。比如每周或每两周发布一次,这个发布频率取决于业务特性和开发团队的工程能力,当然体现研发团队对交付业务价值的响应的流动速度。
2023-01-19 18:17:35 263
原创 你可能没发现你只是程序员不是工程师
那么如何从程序员快速成长为工程师呢,除去靠个人的努力学习软件工程等知识外,在工作中不要着急编码,要从开发过程、协作流程和规范、项目工程化等工程视角去多思考多实践。总之职场中不要只做程序员,要成为优秀的工程师才能进入快速上升通道,无论是往管理向还技术向发展,前提都是要先成为优秀的工程师。能够从“系统、关联、过程”的视角看研发对象,能够做到从全局到局部、由上到下、由粗到细,思考对象是按照从“系统→模块→功能→组件→程序”的顺序;更容易从“代码、程序”的视角看研发对象,多从细节入手、思考、实施;
2023-01-19 18:16:07 107
原创 3分钟决策是否要用微服务架构
2)服务实现和服务治理前者耦合,应用侵入式 后者完全解耦,开发只关注业务效率更高;微服务架构开发是大而复杂工程,所有服务组件和服务治理的基础设施都要完善,才能走稳走远。比较:1)Spring cloud上手快、 K8S+istio复杂学习曲线高坑多点;技术选型 (spring cloud OR K8S OR K8S + istio)团队人员具备K8S经验(或公司重视积极投入),优先云原生 K8S+istio。建议子应用级别,不建议拆得太细,太细的话对服务治理挑战和代价更大。
2023-01-19 18:13:53 95
原创 三分钟掌握DevOps
人和流程构成的开发模式是没有标准的,各个公司根据自己的实际去定团队人员结构和开发流程模式,但无论怎样,产品、开发、测试、运维人员连成一体的闭环开发模式是基本的,这也是devops的魅力所在。看上图,任何一种开发模式的诞生都离不开基础设施和应用架构的发展,devops开发模式也是微服务架构和容器化部署技术的发展而产生,这里云服务是基于容器化部署的云服务产品,占了大半江山的当然是基于K8S开发的产品了。就是敏捷开发模式的延伸,打通产品、开发、测试、运维的更快速的闭环开发流程。具体看下面的接地气的阐述。
2023-01-19 18:12:09 686
原创 1分钟了解职场人最基础的核心能力是什么
这种人工作过程中不沟通,不同步信息,这样的人越能干,结果可能越有预想不到的悲剧后果,因此在职场,没有沟通能力,其他能力基本归零,所以职场中不要怕沟通,沟通总比不沟通好,沟通的结果无非有两个:问题解决了或没解决,但自己解脱了。刚步入职场的新人亦或职场老司机估计都没思考过此问题,或思考过但答案各异,下面我以问答的方式直接了当地回答下这个问题。A:要,讲事实不一定说服人,但事实就不重要么?文/老猿,写代码写诗写职场的程序猿大叔,倾力原创简单实用的硬干货,转载此文请联系老猿。综上所述,职场人最基础核心能力是什么?
2023-01-19 18:09:47 67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人