1、对于公用的类型定义,要单独抽取出来,放到单独的DLL中。
2、通过大量定义interface接口,来提高模块化程度,不同功能之间通过实现接口来面向接口编程。
3、如果项目中存在很多非常相似,但是又存在一些差异的类,最好的办法是进一步抽象,得到它们的共同基类,将相同点放到基类中实现,然后通过派生类实现差异。使用方根据实际情况决定自己要使用的类。
4、项目中,经常会遇到一些全局范围内有且只有一个实例的类,该怎么办呢?此时,请一定要想起单例模式。定义一个类,该类只开放一个静态方法GetInstance,在该方法中,要么直接返回已经创建过的实例,要么创建一个新的返回其引用。
5、对于异常捕获来说,并非将全部代码都放到try-catch中就是好的做法,好的做法是只将必要的代码,以及可能会出现异常的代码放到里面,同时为了避免未捕获的异常导致程序意外退出,需要在Program中添加捕获未处理异常的代码,此时还应该区分UI线程和工作者线程都可能产生未处理的异常,程序应该同时捕获并处理它们(记录到日志)。
6、对于使用this.invoke转发工作者线程处理结果,或者处理的中间状态信息的地方,不需要加try-catch。如果要加,只需要加到invoke之后即可。
7、有时候,界面上可能存在设计时和运行时状态不一样,请想起来DesignMode属性。
8、基本上,每个项目都会涉及系统的一些运行参数的序列化问题。常见的两种处理方案:
       1、使用ini来保存。
       2、可以写个类,使用静态属性来保存所有设置,然后提供save方法,load方法,reload方法,然后将值都序列化到二进制文件中去。

最新文章

  1. 检索Google Maps地图位置(小训练)
  2. Python之路Day17-jQuery
  3. jquery attr()方法
  4. 重写保存按钮save事件
  5. eclipse颜色 字体
  6. SQL in与exists
  7. SET ? DECLARE
  8. c#委托之最大
  9. JAVA基础知识之IO-File类
  10. HackerRank "Components in a graph"
  11. MongoDB - MongoDB CRUD Operations, Query Documents, Project Fields to Return from Query
  12. MVC权限模块
  13. Genealogical tree(拓扑结构+邻接表+优先队列)
  14. ZOJ 3622 Magic Number(数)
  15. IBM即将倒闭,微软也从崩溃18个月
  16. socket通信的json数据传输与获取
  17. SAML2.0 协议初识(一)
  18. Windows转Linux总结(附带常用Linux命令-LinuxMint)
  19. 深度学习原理与框架-图像补全(原理与代码) 1.tf.nn.moments(求平均值和标准差) 2.tf.control_dependencies(先执行内部操作) 3.tf.cond(判别执行前或后函数) 4.tf.nn.atrous_conv2d 5.tf.nn.conv2d_transpose(反卷积) 7.tf.train.get_checkpoint_state(判断sess是否存在
  20. node.js介绍和npm的使用

热门文章

  1. 干货-Spring3.2.3的所有注解
  2. js学习笔记 -- 函数
  3. java编程--03介绍关于日期常用的计算
  4. PlayMaker Destroy Self 和 Destroy Object 和 Set Visibility
  5. Collections练习之对字符串先折半,再取最长的一个
  6. secureCRT配置——针对Home、End无法使用
  7. HDU 4185 ——Oil Skimming——————【最大匹配、方格的奇偶性建图】
  8. 日期API
  9. centos系统安装mysql
  10. java使用jdbc连接数据库步骤