文章目录

  • 前言
  • 一、背景
  • 二、第二章(入职培训)
  • 三、后续
  • 四、总结

前言

这是一篇关于小菜-一名大四学生在刚入职后获得同事帮助以及在自身努力下成为一名架构师的故事

一、背景

聊背景故事之前先说说我自己,我是一名已经工作了4年多的程序员,大学我上的是计算机科学技术这门专业。因为身边的同学朋友要么去学了土木,要么学了金融,没有人报名计算机这个专业,也没有前辈带我领进门。因此,我在进入大学校园几度陷入迷茫中。因为大学学费昂贵,让家里承受了很多压力,心中愧疚让我在大一大二期间当起了好好学生,每天宿舍,教室,图书馆,食堂。不会有其它选项了,固执的只要一点生活费,然我熬过了大学的两年。那会我总在啃操作系统,计算机网络,数据结构与算法等等书籍,晦涩又专业的名词在我脑海中反复跳跃。那会正好是实习,开始敲代码,老师让我们好好学习设计模式,于是我就在图书馆中看到了《大话设计模式》,那天一整天我都在图书馆中,直到把书看到了2/3。原来技术也可以这么有趣,从那时开始我就尝试找这类书籍作为自己休闲的放松项目,回味着书中每个场景以及解决方案,类比,故事性,现在我想要自己写一个这样的故事。

二、第二章(入职培训)

第一天的培训以银行业务流程为主题,大鸟将整个银行业务流程以及支付系统的各个业务模块进行了详细的讲解。
早上,大鸟先对整个银行业务的框架做了概述。他解释了银行的基础服务,包括存款、贷款、转账、支付等,并强调了这些业务之间的关系。他用深入浅出的方式讲述了银行业务的基础知识:

"在银行,我们有许多的业务模块,"大鸟开始阐述,“比如我们的存款业务,包括普通存款、定期存款、储蓄存款等等。我们的贷款业务,如房贷、汽车贷款、个人信用贷款等。然后我们还有转账业务,用户可以通过银行将资金从一个账户转移到另一个账户。支付业务是我们今天重点讨论的,它涉及到线上支付、线下支付、P2P支付等。”
听到这里,小菜有些困惑,“大鸟,我有一个问题,转账和支付有什么区别呢?”
大鸟微笑着回答道,“这是一个很好的问题,小菜。转账主要是在两个或多个银行账户之间移动资金,而支付通常涉及到购买商品或服务的交易。例如,如果我需要给你一些钱,我可以通过转账将钱从我的账户转移到你的账户。但如果我在商店购买了一个商品,我会进行支付操作,将资金从我的账户转移到商店的账户。”
"明白了,谢谢大鸟。那我还想问,银行业务之间有什么关系呢?"小菜又提出了新的问题。
"银行业务之间是紧密相连的,"大鸟认真解答,“比如,一个人要进行支付,他首先需要有存款,这就涉及到了存款业务。然后,他需要将资金从自己的账户转移到商家的账户,这就涉及到了支付业务。如果他的存款不足,他可能需要贷款,这就涉及到了贷款业务。所以,所有的银行业务都是为了满足客户的金融需求,他们相互依赖,相互影响。”
这样的问答环节让小菜对于银行业务有了更深的理解,他也对即将要接触的支付系统充满了期待。

然后,大鸟转到支付系统的核心业务模块——支付授权。
在讲解支付授权时,大鸟详细地解释了这一环节的重要性和细节。
“支付授权,简单来说,就是支付系统接收到支付请求后,验证交易的合法性,然后批准或拒绝这个请求的过程。”大鸟开始解释,"这涉及到账户的验证、资金的检查、风险的评估等等步骤。”
小菜听后,有些疑惑,“为什么我们需要支付授权呢?不是只要用户有足够的资金就可以完成支付吗?”
大鸟微笑着回答,“这是因为支付涉及到资金的转移,因此安全性非常重要。支付授权就是我们确保每笔交易都是合法、安全的重要手段。它可以帮助我们避免欺诈交易、非法交易等风险,保护用户和银行的利益。”
小菜点点头,然后又问道:“那支付授权的过程是怎么样的呢?”
大鸟详细地解释了支付授权的过程,“首先,当用户发起支付请求时,系统会收到请求,并获取用户的身份信息和交易信息。然后,系统会验证用户的身份,确认这是一个合法的请求。接着,系统会检查用户的账户,确认用户有足够的资金进行支付。此外,系统还会评估这个交易的风险,如果风险过高,可能会拒绝这个请求。如果所有检查都通过,系统就会批准这个支付请求,返回授权码给用户,表明支付已经被批准。”
"明白了,谢谢大鸟。这个过程听起来很复杂,我觉得我需要更多的时间去理解和学习。”小菜表示。
"没错,小菜。支付授权是支付系统中的核心环节,也是相对复杂的一部分。但只要你认真学习,我相信你很快就能掌握它。”大鸟鼓励地说。

