《构建之法》读后感 二

个人感受部分:

  01. 过去的我对自己的职业没有一个规划,认为读大学就是拿毕业证,至于以后找到什么样的工作从来没有考虑过。在拿到一个软件作业时,总是在设计阶段就把它想得特别完美,想让他没有任何出错的做出来,不分主次,想解决所有的问题。

  02. 如果没有职业规划,每天过的就像在混日子,浑浑噩噩,无所事事。不分主次想解决所有问题,到最后只能是连最基本的项目也不能完成,一直处于自己的设想中,当设想破灭,就得焦头烂额,忙东忙西,还达不到效果。

  03. 下次拿到任务时,一定要认真分析,杜绝分析麻痹,一定要分清楚主次。哪些是我的主要功能我必须认真面对,次要的方面放在后面解决。

 

读后感:

  上一篇读后感中详细介绍了前言和概论,对本书的主要内容没有进行很多的阐述,在这篇读后感中将会仔细的分析和体会主要内容。

  看了之前的部分,其实我们已经摩拳擦掌,跃跃欲试的想要实际写一个软件了。但是,只有一腔热血是不够的,还必须保证在此之前,了解一些基本概念的技术,即单元测试、回归测试和效能分析工具。通过阅读我大概了解了这些技术。

  1.单元测试。顾名思义,将自己的代码分解成一块一块的部分进行测试,确保这一部分没错后再进行下一步的测试,这样就可以很快的找出错误所在单元,有目的性的进行修改代码,修改效率将会大大提高。但需要注意的是,代码的作者是最了解代码目的、特点和实现的局限性。所以,写单元测试没有比自己更合适的人选了,最好是在设计的时候就进行测试。

  2.效能分析工具。让自己的程序跑的又快又好,是每一个程序员都梦想的事儿,算法复杂度比别人少一个数量级的话,是一件很值得骄傲的事情。

  3.个人开发流程。一个软件工程师接到一个任务后应该如何做,这就要有一套个人开发流程来指导你。CMU的专家们针对软件工程师有一套自己的模型,叫做PSP模型。

  4.实践-设计有实际意义的软件工程作业。实践是整本书的重中之重,当然,设计作业不是学生的工作,但是如何实践就是我们的任务了。不能空谈代码,纸上谈兵,应该实打实的去完成一个软件工程项目,才会明白和嘴上说的软件完全是两回事

  了解大概技术后,我们就要开始自己的生涯了。我相信绝大多数软件工程的学生今后也要从事写代码的工作,所以我们一定要注重个人能力的发展,在大学阶段不断提高自己。那么,如何才能衡量一个软件工程师的技术和能力呢?衡量的参数有哪些,只有了解这些,我们才能看到初级工程师如何成长。书中指出几点衡量的标准:a.项目有多大?b.花了多少时间?c质量如何?d.是否按时交付?作者认为一个初级的程序员有以下几种成长:1.积累软件开发相关的知识,提升技术技能。2.积累问题领域的知识和经验。3.对通用的软件设计思想和软件工程思想的理解。4.提升职业技能。5.实际成果。

  毕业之后,大多数工程师都要在团队的环境中工作,怎么样才是一个合格,甚至优秀的队员呢?我十分认同作者的看法,因为在我们自己的结对开发和团队开发过程中,对队友的期望和表现与作者不谋而合,深有体会。团队对成员有以下要求:交流、说到做到、接受团队赋予的角色并按照角色的要求工作、全力投入团队的活动、按照团队流程的要求工作、准备、理性的工作等等。人非圣贤,作为刚刚入门的软件工程师,我们一定存在着很多的思维误区:分析麻痹、不分主次,想解决所有的问题、过早优化、过早扩大化/泛化。其中我感觉在自己身上有第二点的问题,不分主次,想解决所有的问题。在进行软件开发时,恨不得自己的软件就是最完美的,在设计阶段就实现所有的问题,最后经常导致项目延时,让我很迷茫。

  我们都朝着靠写代码生存,这就涉及到了职业发展问题。21世纪以来,中国大陆高校每年招收六百万大学生,其中大约百分之十是在学习各种it相关的专业(计算机科学与技术,计算机工程,计算机软件等)。那么他们都是以什么样的心态对待这个职业的呢?作者给我们列举了人们对待职业的态度的几种等级:1.临时的寄托或工作。有些人因为专业调剂来到这里,根本就谈不上热爱,只是需要一个文凭来作为敲门砖,有些人是临时找到这样一份工作,并不打算做长久,他们就处于低动力,低技能的状态。2.工作。作为一个人来说,我们都是现实一点。我们离开了父母的庇护,都得寻得一份工作来养活自己,甚至养活家人。一些人留在这个职业里,只不过是因为他不会做别的,如果有别的营生赚钱,那就会跳到别的地方去。3.职业。在工作的基础上,如果有足够的职业道德和职业规划,那么工作就是一份职业。只有在这个层次上可以开始谈有意义的“职业发展”。4.投身的事业。把软件项目相关的目标作为长期的承诺,碰到困难也不退缩,一直坚持到完成任务。5.理想的呼唤。一些人觉得这是理想的呼唤,通过软件可以改变世界,他们主动寻找机会,实现自己的理想,他们把写代码当做了一种信仰,不再是养家糊口的工具。

  第四章和第五章分别讲述了两人合作和团队开发。我们这学期的任务就是一个两人合作的地铁查询系统和小组开发一个app。我知道结组结对对软件开发来说的重要性,分工合作如果流畅,将事半功倍,代码效率大大提高。比如两个人合作,一个人擅长写前台html、css、js代码,一个擅长后台连接数据库处理数据的代码,这样分工合作的话,软件就会完成的快。最重要的一点我认为是两人或几人结对开发,可以互相激励,大家一起努力,也可以给自己带来信心,共同进步。

  最后作者给出了一个新的概念“敏捷流程”,在这之前我从来没有听说过的名词。敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。希望自己能在后面的项目中真正理解敏捷开发,而不是仅仅明白定义。

 

