摘要:
我想说,大家开发项目一定会混乱。因为大多数的开发都是经验谈,很少有方法论。混乱的根源在于需求不明确,因为很少有人将需求分层次,一般对开发级重视度不够。也很少有人对模块间的关系进行分析。所以,对模块间的关系也很少重视。但是,协作决定接口,没有协作,接口将来也不能满足应该用。开发经验很重要,但是也要有方法的指导。架构是业务到系统的桥梁。将业务转换为我们要开发的系统。1.需求阶段。这个阶段主目标是定关键功能,质量,约束。为概念架构做准备。2.概念架构。这个阶段主要目标是回答客户的关心的业务(也可说是价值)如何实现,关心的问题如何解决。这里要注意:1)用例图不能彻底覆盖系统,因为用例图并不能反应系统的 阅读全文
摘要:
1.资源 团队(人员数 技术水平) 时间 2.业务 业务量是不是很大 是不是前期就要满足很大业务量的设计 业务复杂度 业务是不是就是要求这么复杂 是不是所有位置都要考虑高可用 高性能 可扩展等 3.系统拆分粒度 没必要特别细 没必要特别粗 重点是要合理 服务内部复杂必然导致外部复杂(外部依赖关系 外 阅读全文
摘要:
1.必须能落地 第二条的一种表现 虽然写在这里比较多余,但是还是需要着重提一下 2.合理 基于现有情况去做最好的设计 重点是基于现状也就是团队的上下文。几个关键点 资源(人) 时间 业务(复杂度与业务发展,比如一个一次性开发的业务还是长期维护的业务,1+1=2的业务还是非常复杂的业务,1个人使用的系 阅读全文
摘要:
好多年了,第一次发表文章还是工作第二年,7年过去了,居然又回来写文章,也是没想到。当初对自己的期望也算实现了吧,也做到了架构,不过现在岗位更偏管理。 架构就像修桥一样,从一个点到另一点,是打通两端之间的阻碍解决方案。但是架构不是普通的解决方案,是合理的解决方案。 打通两端这个比喻并不是合适的例子,它 阅读全文
摘要:
方法的调用者的类型(父类型)称作静态类型。调用者最终类型(本身的类型)称作实际类型。当确定方法的版本是通过调用者实际类型+方法参数中的类型才能确定方法版本时候,这种分派称作多分派。只是依据调用者和方法参数,叫做单分派。分派是站在通过类型确定方法版本的角度上说的。java是静态多分派,动态单分派的。首... 阅读全文
摘要:
变量被声明时的类型叫做变量的静态类型(Static Type) 又叫明显类型(Apparent Type)。变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type)。根据对象的类型而对方法进行的选择,就是分派(Dispatch)。根据分派发生的时期,可以将分派分为两种,即分派分静态分... 阅读全文
摘要:
什么架构,就是搭建业务到代码实现之间的桥梁。关于架构的第一步,就是需求。 如何整理需求,才能覆盖整个系统,才能没有太重要的遗漏,很多人无从下手。方法是关键。 如果你的需求只是一个一维需求列表,那么你就彻底失败了(针对大型系统而言)。 首先,需求是分层次的。如果不分层次,有很多需求会遗漏,而且也很难发现需求间约束。并且,部分层次的需求,很难发现开发中的软件质量和约束,而这些,则很能导致最后项目的失败。 需求划分为3个层次: 1.业务需求。你的软件目标。甲方和乙方是否在愿景上达到一致。 2.用户需求。你的系统能帮用户做什么,不能做什么。 3.开发需求。你的开发环境,需要甲方或者公司提供什么。 其. 阅读全文
摘要:
假设你的月收入只有2000元,你也可以过得很好。我帮你把钱分成五份。第一份600元,第二份400元,第三份300元,第四份200元,第五份500元。第一份,用来做生活费。这么少的生活费,每天只能够分到十几元。早餐一份煮米丝,一个鸡蛋,一杯豆浆。中餐一份快餐,一个水果。晚餐自己开个小灶,煮点饭,加俩菜,睡前一杯奶。这样一月的伙食大概是500-600。不过,如果你还年轻,身体暂时还没有太多问题,这样的食谱,够你数年内不会有健康问题。第二份,用来交朋友,扩大你的人际圈。这就宽裕了。你的电话费可以用掉100元。每个月可以请客两次,每次150元。请谁呢?记住,请比你有思想的人,比你更有钱的人,和你需要感 阅读全文
摘要:
1.关于架构过程:a.充分分析需求,确定架构驱动力。在此阶段,要根据需求找出关键功能,关键质量,关键质量间的影响,系统约束(功能和非功能,例如团队,系统背景,性能,技术方向)b.根据关键功能进行初步设计,然后根据初步设计进行高层分割,最后针对非功能需求(如业务需求,行业背景和约束)做出决策。在此阶段,根据以上观点,做出概念模型。c.最后对系统整体结构进行细化。其实架构很多时候最难得是在性能和可扩展性之间寻求平衡点,架构要多视角分析。2.关于遵循的原则a.依赖高层抽象,不要依赖底层的实现。b.没必要直接通信的类,让他们通过中间类通信。就是建立一个类,a和b类都和c类通信,来访问对方。c.子类必须 阅读全文
摘要:
1.如果自己读写文件,经常要try except,非常繁琐。如果经过操作,文件消失,写在finally的操作自己又会产生异常,代码崩溃。推荐写法:with open("test.txt",w) as data: print("This is test",open = data)这样就不必关系文件如何关闭了,python自己会处理。print可以向文件中写入哦,open是print的参数,指向一个文件句柄。2.检查变量可以用locals(),该方法返回一个当前作用于中定义的所有名的一个集合if xxx in locals(): 各种处理3.关于使用存储列表 阅读全文