前言: 终于写完lab5了,这次lab5是基于lab3的一次实验,主要是王忠杰老师提供了4个大约有50w行的大文件让我们根据自己所选应用读取其中两个并且创建轨道系统. 这次lab5优化的我很崩溃,因为我lab3虽然设计模式都用了,但是是冲着"能跑就行"去做的,完全没有考虑性能的问题,而且lab 3已经过去将近一个月了,我完全想不起来我之前lab3是怎么写的,而且之前为了赶进度没有写注释,写lab5的时候就各种猜自己之前是怎么想的-- 这次lab 5的内容很杂,有利用strategy模式…
​ 2019年春季学期 计算机学院<软件构造>课程 Lab 3实验报告 姓名 刘帅 学号 班号 1703008 电子邮件 1609192321@qq.com 手机号码 目录 1 实验目标概述··· 1 2 实验环境配置··· 1 3 实验过程··· 1 3.1 待开发的三个应用场景··· 1 3.2 基于语法的图数据输入··· 2 3.3 面向复用的设计:CircularOrbit· 2 3.4 面向复用的设计:Track· 4 3.5 面向复用的设计:L· 4 3.6 面向复用的设计:Phy…
2019年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 姓名 刘帅 学号 班号 1703008 电子邮件 1609192321@qq.com 手机号码 目录   1 实验目标概述··· 1 2 实验环境配置··· 1 3 实验过程··· 1 3.1 Poetic Walks· 1 3.1.1 Get the code and prepare Git repository· 1 3.1.2 Problem 1: Test Graph <String>· 1 3.1.3 P…
前言 做完lab5开始做lab6了鸭,哈工大计算机学院的学生永不停歇.在做lab6的时候,我在想移动猴子是锁一整个ladder(ADT)还是只锁一个ladder的一个域Monkey数组呢?这两个好像差不多,然后就开始思考锁一个对象和锁其中一个域有什么区别?如果锁了对象对于方法调用有什么影响?回想起上课老师讲的一个类的synchronized方法之间是mutual excluded我就不太明白这到底是怎么回事 我问了隔壁大佬如果锁了对象,类似于: synchronized (object) { .…
1.Install Junit(4.12), Hamcrest(1.3) with Eclipse 2.Install Eclemma with Eclipse 3.Write a java program for the triangle problem and test the program with Junit. Description of triangle problem: Function triangle takes three integers a,b,c which are…
本篇博文是对于2020春季学期<软件构造>课程的总结归纳,由于原先编辑于word,格式不方便直接导入该博客,可以到本人github中进行自取. https://github.com/zqybegin/Software-Construction…
下面的是学C++时要注意的. 1.把C++当成一门新的语言学习(和C没啥关系!真的.): 2.看<Thinking In C++>,不要看<C++变成死相>: 3.看<The C++ Programming Language>和<Inside The C++ Object Model>,不要因为他们很难而我们自己是初学者所以就不看: 4.不要被VC.BCB.BC.MC.TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言: 5.不要放过任何一个看…
https://talks.golang.org/2012/splash.article Go at Google: Language Design in the Service of Software Engineering Rob Pike Google, Inc. @rob_pike http://golang.org/s/plusrob http://golang.org Contents Abstract Introduction Go at Google Pain points De…
前言 我的本科是读的电子信息工程,研究生跟着老师做项目,参与到深度学习中来,毕业后做了算法工程师,工作之后愈发发现,不论从事什么岗位,基础都很重要,但现在也没有时间再读一遍本科了,自学的话也不知道从何学起,就产生我为什么不试着自学大学里面CS专业课程的念头.我自认为自己算是孜孜不倦的,用学习充实生活是一件多么惬意的事情!最近搜索发现MIT(与我本科学校HIT就差一个字母,缘分)很多课程都开放了!!! 虽然无法去麻省学习挺遗憾的,但可以蹭课(虽然是线上的),也可以稍稍满足一下自己的虚荣心. 勿累此…
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题.虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题. 本文介绍了命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离修改 (Command,增,删,改,会对系统状态进…
下一代云计算模式:Docker正掀起个性化商业革命 作者: 吴宁川  来源: ITValue  发布时间: 2015-09-20 10:41  阅读: 12976 次  推荐: 24                   原文链接   [收藏]   文/ITValue 记者吴宁川 从 2008 年开始进入公众视野,到亚马逊与微软于近期获得 1 亿美元的美国联邦管理局云计算合同,云计算整整走过了 7 年.7 年间,以第一代云计算技术为基础的移动计算.社交网络.大数据等新信息技术在全球商业领域掀起了一…
软件的可维护性和可复用性 知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成: 过于僵硬(Rigidity)  过于脆弱(Fragility)  复用率低(Immobility)  黏度过高(Viscosity) 软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质: 可扩展性(Extensibility)  灵活性(Flexibility) 可插入性(Pluggabil…
Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstitions cheat sheet Introduction to Deep Learning with Python How to implement a neural network How to build and run your first deep learning network Neur…
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,…
原文来自于:http://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题.虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题. 本文介绍了命令查询职责分离模式(Command Query Resp…
作者: 吴宁川  来源: ITValue  发布时间: 2015-09-20 10:41  阅读: 10008 次  推荐: 16   原文链接   [收藏] 文/ITValue 记者吴宁川 从 2008 年开始进入公众视野,到亚马逊与微软于近期获得 1 亿美元的美国联邦管理局云计算合同,云计算整整走过了 7 年.7 年间,以第一代云计算技术为基础的移动计算.社交网络.大数据等新信息技术在全球商业领域掀起了一场新商业运动,这场商业运动创造出以消费者和用户为核心的个性化商业模式. 从去年开始席卷云…
查询职责分离(CQRS)模式 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题.虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题. 本文介绍了命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离修改 (Comman…
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本. 这7条原则分别是:开闭原则.里氏替换原则.依赖倒置原则.单一职责原则.接口隔离原则.迪米特法则.合成复用原则. 接下来是对这7个原则的详细介绍. 开闭原则(OCP,Open Closed Principle) 定义 开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他…
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,…
Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scattered across the internet. This list is an attempt to bring to light those awesome courses which make their high-quality material i.e. assignments, lect…
1.软件工程的定义 软件工程是将系统化.规范化.可度量的方法应用于软件的开发.运营和维护上,也就是将工程方法应用于软件上,并对这些方法的研究. 2.软件危机(software crisis) 软件危机(software crisis)是由于计算机能力的快速增长和无法解决的问题的复杂性.随着软件复杂性的增加,很多软件问题由于现有方法的不足够而产生. 软件危机的原因与硬件的整体复杂度和软件的发展过程有关,主要原因是计算机的计算能力超过了程序员有效利用这些计算能力的能力.软件危机主要表现在以下方面:…
下一代云计算模式:Docker正掀起个性化商业革命 作者: 吴宁川  来源: ITValue  发布时间: 2015-09-20 10:41  阅读: 14052 次  推荐: 26   原文链接   [收藏]   文/ITValue 记者吴宁川 从 2008 年开始进入公众视野,到亚马逊与微软于近期获得 1 亿美元的美国联邦管理局云计算合同,云计算整整走过了 7 年.7 年间,以第一代云计算技术为基础的移动计算.社交网络.大数据等新信息技术在全球商业领域掀起了一场新商业运动,这场商业运动创造出…
| Main | Site Index | Download | mimetic A free/GPL C++ MIME Library mimetic is a free/GPL Email library (MIME) written in C++ designed to be easy to use and integrate but yet fast and efficient. It is based on the C++ standard library and heavily us…
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题.虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题. 本文介绍了命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离修改 (Command,增,删,改,会对系统状态进…
原文链接:https://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题.虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题. 本文介绍了命令查询职责分离模式(Command Query Resp…
第1章 重构, 第一个案例 1.1 起点 1.2 重构的第一步 1.3 分解并重组 statement() 1.4 运用多态取代与价格相关的条件逻辑 1.5 结语 第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的难题 2.6 重构与设计 2.7 重构与性能 2.8 重构与性能 2.9 重构起源何处 第3章 代码的坏味道 3.1 Duplicated Code (重复代码) 3.2 Long Method (过长函数) 3.3 Large…
I 开篇 1. 绪论 II 离散数学 2. 数 (已看) 3. 集合 4. 笛卡尔 5. 类型 6. 函数 7. λ演算 8. 代数 9. 数理逻辑 III 简单RSL 10. RSL中的原子类型和值 11. RSL中的函数定义 12. 面向性质与面向模型的抽象 13. RSL中的集合 14. RSL中的笛卡尔 15. RSL中的列表 16. RSL中的映射 17. RSL中的高阶函数 IV 规约类型 18 RSL中的类型 19. 应用式规约程序设计 20. 命令式规约程序设计 21. 并发式规…
软件工程的定义 1993年,电气电子工程师学会(IEEE)给出了一个定义:"将系统化的.规范的.可度量的方法用于软件的开发.运行和维护的过程,即将工程化应用于软件开发中". 阅读经典名著"人月神话"等资料,解释 software crisis.COCOMO 模型. Software crisis:软件危机是落后的软件生产方式无法满足迅速增长的计算机软件需求, 从而导致软件开发与维护过程中出现一系列严重问题的现象. 这些严重的问题阻碍着软件生产的规模化.商品化以及生产…
问题导入 我想对于大家来说,虚拟函数并不能算是个陌生的概念吧.至于怎么样使用它,大部分人都会告诉我:通过在子类中重写(override)基类中的虚拟函数,就可以达到OO中的一个重要特性——多态(polymorphism).不错,虚拟函数的作用也正是如此.但如果我要你说一说虚拟函数被声明为public和被声明为private/protected之间的区别的话,你又是否还能象先前一样肯定地告诉我答案呢? 其实在一开始,我和大家一样,都喜欢把虚拟函数声明为public(我并没有做太多的调查就说了这些,…
8.02  Physics II (电磁学基础) Introduction to electromagnetism and electrostatics: electric charge, Coulomb's law, electric structure of matter; conductors and dielectrics. Concepts of electrostatic field and potential, electrostatic energy. Electric curr…