.NET周报【1月第3期 2023-01-20】

这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐!

国内文章

看我是如何用C#编写一个小于8KB的贪吃蛇游戏的

http://www.cnblogs.com/InCerry/p/building-a-self-contained-game-in-c-under-8-kilobytes-74c3cf60ea04.html

译者注:这是Michal Strehovský大佬的一篇文章,他目前在微软.NET Runtime团队工作,主要是负责.NET NativeAOT功能的开发。我在前几天看到这篇文章,非常喜欢,虽然它的内容稍微有点过时(还是使用的.NET Core 3.0),不过其中的一些编程技巧和思维方式很受用,特意找到Michal大佬要到了授权,翻译给大家看。

gRPC入门与实操(.NET篇)

http://www.cnblogs.com/newton/p/17033789.html

本文介绍了如何.NET中gRPC的入门和代码实践。

dotnet 代码优化 聊聊逻辑圈复杂度

http://www.cnblogs.com/lindexi/archive/2023/01/09/17038319.html

本文属于 dotnet 代码优化系列博客。相信大家都对圈复杂度这个概念很是熟悉,本文来和大家聊聊逻辑的圈复杂度。代码优化里面,一个关注的重点在于代码的逻辑复杂度。一段代码的逻辑复杂度越高,那么维护起来的难度也就越大。衡量代码的逻辑复杂度的一个维度是通过逻辑圈复杂度进行衡量。本文将告诉大家如何判断代码的逻辑圈复杂度以及一些降低圈复杂度的套路,让大家了解如何写出更好维护的代码。

dotnet 位列Linux基金会发布的 Top 30开源项目

http://mp.weixin.qq.com/s/1cevbNaCjJxGC3jT1OEcMA

如标题所示,经过Linux基金会的统计,dotnet位于Top 30的开源项目。

.NET Core + React 单点登录系统

这是基于.NET Core 3.1、React开发的开源项目,支持账号密码、手机短信、第三方登录,采用前后端分离架构的单点登录系统。

一款完全国产的基于C#语言开发的跨平台的文本解析引擎(模板引擎)

http://mp.weixin.qq.com/s/oUamKudNlELUIIIfT49OEw

大家好,我是宝弟!今天给大家分享一款完全国产的基于C#语言开发的跨平台的文本解析引擎(模板引擎)JNTemplate,它能生成任何基于文本的内容,包括且不限于html,xml,css等,让前端展示与后端代码逻辑分离。同时,它也提供了一个在WebForm与Razor之外的选择!

Blazor WebAssembly的初次访问慢的优化

http://mp.weixin.qq.com/s/KhK-uvMFrL8qNmk-26r6cQ

Blazor WebAssembly初次访问需要加载很多dll,体积较大,因此第一次加载比较慢。针对此问题Microsoft提供了优化方案:压缩 http://learn.microsoft.com/zh-cn/aspnet/core/blazor/host-and-deploy/webassembly?view=aspnetcore-6.0#compression-1

.Net6在Docker环境下操作Selenium.Chrome的那些坑

http://mp.weixin.qq.com/s/y-s-_G7tbNhT0xRG8cl1Bg

本文介绍了如何.Net6中实现对某个网址截屏,可通过Selenium模拟访问网址并实现截图,另外还有遇到的一些问题。

.NET7 一个实用功能-中央包管理

http://mp.weixin.qq.com/s/H8ysc3_DOfl5zUoeFDVOgw

依赖管理是 NuGet 的核心功能。Nuget管理单个项目的依赖关系很容易,只需要每个项目维护自己的Nuget依赖与对应版本。在您管理许多不同项目的公共依赖项的情况下,您可以利用 NuGet 的中央包管理功能从一个位置轻松完成所有这些工作。

2022年github上Stars排名前十的.NET开源项目

http://mp.weixin.qq.com/s/IWTp0u43uHNf4Cz2riXaoQ

2023年已经开始了,在2022年从事.NET开发的你有什么收获呢?在过去的2022年里面,GitHub最受欢迎、Stars最多的项目分别是哪些呢?今天我们分享一下github上Stars排名前十的非官方.NET开源项目。

8KB的C#贪吃蛇游戏热点答疑和.NET7版本

http://mp.weixin.qq.com/s/Zedkai4YpSEmT9BKUTe0qg

在之前的一篇文章《看我是如何用C#编写一个小于8KB的贪吃蛇游戏》中,介绍了在.NET Core 3.0的环境下如何将贪吃蛇游戏降低到8KB。不过也有很多小伙伴提出了一些疑问和看法,本文一一为大家解答这些问题。

主题

【英文】.NET 2023年1月更新 .NET 7.0.2, .NET 6.0.13 - .NET博客

http://devblogs.microsoft.com/dotnet/january-2023-updates/

