kobewzl

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

《构建之法》第五次作业

写一篇800字的心得体会,列出五到十个不懂的地方

 

我是拒绝说什么心得体会的,因为我觉得那东西要说出来总是不知从何入手,表达能力不够丰富,往往言简意赅,达不到要求。

于是我拿起目录,我想按着目录的章节来说体会,会在言简意赅的前提下,表达我的体会。

 

第一章   概论   ——>软件是什么?软件工程是什么?

以往对软件的认识总是停留在应用层方面,比如一个系统(图书管理系统、教务管理系统等等)、一个app,现在认为,不应该只把眼光放在应用层方面上,比如用python链接opencv算法做一个人脸识别系统。软件不仅仅是增删改查。

要实现一个好的软件一个人是搞不定的,或者说一个人想要搞好一个软件,要么这个软件规模相对较小,要么这个人花费很长的时间。实际开发过程中总是多人开发,要用到Github、svn等版本管理。于是沟通就显得尤为重要,这是为什么要做备注的一个原因。开发过程容易受个人眼光的限制,看不到软件的缺陷,这时需要测试,近几年企业流行的测试驱动开发,tdd等等。我做过一个项目,项目分为好几期,一期做完,第二期是在第二年才开工,这时间需要维护。    如果我继续这样零零散散的说下去的话,我相信看我这篇博客的助教会看不下去,所以我得说得有条理些,开发过程也是一样,于是将软件工程化的思想就出现了,软件工程就是如此,细化软件的整个周期,有规划的分而治之。

 

第二章  个人技术和流程  ——>开发中的测试

假设我是一个做开发的,在个人开发过程中,想借助软件测试的一些小技巧,让我开发的产品更完善。由于我很少用debug,插桩成为我最常用的,插不同的桩,根据print输出,判断代码的走向。但这有个问题,一旦代码量多了之后,插桩很浪费时间,所以debug还是得多使用。还有是单元测试,这也是开发过程中能做的。还可以写测试用例,当然不需要很规范的写,只要写出简单的例子,通过测试用例来开发。

 

第三章  软件工程师的成长  ——>要写什么样的软件

开发方向:菜鸟——>写出一个应用——>写出一个单核2G内存服务器每分钟接收两万次并发请求跑得动的应用——>写出一个符合企业的需求、商业价值、耗能低的应用。

 

第五章  团队和流程 

我对书中提到的那几个模式都表示赞同,但我发现那几个模式都团队前提是每个人都要有一技之长,要求每个成员都能发挥出一定的价值,无论是助攻还是主力输出,这样的团队无论是组成“交响乐”还是“主治医师”,每个人发挥出自己的作用,团队才能凝聚。一个综合性项目的开发人员,分为前端,后台,移动端(主流的有iOS、android、微信公众号)。

“写了再改”模式是我们学生一直在用的模式。

 

第八章  需求分析  ——>软件做什么

我做过一个app,对json的获取并进行对象化,期间服务端的json格式改了几次,每次都要把十几个对象模型重新适配,那么一旦需求不明确,客户要求更改,那对程序猿来说,花在更改需求上面的时间比开发来的多。可见,需求的准确定位决定一个项目的走向。

 

第十二章  用户体验  ——>傻瓜式

我准备升win10了,为什么现在才想升级?因为前几天微软的一个讲座,微软的工作人员告诉我,升级win10对以往的软件没有任何影响,在设计win10的时候微软和各大产商联系合作,使得win10具有对很多软件的兼容性,即使升级系统也不会对以往的安装有影响,除非你的软件是骨灰级别动软件,包括jdk环境、oracle这样的数据库软件也不受影响,这一下子消除了我的担心,因为我担心升级了之后需要花大把的时间对软件进行重装,这就是用户体验的一个很好的例子 。

同样的,开发过程中会用到各种缓存、异步、并发来提高用户体验。

 

 

问题一:

一个网站如何做到高并发请求?比如每分钟接收两到三万次的并发请求。

 

问题二:

说到单元测试就想到junit,但junit是java的,其他软件的单元测试工具有哪些?比如iOSapp、php

 

问题三:老师、助教们现在在读什么书?

 

问题四:个人能力有限,实在看不出这本《构建之法》和其他软件工程书有何太大的区别,请老师助教能讲几点。

  区别一:书中举了大量的比喻,形象地阐述问题

 

问题五:开发过程中会遇到技术和需求冲突的情况,比如android和iOS的产品要求界面要一致,这往往需要用一些繁琐的步骤来实现,此时根据老师和助教以往的经验,是技术妥协还是需求妥协?

 

 

 

 

 

 

 

 

posted on 2016-05-23 08:01  kobewzl  阅读(164)  评论(0编辑  收藏  举报