概论 程序设计20231407语言

应用程序启动器 - 开源研究系列文章

这些天开发了一个应用程序启动器,主要是用于在操作系统启动后启动相关的应用程序。因为在各个启动程序中设置随系统启动,那就会在注册表启动项中添加信息,而此程序就是为了解决这个问题,直接启动添加的程序。 1、 项目目录; 下面是程序目录,挺简单的,一目了然。 2、 函数介绍; 这里用到了XML序列化的函数 ......
启动器 应用程序 程序 文章

C#应用程序配置文件(XML序列化) - 开源研究系列文章

上次写了一个C#线程池及管理器的博文( C#开发的线程池和管理器 - 开源研究系列文章 ),收到了不小的浏览量,在此感谢各位网友的支持。这次将另一个功能放出来单独讲解:C#应用程序的配置文件,使用的是XML文件保存程序的配置信息,通过XML序列化和反序列化,将配置文件规范起来。 一、 项目目录; 项 ......
序列 应用程序 文件 程序 文章

TCS34725 颜色传感器设备驱动程序

一、概述 以前的传感器是用过中断的方式进行计数的,现在已经有 I2C 通行的颜色传感器,不在需要我们像之前那样,通过计数的方式获取数据,直接通过I2C读取即可。当然有通过串口的方式获取采集数据的,串口使用就比较简单了,此笔记只针对 I2C 通信的模块。 我在某宝上随意购买了一个 TCS34725 的 ......
传感器 驱动程序 颜色 程序 设备

C语言两结构体之间的成员互换

今天在写一个通讯录实现程序的时候,遇到个让我突然卡壳的问题,不知道怎么进行两个结构体之间的成员互换......结构体成员有“姓名”,“性别”,“年龄”,“地址”,“电话”,目的就是实现一个通过年龄进行sort排序的功能,作为一个努力学习的编程小白来说,有太多的东西需要学习了..........代码如 ......
成员 之间 语言 结构

C语言指针常见问题

我们在学C语言时,指针是我们最头疼的问题之一,针对C语言指针,博主根据自己的实际学到的知识以及开发经验,总结了以下使用C语言指针时常见问题。 指针 指针做函数参数 学习函数的时候,讲了函数的参数都是值拷贝,在函数里面改变形参的值,实参并不会发生改变。 如果想要通过形参改变实参的值,就需要传入指针了。 ......
指针 常见问题 常见 语言 问题

架构设计(九):估算

架构设计(九):估算 作者:Grey 原文地址: 博客园:架构设计(九):估算 CSDN:架构设计(九):估算 估算在系统设计中非常重要,这决定了你的设计是否可以满足要求,要实现比较靠谱的估算,就需要对如下几个概念熟练掌握 第一个概念:二的幂 尽管在处理分布式系统时,数据量可能是巨大的,但计算都可以 ......
架构

LFU 的设计与实现

LFU 的设计与实现 作者:Grey 原文地址: 博客园:LFU 的设计与实现 CSDN:LFU 的设计与实现 题目描述 LFU(least frequently used)。即最不经常使用页置换算法。 题目链接:LeetCode 460. LFU Cache 主要思路 首先,定义一个辅助数据结构 ......
LFU

MongoDB - 模式设计

虽然说 MongoDB 是无模式的,但实际上模式设计在 MongoDB 中也非常重要。在实际开发中,大多数性能问题都可以追溯到糟糕的模式设计。 ......
MongoDB 模式

设计模式实践---策略模式实现对大量计算公式的处理

业务流程: 1.用户根据需要选择的实验方案,每个实验方案对应一种计算公式,计算公式例如下面这种 2.将带有实验数据的PDF文件上传到特定位置,对PDF文件进行解析后将数据数据保存到数据库。 3.遍历所有方案,对每种方案使用特定的公式对数据库中的数据进行 重构前实现: 遍历方案,使用IF语句对使用的公 ......
模式 设计模式 对大 公式 策略

【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI

前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAGNI原则和DRY原则,你们都知道并且理解吗? 欢迎关注微信公众号「JAVA旭阳」交流和学习 KISS原则 ......
轻量 架构 原则 三个 YAGNI

【架构设计】你的类足够“专一”吗

