neilq 最近的时间轴更新
neilq

neilq

V2EX 第 134711 号会员,加入于 2015-08-24 11:19:37 +08:00
今日活跃度排名 11694
neilq 最近回复了
2022-08-12 12:17:05 +08:00
回复了 edis0n0 创建的主题 程序员 Entity Framework Core 如何禁用 10620 警告?
如果是非 vs ide, 在 csproj 里面加进去
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>10620;</NoWarn> (分号分割可以配置多个)
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>10620;</NoWarn>
</PropertyGroup>

如果是 vs ,项目右键属性里面能直接改忽略警告
2022-08-11 14:51:33 +08:00
回复了 unt 创建的主题 程序员 通常一个企业级中型应用服务器配置是怎样的
用云的话,mysql 单独买 rds ,

esc 方案有两种,一是买个稍微高配的,4core8g ,或者 2core8g ,按需求往上升配,乱七八糟的 redis, kafka 什么都 docker 往上部署,放心,百万 db 数据量的企业撑得住,甚至还有很多富余
二是如果有负载均衡需求,或者有服务容灾需求,或者未来很可能负载大幅度上升,就买多个低配的搞集群,多个 1core2g, 2core2g ,为未来做准备。当然方案一也可以在未来把负载高的服务分离出来,就是不大好做容灾

有文件图片存储的话磁盘大一点。

rds 和自建区别:rds 帮你做了很多运维工作,比如容灾,数据库版本升级,权限控制,默认比较合适的一些性能参数帮你设置好,比较方便的查看错误日志、慢日志、执行 sql 日志(要加钱),你几乎不用关注他会不会挂。但是 rds 物理成本比自建贵,人力成本比自建便宜。
2022-08-08 15:47:18 +08:00
回复了 wdc63 创建的主题 C# 我应该如何用 C#方法重载实现这样的目的
// 简单用设计模式包裹了一下,工厂+策略,没测试,可以复制到 ide 方便看

public class HandlerKeyAttribute : Attribute
{
public HandlerKeyAttribute(string name)
{
Name = name;
}

public string Name { get; set; }
}

[HandlerKey(nameof(ArgA))]
class ArgA
{
}

[HandlerKey(nameof(ArgB))]
class ArgB
{
}

public class Message
{
public object Param { get; set; }
}

public interface IHandler
{
Task Handle(Message msg);
}

[HandlerKey(nameof(ArgA))]
public class HandlerA : IHandler
{
public Task Handle(Message msg)
{
throw new NotImplementedException();
}
}

[HandlerKey(nameof(ArgB))]
public class HandlerB : IHandler
{
public Task Handle(Message msg)
{
throw new NotImplementedException();
}
}

public class HandlerFactory
{
private static readonly Dictionary<string, Type> _handlerTypes = new();

static HandlerFactory()
{
var handlerTypeInfos = Assembly.GetAssembly(typeof(Program)).DefinedTypes
.Where(x => x.IsClass
&& !x.IsAbstract
&& x.GetInterfaces().Any(i => i == typeof(IHandler)))
.ToList();
foreach (var type in handlerTypeInfos)
{
var attr = type.GetCustomAttribute<HandlerKeyAttribute>();
if (attr != null && !string.IsNullOrEmpty(attr.Name))
{
try
{
_handlerTypes.Add(attr.Name, type);
}
catch (Exception)
{
// 当心 key name 重复
}
}
}
}

public IHandler CreateHandler(object arg)
{
//简单用 attribute 匹配 arg 与 handler 类型,具体场景也可以用其他特征(如直接用对象名称)匹配,也可以结合正则、startsWith 等方式匹配
var attr = arg.GetType().GetCustomAttribute<HandlerKeyAttribute>();

if (attr == null || string.IsNullOrEmpty(attr.Name)) return null;

if (!_handlerTypes.TryGetValue(attr.Name, out var handlerType))
return null;

// 部分框架里可以利用 ioc container 创建, 如 return _serviceProvider.GetRequiredService(handlerType) as IMqttMessageHandler;
// 部分场景也可以预创建对象,如_handlerTypes 类型改成 Dictionary<string, IHandler> handlers, 直接取拿出来用: return handlers[attr.name]
return (IHandler)Activator.CreateInstance(handlerType);

}
}

