作者:朱金灿

来源:http://blog.csdn.net/clever101

临近年终,公司请来一位讲师来给我们作培训,题目记得是设计匠艺。说实话,我做不到像讲师那样,快讲完课时能将自己所讲的内容都有条理整理一遍。我就大致讲讲我所做笔记的一些内容吧。总的来说这位讲师的实践经验很丰富,讲得也很生动。

观点一:代码的可扩展性和可维护性是矛盾的。这是讲师在上课之初所提的一个观点。说实话我是不太同意这个观点的,一方面加强了代码的可维护性确实加大了代码的维护难度,比如使用了模式可能加大的系统复杂性,但很多时候加强了代码的可扩展性同时也方便了代码的维护,比如扩展性增强了一旦出错你也更容易找到自己所要维护的代码了。这个我相信经常做代码重构的同学都有这个体会。

观点二:优秀代码的三个特性:沟通、简单和灵活。其实这三点都和代码的可维护性息息相通的,所以讲师的下一个观点是代码的维护成本远远大于开发成本。这个应该是符合实际的,问题是限于国内的IT环境,有多少企业重视对技术的积累呢?如果对技术积累重视起来,也就会真正重视代码的维护了。有志向的企业都应朝这个方向努力。

观点三:代码就是设计。这是一个说得都有点滥俗的观点,但却引不起我们重视的观点。以前我总是幻想维护文档总是越多越好。现在发现文档存在很多弊端的:首先是代码和文档的脱节问题,比如代码更新了,而文档却没有及时更新;其次是即使你的文档写得很好,可是维护人员会看你的文档吗?而代码是无论维护人员喜不喜欢看,都必须去看。现在我想除了一些涉及数学的复杂的算法需要文档说明之外(而且还必须使用工具和代码绑定在一起),应该做到代码就是设计,就是文档!

观点四:面向对象的三个要素是角色、职责和协作。所有的设计模式都是解决职责问题。。首先有职责,才有设计模式。这些观点非常精彩。我想重读四人帮的《设计模式》,一定会从这个角度思考问题。

观点五:设计模式是一种封装技巧,但封装并不仅仅是信息隐藏。

观点六:设计手法:抽离(抽象隔离),间接和一致。

观点七:对于大多的软件项目或移动开发领域,需要做到快速迭代。快速交付一个可用的产品比什么都重要。不要祈求需求不发生变化(有一个笑话:任何需求都发生三次以上,需求发生两次变化的需求分析人员死在用户更改需求的路上)。正因为变化必然要到来,就要争取变化早点到来,而快速的交付就能带来更多的用户反馈,从而更好应对变化。

观点八:持续构建必须和一系列的测试结合起来,比如单元测试、压力测试等等。

观点九:UML主要是一种交流工具。讲师推崇一种简单UML加测试驱动开发的开发模式。可测试实际上为软件开发活动树立一条红线。

观点十:讲师认为单元测试非常好。他认为单元测试能及时提供反馈;单元测试让你的代码更加健壮;单元测试是有用的设计工具;单元测试是让你自信的后台;单元测试是解决问题的探测器;单元测试是可信的文档;单元测试是学习的工具。(搞得现在我对单元测试非常感兴趣。)

我的一些疑问:如果提倡快速迭代小版本交付,功能开发的优先级由谁决定,怎么决定?软件的设计比如界面设计是否都由开发人员完成?

