项目 | 内容 |
---|---|
这个做业属于哪一个课程 | 软件工程 |
这个做业的要求在哪里 | 第一次做业 |
这个做业在哪一个具体方面帮助我实现目标 | 读构建之法,学习软件开发的不二法门 |
在结对编程的模式下,一对程序员肩并肩、平等地、互补地进行开发工做。他们并排地坐在一台电脑前,面对同一个显示器,使用过同一个键盘、同一个鼠标一块儿工做。
看这本书以前一直觉得结对编程就是两我的将写好的程序凑一下就能够了。可是本书彻底给我告终对编程的新概念。可是我对书中提到的结对编程所须要的编程环境仍是有一些怀疑,也就是感受上面的这段说的有些过于苛刻了。我想也是指意思上的吧,而不是彻底现实的工做中的吧,若是真的是那样的话,那程序员只能在公司结对编程了。那岂不是每天要加班,并且很晚。若是公司直接提供住的地方倒还好_〆(´Д` )。程序员
随着时间的推移,这几类功能也会发生变化,例如手机的多点触摸曾经是“惊喜”的功能,后来是全部厂家竞争的核心功能,再后来已是最基本的功能了。
随着科技的进步,一些早期的核心技术注定会成为随处可见的通常产品。这里面有两点,一点是,总有一些核心技术是没法替代的,可是这些技术更偏向于底层技术层,好比手机摄像机处理图片的算法。另外一个是给你“惊喜”的人老是不断给你“惊喜”,这里面与公司创新文化有关。而不是仅仅局限于,全部产品终将会成为十分大众化的产物。我认为这里面还有一个十分重要的因素那就是商业模式,好的商业模式每每会是简单的产品获取一个长期的优点,好比当时的谷歌提出浏览器,虽然他们的市场也靠算法打开,可是盈利倒是靠着谷歌的商业模式的。算法
函数最好有单一的出口,为了达到这一目的,可使用goto。
在上学期的编译原理的课程中,于同窗交流中,发现他确实用到了goto语句,并且当时以为他用的goto语句没什么问题,还十分的方便。虽而后来没有继续和他讨论这个问题,可是不用goto语句使为了保证代码的总体结构,我想在较大工程中,更应该考虑到项目的总体性,因此咱们更应该不使用goto才对啊。固然这都是理论上的结果,没在工程中实践过,因此可能有其余问题我不知道。编程
咱们的软件要为新手和专家提供可定制化的设计。一些操做方式,如快捷操做,用户能够自行调整。咱们还应该为存在某些障碍的用户(色弱、色盲、盲人、听力有缺陷的用户、操做键盘鼠标不方便的用户等)提供必定程度的便利。对于长期使用某个软件的用户,软件应该能适应用户的使用习惯,让用户越用越顺手,最后产生感情上的好感和忠诚度。
对于这里的观点。个人疑问是,一个产品首先是面对广大用户,所谓广大用户,我想应该是最普遍的人群。因此咱们在产品开发的时候,某些产品是针对全部用户的。好比说微信,人人都能用上微信,可是仍是有一部分人,(接触手机少的老年人)他们使用微信起来仍是有一些麻烦。因此老人通常仍是偏向于用电话。那么为何微信不设计的更加对老人友好一些呢?我认为这里面须要考虑到产品自己面对的人群。对于又特殊需求的人群来讲,咱们能够专门的为其设计其它的产品,若是一味的在针对大众的产品上添加其它功能的话会使产品变得臃肿。固然,这只是我一己之见,实际的开发中应该会有更多须要权衡的问题。浏览器
软件团队里除了能写代码、测试代码和画图作设计的成员,还有一类角色,不作上面这些事情但也很重要,咱们叫他们项目经理——PM。
对于产品开发,在我看来这条链会是,客户`产品经理工程师产品经理客户的样子,那么项目经理应该要在实现于功能之间作到最好的权重,使一味的追求用户的体验仍是考虑到开发过程的构架,或者说是是否有必要开发呢?安全
这个想法看起来没什么错,咱们不就是为了成为某个领域的专家,才来上学,拿学位,但愿拿到学位以后成为专家,而后再开始这个领域的创新?可是统计数据代表,70%的创新者说,他们最成功的创新,是在他们的拿手领域以外发现的。
对于这个观点,我想的是,各个行业之间是有必然的联系的,每每存在的状况是,咱们处在这个行业,可是咱们的观点也会对另外一个行业带来创新,虽然这只是少数状况下。可是有一个不可忽略的一点就是,关于创新的模式。没有人说,不是该领域内的创新才会对这个行业的发展起做用。好比说,有些创新每每只是商业模式上的,并非关系到核心的技术。微信
软件最先是由Alan Turing在他1935年的关于可计算数字的论文中提出的,但他所指的软件并非咱们今天所理解的软件。最先在工程背景下出版的术语“软件”是在1953年8月由Richard R. Carhart在兰德公司提出的。函数
“软件工程”一词第一次出如今1965年6月出版的“COMPUTERS and AUTOMATION”中。玛格丽特·汉密尔顿(Margaret Hamilton)提出了将该学科命名为“软件工程”的想法,以此做为赋予其合法性的一种方式。那时人们对于软件不过重视,对它的印象也是一种艺术,而不是一门科学。可是Margaret Hamilton却坚信软件是艺术和科学地综合,应该为发明者争取应得的尊重,最后她也作到了。学习
Linux kernel开创者和Git的开发者——Linus说,Git使用了SHA-1并不是是为了安全性,而是为了数据的完整性;它能够保证,在不少年后,你从新checkout某个commit时,必定是它多年前的当时的状态,彻底一摸同样,彻底值得信任。测试
主流项目管理软件 | 优势 | 缺点 |
---|---|---|
Microsoft TFS | 方便小团队对于需求、进度的掌握,集成了项目管理、版本控制、BUG追踪等功能,且与VS完美接合。 | 搭建复杂,硬件需求高 |
GitHub | 功能极其齐全,方便交流合做 | 学习成本较高,须要经过较长时间的学习、熟悉后才能流畅使用各类命令 |
Trac | 扩充性好,权限体系完备,较为灵活 | 不支持多项目,汉化不完整,中文支持较差 |
Bugzilla | 免费,且有中文支持 | 只能管理缺陷,功能较少 |
Apple XCode | 自动建立分类图表,撤回、重作、保存等经常使用功能使用方便,不须要命令、代码 | 在版本更新后,部分插件可能失效,致使诸多问题。 |
Mercurial | 有revset,拓展性好,部署较为简单 | 强制向下兼容 |