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

讨论软件架构30个共同原则

据说,作为软件架构师,人们应该像园丁一样思考而不是指挥官。前者塑造,策划并去除杂草,而后者定义和指示。建筑师应该策划而不是指挥,塑造而不是定义,并煽动讨论而不是标签。但是,如何让它发挥作用?...原则指导我们并使我们讨论根深蒂固。他们还避免了永远持续哲学战争。最后,如果设计师从未听说过这个原理,那么他很容易学习。 以下是其中一些原则。有些是众所周知,而有些则是我们选择方式。...极客喜欢扩展点,像样本和脚本开发人员,像UI这样普通人。 原则23: 最好产品不需要手册。它用途是不言而喻。...你应该策划而不是指挥,塑造而不是定义,并煽动讨论而不是标签。 虽然短期内可能会更便宜,更容易决定架构,但从长远来看,指导并让团队找到自己方式会带来好处。...如果你不小心,建筑飞行更容易,设计师只告诉他架构是错误,但不是为什么它是错。避免这种情况一种方法是拥有一套普遍接受原则,这些原则成为讨论锚点,也是新兴建筑师学习路径。

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

电面基础:Java基于MapHashtable问题讨论

电面基础:Java基于Map/Hashtable问题讨论 前言:电话面试(简称电面)以知识点考察为主,在数据结构方面,对于Map/Hashtable考察绝对是必不可少一部分。...Java作为一门被业界广为应用语言,在集合类方面有非常全面成熟解决方案,因此我们用一个专题形式来讨论Java中有关Map/Hashtable题和解答。...简单问题背后主要考察candidate是否了解和使用过Hash相关数据结构。...那么根据HashMap在java实现,以下几点应该在回答中准确表达: Hash相关数据结构本质上都是key value pair; Hash中不能存在duplicate key; HashMap...提供非常快速查找时间复杂度; 在HashMap具体实现中,Null可以作为key或者value存在; HashMap不是线程安全; 由于Java中和Hash相关类比较多,我们帮助大家梳理一下,比如 “

64670

recoveriX脑机接口脑卒中康复系统讨论会议——关于脑卒中患者康复情况与软件特点讨论

在对手部训练阶段,前后评估分数有非常明显变化,从15增长至26。在第一段训练后与腿部训练前一段时间呈现出一定程度下降趋势。...其次,该患者大拇指运动能力得到显著提高。 同理,在下图中反应则是在各个阶段得到对下肢评估分数变化。最终由24增长到28 (增加了12%)。...从起初14.0s下降至最后10.6s。总共24%变化,这是一个非常明显变化。同样也是对康复疗效正面反馈。...对于下肢运动基于运动想象康复治疗 在进行训练前后,都要对患者情况进行多项详细评估。...随后,研究人员就上图recoveriX报告给出ERD/ERS图进行了更进一步解读(如下图)。 图中第一行展示是在进行右手运动想象任务时大脑C3与C4区域事件相关电位变化。

32520

关于Java中静态字段与静态方法讨论

static void main(String[] args) { System.out.println("hello world"); } main方法中加入,static,修饰符,下面我们来讨论这个修饰符含义...静态字段 如果将一个字段定义为static,每个类只有这样一个字段,而对于非静态实例字段,每个对象都有自己一个副本,例如:,假设需要给每个员工赋予唯一标识码,这里给Employee类添加id和一个静态字段...也就是说,需要通过Math类一个对象来访问PI,并且每一个Math对象都有他自己一个PI副本。 静态方法 静态方法是不在对象上执行方法。例如,Math类pow方法就是一个静态方法。...静态方法俩种场景: 方法不需要访问对象状态,它所需要所有参数都要通过显式参数提供Math.pow(3,5) 方法只需要访问类静态字段(例子见下) public static int getId()...静态main方法将执行并构造程序所需要对象 最后 本文为博主学习使用 参考书籍 ——java核心技术卷1

75940

JAVA月薪两万一些讨论

