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

从设计模式的设计原则感悟生活

设计模式中的很多思想还是很有意思的,刚毕业的时候接触设计模式感觉有点高深,坐而论道,感觉还是有些虚,平时做的小练习还能自己捣鼓一番,自己使用一下设计模式,然后大刀阔斧的改动代码,随心所欲,写完以后还能热乎劲上来高兴几天,时间长了就忘了很多的东西,只是感觉设计模式就是抽象,自己感觉也抽象。如果死磕着问自己,估计大脑里还是没什么印象了。到了工作中,又发现有些功能或者思想固然好,但是要在已有的项目中做一些改动,一下子又有点不知所措,时间长了,思想和行动就脱节了。工作中以面向对象为目标,实际中做着结构化的思路开发。 设计模式的这几个原则自己是看了忘,忘了以后时间长了也忘了看了。如此恶性循环。 看别人总结的原则描述很是详尽,但是看代码还是不够通俗,自己也来捣鼓一下,从自己的思路和理解来总结总结设计模式和工作生活的联系。

03

从设计模式的设计原则感悟生活(r2笔记42天)

设计模式中的很多思想还是很有意思的,刚毕业的时候接触设计模式感觉有点高深,坐而论道,感觉还是有些虚,平时做的小练习还能自己捣鼓一番,自己使用一下设计模式,然后大刀阔斧的改动代码,随心所欲,写完以后还能热乎劲上来高兴几天,时间长了就忘了很多的东西,只是感觉设计模式就是抽象,自己感觉也抽象。如果死磕着问自己,估计大脑里还是没什么印象了。到了工作中,又发现有些功能或者思想固然好,但是要在已有的项目中做一些改动,一下子又有点不知所措,时间长了,思想和行动就脱节了。工作中以面向对象为目标,实际中做着结构化的思路开发。

06

「复仇者联盟 3」的票买了吗?这里有 5000 个现金红包要送给你

真的是千呼万唤始出来啊!为了这一天,知晓君整整憋了半个月! 5 月 11 日,「复仇者联盟 3」终于上映了。 这部电影在国内的放映比北美和中国香港地区晚了足有半个月,而这半个月对于知晓君实在是太难熬了。除了对电影剧情抱着很高的期待意外,还要忍受网上微博和朋友圈铺天盖地的剧透。 钢铁侠是不是被灭霸制裁了?美队的盾牌还能回来吗?一个个谜题一直萦绕在知晓君的脑海里。而这种感觉就好像你周围的人都知道了一个秘密,唯独你还被蒙在鼓里。在这一瞬间,感觉自己和整个世界脱节了。 不过在被各种剧透信息轮番轰炸后,知晓君终于还是

03

微信小程序助力实体店对接互联网市场

互联网+的概念正在逐渐的深入,实体商家此次转战互联网市场,对接移动端红利,除了开发APP,入驻个大类平台之外,开发微信小程序将是实体店商家一个更好的选择。 📷 微信小程序对于实体行业的帮助越来越大,那么微信小程序能够助力哪些商家更加快速的对接移动互联网线上市场呢? 第一、线下的生活服务行业。生活服务是特别大的一个范围,包括了我们生活周边的很多行业。以餐饮、水果等行业为主的生活服务类行业都是用户平时接触比较多的。这些行业如果做一个APP进行推广花费高不说,用户也未必接受这种方式。相对而言,小程序就是一个很好的

06

一个高并发买票的实例

马克-to-win:我 们现在回到春节高并发买票的问题。我们假设有一百万个人买一百张票,其中买票程序一百万个线程同时运行。不用改变mysql的缺省事务隔离级别。任何人在 买之前都用普通的select * from table来访问数据库获得目前的票数。假如现在是一百,之后大家一起点“下单”钮。这个钮所对应的程序可以这样:先select * from table for update,这样所有别人的select * from table for update这句话都会被挡住,这个时刻选出的数据库的票的存量是准确的。你可以加一个判断,比如如果存量大于1,我就买一张票。(有很多高并发程序,会 在这里加一个乐观锁版本的判断,如果还是老版本就做更新。马克-to-win:原理和目的和我们的例子是一样的)注意这里加判断,虽然耗时,但至关重要,(这也是很多公司的通 用做法)而且必须像这样独占排他挡住别人大张旗鼓的做。假如你不下决心独占排他的去做判断,当你真正更新的时候,也许数据已经被别人更改了。也许一秒前看 存量是一百,一秒之后已经变成零了。不判断就直接更新的话,数据库票数也许会变成负数。完成判断之后就是更新数据库票数减一张,当然还需做一些其他的工 作,比如订单表中需要增加一行记录是谁买的之类的,最后提交。之后队列中下一个事务就会被开始执行。这只是程序的一个总的思路,真正做项目还需考虑用户体 验比如超时问题,(connection query有超时timeout异常)或用户等得不耐烦,主动关闭窗口。这时数据库服务器就会照顾下一个select * from table for update。马克-to-win:真正做项目时,我们可以选择用select * from t for update nowait (不等待行锁释放,提示锁冲突,不返回结果)或select * from t for update wait 5 (等待5秒,若行锁仍未释放,则提示锁冲突,不返回结果)给用户提供三个选择,可以死等,不等,或等5秒。同时告诉用户现在多少人在队列中你的前面(每有 一个人发出请求,在ServletContext中就加1,完成就减1),大概多长时间可以到你,因为数据库完成一个用多长时间可以算出来。下面我们就给 出一个并发买票的简单实现。(本例子我们还用上章的register数据库表,用age变量代表车票数,道理是一样的)

01
领券