午餐过后,大鸟引导小菜进入到下一个主题——交易清算。
在讲解到清算的概念时,大鸟详细地描述了清算的作用和重要性。
“清算,在支付系统中,是一个至关重要的环节,它确保了每笔交易的资金能够准确无误地从付款方转移到收款方。”大鸟开始解释,“清算通常发生在交易完成后,是整个支付过程的最后一步。这个过程涉及到多方,比如支付平台、银行、商家以及消费者。”
小菜皱了皱眉头,问道:“那清算过程中会出现哪些问题呢?”
“好问题。”大鸟赞赏地点点头,“清算过程中可能会出现各种问题,比如资金不足、账户信息错误、通信故障等。解决这些问题需要清算系统具备强大的处理能力和灵活的应变策略。”
小菜思索了一下,又问道:“那么,我们如何避免这些问题呢?”
“防止清算过程中的问题,我们需要做好以下几点。”大鸟继续解答,“首先,我们需要确保每个参与者的信息准确无误,这需要我们的系统有高效的信息核对和校验功能。其次,我们需要确保我们的系统具有足够的处理能力,能够及时处理大量的交易请求。最后,我们需要建立有效的风险控制机制,当发现可能出现问题的交易时,我们的系统需要能够及时进行预警,并采取相应的措施。”
“我明白了。”小菜点头表示理解,“清算看起来是一个复杂的过程,我们需要做好充足的准备。”
“没错,清算确实是一个复杂的过程,但只要我们的系统足够强大,我们就能确保每笔交易都能顺利完成。”大鸟肯定地说。
大鸟详细描述了交易清算的流程,包括交易信息的收集,交易的核对和调整,资金的转移,以及清算结果的确认。他强调,清算是确保每笔交易都能准确无误地完成的关键步骤。

接下来,大鸟谈到了风险管理。
“风险管理在银行业务中,特别是在支付系统中,扮演着极其重要的角色。”大鸟开始,“它涵盖了从欺诈防范,到系统安全性、操作风险等多个方面。而我们作为支付系统的构建者和维护者,需要深入理解和精准处理这些风险。”
小菜表示有些疑惑,“但是大鸟,我们怎样才能知道哪些是风险呢?有没有一些具体的案例供我参考?”
大鸟点了点头,“确实,理论知识是必要的,但实际案例更能帮助你理解。让我给你举几个例子。”
“首先,我们可以看一下欺诈防范。一些不法分子可能会尝试使用偷来的信用卡信息进行支付,这就是一种典型的欺诈行为。比如2017年,某支付公司就发现有大量来自东欧的可疑交易,这些交易试图使用被盗信用卡进行支付。支付公司通过风险管理系统,及时发现并拦截了这些交易,避免了巨大的损失。”
“其次,我们来看一下系统安全性。2018年,一家大型银行的支付系统因为一个小错误导致系统崩溃,无法处理任何支付请求。这就是操作风险的一种。这个错误是由于一个程序员在更新代码时不小心删除了一部分重要代码。这个案例告诉我们,即使是小错误也可能导致大问题,所以我们必须时刻保持警惕。”
小菜聚精会神地听着,然后问道:“那我们应该如何做才能更好地管理风险呢?”
大鸟认真回答:“我们需要建立一套全面的风险管理机制,包括但不限于实时风险监控、风险评估、风险防控和风险应对。实时风险监控能帮助我们及时发现问题,风险评估能让我们更深入地理解风险,风险防控能帮助我们防止风险发生,而风险应对则能让我们在风险发生时尽快恢复正常。”

“支付系统的核心就是要在保证交易安全的前提下,尽快完成交易。”大鸟在培训的最后重申,“这需要我们的系统既要能快速响应,又要能有效识别和处理风险。”
大鸟的讲解既详细又透彻,让小菜对银行业务流程以及支付系统的运作有了全面的了解。这些知识将会在小菜未来的工作中发挥重要作用,让他能够更好地理解并解决实际工作中的问题。

