首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《重构》第七章 - 读后感(类的重构要点)

    上一章大概得学习了一下函数重构的手法,主要有9种。但是平心而论,有多少人还是随心所欲的写代码?所以我们做任何事情的时候还是得静下心来,把它当作一个艺术品去对待,才可能会有质的提升,而我们都提浮躁了。读完本书的第三章,我们可能都是飘飘然,似懂非懂。但是到了第六章之后就成了硬菜了。在读完之后,本人今天写代码突然发觉不知道如何写了,感觉代码中的问题很多,就第六章的函数提炼和函数内联以及变量内联。我们都没有做到,更别说返参和入参的复用了。感情整个代码都已经变成了垃圾,在写完一个方法之后,我感觉昨天的感悟修改了好几遍,才勉强觉得凑活。真心感慨以前怕是在假装写代码。确实越来越觉得读完这本书,会对一个开发人员思路和包结构设计都有很大的帮助。先不扯了,咋看一下本书的第七章:对象之间的搬移特性

    01

    如何用Synchronied解决Servlet多线程安全问题?

    马克-to-win:我们先铺垫Servlet的多线程基础知识。到现在为止,我们所接触到的Servlet都是这样的:第一个人访问Servlet的时候,Servlet会被实例化。之后的人再访问这个Servlet的时候,这个Servlet就不再被实例化了,而是采取线程的模式。用每一个由这个servlet而来的线程来应答来请求的客户。这样的话,Servlet的实例变量,实际上是被所有客户的线程共享的。这样就会出现线程安全的问题。一谈到多线程安全,就需要谈到我"Java初级"部分第六章的那个多线程安全的例子。这里基本还是用那个例子,只不过是放在Servlet环境下。那里对Critical data(关键数据[多个线程同时会修改的数据])的解决方案,就是在访问Critical data的方法前面加上关键字Synchronized。这里建议的解决方案也是这样。马克-to-win:我们先看一个没有加Synchonized的 critical data的例子。见下面例:2.1.1,还是像"Java初级"部分第六章那里一样,onlySellOne对于一个人来讲,一次只能卖一本书。对于本例来讲,我们用一个浏览器模拟一个人。观察浏览器,我们发现,对于有的人(http-8080-Processor25)来讲,开始还是18本书,买了一本书之后(调用一次onlySellOne),自己一看,还剩下16本书。这里显然出现了问题。问题就在于,有其他人同时也在买书。关键数据(bookNum)可以被多个线程同时修改。对于例:2.1.2,我们通过在onlySellOne方法前面加上Synchronized关键字,使得这个方法,在被任何线程调用时,其他线程就不能再调用,而只能排队等候。这样,结果就完美了。即使两个浏览器是同时运行的,数据也是一个一个减下来的。

    03

    干货 | 清华大学叶晓俊《信息安全技术 大数据服务安全能力要求》国家标准修订思考

    本文内容整理自《数据安全与数据要素治理研讨会》中,清华大学软件学院教授叶晓俊所做的《信息安全技术 大数据服务安全能力要求》国家标准修订思考的主题演讲。 下面由我向大家介绍由清华大学牵头制定的GB/T 35274-2017 《信息安全技术 大数据服务安全能力要求》国家标准在本次修订过程中我们的一些感想。今天汇报包括以下部分:1)标准修订的背景2)标准修订情况3)标准内容介绍4)标准修订思考5)后续工作安排。 首先回顾该标准修订的背景。2016年全国信息技术安全标准化委员会(简称信安标委)成立大数据安全标准特

    03
    领券