精华内容
下载资源
问答
  • 一个人最宝贵的应该是思想,一个程序员最宝贵的东西应该是算法思想和编程经验。 我将在此星球,撰写系列纯技术文章。 目前规划是: 基础算法系列 设计模式系列 软件架构系列 程序员的数学系列 机器学习系列 深度...

    最近听人讲解唐诗,忽然特别喜欢「斐然」一词。我觉得人生应该如此,潇洒而不拘。

    程序员的坎应该是年龄,三旬已是老汉,可出于热爱我希望自己能编程到老。

    一个人最宝贵的应该是思想,一个程序员最宝贵的东西应该是算法思想和编程经验。

    我将在此星球,撰写系列纯技术文章。

    目前规划是:

    1. 基础算法系列
    2. 设计模式系列
    3. 软件架构系列
    4. 程序员的数学系列
    5. 机器学习系列
    6. 深度学习系列

    甚至自动驾驶系列。

    价格方面,我会根据内容的充实程度,不断向上调整价格,也算是对早期加入的同学的另一种感谢。

    我本身是「终身学习」理念的支持者,也愿意做一个践行者。

    人需要见多识广,但一个人的尊严无非建立在体系化的认知上。

    如果你热爱,一直热爱,愿意继续热爱,那加入吧。我毕生所学,都会以体系化的形式沉淀下来,相信能让你有所收获。

    当然,CSDN 我也会继续更新,但可能会碎片化一点,我很感谢 CSDN 给我提供这么一个写作的平台。

    相信我,你并不孤独,脚踏实地,穿越年岁,你我终将斐然自成。

    在这里插入图片描述

    展开全文
  • 实现层面:大数据是一套数据处理技术活方法体系,实现具体以上特征的数据的存储、计算、共享、备份和容灾、保密等,保证数据处理的时效性和拓展性 服务层面:大数据的数据技术变革引发的新型信息服务模式,例如从...

    最近在读阿里数据中台的书,因为要在组内做分享,就多度了几遍。与阿里大数据实践之路配合,基本可以看到阿里建设数据中台的过程,和一些技术细节。做一件有价值的事情就是把自己觉得好的东西分享出来,那么开始内容

    (1)大数据的发展历程和价值探索

    大数据的发展

    文章开篇是一段作者建设数据中台过程的心路历程,下来就是老套路,介绍了国内外大数据发展的历程与大数据的价值探索,这里做简单的介绍。
    大数据编年史
    两个重要的节点需要说一下

    1. 2003年谷歌公开了内部对于海量文件的处理技术、GFS分布式文件系统、并行计算处理框架MapReduce、高效数据存储模型BigTable,这些促成了分布式系统基础架构—hadoop。为各个大数据组件的诞生打下基础。
    2. 2012年全球大数据从TB上升到PB,也是阿里大数据之路开端的一年。

    大数据的价值

    大数据的价值书中主要从四个方面介绍,在下面的四个方面都深刻的解析了大数据的实际应用和真是含义。

    1. 语义层面:‘数据’即所有信息的记录,例如用户访问网站的信息的转化过程的行为属性;大是巨量的意思,可以隐身为数量、形式、含义的丰富,保障实现被高保真的记录与回放
    2. 实现层面:大数据是一套数据处理技术活方法体系,实现具体以上特征的数据的存储、计算、共享、备份和容灾、保密等,保证数据处理的时效性和拓展性
    3. 服务层面:大数据的数据技术变革引发的新型信息服务模式,例如从数据探索出发,系统主动推送信息给用户做决策、给及其优化参数、基于数据的量变完成数据的质变
    4. 应用层面:大数据是数据服务组合生成的新场景、新体验、日益增长的数据量非但不会使信息获取效率降低、质量下降,反而会让每个人都能得到快速的迭代,个性化的互联网服务。

    ##(2)阿里的大数据主张
    在数据提供服务的基础上,阿里对数据的要求是准、快、全、统、通,简单的解释是标准统一
    融会贯通、资产化、服务化、闭环自优,这是阿里数据中台实现目标的核心。
    数据中台赋能业务运行图
    要实现上面的目标,如何做呢?
    图片展示了数据中台运行的过程,主要抽象成三个部分
    第一部分:OneData致力于实现数据的标准与统一
    第二部分:OneEntity致力于实现实体的统一,让数据融通而非以孤岛存在,为精准的用户画像提供基础
    第三部分:OneService致力于实现数据服务统一,让数据复用而非复制

    从两一个维度看一下数据中台赋能业务的全景图
    数据中台赋能业务全景图

    • 数据后台:计算数据后台同时具有离线计算、实时计算计算能力和在线分析能力从而可以让用户今早的看见昨天及以前汇总及萃取的数据,准确无误的看到上一秒产生的数据、在线分析,查看海量的数据
    • 数据中台:云上数据中台、通过智能数据能力实现全局数据仓库规划、数据规范定义、数据建模研发、数据连接萃取、数据运维监控,拥有多样的数据的分层数据中心。
    • 数据前台:数据前台的核心是通过数据的复用,为多个业务线提供数据高效的数据服务。

    ——————————————————————————————————————
    今天就介绍到这里,下次介绍阿里巴巴的大数据建设过程,主要以时间为主线介绍。

    展开全文
  • 前言相信绝大多数从事测试行业的同志们对自动测试有抱有一个美好的幻想,可是到底该怎么实现和落地呢? 接下来我将结合分层测试金字塔和实际案例为大家分享: 项目背景: 案例项目是ThoughtWorks的内部招聘看板...

    GitChat 作者:雲裳
    原文:我们是怎样在项目内落地自动化测试体系的
    关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术

    【不要错过文末彩蛋】

    前言

    相信绝大多数从事测试行业的同志们对自动化测试有抱有一个美好的幻想,可是到底该怎么实现和落地呢? 接下来我将结合分层测试金字塔和实际案例为大家分享:

    项目背景: 案例项目是ThoughtWorks的内部招聘看板系统,主要服务于ThoughtWorks在19个国家49家办公室的招聘团队。核心功能是为HR们提供一个展示候选人的信息的面板,生成和招聘数据有关的报表。

    一、了解自动化测试金字塔

    说起自动化测试不得不提及测试金字塔,这种三角形的结构主要为我们展示了一个健康的自动化测试体系应该是什么样子的。如图所示,金字塔的从上往下依次是UI测试,接口测试,单元测试, 越在高层影响就越大,花费的时间和精力就越多。图示的测试金字塔只是一种形态示例,不同项目的金字塔的实现内容可能略有区别。

    在《google软件测试之道》曾写过: 对于google产品,70%的投入为单元测试,20%为集成、接口测试,10%为UI层的自动化测试。

    enter image description here

    二、分层实现

    如何实现UI层的自动化测试

    在测试金字塔中可以看到,UI层面的自动化影响大、变化多、可维护成本高,所占比例也最少。所以在我们看来,UI层面的自动化应该是一些从高层次上验证一些happy pass,确保我们的核心功能可用。

    拿案例项目来举例,我们识别出最核心的功能就是通过过滤器筛选数据来进行展示或计算,所以我们的用例主要会去验证操作这些过滤器能否筛选出正确的数据。 在技术选型上,我们 主要用到BDD的思想,选用cucumber + capybara这套体系去做UI层的自动化。

        Scenario: test office filter in China region
          Given I login to GoHire website
          When I select "China" region
          And I select "Chengdu" option
          Then I can only see all the application cards in chengdu office
    

    UI层自动化的小经验

    • UI层自动化的适用场景是做核心功能的回归测试和冒烟测试,所以在实施过程中,要注意不要把所有的用例都堆砌在UI层,而是尽可能放到接口测试和单元测试中去做。

    • 在代码层面,我们可以遵循page object的设计模式,避免在测试代码中直接操作html元素。这样就可以减少重复的代码并提高代码的可维护性。

    如何实现接口层的自动化测试

    在案例项目中,接口测试主要分为两个部分。

    • 在开发过程中,测试人员会和开发合作去写接口的功能测试。

    • 在整个功能大概完成,API已经基本确定后,测试和开发一起结对写性能测试。

    接口功能测试

    在写功能测试的过程中,我们可能会和一些其他的模块或第三方API有依赖,在这种情况下,通常可以通过Mock的方法去解决。

    如案例项目中有一个测试场景是:调用一个第三方的API,当这个API出错时,需要接受到API返回的错误码并对错误码进行处理。在实现测试的时候,我们没有办法让第三方API真正的挂掉并返回错误码,所以我们只需要模拟这个请求出错,验证我们代码已经对这种错误进行过处理。

    def should_return_error_message_when_request_failed(self):
        event = {
          "body": {
            "action": "update_candidate",
            "payload": {
              "candidate": {
                "id": 101
              }
            }
          }
        }
        with requests_mock.mock() as request_mock:
          request_mock.get("http://api.gh.test/v1/candidates/101", text='', status_code=500)
          with self.assertRaises(Exception) as context:
            webhook.handle(event)
          self.assertTrue(
            '[request error][update_candidate] get candidate 101 from Harvest API failed' in context.exception)

    接口性能测试

    在功能大致完成后,我们开始做API的性能测试。性能测试在这里的作用主要是获取我们API现有的性能指标,形成一个对比的基线。在便于进行后期的优化的同时也有可能帮助我们发现一些潜在的bug。

    小故事:我们在手工测试API的响应速度时,测试结果一切正常。当引入性能测试后就发现,这些接口在前期的响应时间确实很快,可是在请求了一定次数后会突然变得很慢。经过调查我们发现,这是因为我们依赖了一个AWS的服务,这个服务有访问频率的限制,在最初的代码中,每次访问都会请求这些服务并读取这些服务的配置,这也就导致了测试发现的问题。后来我们更改了方案,把读取配置这个操作放在系统初始化的时候去做,顺利的解决了这个问题。

    性能测试我们主要选用了Locust这个框架。如我们的一个接口功能是:查询某个国家下的所有的候选人。 下面代码用例的意思就是, 同时配置50个客户端去访问API,每次随机请求某个国家的所有候选人信息,一共请求1000次,规定每次请求的时间最大不超过5s。

    def get_applications_in_country(l):
      text = """Australia Brasil Canada China Chile Ecuador Germany India Italy Singapore Spain Turkey UK USA Uganda Thailand"""
    
      countries = text.strip().split()
      country = random.choice(countries)
      params = {
        "country": country,
        "status": "active"
      }
    
      with l.client.get("/getCandidates", params=params, headers={"x-api-key": API_KEY}, catch_response=True) as response:
        if "errorMessage" in response.text:
          response.failure("Error occurs in response: %s" % response.text)
    
    
    class UserBehavior(TaskSet):
      tasks = {
        get_applications_in_country: 1
      }
    function runLocustDataStoreService {
        validateEnvironment "HOST" "API_KEY"
    
        setupEnv
    
        CLIENTS=${CLIENTS:-"50"}
        HATCH_RATE=${HATCH_RATE:-"2"}
        NUM_REQUEST=${NUM_REQUEST:-"1000"}
    
        locust -f DataStoreService/locustfile.py --host ${HOST} --clients=${CLIENTS} --hatch-rate=${HATCH_RATE} --num-request=${NUM_REQUEST} --no-web --only-summary
    }
    

    通过Locust跑完用例,我们可以看到在console生成的report:

    enter image description here

    图片展示的是report的一部分,reqs代表对这个API的请求数目,fails记录了失败的次数,Avg、Min、Max、Mediam分别是每次请求响应时间的平均值、最小值、最大值和中位数。

    如何实施单元测试级别的自动化

    单元测试是对软件中最小的测试单元进行验证,在这一层上发现问题时解决成本最低,测试用例的维护成本也不高,具有很好的投入产出比。一般情况下,我们是需要开发人员在开发过程中写单元测试。而作为一个QA,我们更多的是一个单元测试的引导者:

    • 和团队一起制定单元测试覆盖率的标准。

      如果这是一个全新的项目,我们可以把覆盖率设的相对高一点,如85%,这有利于我们在前期就对代码质量做出保证。如果这是一个已经相对成熟的项目,由于前期根本没有单元测试,我们可以先把要求设置的低一点,然后一步步的提升我们的代码覆盖率。

    • 为开发人员提供单元测试的用例。

      我们需要提前把需要验证的用例列在开发的任务卡片里面,这样能帮助开发更有效率的去完成我们期望测试的用例 。

    • 定期回顾开发人员写的单元测试。

      这里并不是要检查代码和具体实现,而是和开发一起去回顾看看单元测试的写法和角度是不是在同一认知上面。这样有助于整个团队建立一种质量保证的意识。

    在具体实现上,我们选择nose test这个工具去做单元测试,通过nose test的插件,我们可以拿到单元测试覆盖率的报表,在第二个图中,我们可以看到,没有被测试覆盖的代码会有红色的标记,这样就有利于我们找到测试的遗漏点。

    enter image description here

    enter image description here

    在写单元测试时,为了解决对数据库的依赖,我们可以建立一个内存数据库去模拟真实数据库,便于我们的测试用例能快速的运行。如在我们的真实项目中,我们的数据库选用的是亚马逊的RDS+Postgres,但是在做单元测试的时候我们使用的sqlite+python绑定来模拟真实的数据库

    三、做完自动化测试之后还可以做什么

    只让这些自动化测试运行在本地IDE上是不够的,在我们的项目中,我们建立了一套持续集成部署的体系:

    1. 推送到代码到远端后会自动开始运行自动化测试和代码审查。

    2. 当单元测试通过后会自动部署到测试环境。

    3. 在部署完成后会自动生成测试报告。

    4. 小组所有成员会收到部署成功或失败的邮件提醒。

    enter image description here

    在工具的选择上,我们的持续集成平台是ThoughtWorks的GoCD,其他类似的工具还有 jenkins,可以灵活的选用这些工具。

    四、总结

    在实际的项目实施过程中,我们其实是按照下面的步骤依次逐步实施我们的持续集成自动化体系的:

    1. 在项目开始之前首先搭建持续集成的框架,第一次的时候先写一个最简单的单元测试,如1+1=2,确保可以在CI上运行测试,为后续的开发奠定基础。

    2. 开发在项目实现过程中进行单元测试,每次开发推送代码时都可以自动运行单元测试和代码风格审查,当单元测试覆盖低于85%或代码风格检查不通过时,构建就会失败。

    3. 测试和开发在项目实现过程中合作写接口层的功能测试。

    4. 功能开发大体完成后,测试和开发合作写接口的性能测试。

    5. 当项目发布之后,测试开始根据核心功能编写UI层面的自动化测试,也相当于是写项目的回归测试。


    最后谈一点心得体会吧:

    1. 项目只有UI自动化测试是不够的,越低层的自动化测试反而越有意义。

    2. 自动化测试的目的是减少重复的手动测试的成本,使测试人员可以做更多有意义的事情,在实现自动化的过程中,我们花费的精力甚至更多。

    3. 测试并不是越多越好,除了用例数量还要考虑维护代价。我们希望测试代码能够尽量稳定,因为代码需要不断的被重构,如果发现重构一次代码就修改很多测试,那么这种测试可能会成为负担,也是一种坏味道。

    4. 测试人员在自动化测试落地的实践中,更多的是一个推动者而不是实现者,我们需要帮助团队建立起一种质量保证的意识,然后共同实现自动化测试的落地。

    作者简介:雲裳,ThoughtWorks质量分析师。以dev身份加入ThoughtWorks,因兴趣转型QA。 过去一年以QA身份服务于澳洲某大型电信公司,主导项目小组的质量分析保证工作,对角色转型和敏捷实践有着独特的见解。


    实录:《雲裳:自动化测试落地实战解析》


    【GitChat达人课】

    1. 前端恶棍 · 大漠穷秋 :《Angular 初学者快速上手教程
    2. Python 中文社区联合创始人 · Zoom.Quiet :《GitQ: GitHub 入味儿
    3. 前端颜值担当 · 余博伦:《如何从零学习 React 技术栈
    4. GA 最早期使用者 · GordonChoi:《GA 电商数据分析实践课

    这里写图片描述

    展开全文
  • C语言模块程序设计

    千次阅读 2017-09-07 22:29:29
    C语言模块程序设计 模块划分 C语言模块程序设计需理解如下概念:  (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;  (2) 某模块提供给其它模块调用的...

    C语言模块化程序设计

    模块划分


    C语言模块化程序设计需理解如下概念:

      (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;

      (2) 某模块提供给其它模块调用的外部函数及数据需在.h中文件中冠以extern关键字声明;

      (3) 模块内的函数和全局变量需在.c文件开头冠以static关键字声明;

      (4) 永远不要在.h文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量。

     

    一个嵌入式系统通常包括两类模块:

      (1)硬件驱动模块,一种特定硬件对应一个模块;

      (2)软件功能模块,其模块的划分应满足低偶合、高内聚的要求。

    多任务还是单任务

      所谓"单任务系统"是指该系统不能支持多任务并发操作,宏观串行地执行一个任务。而多任务系统则可以宏观并行(微观上可能串行)地"同时"执行多个任务。

      多任务的并发执行通常依赖于一个多任务操作系统(OS),多任务OS的核心是系统调度器,它使用任务控制块(TCB)来管理任务调度功能。TCB包括任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。调度器在任务被激活时,要用到这些信息。此外,TCB还被用来存放任务的"上下文"(context)。任务的上下文就是当一个执行中的任务被停止时,所要保存的所有信息。通常,上下文就是计算机当前的状态,也即各个寄存器的内容。当发生任务切换时,当前运行的任务的上下文被存入TCB,并将要被执行的任务的上下文从它的TCB中取出,放入各个寄存器中。

     

    究竟选择多任务还是单任务方式,依赖于软件的体系是否庞大。例如,绝大多数手机程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。

     

    单任务程序典型架构

      (1)从CPU复位时的指定地址开始执行;

      (2)跳转至汇编代码startup处执行;

      (3)跳转至用户主程序main执行,在main中完成:

      a.初试化各硬件设备; 

      b.初始化各软件模块;

      c.进入死循环(无限循环),调用各模块的处理函数

      用户主程序和各模块的处理函数都以C语言完成。用户主程序最后都进入了一个死循环,其首选方案是:

    while(1)
    {

     

    中断服务程序

      中断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序(ISR),类似于__interrupt、#program interrupt等。当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。

    中断服务程序需要满足如下要求:

      (1)不能返回值;

      (2)不能向ISR传递参数;

      (3) ISR应该尽可能的短小精悍;

      (4) printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。


    硬件驱动模块

      一个硬件驱动模块通常应包括如下函数:

      (1)中断服务程序ISR

      (2)硬件初始化

      a.修改寄存器,设置硬件参数(如UART应设置其波特率,AD/DA设备应设置其采样速率等);

      b.将中断服务程序入口地址写入中断向量表:

    /* 设置中断向量表 */
    m_myPtr = make_far_pointer(0l); /* 返回void far型指针void far * */ 
    m_myPtr += ITYPE_UART; /* ITYPE_UART: uart中断服务程序 */
    /* 相对于中断向量表首地址的偏移 */
    *m_myPtr = &UART _Isr; /* UART _Isr:UART的中断服务程序 */ 

      (3)设置CPU针对该硬件的控制线

      a.如果控制线可作PIO(可编程I/O)和控制信号用,则设置CPU内部对应寄存器使其作为控制信号;

      b.设置CPU内部的针对该设备的中断屏蔽位,设置中断方式(电平触发还是边缘触发)。

      (4)提供一系列针对该设备的操作接口函数。例如,对于LCD,其驱动模块应提供绘制像素、画线、绘制矩阵、显示字符点阵等函数;而对于实时钟,其驱动模块则需提供获取时间、设置时间等函数。

      C的面向对象

      在面向对象的语言里面,出现了类的概念。类是对特定数据的特定操作的集合体。类包含了两个范畴:数据和操作。而C语言中的struct仅仅是数据的集合,我们可以利用函数指针将struct模拟为一个包含数据和操作的"类"。下面的C程序模拟了一个最简单的"类":

    #ifndef C_Class
    #define C_Class struct
    #endif
    C_Class A 
    {
     C_Class A *A_this; /* this指针 */
     void (*Foo)(C_Class A *A_this); /* 行为:函数指针 */
     int a; /* 数据 */
     int b;
    }; 

      我们可以利用C语言模拟出面向对象的三个特性:封装、继承和多态,但是更多的时候,我们只是需要将数据与行为封装以解决软件结构混乱的问题。C模拟面向对象思想的目的不在于模拟行为本身,而在于解决某些情况下使用C语言编程时程序整体框架结构分散、数据和函数脱节的问题。我们在后续章节会看到这样的例子。 

      总结

      本篇介绍了嵌入式系统编程软件架构方面的知识,主要包括模块划分、多任务还是单任务选取、单任务程序典型架构、中断服务程序、硬件驱动模块设计等,从宏观上给出了一个嵌入式系统软件所包含的主要元素。

      请记住:软件结构是软件的灵魂!结构混乱的程序面目可憎,调试、测试、维护、升级都极度困难。

    展开全文
  • 浅谈自动运维设计思想

    千次阅读 2016-06-06 10:58:05
    通过传统手段对大型计算机集群进行运维即使是简单的日常备份、服务器状态监控和报警,效率也十分低下,因此对自动运维的需求已经迫在眉睫。 传统运维的弊端: 由人来发起运维事件,运维人员被动、效率低 ...
  • 模块程序设计之自顶向下、逐步求精
  • 2019工程伦理慕课答案(2019秋)习题及期末答案

    万次阅读 多人点赞 2019-11-08 18:19:53
    第一章习题(下) 单选题 (1/1 point) 下列哪一项不是工程与技术的区别 内容和性质 目的 活动主体 任务、对象和思维方式 单选题 (1/1 point) 下列哪一项不是工程活动的... 设计 ...计划、设计、建造...
  • 2.3快速原型模型的思想产生、原理及运用方式 2.4类型 2.5开发步骤 三、增量模型 3.1什么是增量模型 3.2特点 3.3优缺点 3.4作用 四、螺旋模型 4.1什么是螺旋模型 4.2特点 4.3优缺点 4.4...
  • 设计模式: 软件分层架构思想

    千次阅读 2018-09-11 18:58:04
    分层架构设计思想,有很多成功的例子,诸如:OSI七层网络模型,通过七个层次的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输。OSI网络模型是理论模型...
  • Java框架总结

    万次阅读 多人点赞 2020-01-17 14:14:13
    面向切面编程的思想在Struts2中也有了很好的体现。 体现了拦截器的使用,拦截器是一个一个的小功能模块,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个...
  • 运维体系框架标准模型简介

    千次阅读 2018-02-01 11:05:49
    为什么要做标准?...这有点像我们学的面向对象编程的思想,其实我们就是需要遵循这样一个思路,我们面对的就是一个个实体和逻辑运维对象。 在标准的过程中,先识别出各个运维对象,然后我们日常做的所
  • 研究生工程伦理课程答案整理

    万次阅读 2019-12-17 09:55:12
    ”这一问题的思考和争议由来已久,从而形成了不同的伦理学思想和伦理立场。大体上,可以把这些伦理立场概括为() 口功利论 口契约论 口义务论 口德性论 正确答案:功利论 契约论 义务论 德性论 2.多选(1/1分) 工程活动...
  • 自动驾驶概述

    万次阅读 2020-02-08 20:27:27
    随着5G逐渐走进人们的视线,自动驾驶汽车成为一个社会热门话题。那么自动驾驶究竟是什么样的?它真的能实现吗?...明确智能网联汽车标准体系建设的指导思想、基本原则、建设目标和标准体系框架 ...
  • WEB前端简历模板

    万次阅读 多人点赞 2019-10-15 17:15:36
    入园企业4000多家,是目前国内规模最大、产品系列最全、入住客户最多、运营体系最完善的产业园区专业运营商。 责任描述: 1、根据项目做出个人开发计划,搭建开发环境进行项目开发; 2、使用DIV+CSS布局模式...
  • 从零搭建一个自动运维体系

    万次阅读 多人点赞 2018-03-23 00:00:00
    作者简介:胥峰,著有畅销书《Linux运维最佳实践》、译著《DevOps:软件架构师行动指南》,资深运维专家,有 11 年...对自动运维体系的需求,是随着业务的增长、对运维效率和质量的要求不断提高而产生的。前言:在很
  • 测试开发需要学习的知识结构

    万次阅读 多人点赞 2018-04-12 10:40:58
    -评估项目质量风险并制定项目测试方案,设计并执行测试用例,跟踪定位产品软件中的缺陷或问题,保证项目质量和进度 -根据产品和项目特点,提出合理的自动解决方案,并负责产品线特色的测试框架和测试工具,运用...
  • 如何通俗理解设计模式及其思想

    万次阅读 多人点赞 2018-07-08 20:36:52
    本文由 玉刚说写作平台 提供写作赞助 原作者:却把清梅嗅 ... 版权声明:本文版权归微信公众号 玉刚...数据结构,算法,设计模式被认为是程序员必备技能的三叉戟,如果说编程语言的语法特性和业务编码能力是【术】,...
  • 【文章一】腾讯蓝鲸体系架构及设计思想 原文文章链接:http://os.51cto.com/art/201507/484679_all.htm 作者介绍  党受辉(咖啡党)  腾讯游戏 蓝鲸产品中心总监  目前负责腾讯游戏运维支撑体系(蓝鲸)的建设...
  • 离散数学在计算机科学中的应用

    万次阅读 多人点赞 2018-02-03 11:56:44
    利用命题中各关联词的运算规律把由高低电平表示的各信号之间的运算与二进制数之间的运算联系起来,使得我们可以用数学的方法来解决电路设计问题,使得整个设计过程变得更加直观,更加系统。集合论在计算机科学中也...
  • 碎片学习的骗局-如何构建自己的知识体系

    千次阅读 多人点赞 2020-02-12 10:22:44
    这个就是大家说的本世纪三大“绝症”,焦虑症-松鼠症-懒癌,由于想上进,所以产生焦虑,由于焦虑,想要知识速成,所以充分利用碎片的知识,碎片的知识不成体系,加之无法全部快速吸收,所以不断地收藏,由于懒惰...
  • 简述MVC设计思想

    千次阅读 2018-03-26 11:48:53
    它是一中软件的设计思想,将应用的一个输入、处理、输出按照模型层,视图层,控制层进行分层设计。 1)模型: 业务逻辑包含了业务数据的加工与处理以及相应的基础服务(为了保证业务逻辑能够正常进行的事务、安全、权限...
  • 微服务架构设计实践 目 次1 序言2 微服务3 软件架构设计思想4 微服务架构设计实践4.1 项目概述4.2 架构准备阶段4.3 概念架构阶段4.4 细化架构阶段4.4.1 业务架构4.4.2 数据架构4.4.3 应用架构4.4.4 技术架构4.4.5 ...
  • SDN

    千次阅读 多人点赞 2017-06-29 11:35:37
    SDN的本质定义就是软件定义网络,也就是说希望应用软件可以参与对网络的控制管理,满足上层业务需求,通过自动业务部署简化网络运维。 1 SDN标准:ONF 网站:https://www.opennetworking.org/ 参考:...
  • OpenStack设计与实现(一)虚拟

    千次阅读 2016-01-19 15:32:29
    云计算的一个核心思想就是在服务器端提供集中的物理计算资源,这些计算资源可以被分解成更小的单位去独立地服务于不同的用户,也就是在共享物理资源的同时,为每个用户提供隔离、安全、可信的虚拟工作环境,而这一切...
  • 浅析MVC设计思想与三层体系结构

    千次阅读 2013-04-25 17:05:32
    一、什么是三层体系结构 三层体系结构是在客户端和数据库端之间引入一个“组件层”,并以业务逻辑为核心,将整个项目在逻辑逻辑上分为表现层、业务层、...MVC设计思想主要用于表现层,准确来说 MVC 是以页面为核心,将
  • 对无线通信装备工厂级、设备级、系统级模块化设计进行了分析,根据软件通信体系结构,提出了模块化通信装备的设计思想,对其相应的标准体系和验证模型进行了重点研究。
  • 什么是前端工程

    万次阅读 多人点赞 2019-06-28 11:38:18
    前端越来越复杂,前端面试的要求也越来越高。如何提升前端开发水平?如何应对前端面试?我在日常工作中前端的开发框架以 ...对前端的要求相比几年前已经从单纯的 JavaScript、CSS 问题变成了更多以工程为主的问题。
  • 冯·诺依曼设计思想

    千次阅读 2016-07-26 12:05:27
    到现在为止,尽管计算机制造技术已经发生了极大的变化,但是就其体系结构而言,仍然是根据他的设计思想制造的,这样的计算机称为冯·诺依曼结构计算机。 冯·诺依曼设计思想可以简要地概括为以下三点: ①...
  • 摘要:分层架构是降低软件复杂度的最常用手段之一,从软件的可变性管理和降低应用复杂度来讲,软件平台必须要层次,基于技术平台搭建业务平台,进行业务组件积累,再基于业务平台进行业务应用开发。普元平台提供了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,889
精华内容 47,555
关键字:

化思想体系化设计