- 从文化到实践:DevOps的基本概念与核心实践详解
Echo_Wish
运维探秘让你快速入坑运维devops运维linux
一、引言:什么是DevOps?在当前快速发展的IT世界中,开发与运维之间的协作显得越来越重要。传统软件开发和运维模式的“隔离”导致了沟通不畅和效率低下,而DevOps应运而生,旨在通过文化和工具的结合,将开发(Development)与运维(Operations)之间的隔阂打破。DevOps不仅是一套技术和工具,更是一种文化、一种思维方式,能够帮助组织更高效、持续地交付高质量的软件。二、DevOp
- 角色访问控制(RBAC)
IT源哥
架构设计和软件设计usersessionactorumlaccessclass
角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给User或Group。Privilege是权限颗粒,由Operat
- k8s集群离线安装kuberay operator
thinkerCoder
kubernetes容器云原生
1,安装方式采用helm安装方式,首先下载对应的helmchart,这里采用v1.2.2版本,下载地址:https://github.com/ray-project/kuberay-helm/releases/tag/kuberay-operator-1.2.22,解压并修改镜像源由于是在内网环境下搭建,因此需要将对应的镜像下载下来,并导入到本地镜像仓库,并修改values.yaml的镜像仓库地址
- python3 + selenium webdriver自动化测试启动不同浏览器
cs_mengxi
seleniumWeb自动化selenium测试工具
seleniumwebdriver自动化测试启动不同浏览器seleniumwebdriver介绍SeleniumWebDriver进行自动化测试的一般流程浏览器驱动下载浏览器驱动的安装chrome、edge、Firefox、Opera、Safari、phantomjs应用HeadlessChrome、HeadlessFirefox应用seleniumwebdriver介绍SeleniumWebDr
- 嵌入式C语言表驱动状态机
@吃了个团子被噎住了
c语言c#开发语言
嵌入式C语言表驱动状态机嵌入式中比较经常使用状态机模式,使用ifelse和switchcase出现比较多的状态时,这种方法实现的状态机可读性和可塑性比较差本章使用表驱动方法解决上述的问题以下代码参考博主:大白白https://zhuanlan.zhihu.com/p/530280333一维数组表驱动状态机实现把currentstate–event–operation()–nextstate的组合作
- 30: 部署LNMP 、 Nginx+FastCGI 、 Nginx高级技术 、 总结和答疑
河北王承志
达内云计算培训笔记linux
TopNSDOPERATIONDAY02案例1:部署LNMP环境案例2:构建LNMP平台案例3:地址重写1案例1:部署LNMP环境1.1问题安装部署Nginx、MariaDB、PHP环境安装部署Nginx、MariaDB、PHP、PHP-FPM;启动Nginx、MariaDB、FPM服务;并测试LNMP是否工作正常。1.2方案目前的网站一般都会有动态和静态数据,默认nginx仅可以处理静态数据,用
- python set operation
screaming
PythonSet
Setcanbeconvertedtolistbylist(set)add(elem)¶Addelementelemtotheset.remove(elem)Removeelementelemfromtheset.RaisesKeyErrorifelemisnotcontainedintheset.discard(elem)Removeelementelemfromthesetifitispres
- $ operator is invalid for atomic vectors什么意思
滚菩提哦呢
"$operatorisinvalidforatomicvectors"意思是在对原子向量使用"$"操作符时是无效的。"$"操作符是R语言中用于访问数据框(dataframe)中的列的常用操作符。但是,原子向量(atomicvector)是R中的一种基本数据类型,它是一个长度固定的向量,并且所有元素都是相同的数据类型。因此,在对原子向量使用"$"操作符时是无效的,因为原子向量没有列的概念。例如,下
- 《Operating System Concepts》阅读笔记:p13-p16
操作系统
《OperatingSystemConcepts》学习第4天,p13-p16总结,总计4页。一、技术总结1.storage指令只能在memory上执行,所以要执行程序,那么就要加载到内存上。2.primarystorageprimarystorage包含下面这些分类:(1)register(2)cache(3)mainmemory3.secondarystorageThemostcommonsec
- 一文读懂 Windows 逆向工程中的滑板指令
阿贾克斯的黎明
C++单片机嵌入式硬件
目录一文读懂Windows逆向工程中的滑板指令一、滑板指令是什么二、滑板指令在软件破解中的应用场景三、实战演示:用滑板指令破解密码验证程序四、滑板指令的其他用途五、总结与作业在Windows逆向工程领域,滑板指令(NOP指令,即No-Operation的缩写)是一项极为实用的技术,对于软件安全工程师而言,熟练掌握它,就如同掌握了一把开启软件破解与漏洞利用大门的钥匙。今天,就来带大家深入探索滑板指令
- 函数式编程中的 Monoid:简洁而强大的抽象
Vitalia
编程范式&语言艺术理论基础haskellmonoid
在函数式编程中,Monoid是一个既简单又强大的数学概念。它为我们提供了一种统一的方式来处理数据的组合和聚合操作。无论是处理列表、字符串、数字,还是更复杂的数据结构,Monoid都能帮助我们以一致且优雅的方式解决问题。什么是Monoid?Monoid是一个代数结构,它由以下三部分组成:一个集合(Set):包含一组元素。一个二元操作(BinaryOperation):将两个元素组合成一个新元素,且这
- 【Getting Started】-时间复杂度-Time Complexity
zaiyang遇见
#Bronze(青铜组)信息学奥赛程序设计竞赛IOI时间复杂度USACO
文章目录时间复杂度计算-ComplexityCalculations常见的复杂度和限制-CommonComplexitiesandConstraints问题集-Quiz计算算法执行的操作次数。Measuringthenumberofoperationsanalgorithmperforms.在编程竞赛中,程序需要在限定时间内运行才能获得评分。例如,对于USACO,C++提交的时间限制是222秒,J
- maven插件学习(maven-shade-plugin和maven-antrun-plugin插件)
catcher92
javamavenmaven学习大数据
整合spark3.3.x和hive2.1.1-cdh6.3.2碰到个问题,就是spark官方支持的hive是2.3.x,但是cdh中的hive确是2.1.x的,项目中又计划用spark-thrift-server,导致编译过程中有部分报错。其中OperationLog这个类在hive2.3中新增加了几个方法,导致编译报错。这个时候有两种解决办法:修改spark源码,注释掉调用OperationLo
- C#流转输分段上传
工厂修程序
C#wcfC#
wcf流传输上传文件不能分段上传的问题已解决。技巧就是上传的流参数不用FileStream用MemoryStream即可。以下是代码:服务契约类:[ServiceContract()]publicinterfaceIMyServer{[OperationContract]voidUploadFile(UploadPartMessagemsg);}消息契约:[MessageContract]publ
- QT批量UI操作
qt
在QT批量操作的时候,可以选择先将渲染关闭,用户操作关闭,等执行完后,开启渲染,开启用户操作voidbeginBatchOperations(QWidget*widget){widget->setUpdatesEnabled(false);widget->setEnabled(false);//需要的话还可以把滚动条disabled}voidendBatchOperations(QWidget*w
- KubeBlocks 如何降低管理多种数据库的学习门槛
什么是KubeBlocksKubeBlocks是一个开源的Kubernetes数据库operator,能够帮助用户在Kubernetes上运行和管理多种类型的数据库。据我们所知,大多数数据库operator通常只能管理某种特定类型的数据库,例如:CloudNativePG、Zalando、CrunchyData、StackGresoperator用于管理PostgreSQLStrimzi用于管理K
- C/C++内存管理
ByteDreamer
c++开发语言
目录前言1、C/C++内存划分2、C语言中的动态内存管理方式3、C++内存管理方式3.1操作内置类型3.2操作自定义类型3.3为什么对应的new和delete必须搭配使用(了解)4、operatornew与operatordelete函数5、new和delete的实现原理5.1内置类型5.2自定义类型6、malloc/free和new/delete的区别前言在上一篇文章中我们讲完了类和对象的基本内
- 排序算法之自定义排序函数的含义
_DCG_
数据结构与算法排序算法算法
我们经常碰到stl容器或者一些排序算法需要用户自定义实现排序规则,为什么要用户自定义排序规则函数呢?请考虑如下场景:std::vectornums={1,3,2,5,4};//升序排序(默认)std::sort(nums.begin(),nums.end(),std::less());//或简写为std::sort(nums.begin(),nums.end());//默认使用operator()
- python func for shell operation
weixin_33682719
收集一篇python中shell操作解释地比较全面的文章,我主要需要用到shel中的cp命令和rm命令===========华丽丽分割线,转载内容如下============os.chkdir(path)转换到目录path下。os.system('mda')可以直接创建目录。os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'pos
- 亚马逊云科技-利用托管服务驱动成功迁移云运维转型GenAI
taibaili2023
AWS
亚马逊云科技-利用托管服务驱动成功迁移转型云运营GenAI关键字:[yt,AmazonManagedServices,CloudOperationsTransformation,MigrationChallenges,OrganizationalChangeManagement,ApplicationPortfolioPlanning,ManagedServicesAdoption]本文字数:60
- UE4 Gameplay(6):关系图
戏命尸
UE4Gameplay入门UE4
03/28/2021文章目录前言第一步:Engine驱动第二步:游戏起源第三步:游戏世界第四步:游戏玩法第五步:GameplayControllerPawn和CharacterGameplay学习路线前言UE4的整体框架,或者游戏生命周期第一步:Engine驱动while(true){//1.AcceptOperateSystemmessage//2.UpdateWorld(Delta)//3.D
- centos ubuntu 服务器性能比较,对比平台--CentOS和Ubuntu之间的区别
weixin_39883208
centosubuntu服务器性能比较
CentOS与Ubuntu是SoftwareOperationMarket中两个著名的Web服务器操作系统。CentOS基本上基于Linux框架和Linux发行版,以实现免费的,社区支持的计算平台,该平台与相应的上游源RedHatLinux兼容。Ubuntu基本上是基于Debian的开源Linux发行版。它是流行的云操作系统之一。它通常从桌面到云,再到几乎所有适用的Internet连接事物都运行。
- Centos和Ubuntu的介绍与区别
桃杬
centosubuntulinux
对于大多数人来说常用的linux操作系统为centoslinux和ubuntulinux,二者之间有很多相似之处,但是它们也有一些重要的区别。一、Centos和Ubuntu的介绍1.什么是centosCentOS(CommunityEnterpriseOperatingSystem)是脱胎于RedHatEnterpriseLinux(RHEL)并与之兼容的由社区支持的克隆版Linux发行版,所以我
- hive数仓的分层与建模
korry24
hivehadoop数据仓库
Hive数据仓库分层和数据建模是一种常见的数据仓库设计方法,旨在通过分层的方式组织数据,提高数据的可维护性、可复用性和查询性能。以下是关于Hive数据仓库分层和数据建模的详细知识:一、Hive数据仓库分层数据仓库通常采用分层架构,目的是将数据按照不同的处理阶段和用途进行划分,便于管理和优化。常见的分层架构包括以下四层:1.ODS(OperationalDataStore,操作数据存储层)作用:OD
- Go基本数据类型----布尔类型与数字类型
yangoo-22
Go入门
Go基本数据类型----布尔类型与数字类型运算符下面是Go语言中支持的运算符号的优先级排列PrecedenceOperator5*/%>&&^4+-|^3==!=>=2&&1||&&和||操作符有短路行为:如果运算符左边值已经可以确定整个布尔表达式的值,那么运算符右边的值将不再被求值对于上表中前两行的运算符,例如+运算符还有一个与赋值相结合的对应运算符+=,可以用于简化赋值语句。Go语言中没有自增
- 第十九章:特殊工具与技术
CleverCleverTang
C++Primer笔记javajvm开发语言C++linux操作系统
第十九章:特殊工具与技术对于很多程序员来说,他们很少会用到本章的介绍的内容。一.控制内存分配我们能够重载new和delete,但其实不是对new和delete的重载,只是对new和delete操作符后面的函数进行重载。当我们使用一条new表达式的时候,第一步new表达式调用一个名为operatornew或operatornew[]的函数分配内存空间。第二步,编译器运行构造函数构造对象并传入初始值,
- 开源机器人+具身智能 解决方案+AI
天机️灵韵
具身智能人工智能机器人
开源机器人、具身智能(EmbodiedIntelligence)以及AI技术的结合,可以为机器人领域带来全新的解决方案。以下是这一结合的可能方向和具体方案:1.开源机器人平台开源机器人平台为开发者提供了灵活的基础架构,可以在此基础上结合具身智能和AI技术。以下是一些常用的开源机器人平台和工具:ROS(RobotOperatingSystem):一个模块化的机器人软件框架,支持多传感器融合、运动控制
- AIOS: 一个大模型驱动的Multi-Agent操作系统设计与Code分析
大霸王龙
系统分析业务知识图谱机器学习人工智能pythonmlflow
AIOS:一个大模型驱动的Multi-Agent操作系统设计与Code分析随着人工智能技术的快速发展,传统操作系统逐渐暴露出难以适应AI时代多样化需求的局限性。特别是在支持多个智能体协同工作方面存在显著不足。为此,我们提出了一种名为AIOS(ArtificialIntelligenceOperatingSystem)的大模型驱动型多智能体操作系统,旨在克服现有操作系统的诸多缺陷。一、引言AIOS的
- 【多线程-第三天-NSOperation的最大并发数 Objective-C语言】
清风清晨
Objective-Cobjective-cios开发语言
一、好,我们现在来看NSOperation里边提供的这些方便操作1.最大并发数:怎么去设置最大并发数,最大并发数是什么意思,然后再来看队列的暂停/继续,包括取消,依赖,我们一会儿再看,好,看这些事情的话,我们先来看最大并发数,什么是最大并发数:同时执行的任务数,同一时间有三件事情正在执行,我开三个线程执行三个任务,最大并发数是三,三件事情同时在执行,但是注意我们线程数是多少,有三件事同时在执行,线
- 【多线程-第二天-NSOperationQueue的线程间通信-以及第二天内容的复习 Objective-C语言】
清风清晨
Objective-Cobjective-cios
一、NSOperationQueue1.当我们不使用队列的时候,我们可以直接调用操作的start方法,它不会开线程,当我们使用队列的时候,我们把操作放到队列中来,系统会自动的帮我们创建线程,去执行操作,把操作添加到队列,有两个方法,1)-(void)addOperation:(NSOperation*)op;2)-(void)addOperationWithBlock:^(void)block;2
- github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected]"
- ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
- 读书笔记-jquey+数据库+css
chengxuyuancsdn
htmljqueryoracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
- javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
- shiro入门学习
cugfy
javaWeb框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
- Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
- navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
- unicode转换成中文
adminjun
unicode编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
- 一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
- 设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
- Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
- [Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
- 【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
- Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
- Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
- 读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
- HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
- maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
- linux shell 中文件编码查看及转换方法
daizj
shell中文乱码vim文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
- MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
- 数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
- Java反转字符串
dyy_gusi
java反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
- UI设计中我们为什么需要设计动效
gcq511120594
UIlinux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
- JBOSS服务部署端口冲突问题
HogwartsRow
java应用服务器jbossserverEJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
- 第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdbreidstwemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
- ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
- 程序员解决问题的60个策略
pda158
框架工作单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
- Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
- JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它