第二天的培训,大鸟开始讲解了支付系统的架构和核心组件。
"在一个支付系统中,"大鸟开始解释,“有几个核心的组件,包括支付网关,授权服务器,风险管理系统,清算和结算系统等等。”
小菜听到这里,就提出了他的疑惑,“大鸟,能否解释一下这些组件都是做什么的?并且他们是怎么配合工作的?”
"当然可以。"大鸟开始详细解答,“首先,支付网关是处理支付请求的第一站,它接收来自用户的支付请求,并将请求转发给其他组件处理。授权服务器负责验证用户的身份和权限,确认这是一个合法的请求。风险管理系统负责评估这个请求的风险,比如是否可能是欺诈交易,是否有可能导致用户超出信用限额等等。清算和结算系统则负责处理资金的转移,比如从用户的账户转移资金到商家的账户。”
"所有这些组件都是紧密配合,共同工作的。当一个支付请求到达时,它首先通过支付网关,然后支付网关将请求转发给授权服务器进行身份和权限验证。验证通过后,风险管理系统进行风险评估,如果评估结果是安全的,清算和结算系统就会处理资金的转移。每个环节都完成后,支付请求就被成功处理了。”
小菜点点头,“我明白了,谢谢大鸟。那么,如果在这个过程中出现问题,我们应该怎么办呢?比如,如果风险管理系统评估出高风险,或者清算和结算系统处理失败了?”
大鸟认真回答:“这就涉及到我们的异常处理和风险应对了。如果风险管理系统评估出高风险,我们会拒绝这个请求,并将理由返回给用户。如果清算和结算系统处理失败,我们需要找出原因,可能是因为网络问题,可能是因为用户的账户问题,或者其他原因。找到原因后,我们需要解决问题,然后重新处理请求。这就是我们为什么需要一个强大的监控系统和优秀的运维团队,他们能帮助我们及时发现并解决问题。”

大鸟接下来带领小菜进一步研究了支付系统的流程设计和具体实现。
“小菜,你记得我们昨天讲过的支付授权,清算和结算吗?”大鸟询问。
“记得的,大鸟。”小菜回答。
“那我们今天将从宏观的角度来看看这些环节是如何串联起来,形成一个完整的支付系统的。”大鸟开始解释,“首先,用户发起支付请求,这个请求首先经过我们的支付网关,如果数据格式、签名等信息正确,就会被转发给授权服务器。授权服务器负责验证用户身份,确认用户有足够的资金进行支付。接着,风险管理系统会根据多个因素评估这个请求的风险,如果风险可接受,请求就会进一步传给清算系统。”
小菜紧随其后提问:“那么,清算系统又是怎么工作的呢?”
大鸟详细地解释了,“清算系统会等到一定时间,比如一天结束,然后将这一天的所有交易汇总起来,然后分别计算每个商家应该收到的款项和每个用户应该支付的款项。这样可以大大降低系统的处理压力,提高效率。然后这些汇总的信息会传给结算系统。”
小菜听着,尽量吸收这些新知识,“然后,结算系统会在银行之间进行资金的调整,完成实际的款项转移。是这样吗?”
大鸟点头,“没错,小菜。这就是一个完整的支付流程。从用户发起支付,到商家收到款项,中间经历了多个环节,每个环节都需要我们精心设计和实现,确保交易的安全和高效。”
小菜深深地叹了口气,“这比我想象的要复杂得多。我会努力学习,争取尽快掌握这些知识。”
大鸟给了他一个鼓励的微笑,“我相信你可以的,小菜。只要我们热爱我们的工作,坚持不懈,就没有什么是我们做不到的。”
这一天的培训结束后,小菜对支付系统有了更深的理解。他知道,他有很多需要学习的地方,但他已经准备好迎接这些挑战。他对自己的未来充满了期待。

第三天,大高作为银行系统的架构师和资深员工,接替大鸟进行了小菜的培训。
大高的话语充满了深深的洞见和经验,“小菜,你应该已经对支付系统有了大致的了解。今天,我将和你分享一些我在过去的日子里对系统的理解,以及我们如何构建和改进它的。”
小菜立刻准备好了记录,他知道这一天的学习将是宝贵的。
“我们的支付系统是一个复杂的生态系统,由多个交互的组件组成。这些组件不断地接收和发送信息,处理各种任务。”大高开始解释,“这就需要我们构建一个可扩展,可维护,同时能够处理高并发,高可用的系统。”
小菜提出了他的问题,“大高,这听起来非常难,我们该如何做到这些呢?有没有一些具体的方法或者技术?”
大高笑了笑,“确实有一些关键的设计原则和技术。比如,我们使用微服务架构,将系统分解为多个可以单独部署和扩展的服务。我们使用容器化技术,如Docker和Kubernetes,来简化部署和管理。我们使用消息队列,如RabbitMQ和Kafka,来处理异步任务和解耦组件。”
小菜尽量去理解这些新的概念,“这些都是我们需要掌握的技术吗?”
大高点了点头,“是的,小菜。这些都是构建和维护大规模系统必备的技术。我会在接下来的时间里,帮助你逐步理解和掌握它们。”
"小菜,我讲过的这些理念和技术都是为了解决实际的问题。现在,我们来看一看它们是如何在实际中发挥作用的。"大高开始详细解释。