前言 软件设计SOLID原则中有一个最基础的原则就是单一职责原则,我想绝大部分的程序员都知道,而且都理解它的意思,甚至觉得很简单。但是往往“看懂”和“会用”是两回事,而“用好”更是难上加难。好比我们项目,一开始一直和大家强调类的单一职责,随着业务不断发展,不同的同事都往这个类“添砖加瓦”,最终导致一 ......
架构

模型驱动设计的构造块(下)——DDD

3. 领域对象的生命周期 每个对象都有生命周期,如下图所示。对象自创建后,可能会经历各种不同的状态,直至最终消亡——要么存档,要么删除。当然很多对象是简单的临时对象,仅通过调用构造函数来创建,用来做一些计算,然后由垃圾收集器回收。这类对象没必要搞得那么复杂。但有些对象具有更长的生命周期,其中一部分时 ......
模型 DDD

【架构设计】你的应用该如何分层呢?

前言 最近review公司的代码,发现现在整个代码层级十分混乱,一个service类的长度甚至达到了5000多行。而且各种分层模型DTO、VO乱用, 最终出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题。 我们在吸取了阿里巴巴的分层规范以及网上的一些经验后,重新梳理总结了 ......
架构

Triple 协议支持 Java 异常回传的设计与实现

作者:Apache Dubbo Contributor 陈景明 背景 在一些业务场景, 往往需要自定义异常来满足特定的业务, 主流用法是在catch里抛出异常, 例如: public void deal() { try{ //doSomething ... } catch(IGreeterExcep ......
Triple Java

【架构设计】如何让你的应用做到高内聚、低耦合?

前言 最近review公司的代码,发现代码耦合程度特别高,修改一处,不知不觉就把其他地方影响到了,这就让我思考该如何让我们写的代码足够内聚,减少耦合呢? "高内聚、松耦合"是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。它可以用来指导不同粒度代码的设计 ......
架构

Dubbo架构设计与源码解析(二) 服务注册

作者:黄金 一、Dubbo简介 Dubbo是一款典型的高扩展、高性能、高可用的RPC微服务框架,用于解决微服务架构下的服务治理与通信问题。其核心模块包含 【RPC通信】 和 【服务治理】 ,其中服务治理又分为服务注册与发现、服务容错、负载均衡、流量调度等。今天将重点介绍Dubbo的服务注册与发现。 ......
架构 源码 Dubbo

RocketMQ Compaction Topic的设计与实现

Compaction Topic 是一种基于 key 的数据过期机制,即对于相同 key 的数据只保留最新值。该特性的应用场景主要为维护状态信息,或者在需要用到 KV 结构时,可以通过 Compaction Topic 将 key-value 信息直接保存到 MQ,从而解除对外部数据库的依赖。快来... ......
Compaction RocketMQ Topic

前端程序员学python(爬虫向)(一文修到筑基期) (本文不含知识诅咒)

我踏马来辣 还有一件事: 本教程配合c语言中文网 python爬虫 教程 食用 本教程不适用于未成年人 一定要刷牙 本教程不存在知识诅咒 学完本教程即可进入筑基期 js 基础和本教程学习效率成正比 不要笑 暂时不要驾驶你的行李箱 本教程是针对前端程序员制定的 vscode是IDE大王,什么?你说vs ......
基期 爬虫 前端 程序员 程序

FPGA:乒乓球比赛模拟机的设计

简介 开发板:EGO1 开发环境:Windows10 + Xilinx Vivado 2020 数字逻辑大作业题目 7: 乒乓球比赛模拟机的设计 乒乓球比赛模拟机用发光二极管(LED)模拟乒乓球运动轨迹,是由甲乙双方参赛,加上裁判的三人游戏(也可以不用裁判)。 管脚约束代码: 点击查看代码 set_ ......
模拟机 乒乓球 FPGA

应届毕业生程序员在面试时如何做好自我介绍?

在本文的开篇,本人想说句正确的废话,应届生程序员要过面试,不能单靠自我介绍,也不能单靠背题,事实上应届生准备面试得综合地从简历、项目、技术和背面试题方面做准备。 由于本人是做Java方面的,所以本人就将从上述诸多方面综合讲下,应届生朋友该如何过面试,其中的操作要点有两个,一是要在简历和面试中,向面试 ......
程序员 毕业生 程序

Javascript | 分别用async await异步方法和Promise来实现一个简易的求职程序

关注公众号,一起交流,微信搜一搜: LiOnTalKING JavaScript Promise Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。 如何创建一个 Promise 对象? new Promise(function (resolve, re ......
Javascript 简易 Promise 程序 方法

区块链,中心去,何曾着眼看君王?用Go语言实现区块链技术,通过Golang秒懂区块链

区块链技术并不是什么高级概念,它并不比量子力学、泡利不相容原则、哥德巴赫猜想更难以理解,但却也不是什么类似“时间就是金钱”这种妇孺皆知的浅显道理。区块链其实是一套统筹组织记录的方法论,或者说的更准确一些,一种“去中心化”的组织架构系统。 去中心化 众所周知,任何一个公司、组织、或者是机构,都遵循同一 ......
区块 君王 语言 Golang 技术

巧如范金,精比琢玉,一分钟高效打造精美详实的Go语言技术简历(Golang1.18)

研发少闲月,九月人倍忙。又到了一年一度的“金九银十”秋招季,又到了写简历的时节,如果你还在用传统的Word文档寻找模板,然后默默耕耘,显然就有些落后于时代了,本次我们尝试使用云平台flowcv高效打造一份巧如范金、精比琢玉的高品质Golang技术简历。 首先来到云平台:flowcv.com 点击 t ......
Golang1 语言 简历 Golang 技术

时间老去,Ruby不死,Ruby语言基础入门教程之Ruby3全平台开发环境搭建EP00

如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而Matz的Ruby语言则正是这样一件艺术品。 无论是语法还是理念,都让Ruby开发者感受到款待,如此,Ruby代码就像活了过来,它们时而高声,却藏不住优雅,时而细语,却意外地铿 ......
Ruby 语言基础 入门教程 语言 环境

红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样,Ruby的每一步都很优雅,几乎没有一步是多余的。 第一行代码 进入系统的 ......

订单自动确认或取消设计方案

订单自动确认或取消设计方案 前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。 简介 系统订单自动确认或取消的设计方案,最常见的一个业务比如N天后自动确认订单,达到动态修改订单状态的目的。大多数项目采用的都是如下两种方案。 方案1:使用传统的数据库如MySQL,通过轮询来判断数据库表中订单的状态。 ......
订单 方案

探索小程序底层架构原理

双线程架构 在这之前,我们先来思考一个问题,小程序在架构上为什么会选择双线程? 为什么是双线程? 加载及渲染性能 小程序的设计之初就是要求快速,这里的快指的是加载以及渲染。 目前主流的渲染方式有以下3种: Web技术渲染 Native技术渲染 Hybrid技术渲染(同时使用了webview和原生来渲 ......
底层 架构 原理 程序

游戏设计之-排行榜处理

前言 我相信大部分人,乃至公司和团队在设计排行榜都考虑的是redis,zadd操作,不需要排序,维护获取,操作都极其简单; 无一例外我也是; 在项目中运营了大量的模板,来处理各个木块的排行榜信息; 统一的会在晚上又一些结算处理;就牵涉一次性拉取,过滤,发放奖励,甚至还有删除操作; 同时为了节约运营陈 ......
排行榜

使用 Visual Studio 2022 调试Dapr 应用程序

使用Dapr 编写的是一个多进程的程序, 两个进程之间依赖于启动顺序来组成父子进程,使用Visual Studio 调试起来可能会比较困难,因为 Visual Studio 默认只会把你当前设置的启动项目的启动调试。 好在有Visual Studio 扩展(Microsoft Child Proce ......
应用程序 程序 Visual Studio 2022

回首,这几年来的我作为一名程序员的生活

作为一名程序员;我坚信程序真的可以改变世界;愿所有程序员小伙伴工作顺利,开心幸福每一天!!! 路漫漫其修远兮,吾将上下而求索!当你踏上程序员这艘快艇时,坚强、默默忍受、持续学习是基本必备条件;职场中只有利益,所以强大自己才是重中之重! 我是一名退伍军人,也可能由于自己在部队上就是干通信这方面,那会也 ......
程序员 程序