.NET 7.0.2和.NET 6.0.13已经发布。

该版本修复了.NET 6中的一个DoS漏洞。 该漏洞允许通过向已发布的端点发送恶意请求,造成堆栈溢出,从而进行拒绝服务攻击。

【英文】ReSharper 2023.1开始公测 | .NET工具博客

http://blog.jetbrains.com/dotnet/2023/01/19/resharper-2023-1-eap-starts/

ReSharper 2023.1的EAP(早期访问计划)已经开始。

ReSharper 2023.1 EAP 1包括代码检查方面的改进,如对#region的快速修复,将Span.SequenceEquel重写为is,以及改进的C++支持。

【英文】Rider 2023.1开始公测 | .NET工具博客

http://blog.jetbrains.com/dotnet/2023/01/19/rider-2023-1-eap-start/

Rider 2023.1的EAP(早期访问计划)已经开始。

Rider 2023.1 EAP 1包括Unity的API弹出式文档链接,在虚幻引擎中创建新类的重新实现的UI,对Docker的快速模式支持,对#regionSpan的快速修复。 SequenceEquel重写为is,代码检查的改进,以及主工具栏的UI修复。

【英文】Visual Studio 2022 17.5 Preview 3来了!

http://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-5-preview-3-is-here/

Visual Studio 2022 17.5 Preview 3现已发布。

  • 通用IDE Shell、Git、编辑器、调试器、诊断器
    • 无障碍检查器
    • 拼写检查器
    • 改进了外部源码的调试
      • 改进反编译性能
    • Markdown成为默认编辑器
    • VS 基于意图的建议
    • 使用Microsoft.Data.SQL.Client连接到SQLServer
  • 迄今为止,在美国,有很多人都在使用".NET "这个名字。
    • 支持Razor文件中的HTML代码动作
      • 移除标签,对图像进行Base64编码,插入图像的宽度和高度
    • Razor和Roslyn的性能改进
      • 改进了项目配置切换的输入,加快了代码分析,减少了UI延迟
    • 构建加速以实现更快的增量构建
      • project-system/build-acceleration.md at main - dotnet/project-system - GitHub
  • C++
    • 支持对括号的着色
    • 在终端打开开发容器(devcontainer)。
  • 设置
    • 改进winget中的Visual Studio包

【英文】发布.NET社区工具包8.1!更好、更快的MVVM源码生成器,对.NET 7的支持,以及更多

http://devblogs.microsoft.com/dotnet/announcing-the-dotnet-community-toolkit-810/

.NET社区工具包8.1已经发布。

ObservableProperty的自定义属性,MVVM工具包分析器,MVVM工具包源生成器优化,IObservable<T>信使扩展,.NET 7和C# 11支持。

【英文】MinBZK/woo-besluit-broncode-digid-app

http://github.com/MinBZK/woo-besluit-broncode-digid-app

一个名为DigiD的荷兰应用程序已被作为开放源代码发布。 (这是一个全国性的应用,似乎是政府透明度维护活动的一部分)。

该应用程序有1500万活跃用户,是用Xamarin.Forms制作的。

  • DigiD | Home English
  • Broncode DigiD app openbaar gemaakt | Logius

【英文】dotnet/maui 7.0.58版服务版本2

http://github.com/dotnet/maui/releases/tag/7.0.58

.NET MAUI 7.0.58服务版本2已经发布。

该版本修复了各种错误并更新了Windows App SDK。

【英文】.NET框架1月2023日累积更新预览 - .NET博客

http://devblogs.microsoft.com/dotnet/dotnet-framework-january-2023-update/

.NET框架的2023年1月累积更新预览已经发布。

该版本修复了几个WPF的错误和Socket的一个罕见问题。

【英文】Visual Studio拼写检查器预览版现已发布 - Visual Studio博客

http://devblogs.microsoft.com/visualstudio/visual-studio-spell-checker-preview-now-available/

对Visual Studio预览版中现在可用的拼写检查器的介绍。

这篇文章介绍了如何使用拼写检查器,它检查哪些模式以及如何定制它。

文章、幻灯片等