如果你达到我说水准,我们谈起薪就是2w,有其他优秀表现我们在这个基础上加点。但纯JAVA方面待遇是比较吻合,毕竟这几个企业我都待过或面试过。...那些质疑我的人去面试一下就明白我说对不对,不要随便就质疑。如果有机会可以再开一题,来谈谈互联网JAVA面试题,我可以把90%题目全部给你列出来。...13)会使用eclispe ,idea,maven,我觉得各一天就行 如果刚毕业就有人告诉我这些该多好,我毕业好多年了,走了好多弯路,在不重视技术行业软件公司浪费了好几年,又做了好几年测试,...(作为一个自己创业开软件公司的人,我觉得能给到薪资) 但是有一个前提。不是空口白话。无论说那些会不会。一个成套政府系统商城需要自己能去当主程。包括前端后台逻辑数据库运维。...写一个手机端api都不知道加上token验证和错误回传 配置完了redis然后嚷嚷着数据库出问题了吧为什么mysql库没有数据存入 这些人。通常讨论高深技术。很high。真写起来。狗屁不通。

84010

软件开发:RUP与敏捷开发过程比较与讨论

软件开发领域,RUP(Rational Unified Process)和敏捷开发是两种主要开发方法论。尽管它们都旨在提高软件开发效率和质量,但它们在理念、实践和工具使用上有着显著差异。...RUP(Rational Unified Process)简介 RUP是一种基于迭代软件开发过程框架,由Rational Software公司在1990年代开发。...严格文档和过程:RUP提供详细指导和模板,强调过程规范性。 敏捷开发简介 敏捷开发是一种更灵活、更快速软件开发方法。它强调个体和互动胜于过程和工具,响应变化胜于遵循计划。...特点 迭代和增量开发:敏捷开发通过短周期迭代来逐步完成软件开发。 人本主义和沟通:敏捷开发强调团队之间密切合作和直接沟通。 适应性和灵活性:敏捷方法能够快速适应需求和环境变化。...作为软件开发专业人士,理解这两种方法优缺点,并能够根据实际情况灵活运用它们是一个重要职业技能。

17310

当我们讨论swoole时候,我们在讨论什么?

首先,我们需要肯定是,它出现是为了弥补php更准确是laravel短板:性能和资源利用率。其次,就我们现有的场景来说,更多是开发http相关功能。...为什么要使用swoole php开发效率。毋庸置疑是,php加上laravel是如虎添翼,开发效率很高,特别是crud一块提供了大量语法糖,减轻了开发人员工作量。 公司现有的技术积累。...公司从成立到现在,上到老板下到现在各个开发团队开发人员,php是后端绝对开发语言,并且公司存量项目中也是使用php。 开发人员技术储备。...不同点:swoole只能在协程容器中使用,go能到处使用,go可以不指定容量大小,swoole必须指定。...Laravelorm使用数据库连接是单例,而go语言grom实现是连接池。 当然go连接使用也是有需要注意,也有安全与不安全之分。

5.8K40

平行讨论方式

今天听了樊登速读「斯坦福大学创意课」,里面有两个故事很有意思: 第一个故事是说好莱坞大片剧本是怎么来,先有一个故事梗概,然后一堆顶尖编剧在一起先想该怎么写好,然后写完后过一周再聚在一起全部推翻,...第二个故事是用六顶思考帽来讨论议题,把议题分为5个方面(感觉,事实,赞成,反对,改进),当主持人说现在我们讨论「赞成」时候,所有与会的人尤其是反对者,都必须说这个议题优点,为什么要做这个议题。...而当主持人说我们现在讨论「反对」时候,所有与会的人尤其是支持者,都必须说这个议题坏话,为什么不能做这个事情。而在讨论「改进」时候,所有人都不可以做任何评价,并且总是鼓励更多方案与想法。...这两个故事其实都是平行思考,就是大家讨论时候必须站在同一个面,即时自己立场是反面的,此时此刻也必须为对方说话,等到议题到了讲反面的时候自然有机会说。对于减少会议中无意义争辩应该会很有效。

47750

算法讨论题 —— Java实现两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值两个数。你可以假设每个输入只对应一种答案,且同样元素不能被重复利用。即:每个index上数字只能用一次。...能不能我们在构建时候就完成操作。答案是肯定。...如果需要考虑效率的话,重构数据结构,通常是比较有效方法,Java 中用得比较多是 Map,因为 Map 通常能够存储更多信息,而且遍历效率高。...我们对一些问题,如果算法不太好弄的话,通常考虑是能不能给它们换个数据结构,比如说 List ,Map 呀这种。个人感觉这个题目在算法中是属于比较简单题目,但是不同解法可能会比较多。...https://www.isharkfly.com/t/java/14998/1