转载于:https://www.cnblogs.com/Aduorisk/p/11031787.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 简单实现圆角,Android 实现圆角图片的简单实例

Android 实现圆角图片的简单实例实现效果图:本来想在网上找个圆角的例子看一看,不尽人意啊,基本都是官方的Demo的那张原理图,稍后会贴出。于是自己自定义了个View,实现图片的圆角以及圆形效果。效果图:Andr…

zookeeper介绍及集群的搭建(利用虚拟机)

ZooKeeper ​   ZooKeeper是一个分布式的,开放源码(apache)的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase、dubbox、kafka的重要组件。它主要用来解决分布式集群中应用系统的一致性问题…

pythondict初始化_利用defaultdict对字典进行全局初始化。

通常我们在操作字典时,如果读取的键未被初始化,则会抛出KeyError的错误,这个是我们都很熟悉的。那么一般的解决方式是使用异常处理或者是调用字典的get方法来避免出现这个异常。 可以看到,这两种写法都比较繁琐,第二种…

标准库类型String

定义和初始化string对象 初始化string对象方式 string s1 默认初始化,s1是一个空串 string s2(s1) s2是s1的副本 string s2 s1 等价于s2(s1), s2是s1的副本 string s3("value") s3是字面值"value"的副本,除了字面值最后的那个…

轻量级数据库中间件利器Sharding-JDBC深度解析(有彩蛋)

讲师介绍张亮 当当架构部总监 负责分布式中间件和私有云平台建设 目前主导开源项目:Elastic-Job及Sharding-JDBC 主题简介: 1、关系型数据库中间件核心功能介绍 2、Sharding-JDBC架构及内核解析 3、Sharding-JDBC未来展望 一、关系型数据库中间件核心功…

python字典嵌套字典的情况下获取某个key的value

最近在用python写接口的测试程序,期间用到解析字典获取某个key的value,由于多个接口返回的字典格式不是固定的并存在多层嵌套的情况。在字典的方法中也没有找到可直接达到目的的方法(也可能是我对字典的方法了解的不深的缘故),于是自己写了个…

系统在此应用程序堆栈溢出_从部署我的第一个完整堆栈Web应用程序中学到的经验教训...

系统在此应用程序堆栈溢出by Will Abramson威尔艾布拉姆森(Will Abramson) 从部署我的第一个完整堆栈Web应用程序中学到的经验教训 (Lessons learned from deploying my first full-stack web application) I recently achieved one of my long-term goals: deploying my firs…

const 常量_条款03:尽可能使用const

const 允许你指定一个语义约束(也就是指定一个“不该被改动”的对象),而编译器会强制实施这项约束。1、const指针如果关键字const出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量&…

javascript高级程序设计---js事件思维导图