public class Program
{
private static void Main(string[] args)
{
var objects = new List<object> { new ArgA(), new ArgB() };
var factory = new HandlerFactory();
foreach (var arg in objects)
{
var handler= factory.CreateHandler(arg);
handler.Handle(new Message { Param = arg });
}
}
}
2022-06-06 16:42:12 +08:00
回复了 IfEles 创建的主题 问与答 求教, ic 卡消费机二次开发?
卖机器的一般问他要接口会给接口,看情况有的是 c sdk ,有的是 http ,有的是 mqtt ,或者都支持
@userforg2021 他们写的时候一定觉得自己知识很渊博
2021-09-02 10:57:30 +08:00
回复了 yeqiu 创建的主题 问与答 关于领域驱动和微服务设计中,创建对象(实体)的花销问题
个人观点,没有必要,1kb 能放 512 个汉字,性能瓶颈一定不是在这里
2021-09-02 10:45:57 +08:00
回复了 MonikaCeng 创建的主题 程序员 技术总监,找前端工作被拒
@mikulch 客气了客气了
2021-09-01 15:13:55 +08:00
回复了 MonikaCeng 创建的主题 程序员 技术总监,找前端工作被拒
@MonikaCeng

我看到你前面几次给人的回复,就隐隐感觉你是个是以解决问题为导向技术人,一个假大空的技术总监是不敢去面前端岗甚至说出”单纯想转技术“这种话的。现在总有人喜欢打击别人并以此为乐,我就想给你打一针强心剂,希望能帮到你。

咱想单纯做技术真的很不容易,因为你达到一定高度,环境会把你推到管理岗上,有时候也是很纠结。可能退休了会容易点把,我老婆单位之前有俩 70 岁左右的硬件老头就是退休了特意在那蹲着搞技术的。不过你在外企找工作也会好很多,据我所见外企一大把年纪还顶着开发岗的还挺多,人家乐此不疲。
2021-09-01 12:32:59 +08:00
回复了 MonikaCeng 创建的主题 程序员 技术总监,找前端工作被拒
以我个人观点来看,这种表现完全是正常的。做了长期的总监岗、架构岗或者全栈岗,也用不着妄自菲薄不够“精通”。人的记忆力是有限的,我一直觉得你想在广度上做拓展,深度上肯定会有缺失的,但这种缺失不是什么重要的东西。

就比如说什么 tcp 三次握手,那玩意很多人都看过,都没记住,记住那玩意干啥呢?对工作有帮助吗?做个前端需要写网络底层框架吗?。比如说 clearfix,平时做项目也就是加个 class ".clearfix",要我想具体的内容,我也只记得 clear:both 了,如果要我手写,那我去 google 一下立马就有了,我一直记着这玩意干嘛呢?所以我不觉得这玩意忘了是什么“缺失”,或者说是什么"代价"。

我觉得你的在广度上的优势是这样的,有些细节你肯定不是记得完完全全,但是从系统上的基本概念你都知道,哪天你要去写 http 调用基础方法了,你知道跨域要预调用 options,去查一查发送啥,返回啥,方法写完就扔那了,可能几个月甚至一年都不会再去碰它,肯定会忘掉,你记着都是浪费脑容量。但是呢,你在知识上广度让你碰到任何方向的问题,你脑子里回忆一个关键词,去查一查细节马上就出来了。广度是目录,是索引,定位到细节很简单。

所以面对这种情况,你可以有两种选择。
1 坚持你的广度优势,不要理那些考八股文的。直到碰到能欣赏你这种优势的企业和环境,肯定有,因为我自己招人也会考察这一方面
2 迫于现实,背一背面试题

两种选择不论好坏,不议是非,个人选择罢了。但是要坚持,你选择广度优势,就不要强调深度劣势,因为那不是你的劣势,只能说是知识结构体系不同,在心里上给这种预设除了打击自己的信心,对你不会有好处,在与人交流上也要坚持表达这种观点,像我一样,啥 clearfix 我都记不住,也不想记,需要我去查,不需要我就忘掉。

曾经我也有这种焦虑,手头几本书,clr var c#,http 权威指南,programming c,定期翻一翻复习一下,过半年还是会忘,后来我悟了。
2021-03-16 11:21:34 +08:00
回复了 Rino 创建的主题 咖啡 求推荐性价比高的咖啡豆
高性价比那就是云南豆了,味道不差关键还新鲜
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3532 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 11:03 · PVG 19:03 · LAX 04:03 · JFK 07:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.