公司内部培训的一些收获相关推荐

  1. 谈谈我2013上半年在公司内部培训的经历

    在这里谈谈我在今年上半年在公司内部培训实习生(今年七月毕业的学生)的经历. 今年三月份我担任公司技术培训的负责人,回顾培训历程,做个总结. 公司目标是通过培训能让实习生快速掌握知识,成为一名优秀的技术 ...

  2. 基于SSM实现公司内部培训系统的开发

    基目编号:BS-XX-078 运行环境: 开发工具:IDEA  / ECLIPSE 数据库:MYSQL5.7 应用服务器:TOMCAT8.5 JDK:1.8 后台开发技术:SSM框架+activiti ...

  3. mysql原理、索引、优化-【公司内部培训】

    一.sql的执行过程 注意:mysql8.0 已经移除了查询缓存的功能 引擎层 引擎的选择是可以针对表级别的,每个表都可以单独设置存储引擎: 最常见两种: InnoDB(默认).MyISAM 其它:M ...

  4. 公司内部培训系统搭建

    铁路运量的逐年递增,安全运输生产对人力资源的需求不断增加,机车乘务员的培养工作也需要重视起来,培训工作关系到整个运输系统畅通有序.由于机车乘务员培养具有培训量大,周期长,且无法集中组织等特点,一直以来 ...

  5. iBATIS框架理论学习篇(公司内部培训文档)

    iBATIS框架学习[20070409] 作者:kimsoft 自己整理的对iBATIS框架的一些简单理论知识,有助于进一步了解和深入学习iBATIS框架,错误或不当之处,在所难免. 1.什么是iBA ...

  6. 写了一个PPT,用于公司内部培训

    匆忙写成,以后会慢慢补充 请用力一击 中等规模的并发程序设计 http://files.cnblogs.com/jobs/2007-5-9-concurrent-ppt.rar 2007-5-10修改 ...

  7. 接口测试-公司内部培训资料

    1.Jmeter接口测试案例1--通过物联网接入基础平台登录来了解http请求等: 下面来看使用Jmeter怎么来做HTTP的接口请求,在请求中使用浏览器的network获取请求的信息. 通过火狐浏览 ...

  8. 微软公司内部培训程序员资料---操作矩阵类

    /** 操作矩阵的类 Matrix* * 周长发编制*/ using System;namespace MSAlgorithm {public class Matrix{/// <summary ...

  9. 微软公司内部培训程序员资料---求解线性方程组的类

    /** 求解线性方程组的类 LEquations* * 周长发编制*/using System;namespace MSAlgorithm {public class LEquations{/// & ...

最新文章

  1. 有源汇上下界最小费用可行流 ---- P4553 80人环游世界(拆点 + 有源汇上下界最小费用可行流)
  2. p和li之间的应用上的区别
  3. matlan数据分析库函数
  4. Cannot add product to Opportunity in Fiori - RFC error
  5. python分析推特_用Python关注者的关注者抓取Twitter数据的最快方法
  6. Python——PyCharm常用快捷键
  7. Java速成(10/30)-多态
  8. [网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
  9. 征战光伏沙场 第三方如何“护航”电站?
  10. 正则表达式元字符查询
  11. 兼容chrome、firebox、IE阻止冒泡问题
  12. pointpillars--kitti训练
  13. 【100%通过率】华为OD机试真题 C++ 实现【简单的自动曝光】【2022.11 Q4 新题】
  14. 从sql注入到getshell (内附sqlmap的os-shell遇到中文路径的解决办法)
  15. veket linux应用软件,veket linux下载
  16. 数据结构与算法分析-二叉树,树和森林
  17. prometheus监控报警部署Alertmanager
  18. 深入理解Plasma(二)Plasma 细节
  19. 企业做网络营销的步骤有哪些呢?
  20. 计算机行业哪个会议论文最好,《第三次全国电子计算机专业学术会议论文选集》...

热门文章

  1. 易语言单窗口单ip教程_手游搬砖经验单窗口单IP防封黄金法则
  2. 操作系统实验2——高响应比调度算法
  3. 信赖域算法-The Dogleg Method(含例题及Python实现)
  4. 关于虚拟化层-Windows镜像的测试
  5. Facebook营销常犯的错误,看看你中招了吗?
  6. 云计算虚拟化技术与应用
  7. win7环境下如何关闭IIS7服务
  8. 在应用中嵌入Python - lf8289的专栏 - CSDNBlog
  9. 汤晓丹的第四版计算机操作系统--第八章总结概述
  10. eprime提示计算机内存不足,线程数不足旗舰平台拒绝旗舰表现_技嘉 G1.Assassin 2_主板评测-中关村在线...