绘制思维软件与平时用的笔记,以及导出功能,这三个问题综合起来,于是我把思维导图分开画 1、js事件的基本概念 2、js事件的事件处理程序 3、js事件的事件对象 转载于:https://www.cnblogs.com/Jamie1032797633/p/10567419.html

jq挑战30天——打字机效果+小程序

<!doctype html><html><head><meta charset"utf-8"><title>基于jQuery实现的打字机效果-jq22.com</title><script src"http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style></…

和 Thrift 的一场美丽邂逅

一. 与 Thrift 的初识 也许大多数人接触 Thrift 是从序列化开始的。每次搜索 “java序列化” “方式”、“对比” 或 “性能” 等关键字时&#xff0c;搜索引擎总是会返回一大堆有关各种序列化方式的使用方法或者性能对比的结果给你&#xff0c;而其中必定少不了 Thrift&#…

instagram技术_Instagram9位科技女孩进行技术采访的主要技巧

instagram技术by Rachel通过瑞秋 Instagram9位科技女孩进行技术采访的主要技巧 (Top tips for technical interviews from nine of Instagram’s tech girls) My job-hunt came to an end a few weeks ago. After endless phone interviews, coding challenges, and on-sites,…

弹出框 每次打开 滚动条置顶_微信置顶文字怎么弄?微信置顶一句话教程

今日支付宝红包支付宝首页搜索511501453马上领取红包(支付宝双十二活动&#xff0c;瓜分15亿红包)(领取后一定要记得使用&#xff0c;不然会浪费的呦&#xff0c;更会影响第二天的领取&#xff01;)奶思靓机“ 一 个 有 用 的 公 众 号 の ”嗨&#xff0c;最近很流行在微信上面…

Python学习_字符串格式化

#!/usr/bin/env python # -*- coding:utf-8 -*-# 百分号格式化 # %[(name)[flags][width].[precision]]typecode # name : 指定占位符的key # flags : - 空格 0 # width : 宽度 # precision : 小数点后保留的位数 # typecode : 必需,数据类型 # 字符串里面有%的时候, %%表示一…

python 3 面向过程编程

python 3 面向过程编程 核心是过程&#xff08;流水线式思维&#xff09;&#xff0c;过程即解决问题的步骤&#xff0c;面向过程的设计就像设计好一条工业流水线&#xff0c;是一种机械式的思维方式。 1、优点&#xff1a;程序结构清晰&#xff0c;可以把复杂的问题简单化&…

在ionic/cordova中使用百度地图插件

在ionic项目中&#xff0c;如果想实现定位功能&#xff0c;可以使用ng-cordova提供的cordova-plugin-geolocation。 但由于高墙的缘故&#xff0c;国内andorid环境下&#xff0c;此插件不起作用&#xff08;ios环境下可用&#xff09;。 国内比较好的是现实使用百度地图提供的A…

django国际化与html语言,Django 国际化

Django 国际化Django 支持国际化&#xff0c;多语言。Django的国际化是默认开启的&#xff0c;如果您不需要国际化支持&#xff0c;那么您可以在您的设置文件中设置 USE_I18N False&#xff0c;那么Django会进行一些优化&#xff0c;不加载国际化支持机制。NOTE: 18表示Intern…

mongo 删除节点_将生产节点/ Express Mongo App部署到AWS —反思

mongo 删除节点在AWS中部署生产Web应用程序的经验教训 (Lessons learned deploying a production web application in AWS) 背景 (Background) This is not a code-based tutorial. It consists of all the things I wish I knew before I started the project and the steps I…

汉诺塔问题递归算法python代码_[python]汉诺塔问题递归实现

一、问题描述及算法步骤 汉诺塔问题的大意是有三根柱子a, b, c&#xff0c;现在a柱有N个盘子从下往上尺寸递减排列&#xff0c;要求&#xff1a; 1. 将a上的盘子移动到c柱上; 2. 每次移动一个盘子; 3. 柱子上的盘子始终必须是大的在下面image.png 汉诺塔问题的经典实现算法步骤…

【硬件】PCB设计步骤

前言 合理的PCB设计步骤&#xff0c;可以减少反复修改的可能性。动手设计PCB前&#xff0c;需要按步就班准备一些资料&#xff0c;即使是小项目。 本文将讲解如何一次性成功地设计一款PCB的常规步骤。 当然&#xff0c;如果是一个系统&#xff0c;则需要按照瀑布式的思路&#…