每周感想和阅读内容

这周学习了怎么画判断表和判断树,也明白了判断树(Decision Tree)是判断表的变形,一般比判断表更直观、易于理解。判断树代表的意义是:左边是树根,是决策序列的...判断树(Decision Tree)是判断表的变形,一般比判断表更直观、易于理解。判断树代表的意义是:左边是树根,是决策序列的。

阅读内容:(代码优化)

优化原则:

1: 在能应付当前性能需求的情况下,不建议进行性能优化。

2: 仅仅优化性能瓶颈

3: 编码时必须进行压力测试

4: 优化时,考虑现实生活中遇到的问题,现实如何处理,代码也如何处理。

5: 优化的唯一方法:去掉没有必要的操作 和 采取高效的算法。可以看到所有的优化方法都离不开这条原则,而最常用、也最容易发现的方案就是去掉没必要的操作。

代码优化

代码优化的唯一目的: 减少执行时间。

两种优化方法: 减少没必要的内存分配;减少没必要的计算。

当然这两种方法一般都会同时出现,如分配没必要的内存,分配这个操作就是没必要的计算。

内存分配:

最好的效果:一次申请正好足够的内存。不过一般都做不到,只能尽可能。

1:比如Java中的‘+‘进行字符串连接,不断产生新的char[]数组后又废弃不用。

2:避免频繁的内存回收,对某些大数据任务可以多分配内存,减少GC的次数。

计算:

计算一般涉及算法(数据结构)和缓存。

1: 算法(数据结构)当然越快越好,比如:hashSet的搜索效率就比ArrayList高

2: 不需要重新获取的东西就可以缓存起来,比如:处理过程中的中间结果

3: 如果某些操作需要创建某些资源,比如网络连接。那么最好不要每次操作都创建一个,而是一个连接进行多次操作。

策略优化:

以不同的交互策略来达到用户一致的体验。

最常用的策略:当用户操作时才进行处理,将集中式处理改为分散式。

例子1:懒加载

比如一张单据有很多子页签,用户查看时单据仅仅加载单据的数据,而不需要加载子页签的数据。只有用户点击子页签时才加载对应的页签数据。

这样就将集中式的查询分散到用户操作中去,提高用户的体验并减少系统瞬间压力。

例子2:

这里借用一下JavaEye中别人讨论过的例子:

某个系统要求在某个时间将用户积分清零的需求。

最直接的方案: 定时将系统中所有的用户积分清零。其弊端在于:如果系统用户量特别大,则在一小段时间内用户将不可进行积分操作。

优化后的策略:用户进行积分操作是分散的,同一时间进行积分操作的压力是很小。因此可以考虑在用户进行积分操作时才考虑是否进行积分清零。

时间: 2024-12-15 01:47:34

每周感想和阅读内容的相关文章

每周感想及阅读内容

这周的课学习了用例图.类图.序列图.状态图.课上也做了练习,通过这些练习掌握了如何画这些图.也知道了这些图的用处和基本的定义.利用了课后的时间对自己的以前的学习内容加以深化,其实我自己对于学习是懒的,懒的学,懒的动,每次上课虽然说不上特别的认真听,但是老师让学习的,让做的我也没有落下,估计是我自己对学习太过于懒惰了,很多东西就是不知道,也不明白,从第一节开始,自己的落下了,一直到现在,总有些东西是不明白,所以我也正在努力中,希望自己可以慢慢的改掉在学习方面的懒惰,希望自己可以认认真真的学习每一个

感想及阅读内容

这周对以前的学习的内容进行了复习.阅读内容:数据流映射步骤:复查基本系统模型,并精化系统数据流图 分析数据流类型,确定数据流具有变换流特征还是事务流特征 如果是变换流特征,确定输入流和输出流的边界(也分别称为最高输入/输出抽象点),输入流边界和输出流边界之间就是变换流,也称为“变换中心”.变换流加工处理的是某些形式的内部数据. 如果是事务流特征,则可确定一个接收分支和一个发送分支.其中发送分支包含一个“事务中心”和各个事务动作流. 采用自顶向下.逐步求精的方式完成模块分解,确定相应的软件组成结构

阅读内容及感想

