自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老老实实地搬砖

一个入行八年的码农,做的都是一些技术含量不大的项目,要说这么些年一点经验积累都没有,那是骗人的,从现在开始认真记录项目中的经验教训,文笔拙劣,词不达意,还望见谅

  • 博客(20)
  • 收藏
  • 关注

原创 复盘一个诡异的Bug之MethodNotFoundException

今天又碰到一个Bug:保存一个设置时报了MethodNotFoundException,是一个名为的方法找不到,查看代码却始终得不出原因。

2024-03-18 11:25:04 589

原创 复盘一个诡异的Bug

该Bug的诡异之处在于这是一个由多种因素综合碰撞之后形成的综合体。纵观整个排查过程,一度被错误的目标误导,花费大量功夫后才找到问题点所在,成熟的组件在没有确凿证据之前不能随意怀疑其稳定性。

2023-11-08 09:11:58 1260 1

原创 一个由登录接口引发的思考

我本以为,一个用户登录接口,虽可简单,可复杂,但一定是对调用者友好的。以我从业十年的经验来看,一个好的登录接口,对于第三方调用者来说,只需要传入用户名、密码,返回登录是否成功、有无权限,而不必关心服务端内部的架构,至少我先前对接过的接口是这样的。可近来在项目中的一次对接却完完全全颠覆了我的认知,这还是公司内部两个团队之间的对接。我所吐槽的,并不是接口本身。从更深层次看,公司内部多团队开发一整套解决方案时,缺乏一个强有力的产品经理,或者对上下位软件都有一定理解的架构师。

2022-11-02 17:02:38 429 1

原创 踩坑System.Text.Json日期格式化

System.Text.Json日期序列化

2022-10-21 17:31:31 1180

原创 基于SSH端口转发实现内网客户机的远程(续)

使用中发现的问题半个月前,我基于SSH.NET实现了通过端口转发功能远程内网客户机,并将此功能加入到数采管理中心通讯服务中。在生产环境中试用后,逐渐发现以下问题:由于不能同时转发到同一个端口,每次使用完后必须下发停止命令关闭端口转发,然而忘记关闭在所难免端口转发功能集成在通讯服务内部,使得远程更新通讯服务自身相对麻烦平台上无法查看当前有哪些客户机开启了端口转发,分别占用了哪些端口平台上无法获取命令的反馈,即下发开启端口转发命令后,不清楚执行结果,远程不了只能尝试更换其它端口从现场角度出发,前

2021-09-02 16:42:58 171

原创 基于SSH端口转发实现内网客户机的远程

基于SSH端口转发实现内网客户机的远程零、版本履历日期说明2021.08.16初稿一、一个看似奇葩的需求最近项目上有这么个需求,看似奇葩,但很有必要。现场通过4G物联网卡上网,并且只开通了部分IP白名单,要求实现远程到现场。换句话说,通过这个4G物联网卡组的网络就相当于内网,再跟之前一样从外网通过Teamviewer、向日葵之类的工具远程访问是不可能的了。此外,客户机没有固定IP,也不可能登录服务器后通过远程桌面连接到现场。后来想到公司另一个业务组在Linux下有相同场

2021-08-16 19:46:34 1221

原创 使用VS2019新建的项目生成后无法获取程序集正确的编译时间

使用VS2019新建的项目生成后无法获取程序集正确的编译时间版本记录时间说明2020-06-16初稿零、前言一直以来,我都习惯将主程序的编译时间作为整个软件的发布时间,这样做的好处是,省去了每发布一个新版本就去关于界面中修改发布时间的操作。关于获取程序集的编译时间,原理是读取可执行文件的PE结构中的TimeDateStamp这个属性,上网一搜就能找到现成的代码。之前我也是没动脑子,抄来就用了,倒是也没出现什么问题。一、无法读取C++程序集的PE结构直到有一天在读取一个

2020-06-16 15:45:24 2249

原创 聊聊软件登录界面的设计与交互

前面说了一堆废话,想看直接看正文的可跳过,直接看第二章。版本记录日期备注2020-06-13初稿零、前言这个登录界面提取自最近正在做的一个项目,此项目曾被我自豪地称为是公司数采软件的颜值担当,虽然这里面有不少夸大的成分,但也并非担不起这个称号。这个项目能做出今天的程度,是项目组一起努力的结果,并非我一个人的功劳。纵观公司这么多年的数采软件界面,清一色的都是很刻板、很标准的Windows风格。甚至在嵌入式数采仪上,这么多年来都是沿袭了Win8风格的磁贴界面,一成不变。我.

2020-06-13 17:31:29 1895

原创 基于DL/T645-07协议的电表数据采集终端

本文总结自两年前我负责的一个小项目,完全自主架构,同时也是所开发的唯一一个非环保行业数据采集软件,我觉得很有必要记录下。一、前言工作中经手的数采系统也不算少了,之前接触到的都是环境监测行业的数据采集,直到两年前接收了一个远程采集智能电表电能数据的项目。由于行业不同,外加采集方式有所区别,此前数采系统的架构均不适合,需要重新设计一个结构。当时我开发的这套电表数采,在这个项目中充当数据源的...

2020-05-06 14:27:24 8998 13

原创 WPF下聊天气泡的实现