首先,他讲解了微服务架构的设计理念。“微服务架构的核心理念是将一个大的系统拆分为多个小的、独立的服务。每个服务都有自己的数据库和业务逻辑,它们通过API进行通信。”大高展示了一个系统架构图,“比如,我们的支付系统就是这样构建的。每个服务都可以单独开发,单独部署,单独扩展,这样大大提高了我们的开发效率和系统的可靠性。”
然后,大高开始解释容器化技术。“容器可以让我们将应用和它的依赖一起打包,这样可以保证在任何环境下都能运行。我们使用Docker来创建和管理容器,使用Kubernetes来管理和调度容器。”大高打开了一个终端窗口,展示了如何使用Docker创建一个容器,并如何使用Kubernetes来部署一个服务。
最后,大高讲解了消息队列的使用方法。“消息队列让我们可以解耦微服务,让它们可以异步通信。当一个服务需要告知另一个服务一件事情时,它只需要发送一个消息到队列,然后另一个服务可以在适当的时候从队列中取出并处理消息。”大高展示了如何使用RabbitMQ发送和接收消息,他还讲解了如何处理消息的顺序和并发问题。
每一个示例都配有实际的代码和操作步骤,小菜被这些深入浅出的解释深深吸引。他知道,他正步入一个全新的世界,这个世界充满了无尽的可能性。
“记住,小菜,”大高在培训结束时说,“这些技术和理念都是工具和途径,我们的目标是构建一个可以帮助人们生活得更好的系统。我相信,你一定可以做到。”
(PS: 限于篇幅,我会在后面进行讲解)

小菜虽然感到有些吃力,但他仍然坚持下去,努力去理解这些复杂的概念。
第三天的培训结束时,小菜感到自己的知识体系扩展了许多。虽然这些新的知识还有些抽象,但他知道,只要他继续努力,他就能够掌握它们。他对自己的未来充满了信心。

第四天的早晨,小菜打开了公司的内部技术文档。大鸟之前已经告诉他,文档是他最好的老师,他将在这里找到开发规范,甚至解决问题的答案。
小菜开始浏览Java开发规范文档,这是一份详细的指南,包含了变量命名,代码格式,注释风格等方面的规定。他一边阅读,一边将这些规定应用在之前的代码实践中。虽然这些规定有些繁琐,但他明白这是确保代码质量和可维护性的关键。
在阅读文档的过程中,小菜发现了一个对他来说有些困惑的地方。

小菜在浏览公司内部的Java开发规范文档时,遇到了一个他不熟悉的术语——“惰性初始化”。
“惰性初始化?”小菜皱着眉头在自己的笔记本上写下了这个词,他不明白这个概念在实际开发中是如何应用的。
于是,小菜找到了大鸟,向他询问这个术语的含义。大鸟看到小菜的疑惑,笑了笑,解释说:“惰性初始化,也叫懒初始化,在编程中是一种策略,当我们有一些开销较大的对象或操作时,我们不是在一开始就创建或执行它们,而是在真正需要它们时才进行。这样可以节省资源,提高程序的效率。”
小菜听完大鸟的解释,似懂非懂,“那在实际开发中,我们如何应用惰性初始化呢?”
大鸟给了一个具体的例子:“假设我们有一个数据库连接对象,在程序启动时,我们并不立即建立连接,而是在我们需要进行数据库操作时,才创建这个连接。这样,如果我们的程序在某个阶段没有数据库操作,就可以节省连接数据库的资源,这就是惰性初始化的应用。”

