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

2022爱分析· 业财税一体化厂商全景报告 | 爱分析报告

2021年11月财政部发布《会计改革与发展“十四五”规划纲要》,要求积极推动会计工作数字化转型、会计职能转型,将信息化新技术应用于财务会计工作和管理会计实践,促进会计职能向价值管理、战略决策辅助等职能持续转型升级。2022年3月国资委下发《关于中央企业加快建设世界一流财务管理体系的指导意见》,围绕中央企业整体财务管理水平提升并建成世界一流财务管理体系的目标,以财务管理主要对象“票、账、表、钱、税”为维度,提出技术赋能、支持战略、支持决策与业务、创造价值的具体要求,并要求强化税务管理职能,完善智能前瞻的财务数智体系。与此同时,随着金税四期的上线和企业信息联网核查系统出台,政府将实现对企业全业务、全方位、全流程的监控,对企业的财税合规性提出了更高要求,倒逼企业加强财务、税务系统建设和使用。

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

    为什么微服务应该是事件驱动?

    建立微服务的真正道路是事件驱动,这是一个有着DDD, CQRS, Event-sourcing, event streaming, complex-event processing(CEP) 等背景以及丰富JavaEE技术经验的架构师的认识,他经历了从传统整体型monolith到微服务架构之转变,细节技术涉及从容器技术 (Docker, Kubernetes) 到JVM层 (Spring Boot 和 WildFly Swarm)到应用架构(事件, 命令, 流streaming, 原始事件, 聚合, 聚合根, 事务, CQRS, 等等),他会在六月的Red Hat Summit演讲上详细陈述。 这里他从自主性与权威性的比较角度来谈论微服务为什么应该是事件驱动,原文见:Why Microservices Should Be Event Driven: Autonomy 首先,我们使用微服务是为了构建一个业务敏捷的IT系统,也就是能跟随业务快速变化的IT系统,这样才能保证我们的业务能力始终保持竞争力。而自治系统是能够相互交互提供业务敏捷,包括如果系统发生问题怎么办?系统如何克服问题?提供业务敏捷和失败容错的系统就是自治autonomy。 自治系统能够独立于彼此演进,因为他们本质上是彼此没有依赖的,改变一个服务A不会强迫系统B改变,包括引起任何其他涟漪影响,如果服务A是服务B依赖的,服务A死了,那么服务B也会死期不远。 那么自治性除了微服务以外,其他方面还需要什么?如果你阅读过http://blog.christianposta.com/microservices/the-real-success-story-of-microservices-architectures/,你会知道不是技术让Netflix和亚马逊的微服务获得成功,而是组织系统结构。 与敏捷系统的相同类型的一些例子包括:开源社区、城市、股票市场、蚂蚁群、成群的鸟类和其他的。它们可以进化,响应react环境,甚至持续在面对巨大的失败,事实上,它们都是属于复杂自适应系统的理论研究领域。这些系统之间的共同点是什么?目标,自治性和对环境的反应。自治意味着 对“事件”的“反应react” 。 当有什么事情发生时,自治者(蚂蚁 人或服务)会做某些事或不做某些事,但是总体来说,是这些发生事情的事件驱动了它们的行为,想想你(作为一个独立自主与自治的人)在一天中做的事情:你醒过来,基于温度穿衣服(事件或事实),你开车和去工作(在停车灯停下来(事件),避免驾驶人发生不正常事件等)。这些都是对事件的回应。你会收到收件箱里的电子邮件,你会回应。你会从你妻子提供的文本中挑选一篇关于家庭的晚餐,等等,我们生活在对事件的反应中。建立在事件的IT系统也可以是同样拥有自主性,可扩展性和弹性应对失败。 从权限到自治自主并拥抱最终一致性 在大多数分布式系统实现中,我们倾向于在一个单一地理空间建立跨不可靠网络的系统,这在很多方面都是坏主意,我们倾向于调用远程对象,驱动它们做某些事情,或者我们调用一个远程服务进行数据查找,如果是购物车服务,我们需要计算购物车中所有商品的最终价格以便支付,这样购物车服务会调用计价服务,计价服务也许会调用计税服务以基于价格根据不同洲税调整最终价格,计税服务也许会调用产品目录服务,货运服务也许会调用库存服务等等,最后也许需要经过一长段调用才会结束,我们正在遵循“authority权限”模式进行数据访问,我们调用那些对数据拥有权限的服务,这有点像共享全局状态,它们也有另外一个理由,因为事务性或ACID需要这样整合在一起调用。 这可能会导致瓶颈。如果服务链中的某些服务不可用,它也会导致其他服务挂起以及级联崩溃性故障。它也可能导致一些奇怪的依赖关系,比如库存服务暴露给税务服务的出数据和航运服务使用的数据会不同。或者它公开了一个单一格式的数据,但其中有很多额外的细节是这两个服务都不真正关心的。 如果我们以不同方式来看这个模型?如果我们颠倒这个模型,我们不再依赖和调用那些对数据拥有权限的服务,而是依赖时间和事件(如同我们现实世界一样)重新理解上下文场景和环境。 我们刚刚从周围环境发现从美国到古巴的航运刚刚推出了一个较低的税收,这是一个发生的事实,我们可以观察和反应,或者忽视不做任何事。 如果我们能了解到对运送到古巴的税收现在已经降低了,那么在我们展示购物车页面时,我们就可以捕捉这样的数据以便未来可能的查询,然后我们可以有更多的自主权,我们可以在我们自己的数据库中存储该信息息或该信的衍生物,这将为我们提供的服务类型进行优化。如果我们必须对我们的服务进行版本的修改,我们就可以把重点放在我们自己的架构和数据上,而不必担心更改时其他相关服务会发生什么。 什么是最终一致性? 响应事件而不是“及时”查询权限系统会让我们更具有自主性,更有容错能力和弹性,

    02

    用nodejs加腾讯云api搞了一个发票识别

    又到年底了,凑发票的日子真不好过,本来就是一个节俭的人,哪来来的这么多发票呢,但是有朋友给了个压缩包,打开一看,我滴个亲娘,200多张发票,打车发票,财会要求每张发票要重新命名,命名规则是发票代码-发票号码-金额-姓名,这可要了我的老命了,如果一张一张搞眼睛不瞎,也得累死,但是我是一名菜鸡程序员啊,菜鸡遇到重复性的工作肯定想到要用程序来完成啊,首先想到的是如何识别发票,这里我弄了两个解决方案,首先第一个就是使用各种云服务来实现,在考察了各种云服务后,发现腾讯的云服务识别发票功能支持nodejs,所以索性使用了腾讯云,这事他的演示网站:

    07

    2018-12-15 LintCode LeeCode刷题指南 part2

    |270|Missing Number.java|Easy|Java|[Array, Bit Manipulation, Math]|| |271|LRU Cache.java|Hard|Java|[Design, Hash Table, Linked List]|| |272|Remove Duplicates from Sorted Array.java|Easy|Java|[Array, Two Pointers]|| |273|Remove Duplicates from Sorted Array II.java|Medium|Java|[Array, Two Pointers]|| |274|Remove Duplicates from Sorted List.java|Easy|Java|[Linked List]|| |275|Remove Duplicates from Sorted List II.java|Medium|Java|[Linked List]|| |276|QuickSort.java|Medium|Java|[Quick Sort, Sort]|| |277|MergeSort.java|Medium|Java|[Merge Sort, Sort]|| |278|Longest Word in Dictionary.java|Easy|Java|[Hash Table, Trie]|| |279|Binary Tree Level Order Traversal.java|Medium|Java|[BFS, DFS, Tree]|| |280|Binary Tree Level Order Traversal II.java|Medium|Java|[BFS, Tree]|| |281|Binary Tree Longest Consecutive Sequence II.java|Medium|Java|[DFS, Divide and Conquer, Double Recursive, Tree]|| |282|Binary Tree Maximum Path Sum.java|Hard|Java|[DFS, DP, Tree, Tree DP]|| |283|Path Sum.java|Easy|Java|[DFS, Tree]|| |284|Path Sum II.java|Easy|Java|[Backtracking, DFS, Tree]|| |285|Path Sum III.java|Easy|Java|[DFS, Double Recursive, Tree]|| |286|Rotate String.java|Easy|Java|[String]|| |287|Combinations.java|Medium|Java|[Backtracking, Combination, DFS]|| |288|Combination Sum IV.java|Medium|Java|[Array, Backpack DP, DP]|| |289|Binary Tree Right Side View.java|Medium|Java|[BFS, DFS, Tree]|| |290|Binary Tree Maximum Path Sum II.java|Medium|Java|[DFS, Tree]|| |291|Rotate List.java|Medium|Java|[Linked List, Two Pointers]|| |292|Basic Calculator.java|Hard|Java|[Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]|| |293|Longest Consecutive Sequence.java|Hard|Java|[Array, Hash Table, Union Find]|| |294|Binary Tree Longest Consecutive Sequence.java|Medium|Java|[DFS, Divide and Conquer, Tree]|| |295|Number of Connected Components in an Undirected Graph.java|Medium|Java|[BFS, DFS, Graph, Union Find]|| |296|Next Closest Time.java|Medium|Java|[Basic Implementation, Enumeration, String]|| |297|Serialize and Deseriali

    02
    领券