开发模式(设计思路)
2018-08-19 18:01:40 8 举报
AI智能生成
开发模式是一种设计思路,它强调在软件开发过程中采用一种结构化、模块化的方法来组织代码和功能。这种模式鼓励开发者将复杂的问题分解为更小、更易于管理的部分,从而提高代码的可读性、可维护性和可扩展性。开发模式通常包括以下几个方面:首先,确定项目的需求和目标,以便为整个开发过程提供指导;其次,选择合适的技术和工具,以满足项目的需求;然后,采用分层架构来组织代码,将不同的功能模块分离开来;最后,通过持续集成和自动化测试来确保代码质量和稳定性。总之,开发模式旨在帮助开发者更高效地完成软件开发任务,提高项目的成功率。
作者其他创作
大纲/内容
模式
设计模式
创建型( Creational)
Factory工厂模式
Singleton单例模式
Builder建造模式
Prototype原型模式
行为型( Behavioral )
简述:玉皇大帝下圣旨
范例:Listener,指令都使用了这个模式
优点:容易实现队列,撤销,重调,日志等操作
父类调用空的方法,让子类继承实现逻辑
spring的doRegisterBeanDefinition()方法里的实现就用到了
结构型( Structural)
服务架构模式
微服务Microservices架构(Micro Service Architect)
目的
系统迁移过度
微框架
Stencil
SpringBoot spring的工具包,Java平台的ROR
指标,健康检查和外部配置
嵌入式容器
简化代码,免配置
DropWizard
Colossus
Sinatra、Webbit、Finagle与Connect等
Seneca基于node.js的工具包
Lumen 类似PHP微框架:silex 和 slim
Jodd 是一组开源的Java工具类和微型框架。体积小巧,但功能强大
Spark
优点
异构性,服务可以基于资源的需求进行独立扩展
与SOA区别
全团队功能
错误隔离性
按需伸缩
独立测试与部署
特征
小,且专注于做一件事情
运行在独立的进程中
轻量级的通信机制
松耦合
去中心统一化
倡导的异步Reactive编程
不绑定框架
案例
例如国外的 Amazon,Netflix,国内如阿里都采用微服务架构取得了很多正面的成功案例
Node.js和Play框架倡导的微服务。
缺点
监控
JVM世界中的Metrics与Ostrich等库不仅可以收集度量信息,还提供了与Nagios和Ganglia等服务的集成,可以将数据发送给他们
通信框架(RPC)
Thrift
Avro
单块架构系统(monolithic)
SOA
开发执行方式
\u00A0领域驱动设计指导我们如何分析并模型化复杂的业务;
敏捷方法论帮助我们消除浪费,快速反馈;
持续交付促使我们构建更快、更可靠、更频繁的软件部署和交付能力;
持续集成:虚拟化和基础设施自动化( Infrastructure As Code)则帮助我们简化环境的创建、安装;
持续集成工具
DevOps文化的流行以及特性团队的出现,使得小团队更加全功能化。
convention over configuration(约定/惯例优于配置)
软件设计
设计原则
开闭原则(Open Closed Principal,OCP)
一个软件实体应该对扩展开放对修改闭合
里氏代换原则(Liskov Substitution Principle,LSP)
任何能使用父类的地方一定能使用子类
依赖倒转原则(Dependency Inversion Principle,DIP)
要依赖于抽象不要依赖于实现。或者是抽象不应该依赖与细节,细节应该依赖于抽象。
接口隔离原则(Interfce Segregation Principle,ISP)
应当为客户提供尽可能小的单独的接口而不应该提供大的综合性的接口
合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)/低耦合高聚合
尽量使用合成聚合而不是继承去实现复用
IOC控制反转
依赖之间保持独立,由容器控制他们的关系
反射或者cglib动态代理实现
最小知识原则,也叫迪米特法则(Principle of Least Knowledge,PLK)
一个软件实体应该尽可能少的与其它实体发生相互作用
可维护设计原则
DRY原则
SHY原则
伯斯塔尔法则(Postel's law),发送保守接收开放
康威定律(Conway's law)团队决定产出
设计工具
Axure RP是一个专业的快速原型设计工具
AE
ROSE
PowerDesigner
Visio
书籍
《重构》
《敏捷开发模式》
《java与模式》
0 条评论
回复 删除
下一页