第二个疑问来自于阅读关于代码重构的部分。小菜看到一个他并不熟悉的词汇——“抽象工厂模式”。
“抽象工厂模式?”小菜再次在笔记本上记下了这个术语。他在学校的课程中曾经接触过设计模式,但对这个具体的模式记忆模糊。
于是,小菜找到了大高,向他询问抽象工厂模式的具体含义和应用。大高看着小菜的疑惑,点了点头,开始解释:“抽象工厂模式是一种创建型设计模式,它能够创建一系列相关的对象,而不需要指定它们的具体类。这个模式非常适合用于处理有多个产品系列的情况。”
大高看到小菜的疑虑,打开了代码编辑器,开始输入以下的Java代码:

// 抽象产品
public interface Payment {void pay();
}// 具体产品
public class Alipay implements Payment {@Overridepublic void pay() {System.out.println("使用支付宝进行支付");}
}public class WeChatPay implements Payment {@Overridepublic void pay() {System.out.println("使用微信进行支付");}
}// 抽象工厂
public interface PaymentFactory {Payment createPayment();
}// 具体工厂
public class AlipayFactory implements PaymentFactory {@Overridepublic Payment createPayment() {return new Alipay();}
}public class WeChatPayFactory implements PaymentFactory {@Overridepublic Payment createPayment() {return new WeChatPay();}
}

大高解释说,“在这个例子中,‘Payment’ 是我们的抽象产品,它代表一种支付方式。‘Alipay’ 和 ‘WeChatPay’ 是具体的产品,他们实现了 ‘Payment’ 接口,代表不同的支付方式。
‘PaymentFactory’ 是我们的抽象工厂,它有一个方法 ‘createPayment’,用于创建一个 ‘Payment’ 对象。‘AlipayFactory’ 和 ‘WeChatPayFactory’ 是具体的工厂,他们实现了 ‘PaymentFactory’ 接口,可以创建对应的 ‘Payment’ 对象。
当我们需要添加一个新的支付方式,比如 ‘BankCardPay’,我们只需要创建一个 ‘BankCardPay’ 类实现 ‘Payment’ 接口,然后创建一个 ‘BankCardPayFactory’ 类实现 ‘PaymentFactory’ 接口。这样,我们就可以在不修改原有代码的情况下,添加一个新的支付方式。”

小菜听完大高的解释后,他对抽象工厂模式有了更深入的理解,他在笔记本上详细记录了这个概念及其在实际代码中的应用。
小菜研究了关于异常处理的公司规范,他发现其中一部分对“finally块”的使用引起了他的困惑。
“在所有的情况下都需要使用finally块吗?”他对此有所疑虑。
他向大鸟提出了这个问题,大鸟解释道:“并不是所有的情况下都需要使用finally块。finally块通常用于确保一些清理工作总是会被执行,无论try块中的代码是否抛出异常。比如,如果你在try块中打开了一个文件,那么你应该在finally块中关闭它,以确保文件总是被正确关闭。”
小菜感慨万分,他一直以为finally块的使用是必须的,原来是有选择的。他详细记录下了大鸟的解释,为以后遇到类似情况做好准备。

接下来,小菜开始学习公司的代码版本管理规范。他对Git并不陌生,但公司的工作流程和他在学校里使用的略有不同。他一边学习,一边尝试在一个测试项目上实践。最初,他对分支的管理有些混淆,但在大高的指导下,他很快就掌握了这个技巧。
在阅读完所有的开发规范后,小菜开始尝试使用公司的开发工具。他安装了IDE,配置了开发环境,创建了一个简单的项目。在这个过程中,他遇到了一些小问题,比如依赖管理工具的配置问题,代码自动格式化工具的使用问题等等。但是,通过阅读技术文档,向大鸟和大高请教,他都一一解决了这些问题。
当第四天结束时,小菜对公司的开发环境和规范有了深入的理解。他知道,他还有很多要学习的地方,但他也明白,只要他愿意学习,愿意提问,愿意解决问题,就没有什么是他做不到的。

三、后续

崭露头角

四、总结

公司的环境,以及朝气蓬勃的学习氛围,员工的互相帮助。都能让我们在一个新的地方有归属感,这也应当是很多公司所奋斗的目标! 我很幸运能在这个大环境下学习与成长。

