国外程序员在 stackoverflow 推荐的程序员必读
最近看到一篇关于台湾漫画家蔡志忠一个演讲《努力是没有用的》,讲的也确
如果你认为开源软件的优势是免费和拿来主义,那么你就错了,在当今的软件市场中开源项目越来越耀眼,选择开源软件的最大优势无非是风险低、
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执
需求的不断变更是重构的最根本原因,代码架构最初的设计也是经过精心的设计,具有良好架构的。但是随着时间的推移、需求的剧增,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可避免的要违反最初的设计构架。经过一段时间以后,bug越来越多,越来越难维护,新的需求越来越难实现,最初的代码构架对新的需求渐渐的失去支持能力,而是成为一种制约(新需求的开发成本会超过开发一个新的
C:\Users\fei.chen...
单例模式,确保一个类只有一个实例,它又分为饿单例模式(类加载时实例化一个对象给自己的引用,如果对象很大是对内存一种巨大的浪费)和懒单例模式(调用取得实例的方法如getInstance时才会实例化对象)。而懒单例模式稍稍复杂下,主要是要考虑两点是否Lazy 初始化和多线程安全。双重检查锁定是在输入同步块之前和之后检查惰性初始化对象的状态以确定对象是否被初始化。如果没有对float或int以外的任何可
智力题,每个正式的笔试、面试都会出,而且在面大企业的时候必然会问到,笔者曾在很多面试中,都被问到过,不过答得都不是很好,因为时间很短,加上我们有时候过于紧张,所以做出这类问题,还是有一定的难度,从这篇文章中我会总结一些常见的智力题 1、农民分金条问题题目:你让农民为你工作7天,给他的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给
1.汇
撰写的设计文档主要分为:总体概要设计文档 + 详细设计文档,后简称为“概设”+“详设”。总设和详设都应该包含的部分:(1) 需求:一般以产品的语言描述,这一块可以拷贝产品需求文档中的story list部分;(2) 名词解释(可选):非相关领域内的同学需要看到文档需要提前了解的一些概念性质的东西;(3) 设计目标:又分为功能目标和性能目标,功能目标一般是对产品需求的技术描述,性能目标是根据产品给出
现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...目录 什么是敏捷开发?为什么说是以人为核心?什么是迭代?关于Scrum和XP什么是Scrum?什么是Sprint?如何进行Scrum开发?为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外
互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的...
随着微服务的越来越多,一致性问题也越来越被重视。纠结是怎样才能ACID呢?CAP还是Base呢?其实强一致性的方案也特别多,比如net的msdtc、java的atomikos...等。但他们这类基于2pc(两阶段提交协议)实现,基本上性能太差,根本不适合高并发的系统。而本地消息表、可靠消息最终一致性方案、最大努力通知方案都是不错的解决方案。目录一致性问题解决一致性问题的模式和思路ACIDCAPBA
互联网产品研发改进之路(淘宝-liyu)(一)产品开创期 抢夺免费资源、占领新市场;短迭代,快上线,尽快让业务看到结果。关键词:效率策略一:敏捷开发策略二:开放运维,缺陷容忍(二)产品拓展期 获得产品竞争优势。关键词:规模化策略三:动态分配资源策略四:PM细分,大PM/细PM策略五:架构师细分,形成独立的团队策略六:关键分离,自动编译,持续集成(三)稳定创新期 不断创新获得新的竞争优势。关键词:差
我搜索了相关的资料,似乎并未找到二者的实质区别,但这个概念恰恰被N多个高大上软件及架构强调。那究竟有什么区别和内在联系呢?1、含义Proxy:服务器代理Agent:代理服务器2、内在关联与区别二者都是面向不同类别用户并处理请求,Proxy强调服务器的安全性、隐秘性、面向的调用方为非用户,分解Server的压力;Agent强调客户端(面向用户级)、本地化、统一收集信息,处理转换消息,发送至Serve
为何会专门写这篇BDD呢?之前我发表过一篇《代码重构之TDD的思考》,有童靴联系到我,探讨之余,感觉这几
在本周的Code Review中,从Pair学到一个技巧--索引标记法(暂且叫这个名称)题目以任意一个 Status(int currentStatus, int liveCount) {
如果您像我一样,依然保持对技术的兴趣与热忱...那你要做什么呢,对,坚持买书,书.....1. 书是学习知识最快的最系统的方法;2. 看名人Blog 识就是金钱;6. 学习知识是一个循序渐
微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应
大多优秀的开源的后端程序,通常有三个部分组成,而这些都完全独立开发。协议本
统)了。那么,reCAPTCHA 到底做了多大贡献呢?200...
随着时间的积累,慢慢的也从菜鸟变成了老鸟,总是面临一些初入职场的朋友咨询我这方面的经验,其实本来是推荐大家去看看稻盛和夫《活法》《干法》,今天稍微整理下。工作感悟如何才能晋升?技术岗转管理岗的利弊?如何带好新员工?如何做实习生Review?在写作中成长?技术职位模型?提高软能力提高规划能力提高学习能力提高沟通能力提高执行能力
系统划分边界确定一直是一个比较难搞的活,拆分之后的系统真的能做到职责单一???这就涉及到技术上的思考坚持CAP、引入Base思想.....不纠结了吧,今天分享一个阿里的大牛的经验。1、产品的定位需设计的模板化的做法,比如我有一个订单系统,需要整合各个业务系统的订单,而每个业务系统的业务属性差别很大、业务单据状态运转也有差距,那这该如何取舍?坚持模块解耦,随时可替换,引入...
过多的缩进层次不利于代码阅读,进而不利于代码的维护,给自己一些这方面的原则,如:不能超过三层(我自己的原则)如何消除缩进:提前返回遇到非法路径就提前抛出异常遇到非正常条件就提前返回默认值,如:边界情况、特殊情况。重构为子方法:某些代码片段可以使用重构工具自动生成子方法,某些需要执行一系列小的重构步骤之后才能使用重构为子方法。
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号