当前位置: 首页 > news >正文

关于功能的设计

关于功能设计


问题和模块的定义

a. 将模块在整体结构中的位置和作用表示出来
b. 定义模块的输入输出

编码与实现

问题定义

类层次结构是否必要
决定需要暴露的部分
找出变化,使用抽象管理


实现

是否与定义相分离(桥模式,实现独立变化)


模式选择

实现过程中,是否可以使用模式来应用到当前问题模型


从调用的角度审查

调用的类是否尽到了它的职责
是否需要流畅接口


从性能角度衡量

找出性能敏感的实现部分,不确定?测试一下找到答案


边实现边重构


职责分发与解耦

这件事是否是这个类该做的,如果不是,立即重构(有resharper,并不会花很多时间)
这个类的耦合点是什么,是否必要,否,重构

封装与调用

信息隔离
能否重用一些已知接口
调用者如何将依赖注入进来(构造器,属性,还是attribute?)


技术选择

a. 是否对它足够了解

做一些research ,了解它优势的同时,清楚它的弊端


b. 是否需要
当前的问题模型真的匹配这个技术?这个技术(框架或类库)带来的维护成本和它所解决的问题相比,是否值得?还是只是因为想要学习它而使用它?

相关文章:

  • 清楚数据库中的全部数据并将ID归零
  • Java Web项目开发到底需要掌握哪些技术?
  • C# 判断时间段是否相交
  • lyo blog3D文章集锦
  • 使用c# Mongo Driver 完成嵌套查询
  • 过渡到SSAS之一:简单模型认识
  • 谈谈团队合作中的设计与优化
  • 页面元素的定位scrollintoview
  • C#将子线程附加在当前线程之后执行
  • 过渡到SSAS之二:服务的发布
  • MongoDb 中的PageFilter
  • 新浪换标,也许应该做点什么了
  • 使用joint.js 绘制图
  • myfaces与mojarra(JSF RI)处理空属性类型的不同
  • jsonp 示例
  • $translatePartialLoader加载失败及解决方式
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • JavaScript DOM 10 - 滚动
  • Laravel Mix运行时关于es2015报错解决方案
  • Laravel 实践之路: 数据库迁移与数据填充
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux后台研发超实用命令总结
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • session共享问题解决方案
  • Spring Cloud Feign的两种使用姿势
  • SQLServer之创建数据库快照
  • swift基础之_对象 实例方法 对象方法。
  • Twitter赢在开放,三年创造奇迹
  • 大数据与云计算学习:数据分析(二)
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 利用jquery编写加法运算验证码
  • 如何合理的规划jvm性能调优
  • 算法-图和图算法
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 国内开源镜像站点
  • 说说我为什么看好Spring Cloud Alibaba
  • #if #elif #endif
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #stm32整理(一)flash读写
  • (10)ATF MMU转换表
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (九十四)函数和二维数组
  • (学习日记)2024.01.19
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net Core和.Net Standard直观理解
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .Net语言中的StringBuilder:入门到精通
  • ??eclipse的安装配置问题!??
  • @Query中countQuery的介绍
  • [ C++ ] template 模板进阶 (特化,分离编译)