小菜的进阶之路 | 入职培训 | 银行支付系统业务 #2相关推荐

  1. 新员工入职表_入职培训流程,五大步骤让员工顺利上岗,来之能战战之能胜

    入职培训流程,主要有以下几步: 1.培训计划:根据企业入职培训大纲,针对入职的不同员工定制培训计划 2.岗前培训:入职后首次培训包括企业介绍.员工手册和培训考核等内容 3.部门培训:入岗后上岗前的培训 ...

  2. 最近参加一个公司的入职培训

    最近参加一个公司的入职培训 其实主要是学习点学校学不到的东西! 这个真的很珍贵的·所以这几天得珍惜·· CSS和PHP的学习明天重新启动!加油! 转载于:https://blog.51cto.com/ ...

  3. 360需要的,不是打工者——周鸿祎在360新员工入职培训上的讲话

    --在360新员工入职培训上的讲话 我想给新入职的同事讲一讲我的期望,再提几个建议.我这个人喜欢说真话,不喜欢说漂亮话,因为漂亮话没用.但说真话,大家可能不爱听. 首先,大家一定要明白,你自己来360 ...

  4. 华为新员工入职培训计划曝光!你留不住员工的原因就在这! zz

    华为新员工入职培训计划曝光!你留不住员工的原因就在这! 中铭智云商 百家号18-04-1212:59 新员工的前6个月的培养周期往往体现出企业对于人才培养的重视程度,但许多企业往往只将重点放在前15天 ...

  5. 当地的新员工入职培训

    香港 (Xinwengao.com) - 在中国生活和工作的所有外国人都面临文化冲击.在他们的入职前期,学校管理层通常会让他们接受广泛的入职培训.这些培训项目旨在为外籍教师提供文化和专业培训.在外籍教 ...

  6. 新人入职培训流程及转正交流过程指导原则

    本编是自己初步总结的,对于中小型项目团队背景下新人入职流程及转正交流指导原则.后续会持续的做更新与同步,不合理之处还请多指正,谢谢. X1.入职常规手续.电脑装系统等事项,在安装开发环境的过程中穿插一 ...

  7. 【原创】《麦肯锡入职培训第一课》读书感悟

    自己作为新人刚入职,除了在编程技巧方面又需要学习提高的地方意外,自己在和领导沟通.和业务沟通上面遇见了许多问题,自己做的事情往往得不到领导的肯定,自己总结了一下原因,自己从学生到公司职员在做事的思维上 ...

  8. 深职院入职培训心得2021

    深职院入职培训心得2021 一.前言 二.课程流水账 3.8 下午 杨新斌 校长 党委书记 3.10 上午 温希东 副校长 3.10 下午 马晓明 副校长 3.11~12 素质拓展 3.15 上午 王 ...

  9. 商务风团队建设与入职培训PPT模板

    模板介绍 精美PPT模板设计,商务风团队建设与入职培训PPT模板.一套管理培训幻灯片模板,内含黑色,红色多种配色,精美风格设计,动态播放效果,精美实用. 一份设计精美的PPT模板,可以让你在汇报演讲时 ...

最新文章

  1. JavaBean与表单处理
  2. pytorch VIF(VIT 改)快了两倍
  3. 优米网:创业传记——傅盛
  4. javascript判断对象、字符串、数组是否为空(兼容绝大部分浏览器)
  5. Android线程详解
  6. axure 组件_技巧分享 | Axure后台组件制作的全过程
  7. 谁都会做:简单易行的祛斑法 - 健康程序员,至尚生活!
  8. 限定某个目录禁止解析php 限制user_agent php相关配置
  9. android 3d侧拉抽屉,iOS动画指南 - 4.右拉的3D抽屉效果
  10. 实现二叉树的基本操作(Java版)
  11. sbit和sfr的定义
  12. 虚拟机和主机之间建立虚拟磁盘
  13. 微电子专业要学c语言吗,微电子技术专业学什么?
  14. 在Unity顶部显示手机状态栏(iOS/Android)
  15. arcgis中解决点位符号化时重叠冲突
  16. uoj problem 11 ydc的大树
  17. 有个网站能开通手机QQ
  18. 工作经费的开支范围_经费开支范围
  19. .DS_Store 文件是什么?
  20. 【论文汇总】2020上半年阿里、腾讯、百度入选AI顶会论文(附地址)

热门文章

  1. 返回数组中非零元素的索引np.flatnonzero()
  2. 流海屏、异形屏判断(适配)
  3. 【程序员面试题2017】阿里巴巴
  4. java计算机毕业设计中医保健网站源码+系统+lw+数据库+调试运行
  5. 万得终端 linux安装,Linux下常用工具
  6. 计算机控制实验教程,《计算机控制实用技术》实验教程.doc
  7. BOSS 直聘无条件取消大小周,薪资总额不变,能打消员工的顾虑吗?
  8. Thymeleaf 的简单语法和常用th标签
  9. Pyplot参数设置
  10. 软件测试工程师应届生薪资18K+,2021超全大厂薪资一览!努力努力,你也可以够得到