这周因为上别的实训课程所以没有上软件开发课,但是我利用了其他时间对以前学习的东西进行了复习.在接下来要写的报告也用到了这些.虽然快放假了,但感觉自己这学期学到了不少的知识,也充分认识到自己不足的地方正在努力地改正. 阅读内容:编程语言的发展趋势及未来方向 程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民.国内的计算机教育和工程培训,似乎一直在宣传“语言不重要,重要的是思想”,“语言一通百通”等观点,甚至在许多人眼中“语言的讨论”完全是不入流的,但其实“编程语言”与“工具”

《增长黑客》阅读内容摘要(前三章)

<增长黑客>阅读内容摘要(前三章) 寒假无聊,偶然间看到<增长黑客>这本名气很大的书,顺便拿来读读.读到后来根本停不下来,这本书真的比电影还精彩.作者提倡的一种新的软件工程,令人叫绝. 以下是这本书前三章的内容摘要: 一.第一章 通常采用的手段包括A/B测试.搜索引擎优化.电子邮件召回.病毒营销等,而页面加载速度.注册转化率.E-mail到达水平.病毒因子这些指标成为他们日常关注的对象. 增长黑客:以数据驱动营销.以市场指导产品,通过技术化手段贯彻增长目标的人. 五个环节:1. 获

第九周阅读内容

我阅读了构建之法第二章,知道了由于软件是由多人 合作完成的,不同的人员的工作相 互有依赖关系,一个人写的模块会被其他人调用,而软件的很多错误都来源于程序员对模块的误解,所以,软件是要进行单元测试的.一开始我单纯的以为软件的测 试就是通过在使用中发现不足,而现在我才知道,软件的单元测试是通过VSTS写出来的.而验证单元测试好坏的一系列标准则是:单元测试应该在最基本的功能 /参数上验证程序的正确性:单元测试必须由最熟悉代码的人(程序的作者)来写:单元测试后,机器状态保持不变:单元测试要快,并且应该产

第八周阅读内容

这周我阅读了构建之法第四章我们进入了软件工程另一项核心的起步阶段——结队编程,所谓工程自然不是一个人便能完成的了所有的工作,而 是一个集合了一个团队的合作完成作品的过程.在开始结队之前,需要达成共识的便是代码的规范性,这在编程界早已有了相应的通用准则且在随着整个行业的进步 而不断更新着.作为合作的项目,个人能力上或许会有不同,但哪怕团队中有个别人才思敏捷却只按着自己的路子走,不贴合代码的规范,使其他人无法去阅读理 解,这无疑是从一开始便失去了结队的意义.

第二周阅读之内容

第二周阅读内容 在这周里,我阅读了邹欣老师的<构建之法>,刚开始看的时候说实话有点像看天书的感觉,可是一段话我反反复复的看了五遍,才明白其中一小节节的,我觉得这本书太神奇了,看了它之后,我才知道原来我两年里所学的那些是那么的浅薄.我会坚持把这本书看完看懂,不仅要看这本,还要看完<移山之道><代码大全><梦断代码>这几本有超越灵魂和思想的书.

2016.3.25—2016.3.31这周的学习时间和内容

这周的学习内容:每周都在写感想,有时候感觉怪怪的,因为自己在之前从来没有在固定的时间内写感想,直到这学期开了刘砚老师的课以后,老师说每周写感想,对我们自己是有好处,最起码,我们在以后的知道自己在这学期学了什么,什么是有用的,什么是对自己加深知识的东西,等等,非常感想老师,在期末我可以了解,可以打开博客回忆回忆自己这个学期的收获.每周上课都是三个小时,在课堂上基本都是在编代码,想问题,在这周课堂上,老师让我们结对编程,就是说让俩个人一组编程序,我和王瑞分到一组,这个是随机分的,所有也不会存在侥幸心

开发项目和所用时间 感想

开发项目和所用时间: 我通过上课的时间,利用了这段时间按照老师的要求编写加减乘除的程序,因所学的不是很好,所以里面有一些小的错误. 感想:通过这次上课所学的东西,我了解了自己在这个课程中的好多不足,以及自己在学习中的错误方法,知道了自己在以后的学习中应该更改自己的学习方法,让自己对这个课程更加了解认识,这次的作业虽然有很多小的错误,但是我们通过交流很快的解决了这些任务,顺利的完成了这项作业,让我懂得了自己与组员密不可分,应该时常交流,弥补自己的不足,自己不仅应该在日常的生活中阅读一些关于这个课程