从2019年7月17日开始,阅读由微软工程师邹欣老师撰写的《构建之法》一书,全书共435页,每天阅读15页,在一个月(30天)完成。每天阅读完成后,需要思考当日的阅读要点和一些思考。 真正让自己感受到积累的效果和伟大! 以下是书的封面: 每日打卡阅读和写作: 7月17日打卡: 阅读页码:1~38页 今天阅读了《构建之法》的前39页。这一节是整个软件工程的概论,邹老师从大家众所周知的命题,程序=数据结构+算法,引出了程序这一概念。然后有用一个实际案例,就是一个家长帮助孩子写了一个每天出数学题的程序,到学校老师提出新的要求,而扩展到一个比较大的系统的软件工程范畴。程序-应用软件-服务 然后又引出了整个软件工程的技术名词: 源程序; 数据; 软件架构; 软件设计与实现; 源代码管理; 配置管理; 质量保证; 软件测试; 需求分析; 程序理解; 软件维护; 服务运营; 软件生命周期; 项目管理; 用户体验; 国际化和本地化; 软件的商业模式; 用户界面设计; 软件开发人员的职业操守; 接着依次提出了自己对软件工程的三个推论 : 程序=算法+数据结构 软件=程序+软件工程 软件企业=软件+商业模式 由此得到一个结论:程序是基本功,但是在算法和数据结构之上,软件工程决定了软件质量;商业模式决定了软件企业的成败。软件从业人员和软件企业的道德规范会极大的影响用户的利益。 然后,通过类比人类对飞机的发展阶段:从玩具阶段,到成熟的产业阶段。作者阐述软件行业也是从简单到复杂的一个发展工程,并且对比了飞机产业与软件产业不同阶段,如果成功或者失败,会引起的不同结果。 在大家对软件工程有一个模糊的概念后,作者用专业化的定义对软件工程做了定义。同时又指出了软件的特殊性(1.复杂性;2.不可见行;3.易变性;4.服从性;5.非连续性) 通过这一天的阅读,对软件工程的了解,也从原来的模糊逐渐清晰。而生在其中的工作人员,也清楚了自己在整个软件工程中的定位,其中很多词汇也是平常工作中耳熟能详的。 期待明天的继续阅读! 每日打卡阅读和写作: 7月18日打卡: 阅读页码:38~53页 作者之前已经对计算机和软件工程有了一个大致的描述,相信大家已经跃跃欲试了。然而,作者给我们读者提了一个醒,就是关于如何去衡量一个软件合格的标准或者评价。答案就是软件测试了! 接下来作者讲解了软件测试的作用和分类. 软件测试的分类: 1.单元测试 2.回归测试 3.功能测试 结合一个例子,作者讲解了这三类软件测试的概念和区别 每日打卡阅读和写作: 7月18日打卡 阅读页码:53~68页 针对之前的软件测试,作者介绍了Vi-sual Studio VSTS 程序性能分析工具; 工具提供两种性能分析方式, 抽样; 注入; 作者首先介描述两种不同方式的优缺点,然后,介绍了如何同时采用两种方式来分析程序的性能。而后,作者又强调:虽然优化很重要,但是如果我们不经分析盲目优化,也许只会是事半功倍。 然后作者开始新的小结讲解个人程序开发的流程。通过一个案例来描述了个人开发流程的模型(psp) 计划 .估计这个任务需要多少时间 开发 .分析需求 .生成设计文档 .设计复审(和同事审核设计文档) .代码规范(为目前的项目制定合适的规范) .具体设计 .具体编码 .代码复审 .测试(包括自测,修改代码,提交修改) 记录用时 测试报告 计算工作量 事后总结 提出过程改进计划 最后阅读了作者的作文部分,一个WC.EXE程序 按照psp模型流程给出了分析方式。 每日打卡阅读和写作: 7月22日打卡 阅读页码:68~83页 第三章作者讲述了软件工程师的成长 重点的学习是: 理论和知识点; 评价软件工程师水平的主要方法; 练习与讨论; 技能的反面; 软件工程师的自我评估 今天作者主要讲述的是关于“软件工程师的成长”的话题。相信这个话题也是所有身处这个行业的工程师们最关注的。 要衡量一个软件工程师的能力,那么必须设计一定的衡量指标。就像衡量一个NBA的职业运动员,或者是一个俱乐部的足球运动员,有很多的衡量指标一样,软件工程师也是有很多的衡量指标的。 作者指出,软件项目的确需要创造性,需要一些意外,一些惊喜。但是,更多的是常规的、可重复的任务。一个成熟的软件工程师应该能够降低任务交付时间的标准方差。如果你能长时间稳定而按时地交付工作的结果,内部和外部的顾客就会对你的工作有信心,更喜欢与你合作。 作者讲述了团队对个人的一些期望点。与PSP想对应的一个概念是TSP(Team Software Process),TSP对团队成员的要求如下: (1)有效的交流; (2)说到做到,按时交付; (3)接受团队赋予的角色并按角色要求工作; (4)全力投入团队的活动; (5)按照团队流程的要求工作; (6)时刻做好准备; (7)理性的工作。 著名的艺术家Chuck Close说:我总觉得灵感是属于业余爱好者的。我们职业人士只是每天持续工作。今天你继续昨天的工作,明天你继续今天的工作,最终你会有所成就。 接下来作者提出了软件工程师的一些思维误区: (1)分析麻痹; (2)不分主次,想解决所有依赖问题; (3)过早优化; (4)过早扩大化/泛化(Premature Generalization)——画扇画,调侃目标和远景。 接下来作者提出了软件工程师的职业发展,指出了专和精的关系,职业成长,自我评估。 接下来作者根据自己对魔方的真实案例,指出了如何准确地评价自己的能力。并且用一个实际的案例,一个简历上写着是“精通”Visual Studio C#编程的大学生,在进行面试时解决的问题,都是一些最最基本的问题。结果,你发现他把时间都花在“解决(低层次)问题”上了,面试官想考察的“算法技能”、“C#程序设计技能”都无暇顾及。 那怎么提高技能呢? 答案很简单,通过不断的练习,把那些低层次的问题都解决了,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。 作者指出,这正好对应教育理论中的三个区域的理论(舒适区,学习区,恐慌区)。 我们不应该一开始就让自己处于恐慌区,这样会极大的打消自己的学习积极性。而应该选择合适的“学习区”来学习,不断构建自己的舒适区,从而扩展学习区,最后在某些领域达到技能的精通,是一个循序渐进的好办法。 本章的最后,作者还是对大家比较熟悉的魔方,来描述不同的精通程度,相对应的魔方的技能。那么作者如何考察一个“精通”魔方的面试者呢: (1)给面试者一个打乱颜色的魔方; (2)要求他把六面还原; (3)如果还原了,要求他把魔方恢复成面试官最初给他的那个混乱的局面,必须一模一样。 每日打卡阅读和写作: 7月24日打卡 阅读页码:83~98页 今天主要阅读的是第四章的部分内容,受益匪浅。作者在本章的题目是两人合作,但是作者主要阐述的内容对我最大的启发是:在今后的工作中,无论是自己团队还是外包团队,一定重视项目开发的习惯或者是规则。要有一套自己公司的代码风格、代码设计规范、代码复审。关于本章的内容,需要再次仔细阅读,加深对程序员代码实现的要求。 每日打卡阅读和写作: 7月25日打卡 10张PPT干货,教你写出一流的文案今天阅读了如何写好一篇文案,作者表达的核心思想是:想写一篇好的文案,最关键的是要掌握背后最核心的方法论。 然后作者从以下几方面叙述了几种逻辑方法论: 1.分解产品属性:基础属性,功能属性 2.分析目标客户:个人属性,工作事业,家庭情况。 3.分析使用场景:购买场景,使用场景,保存场景,维护场景。 4.分析竞争对手:不作为,相同类型,不同类型。 5.如何突出特点:与用户脑中已有的东西产生联系、,利用数字具体,利用视觉化描述让用户能够感知到,突出能给用户带来的利益,唤起用户的某种情绪。 每日打卡阅读和写作: 7月26日打卡 阅读页码:111~131页 |
|
来自: 昵称11458597 > 《软件工程》