对于想了解在大型Java项目中有效管理可重用函数的读者,本文将提供新的信息,我们将详细介绍在大型java项目中有效管理可重用函数吗,并且为您提供关于Apache在大型PHP文件上使用$_SESSION
对于想了解在大型 Java 项目中有效管理可重用函数的读者,本文将提供新的信息,我们将详细介绍在大型 java 项目中有效管理可重用函数吗,并且为您提供关于Apache 在大型 PHP 文件上使用 $_SESSION 变量的奇怪行为、bash – 在大型(30G)单行文件上运行sed会返回空输出、Dask Workflow 在大型 DataFrame 上并行进行集成预测、Django - 在大型 try 块中传递异常而不跳过整个块?的有价值信息。
本文目录一览:- 在大型 Java 项目中有效管理可重用函数(在大型 java 项目中有效管理可重用函数吗)
- Apache 在大型 PHP 文件上使用 $_SESSION 变量的奇怪行为
- bash – 在大型(30G)单行文件上运行sed会返回空输出
- Dask Workflow 在大型 DataFrame 上并行进行集成预测
- Django - 在大型 try 块中传递异常而不跳过整个块?
在大型 Java 项目中有效管理可重用函数(在大型 java 项目中有效管理可重用函数吗)
大型 java 项目中的可重用函数管理至关重要,本文提供了最佳实践:创建模块化函数,明确职责和接口。将函数分组到模块中,保持代码组织。使用依赖注入实现松散耦合和可测试性。使用代码生成工具简化通用函数的生成。实战案例:用户身份验证函数通过封装在模块中并用于不同控制器,展示了可重用函数的有效管理。
大型 Java 项目中的可重用函数管理
简介
在大型 Java 项目中,可重用函数的有效管理至关重要,它可以提高效率、减少重复并增强代码的可维护性。本文将介绍最佳实践和实战案例,帮助你有效管理可重用函数。
立即学习“Java免费学习笔记(深入)”;
最佳实践
- 创建模块化函数:设计函数时,将其作为模块化单元,具有明确的职责和输入/输出。
- 使用接口和抽象类:通过接口和抽象类定义函数契约,以便它们可以轻松地互换或扩展。
- 将函数分组到模块中:根据功能将相关函数分组到模块或包中,以保持代码组织有序。
- 使用依赖注入:通过依赖注入框架将函数依赖性注入到客户端代码中,实现松散耦合和可测试性。
- 使用代码生成工具:自动生成通用函数代码,例如持久性或日志记录函数,以简化和标准化这些任务。
实战案例
假设我们有一个 Java 项目,需要管理用户身份验证功能。我们定义一个可重用函数,如下所示:
public class AuthenticationService { public static boolean authenticate(String username, String password) { // 这里实现身份验证逻辑 return true; } }
我们将其作为模块的一部分包含在项目中,并在不同的控制器和服务中使用它,如下所示:
@RestController public class UserController { @PostMapping("/login") public ResponseEntity<?> login(@RequestBody UserLoginRequest request) { if (AuthenticationService.authenticate(request.getUsername(), request.getPassword())) { // 创建并返回 JWT 令牌 } else { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); } } }
通过遵循这些最佳实践,我们有效地管理了可重用函数,提高了代码的可维护性、模块性和测试效率。
以上就是在大型 Java 项目中有效管理可重用函数的详细内容,更多请关注php中文网其它相关文章!
Apache 在大型 PHP 文件上使用 $_SESSION 变量的奇怪行为
如何解决Apache 在大型 PHP 文件上使用 $_SESSION 变量的奇怪行为
我有一个包含大量 HTML 和 CSS 的大型 PHP 文件,后跟一段 PHP 代码。
但是,如果我在 PHP 代码开始之前添加超过 4199 个字符,则 PHP 代码 永远不会 没有正确执行(服务器仍然在 PHP 部分之后发送 HTML)。
但是如果我从命令行运行 PHP 文件,它就可以正常工作。
所以我想问题是 Apache 服务器配置以某种方式限制了执行的 PHP 文件的大小。
系统:
- Ubuntu 服务器 20.10
- Apache/2.4.46 (Ubuntu)
- PHP 7.4.9 (cli)
<?PHP code that works just fine ?>
<!DOCTYPE html>
<html>
<div> lots of HTML (4200+ characters) </div>
<?PHP code that is not properly executed ?>
<div> more HTML that gets transmitted by the server </div>
</html>
有人知道我可以在哪里更改此限制吗?
解决方法
也许出于性能原因,php文件只在开始时检查。如果没有 php 语句,则将其视为常规文本/html 文件。
所以如果你只需要一个问题的解决方案,在开头添加类似
<?php echo; ?>
然后该文件应该被识别为 php 文件,并且您可以在实际的 php 代码开始之前添加任意数量的 html 标签。
,我在 /etc/php/7.4/apache2/php.ini
中找到了选项 output_buffering = 4096
,我现在已经增加了,以便我的整个 PHP 文件在该限制范围内。
显然,问题与 PHP 会话有关,该会话在发送的第一个 4096 字节之后 声明。 (我认为由于数据传输的“拆分”,浏览器没有设置会话)
但我不确定这是否真的是问题所在。
我也在文件的开头尝试了 session_start();
但这并没有解决问题。
@Hannes 感谢您的帮助。
bash – 在大型(30G)单行文件上运行sed会返回空输出
我希望这需要一些时间,但是,当我运行它时,它会在几秒后返回,当我查看生成的文件时,它的长度为零.
>输入文件有30G
$ls -lha Full-Text-Tokenized-Single-Line.txt -rw-rw-r-- 1 ubuntu ubuntu 30G Jun 9 19:51 Full-Text-Tokenized-Single-Line.txt
>运行命令:
$sed 's/<unk>/ /g' Full-Text-Tokenized-Single-Line.txt > Full-Text-Tokenized-Single-Line-No-unks.txt
>输出文件长度为零!
$ls -lha Full-Text-Tokenized-Single-Line-No-unks.txt -rw-rw-r-- 1 ubuntu ubuntu 0 Jun 9 19:52 Full-Text-Tokenized-Single-Line-No-unks.txt
我尝试过的事情
>在较短的文件上运行相同的示例:工作
>使用-e修饰符:不起作用
>逃避“<”和“>”:不起作用
>使用简单的模式行(‘s / foo / bar / g’)代替:不起作用:返回零长度文件.
编辑(更多信息)
>返回码为0
> sed版本是(GNU sed)4.2.2
如果您的文件中有空格(以防止搜索模式分割),则可以使用一个建议
fold -s file_with_one_long_line | sed 's/find/replace/g' | tr -d '\n' > output
PS.折叠默认宽度为80,如果您的单词长度超过80,您可以添加-w 1000或至少最长的单词大小以防止单词拆分.
Dask Workflow 在大型 DataFrame 上并行进行集成预测
如何解决Dask Workflow 在大型 DataFrame 上并行进行集成预测
我有一个不适合内存的大型 dask DataFrame。我试图从模型的列表中获得对整个数据集的预测。由于模型预测彼此独立,因此将它们与 dask 延迟并行化应该很容易。所以我尝试了以下方法:
将大型数据集加载到内存中:
dfs = [delayed(pd.read_feather)(i) for i in [LOC1,LOC2,LOC3]]
df = dd.from_delayed(dfs).repartition(partition_size="1GB")
使用delayed
进行并行预测的逻辑(对于单个块):
preds = []
for i in range(lmodel.n_models):
preds.append(delayed(models[i].predict)(data_chunk))
# compute parallely
preds = dd.compute(*preds)
# later on we compute the mean
preds = np.mean(preds,axis=1)
我想知道如何将这两种逻辑组合成一个 dask 工作流。由于整个数据帧不适合内存,因此需要以顺序方式进行预测(为了内存)。然而,对于每个块,我们可以并行化预测本身以节省我们的时间。 df.map_partition
用于顺序处理分区。但我不知道该怎么做。
我也想知道我们是否可以将worker的数量增加到7个。因为我在ensemble中有7个模型。请注意,数据加载、预测都需要在一台机器上完成。
在上面的代码中,preds
是一个列表,因此,即使我们在最后做了一个 np.mean
,也会不必要地浪费空间。更优化的方法是将预测值除以模型总数,然后相加。使用 np.array
并聚合结果不起作用。有没有更好的方法来解决这个问题?
Django - 在大型 try 块中传递异常而不跳过整个块?
如何解决Django - 在大型 try 块中传递异常而不跳过整个块?
我在 django 中有一个视图,它根据用户输入收集大量数据。有时,并非所有数据都可用于特定查询。我目前有很大的 try 块,但它不太理想,因为它会跳过整个块并且不显示任何数据。
有没有什么方法可以在不执行大量单独的 try 块的情况下继续处理错误?这是一个更短的示例,用于展示我目前拥有的内容。
try:
year1 = income[0][''date'']
year2 = income[1][''date'']
year3 = income[2][''date'']
year4 = income[3][''date'']
year5 = income[4][''date'']
except Exception as e:
pass
如果 year5 不可用,这将通过整个块。一种解决方案是将每年都放在自己的 try 块中,但这会增加 100 行代码(如果不是数千行)。如果有一种简单的方法来维护成功收集的数据,并传递那些抛出异常的数据(或给它们一个默认值),那就太好了。
谢谢!
解决方法
如果你想给它们一个默认值,你可以使用字典的 get
方法:
year1 = income[0].get(''date'')
这将是执行此操作的最佳方法,您希望获取“日期”键(如果存在),否则为 None。
异常对于错误管理比条件分支更有用。
关于在大型 Java 项目中有效管理可重用函数和在大型 java 项目中有效管理可重用函数吗的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Apache 在大型 PHP 文件上使用 $_SESSION 变量的奇怪行为、bash – 在大型(30G)单行文件上运行sed会返回空输出、Dask Workflow 在大型 DataFrame 上并行进行集成预测、Django - 在大型 try 块中传递异常而不跳过整个块?的相关知识,请在本站寻找。
本文标签: