首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

另一个角度的架构师

ADMEMS矩阵,明确介绍了架构师需要思考的问题,而在这个矩阵中,做完一个架构师最需要了解的什么呢?技术?业务?都不是,最需要了解的是你的领导,其次是你的团队成员。...2,  你的团队成员能力高的和低的比例是多少。 正所谓巧妇难为无米之炊,即使你再棒,也没办法一个人做项目。...当成员和领导都是优秀的时候,那么在分析其他需求又有何难呢? 架构设计要思考的问题 一个软件架构师最重要的问题,就是他所设计的产品必须是满足客户战略规划的需求,能够帮助客户解决实际问题的。...What:要解决用户的什么问题? 性能低下?结构转换?可维护性差?领导面子?(一点不好笑,真的有公司这么做的)。 我见过一个公司,他们的产品还能运行,但改起来很难受,程序员天天抱怨。...于是就请了一个架构师,目的有二,(1)修改产品结构,降低维护成本(2)使员工不要抱怨。结果当然是无疾而终了,新架构上不去,又折腾了好久。最后不愉快的离开。原因是什么呢?

26420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个小白的角度看JavaScript Promise 完整指南

    1.JavaScript Promises Promise 是一个允许我们处理异步操作的对象,它是 es5 早期回调的替代方法。...Promise 构造函数接受一个回调,带有两个参数resolve和reject。 Resolve:是在异步操作完成时应调用的回调。 Reject:是发生错误时要调用的回调函数。...可以传递一个参数,作为下次 .then 的接收: Promise.resolve('Yay!!!')....then(console.log) .catch(console.error) 使用 Promise.all 并行执行多个 Promise 通常,Promise 是一个接一个地依次执行的,但是你也可以并行使用它们...达到限制后,我们使用Promise.race等待一个承诺完成,因此可以将其替换为新的承诺。这里的技巧是,promise 自动完成后会自动从队列中删除。

    3.6K31

    从一个实战的角度来理解 Git 原理~

    有朋友反馈说太拘泥于细节,缺少具体的例子。今天就从实际操作角度写一下 git 的原理。本文需要跟《深入理解 Git 》一文一起阅读。...第二列是该文件对应的 blob 对象。第一列表示文件的 UNIX 模式,包括权限、类型等信息。第三列是一个神奇的数字,是用来在分支合并的时候处理冲突的,我在下面还会讲。 现在我们可以提交一个版本了。...正好指向了新增加的一个 object。...我们再看看 .git/HEAD 的内容: $ cat .git/HEAD ref: refs/heads/master .git/HEAD 保存了当前分支对应的 refs 路径。...暂存区保存的是文件的全路径和对应的 blob 对象。通过暂存区 git 可以直接查询任意目录下的文件内容。

    57420

    组件分享之后端组件——一个基于Golang的ORC组件包

    组件分享之后端组件——一个基于Golang的ORC组件包 背景 近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件...组件基本信息 组件:gosseract 开源协议:MIT License 内容 本节我们分享一个基于Golang的ORC组件包gosseract,当下对于图片识别的需求越来越多,难免我们需要在Go程序下进行图片的处理...,本节我们就进行分享一个ORC的工具包gosseract,它是通过使用Tesseract c++库进行实现的,如果你想按照服务的方式使用,直接部署https://github.com/otiai10/ocrserver...} 代码中使用也比较简单,加载起来相关需要识别的图片就可以有效读取器内容信息,当然我们也可以在docconv组件中一起使用本次的OCR组件,详细可以参考Issues,这里面详细的说明了。...上述代码在运行时需要确保你当前环境下已经安装了tesseract-ocr,这里我们建议使用Ubuntu环境或容器环境下使用,具体tesseract-ocr安装可以参考Dockerfile,还是比较简单的,

    1.5K20

    一个组件的自我修养

    通过视觉和交互划分通常来说,组件的划分,与视觉、交互等密切相关,我们可通过功能、独立性来判断是否适合作为一个组件。...这次我们拿知乎的内容卡片来说吧,上图:可以看到,这里我们每个卡片,内容都稍微有些不一样。但毫无疑问,它们拥有相同的功能,可通过一个组件来控制内容的展示。...但其实这不是很好运用的一种方式,因为控制不好的话,可能你的代码会过度封装,导致别人在维护的时候,表示:卧槽!!!这得跳多少层才能找到想看的代码!!!组件的封装怎样才能算是一个合格的组件呢?...,对一个组件来说,它也有 in 和 out 两个方向的流动。...在 Vue 里,如果父组件需要获取子组件的实例,也可以通过通过vm.$refs来获取。结束语这里主要从单个组件的角度来进行说明,搭配一点点的代码,防止文字太多难以理解。

    48750

    C#.NET 如何确认一个路径是否是合法的文件路径

    很多方法要求传入一个字符串作为文件名或者文件路径,不过方法在实际执行到使用文件名的时候才会真正使用到这个文件名;于是这这种时候才会因为各种各样的异常发现文件名或者文件路径是不合法的。...有没有方法能够提前验证文件名或者文件路径是否是合法的路径呢? ---- 这是一个不幸的结论 —— 没有!...实际上由我们自己写代码判断一个字符串是否是一个合法的文件路径是非常困难的,因为: 不同操作系统的路径格式是不同的; 同一个操作系统有各种各样不同的路径用途。...然而作为 API,验证路径的合法性也是需要抛出异常的,所以大可以继续使用这样的方法,用方法内部抛出的异常来提醒开发者传入的路径不合法。...但有时候是作为与用户的交互来判断路径或者文件名是否合法的,那么这个时候使用异常就不太合适了。毕竟 C#/.NET 的异常机制不应该参与正常的逻辑流程。

    4.1K20

    组件分享之后端组件——一个Go 的 Swagger 2.0 实现组件go-swagger

    组件分享之后端组件——一个Go 的 Swagger 2.0 实现组件go-swagger 背景 近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,...后续该专题将包含各类语言中的一些常用组件。...组件基本信息 组件:go-swagger 开源协议:Apache-2.0 License 内容 本节我们分享一个Go 的 Swagger 2.0 实现组件go-swagger 特征 go-swagger...,包括多态性 从带注释的 go 代码生成一个 swagger 规范 使用 swagger 规范的其他工具 强大的自定义功能,带有供应商扩展和可自定义的模板 我们的代码生成重点是生成惯用的、快速的代码,...一个类型化的 JSON Schema 实现,支持 Draft 4 的大部分特性 扩展字符串和数字格式:strfmt 使用 JSON、转换数据类型和指针的实用程序:swag 一个 jsonschema

    81320

    从程序员的角度设计一个Java的神经网络

    人工神经网络由于其高度交互的网络结构,可以学习如何自己解决一些任务。 人造神经元具有与人脑神经元相似的结构。一个天然的神经元是由核,树突和轴突组成的。轴突延伸到几个分支形成突触与其他神经元的树突。...到目前为止,我们已经区分了神经元的结构和相连神经元的网络。另一个重要方面是分别与单个神经元相关的神经网络的处理或计算。自然神经元是信号处理器 - 它们在树突中接收可以触发轴突信号的微信号。...有一个潜在的阈值,到达的时候,刺激轴突,并传播信号到其他神经元。...一般来说每个节点的总和被加权,总和通过激活函数或传递函数传递。 这个组件为神经网络处理增加了非线性,这是因为自然神经元具有非线性行为。在一些特殊情况下,它可以是一个线性函数。...维基百科提及到说: 一个标准的计算机芯片电路可以看作是一个激活功能的数字网络,取决于输入的是“ON”(1)还是“OFF”(0)。这与神经网络中的线性感知器的行为类似。

    2.5K100

    一个博士生的角度出发

    NLP的应用远比简单地预测下一个词要广泛得多。此外,LLMs的训练需要大量数据和计算资源,这对于大多数研究者来说难以承担。...,但开发多语言模型中,如何利用低资源语言仍然是一个主要挑战。...此外,手动创建平行语料库和利用构词法模型开发翻译词典等方法也是重要的研究路径。 提高适用于所有语言的多语言模型的性能。...此外一个主要的开放研究方向是如何获取和表达编码这些文化观点的知识,以及何时和如何调用这些文化知识。...发展NLP模型以识别生成内容背后的利益相关者及其利益类型,如商业利润或政治利益,是一个有希望的方向。 儿童语言习得和LLM之间的联系 儿童语言习得作为一个基线,在通往高效AGI的道路上具有重要意义。

    1K20

    从另一个角度告诉你单元测试的意义

    在分享中,我赶时髦提倡用契约测试取代集成测试,但是细节中没有忽略的一个核心点:单元测试。这也是本文我要分享的重点。...但在一个微服务架构基础设施还不完善、开发人员能力参差不齐、DDD能力不足以应对复杂业务的情况下,单元测试是性价比最高的实践。 能力建设 一个具备开发经验的开发人员,基本上都会编写单元测试。...从学习曲线上看,单元测试很容易上手(方法难以被测试另当别论),拥抱Java大腿的JUnit就是一个很好的例子。所以在一个团队中,我们可以过培训、Pair 快速让开发人员具备编写单元测试能力。...让单元测试有效的一个很好的方式是尽可能让我们的被测代码具备良好的可测性。要做到这点,我们需要尽可能的在编码的过程中掌握必要的代码设计原则。...可维护性:重复、条件逻辑、参数化混乱、残缺路径、永久性临时文件、弱不禁风 等。 可靠性:被注释、歧义注释、永不失败、轻率承诺、降低期望、有条件的测试 等。

    1.5K30

    实现一个靠谱好用的全屏组件,顺手入门 Headless 组件

    前言 本文是 基于Vite+AntDesignVue打造业务组件库[2] 专栏第 6 篇文章【实现一个靠谱好用的全屏组件,顺手入门 Headless 组件】,聊聊一个使用频率还挺高的组件——全屏组件,顺便了解下什么是...image.png 从类型兼容的角度看,EnhancedDocument是Document的子类型,一个父类型的值(document)赋给一个子类型的变量(doc)看起来似乎不是类型安全的,但是实际赋值过程中并没有报类型错误...举实际的例子说明下: 场景1:我要实现一个全屏组件,但是有的业务项目希望全屏组件对应的 UI 是一个按钮,有的业务项目希望是一个图标,有的希望是图标 + 文字,甚至有更多可能性......虽然在 UI...我们的第一个问题可能是:我开发的 Headless 组件要对外输出什么内容?是一个组件,还是一段逻辑?...不过换个角度看,你可以认为 Hooks 之类的技术底座,是实现 Headless 组件的一种方式或者途径,但是它们并不是严格意义上的一回事。

    1.5K20

    组件分享之后端组件——一个高性能的 goroutine 池ants

    组件分享之后端组件——一个高性能的 goroutine 池ants 背景 近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件...组件基本信息 组件:ants 开源协议:MIT License 官网:ants.andypan.me 内容 本节我们分享一个高性能的 goroutine 池ants,它实现了对大规模 goroutine...的调度管理、goroutine 复用,允许使用者在开发并发程序的时候限制 goroutine 数量,复用资源,达到更高效执行任务的效果。...功能: 自动调度海量的 goroutines,复用 goroutines 定期清理过期的 goroutines,进一步节省资源 提供了大量有用的接口:任务提交、获取运行中的 goroutine 数量...、动态调整 Pool 大小、释放 Pool、重启 Pool 优雅处理 panic,防止程序崩溃 资源复用,极大节省内存使用量;在大规模批量并发任务场景下比原生 goroutine 并发具有更高的性能

    30020
    领券