搜索到与相关的文章
编程技术

sqlldr用法

sqlloader可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。用法:SQLLDRkeyword=value[,keyword=value,...]在命令行下执行Oracle的sqlldr命令,可以看到它的详细参数说明,要着重关注以下几个参数:userid--Oracle的username/password[@servic

系统 2019-08-29 22:04:41 1957

编程技术

构建亿级前端读服务

从入职京东到现在,做读服务已经一年多的时间了,经历了各种亿级到百亿级的读服务;这段时间也进行了一些新的读服务架构尝试,从架构到代码的编写,各个环节都进行了反复尝试,压测并进行调优,希望得到一个自己满意的读服务架构。一些设计原则无状态数据闭环缓存银弹并发化降级开关限流切流量其他无状态如果设计的应用是无状态的,那么应用就可以水平扩展,当然实际生产环境可能是这样子的:应用无状态,配置文件有状态。比如不同的机房需要读取不同的数据源,此时就需要通过配置文件指定。数据

系统 2019-08-29 22:00:35 1957

编程技术

大话重构连载首页

《大话重构》这本书是我写的第一本书,从今天起我将通过连载的形式逐渐跟大家分享。这本书让你:告别游击队转变为正规军,远离劣质代码走向精妙设计真正明白专业级的软件开发是怎样的真正明白重构是怎样一步一步进行的高效重构七步曲,面对实践不卡壳让遗留系统维护不再是你的梦魇读完这本书以后:需求变更不再纠结,重构让你润物细无声地容纳它们超越代码级的重构,从各个层面深度领略重构之美自动化测试不再是梦想,重构让自动化测试走你重新审视熟悉而陌生的技术,将碎了一地的它们重新铆合在

系统 2019-08-29 21:59:06 1957

编程技术

一堂如何提高代码质量的培训课(3)

3)职责驱动设计和领域驱动设计前面我提到,当我们尝试写一些复杂功能的时候,我们把功能分解成一个个相对独立的函数。但是,应当将这些函数分配到哪个类中呢?也就是系统中的所有类都应当拥有哪些函数呢?或者说应当表现出哪些行为呢?答案就在这里:以职责为中心,根据职责分配行为。我们在分析系统时,首先是根据客户需求进行用例分析,然后根据用例绘制领域模式和分析模型,整个系统最主要的类就形成了。通过以上分析形成的类,往往和现实世界的对象是对应的。正因为如此,软件世界的这些类

系统 2019-08-29 21:58:56 1957

各行各业

Jboss Error :ConfigureListener ClassNotFound

IrecentlysufferednoendofproblemstryingtogetaJSFapplicationtodeploycorrectlythroughEclipse.I,ofcourse,blamedEclipsebecauseletsfaceitit'sthemostflakeypieceofsoftwarearound.IwasamazedthentodiscoverthatthiswasinfactnotthefaultofEclips

系统 2019-08-12 09:27:09 1957

Python

python爬虫urllib的request与parse方法

在爬虫前,需要知道这两个知识点!!!字符串转字节类型str-->bytesencode()字节类型转字符串bytes-->strdecode()1.以一个简单的例子讲解urllib.request方法read读取相应内容,内容geturl获取请求的urlgetheaders获取头部信息getcode获取状态码readlines按行读取,返回列表,都是字节类型1.1获取百度的网页代码importurllib.requesturl="https://www.b

系统 2019-09-27 17:57:13 1956

Python

python遇坑记录-json.loads

#-*-coding=utf-8-*-importjsonimportrequestsheader={'User-Agent':'googlespider','Content-Encoding':'gzip','X-Forwarded-For':'202.101.43.22',}classBusiness(object):def__init__(self):passdefmy_JSONDecodeError(self):"""我出现JSONDecodeEr

系统 2019-09-27 17:56:35 1956

Python

python单线程下实现多个socket并发过程详解

先看服务端的代码importsys#importsocketimporttimeimportgeventfromgeventimportsocketfromgeventimportmonkeymonkey.patch_all()#类似于python中的黑魔法,把很多模块的阻塞的变成非阻塞的,比如socket中的rece和send都变#为不阻塞了defserver(port):s=socket.socket()s.bind(("127.0.0.1",port

系统 2019-09-27 17:55:42 1956

Python

浅谈Python生成器generator之next和send的运行流程(详解)

对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。然后第二个next调用,进入生成器函数后,从yield语句的下一句语句(第5行)开始执行,然后重新运行到yield语句,执行后,跳出生成器函数,后面再次调用next,依次类推。下面是一个列子:defconsumer():r='here'foriinxrange(3):yieldrr='200OK'+str(

系统 2019-09-27 17:55:41 1956

Python

Python函数系列之装饰器(三)

在Python中,装饰器的本质就是Python中的一个函数,其来源自Python面向对象。装饰器是在函数调用之上的修饰。这些修饰仅是当声明一个函数或方法的时候,才会被应用额外的调用。有点类似Java中的AOP(面向方面编程)。同时在设计模式中,还有装饰器模式,也即是:装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。原则是:不修改被修饰函数的源代码,不修改被修饰函数的调用方式。装饰器的用途:引入日志增加计时

系统 2019-09-27 17:55:09 1956