- 博客(72)
- 收藏
- 关注
原创 架构师篇-23、工作坊实战应用架构
复习ADM - 应用架构【AA】案例实践 - 应用组件 - 核心模块案例实践 - xx 项目应用关系课程内应用架构
2024-09-02 09:32:34
338
原创 架构师篇-19、工作坊实战动机与战略阶段
战略与动机需要用到哪些知识点?动机元素与战略元素战略关注点战略定位怎么理解企业战略?国家政策企业战略对标友商产品战略服务战略合作战略渠道战略市场战略竞争战略。
2024-08-13 23:24:32
930
原创 架构师篇-14、大型汽车企业之OTD案例分析
明确定义业务流:【理解】企业涉及的整体业务流及关键核心节点提前了数字化后能够为企业带来的最直接的价值(只将时间压缩了,带来的效益就非常多)识别核心业务节点(冲压、焊接、涂装…)通过业务梳理之后降低了整体的生产过程时间(提升资金流转率、减少库存积压…)确定业务关键指标【成功标识】22d 缩短到 17d分解业务流程或逻辑或规则每周计划、每日计划…零部件风险控制:宝钢提供的部件产能约束控制:不同地方的生产线产生不同梳理核心业务流程和业务规则面向战略目标的顶层业务规划。
2024-07-25 09:35:55
1906
原创 架构师篇-10、DDD实战篇:通过领域模型落地系统
聚合关系的定义:订单删除了订单明细也会删除,不会单独只存在订单明细,订单创建完之后同时创建订单明细。答:不需要,查找医生只是一个过程,不是领域事件。在实际操作中,已确诊和已开药一般是同时发生的,因此已确诊和已开药可以做合并。自己想的领域事件:挂号事件、接诊开单事件、结算事件、体检事件、取药事件。实际的:已预约、已挂号、已接诊、已体检、已确诊、已开药、已缴费、已取药。分析原有诊所系统的业务流程,进行事件风暴,梳理领域事件。再次分析,整体的领域事件还缺2个部分、已排班、已注册。细化架构与对象分析(2)
2024-06-30 22:54:35
663
原创 架构师篇-8、运用事件风暴进行业务领域建
需要有一定的技术积累,但是核心是懂业务。具备一定的方法,并且有很强的业务理解能力。技术架构师:形成技术方案,做的更多的是底层的平台,提供工具。业务架构师:解决方案架构师,理解业务需求用户痛点,形成解决方案。更接近客户。
2024-06-30 21:47:41
459
原创 架构师篇-7、企业安全架构设计及实践
作业你现在工作中是否存在安全架构需求?有哪些?将工作中的安全需求进行设计作业要求结合工作需求进行安全架构设计。
2024-06-30 09:48:54
463
原创 架构师篇-5、架构语言-ArchiMate
是面向企业架构的建模语言可以建模架构的6个层次,每个层次都有4个方面ArchiMate建模企业架构的6个层次:战略层:指定企业架构的战略目标、成长路线图。业务层:企业架构的驱动力来源。应用层:支撑业务的信息系统的组织与集成。技术层:构架应用的网络、软件和硬件技术。物理层:支持应用的物理设备和网络。实现与迁移:实施企业架构的项目过程管控。动机:企业架构涉及、改进的目标和原因主动结构:发起各种行为的主体。行为:提供各种能力的活动及其组成的流程和实现的服务。
2024-06-27 17:10:36
1680
1
原创 架构师篇-4、TOGAF-ADM【4A】
内容摘要:1、4A架构实践2、架构方法ADM、架构语言、架构工具本章课程交付:1、4A架构实践2、架构方法ADM、架构语言、架构工具。
2024-06-24 15:15:21
1104
2
原创 架构师篇-2、宏观业务架构
是对真实世界企业的业务流程和IT设施的抽象描述它是包括企业战略、组织、职能、业务流程、IT系统、数据、网络部署等的完整、一体化描述企业架构反映了企业业务的状况,并体现了业务与IT的映射关系,能明确各类IT设施对业务的支撑关系理解业务抽象业务核心节点行业分化:制造、贸易、物流、金融、航空、互联网等。项目缺路标技术缺平台:在A项目里的标准和在B项目不一致,需要有一个比较好的开发框架以及平台能力比如devops应用缺复用:搭建了一大堆重复系统数据缺共享:系统间数据的关联关系。
2024-06-20 11:03:10
428
原创 架构师篇-3、企业级架构设计之“道”
战略规划是一个复杂的过程结果战略规划需要充分理解和总结战略规划是业务架构的输入条件补图架构片段:1.0 到 2.0 按功能模块分片,逐渐迭代。
2024-06-20 09:39:07
339
原创 中间件复习之-分布式存储系统
存储引擎:存储系统的发动机,提供数据的增、删、改、查能力,直接决定存储系统的功能(支持怎么样的查询,锁能锁到什么程度)和性能(增删改查速度)。
2024-06-11 09:33:01
1248
1
原创 中间件复习之-RPC框架
RPC(Remote Procedure Call):远程过程调用。当多个应用部署在多个服务器上时,由于他们不在一个内存空间上,因此需要网络来进行通信,而RPC允许它像。
2024-04-03 11:25:39
2245
原创 代码随想录算法训练营第六十天|84.柱状图中最大的矩形
该单调栈从栈顶到栈底递减,该单调栈栈顶是最大的,遇到比他小的,就将当前元素pop,用left、middle求出最大值。自己实现的代码:自己的代码整体思路是对的,但是在newArr[i] < newArr[st.peek()]情况下时往stack里push的位置写错了,不应该写在循环内,而应该写在循环外面,因为不管处理结果怎么样都需要把当前值往堆栈里塞。求柱子左边第一个比他矮的,右边第一个比他矮的,这样就能找到这个柱子的宽,然后再乘以这个柱子的高,求得得就是当前柱子的面积。为什么前后还需要再增加一个0呢?
2024-02-05 16:22:05
531
原创 代码随想录算法训练营第五十九天|503.下一个更大元素II 、42. 接雨水
元素大于栈顶:将当前栈顶元素pop出来,新的栈顶和当前元素即为原栈顶的左右2个高,取较小的高然后再和原栈顶做减法然后再乘以右索引减去左索引。计算的整体思路差不多,刚开始没理解按行计算时的weight的下标为何按左右相减,后面按照代码随想录里的按行计算的图做了一遍推导后理解了。面积的计算按照列来计算,该列的高度与两边的最高高度的差值减去当前高度值即为可接雨水的面积值。两次循环求出maxLeft和maxRight的所有值后,再使用一次循环求出最终的结果。这里的循环数组一定要理解题意,只循环一次,不会无限循环。
2024-02-02 08:55:50
489
原创 代码随想录算法训练营第五十八天|739. 每日温度 、496.下一个更大元素 I
该题目题意是nums1是nums2的子集,然后求解的是nums1的数字对应在nums2的数字位置往右的下一个大于当前的数字。nums2=[2,3,1,4] 这里nums1的2对应的是nums2的第一个2的位置,然后求的是第一个2的位置的后一个大于2的数字。单调栈回顾了一下,单调栈的核心只考虑相邻两个值的比较,之前push过的就不管了,由后面的pop处理回调。(这里文字描述有点抽象,后面写题的时候才能回顾到)如果遇到比栈顶大的,就pop弹出,如果比栈顶小的,就压栈。按照上一题的单调栈思路去写。
2024-01-28 14:19:16
503
原创 代码随想录算法训练营第五十七天|647. 回文子串 、516.最长回文子序列
自己写了个错误答案,主要的问题就是一:遍历的时j的初始值定义错了。因为取最大值要思考dp数组的定义,长度最大的字符的子序列数量。这里情况一和情况二,i=j和i和j连着的情况处理错了,我处理成了i-j,实际j在i的右边应该是j-i。j=i的情况已经在初始化的时候计算过了,因此用j=i+1来计算,j=i和递推公式逻辑不一样。没想到怎么去写,dp定义也定义错了,自己想的dp定义:dp[i],第i个位置的回文子串数目。这个定义无法推断出dp[i+1]和dp[i-1]j一定要大于等于i,不然i,j的范围没有意义。
2024-01-24 00:10:23
933
原创 代码随想录算法训练营第五十六天|583. 两个字符串的删除操作、72. 编辑距离
又因为 dp[i][j - 1] + 1 = dp[i - 1][j - 1] + 2。所以递推公式dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);递推公式:dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1});情况三:同时删word1[i - 1]和word2[j - 1],操作的最少次数为dp[i - 1][j - 1] + 2。
2024-01-20 18:59:20
886
原创 代码随想录算法训练营第五十五天|392.判断子序列、115.不同的子序列
自己的实现:核心还是要理解相等的情况下有两部分,一个是前一位i、j的dp,一个是前一位i的dp。以及不相等的情况下只有一种部分前一位i的dp。两道题都是子序列,都是用i-1、j-1是否相等分情况考虑推导出的。不同的点是第二道题有删除的情况。子序列题目还是比较复杂的,后续二刷。但是写的时候还是遗漏了边界条件的判断,当sCharArray.length == 0时应该直接返回。和最长公共子序列一样,区别就是最长公共的子序列变成了其中一个参数。和最长公共子序列还有一个区别就是,当值不同时,删字符只删t。
2024-01-20 16:06:12
410
原创 代码随想录算法训练营第五十三天|1143.最长公共子序列、1035.不相交的线、718. 最大子序和
nums[j-1]时,则取dp[i-1][j],dp[i][j-1]的最大值,dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);这里的递推公式没有想明白,递推公式的第一个判断,nums[i-1]==nums[j-1]和最长重复子数组一样,都取dp[i][j] = dp[i-1][j-1] + 1。递推公式:dp[i-1] >= 0 则dp[i] = dp[i - 1] + nums[i] 否则dp[i] = nums[i]dp[i]:以i结尾的0-i最大子序和。
2024-01-17 08:46:33
448
原创 代码随想录算法训练营第五十二天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
dp数组的初始化大小以及循环遍历的次数没处理好,循环的终止条件应该为i <= nums1.length、j <= nums2.length,因为第0位是无意义的值,且比较的是**nums1[i - 1] == nums2[j - 1]**实际要取到nums1.length的位置才能遍历完所有的值。这里和我想的一样,只需要比较nums[i]与nums[i - 1],而不用去比较nums[j]与nums[i] (j是在0到i之间遍历)。连续和不连续的最大区别就是i只和小一位的j比较,如果比较失败直接为1。
2024-01-15 22:18:04
1060
原创 代码随想录算法训练营第五十一天|309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费
持有状态时的第二种情况,要用前一天不持有,前一天不持有是dp[i-1][1],而不是dp[i-1][0],同理当天要做操作时要关注到前一天的状态,用前一天的状态的值去推导。看着状态转移图写的代码,但是最后返回最大值那边处理错误了,返回最大值应该是从dp[i][1-3]中取一个最大的。进一步深化了买卖股票题目的处理方式,整体就是按照状态去散列推导公式。和之前的题目一样,只是在不持有状态的当天卖出再减去fee。状态三和状态四不用取最大值,因为只有一个值的选择。还有就是Math.max最大值只能2个2个比较。
2024-01-13 19:19:21
403
原创 代码随想录算法训练营第五十天|123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV
dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。对于股票问题有了进一步的认识,股票问题核心是理解第i天的持有状态,通过持有状态去推导最优值。和123.买卖股票的最佳时机III几乎一样,只是买具体买卖的次数用k来替换。因为最多有2次交持有和不持有,分了5种情况。动态规划五步骤、使用持有和不持有来计算。代码就把最佳时机III改吧改吧。照着上一题改吧改吧完成。2.第一次不持有股票。4.第二次不持有股票。2.第一次不持有股票。
2024-01-10 08:45:56
539
原创 代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
因此 dp[i][1] = Math.max(dp[i-1][1],dp[i-1][0] - prices[i]);同不持有股票时,存在卖和不卖的情况,卖的情况要考虑到上一节点持有股票时的最大利润做加法 dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1] + prices[i]);而代码随想录的概念是第i天持有股票,或者不持有股票,这里指的是有没有股票,而不是第i天做买入、卖出的动作。核心的逻辑就是要使用持有时的最大价值和不持有时的最大价值来计算。
2024-01-07 21:12:59
1004
1
原创 代码随想录算法训练营第四十八天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III
并且在遍历过程中,p[i] = Math.max(dp[i-2] + nums[i],dp[i-1]),nums[i]也只能到达i=nums.length - 1,因此这里的循环处理逻辑为i<nums.length。整体方法一样,这里和自己的想法有区别的是自己的想法是做2个nums数组做截取得到[0,length - 1]和[1,length],而代码随想录里是用2个循环去处理。不知道该如何确定i的概念。遍历的时候,i的取值没确定下来,是i<=nums.length还是i<nums.length。
2024-01-04 09:00:45
1077
原创 代码随想录算法训练营第四十五天|70. 爬楼梯 (进阶)、322. 零钱兑换 、279.完全平方数
题目就和上一天的377. 组合总和 Ⅳ题目一样,因为求的是排列,因此先遍历背包再遍历物品。完全背包,这道题求的不是组合数,而是排列数。还是没理解遍历顺序,等后面回头再看。
2024-01-02 08:26:44
397
原创 代码随想录算法训练营第四十四天|完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ
这道题目取得是排列数,和上一题的组合数不一样,这里用的是排列数的话遍历的顺序不一致。完全背包是指背包里的物品能随便用几次。01背包的话背包里的物品是能使用一次。完全背包是指背包里的物品能随便用几次。01背包的话背包里的物品是能使用一次。dp定义给出来了,但是二维递推公式没想出来。列出二维组合矩阵,查看一下规律。和零钱兑换的区别就是遍历顺序。遍历顺序看了一遍还是看不懂。递推公式的推导没理解。
2023-12-25 08:44:55
1446
原创 代码随想录算法训练营第四十三天|1049. 最后一块石头的重量 II、494. 目标和、474.一和零
所以递推公式dp[i][j] = Math.max(dp[i-1][j],dp[i-1][j - wight[i]] + value[i]);使用二维数组,整体和代码随想录前面差不多,记数组的元素和为 sum,添加 - 号的元素之和为 neg,则其余添加 + 的元素之和为 sum−neg。定义二维数组dp,dp[i][j]表示在数组nums的前i个数中选取元素,使得这些元素之和等于j的方案数。放物品i的时候最大价值为dp[i-1][j - wight[i]] + value[i](
2023-12-20 08:51:45
1069
原创 代码随想录算法训练营第四十二天|背包问题理论基础、01背包理论基础(滚动数组)、416. 分割等和子集
所以递推公式dp[i][j] = Math.max(dp[i-1][j],dp[i-1][j - wight[i]] + value[i]);见下面表格,dp[i][j]由其上一个节点以及左上某一节点得到。初始化值:画出背包重量和物品的二维数组图。见下图可以得出dp[0][j]这一行的值为15。dp[i][0]这一列的初始值为0。放物品i的时候最大价值为dp[i-1][j - wight[i]] + value[i](递推公式:不放物品i的时候,最大价值为dp[i-1][j]得到dp[i][j]的定义。
2023-12-13 08:46:23
917
原创 代码随想录算法训练营第四十一天|343. 整数拆分、96.不同的二叉搜索树
/ 当以j为头节点时,左节点为j-1个,右节点为i-j个,因为dp[i]是组成所有二叉树的情况,因此dp[i] += dp[j-1]*dp[i-j]。是累加的情况就是j=1,j=2,j=3…// 1. dp[i]的概念就是 n为i的情况下,组成所有二叉搜索树的情况。画出n=3的所有情况,再单独画出n=0时,n=1时,n=2的的情况。将整体分为头节点为1时、头节点为2时、头节点为3时的所有情况。头节点是2时=左子树1节点情况 * 右子树1节点数量情况。头节点是3时=左子树2节点情况 * 右子树0节点情况。
2023-12-10 23:06:02
484
原创 代码随想录算法训练营第三十九天|62.不同路径、63. 不同路径 II
刚开始初始化值没想明白,后面提交一次后重新思考了下,初始值应该是从小到大去计算这样才能让遍历方法的数组有累加的结果。更加的熟悉了动态规划五步骤的处理思路。路径推倒类题目的初始值就按照从小往大遍历的逻辑处理。动态规划五步骤去处理,和不同路径第一道题类似,但是这里没细想遇到障碍时的处理逻辑。动态规划五步骤,后面听视频去了。
2023-12-07 22:18:24
944
原创 代码随想录算法训练营第三十八天|动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
一样的处理逻辑,n-1个台阶方法数是f(n-1),n-2走2步到fn因此n-2为f(n-2)。因此f(n) = f(n-1) + f(n-2)。动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。斐波那契数列,S(n) = S(n - 1) + S(n-2),可以用递归去处理。这里主要学习用动态规划的思路去处理。按照动态规划五步骤处理业务逻辑比较简单,这里需要关注的就是边界条件的处理。可以同递归去处理,但是这里可以试试递归五步骤。
2023-12-07 08:24:44
467
原创 代码随想录算法训练营第三十七天|738.单调递增的数字 、968.监控二叉树
遍历字符,从后往前遍历,用后的值和前的值比较,尽量取后的值一样的,取不到一样的就取最大的。(后面发现题目没审清楚,比如232不是变成222而是变成229)。整体链路理解都差不多,但是自己写的时候差点意思,主要还是数字转字符串又转字符串数组的,没通过。遍历数字,发现前一个大于后一个的话就把前一个减一后一个变成九。从前往后遍历的话如332的话,就会变回329这种是正确的。但是这里要注意从前遍历还是从后面开始遍历。
2023-12-05 08:34:21
404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人