production
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于production内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在production相关知识领域提供全面立体的资料补充。同时还包含 package、package文件、padding 的知识内容,欢迎查阅!
production相关知识
-
php.ini-development和production 1、php.ini-development 对应于 php.ini-dist,适合开发测试,如本地测试环境。 2、php.ini-production 对应于 php.ini-recommended 拥有较高的安全性设定,适合服务器上线运营当产品。 PHP5.4升级后,php.ini-dist不见了,出现了php.ini-developmen和php.ini-production。 在Windows下安装PHP,通常要将php.ini-dist或php.ini-recommended重命名为php.ini。一般修改php.ini-production,安全性更高,确保测试环境(本地)与正式环境(线上)一致。选择用哪个,就把他备份一份,改名为php.ini。
-
IDEA报错Error:Module 'shop-common' production问题描述: 本来项目是正常的,编译、运行、启动都是OK的,但是在一次电脑重启后,出现了以上这个问题:Error:Module 'shop-common' production: java.lang.IndexOutOfBoundsException,以至于项目无法正常编译,也无法正常启动。 这是一个很诡异的事情,首先,代码是没有改动的,也就是说这个问题出现的完全没有道理,也可能是由于电脑重启导致IDEA的思想出了问题,反正我不知道是什么原因,网上也没有搜到任何关于这个问题的解释和处理方式,在stackoverflow上搜了一下,也仅仅搜到了几个
-
15、webpack从0到1-区分打包development和production关于对开发环境和生产环境做不同的webpack配置。 git仓库:webpack-demo 1、缘起 这章我们要做下环境打包的一个区分啊,通过上面很多章的了解学习以后,我们知道,webpack.config.js仅仅这一个配置文件已经不能满足我们的需求了,因为开发环境和生产环境配置的内容是不一样的,有这么些异同: mode模式,生产环境需配置为developmet,开发则设置为production; devtool的souremap; devServer,开发环境需要配置跨域代理转发,而生产环境不需要; 代码分割,开发环境下不需要这个; HRM,
-
Docker系列教程27-在生产环境中使用Docker Compose编者按:这是一篇翻译,原文详见:https://docs.docker.com/compose/production/译文原文:http://www.itmuch.com/docker/27-docker-compose-in-production/,转载请说明出处。在development中使用Compose定义应用程序时,可使用此定义,在不同环境(如CI,staging和production)中运行应用程序。部署应用最简单的方法是在单机服务器上运行,类似于运行development环境的方式。如果要对应用程序扩容,可在Swarm集群上运行Compose应用程序。Modify your Compose file for production(为生产环境修改您的Compose文件)您几乎肯定会对您的应用配置进行更改,从而使这些配置更适合线上环境。 这些更改可能包括:删除任何绑定到应用程序代码的Volume,以便代码保持在容器内,不能从外部更改绑定到主机上的不同端口设置不同的环境变量(例如,减少日志的冗长程度
production相关课程
production相关教程
- 5. 真实案例分享 BootStrap v3 中文网(部分)<div> .col-xs-4 <br> Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div><div> .col-xs-6 <br> Subsequent columns continue along the new line.</div>Vue 官网 Api(部分)<li> <code>required</code>: <code>Boolean</code> <br> Defines if the prop is required. In a non-production environment, a console warning will be thrown if this value is truthy and the prop is not passed.</li><li> <code>validator</code>: <code>Function</code> <br> Custom validator function that takes the prop value as the sole argument. In a non-production environment, a console warning will be thrown if this function returns a falsy value (i.e. the validation fails). You can read more about prop validation <a>here</a>.</li>
- 6. 编写测试脚本 测试脚本会在 API 收到响应之后执行。要验证返回的结果是否正确,你可以使用 pm.response 对象。可以使用 pm.test 方法,提供一个名称和函数,该函数会返回一个布尔值(true 或者 false) 指示测试时成功还是失败。还可以在断言中使用 ChaiJS BDD 语法和 pm.expect 来测试响应细节。pm.test 的第一个参数用来标识这个测试脚本,会出现在测试结果输出中。例如,在 “Tests” 选项卡中为任一请求输入一下内容,以测试响应状态代码是否为200。pm.test("Status test", function () { pm.response.to.have.status(200);});点击“发送”运行请求,并在响应部分打开 “Test Results” 选项卡,在选项卡标题中显示了运行了几个测试有几个通过了。代码还可以测试请求环境,如下所示:pm.test("environment to be production", function () { pm.expect(pm.environment.get("env")).to.equal("production");});pm.test("response should be okay to process", function () { pm.response.to.not.be.error; pm.response.to.have.jsonBody(""); pm.response.to.not.have.jsonBody("error");});使用定制响应数据格式的语法来验证请求响应的有效性:pm.test("response must be valid and have a body", function () { pm.response.to.be.ok; pm.response.to.be.withBody; pm.response.to.be.json;});测试脚本可以包含任意数量的测试,当点击保存的时候,测试脚本会随请求详情一起被保存。
- 2. 一个最小的 Flask 应用 确定安装成功后我们创建一个 minimal.py 文件,并写入下面的代码:from flask import Flaskapp = Flask(__name__)首先,导入类 flask.Flask,实例化创建一个 Flask 应用,第一个参数是 Flask 应用的名称。__name__ 是一个标识 Python 模块的名字的变量:如果当前模块是主模块,那么此模块名字就是 __main__;如果当前模块是被 import 的,则此模块名字为文件名。@app.route('/')def hello_world(): return '<b>Hello World</b>'然后,定义函数 hello_world,它返回一段 html 文本。app.route(’/’) 返回一个装饰器,装饰器来为函数 hello_world 绑定对应的 URL,当用户在浏览器访问这个 URL 的时候,就会触发这个函数,获取返回值。if __name__ == '__main__': app.run()如果当前模块是主模块,则变量 __name__ 为 '__main__,此时调用 run() 方法启动 Flask 应用。运行该程序,在浏览器中输入 localhost:5000,浏览器显示如下:在控制台中,Flask 应用输出如下:$ python3 hello.py * Serving Flask app "hello" (lazy loading) * Environment: production Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)127.0.0.1 - - [20/Jul/2020 08:26:47] "GET / HTTP/1.1" 200 -127.0.0.1 - - [20/Jul/2020 08:26:47] "GET /favicon.ico HTTP/1.1" 404 -这样,我们就已经搭建好了一个最简单的 Flask 应用。
- 2.1 简介 Flask 程序可以运行在 Debug 模式下,Debug 模式提供了如下功能:当 Flask 程序出现错误时,在浏览器中提示错误的详细信息修改 Flask 程序代码后,Flask 程序会重新加载,不需要重启 Flask 程序,即可在浏览器中看到修改后的效果调用 Flask 应用的 run 方法时,设置参数 Debug = True,启动 Flask 程序的调试模式。编写程序 debug-on.py 如下:from flask import Flaskapp = Flask(__name__)if __name__ == '__main__': app.run(debug = True)在第 5 行,app.run(debug = True),启动 Flask 程序的调试模式。运行程序,输出如下:$ python3 debug.py * Serving Flask app "debug" (lazy loading) * Environment: production * Debug mode: on * Restarting with stat * Debugger is active! * Debugger PIN: 316-471-540 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)在第 4 行,Debug mode: on,表示 Flask 程序已经进入了调试模式。
- 3. -XX:+TraceClassLoading 参数 参数作用:-XX:+TraceClassLoading 参数是为了跟踪类的加载。为了更好的理解并掌握 -XX:+TraceClassLoading 参数,我们通过如下步骤进行操作。步骤 1:在 VM Options 中配置参数 -XX:+TraceClassLoading 并保存;步骤 2:运行示例代码,观察执行结果。结果验证:由于追踪的结果日志非常庞大,此处仅展示具有代表性的类的加载。全部的类加载日志,请学习者自行执行代码进行验证。[Opened C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.lang.Object from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.util.ArrayList$SubList from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.util.ListIterator from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.util.ArrayList$SubList$1 from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded DemoMain.TracingClassParamsDemo from file:/D:/GIT-Repositories/GitLab/Demo/out/production/Demo/][Loaded java.lang.Class$MethodArray from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.lang.Void from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.lang.Shutdown from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar][Loaded java.lang.Shutdown$Lock from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar]结果分析:我们来对类的加载日志进行分析。第一行:Opened rt.jar。打开 rt.jar,rt.jar 全称是 Runtime,该 jar 包含了所有支持 Java 运行的核心类库,是类加载的第一步;第二行:加载 java.lang.Object。Object 是所有对象的父类,是首要加载的类;第三、四、五行:加载了 ArrayList 的相关类,我们的示例代码中使用到了 ArrayList,因此需要对该类进行加载;第六行:加载我们的测试类 TracingClassParamsDemo ;第七行:加载 java.lang.Class 类,并加载类方法 MethodArray;第八行:加载 java.lang.Void 类,因为我们的 main 函数是 void 的返回值类型,所以需要加载此类;第九、十行:加载 java.lang.Shutdown 类, JVM 结束运行后,关闭 JVM 虚拟机。从以上对日志的分析来看,JVM 对类的加载,不仅仅加载我们代码中使用的类,还需要加载各种支持 Java 运行的核心类。类加载的日志量非常庞大,此处仅仅对重点类的加载进行日志的解读,全部的类加载日志,请学习者自行执行代码进行验证。
- 3.3 顶层函数的原理 通过以上例子思考一下顶层函数在 JVM 中是怎么运行的?仅仅是在Kotlin中使用这些顶层函数,那么可以不用细究。但是 Java 和 Kotlin 混合开发模式,那么就有必要深入内部原理。都知道 Kotlin 和 Java 互操作性是很强的,所以就衍生出了一个问题:在 Kotlin 中定义的顶层函数,在Java可以调用吗?答案肯定是可以的。要想知道内部调用原理很简单,我们只需要把上面例子代码反编译成 Java 代码就一目了然了:package com.imooc.kotlin.top;import java.math.BigDecimal;import kotlin.Metadata;import kotlin.jvm.JvmName;import kotlin.jvm.internal.Intrinsics;import org.jetbrains.annotations.NotNull;@Metadata( mv = {1, 1, 9}, bv = {1, 0, 2}, k = 2, d1 = {"\u0000\u001c\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0006\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\b\u0002\u001a\u000e\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003\u001a\u0019\u0010\u0004\u001a\u00020\u00052\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007¢\u0006\u0002\u0010\b¨\u0006\t"}, d2 = {"formateFileSize", "", "size", "", "main", "", "args", "", "([Ljava/lang/String;)V", "production sources for module Function"})@JvmName(//注意这里多了注解 name = "FileFormatUtil")public final class FileFormatUtil {//这里生成的类名就是注解中自定义生成的类名了 @NotNull public static final String formateFileSize(double size) { if(size < (double)0) { return "0 KB"; } else { double kBSize = size / (double)1024; if(kBSize < (double)1) { return "" + size + " B"; } else { double mBSize = kBSize / (double)1024; if(mBSize < (double)1) { return "" + (new BigDecimal(String.valueOf(kBSize))).setScale(1, 4).toPlainString() + " KB"; } else { double mGSize = mBSize / (double)1024; if(mGSize < (double)1) { return "" + (new BigDecimal(String.valueOf(mBSize))).setScale(1, 4).toPlainString() + " MB"; } else { double mTSize = mGSize / (double)1024; return mTSize < (double)1?"" + (new BigDecimal(String.valueOf(mGSize))).setScale(1, 4).toPlainString() + " GB":"" + (new BigDecimal(String.valueOf(mTSize))).setScale(1, 4).toPlainString() + " TB"; } } } } } public static final void main(@NotNull String[] args) { Intrinsics.checkParameterIsNotNull(args, "args"); String var1 = "文件大小: " + formateFileSize(15582.0D); System.out.println(var1); }}通过以上的代码可以总结出两点内容:1、顶层文件会反编译成一个容器类。(类名一般默认就是顶层文件名+"Kt"后缀,注意容器类名可以自定义)2、顶层函数会反编译成一个 static 静态函数,如代码中的 formateFileSize 和 main 函数。
production相关搜索
-
pack
package
package文件
padding
pages
page对象
panda
panel
panel控件
param
parameter
parcel
parent
parentnode
parents
parse
parse error
parseint
partition
pascal