零、版本履历日期说明2020.05.02初稿一、效果先看最终效果。最终微聊烂尾了,更确切地说,还没开始就结束了。二、由来产品虽然没有最终做出来,但至少聊天气泡打磨的还挺像样的。说说怎么实现的吧。打磨一个聊天气泡的想法由来已久。WinForm最开始用的WInForm,想重绘ListBox或者RichTextBox来做,可是借助万能的度娘也没找到思路,不熟...

2020-05-02 16:37:11 2989 4

原创 给软件增加一个启动屏幕来提升启动体验

1. 写在开始常见的大型软件,如Word、Excel、Photoshop等等,由于启动时要加载很多模块,为了提高界面响应,都会在在启动时会先打开一个小窗口,等到主界面初始化完成之后再关闭。这样做的好处是用户双击打开程序后,便可以得到反馈”程序打开了,正在启动中,请耐心等待“。同时还可以实时获取软件启动进度,这对于提升用户体验是有很大的帮助。试想,如果用户双击了一个文件,等待5秒钟后还没打开,是...

2020-05-01 21:27:05 652

原创 Literal权限管理系统(1):写在开篇

简介功能技术选型前端选型后端选型写在最后简介Literal是一个基于Bootstrap 3、ASP.NET MVC5搭建的开发脚手架,如果非要起个高大上的名字,那就称呼为权限管理系统吧。也有人说了,网上各种权限系统,五花八门,各有千秋,为什么偏偏要造重复的轮子?其实一开始在码云上选型,找了很多项目,大多都是Java项目,.NET的真的是少之又少。找到几个项目

2018-01-06 13:27:00 306

原创 六年的空白

前两天在百度上搜索Ribbon,无意间看到一篇文章《程序设计之五:Ribbon UI的实现(XMAL)》,第一眼印象是博主水平很菜,缺失图片,压根就不知道他想表达什么。接着就发现这篇文章很眼熟,再一看作者,这不就是我自己写的嘛。记忆一下子回到了六年前,那会儿还在上大四的我,虽然也写过一点代码,但也只是为了应付课程设计,应付老师,对软件、代码没什么概念,更是压根没想到我竟然会从事软件开发工作

2017-06-22 20:43:59 247

原创 闲来无事,给代码做一次归档

今天白天没什么事,就随便翻了翻项目代码,进入公司三年多来,大大小小的项目也做了不少,但除了个别正式立项的项目外,大部分的项目代码都没入库。不是咱不想上交代码,公司都没给咱开项目库和代码库不是。这些小项目的代码都以最原始的方式备份着,也就是每个版本的代码通过压缩包的方式保存。这种方式也许在当时看来很方便,但随着代码版本增多,就会变得极其混乱,无法比较该代码究竟修改了那些,代码的追溯也做不了。既然

2017-06-22 19:15:46 1274

原创 程序设计之七:“石头剪刀布”游戏(C#)

这个游戏,相信大家小时候都玩过吧,但又没有想过和电脑来几局呢?在这里规则我就不多说了,程序的思路如下:  首先定义一个类Game,存储与本游戏相关的信息,包括:玩家和电脑的答案,玩家和电脑的得分,并能够判断每一局输赢状况和总的输赢。在主函数中实例化对象后,首先由电脑先出,这里是通过一个Random()函数,生成1—3之间的随机数。其中,1代表石头,2代表剪刀,3代表布。然后,玩家依上述规则给出答案

2011-09-01 17:17:09 6650 2

原创 程序设计之六:Hello World

接触编程已三年有余,所学的程序设计语言,也有五六种之多。一般来说,对于每一门新程序设计语言,我们写的第一个程序,无非是输出“hello world”。在这里,我归纳了用我所学过的几种程序设计语言编写的“hello world”程序:C、C++(Win32)、C++(托管)、C#.

2011-09-01 17:13:52 580

原创 程序设计之五:Ribbon UI的实现(XMAL)

随着微软发布新一代Microsoft .NET Framework 4.0架构,我们开发Win7风格的应用程序就变得非常简单了。当然,这一切都得归功于微软的工程师,在他们已经定义好的Ribbon基类文件RibbonControlsLibrary.dll中,我们可以实现标准风格的R

2011-09-01 17:13:28 2556

原创 程序设计之四:猜数字(C)

近来整理硬盘,偶然找到去年冬天写的猜数字程序,运行时,依旧会出现问题。重新修改后,将它整理于此,供自己日后复习。         首先,我们先来看看这个程序的设计要求:        1、游戏开始,电脑随机产生一个数字不重复的四位数;2、将您猜的数填在框内按回车或者确定按

2011-09-01 17:12:25 1386

原创 程序设计之三:OleDB数据库访问技术(VB.NET+Access)

近来正在做一个图书管理系统,采用VB.NET语言编写,所有程序运行都必须安装Microsoft .NET Framework 4.0并连接到Access2003数据库中。现在已近完工,我将本软件中用到的所有连接语句归纳于此处,一来方便大家,互相学习,二来,也方便自己日后的复习。

2011-09-01 17:08:55 2951

原创 程序设计之二:测试你活了多少天(C)

今天看到一个网页,其功能是计算一个人从出生到今天,共有多少天,然而多次尝试,均提示输入格式错误,便萌生了自己用C语言写这个程序的想法。本程序实现的基本思想:采用控制台方式输入生日,并将该数据赋给一个结构体变量YearStart。计算这个日期距1900年的天数。同时调用系统函数,获得系统时间,将其赋给另一个结构体变量YearEnd,并计算它距1900年的天数。最后将后者减去前者,得到的数据便是生...

2011-05-09 19:09:00 2728 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除