• 10个常见的软件架构模式

    想知道如何设计大型企业级的系统吗?在开始主要的代码开发之前,我们必须选择一种合适的体系架构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,应该先了解不同的体系结构。-   什么是架构模式   -根据维基百科,架构模式是在给定上下文中解决软件架构中常见问题...

  • Service 层和 Dao 层有必要为每个类都加上接口吗?

    作者:架构思维toutiao.com/i6882356844245975563前几天刷头条又刷到了「Service层和Dao层真的有必要每个类都加上接口吗?」这个问题,之前简单回答了一波,给出的观点是「看情况」!现在结合我参与的项目以及阅读的一些项目源码来看。如果项目中使用了像S...

    架构师社区
    2021-10-29
    ic ce vi
  • 面试官欺负人:new Object()到底占用几个字节?

    前言我们来分析一下堆内布局以及Java对象在内存中的布局吧。对象的指向先来看一段代码:package com.zwx.jvm;public class HeapMemory {    private Object obj1 = new Object();    public st...

    架构师社区
    2021-10-29
  • C 语言的单元测试与代码覆盖率

    ↓推荐关注↓前言测试是软件开发过程中一个必须的环节,测试确保软件的质量符合预期。对于工程师自己来说,单元测试也是提升自信心的一种方式。直接交付没有经过测试的代码是不太好的,因为这很可能会浪费整个团队的时间,在一些原本早期就可以发现的问题上。而单元测试,就是发现问题一个很重要的环节...

  • 手撸一个线程池

    点击上方蓝字关注下我呗之前分享过一次手写线程池-C语言版,然后有朋友问是否有C线程池实现的文章:其实关于C线程池的文章我好久以前写过,但估计很多新朋友都没有看到过,这里也重新发一下!本人在开发过程中经常会遇到需要使用线程池的需求,但查了一圈发现在C中完备的线程池第三方库还是比较少...

  • 一文看懂各种开源许可协议

    参与开源项目贡献,或者使用开源项目的代码,一定要注意查看项目所遵循的开源许可协议,许可协议决定你贡献的代码将被如何规范的使用,也决定你要如何规范的使用开源项目的代码。目前世界上的开源许可证(OpenSourceLicense)大概有上百种,今天我们来介绍下几种我们常见的开源协议。...

  • 如何理解互斥锁、条件变量、读写锁以及自旋锁?

    锁是一个常见的同步概念,我们都听说过加锁(lock)或者解锁(unlock),当然学术一点的说法是获取(acquire)和释放(release)。恰好pthread包含这几种锁的API,而C11只包含其中的部分。接下来我主要通过pthread的API来展开本文。mutex(互斥量...

    CPP开发者
    2021-10-28
  • 1s 创建 100G 文件,最快的方法是?

    在我们日常工作中,为了验证开发的功能,比如:文件上传功能或者算法的处理效率等,经常需要一些大文件进行测试,有时在四处找了一顿之后,发现竟然没有一个合适的,虽然Linux中也有一些命令比如:vim、touch等可以创建文件,但是如果需要一个100G或者1T的大文件,这些命令就显得力...

    CPP开发者
    2021-10-28
  • 这个 MySQL bug 99% 的人会踩坑!

    这周收到一个sentry报警,如下SQL查询超时了。select * from order_info where uid = 5837661 order by id asc limit 1执行showcreatetableorder_info 发现这个表其实是有加索引的CREAT...

    架构师社区
    2021-10-27
  • 一文详解 API 设计最佳实践

    -   前言   -良好设计的API=快乐的程序员。应用程序接口(API)是一种接口,它让应用程序可以轻松地使用另一个应用程序的数据和资源,API对于一个产品或公司的成功至关重要。如果没有API,你大部分喜欢的软件今天就不会存在。例如,GoogleMapsAPI可以让你在app或...

    架构师社区
    2021-10-27
    API
  • 性能优化之Java多线程批量拆分List导入数据库

    |前言前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。时间是一点一点的变少了。非常的爽,最后变成了10s以内。下面就展示一下过程。...

  • 梳理消息队列 MQ/JMS/Kafka

    是不是平常听到说消息队列啊,JMS啊,MQ啊、kafka啊巴啦啦的一堆术语,听不懂?关系混乱?今天就让我们来一起来看看他们都是什么吧。1消息队列介绍首先举个收快递的栗子,传统的收快递,快递小哥把我们的快递送到我们的手里。他需要什么条件嗯?快递小哥有时间送,我们有时间取,快递小哥和...

    架构师社区
    2021-10-27
  • 北京朝阳一互联网公司被端,警方上门,23人被带走…这种开发千万别干!

    劳动者作为普通员工,在很多情况下是很难知晓用人单位的经营行为是否涉嫌违法。为了保住自己的工作,对于管理者的安排言听计从。但是在此还是需要提醒广大职场人,在选择行业以及用人单位时需要具有风险防范意识。在从事用人单位安排的工作内容时一定要具有风险防范意识。有向上想挣钱的心是好的,但是...

  • C 20 新特性的小细节

    之前整理过一篇C20新特性的文章全网首发!!C20新特性全在这一张图里了,里面提到过latch、barrier和semaphore,但是没有详细介绍过三者的作用和区别,这里详细介绍下。latch这个可能大多数人都有所了解,这就是我们经常会用到的CountDownLatch。用于使...

    CPP开发者
    2021-10-27
  • 如何升级Windows 11正式版?四种方案都在这里了

      距离Windows 11预览版测试已经过去近四个半月。终于,在10月5日,微软的Windows11 正式版操作系统全面上市。Win11的正式上线,打破了微软在Win10刚发布之时曾表示Win10将会是最后一代Windows的说法。微软表示,符合条件的Windows10电脑可以...

    C语言编程
    2021-10-27
    Windows
发布文章