13930

由人工智能参数讨论基于Bug软件测试质量分析

上文和大家一起讨论了人工智能样本评价参数:准确度、精准度、召回率和F1分数。这篇文章,我们结合这些参数来讨论基于Bug软件测试质量分析。...软件测试质量分析是软件测试工作中非常重要管理工作,其实在没有了解准确度、精准度、召回率这些概念之前,我们其实已经多多少少使用了这些概念。...现在假设讨论周期为一次正式版本发布,版本经过研发,并且在客户现场运行了一段时间,目前基本上发现不了Bug了。...这里度量指标反映了版本发布之前质量效率。 现在假设有一个测试机器人来进行软件测试,我们如何来评估这个测试机器人测试质量呢?...测试机器人发现正确缺陷为真阳性,发现错误缺陷为假阳性,同时配合人工测试,人工测试发现正确缺陷去除与测试机器人发现重复正确缺陷为假阴性,人工测试发现错误缺陷去除与测试机器人发现重复错误缺陷

81410

关于软件公司如何进行知识分享一些讨论

, 因为我们组没有一个明确架构师可以给我们指路, 所以更多时候都是我们几个自己尝试各种可能, 这个知识分享就像是我们一个资源后盾一样, 觉得任何问题都可以去和你们讨论....同事E 1.这个知识分享帮助大家储备软件设计相关案例,扩展知识广度和深度,很有意义,这些都有助于提高对日常工作理解,从而提高工作效率。...2.现在运行模式融合了各个团队之所长,希望可以继续保持;另,如果有时间的话,请考虑一下是否可以再加入一些基本软件工程基础概念, 这样可以温故而知新,概念+真实案例,效果会不会更好些呢?...如果有,请列出一些具体点 能了解其他组同事在做什么,开阔了眼界 帮助我们解决了一些实际设计问题 这个知识分享成为了团队Architect资源池,遇到设计上问题可以提出来和大家讨论...帮助大家储备软件设计相关案例,扩展知识广度和深度,有助于提高大家对日常工作理解 你觉得这个知识分享形式到目前,还存在哪些问题?

68920

动力节点Java学习资料讨论JMS与ActiveMQ内部逻辑

1999年,原来SUN公司领衔提出了一种面向消息中间件服务--JMS规范(标准); JMS即Java消息服务(Java Message Service简称),是Java EE 标准/规范之一。...JMS是Java EE中定义一组标准API,它自身并不是一个消息服务系统,它是消息传送服务一个抽象,也就是说它定义了消息传送接口而并没有具体实现。...JMS规范经历了多年发展,并随着Java EE进行了几次升级,版本从1.0到最新2.1,它们分别是: Java EE 8 --> Java Message Service API 2.1 Java...Message Service API 1.1 J2EE1.4 --> Java Message Service API 1.1 我们知道JMS只是消息服务一组规范和接口,并没有具体实现,而ActiveMQ...就是JMS规范具体实现; ActiveMQ是Apache下一个项目,采用Java语言开发; ActiveMQ 是一款非常流行开源消息服务器,实现了JMS规范,官网: http://activemq.apache.org

36710

关于Matlab若干讨论

在看Scilab时候不小心进了知乎,回答很有趣,我这里做个小随笔。主要是推荐软件,或者是精妙言论。...别的软件不是不可以写,单反复合图灵规范都可以写,但是你会去干嘛?你不会。...这个是Linux的话,这个有点大丈夫背负了许多味道 这个人论述了,为什么国内没有这样软件大环境 以及为什么会发送这样事情 给了一些国产软件生存通法 我觉得重要是,有没有愿意付出 https...://github.com/xuhao1/pyaircraftiden 模型辨识 笑死我这个,刺激 开源软件不会用也是一个重大毛病 盗版是推广手段,正解!...这软件是各个其他行业里最会写代码的人搞出来,虽然软件工程上来讲可能不太好用,但一定适合本专业。 国家应该发力让相关人员制作工业软件

30830

java什么软件_java初学者用什么软件

