主页 > app >
如何重构Python Singleton Heavy App?(如何重构自己的营销认知)
25-04-28
1
在本文中,您将会了解到关于如何重构PythonSingletonHeavyApp?的新资讯,同时我们还将为您解释如何重构自己的营销认知的相关在本文中,我们将带你探索如何重构PythonSingleto
在本文中,您将会了解到关于如何重构Python Singleton Heavy App? 的新资讯,同时我们还将为您解释如何重构自己的营销认知 的相关在本文中,我们将带你探索如何重构Python Singleton Heavy App? 的奥秘,分析如何重构自己的营销认知 的特点,并给出一些关于ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、android – Dagger 2 Singleton vs Real Singleton、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、APP 自动化 01 - 基础操作 API-UIautomatorviewer-APP 定位 - 元素等待 - APP 模拟手势高级操作 的实用技巧。
本文目录一览:
如何重构Python Singleton Heavy App?(如何重构自己的营销认知)
如何解决如何重构Python Singleton Heavy App?? 我编写的应用程序运行良好/可以实现其目的-但没有考虑到增长。
我严重依赖于大约8个单例类(如我所学),例如(仅举一个例子):
class BaseQuotes(np.recarray):
def __new__(cls,shape=None,dtype=None,order=''C''):
及更高版本:
Quotes = BaseQuotes()
然后,在我导入引号的任何地方(很多地方!猜想如果我重构:)都需要VSCode替换),我可以致电:
Quotes.referencePrice()
到达我所在的地方真是太好了。
但是,现在当然,我需要两个(或更多!)“报价”集-保持彼此独立的维护自己的数据,以供其他情况参考。
谁能把我放在资源上,以学习如何重构它,我的替代模式是什么?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j 如何解决ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j
我正在Rails上执行此应用程序,页面加载正常,但在控制台中显示:
Started GET "/vendor/assets/stylesheets/bootstrap.min.css" for ::1 at 2020-08-17 09:09:51 -0500
Started GET "/vendor/assets/javascripts/bootstrap.min.js" for ::1 at 2020-08-17 09:09:51 -0500
ActionController::RoutingError (No route matches [GET]
"/vendor/assets/stylesheets/bootstrap.min.css"):
ActionController::RoutingError (No route matches [GET]
"/vendor/assets/javascripts/bootstrap.min.js"):
在我的供应商文件夹中,我同时拥有文件夹,javascript和样式表,并分别位于各自的bootsrtrap.min中。 即使在application.html.erb中,我也有以下内容:
<link href="vendor/assets/stylesheets/bootstrap.min.css" rel="stylesheet">
<%= csrf_Meta_tags %>
<%= stylesheet_link_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
<%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>
<body>
<!-- Navigation -->
<nav>
<div>
<ahref="#">Instagram Clone</a>
<buttontype="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span></span>
</button>
<divid="navbarResponsive">
<ul>
<li>
<ahref="#">Home
<span>(current)</span>
</a>
</li>
<li>
<ahref="#">About</a>
</li>
<li>
<ahref="#">Services</a>
</li>
<li>
<ahref="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Page Content -->
<div>
<div>
<div>
<%= yield %>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<!--<script src="vendor/jquery/jquery.slim.min.js"></script>-->
<script src="vendor/assets/javascripts/bootstrap.min.js"></script>
</body>
</html>
在js和CSS这两个应用程序文件中,我都放置了“ require bootsrtrap.min”,即使该错误仍然出现在控制台中。 会是什么?
解决方法
RoR不使用目录作为文件夹结构指示。因为有资产装载者。您应该将5s或更少的css导入application.css中,并将js导入application.js中。并使用自己的助手添加捆绑文件:
1。用纱安装靴子
yarn add bootstrap @popperjs/core jquery
或
npm i bootstrap @popperjs/core jquery
栏位不超过5
2。在Assets Pipeline中导入文件
app / assets / stylesheets / application.css:
//...
require bootstrap/dist/css/bootstrap.min
//...
但是,如果需要,我建议使用SCSS并仅导入所需的样式。
app / assets / javascript / application.js:
//...
//= require jquery
//= require @popperjs/core
//= require bootstrap/dist/js/bootstrap.min
//...
3。在布局中导入资产
app / views / layout / application.html.erb:
<head>
...
<%= stylesheet_link_tag ''application'',media: ''all'' %>
</head>
<body>
...
<%= javascript_include_tag ''application'' %>
</body>
使用webpack滚动6
2。在application.scss和application.js中导入Bootstrap
app / javascript / stylesheets / application.scss:
//...
import ''bootstrap''
//...
app / javascript / packs / application.js:
import ''jquery''
import ''popper.js''
import ''bootstrap''
import ''../stylesheets/application''
3。在布局中导入捆绑包
<head>
...
<%= stylesheet_pack_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
<%= javascript_pack_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>
之后,您应该可以在所有应用程序中使用引导程序!
,
[解决方案]因此,在我的HTML(application.html.erb)内部,我有两个对js和css文件的调用:
<script src="assets/javascripts/bootstrap.min.js"></script>
<%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>
<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">
<%= csrf_meta_tags %>
<%= stylesheet_link_tag ''application'',''data-turbolinks-track'':
''reload'' %>
正如您在上面看到的那样,在使用javascript的情况下,我有一个使用脚本的调用,而另一个使用了的调用,两者都造成了问题,所以您只需要评论一个,我就对该脚本进行评论对于我的java文件和CSS文件,一个。 像这样:
<!--<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">-->
<!--<script src="assets/javascripts/bootstrap.min.js"></script>-->
对我来说,解决了这个问题,我真的尝试了所有事情,这就是解决方案哈哈。
android – Dagger 2 Singleton vs Real Singleton 我想在我的项目中使用匕首2. Dagger提供了一个创建单例的好方法,我在项目中有一些,但是Dagger为每个@Singleton对象创建了一个新的对象图,每个新的容器,所以我们必须在应用程序级别创建组件,我们应该提供应用程序使用单身的类,这看起来不太好:(. 问题是:我应该保留我的旧单身人士吗?或者我应该使用匕首?
解决方法:
Dagger是管理单身人士的一种更好的方式,部分原因是你不需要担心在单元测试中如何替换这些单身人士:你的单身人士将通过你可以在单元测试中控制和覆盖的方式注入(即构造函数参数)和可访问的领域).
Dagger creates a new object graph with every new container for each @Singleton object so we have to create the component in the application level
如果您需要应用程序级单例,则需要在应用程序的生命周期中保留相同的组件实例,而不是为每个新的“容器”创建一个新的组件实例.该组件将包含并提供单例,因此您不需要在应用程序中激活多个对象图.如果某个外部创建者(例如Android或servlet引擎)在Dagger之外自己创建对象,这可能意味着您需要将Dagger组件保存在单例持有者(可能是线程安全的公共静态字段)中为你的老单身人士做的;这仍然应该更容易理解和维护,因为您可以通过Dagger提供尽可能多的单例,并且只担心组件本身的一个外部管理单例.
作为替代方案,您可以完全按原样保留旧单例,并在模块中编写@Provides方法,以在Dagger创建的对象请求它们时检索这些单例实例.这样您就可以随时随地创建新的对象图,并且您的单身人士仍将表现为单身人士.不过,我会对此提出警告,因为在这一点上,你的单身人士可以在你的应用程序中以两种不同的方式访问,只有那些由Dagger创建或Dagger管理的人才会在测试中被轻易覆盖;这可能令人困惑,难以管理.
angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在
我在角度创建新项目时面临问题.
当我运行新的myapp命令时,我得到以下命令
新的你好
Error: Path "/app/app.module.ts" does not exist.
Path "/app/app.module.ts" does not exist.
谁能帮我吗???
解决方法
这是解决方案
Please make sure that your new folder have write permission
如果您使用的是ubuntu,请将以下命令运行到该文件夹
sudo chmod 644 -R foldername
然后运行新的appname
并检查您的节点版本
APP 自动化 01 - 基础操作 API-UIautomatorviewer-APP 定位 - 元素等待 - APP 模拟手势高级操作 --- 恢复内容开始 ---
先连接手机:
adb connect 127.0.0.1:7555
APP 基础操作 API
前置代码
# server 启动参数 desired_caps = {} desired_caps[''platformName'' ] = ''Android'' desired_caps[''platformVersion'' ] = ''5.1'' desired_caps[''deviceName'' ] = ''192.168.56.101:5555'' desired_caps[''appPackage'' ] = ''com.android.settings'' desired_caps[''appActivity'' ] = ''.Settings'' # 解决输入中文 desired_caps[''unicodeKeyboard'' ] = True desired_caps[''resetKeyboard'' ] = True # 声明driver对象 driver = webdriver.Remote(''http://127.0.0.1:4723/wd/hub'' , desired_caps)
安装 apk 到手机
driver .install_app (''app路径'' )
手机中移出 apk
driver .remove_app (’APP包名‘)
判断 app 是否已经安装
driver .is_app_install (’APP包名‘)
发送文件到手机
import base64 with open ("./push07.txt" ,"r" ,encoding ="utf-8" ) as f: data =str (base64.b64encode(f.read().encode("utf-8" )),"utf-8" ) driver.push_file("/sdcard/push07.txt" ,data ) 参数: /sdcard/push07.txt:手机设备上的路径(例如:/sdcard/a.txt) data :文件内数据,要求base64编码 Python3.x中字符都为unicode 编码,而b64encode函数的参数为byte 类型,需要先转码; 生成的数据为byte 类型,需要将byte 转换回去
从手机中拉取文件
import base64data = driver.pull_file(path ) # 返回数据为base64编码print (str(base64.b64decode(data),''utf-8'' )) # base64解码参数: path : 手机设备上的路径
获取当前屏幕内元素结构
driver .page_source 作用:返回当前页面文档,判断特点元素是否存在
手机控件查看工具 UIautomatorviewer
作用:用来扫描和分析 Android 应用程序的 UI 控件的工具.
APP 元素定位操作
name
Value
id
id 属性值
Class
class 属性值
Xpath
xpath 表达式
文字定位:driver.find_element_by_xpath ("//*[@text='' 定位文字 '']")
driver.find_element_by_xpath ("//*[contains (@text,'' 部分文字 '')]")
WebDriverWait 显示等待操作
在一个超时时间范围内,每隔一段时间去搜索一次元素是否存在,如果存在返回定位对象,如果不存在直到超时时间到达,报超时异常错误。
方法:WebDriverWait(driver , timeout , poll_frequency ).until (lamda x :x.find_element_by_id(''id属性值'' )) 参数: 1 .driver :手机驱动对象 2 .timeout :搜索超时时间 3 .poll_frequency :每次搜索间隔时间,默认时间为0 .5s 4 .method :定位方法(匿名函数)
APP 元素信息操作 API
点击元素 .click ()
发送数据到输入框 .send_keys ()
清空输入框内容 .clear ()
获取元素的文本内容 .text
获取元素的属性值 .get_attribute (value) #value 是元素属性名
获取元素在屏幕上的坐标 .location
获取启动名和包名
获取包名方法:driver .current_package 获取启动名:driver .current_activity
APP 元素事件操作 API
swip 滑动事件
从一个坐标位置滑动到另一个坐标位置# 滑动持续5秒的时间 driver.swipe(188,659,148,248,5000)
scroll 滑动事件
driver .scroll (开始元素,结束元素)
drag 拖拽事件
driver .drag_and_drop (el1,el2)
应用置于后台
APP放置后台,模拟热启动# app置于后台5s后,再次展示当前页面 driver.background_app(5)
APP 模拟手势高级操作
TouchAction是AppiumDriver的辅助类,主要针对手势操作,比如滑动、长按、拖动等,原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动作,逐个执行。⚠️所有手势都要通过执行函数才会运行.
轻敲操作
方法:tap(element=None , x=None , y=None )方法:perform() # 发送命令到服务器执行操作
按的操作
方法:press(el=None , x=None , y=None ) 方法:release() # 结束动作,手指离开屏幕 再 preform()
等待操作
wait (ms=0 )
手指长按操作
long_press(el=None , x=None , y=None , duration=1000 )默认为1000 毫秒
手指移动操作
方法:move_to(el=None , x=None , y=None ).perform() 参数: 1. el:定位的元素 2. x:相对于前一个元素的X轴偏移量 3. y:相对于前一个元素的Y轴偏移量
--- 恢复内容结束 ---
今天关于如何重构Python Singleton Heavy App? 和如何重构自己的营销认知 的讲解已经结束,谢谢您的阅读,如果想了解更多关于ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、android – Dagger 2 Singleton vs Real Singleton、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、APP 自动化 01 - 基础操作 API-UIautomatorviewer-APP 定位 - 元素等待 - APP 模拟手势高级操作 的相关知识,请在本站搜索。