【日文】[C# 12候选特性] IEnumerable的列表模式

http://ufcpp.net/blog/2023/1/list-pattern-enumerable/

C# 12 IEnumerable的候选列表模式匹配。

【日文】[C# 12候选特性] 半自动属性

http://ufcpp.net/blog/2023/1/semi-auto-property

本文介绍了C#12候选半自动属性(只有后援字段是自动生成的)。

它还解释了初始化器和它们被覆盖时的行为。

【英文】初学者指南,开始使用C#中的智能合约

http://dev.to/satyakarki/beginners-guide-to-get-started-with-smart-contract-in-c-3c7e

介绍使用Stratis实现智能合约,这是一个允许用C#实现智能合约的平台。

【英文】.NET Native AOT

http://ericsink.com/native_aot/index.html

该系列文章涉及关于Native AOT的解释和示例代码。

【英文】2022年在C#项目中发现的十大错误

http://pvs-studio.com/en/blog/posts/csharp/1020/

由PVS-Studio开发人员发现并报告的2022年开源项目中发现的十大错误汇编。

【英文】利用.NET UserSecrets来保护敏感信息 | .NET工具博客

http://blog.jetbrains.com/dotnet/2023/01/17/securing-sensitive-information-with-net-user-secrets/

介绍如何使用.NET UserSecrets在本地存储敏感信息并从你的应用程序中使用它。

使用JetBrains Rider的.NET用户秘密以及如何从你的应用程序中管理和使用它们。

【英文】新:Visual Studio中更好的搜索 - Visual Studio博客

http://devblogs.microsoft.com/visualstudio/new-better-search-in-visual-studio/

对Visual Studio中预览的新的一体式搜索的介绍。

【英文】用ASP.NET Core 7.0进行速率限制

http://medium.com/abp-community/rate-limiting-with-asp-net-core-7-0-e7834a94b8c5

介绍.NET 7中的速率限制API以及如何在ASP.NET Core中使用它。

【英文】探索最小化API的模型绑定逻辑:最小化API的幕后 - 第三部分

http://andrewlock.net/behind-the-scenes-of-minimal-apis-3-exploring-the-model-binding-logic-of-minimal-apis/

探索最小化API的模型绑定逻辑:最小化API的幕后故事--第395部分。

这篇文章解释了如何将收到的请求与处理程序参数绑定的机制和流程。

【英文】用ASP.NET Core进行多文件拖放上传|Khalid Abuhakmeh

http://khalidabuhakmeh.com/multiple-file-drag-and-drop-upload-with-aspnet-core

如何实现Razor页面的多文件拖放式上传。

【英文】读取内存中的 "对象" - 从堆栈开始

http://chnasarre.medium.com/reading-object-in-memory-starting-with-stacks-aaef54bd521d

关于如何读取可由诊断协议nettrace接收的对象的有效载荷的解释。

【英文】学习 DateOnly & TimeOnly

http://dev.to/karenpayneoregon/learn-dateonly-timeonly-23j0

介绍DateOnly和TimeOnly的基础知识,以及它们在Json.NET、System.Text等库中的支持。

【日文】PropertyChangedEventManager在线程池中失败 - Qiita

http://qiita.com/emoacht/items/3f7e216b43431e960751

关于PropertyChangedEventManager``AddListener/RemoveListener必须从同一个线程调用。

【日文】[C#] 创建并理解你自己的字典(HashTable)

http://zenn.dev/fugi/articles/d2a5ef35e4190f

试图实现类似Dictionary的结构,并了解如何处理哈希值。

【日文】[C#] 异步主函数,不允许线程使用STA

http://zenn.dev/nin_neko/articles/6f08f2fdace43f

关于以及如何处理当入口点有STAThread属性但却是async Task的异步方法时,线程单位没有被设置为STA。

【日文】[.NET] 你可以在配置文件(如appsettings.json)中写注释 - Qiita

http://qiita.com/yaju/items/35d94a20e8e3e8ca268c

Microsoft.Extensions.Configuration.Json(例如appsettings.json)关于允许在JSON中写JavaScript或C#风格的注释。

【日文】在ASP.NET Core中创建自定义验证属性 - Qiita

http://qiita.com/gushwell/items/d659027304645b30b805

如何在ASP.NET Core中用ValidationAttribute实现自定义验证属性。

【日文】在.NET中委托性能的演变

http://medium.com/@skyake/the-evolution-of-delegate-performance-in-net-c8f23572b8b1

.NET 7中PGO的委托优化解析。

【英文】用.NET工作器服务在GitHub上跟踪你的编码进度

http://dev.to/sannae/track-my-coding-progress-on-github-with-a-net-worker-service-49g4

一个如何实现工作者服务的例子,以跟踪GitHub上存储库的语言统计数据。

【日文】将using alias用于任意类型

http://ufcpp.net/blog/2023/1/using-alias-any-types/

对通过 "使用"来扩展别名可以定义的内容的建议进行评论。

【英文】用BenchmarkDotNet对Linux上的.NET进行分析

http://adamsitnik.com/PerfCollectProfiler/

如何在Linux上用BenchmarkDotNet对.NET进行剖析。

0.13.3中引入的PerfCollectProfiler插件允许将剖析结果以PerfView、SpeedScope和任何支持perf文件的工具所能打开的格式导出。

开源库、资源库、工具

【英文】Dots - 友好的.NET SDK管理器 - Johnnys.News

http://johnnys.news/2023/01/Dots-a-dotnet-SDK-manager

一个用于安装和卸载各种.NET SDK的GUI工具。

【英文】VeloxDB/VeloxDB: 一个面向对象的数据库,用于用.NET和C#构建下一代的解决方案

http://github.com/VeloxDB/VeloxDB

一个用C#编写的面向对象的数据库,适用于.NET平台。

  • 介绍VeloxDB

【英文】otterkit/otterkit: Otterkit COBOL编译器

http://github.com/otterkit/otterkit

为.NET平台提供ISO COBOL 2022的编译器和运行时实现。

【英文】StableDiffusionDiscordBot

http://stablediffusiondiscordbot.azurewebsites.net/

Discord Bot和它的网站,用于用稳定扩散的AI图像生成,等等。

  • 关于用Blazor创建的网站的故事,增加了一个执行AI图像生成(如稳定扩散)的Discord Bot

【英文】Marplex/WpfSnowfall: 完全可定制的WPF降雪控件

http://github.com/Marplex/WpfSnowfall

一个允许你在你的WPF应用程序中进行降雪的控件。

  • 在你的WPF应用程序中添加一些雪

网站、文件等

【英文】NuGet包验证控制 - .NET | 微软学习

http://learn.microsoft.com/ja-jp/dotnet/fundamentals/package-validation/baseline-version-validator

描述了在.NET 6及以后版本中引入的NuGet包验证功能。

它可以检测到从创建NuGet包时指定的基线版本对API的破坏性变化。

  • 在打包时检测NuGet包的两个版本之间的突破性变化 - Gérald Barré

【英文】ML.NET教程|10分钟内入门|.NET

http://dotnet.microsoft.com/ja-jp/learn/ml-dotnet/get-started-tutorial/intro

  • 用ML .NET分析文本中的情感

关于使用ML.NET来确定文本的正负性的教程。

推文

谈谈.NET 8中Kestrel的命名管道支持。

http://twitter.com/jamesnk/status/1615902642492039180

image-20230120190017492

版权声明

  • 国内板块由 InCerry 进行整理 : http://github.com/InCerryGit/WeekRef.NET
  • 其余内容来自 Myuki WeekRef,由InCerry翻译(已获得授权) : http://github.com/mayuki/WeekRef.NET

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。

格式如下:

  • 10~50字左右的标题
  • 对应文章或项目网址访问链接
  • 200字以内的简介,如果太长会影响阅读体验

http://github.com/InCerryGit/.NET-Weekly

.NET性能优化交流群

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:

  • 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
  • .NET框架底层原理的实现,如垃圾回收器、JIT等等
  • 如何编写高性能的.NET代码,哪些地方存在性能陷阱****

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。

如果提示已经达到200人,可以加我微信,我拉你进群: ls1075

另外也创建了QQ群,群号: 687779078,欢迎大家加入。

本文转载于网络 如有侵权请联系删除

相关文章

  • 腾讯汤道生:教育是腾讯产业互联网的重点领域

    “教育是一项关系社会民生的长期事业,腾讯对教育一直坚持长期主义,既有乐观的信心,也有坚守的耐心,未来将继续加大对教育事业的投入。”6月29日,腾讯与深圳大学签署全新战略合作协议,腾讯集团高级执行副总裁、云与智慧产业事业群CEO汤道生出席签约仪式时表示。汤道生指出,教育一直都是腾讯产业互联网的重点领域,与深圳大学的合作实践,是腾讯以数字技术助力教育发展的一个缩影。“高校是腾讯教育重点关注的领域”,汤道生强调。据介绍,腾讯与深圳大学的合作渊源已久,双方在产学融合人才培养、科研教学、智慧校园建设等领域取得了丰硕的成果。以人才培养为例,腾讯与深圳大学联手打造了腾讯云人工智能特色班(又称“腾班”)。腾班整合了深圳大学计算机学院深厚的师资力量,以及腾讯在人工智能、云计算等领域的先锋实践,并将腾讯在教育、医疗、工业、交通等行业沉淀的100多个案例,放入了学生的云端实验室。理论和实操相结合的腾班模式,交出了一份亮眼的育人成绩单。2021年,腾班所在的腾讯云人工智能学院,成功入选了教育部首批现代产业学院名单。今年6月,腾班迎来首届本科毕业生,在2022届高校毕业生就业整体承压的情况下,90%以上的腾班毕

  • COS云存储有哪些优势?基于EasyCVR平台的两种监控视频数据存储方案

    随着物联网、AI、云计算、大数据等新兴技术的发展、海量设备的接入、视频质量的不断提升,监控视频存储也面临着巨大的挑战。当前用户对视频监控数据的存储问题,主要考虑到以下三个因素:1)数据的安全性和稳定性2)数据的高效管理,比如在事发时能够进行快速地调度和检索3)带宽消耗与成本投入也是用户考虑的关键今天我们给大家介绍基于EasyCVR平台的两种视频录像数据的存储方案。1、本地存储方案1)技术架构图将所有监控点的设备通过GB28181协议统一接入到EasyCVR平台,监控点的录像视频数据做统一的本地存储。2)优缺点对比缺点:易存在单点故障,一旦某个节点出现故障,则存储无法有效完成,影响整体存储带宽成本高,每条通道需要向存储服务器发送数据维护不方便,需要前往现场排查节点故障,运维成本较高优点:软件成本较低,仅需部署EasyCVR平台及相关服务器2、云存储方案1)技术架构图每个监控点做单独的云存储,视频资源可统一接入EasyCVR平台,实现实时的视频监控观看、录像、云存储等功能。每个监控点配置一台上云网关,可将监控点的设备统一接入,进行集中管理,并统一接入到EasyCVR,通过EasyCVR平台

  • Implementing a CNN for Text Classification in TensorFlow(用tensorflow实现CNN文本分类) 阅读笔记

    目前正在学习把深度学习应用到NLP,主要是看些论文和博客,同时做些笔记方便理解,还没入门很多东西还不懂,一知半解。贴出来的原因,一是方便自己查看,二是希望大家指点一下,尽快入门。原paper:ConvolutionalNeuralNetworksforSentenceClassification 源代码:https://github.com/dennybritz/cnn-text-classification-tf原博客:http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/数据和预处理 数据集:电影评论数据——MovieReviewdatafromRottenTomatoes,包含5331个积极的评论和5331个消极评论,同时包含一个20k的词表 注意:数据集过小容易过拟合,可以进行10交叉验证 步骤: 加载两类数据 文本数据清洗 把每个句子填充到最大的句子长度,填充字符是,使得每个句子都包含59个单词。相同的长度有利于进行高效的批处理 根据所有单词的词表,建立一个

  • JupyterLab 与 Google Drive的完美融合!

    作者:Dario编译:1+1=6 1前言说到云存储选项,有太多的选项可供选择:GoogleDrive、OneDrive和Dropbox适用于普通用户,如果你想要更安全的服务,Tresorit或PCloud也可以选择。但你可能对这些都不太感兴趣,主要原因是我们想知道我的数据在哪里,而“在某个遥远的地方”并不能让我们很满意。这就是我们更热衷于家庭云解决方案的原因。 今天我们将看到如何用JupyterLab设置GoogleDrive。1安装扩展插件地址:https://github.com/jupyterlab/jupyterlab-google-drive打开命令提示符或终端,输入以下命令:jupyterlabextensioninstall@jupyterlab/google-drive复制如果出现错误,请确保安装了NodeJS: 地址:https://nodejs.org/en/等扩展就会安装完毕,现在你可以启动JupyterLab了。侧边栏已经有所不同:这意味着扩展已经成功安装并可以使用。但也不完全是,稍后会有详细的介绍。现在你只能在打开GoogleDrive的时候看到它的logo:

  • 十年Java架构师大厂实战(年薪80W)

    那些号称大厂的地方BAT一直是程序员心神向往的地方,那些最最前沿的一线互联网技术都出自这些合称为大厂的地方,那里人才济济,哪怕实战经验不好的程序员进了那里,都会受到技术的熏陶,培养出来的技术人员,不说能够执掌一方,至少也能够独当一面。但是,大厂也不是你想进就能进的,必须得有一些技术能力的积累,如果你学历不如人家,那么你就应该努力从技术能力上碾压他。文末有福利放送,感谢大家支持。那位被称为大牛的男人James,10年行业经验,其中3年外企、7年互联网工作经验。曾就职于惠普、大众点评、互联网金融行业,丰富的前后台大型项目架构经验。有着丰富的分布式服务,高并发、高可用应用经验。对系统诊断、调优有大量的实战经验。精通java、j2ee架构、redis、mongodb、消息组件如kafka、activeMq。由于关系还不错,我就让他帮忙整理了一套他从业多年的技术储备,今天小编编这篇文章的时候,大佬还在授课,分享技术知识。以下就是他给我的一套Java架构技术体系,供各位爱学习成长的同僚借鉴参考,共勉。图谱需要可自行下载,文末有福利放送,感谢大家支持。性能优化1.性能优化如何理解2.JVM调优3.T

  • 从零开始学 Web 之 CSS3(六)动画animation,Web字体

    一、动画1、创建动画好的前端工程师,会更注重用户的体验和交互。那么动画就是将我们的静态页面,变成具有灵动性,为我们的界面添加个性的一种方式。一个动画至少需要两个属性:animation-name:动画的名字(创建动画时起的名字,如下为moveTest)animation-duration:动画的耗时animation-name:moveTest; animation-duration:2s;复制如需在CSS3中创建动画,需要学习@keyframes规则。@keyframes规则用于创建动画。在@keyframes中规定某项CSS样式,就能创建由当前样式逐渐改为新样式的动画效果。使用@keyframes关键字来创建动画。@keyframesmoveTest{ /*百分比是指整个动画耗时的百分比*/ 0%{ transform:translate(0px,0px); } 50%{ transform:translateY(200px); } 100%{ transform:translate(200px,200px); } }复制其中,百分比是指整个动画耗时的百分比。 示例:<!DO

  • japi项目需求分析阶段

    项目简介japi项目,是一个接口自动化平台开发项目,由【测试开发刚哥交流群】招人共建,基于JMeter,参考MeterSphere,以学习为目的,完成一个SpringBoot+Vue技术栈的纯粹的接口自动化平台开发。项目成员经过"填写人员分工表"以后,最终有38人参与了本次项目:刚哥、布鲁、嘉宥、守正、大刚、风雨、奉孝、大姚、畅月、渔夫、小禹、钰琪、天湖、迷龙、肥涵、胖子、局长、呼呼、明亮、安宁、木棉、番茄、玥玥、哈瑞、虚竹、十五、阿新、卡罗、大白、库昊、左右、小涌、古风、玉洁、小韩、小卷、千凝、昆明。随着项目进行,后续“提交学习总结”等环节层层递进,真正留下来的项目成员,会在GitHub的README中署名。在填表时收集了大家的历史经验,这里汇总整理了一下,供参考:“Vue+Django写过测试平台;SpringBoot写过后端应用;Python小工具开发;Python+Pytest+Requests搭建接口自动化框架;Python+Unittest或Pytest自动化测试框架搭建及脚本开发;各类开源自动化测试平台搭建,如:HttpRunnerManager、流马

  • 其他测试方法概述

    输出域覆盖法 需求界面当中可见参数存在有效和无效规则校验,但没有明确限制输入条件,而需求种给出了输出的限定条件,而我们要根据业务由输出倒退输入,此时可以使用输出域覆盖法设计测试用例 1.询问开发或根据代码找出所有的输出结果 2.检查写过的测试用例是否把所有输出结果覆盖到,如果有未覆盖到用例则补测试用例 3.根据输出结果倒推测试用例步骤及测试数据 输出域覆盖法能保证所有输出结果都是被覆盖到,要求必须对业务要熟悉   输入域覆盖法 输入域分析是一种综合的方法,综合了等价类划分法、边界值分析法等方法。这里说的输入域就是指输入,针对输入会有各种各样的输入指: a特殊值:主要和输入的特点有关,需要了解系统对该输入的存储和处理 b.长时间输入:对于那些没有限制输入长度的输入进行长时间持续输入,以查看是否会存在输入的数据内存越界导致系统故障的情况。 1.根据SRS找出输入的类型边界和特殊值 2.根据类型边界值和特殊值找到相应的类型边界值和特殊值并写出相应的测试用例 输入域覆盖法考虑的更加安全,但是输入不一定存在类型边界或特殊值   异常分析法 异常分析就是针对系统可能存在的异常操

  • 封装Vue Element的可编辑table表格组件

    前一段时间,有博友在我那篇「封装VueElement的table表格组件」的博文下边留言说有没有那种“表格行内编辑”的封装组件,我当时说我没有封装过这样的组件,因为一直以来在实际开发中也没有遇到过这样的需求,但我当时给他提供了一个思路。 时间过去了这么久,公司的各种需求也不停地往外冒,什么地图图表、表格行内编辑、动态新增表单等等,只有你做不到,没有产品想不到,贼鸡儿累。再加上很快又要过年了,大家工作的心态基本呈直线下滑趋势而玩忽职守、尸位素餐以致饱食终日。只是话虽如此,但越是到年底,需求开发却越是紧急,平时可能一两周的开发任务,现在却要压缩到一周左右就要完成,苦不堪言。这不公司刚刚评完了需求,年前就让开发完成并提测,说是等年后来了,测试同学搞定后就上线。 话说这表格行内编辑,不光要在表格一行内实现文字的编辑,而且还要实现可新增一行或多行表格行内编辑的功能,同时还希望实现表格行内表单的正则验证。听着复杂,想着实现起来也复杂,其实不然,我们完全可以参照element「动态增减表单项」的模式来搞。原理大概其就是利用每一行的索引来设置每一个表单所需的prop和v-model,如果需要新增一行可

  • [Android] 对ImageView设置属性scaleType为FIT_START,如何去掉多余空白

    当对ImageView设置了属性scaleType为FIT_START时,可以通过调用ImageView的setAdjustViewBounds(true)。 即: imageView.setScaleType(ImageView.FIT_START); imageView.setAdjustViewBounds(true);

  • docker-compose的实例应用

      前段时间,因为测试需要,要搭建web实验环境(postgresql+php+nginx),首选肯定是在docker中搭建,为了充分发挥docker的优势,我选择了使用3个docker来搭建web服务环境。因为要切换4个不同的postgresql版本,所以尽管使用了docker,配置起来很是麻烦,一个环境就要配置半天,还有各种坑等着你来踩。就在我苦苦寻找跳坑方法时,无意中发现了docker-compose这个工具。docker-compose可以将多个docker容器联合起来做成一个服务,简直就是为web服务而生的。   Compose中的几个重要概念:     任务(TASK)一个容器被称为一个任务。任务拥有独一无二的ID,在同一个服务中的多个任务序号一次递增。     服务(SERVICE)某个相同应用镜像的容器副本集合,一个服务可以横向扩展为多个容器实例。     服务栈(STACK)由多个服务组成,相互配合完成特定的业务,如Web应用服务、数据库服务共同构成Web服务栈,通过子命令对栈中的多个服务进行便捷的生命周期管理。   

  • 个人编程练习

     1、编译环境 Python3.6 2、代码风格说明 主要是编写规范的问题,每一级的开头会固定相差四个空格 Python版本之间的风格差异 3.x需要加入括号print("ReadFileError!") 2.x不需要括号print"ReadFileError!"  3、程序设计调试 1、读文件到缓冲区复制 defprocess_file(dst):#读文件到缓冲区 try:#打开文件 f=open("E:\\Gone_with_the_wind.txt","r")#r表示文本文件,rb表示二进制文件 exceptIOErrorass: print(s) returnNone try:#读文件到缓冲区 bvffer=f.read() except: print("ReadFileError!") returnNone f.close() returnbvffer复制 复制 2、处理缓冲区代码 efprocess_buffer(bvffer): ifbvffer: word_freq={} #下面添加处理缓冲区bvffer代码,统计每个单词的频率,存放在字典wo

  • ToolBar样式颜色,图标设置

    extends:http://blog.csdn.net/w1054993544/article/details/48339565复制 <resources> <stylename="AppTheme"parent="@style/AppBaseTheme"> </style> <stylename="AppBaseTheme"parent="Theme.AppCompat.Light.NoActionBar"> <!--状态栏和标题栏颜色--> <itemname="colorPrimary">@color/colorPrimary</item> <itemname="colorPrimaryDark">@color/colorPrimaryDark</item> <!--标题颜色--> <itemname="android:textColorPrimary">@android:color/white</item> <!--溢

  • 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】

    原文出处: 韩昊   1 2 3 4 5 6 7 8 9 10 作者:韩昊 知乎:Heinrich 微博:@花生油工人 知乎专栏:与时间无关的故事   谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。   转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。   ——更新于2014.6.6,想直接看更新的同学可以直接跳到第四章———— 我保证这篇文章和你以前看过的所有文章都不同,这是2012年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说,这么有意思的东西居然成了大学里的杀手课程,不得不归咎于编教材的人实在是太严肃了。(您把教材写得好玩一点会死吗?会死吗?)

  • 用Git将代码上传至GitHub

       第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。     你可以直接右击新建文件夹,也可以右击打开Gitbash命令行窗口通过命令来创建。     现在我通过命令行在桌面新建一个TEST文件夹(你也可以在其他任何地方创建这个文件夹),并且进入这个文件夹                                第二步:通过命令gitinit把这个文件夹变成Git可管理的仓库          这时你会发现TEST里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果你看不到,是因为它默认是隐藏文件,那你就需要设置一下让

  • Office漫游指南-----PPT

    Office漫游指南-----PPT @(我的第一个笔记本)[指南,office,技术部]   PPT制作技能对当代大学生的重要性无需赘述。一次好的演讲、报告、展示活动中,PPT制作的精美程度占有极大的分量。但毫无疑问,PPT为当代大学生带来的阴影也是巨大的。这种阴影不仅存在于被一张张幻灯片中密集的小字所刺瞎双眼,也在于每一次熬夜赶制PPT时迷失的睡眠。   若将PPT的使用从头讲起,未免太过冗杂。笔者希望在尽量短的篇幅中,介绍如何快速地做出一份美观简洁的PPT。要点概述如下:  制作流程:一个合理的工作流程能极大地提升PPT制作的效率; 色调选用:选取合适的PPT主色调是ppt美化的关键所在; 模板改装:使用合适的模板进行改装往往事半功倍; 动画设置:恰当适宜的动画是PPT美化灵魂所在,高级的动画更是能让人眼前一亮; 资源获取:如帮你找到没有水印、清晰度高、能合法使用的图片或视频。 PPT的制作流程 制作PPT分三步: 1、创建一个名字叫做PPT的文件夹, 2、分别创建名为“原始素材”“修改素材”的子文件,将素材分类放入。 3、新建PPT演示文档,导入素材,简单美化一下。哈,

  • ognl版本错误

    错误信息: 2014-2-621:20:10org.apache.catalina.core.StandardWrapperValveinvoke严重:Servlet.service()forservlet[default]incontextwithpath[/J2EE12Hibernate]threwexception[Filterexecutionthrewanexception]withrootcausejava.lang.NoSuchMethodError:ognl.SimpleNode.isEvalChain(Lognl/OgnlContext;)Z atcom.opensymphony.xwork2.ognl.OgnlUtil.isEvalExpression(OgnlUtil.java:224) atcom.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:215) atcom.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack

  • 华为Sound Joy用后感

    在买华为SoundJoy音响前,我就在几个相似的音响之中衡量,其中有MIFAWildRod和JBL万花筒6做了对比,在经过一系列的对比(网上查阅资料)之后,我最终选择了华为的SoundJoy这款音响。最终选择这款的原因是因为几点:智能语音控制音响。高达8800毫安电池支持快充重量更重(哈哈,重量其实也代表这一部分做工,价格差不多相同的情况下,重一点肯定好一些,其实这没有根据)就上面这几点来说就基本秒杀另外两款音响了,这也是我最终选择SoundJoy的原因。实际到手之后,首先就用了小艺语音助手,在使用这个助手需要在手机安装一个华为智慧生活的app,然后设置音响WIFI联网。注意,连接的wifi必须是2.4G的而且要和手机连接的无线网络一致,才能让音响完成联网动作。音响成功联网后,就可以在华为智慧生活的app里面对音响进行一系列的调配,比如低音减弱与加强,还有音效选择(在音乐播放界面设置)使用过程中,不得不说小艺语音助手这个功能非常实用方便(联网成功才能使用这个助手),用普通话对着音响喊出“小艺小艺,来一首某某某的《????》”然后音响自动就会从音乐库里面搜索你说出来要找的歌曲。喜欢骑行的

  • 外部系统对接下单幂等性校验逻辑及事务提交锁表的处理

    外部系统对接下单幂等性校验逻辑及事务提交锁表的处理 1、如果下单时,已经存在订单,希望能返回外部订单号和本系统订单号,做幂等处理。 2、希望一个外部订单号,只能对应一个有效的本系统订单号根据请求参数签名来判断是否是同一请求,根据外部订单号来查询。如果请求参数签名不同,但是外部订单号已经生成订单,则先做取消操作,再重新下单。如果相同,则返回当前订单号和订单状态。下单成功之后,同时返回外部订单号和本系统订单号。3、取消时,需要同时校验外部订单号和本系统订单号,强一致验证取消的时候可以记录取消来源,如果是外部取消,可以记录外部取消原因,从而决定是否外部取消是否还需要异步通知取消的结果。4、如果订单被取消,再次创建,无法创建,期望能够创建。关键原因是:订单数据保存在es中,如果取消到重新下单,然后从es中检查数据,会存在数据的延时性。1.场景1:如果取消/变更订单事务未提交,而微服务是根据MQ消息来处理,需要延迟3秒再查询(否则数据查不到,比如:取消原因,或查询的上一次的变更记录)。逻辑上而已:正常是接口处理完,事务已提交,然后发送MQ事件。2.场景2:A系统>B系统下单,B下单接口未返

  • 亲,麻烦给个五星好评!—RatingBar

    引言 上一篇的CheckBox已经让大家越来越接近实战演练了,本章我们继续分享干货给大家,今天介绍一个实用的UI控件RatingBar(星级评分条),对于使用过电商APP(某东,某宝等)的小伙伴们来说,应该不会陌生。在对商品进行评价时,经常会出现五星好评的评分样式,这个五星评分样式就是今天的主角RatingBar。 简介 RatingBar:用于评分和展示的星级评分控件。 publicclassRatingBarextendsAbsSeekBar ​ java.lang.Object ↳android.view.View ↳android.widget.ProgressBar ↳android.widget.AbsSeekBar ↳android.widget.RatingBar复制   由上面的继承结构可以看出,RatingBar是基于SeekBar和ProgressBar的扩展。 基本使用 <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="h

  • NoSuchBeanDefinitionException:No qualifying bean of type

    Exceptioninthread"main"org.springframework.beans.factory.NoSuchBeanDefinitionException:Noqualifyingbeanoftype[di.UseFunctionS]isdefined atorg.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:371) atorg.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331) atorg.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:968) atdi.Main.main(Main.ja

相关推荐

推荐阅读