java初学者使用什么软件 Java初学者可以使用MyEclipse、eclipse或记事本。...4、 您还可以使用记事本编辑和保存Java格式文件,然后安装JDK,并使用CMD进行编译和执行。 如何学习java初学者 1培养对Java兴趣 初学者java基础可以说是薄如纸。...java学习开始是非常无聊。学习java需要一定兴趣。初学者可以在网上找到一些关于Java视频来看看。看视频比看书更生动有趣。因此,建议初学者寻找一些视频来培养他们对Java兴趣。...java学习也是一样,在培养一定java兴趣时,你就要开始打好坚实java基础。...此时,初学者必须购买一本基本Java入门书,开始学习基本语法,因为视频在理解和记忆Java知识点连贯性和构建Java知识体系方面不如本书。 三。

2K20

java代码软件_新手编写java代码使用什么软件

大家好,又见面了,我是你们朋友全栈君。 新手编写java代码常用编辑器有: 1、eclipse Eclipse 是一个开放源代码、基于Java可扩展开发平台。...幸运是,Eclipse 附带了一个标准插件集,包括Java开发工具(Java Development Kit,JDK)。...(视频教程推荐:java视频) 2、notepad++ Notepad++是在微软视窗环境之下一个免费代码编辑器。...它使用较少CPU功率,降低电脑系统能源消耗,但轻巧且执行效率高,使得Notepad++可完美地取代微软视窗记事本。...Sublime Text 具有漂亮用户界面和强大功能,例如代码缩略图,Python插件,代码段等。还可自定义键绑定,菜单和工具栏。

1.6K20

java用那个软件编,java编译软件 编写java程序用什么软件?

现在企业开发软件最多用就是eclipse,因为他是开源,而且本身就是用JAVA编写,所以兼容性更好。...java用什么编译软件 用JCreator或eclipse, Jbuilber占用内存太大 java本身就是javac和java 常用Java编程软件有哪些 常用倒是有很多,比如:JDK,NetBases...初学JAVA者应该使用什么编译软件?...怎么安装java编译那个软件 新手不建议用eclipse,新手只要是dos敲代码,入门后,再用Eclipse 1.安装JDK,安装过程中可以自定义安装目录等信息,比如C:/java/jdk1.5 点击下一步下一步...下面开始你第一个java程序吧。 java一般用什么软件编译 eclipse、NetBeans、Xcode还有很多,如果牛的话,用记事本加jdk自带命令也可以。

2.9K30

软件开发:计算机最大数字进制讨论

在计算机科学中,讨论“最大进制”这个概念是非常有趣。许多人可能认为十六进制是计算机中使用最大进制,但实际上,理论上计算机可以使用任何进制来表示和处理数据。...在本文中,我们将探讨进制概念,以及为什么十六进制在计算机中如此普遍,并且还会讨论更高进制可能性和应用。 进制基础 进制,或称为数制,是数表示方式基础。它决定了数值是如何计算和表示。...更高进制 理论上,可以使用任意高进制来表示数值。二十进制、三十二进制乃至更高进制都是可能。然而,随着进制增加,使用和理解这些系统变得更加复杂。...例如,三十二进制将需要32个不同符号来表示每个位值。 高进制应用 在某些特定领域,使用高于十六进制系统可能有其独特优势。...例如,在某些类型数据压缩或编码方案中,使用更高进制可以进一步减少表示数据所需字符数量。但这通常伴随着更高计算复杂度和更低可读性。

7410

讨论:如何尽可能接近掌握软件工程?

不久前,他发起了“如何尽可能接近掌握软件工程”讨论,吸引了不少读者参与讨论。InfoQ 中文站翻译并整理成文,以飨读者。 “工程”是以一种有原则方式制造东西——因此,肯定存在“软件工程”。...对于这些人来说,“掌握软件工程意味着与当前实践保持同步”。 我是一个老顽固,我更喜欢一种早期、更严厉、更开明“愿望”,并且喜欢比较和思考如何让软件开发更接近于现有的工程。...“软性”软件(以及从对“软性”软件理解)所需要就是在一个工件生命周期中具有“极端灵活性”(“软性”是我们制造可编程计算机原因)和“极端安全和完整性”。...作为一名富有成效且有价值软件工程师途径就是注重(掌握)软件工程原理。学会怎样学习。也许听起来奇怪,但这是一个工程师需要掌握重要技能。学会迅速掌握新技术。...因此,我并不赞同文章观点。掌握软件工程在几十年前和今天一样难。因为软件工程基本原理并没有改变。 每六个月,作为一名软件工程师,都要重新塑造自己。

23610
领券